不可以原谅的错误,即使一个项目遵循了上述所有75条,如果没有做(竟然没有做)CI,这个项目会……!
而且,竟然也没有包括文档的审查?文档的规范?竟然也没有包括设计的规范,没有指出做事(任何事,比如包括你去端一杯水)的流程?
我认为,上述75条应该全部抹去,因为它们杂乱无章却没有主题,一个质量好的软件与什么 "有可以作为宣传亮点的Cool Feature么?" 我想是应该完全没有关系的。
如果你想做一个好的软件,你只需要遵循以下2条简单原则即可
1、你为什么要这么做?你的依据是什么? ----指流程
如:你为什么要写这函数?你为什么要改这文档?
2、你做的对吗?质量好吗?
如:性能高吗?完全满足需求与规范吗? ---指审查
以上2条完全适应于所有的人员,包括设计,编码,测试人员,所有的人均要遵循上述原则。
它们可以用一句话来解释:做事要有流程,做完后有人检查,OK。
如果按照以上2条进行,我保证(100%保证),你的软件的质量绝对是好的,因为这种保证来自于德国数百年的生产流程( 不信我,但你一定要相信德国货)。
我反对上述的75条是因为75条本身并不知道它想要说明什么,而是即兴发挥。以致第75条: 尽量不要用Virtual Heads 与上下文不符而没有检查。它没有说明质量的核心就是流程!也就是说,你完全做到了上述的75条,你的项目的质量也可能是不好的。
因此,放弃75条,回到家中,制定流程(如果没有),按流程工作,然后审查是否遵守了流程。
很多人可能会觉得我的回答比较可笑或不可以理解,我只能感到遗憾。
我个人觉得楼上的误解了,mvm提出此75条作为经验总结,便绝非强调按此75条行事即可万事大吉。对我们每个人来说,如果能从中提取到三五条与自己实践相关的经验加以改进或应用,那么可能就会起到非常不错的效果。
你提出的源自德国生产流程的两条经验也很不错,但同样也不能说明只要遵循这两条就可以了。那美国、日本、欧洲其它国家的企业数百年来也积累了属于他们的很棒的经验呀。他们看了你的评论后可能会很不服气呢。
个人看法,仅供参考:)
CI是什么?CI=代码审查?“I" stands for what? 我印象中,code review倒是有的。
难道这75条里面没有code review么?
请看第35条:“你们会隔一段时间就停下来夯实代码么?”。所谓的“夯实代码”,就是指阶段性的code review以及在此基础上的code consolidation。
再请看第60条:“你们有统一的代码书写规范么?”。Code书写规范就是code review的一部分工作。能说没有code review么?
“上述75条应该全部抹去,因为它们杂乱无章却没有主题”——那是你没有看出主题来。这75条的主题是这样的:
1-5: 工具
6-10:沟通
11-15:计划和进度表
16-20:缺陷管理
21-25:士气
26-30:配置管理
31-35:风险控制
36-40:又是沟通
41-45:还是沟通
46-50:测试
51-55: 又是测试
56-60:编码,developer
61-65:规划,envision
66-70:设计
71-75:人力资源
“它没有说明质量的核心就是流程!”——说这话的人,对软件质量的认识还停留在一个比较低的水平。看一下上面1-75各条的主题就可以发现,决定质量的因素太多了,绝非简简单单的一句“流程”就能概括的。
同样,简单化并不代表认识的水平高。“如果你想做一个好的软件,你只需要遵循以下2条简单原则即可”——流程和审查,谁都知道。但是怎么做才能保证流程有效呢?怎么做才能保证审查有效呢?CMM告诉了我们流程和checkpoint,但没有告诉我们怎么做,所以大家还是都不知道怎么做软件流程。
魔鬼就在细节中,这75条全部都是关于细节。
“75条本身并不知道它想要说明什么,而是即兴发挥”——75条不是即兴发挥,而是有条理的在总结。从上面归纳的1-75条的主题就可以看出,总结这75条的时候是遵循着一种思路的。我们要善于接受75条这种表达方式。就好像著名的祖尔(Joel)法则12条一样,并非大而全,而是一些best practice的总结。
“尽量不要用Virtual Heads”是不是和质量有关?当然有。Virtual heads意味着resource is not secure,shared resource会降低resource的工作效率,容易增加出错的机会,会让一心二用的人没有太多时间去review spec、review design。所以说,virtual heads绝对是对质量有害的。软件开发中的人不能简单的按照labor、按照人月来算。一个dedicated的人,要强过两个只能投入50%时间和精力的人。
况且,谁都不是傻瓜,谁都不会认为有了75条就可以不要任何其他的软件工程手段。RUP之类的流程、各种code review、spec review,都是非常必要的手段;瀑布模型、螺旋模型、V模型、X模型等,仍然是软件工程的基础。这个世界上没有silver bullet:RUP不是silver bullet,CMM不是silver bullet,XP不是,Test-Driven不是,当然75条也不是。
最后,我想说的是我们每个人都要show respect。在看懂别人的意思之前,千万不要轻易的轻蔑的说“你不懂”。
btw, "放弃75条,回到家中,制定流程(如果没有),按流程工作,然后审查是否遵守了流程"——这75条恰恰就是流程,是流程里面的肉,而不只是一个骨架。
随便举几个例子:
“9. 你遇到过有人说“我以为…”么?”——如果遇到,这就是spec review的流程出问题了。
“12. 你们的工作量是先由每个人自己估算的么?”——自下而上,还是自上而下,经验法还是专家法还是三分法,这就是plan的流程。
“18. 你们对缺陷的轻重缓急有事先的约定么?”——这是缺陷管理的流程。
“40. 其他部门知道你们项目组在干什么么?”——cross team communication的流程
“44. 你做决定、做变化时,告诉大家原因了么?”——变更管理流程
“57. 你们的程序员是写完代码就扔过墙的么?”——关于Test Release Document的流程
Btw,“63. 有可以作为宣传亮点的Cool Feature么?”看似和质量无关。不过按照我的经验,cool feature的作用是“一俊遮百丑”,有亮点就可以掩盖一些问题。这样,对于客户来说,会感觉产品从质量角度来说还是acceptable的。或者说,cool feature或者说亮点可以作为质量问题的一个事后弥补措施。你想想,很多人经常说“微软的系统不安全,不过很好用”,其实这就是一例。
CI = Code Inspection.
请注意,CI与代码规范是两码事。
这么说吧:当您邀请别人做CI时,作者有义务首先确保它的代码已经符合代码规范。否则,CI会被取消,直到您已经首先确保这一点为止。这就好象,一个人拿了一段代码去做CI,但这段代码竟然还没有被编译过一样。
这么做的原因只有一个:已经成文的规范,不会有人对你说第二遍。而且,这浪费别人的时间。(请注意:这些应该被定义在CI的流程中)。
我感到遗憾的原因是:您已经有了如此多的经验(这些经验都不错,只是太杂乱),却仍没有理解质量的精髓,让人遗憾。
1. 我没有说CI与代码规范是一码事。
2. 这些经验不杂乱。不“杂乱”的是教条,“杂乱”的才是经验。
3. 你敢说你理解质量的精髓?
4. 我用Code Review的说法更多。
Google搜索结果:
约有 20,700 项符合"code inspection"的查询结果
约有 124,000 项符合"code review"的查询结果
哪个术语更通用,一目了然。
5. CSDN上有很多这样的板砖。文人相轻。
6. 山外有山,我相信一定有高手。真正的高手看到后辈,不会说“你还差得很远”
7. 本来就是一种知识分享,为什么一定要把别人分享出来的东西说的一钱不值?
[
点击查看详细]
分享到:
相关推荐
通常情况下,用户仅能查看每个景点前五页的评论,而每页通常显示15条评论,这导致用户只能看到总计75条评论。然而,实际上每个景点可能拥有数千条评论。为了尽可能多地获取这些评论,本文介绍了一种基于评论主题分类...
由于我们需要对一条评论从20个层面进行情感分析,是一个典型的多标签学习任务。我这里通过训练20个4-分类器,对于一个评论文本, 每个分类器对其进行分析。最终20个分类器得到的结果汇总起来即为该模型对这条评论的...
由于我们需要对一条评论从20个层面进行情感分析,是一个 - 不懂运行,下载完可以私聊问,可远程教学 该资源内项目源码是个人的毕设,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用...
本语料库为“电商评论中文语料”,共计包含60万条中文电商产品评论数据,每条评论均已经过空格分词处理,方便进行自然语言处理(NLP)任务的研究与应用。 #### 二、关键词分析 - **中文语料**:指语料库中的文本均...
总之,这个微博情感分析标记语料库提供了丰富的训练素材,可以帮助研究者和开发者构建高效的情感分析模型,服务于新闻评论分析、产品评价、社交媒体监控等多种应用场景。通过深入挖掘和学习这些数据,我们可以更好地...
测试集包含 360 条左右中文电影评论,其中正负向评论各 180 条左右。 知识点九:模型建立和训练 模型建立和训练是实验的核心步骤。实验中使用了 TensorFlow 深度学习框架建立 Text-CNN 模型,并使用了 Adam 优化器...
人工智能-项目实践-情感分析-基于LSTM网络与自注意力机制对中文评论进行细粒度情感分析 题目介绍 该题目为《细粒度用户评论情感...包含105000条训练样本以及15000条测试样本。 关于数据集的标注可以点击这里查看。
#### 法则十五:丰富用户交互方式 随着技术的进步,Web应用不再局限于静态网页。如今,通过Ajax、Flash等技术,可以构建出更为丰富的交互式体验。例如,Rich Internet Applications(RIA)就是一种典型的例子,它们...
8. **军规七:复用性**:通过中继器可以创建可复用的组件,例如评论系统或产品列表,降低工作量,提高效率。 9. **军规八:性能优化**:处理大量数据时,要注意中继器的性能优化,避免过度复杂的设计导致预览缓慢。...
3. 竞争程度相对平缓,随着亚马逊Prime Day等活动的举行,该品类的评论数量增长明显,预计在黑色星期五(Black Friday)活动前热度会有所震荡。 趋势分析: 1. 该品类的评论增长呈现稳定态势,平均日新增评论数量约...
具体来说,当服务器返回"true"时,表示请求成功,然后脚本会在评论表格的最后一行添加一条新的评论。 知识点六:页面元素的动态修改 通过JavaScript操作DOM(文档对象模型),我们可以动态地更新页面内容。例如,...
#### 五、扩展知识 - **合规性考虑**:在实际项目中,需要注意遵守网站的robots.txt协议以及相关法律法规,确保爬虫行为合法合规。 - **效率优化**:可以通过多线程或多进程等方式提高爬虫的执行效率。 - **错误处理...
《Rotten Tomatoes影评数据集》是一个广泛用于电影评论分析和情感分析的研究资源,它包含了大量的影评信息,这些信息来自于著名的电影评论网站Rotten Tomatoes。这个数据集为研究者提供了丰富的文本数据,帮助他们...
新增功能!! 一、在线备份数据功能 二、在线查看空间占用显示 三、刷新新闻(主要用于系统移值、模板批量更新、恢复新闻) 四、自动分页显示...十五、修正已知的BUG 十六、列出某新闻的所有评论数量
3. 数据存储:系统可以存储至少10000条数据。 七、开发工具 1. 服务器端语言:使用Java语言开发服务器端程序。 2. 数据库管理系统:使用MySQL数据库管理系统。 3. 前端框架:使用Bootstrap框架开发前端界面。 八...
如在新闻内容下显示最新的5条评论 十四、计划任务功能 此功能可实现在指定时间执行指定操作。 如在系统中设定凌晨3点执行更新所有栏目分页 十五、支持评论字符过滤 十六、更完善的安全机制。 记录每个用户...
这个对象通常是触发事件的对象本身,例如在评论系统中,可以将评论对象设置为 `subject`。 - **2.2.3 停止传播** 通过调用 `$event->stopPropagation()` 方法可以阻止事件进一步传播。这对于防止后续监听器执行是...
第五条规定,如评委与参赛企业存在利益关系,评委需及时向大赛组委会办公室声明并提出回避申请。该承诺书确保评委避免利益冲突,维护大赛的公平性和公正性。 六、联系限制承诺 第六条规定,未经大赛组委会办公室...
某个用户评论、点赞了帖子,或者关注了某个用户,那么被评论、点赞、关注的用户会收到一条通知。目前系统中有3种通知:评论通知、点赞通知、被关注通知。 7. 数据统计   管理员可以查看网站指定日期...
-按住单击即可为光束充电,直到充电条充满电,松开即可射击 -WASD 键移动 -收集地图上分布的 3 颗宝石 -收集完 3 颗宝石后,进入位于地图中心的大门 -你需要玩得开心。 SJA 分析数据: · 代码数量: 代码总数:...