读书笔记
读书笔记
beyond559
这个作者很懒,什么都没留下…
展开
-
《unix编程艺术》第十三章 复杂度
第十三章 复杂度 尽可能的简单,但不要简单过了头复杂度的来源1、代码量:代码的总行数2、实现复杂度:一个程序员从理解程序从建立思维模型到能够调用程序的困难程度3、接口复杂度:用户界面接口的使用复杂度,记忆负担越大,复杂度越大易于陷入的三种陷阱:1、manularity(人力尺度): 主要是为了避免接口的复杂度,将许多的底层实现任务都抛给用户。2、belivet(硬撑):主要为了避免代码量,而将程序设计非常晦涩的算法。3、adhocity(过专):主要是为了避免程序的实现复杂度,而对于每一个单原创 2020-10-12 18:00:49 · 308 阅读 · 1 评论 -
《unix编程艺术》第十二章 优化
第十二章 优化 最好的优化就是不做优化12.2 先估量,再优化 在有真凭实据证明程序运行缓慢时,才考虑进行优化,在优化前要先估量再进行实施。 要先明确程序的瓶颈在那里在开始进行优化,使用性能剖析程序profiler来进行估量。使用工具的出现的几个主要的问题体现在:工具本身自己运行而产生的误差;外部的时延;过度的调用图中顶部的节点。 将收集到的数据进行数学模型,进行分析,得出结果,得知问题出现的原因,在进行优化。12.3 非定域性之害 最有效的优化方法是保持代码的短小简单,永远不要将核原创 2020-10-12 11:02:54 · 178 阅读 · 0 评论 -
《unix 编程艺术》第十一章 接口
第十一章 接口 Uinx环境下的用户接口设计模式 一个程序启动之后通常通过以下三个方式来获得输入和命令: 1、通过标准输入进行获取 2、通过进程间的通信就是获取数据 IPC 3、通过已知位置的文件或设备进行输入数据11.1 最小立异原则的应用 最好避免设计一个全新的接口框架,尽量效仿类似的功能接口 如果可能的话,尽量将接口的功能用熟悉的程序来代替,如果不能的话,就效仿熟悉的程序来设计,尽量使用熟悉的设计让用户更好的使用。11.2 Unix接口设计的历史 1980年后,unix原创 2020-10-09 19:33:32 · 218 阅读 · 0 评论 -
《unix编程艺术》第十章 配置
第十章 配置 迈出正确的第一步10.1 什么应是可配置的 对于unix程序员而言,一切都可配置 对于能够可靠地进行自动检测的东西,就不要提供配置的开关,尽量用自动检测来减少配置开关的数量,后者在运行时不断尝试其他方法直到成功。如果觉得这个办法不够好,想一想是不是过早的优化了。 当想增加配置选项的时候,需要考虑以下问题: (1)能不能省掉这个功能,为什么除了增加用户手册的厚度之外还会增加用户的负担。 (2)能否用某种无伤大雅的方式改变程序的常规行为而无需这个选项。 (3)这个选项是否真的有用原创 2020-09-28 09:49:52 · 103 阅读 · 0 评论 -
《unix编程艺术》第九章 生成
第九章 生成:提升规格说明的层次尽可能的把设计复杂度从程序代码转移到数据是一个好实践,选择便于人类维护和操作的数据表示也是一个好实践数据比程序更易驾驭 9.1 数据驱动编程 将代码和代码作用的数据结构划分清楚,改变程序逻辑时,只需要 编辑数据结构 而不需要改动代码 数据驱动编程和面向对象的区别(OO 主要是以数据组织为中心的风格) 1、数据编程中,数据不仅仅是某个对象的状态,还定义了程序的控制流; 2、面向对象中,首先考虑的是封装,而数据驱动编程看重的是编写尽可能少的固定的代原创 2020-09-25 11:03:21 · 105 阅读 · 0 评论 -
程序员的自我修养-----第2部分静态链接总结
一、编译和链接编译的四个步骤:1、预处理2、编译3、汇编4、链接预编译预编译过程主要是处理那些源代码文件中的以 “#” 开始的预编译指令,主要规则如下:(1)将有所有的 “#define"删除,并且展开所有的宏定义。(2)处理所有条件预编译指令,比如:”#if"、"#ifdef"、"#elif"、"#endif"、"#else"。(3)处理 “#include” 预编译指令,将...原创 2019-04-03 01:03:33 · 270 阅读 · 0 评论