《构建之法》阅读反馈

S1.阅读疑问



1、我们知道,团队协作过程中,为了提高对于彼此代码的理解能力,增强团队项目编码上的一致性,提高团队协作效率,制定代码规范是非常重要的,不过对于通用的代码规范(在不熟悉团队各个成员代码风格的前提下制定一个较为普适的版本)是何种形式的,以及如何去制定的一个代码规范(依据什么去决定最适合团队的代码规范呢?),我还是不太理解,希望能够得到解答

2. 诚然,当我看到书中提到写了再改模式的时候,我觉得自己中枪了,不过也许这是大学课程以来基本以个人项目为主的结果?我觉得写了再改模式未必一定不好,它对于程序员的代码修改能力,代码补全完善能力,查错能力均有一定的提升,一个好的程序员不仅能够写出好的代码,也应当能够从不同的代码风格中迅速定位自己需要负责的那一部分并完善好,写了再改模式,也许对于代码修改,开发人员而言,是有益的?

3.关于单元测试必须和代码一起保存和维护,并集成到自动测试框架中这两点,能否理解为,对于一个好的程序,执行单元测试应当作为其定期/开机 自检过程?

4.如何看待优化,我们知道好而繁琐的优化可能仅仅是适应当下的应用环境,而很多程序员也提倡最好的优化就是不做优化,为以后代码维护留下接口,我想知道,在软件工程的视角,负责优化的开发人员在这一点上应当怎样思考?

5. 软件开发的Beta阶段,Alpha阶段的界限较为模糊,ZBB与RC阶段也较为模糊,我想知道,这两个界限平时是依据怎样的条件去断定的?怎样才算是从前一个较不稳定的阶段跳跃到一个较稳定的阶段?

S2.软件和软件工程概念的提出



软件:1958年,由Turkey在论文《The Teaching of Concrete Mathematics》提到

软件工程:由Margaret Hamilton在NASA里参与阿波罗11号电脑系统软件时提出

S3.代码版本管理软件



Microsoft TFS

优点:直观显示项目需求与进度,与VS无缝结合,集成了项目管理、版本控制、BUG 跟踪,能有效实现 SCRUM

缺点:asp实现,浏览器访问较慢,不便于配合自动化测试,团队的邮件细节配置也比较复杂

Git

优点:离线工作,自由工作模式,可以选择有用的代码提交,速度较快

缺点:信息模型复杂,命令行语法较为繁琐,不安全的版本控制

GitHub

优点:pull request,issue, 功能设计简洁,适用于私有项目,个人项目

缺点:不能很好的解决GB2312/GBK,中文使用不太方便,国内访问速度较慢

时间: 2024-10-10 08:18:14

《构建之法》阅读反馈的相关文章

构建之法阅读笔记三—结对编程

构建之法阅读笔记三——结对编程 何谓结对编程,结对编程就是程序员肩并肩,平等的,互补的进行开发工作,他们使用同一台电脑,编写同样的程序,一起分析,一起设计,一块交流想法. 然而我以前却并不是这样做的,我以前喜欢在没人打扰的环境下写代码,我觉得有人在我身边看着,会影响我的思路,还有我个人自尊心比较强,不太喜欢被人指指点点,所以每次都是,我写完代码之后,自己先找自己的bug,每当自己实在找不到之后,才会请教大神,但是有时候可能由于自己的能力不足,往往一个很简单的问题,我自己发现就会花费很久的时间,让

构建之法阅读笔记四—团队开发

构建之法阅读笔记—团队开发 软件开发过程中有团队和非团队之分.其区别就在于目标利益的不同,团队中每个人的目标是一致的.共同的,会根据实际情况给每个人分配不同的任务,不会计较个人利益的得失.非团队每个人的目标都是不同的,大家都为自己的利益而奋斗. 在阅读了构建之法后,我了解到团队开发有以下的特点:1.团队开发有一致的集体目标,团队要完成这个目标.一个团队成员不一定要同时工作.2.团队成员有各自的分工,互相依赖合作,共同完成任务.还有完成一个项目开发的工作流有业务建模,需求,分析和设计,实现,测试,

构建之法阅读笔记6--敏捷开发2

构建之法阅读笔记—敏捷开发2 敏捷开发并不是一门技术,它是一种开发方法,也就是一种软件开发的流程,它会指导我们用规定的环节去一步一步完成项目的开发:而这种开发方式的主要驱动核心是人:它采用的是迭代式开发:敏捷开发并不是瀑布开发模型,它是以文档为驱动的,为什么呢?因为在瀑布的整个开发过程中,要写大量的文档,把需求文档写出来后,开发人员都是根据文档进行开发的,一切以文档为依据:而敏捷开发它只写有必要的文档,或尽量少写文档,敏捷开发注重的是人与人之间,面对面的交流,所以它强调以人为核心.而所谓的迭代开

