新足迹

 找回密码
 注册

精华好帖回顾

· 2014”饱倒“之旅正在进行时,更新完毕,第五天,中正纪念馆,西门红楼 (2014-9-14) ylbeethoven · 开贴讲金鱼 (全篇完结) (2011-5-26) fzha8447
· 日本东京 -- 从涉谷QFRONT 到青山的樱花海 - 从六本木的捞面到月岛文字烧 - 银座A&F的美男们 (2012-4-14) chermside · 熊猫做蛋糕--芝士蛋糕&蔓越莓曲奇&阿拉棒 (2014-4-9) 小白的熊猫
Advertisement
Advertisement
查看: 4322|回复: 17

软件裁减管理求助 - ================ [复制链接]

发表于 2015-4-4 09:23 |显示全部楼层
此文章由 easter 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 easter 所有!转贴必须注明作者、出处和本声明,并保持内容完整
有一个软件php,提供给不同的用户的时候要根据需求裁减一下

不知道有没有这样的IDE, 可以根据comments 生成不同的edition


比如下面,当我要生成Edition A的时候,最终的结果,只包括edition A 和common的部分, 其他的,比如edition B的部分都被删除了。 不太想在程序里加判断, 因为太多地方,会占用不少资源。

common code

### Edition A start ###
code
### Edition A end ###

### Edition B start ###
code
### Edition B end ###
Advertisement
Advertisement

发表于 2015-4-4 09:36 来自手机 |显示全部楼层
此文章由 kevin2005 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 kevin2005 所有!转贴必须注明作者、出处和本声明,并保持内容完整

Linux或者mac下,写个脚本,用sed把相应的字符串找出来删掉,存成新文件就行了

发表于 2015-4-4 09:39 |显示全部楼层
此文章由 ericlgq 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 ericlgq 所有!转贴必须注明作者、出处和本声明,并保持内容完整
楼主和楼上的idea都够不同寻常的

发表于 2015-4-4 10:24 来自手机 |显示全部楼层
此文章由 easter 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 easter 所有!转贴必须注明作者、出处和本声明,并保持内容完整
本帖最后由 easter 于 2015-4-4 10:34 编辑
ericlgq 发表于 2015-4-4 09:39
楼主和楼上的idea都够不同寻常的


怎么样是寻常的idea 指点一下
就这还是从eclipse 找的灵感, 可以解析comments  里面的html

发表于 2015-4-4 10:32 |显示全部楼层
此文章由 juncom 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 juncom 所有!转贴必须注明作者、出处和本声明,并保持内容完整
Google "php feature flag"

评分

参与人数 1积分 +2 收起 理由
easter + 2 感谢分享

查看全部评分

发表于 2015-4-4 10:32 |显示全部楼层
此文章由 ericlgq 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 ericlgq 所有!转贴必须注明作者、出处和本声明,并保持内容完整
easter 发表于 2015-4-4 10:24
怎么样是寻常的idea 指点一下

没用过PHP,太具体的也不懂
但是C语言有条件编译,可以通过配制参数来编译不同的版本
Java是边可以用Maven配置不同的profile来定制编译不同的文件
不知道PHP有没有类似的功能的东西

另外,我真不觉得在程序里加判断会占用多少系统资源。。。

评分

参与人数 1积分 +2 收起 理由
easter + 2 感谢分享

查看全部评分

Advertisement
Advertisement

发表于 2015-4-4 10:50 来自手机 |显示全部楼层
此文章由 kevin2005 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 kevin2005 所有!转贴必须注明作者、出处和本声明,并保持内容完整
ericlgq 发表于 2015-4-4 10:32
没用过PHP,太具体的也不懂
但是C语言有条件编译,可以通过配制参数来编译不同的版本
Java是边可以用Mave ...

PHP是脚本,解释执行的,没有C这样的编译过程

除了程序里加条件判断,没啥别的办法

不想用条件判断,就只能修改源代码

linux/mac的脚本就是最强悍的文本处理工具

评分

参与人数 2积分 +5 收起 理由
easter + 2 感谢分享
ericlgq + 3 感谢分享

查看全部评分

成功就是可以随心所欲的做些傻事

发表于 2015-4-4 10:53 |显示全部楼层
此文章由 ericlgq 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 ericlgq 所有!转贴必须注明作者、出处和本声明,并保持内容完整
kevin2005 发表于 2015-4-4 10:50
PHP是脚本,解释执行的,没有C这样的编译过程

除了程序里加条件判断,没啥别的办法

总感觉为了这个写脚本去修改源代码怪怪的。。。
看来还是隔行如隔山啊。。。

发表于 2015-4-4 14:42 |显示全部楼层
此文章由 easter 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 easter 所有!转贴必须注明作者、出处和本声明,并保持内容完整
目前的处理方法就是用脚本

对我们的情况判断其实是要耗费资源的, 因为php的特殊性,程序实际上是以原代码的形式提交的。不想让用户看到跟自己无关的代码,这样只能把只给某些用户的代码,放到单独的文件中。 主程序执行的要去查找这些文件是否存在,而不是简单的跳过某段代码。需要检查的地方有几百个之多。

主要想看下有没有更直接的办法。

发表于 2015-4-4 18:08 |显示全部楼层
此文章由 gzrain 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 gzrain 所有!转贴必须注明作者、出处和本声明,并保持内容完整
为什么不用version control (git) 来管理  

以前公司的project每个客户有自己的customlization, 你可以主功能都在master branch, 每一个/类客户有自己的feature branch; 通用功能都master branch上, 客户的branch到时候再merge master就可以了;

然后你可以deploy /push 客户的branch 给客户,不会互相影响

