代码大全阅读笔记03

  无论怎么拖也总是要做的,我感觉自己的拖延似乎是毫无意义的浪费时间,我的拖延挤出来的时间都是在干啥,这真是让我反思。好了继续读代码大全,我开始烦了已经,因为它太厚了。过渡工程,这个问题把握好并不容易。一方面,我们希望系统健壮,如果组成系统的各个部分只在最低限度满足健壮性要求,那么整体通常是达不到要求的。软件健壮性不取决于最薄弱的地方,而是等于所有薄弱环节的乘积。构架应该指出每个部分,程序员为了谨慎而宁可做过度工程,还是做出简单的能工作的东西就够了。有些东西是不应该过分花精力的,这个错误我们也犯过,尤其一些一开始就知道以后很可能要重构的部分,大量的精力花在里面很浪费。

  有些东西我还是看不懂的,比如说这个叫做管理复杂度的名词,跟着老师上了一个学期的软件工程概论了,学了很多关于项目的介绍,我听到的是时间复杂度和空间复杂度这都是在说算法,书上说是软件构建的核心,好吧原谅我还小,不懂关于核心的东西。除了这些也学了一些小的知识,比如类的接口应提供一致的抽象,如果违背的话可能会引起很多的问题,类的接口应当隐藏一些信息――如某个系统接口、某项设计决策、或一些实现细节,这些我是有点看迷糊了,接口那么多讲究啊。而且类的包含比继承更可靠,这个,我还是没有经验,有什么更可靠的,是安全性么?哦,下面有说了,继承会加大复杂度,好吧,原来还有这茬,真是感受不到啊。

  然后是关于子程序的地方了,这和我们的单元测试是不是有点关系呢?创建子程序最主要的目的是提高程序的可管理性,当然也有其他一些好的理由。其中,节省代码空间只是一个次要原因:提高可读性、可靠性和可修改性等原因都更重要一些。有时候,把一些简单的操作写成独立的子程序也非常有价值。子程序可以按照其内聚性分为很多类,而你应该让大多数程序具有功能上的内聚性,这是最佳的一种内聚性。子程序的名字是它的质量的指示器。如果名字糟糕但恰如其分,那就说明这个子程序设计得很差劲。如果名字糟糕而且又不准确,那么它就反映不出程序是干什么的。不管怎样,糟糕的名字都意味着程序需要修改。只有在某个子程序的主要目的是返回由其名字所描述的特定结果时,才应该使用函数。细心的程序员会非常谨慎地使用宏,而且只在万不得已时才用。

  读了这些感觉是涨了点见识,虽然是被老书了,但是有些知识是不会过时的,我这样的起步者真是很需要吃到这些知识的。

时间: 2024-10-06 00:17:04

代码大全阅读笔记03的相关文章

代码大全阅读笔记(二)

代码大全这本书只看懂了一部分,现只对最有收获的部分写入笔记里 第七章 创建子程序的正当理由 (1)降低复杂度;(2)避免代码充分;(3)支持子类化;(4)隐藏顺序;(5)隐藏指针操作;(6)提高可移植性;(7)简化复杂的布尔判断;(8)改善性能 对于过于简单的代码写成子程序的两大理由:1 可以增加程序的可读性 2简单程序可能变成复杂程序 1 在子程序层上设计 内聚性强调把一件事做好,不再做其它任何事情这样做的好处是得到更高的可靠性 顺序上的内聚性是指在子程序内包含有需要按特定顺序执行的操作,这些

代码大全阅读笔记02

继续阅读代码大全这本书,感觉是好厚好难啃啊.刚刚开始读不久到了作者说把主要精力集中于构建活动,可以大大提高程序员的生产率.我想就一个项目来说,思路和设计是站着主导的地位的,你如果不能把思路理清,可能随时都有可能卡在那里,而一旦灵感来了,你就会想泉涌一样的来思路,我们也算是做了一个小的项目的了,虽然很low吧,但是好歹也算有点体会.我们总是在设计的时候会走投无路,不知所措,以至于每一次开始时都是没有思路起手都只能积压在那里,实在是不知道该怎么做.我觉得 P28 的那个食物链的例子更有说服力,健康的

代码大全阅读笔记01