构建之法阅读计划

1.本学期我打算阅读关于软件工程的三本书. 在第1-4周先把构建之法阅读完成 5-9周把人月神话阅读完成 10-16周重新寻找新的书刊阅读 2.速览构建之法中的问题 (1).在之后的团体项目中,我们几人如何分配任务,分配任务之后,如果有一些比如我编程能力缺乏,如何才能真正使这个团队最后的软件质量得到保证 (2).还有如果因为分配之后你学习到只有一部分的知识,另一部分如何学习熟练 (3).我们学习的知识只是基础,到了一些企业中,所用的软件不同,会不会白学. (4).在学校的时候用什么样的团队模式最

03构建之法阅读笔记之一

构建之法阅读笔记03 遇到问题总是想弄清楚所有细节.所有依赖关系之后再动手,想的太多,没法前进,分析的就会出现错乱,或者直接动手,慢慢发现偏离的一开始的轨道,忘记了目标,这样就会产生"分析麻痹"和"不分主次,想解决所有问题",以后遇到问题应该时刻记住自己的目标,在解决问题的时候不断提醒自己,应该如何思考.越早对自己有一个清晰的定位,对自己越好,很多人只是把软件工程师当成一个工作,当成一个能挣钱养家的营生,而我想把它的当成自己投身的事业,把软件项目相关的目标作为长期的

构建之法阅读笔记三

今天阅读了构建之法第四章,对我最深的感触就是代码规范,对于一个软件工程师来说,编程是一项基本技能,程序编的好一半来自于代码的规范:就算你学的算法再好,编程能力再强,代码不规范也没有任何意义.当阅读者拿到你的代码时一头雾水,完全看不懂,这样的代码对于后期的维护和bug的寻找难上加难,或者是对于后来的初学者来说,也是去了教育意义.所以在我们日常的编程过程中要养成代码规范的习惯,习而久之,这样的习惯会一直伴随我们编程整个过程. 还有就是代码复审,我一开始也想不明白,代码为什么要复审呢,写完代码得到执行

软件工程-构建之法 阅读笔记

在我正式开始阅读这本书之前,我对于软件工程这个词汇的概念还是模糊的,认为它只是停留在是一门学科,一个专业,或者是一大堆硬生生的理论知识,然而当我读完构建之法这本书的推荐序和第一,第二版前言开始,我就深刻意识到我之前对于软件工程的肤浅认识是多么错误. 我看书一般喜欢从从书的封面开始看起,或许这也是大多数人看书的习惯,·在本书的封面素描着一副鲁班锁,刚开始让人感觉有点奇怪,明明是一本讲软件工程的书,为什么要用鲁班锁做为封面图案呢?原来玄机深藏于鲁班锁的内部,这鲁班锁从外部看,是严丝合缝的十字立方体,

构建之法阅读笔记09

这段时间我主要阅读的是<构建之法>的质量保障一章: 1. 有些成功人士或公司认为不需要独立的测试角色(Test),你怎么看?就像很多事情一样,不能把所有的事情说得太绝对了,举个例子来说,大多数的软件开发都是以小组的形式来进行的,每个人分配了一个模块,如果说每个人对自己的模块都进行一下测试,当然这样的情况下可以不需要独立的测试角色,编程的过程就是不断对自己的程序排错.测试来完成的,但是最后所有的模块整合成一个大的系统,这样如果程序员只对自己的模块进行测试,是肯定不能满足需求的,这时候就需要一个独

《构建之法阅读笔记02》

这次主要对<构建之法>的第四章“两人合作”作一次阅读笔记. 首先是代码规范问题. 我过去对于代码规范问题并没有做到注意.在编程中,许多变量和函数的命名都非常的简单而没有实际的意义.而且编程时不注意对齐缩进.很多时候也不加注释,导致对这些简单的变量名称不熟悉. 这样做会使得很多人读代码费劲,甚至是自己都要花时间再次阅读懂自己的代码.而且很多没必要的注释也会使得注释失去意义.当自己再次在原基础上编程时,可能要重新编程等问题. 因此,通过阅读“代码规范”,我找到一些解决方法.代码的风格要简明.易读.

构建之法阅读笔记05

2017.5.20 今天阅读的是<构建之法>第8章需求分析的阅读笔记,我们如果要开始做一个软件,最先要进行的就是需求分析,我们应该充分的了解我们这个软件是否具有前景,我们为用户提供的服务是不是用户所需要的,这一章详细的叙述了如何进行需求分析. 首先是获取和引导需求,我们应该找到软件的利益相关者,了解挖掘他们对软件的需求,引导他们表达出真实的需求.然后分析和定义需求,对各个方面的需求进行规整,定义需求内涵,从各个角度将需求量化,然后估计实现这些需求所需要的时间和资源,确定各个需求的优先级.紧接着