绿野自助户外活动网站

查看: 2587|回复: 27
打印 上一主题 下一主题

绿野org开放式网站开发管理制度(初稿)

[复制链接]

12

主题

123

帖子

123

积分

注册绿野,不忘初心。

Rank: 2

积分
123
跳转到指定楼层
楼主
发表于 2014-8-17 11:28:29 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式
分享到:

上周末和小李见面之后,小李对开放式网站开发管理的理念也十分认同,并嘱咐我拟一个相关的流程。为此我利用业余时间,研究了一些开源项目的开发管理方法,同时结合当前网站的实际,设计了这个管理制度的初稿,欢迎大家讨论。制度内容如下:

为了让更多的人可以比较容易的参与网站的开发,最大限度的发挥各位驴友的能力来建设我们的网站,现草拟一份开放式的网站开发管理制度。这个制度的目的,一个是为了让大家有条不紊的参与网站开发,另一个就是最大限度的减轻管理的成本,减轻每一个有心为网站做贡献的人的压力。

网站开发要解决两件事情:一是如何提出需求,二是如何实现需求。而为了大家一起来合作解决这两件事情,一是要明确贡献者的角色分类和各自的职责,二是要明确履行各个职责的时候需要遵循的规范。有了明确的职责和规范,大家一起合作才不至于乱成一团最终一事无成。

一、贡献者角色分类和职责:

普通用户:普通用户是指关心绿野org网站的活跃用户。普通用户的职责是根据自己使用网站的情况,报告网站的bug和提出网站需要实现的新功能,简而言之就是提需求。普通用户需要是可以在绿野org网站发帖的正式用户。

开发人员:开发人员是指有能力给网站贡献代码,实现某些需求的工程师。开发人员的职责是按照规定的规范来编写代码,实现普通用户提出的需求或者解决普通用户发现的bug。开发人员需要同时符合成为一个普通用户的条件,也就是说是绿野org网站的正式用户。

技术小组成员:技术小组成员是由网站管理小组选拔出来的对网站的开发质量负责的人。技术小组成员的职责,一个是整理普通用户提出的需求,和普通用户沟通和探讨需求的合理性和可行性,判断需求的优先级,保持网站功能的整体协调;另一个就是审核开发人员提交的实现需求的代码,确保代码符合规范、正确的实施了需求、代码安全没有明显的漏洞和没有恶意的木马,并且做好代码的分支管理工作。技术小组成员同时可以兼有普通用户的身份或者是开发人员的身份。

二、需求的提出和确认

任何一个普通用户都有权提出自己对网站的看法、需要做的改进和新的功能需求,又或者是报告bug。普通用户提出需求的方式是在技术小组版面发起一个主帖,主帖标题包含“[需求]”或者“[BUG]”字样,方便大家辨认。其他普通用户和技术小组的成员可以在主帖下回复来讨论该需求或者BUG,以期达成一致意见。

对于BUG来说,由技术小组确认并组织开发人员尽快解决。对于新需求,技术小组成员定期收集用户提出的新需求,给每个新需求赋予一个唯一的编号,整理出来和判断各个需求的级别(高、中、低、暂不实施、废弃),并通过在技术小组版面发帖的形式公布,从而形成一个需求实施的计划。

如果有普通用户对需求实施计划有异议,则有异议部分暂时停止实施,技术小组继续和用户沟通。当超过一个星期还无法达成一致意见时,由管理小组投票决定该需求的级别。

三、开发人员实施需求的规范

绿野org的代码放在github.com上进行公开保管。任何人都可以对其进行阅读和复制。开发人员可以从需求实施计划中挑选自己感兴趣的需求来实施,但为了让开发人员顺利的提交代码,开发人员必须要有github.com的账号。具体实施的步骤如下:

1、在github.com上对应的repository上新建一个issue,标题上指出要实施的需求的编号,内容是对实施这一需求的简要介绍,和技术小组对开发的过程和对开发结果的讨论均在这个issue上面讨论。

2、fork代码到自己的账号,然后用fork出来的代码进行开发。开发的代码需要符合相关的代码规范,同时也必须包含足够的说明文档,以便于技术小组成员审核。

3、开发人员代码开发完成,并且自己测试通过之后,再原repository上发出一个pull request。

