第二部分:创建高质量的代码

  第一部分主要介绍了开发过程和需求分析,强调了构建的重要性,可以说十介绍了技术层面的一些东西。第二部分把目光放到了更加细节的地方,也开始看到了一些代码。内容十分全面,也写了很多写代码时的个中注意事项,作者致力于构建一个已于理解和管理的代码。

  再编码前一定要理清思路,比如画图,画xml,想好逻辑怎么做,新增哪些数据结构,命名;写软件时要注意管理时间复杂度,复杂度是设计的重要指标。将软件进行划分,每个最小集的复杂度尽量降到最小,目的是写出易于维护扩展、有层次性的代码。总之设计是一个很重要的过程。

     类 = ADTs + 继承 + 多态

  书中指出类中所包含的成员变量最好不要超过七个,继承体系不能过多,过多意味着复杂度变高,最好不要超过六层,最好在构造函数中进行成员初始化,构造函数要注意深浅拷贝。类是对现实世界的一种建模,为抽象的一种建模,类中可以隐藏信息,比如一个具体的复杂算法或者一个协议,隐藏在类中,对类外暴露接口即可。类提高了代码的重用性,和代码的层次感。

  防御式编程“只有10%的代码是让程序去做该做的事,90%的代码是让程序不去做不该做的事”文章介绍了几种防止错误的方法和异常处理的技术,根据项目的集体要求来确定程序中要保留多少防御性代码,过多的话会增加代码的复杂度,是系统变得臃肿和缓慢。

  第一部分:https://www.cnblogs.com/wxy2000/p/11054932.html

  

  

转载于:https://www.cnblogs.com/wxy2000/p/11057465.html

代码大全阅读笔记02相关推荐

  1. 《梦断代码》阅读笔记02

    在第四章<乐高王国>中,有一段是Chandler的后台工作陷入了作出艰难技术决定的迷宫,而麦卡斯科猛然间发现自己正深处迷宫中央.麦卡斯科曾经在自己的"树龙"blog中记 ...

  2. 代码大全阅读笔记01

    软件开发过程中的不同活动:定义问题.需求分析.规划构造.软件架构(或高层设计).详细设计. 编程与调试.单元调试.集成测试.集成.系统测试.保障测试.构建活动主要是编码与调试,但也有其他 的活动. 构 ...

  3. 《计算之魂》阅读笔记 02

    <计算之魂>阅读笔记 02 1.3 怎样寻找最好的算法 例题 1.3 方法一:三重循环 方法二:二重循环 方法三:分而治之 方法四:正反扫描 [思考题 1.3.1] [思考题 1.3.2] ...

  4. 《代码大全》阅读笔记02

    上一篇主要讲了软件构建 第二章 用隐喻来更充分的理解软件开发  我们平时把软件编码叫做写代码,让外行人听起来像是在写文章,就是把你心里的想法一点一点的有条理的写出来,在这一点上,编码和写文章确实有相似 ...

  5. 梦断代码阅读笔记02

    最近读到了第四章,大体讲了: 模块化和组件化是软件人员的梦想,谁都想把几个模块插到一起就可以完美的运行并完成任务,但现实却相当残酷,可以运行的模块通常不能与自己想写的程序配合工作,好的源代码由于商业利 ...

  6. 梦断代码 ---阅读笔记02

    Agenda之魂 由于不知道Agenda的意思,所以去查了一下,它是议事日程; 待议诸事项一览表; 日常工作事项; 议程的意思.不过在本书中确实一个项目的名字,它是为解决各种信息的管理问题. 继续努力 ...

  7. onvif学习笔记7:一个C++封装的onvif代码的阅读笔记

    在前面的文章<onvif学习笔记4:Windows环境使用gsoap生成onvif框架代码>.<onvif学习笔记5:onvif框架代码初步了解>中,我们了解了如何生成不同的版 ...

  8. 《梦断代码》阅读笔记01

    这几天阅读了老师推荐的<梦断代码>前几章,通过本书简介可以知道本书大概主要讲的是做软件过程中的困难. 第一章软件时间,主要讲的是从事软件制作行业的艰辛,需要没日没夜的加班工作,书中有这样一 ...

  9. 《梦断代码》阅读笔记之第8章至最后

    以下是我读了梦断代码第八章之后的读书笔记: 1.自己做的软件自己一定要用,即"吃你自己的狗食",自己的软件开发出来后自己都不会用那么还要指望别人用不成? 2.在软件开发编写代码的时 ...

最新文章

  1. CSS中background-position属性
  2. matlab 基于Topsis的熵权法
  3. IntelliJ IDEA2018配置SVN及常见问题解决
  4. python生成二维码、动态二维码 和 而二维码解析
  5. Spring的AOP使用xml配置
  6. invokeRequired属性和 invoke()方法
  7. mybatis里的日志实现顺序
  8. linux下c和c++互相调用
  9. RabbitMQ 基本概念与高级特性
  10. 《Cisco/H3C交换机高级配置与管理技术手册》目录
  11. php gd support not found.,安装php71w-gd并获取错误GD库扩展不适用于此PHP安装
  12. nginx+php-fpm配置后页面显示空白的解决方法以及用nginx和php-fpm解决“502 Bad Gateway”问题...
  13. Netty 网络框架概述 与 快速入门
  14. FPGA入门实验试验报告
  15. pandas缺省值处理
  16. 【JAVA】360-2021校招笔试-技术综合A卷-0911
  17. MySQL数据库笔记
  18. 已解决ValueError: All arrays must be of the same length
  19. Proxmox VE退出集群模式
  20. 特步发布三款竞速跑鞋,岳云鹏赵奕欢完成3.21公里破速挑战

热门文章

  1. C#3.0 为我们带来什么(5) —— 匿名类型
  2. 48.动态分区匹配算法(连续分区)
  3. 程序员必备的在线编程辅导平台之TutorialsPoint
  4. AMD的AI策略与Intel和Nvidia有何不同?
  5. D/A与A/D转换器
  6. Socket心跳包机制
  7. python循环报数游戏_python经典面试题之一:猴子报数
  8. 可以看到对方是否打开_打开手机实景地图,连你家门口都可以清晰看到,方便又好用...
  9. Java开发主流框架是什么?
  10. 030_CSS外边距合并