云享读书会----《程序员修炼之道》笔记2

网友投稿 547 2022-05-29

软件编程基础工具

16 纯文本的威力

将知识用纯文本保存纯文本不会过时,它能够让你的工作事半功倍,并能简化调试和测试工作

17shell游戏

发挥shell命令的威力

当图形界面无法胜任时,使用shell

18加强编辑能力

游刃有余的使用编辑器

既然编辑器是至关重要的工具,不妨了解一下如何用它更快更准确的实现需求

19版本控制

永远使用版本控制

版本控制为你的工作创造了一个时间机器,可以用它重返过去

20 调试

去解决问题而不是责备

Bug到底来自你的失误还是别人的失误真的不重要他终究是你的问题需要你来修复

不要恐惧

不管是对银河系搭车客,还是对开发者来说都应这样

修代码前先让代码在测试中失败

在你修bug前,先创建一个聚焦于该bug的测试

读一下那些该死的出错信息

大多数异常都能告诉失败之物与失败之处。如果足够幸运你甚至能够得到具体的参数值

Select 没出问题

在操作系统或编译器中发现bug非常罕见,甚至在第三方产品或库中也是如此。Bug大多出现在应用程序中

不要假设要证明

在真实环境中证实你的假设—要依赖真实的数据集

务实的偏执

21 文本处理

学习一门文本处理语言

既然每天都要花大量的时间与文本打交道,何不让计算机帮你分担一二?

22工程日记

你无法写出完美的软件

软件不可能是完美的。对于在所难免的错误,要保护代码和用户免受其影响

23契约式设计

通过契约进行设计

代码是否不多不少刚好完成它宣称要做的事情,可以使用契约加以校验和文档化

24死掉的程序不会说谎

尽早崩溃

彻底死掉的程序通常比有缺陷的程序造成的损害要小

25断言是编程

使用断言去预防不可能的事情

如果一件事情不可能发生,那么就用断言来确保其的确不会发生,断言在校验你的假设,要使用断言在不确定的世界中将你的代码保护起来

26如何保持资源的平衡

有始有终

只要有可能,对资源进行分配的函数或对象就有责任去释放该资源提示

在局部行动

将易变的变量维持在一个范围内,打开资源的过程要短暂且明显可见

27不要冲出前灯范围

小步前进曲

由始至终

永远小步前进不断检查反馈,并且在推进前先做调整

避免占卜

只在你能看到的范围内做计划

28解耦

解耦代码让改变更容易

耦合使事物紧紧绑定在一起,以至于很难只改变其中之一

只管命令不要询问

不要从对象中取出值,在加以变换后再塞回去,让对象自己来完成这些工作

不要链式调用方法

当访问某事物时,使用的点号不要超过一个

避免全局数据

最好给每个方法增加一个额外的参数

如果全局唯一非常重要,那么将它包装到app中,但是,仅限于你真的非常希望它是全局的

29在现实世界中抛球杂耍

宁弯不曲

30变换式编程

编程讲的是代码,而程序谈的是数据

所有的程序都在变换数据—将输入转换为输出,开始用变换式方法来设计吧。

不要囤积状态,传递下去

不要把数据保持在函数或模块的内部,拿出来传递下去

31继承税

不要付继承税

云享读书会----《程序员修炼之道》笔记2

考虑一下能更好满足需求的替代方案,比如接口、委托或mlxln

尽量用接口来表达多态

无需继承引入的耦合,接口或明确描述多态性

用委托提供服务,“有一个”胜过“是一个”

不要从服务中继承应该包含服务

利用mixin共享功能

Mixin不必承担继承税就可以给类添加功能而接口结合可以让多态不再令人痛苦

32配置

使用外部配置参数化应用程序

如果代码对一些在应用程序发布后还有可能改变的值有所依赖那么就应用外部维护这些值

开发者 Shell

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Windows 10 SDK Preview Build 19035 现在可用
下一篇:Android NDK开发指南---Application.mk文件
相关文章