4、技术小组成员收到pull request请求之后,对代码进行测试和审核。这个过程中发现的一些问题都在对应的issue上进行沟通。直到代码测试和审核通过为止。

5、代码通过测试和审核之后,技术小组成员通过开发人员发出的pull request请求,将代码合并到主分支。

6、技术小组成员定期发布上线分支,以将主分支上实施的功能放到测试网站进行上线前的测试。并且在技术小组版面上发布测试通过,告知新的测试网站实现了哪些新的需求。

7、所有网站用户都可以对测试网站进行测试。如发现有bug,则把所有发现的bug集中起来,由技术小组成员和对应的开发人员共同在主分支上修正bug。修正bug的流程和实施新需求一样,需要由发一个新的issue开始。然后再次发布测试版本。这个过程直到测试不再发现新的bug。接下来就可以把该分支版本直接推送到线上服务器。

8、如果任何时候遇到有比较严重紧急的bug,技术小组成员可以直接在主分支上commit代码,并且上线解决。除此之外,技术小组原则上不通过commit代码的方式来提交新的需求实现代码。

可能会有部分开发人员不太熟悉git这个版本管理工具和github.com这个网站的使用方法。对此可以参考一下知乎的这个问答:http://www.zhihu.com/question/20070065

这是一个初步拟定的规范,大家可以就此提出各种意见和建议。最后希望大家都愿意为网站贡献出自己力所能及的力量。

12

主题

123

帖子

123

积分

注册绿野,不忘初心。

Rank: 2

积分
123
沙发
 楼主| 发表于 2014-8-17 14:36:34 | 显示全部楼层

开放源代码对网站安全的影响不大且风险可控

首先,网站本身就是基于开放源代码的技术架构的,绝大部分源代码都可以从相关开源项目上了解到。
其次,我们本身提交的代码会通过技术小组成员的审核之后才能被接收,审核的过程会把不安全的因素过滤掉。
最后,即使网站不开源,同样存在黑客入侵的风险,这方面已经有很多先例。开源之后还方便好心的黑客帮我们及时发现系统漏洞并告知我们。而且网站后台会定期备份数据,万一网站被黑客入侵,我们都能够以最快的速度将漏洞补上并且把数据恢复过来。而且用户密码信息在数据库上用密文保存,只要密码的安全性足够强,黑客也无法获知用户的密码信息。

12

主题

123

帖子

123

积分

注册绿野,不忘初心。

Rank: 2

积分
123
板凳
 楼主| 发表于 2014-8-18 19:02:17 | 显示全部楼层

第三部分是需要一点专业知识才能看懂的,不过对IT工程师来说,应该不难理解的

开发新功能和修改BUG的过程中,线上运行的网站的程序是不会改变的,也就是说,一定不会影响到当前网站的使用。线上运行的网站的程序,只有经过上线流程才会被更新。
而上线的流程已经包含在第三部分里面了。被更改的代码,首先要放到测试网站上,经过大家的测试,确保没有问题了,然后才能把测试网站上的代码替换到线上运行的环境上去。

12

主题

123

帖子

123

积分

注册绿野,不忘初心。

Rank: 2

积分
123
地板
 楼主| 发表于 2014-8-29 00:07:05 | 显示全部楼层

感谢你的建议!

1、这个风险我提示过。作为技术小组的一员,我可以担当代码审查员一职。相信将来会有更多有能力的人加入到技术小组完成这件事情。漏洞是不可避免的,这跟开不开源关系不大,关键是要有应对的措施。

2、我是主张用GPL版权的代码的。但目前新版已经选择了discuz这个系统,所以还是需要看大家的意见,如果坚持用discuz,目前来看,只要网站不以盈利为目的,就可以免费使用的。

3、以目前参与的人数来估计,还没有达到“松散”的量级。虽然找不到一个很好的“先例”,但是我觉得这是一个有益的尝试。

12

主题

123

帖子

123

积分

注册绿野,不忘初心。

Rank: 2

积分
123
5#
 楼主| 发表于 2014-8-29 00:10:57 | 显示全部楼层

因为每个网站都有不同的需求

所以开发论坛只能提供一些通用的功能,但很多特别的功能是需要我们自己开发的。而且网站的界面也是需要我们自己来设计和实现的。总不能所有论坛都长一个样吧?