评分

参与人数 1积分 +2 收起 理由
easter + 2 感谢分享

查看全部评分

发表于 2015-4-4 22:22 |显示全部楼层
此文章由 easter 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 easter 所有!转贴必须注明作者、出处和本声明,并保持内容完整
gzrain 发表于 2015-4-4 18:08
为什么不用version control (git) 来管理  

以前公司的project每个客户有自己的customlization, 你可以 ...

一开始看那个github收费,就没考虑

不过现在一看钱到不多,可以研究一下
Advertisement
Advertisement

发表于 2015-4-4 22:31 |显示全部楼层
此文章由 gzrain 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 gzrain 所有!转贴必须注明作者、出处和本声明,并保持内容完整
easter 发表于 2015-4-4 21:22
一开始看那个github收费,就没考虑

不过现在一看钱到不多,可以研究一下 ...

git 和 github 并不完全等同, github只是比较 popular。  你可以找任何server放你自己的remote repository;我们公司就是用gitlab来管理; 如果你没有什么特殊原因,例如policy,几块前一个月用github就可以了

发表于 2015-4-4 23:17 |显示全部楼层
此文章由 gzrain 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 gzrain 所有!转贴必须注明作者、出处和本声明,并保持内容完整
本帖最后由 gzrain 于 2015-4-4 22:25 编辑
easter 发表于 2015-4-4 21:22
一开始看那个github收费,就没考虑

不过现在一看钱到不多,可以研究一下 ...


work flow:

1 create new branch from master branch for customer A and B
  1. #master branch> git checkout -b customer_A
复制代码
  1. #master branch> git checkout -b customer_B
复制代码
2 write customize code under separate customer branch:
  1. #customer_A> # write some customer A specify code.."
  2. #customer_A> git commit -am "features for customer_A"
复制代码
  1. #customer_B> # write some customer B specify code.."
  2. #customer_B> git commit -ab "features for customer_B"
复制代码
3 common feature stay in master branch
  1. #customer_B> git checkout master
复制代码
  1. #master> # write some code"
复制代码
  1. #master>git commit -am 'common features'
复制代码
4 merge master to customer branch
# if you have remote repos
  1. #master> git pull --rebase origin master
复制代码
then checkout to custom branch to merge master
  1. #master> git checkout customer_A
  2. #customer_A> git merge master
复制代码
用git去管理我觉得是最方便,也是最有效率的,任何改动,特别是customer branch的code都可以轻松操作,
例如你有A, B , C, D 一个4个 版本的code针对不同的收费plan客户,每个版本可能有n个客户在使用, 现在有个新plan E 是包括了 A + C的功能,新plan F是包括 B+D 功能,你甚至不用新建E ,F的working branch (因为maintain这2个branch是duplication), 你只需要maintaince最小单位的feature branches (A,B,C,D), E和F 在deploy的时候 再建立临时deploy branch, merge 相应的feature branch 就可以了



发表于 2015-4-5 09:56 |显示全部楼层
此文章由 easter 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 easter 所有!转贴必须注明作者、出处和本声明,并保持内容完整
gzrain 发表于 2015-4-4 23:17
work flow:

1 create new branch from master branch for customer A and B2 write customize code und ...

谢谢,以你的经验,用功能最少的作为trunk, 在branch加功能和用功能最多的作为trunk, 在branch减功能有区别吗?

另外有没有自动测试的工具推荐? 我只了解过selenium, 看起来不错的样子

发表于 2015-4-6 01:02 |显示全部楼层
此文章由 nali 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 nali 所有!转贴必须注明作者、出处和本声明,并保持内容完整
easter 发表于 2015-4-4 21:22
一开始看那个github收费,就没考虑

不过现在一看钱到不多,可以研究一下 ...

如果你不在意代码放在国内服务器的话,有很多免费的私有库可以注册。 可以添加项目,团队。 github有的功能几乎都有,还有更多杂七杂八的功能。

初期可以考虑的。

当然Github付费私有库一步到位也不错。

发表于 2015-4-6 01:06 |显示全部楼层
此文章由 nali 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 nali 所有!转贴必须注明作者、出处和本声明,并保持内容完整
gzrain 发表于 2015-4-4 22:17
work flow:

1 create new branch from master branch for customer A and B2 write customize code und ...

同意gzrain的做法。git/github 就是做这个的。

另外要学会巧妙运用 fork 和 pull request。
Advertisement
Advertisement

发表于 2015-4-6 01:12 |显示全部楼层
此文章由 nali 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 nali 所有!转贴必须注明作者、出处和本声明,并保持内容完整
easter 发表于 2015-4-5 08:56
谢谢,以你的经验,用功能最少的作为trunk, 在branch加功能和用功能最多的作为trunk, 在branch减功能有区 ...


感觉你提出这个问题的时候,对git不是很了解。

建议先用一下,命令不多,简单的功能花不了一两个小时,你就会知道如何处理了。

这里有些教程,你可以先看一下。
https://www.atlassian.com/git/
http://shop.oreilly.com/product/0636920022862.do

评分

参与人数 1积分 +2 收起 理由
easter + 2 感谢分享

查看全部评分

发表于 2015-4-6 10:28 |显示全部楼层
此文章由 easter 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 easter 所有!转贴必须注明作者、出处和本声明,并保持内容完整
nali 发表于 2015-4-6 00:12
感觉你提出这个问题的时候,对git不是很了解。

建议先用一下,命令不多,简单的功能花不了一两个小时, ...

谢谢,等净下心来研究一下

搜了一下branching strategy, 出来各种model, 还真没看见我需要的那种

发表回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Advertisement
Advertisement
返回顶部