代码大全学习-7-设计的实践

代码大全学习笔记 一、《代码大全》简介 Programmingis neither fully anart nor fully a science. As it's typically practiced, it'sa "craft"that's somewhere between art and science. At its best, it'san engineeringdiscipline that 阅读详情

前面一节的启发主要专注于设计的属性,也就是最终的设计是什么样的,这一节的启发则专注于设计的实践,即通过怎样的步骤可以得到好的结果。同样是启发式,所以也有各种各样的方法。

  1. 迭代。一般来说第二次的设计都会比第一次的好,而且我们会从每一次设计中学到东西,从而提高整体的设计水平。
  2. 分而治之,各个击破(Divide and Conquer)。人脑的容量,处理能力都有限,对于大的问题我们只能分层分块去处理来提高效率。自顶向下也好,自底向上也好,各有利弊,要灵活运用,不要一棵树上吊死。
  3. 原型实验(Experimental Prototyping)。有时候实在不知道一种设计是否可行,就需要做简单的原型实验来验证。这里一定要注意原型就是原型,是验证完就扔掉的代码,千万不要想着可以用在正式的项目中。如果那样想的话,设计原型的时候就会考虑太多,付出太多的时间和经历,增加成本,实际上并没有起到原型该起的作用。
  4. 合作设计。三个臭皮匠,顶个诸葛亮。不管是正式的也好,非正式的也好,聊天也好,开会也好,发邮件也好,跟帖子也好,总之,要集思广益。
  5. 设计做到什么程度算好?这个取决于很多个因素,包括文档的正式程度,开发团队的经验,开发的系统的预期寿命,所需的可靠性,安全性,项目的大小等等。
  6. 记录设计过程和结果。除了传统的写一个正式的设计文档以外,还有很多种其他的方法。比如把一些关键的设计决定放在代码的注释里,把讨论的论点和结果都放在一个Wiki上,发备忘的邮件,直接用相机拍下画在白板上的图或者讨论,用大的挂图来展示设计方案,用小的卡片来记录和调整类的职能和关系,用UML图来把设计做到某个层次等等。

总而言之,设计太过详细或者太不详细都是不好的,要适当,不要拘泥于条条框框,要用各种启发式的方法,一次又一次的尝试,最终会得到满意的设计。

最后,附上第五章构建中的设计的checklist。


      

项目代码学习心得,结合《代码大全 虽然这是一个类似于api形式的项目,每个api里面只有固定的get,post,之类的才能成为方法。如果我在这个现有的风格上做一些修改,应用一些诸如《代码大全》中定义的“最合适7”的规则,或者一个函数的篇幅最好是一个屏幕那么高的规则,那么会在现有的代码中显得格格不入。我还是把自己的心得记录下来,作为自己的一种追求和努力的方向吧!如果以后有机会,还是需要在一个能够提升代码风格的项目组锻炼下。 一个函... 阅读详情

相关推荐

学习代码大全

     今天弄到了一本《代码大全》电子版,决定好好读读。说来惭愧,虽然从事开发工作也有几年,但是理论上没有什么长进,发表不出什么感悟。就先当是写读书笔记把,把自己认为可以好的需要重复学习的地方用记录的方式来加深印象吧,希望朋友们多多指教!一、软件构建活动中的具体任务( task) 。1、验证相关的基础工作已经完成,因此(使)构建工作可以顺利进行下去。2、确定如何测试所写的代码。3

赏金猎人@技术博客--asp.net,asp,delphi 584

代码大全》读书笔记一

     最近在看《代码大全》,它确实是一本难得的好书,很多困惑都在里面找到了答案。现在天天上班&加班,只能晚上熬夜读书了。好久没有这么勤奋过了,高中毕业以后就开始变懒了,到了今天再也懒不下去了,生活的压力好大------     不过深夜看书还真有中久违的感觉,只不过高中时是打着手电看小说(注:可不是武侠或者琼瑶大妈之类写的书,偶是只看名著滴)。900多页的书经过一个星期的熬夜总

piaoliu的专栏 650

书籍-Steve McConnell《代码大全

代码大全》是一本关于软件构建的百科全书式著作,系统地介绍了从代码级设计到实现的完整过程。全书分为七个主要部分:打好基础部分涵盖软件构建的宏观视角、隐喻使用、前期准备和构建决策;创建高质量代码部分深入探讨设计原则、类与子程序设计、防御式编程、伪代码编程和代码布局;变量部分详细讨论变量命名、初始化、作用域、生命周期和持续性;语句部分全面覆盖组织直线型代码、条件语句、循环语句、不常见控制结构和表驱动方法;代码改善部分重点介绍重构、代码调整策略、性能优化和代码调整技术;系统考虑部分探讨程序规模对构建的影响、集成、

