读《构建之法》第四,十七章有感
第四章
原文:函数最好有单一的出口,为了达到这一目的,可以使用goto。只要有助于程序逻辑的清晰体现,什么方法都可以使用,包括goto。
问题1:我们在写程序时,常常会存在两个return返回值,例如 那么为什么函数要有单一的出口呢?
function{
if(a)
{
return false;
}
return other();
}
问题2:我记得以前在学习的时候,有些书上不建议使用goto语句,那么goto语句到底用来做什么,适用于哪些情况?
问题一资料:结构化编程强调单一出口的原则,其目的在于增强函数流程的逻辑性。
但是这样做会不会降低程序的可读性呢?
问题二资料:(1)goto语句也被称为无条件转移语句,它通常与条件语句配合使用来改变程序流向,使得程序转去执行语句标号所标识的语句。
(2)早期一些人认为GOTO语句是对程序结构影响最大的一种有害的语句,GOTO语句会使程序的静态结构和动态结构不一致,从而使程序难以理解,难以查错。而且G·加科皮尼和C·波姆从理论上证明了,任何程序都可以用顺序、分支和重复结构表示出来。这个结论表明,从高级程序语言中去掉goto语句并不影响高级程序语言的编程能力,而且编写的程序的结构更加清晰。 c.Java,c#中一般不支持使用goto语句,其一般在c++中使用。
看完这些资料,我对goto语句有了大致的了解,由于我对c++语言知识的欠缺,对其具体的用法还是比较模糊???
原文:异常是在异乎寻常的情况下出现的,他的设置和处理都要花费。。。。。。
问题3:由于我常用Java语言,但是在异常处理这一块做的还不是很好,比如:Java中哪些异常需要处理,什么时候抛出异常,什么时候捕获异常
通过查阅资料,我发现这几个博客对异常处理有较好的解释处理。
https://blog.csdn.net/hguisu/article/details/6155636
http://java.tedu.cn/data/304658.html
原文:有些修改看似聪明有效率,实则可能会加大以后开发和维护的难度
我们在以前的编程过程中,常常会强调底稿代码的效率,不要使得代码过于冗余,低效,那么针对这个问题,我有以下疑惑:
问题4:如果这个代码效率很低,超级影响代码的效能,但是有一种更高效的代码,但是会影响日后发展,那么这两者应该如何权衡呢,如果选择了后者,那这个代码的效能有如 何处理呢?我们在编程过程中更应该注重哪方面?
第十七章
原文:承诺 ,领导者要在收集了所有不同意见之后,把它们都摆到台面上,,,,在实践中可以保留“保留意见,但坚决执行”的做法,,
问题1:在领导者决定一种做法的时候,有的人并不同意这个决定,这种情况也是不可避免的,但是,在一些团队中,也会有一些情况,比如采取的这个决定,有些队员完全不同意,甚至是抵触,这种情绪,会相应的给接下来的工作产生影响,这个队员也不会全身心投入这个工作,那么这种问题应该如何更好地解决呢?
我的看法:我觉得我们可以先如何一下大家的意见,借鉴一点别人的优点,若实在不可行,可以明确的列出这个决定的优点,带来的效益,相较于其他决定的好处。http://blog.sina.com.cn/s/blog_5422983501016t44.html这个博客告诉我们如何处理团队内部不同意见。
但有时不同的人对不同的事物都有不同的看法,也许你觉得是优点的地方,别人不一定也这样认为,那么遇到这种情况又该如何呢?
问题2
原文:清华园有两棵果树,春天长芽,,,,,代码量等于树叶量,当做如是观。
看了这个小故事,很多开发人员以自己写了多少代码为骄傲,枝叶繁茂,是不错,但是这些代码是否有效或者解决什么问题呢。
但是现在,常常会有很多人多会问你,你的代码量是多少,你大概码了多少代码,那么这又是否和故事内所阐述的有所矛盾呢?
读完这两章,感觉自己受益匪浅,了解到了结对合作中处理各种问题的方法,而且了解到了如何注意代码规范,风格规范,设计规范,更进一步的学习了一些相关的专业知识,比如异常的处理,断言的使用,注释的规范(我以前写注释都是用中文写的),也了解到了团队合作中的各种问题,以前还真的不知道原来团队合作中也有这么多的问题,通过读第十七章,了解到了如何解决一些团队中遇到的问题,也知道了一个团队如何更好地工作。收获到了很多(#^.^#)。