又是一本经典的书<代码大全>,从豆瓣上看到了很多的好评,看了一点感觉大全确实是如其名,一路下来都是很实用的东西,有些虽然都接触到了,但是再看一遍仍旧是收益很大.首先,软件构建的核心就是管理复杂度.虽然书中有不少的篇幅来讨论变量.语句等等这些编程的基本要素,还包括代码改善和调整的策略和方法,可谓不无巨细.不过深入理解一下,这些内容都是围绕着上面这句话展开的,也就是软件构建的核心就是管理复杂度.而这一目标产生的根源就在于人脑智力同软件项目复杂程度之间的矛盾.书中常常会提到几个数字,差不多在6.7左

《梦断代码》阅读笔记03

书中说软件开发过程中遇到的最多的问题是“项目的进度远远落后于计划”.Chandler计划是3~4个月发布一个版本,但是每个版本都花了6个月以上的时间,这里面有诸多的原因.首先合适的衡量开发进度本身就是一件非常难的事情,也就是说计划本身太苛刻了.即使是检测软件开发的进度也是一件很痛苦的事情,用代码数量或者缺陷减少数目来衡量有过偏颇,文中提到了MBWA的方法,但是这个方法很难得到一个总体的开发进度.其次是软件开发的计划往往超出了能预见的范围,致使软件开发一只停留在设计阶段,引用文中的一句话,“用今天

代码大全阅读笔记(三)

一  使用指针的一般技巧 错误的使用指针,给一个坏了的指针赋值时,会把数据写入本不该写值的内存区域.这称为内存破坏而更正指针错误的大部分工作量是找出它的位置. 正确地使用指针要求程序员采用一种双向策略.第一,要首先避免造成指针错误.指针错误很难发现,因此采取一些预防性措施是值得的,其次,在编写代码后尽快的找出错误来 二 寻找错误的方法 1 把指针操作限制在子程序或者类里面 2 同时声明和定义指针 3 在使用指针之前检查指针 4 先检查指针所引用的变量再使用它 5 用狗牌字段检测损毁的内存(“标记

代码大全学习笔记(什么是构建)

  构建有时也被认为是"coding"或者"programing".编码算不上是最贴切的词,因为它有一种"把已经存在的设计机械化的翻译成计算机语言"的意味,而构建并不是机械化的,需要可观的创造力和判断力,人们常常用编程代替构建.   构建的步骤: 1.验证前面的工作已经完成(如定义问题,需求分析). 2.确定如何去测试所写的代码. 3.设计并编写类或者子程序. 4.创建并命名变量和具名常量. 5.选择控制结构,组织语句块. 6.对你的代码进行单元

代码大全读书笔记 - 开篇

说起来,<代码大全>这本书书名实在恶俗.在我推荐给展鸿的时候,他说"雾草,这名字看着就像天朝地摊那种XX全书一类的山寨书-" 是的,其实买这个书的原因就是京东买100减30,我买了10块钱的东西,凑了一下单,书到手之前还以为是代码清单,或者以前ACM模板一样的书,甚至买来的一个月里面都拿来当枕头(足足10+cm厚). 这个周末偶然的翻开,才发现,世界上竟然有如此精彩的书,而且很多东西讲的虽然是软件项目,但给了我很多引申到其他东西上面的灵感.很多地方我读到之后,都会兴奋的心跳

《代码大全(第二版)》阅读笔记03

我们总是会从老师那里听到关于软件架构之类的话,但是事实上并不怎么了解,通过这本书,我了解了更多的关于架构的知识. 软件架构是软件设计的高层部分,是用于支撑更细节的设计的框架.架构指的是适用于整个系统范围的设计约束,而高层设计指的是适用于子系统层次或多个类的层次上的设计约束(但不是整个系统范围的设计).而且架构的质量决定了系统的“概念完整性”.继而决定了系统的最终质量.一个经过慎重考虑的架构为“从顶层到底层维护系统的概念完整性”提供了必备的结构和体系,它为程序员提供了指引---其细节程度与程序员的

《代码大全》阅读笔记03

这一篇主要讲第三章做任何事情都需要前期准备,在软件开发中更是如此,尽管如此,还是有很多程序员接到任务后就是想着尽快编码,很多老板不重视软件开发的前期准备.要想保证一个软件的质量,在前期准备,需求分析,架构设计,编码,测试,维护等每一个环节都要重视质量.具体程序员接到任务的时候要检查一下在你之前的那些软件活动有没有准备好,如果需求中有好多没有说明的地方,架构设计也不明确,你不知道需要和其它模块之间如何通信,基础组件啥也没有,这种情况下进行详细设计和编码会很受罪. 前期准备所花费的时间是不容易把握的