d3y1`5 81_09 1040

代码大全学习摘要(一)变量名的力量

近段时间一直听人t

风小锐的专栏 1184

代码大全学习摘要(四)伪代码编程过程

今天阅读的是《代码大全》的第9章——“伪代码编码过程”。看罢本章,我对于编程的方式方法又有了新的认识。可谓是我认为收获最大的一章。决心按书中的方法去自己实践一下。 正如作者在这一章末尾提到的,“这本书的一个目的就是告诉你如何脱离那种先东拼西凑,然后通过执行来看代码是否工作的怪圈”(就我自己写代码的过程来看。与这样的方式很相似),在没有全然想好类和...

diandingyin9417的博客 231

wordvba编程代码大全_这几本基础编程书籍一定要看

程序员书库(ID:OpenSourceTop) 编译书单来自:https://simpleprogrammer.com/best-programming-books-2019/关于程序员类的技术书籍有很多,但是往往没有时间阅读,下面的这些书籍,由John Sonmez精选,可以帮助软件开发人员打下其领域所需的基础1、《代码大全(第2版)》这本书里涵盖了许多如何编写良好代码的建议,无论你使用何种编程...

weixin_39743511的博客 1471

代码大全(读书笔记)

代码大全(读书笔记) 2021.06.27 开始阅读此书,这篇文章记录了一些读此书或者这款时间工作生活的一些心路,希望自己能持续从此受益。 2021.08.05 此次阅读的关注点在第 3/4/6/7/12/13 章 我虽然是计算机行业从业者,但本身不是计算机专业出身,很惭愧没能更早的耳濡目染更多基础但不可忽略的知识,虽此行业已被很多其他行业从业者开始逐步进入,但私以为最基本的素养不应该被降低,也因此不断提醒和鞭策自己,学习是一件不得不做且应该去做的事。—2021.06.27 文章目录代码大全

LynnWonder 558

代码大全》笔记

代码大全》2 学习笔记,随手记录值得记录、便于记录的知识点,不定时更新。

Coolbike的博客 430

代码大全(Code Complete)-- 目录和关键点

这本书几乎占据所有“大神”推荐书单的前三甲,最主要的原因是这本书不是针对某一种语言,而更像是所有程序员应该遵守的“交规”。就像你可以在驾校开着车子绕圈,但是在驾校学会开车以后,在上路之前你还得把交规背熟,不然你就是“马路杀手”。写程序也一样,你如果不遵守写程序的“交规”,就会在你写的程序里横冲直撞,把零件散落到程序的所有地方,并且影响到团队的其他人的工作。   这本书不用太费脑子,但是在写程序之前最好能过一遍。

Java之旅 5991

代码大全》第一章 读后

《code complete》 中文名字叫代码大全,偶然间发现这本书,看这本书的评价不错,就搞来看看,800多页,这本书初步看,是关于编码风格规范以及软件构建的一本书,编码风格规范一般人都能明白是什么意思,但是做到的人不多呵呵,至于软件构建,乍一看,有点思路,觉得就是软件的设计,或者说架构设计或者说功能设计之类的,但是也说不明白,看了第一张之后,才明白了什么是软件的构建。 ...

xu4661273的博客 178

代码大全学习总结--成为一名精致的开发者

作者:小 琛 欢迎转载,请标明出处

qq_44745063的博客 727

python代码大全简单,python代码有哪些

一定要注重代码规范,按照平时的代码管理,可以将python代码规范检测分为两种:静态本地检测:可以借助静态检查工具,比如:flake8,pylint等,调研了一下,用flake8的相对较多,功能满足,本文将使用flake8git:可借助git hooks,本文推荐使用pre-commit。举个例子,开发和维护数据分析的pipeline可以说的上是生信工程师的日常了,对于这样一个需要长期维护的项目而言,在开发阶段,遵循统一的代码规范,可以将任务拆分,分配给团队的不同人员进行开发,提高效率;

2301_81896102的博客 349

编程新手如何选择学习资源?这7个平台让你少走5年弯路

想高效入门编程却不知从何学起?本文提供实用的编程学习资源推荐(书籍 / 课程 / 平台),涵盖零基础适用场景、自学路径规划与高性价比平台对比,帮你避开试错陷阱。7个精选资源助你系统进阶,值得收藏。

SimProceed的博客 1016

代码大全学习笔记7

第七章 7.2 在子程序层上设计 内聚性:指子程序中各种操作之间联系的紧密程度 功能的内聚性:实现功能单一且与子程序名字相符 顺序上的内聚性:意思就是一个子程序的执行,最好与另一个子程序的执行,没有依赖或者说顺序关系; 通信上的内聚性:其实我个人的理解这个问题还是功能的内聚性; 临时的内聚性: 过程的内聚性: 逻辑上的内聚性:如果子程序位移的功能就是发布各种命令,其自身并不做任何处理,这通常也是...

u012850592的博客 208

python代码大全和用法,python所有代码

这篇文章主要介绍了python代码大全和用法,具有一定借鉴价值,需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获,下面让小编带着大家一起了解一下。

wangyanqin0227的博客 1337

wordvba编程代码大全_程序员必读的基础编程书籍

关于程序员类的技术书籍有很多,但是往往没有时间阅读,下面的这些书籍,由John Sonmez精选,可以帮助软件开发人员打下其领域所需的基础。 John Sonmez 是Simple Programmer网站的创始人。他是一名软件开发人员的Life Coach,同时还是畅销书《软技能:代码之外的生存指南》的作者。1、《代码大全(第2版)》这本书里涵盖了许多如何编写良好代码的建议,无论你使用何种编程...

weixin_39928818的博客 1111
上一篇: 代码大全学习-6-启发式设计
下一篇: 代码大全学习-8-创建高质量的类
tyst08
博客等级 码龄19年 1822粉丝 97原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值