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

举报
惘纬 发表于 2020/08/07 06:59:28 2020/08/07
【摘要】 软件编程基础工具 16 纯文本的威力 将知识用纯文本保存纯文本不会过时,它能够让你的工作事半功倍,并能简化调试和测试工作17shell游戏 发挥shell命令的威力 当图形界面无法胜任时,使用shell 18加强编辑能力 游刃有余的使用编辑器既然编辑器是至关重要的工具,不妨了解一下如何用它更快更准确的实现需求 19版本控制 永远使用版本控制 ...

软件编程基础工具

 

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继承税

       不要付继承税

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

 

       尽量用接口来表达多态

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

 

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

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


       利用mixin共享功能

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

32配置

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

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


【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

举报
请填写举报理由
0/200