构建之法之第四、十七章

疑惑之处第四章 两人合作 

注释是为了解释程序做什么(What),为什么这样做(Why),以及要特别注意的地方:

①复杂的注释应该放在函数头,大都用来解释参数的类型

②注释也要随着程序的修改而不断更新

③注释(包括源代码)应该只用ACSII字符,不要用中文或其他字符,否则会极大地影响程序的可移植性

 疑惑一:文中提到了注释要特别注意的地方,那么为了增强代码的可读性,代码注释的具体规范应该是怎样的?

         这让我想到了上学期刘老师教的JavaEE课程中的第三讲JSP语法里面也提到了一点关于注释的

JSP页面注释:分为jsp注释和html/xml注释

①<!--HTML注释,客户端可见-->

<%

   /*这是放在星号之间的jsp注释*/
   //这也是jsp注释
  %>
③<%--还是jsp注释--%>
④<!-- jsp注释和html注释的混合-->
    在CNDS的一篇博客中找到比较全的注释规范,总结如下:
①定义注释块                                                            

       

②文件注释块                                    

③类注释块

④类成员方法、数注释标记

⑤模块注释

@{ 是模块起始标记, @}是模块结束标记, 位于模块起始注释块与结束注释块之间的所有内容将归入该模块。

既然代码复审能发现这么多问题,有这么好的效果,如果我们每时每刻都在代码复审的状态,那不是很好么?事实上,极限编程(Extreme Programming)正是这一思想的体现——为什么不把一些卓有成效的开发方法用到极致(Extreme),让我们无时无刻地使用它们?——P78

极限编程对工程师提出了更高的要求。这种要求不关乎技术水平,也不关乎学历水平或工作经验。这种要求是对一个人的心智、道德修养的更高要求。——P81

疑惑二:该章抬头的“理论和知识点中”有极限编程这个短语名词,但是全文中却只出现在上述两个地方,并没有对极限编程进行详细解释,那么极限编程到底是什么?

        在百度百科上这样解释:极限编程是一个轻量级的、灵巧的软件开发方法;同时它也是一个非常严谨和周密的方法。它的基础和价值观是交流、朴素、反馈和勇气;即,任何一个软件项目都可以从四个方面入手进行改善:加强交流;从简单做起;寻求反馈;勇于实事求是。XP是一种近螺旋式的开发方法,它将复杂的开发过程分解为一个个相对比较简单的小周期;通过积极的交流、反馈以及其它一系列的方法,开发人员和客户可以非常清楚开发进度、变化、待解决的问题和潜在的困难等,并根据实际情况及时地调整开发过程。“Extreme”(极限)是指,对比传统的项目开发方式,XP强调把它列出的每个方法和思想做到极限、做到最好;其它XP所不提倡的,则一概忽略(如开发前期的整体设计等)。一个严格实施XP的项目,其开发过程应该是平稳的、高效的和快速的,能够做到一周40小时工作制而不拖延项目进度。

        极限编程中有四个核心价值是我们在开发中必须注意的:沟通(Communication)、简单(Simplicity)、反馈(Feedback)、勇气(Courage)、此外还扩展了第五个价值观:谦逊(Modesty)。  XP用“沟通、简单、反馈、勇气和谦逊”来减轻开发压力和包袱;无论是术语命名、专著叙述内容和方式、过程要求,都可以从中感受到轻松愉快和主动奋发的态度和气氛。这是一种帮助理解和更容易激发人的潜力的手段。XP用自己的实践,在一定范围内成功地打破了软件工程“必须重量”才能成功的传统观念。


 

疑惑之处第十七章 人、绩效和职业道德

很多心理学家通过各种试验和分析告诉我们,纯粹强调外界的驱动因素(金钱的报酬或惩罚)仅仅对体力劳动或有明确规则的活动有效(奖金越多,结果越好),但对于需要创造性思维的活动,即使是简单的认知能力的活动,更多奖金反而起到相反的效果。——P403

疑惑:为什么说更多的奖金对于需要创造性思维的活动来说反而起到相反的效果?奖金怎么会没有用?就算没有用也不至于会起到相反的效果吧?从一个例子角度来说:企业提供足够大的资金资助你的团队开发一个全新的(前所未有的)项目,项目做成后,根据质量和用户使用的评价的好坏及推广程度来评定奖金,这样难道奖金不也是其中项目完成的驱动力吗?

posted @ 2018-03-28 20:12  zhoust  阅读(136)  评论(5编辑  收藏  举报