12

主题

123

帖子

123

积分

注册绿野,不忘初心。

Rank: 2

积分
123
6#
 楼主| 发表于 2014-8-29 20:18:49 | 显示全部楼层

我们有定期备份数据的

就是万一被黑客攻击了,大不了服务器重启,代码回退到稳定版本,恢复备份数据,网站就又能恢复运行了。而且,贡献的代码是要经过审核才能被收录的,植入恶意代码的可能性是很低的。

在github上贡献代码的开发者,本来就是必须是github的用户,而且按照我制定的管理制度,也必须是绿野org网站的正式用户,不知道这是不是你说的公开身份?

还是说,你指的公开身份,必须是带着实名身份和身份证认证的才算是公开身份?就我所知,开源社区的开发者普遍都不是这种”公开身份“的。

目前我所了解的有可能的参与网站开发的人就是技术小组的成员,人数屈指可数,不存在你说的”松散“的情况。

12

主题

123

帖子

123

积分

注册绿野,不忘初心。

Rank: 2

积分
123
7#
 楼主| 发表于 2014-9-9 15:33:03 | 显示全部楼层

你说的情况基本上只是一种假设。实际情况是很难发生的。

首先,能够贡献代码的人就不多,即使有人要故意作恶,也必须要有一定的技术基础。
其次,对于一个有相当互联网开发经验的人来说,鉴别一段是否有恶意的代码是不难的。
再次,即使有漏网之鱼,对故障的分析也能够确定问题所在,找到合理的回退点。
最后,我想知道作恶的人的动机是什么?
按照你的理解,这个网站原地踏步就是最好的,对吗?
绿野org开放式网站开发管理制度(初稿) yyquick 2014-08-17
如何让安全可控? 茶树 2014-08-17
开放源代码对网站安全的影响不大且风险可控 yyquick 2014-08-17
赞! 这个必须支持一下,楼主身体力行! 爱吃馒头 2014-08-17
是一个好东西。不知道现在有多少技术宅男在绿野。:) 小狼 2014-08-18
第一、二部分能看懂,感觉很好! 花鼎 2014-08-18
第三部分是需要一点专业知识才能看懂的,不过对IT工程师来说,应该不难理解的 yyquick 2014-08-18
高效、热心的quick,支持! Jane简 2014-08-18
好想法! 中山狼 2014-08-19
打勾鼓励:) 卡尔松 2014-08-20
搞不好是因为现在这帮把持网站的人不行,在换掉他们之前别瞎耽误自己功夫。娱乐一下是可以的 流云 2014-08-23
写的不错,不过绿野组织别人干活很难,基本没有可实施性,还是自己把这些都干了靠谱。 久点 2014-08-24
有开源网站可用,为啥还要开发,运用现有的开放论坛,符合绿野开放的原则。 孤灯 2014-08-28
因为每个网站都有不同的需求 yyquick 2014-08-29
github 挺时尚的 红狐 2014-08-28
风险还是有的 红狐 2014-08-28
感谢你的建议! yyquick 2014-08-29
以往有打着贡献代码的名义,主观故意的植入恶意代码,道高一尺魔高一丈,只要发生一例.... 红狐 2014-08-29
我们有定期备份数据的 yyquick 2014-08-29
openssh的四个主要开发者都是完全公开的,什么背景什么来历;植入恶意代码,和账号安全紧密相关,审核未必能审核出来, 红狐 2014-09-10
好久没上绿野的飘过, ading 2014-09-04
想法不错, 我个人赞同普通用户反馈部分, 不赞同开源开发 Wood 2014-09-09
你说的情况基本上只是一种假设。实际情况是很难发生的。 yyquick 2014-09-09
我不是很理解你的原地踏步的推断的论据是什么. 相反, 多年以来我一直期望绿野org的演进 Wood 2014-09-10
有行动至少就是一种姿态,比在那抱怨或者冷言冷语的强一万倍 suxiaoyu 2014-09-11
最后回复一次,呵呵 Wood 2014-09-12
github 确实挺时尚的 sutrip 2014-10-10
谁是代码贡献者? 笑对人生_ 2015-11-12
快速回复 返回顶部 返回列表