首页 > 编程语言 >程序员修炼之道观后感4

程序员修炼之道观后感4

时间:2022-11-01 20:23:56浏览次数:38  
标签:代码生成 观后感 断言 程序 程序员 修炼 异常 schema

第19节 文本操纵

1、学习一种文本操纵语言。文本操作语言对于编程的意义,就像是刳刨机对于木工活的意义。

2、文本操作的案例。

  • 我们的测试数据有好几万条,散落在不同文件,如果需要进行合并并转换为特定格式,手动处理是无法想象的。但如果使用 Perl 几个小时就可以完成。
  • 数据库 schema 维护。可以写一组 Perl 脚本读取数据库 schema 定义的纯文本文件,根据它生成,用于创建数据库的 SQL 语句。schema 的 XML 版本等
  • 生成 web 文档。可以编写 Perl 程序,分析数据库 schema,C 或 C++ 源文件,及其他资源,生成 HTML 文档。
文中很多案例使用 Perl,这些工作也可以使用 Python 代替或者 Shell 里的 awk,sed 代替。

第20节 代码生成器

1、作为程序员,有时会需要我们在不同地方重复相同信息。如果出现这种情况,你就可以考虑构建代码生成器了。代码生成器就是编写能编写代码的程序。

2、有两类代码生成器:被动代码生成器和主动代码生成器。

3、被动代码生成器是独立执行的。它可以用来生成模板,版权声明,每个新文件的标准注释等等。

4、主动代码生成器会在每次需要其结果时被使用。比如根据数据库 schema 创建代码。

5、代码生成器不一定要生成代码,它可以用来输出任何格式的内容,比如 HTML、XML、纯文本等。

比如 iOS 里的三方库 R.Swift 就是一个根据资源名自动生成对应结构体的主动代码生成器。

第21节 按合约设计

1、注重实效的程序员会不信任自己,所以他们针对自己的错误行为进行防卫性编码。

2、按合约设计(Design By Contract,简写DBC)是 Bertrand Meyer 为 Eiffel 语言发展的概念。它的核心是用文档记载模块的权利与责任,并进行校验。它的目的是对函数做一些前置检查和后置保证,结合编译器的支持,我们能够尽早的发现代码问题。

3、DBC 有三个概念。

前条件:为了调用例程必须为真的条件。

后条件:例程保证会做的事情,其完成时的状态。

类不变项:其确保从调用者的视角来看,该条件总是为真。

4、Java 中的 iContract 框架是专为 DBC 设计的,它通过注释里的 @pre、@post、@invariant 声明这三个概念。它会读取注释并生成包含断言逻辑的源文件。Eiffel 则是通过 require、ensure、is 三个值表示对应概念。但是支持 DBC 的语言真的很少。

第22节:死程序不说谎

1、对待程序我们通常会有“它不会发生”的心理状态,这会导致我们忽视一些问题。对于注重实效的程序员来说,如果我们忽略了一个错误,将是非常糟糕的事情。

2、我们一些异常情况,我们应该及早崩溃,用于强调问题的存在。

3、引起崩溃的时候不要造成破坏,比如申请的资源还没有释放等情况。

4、死程序带来的额危害通常比有隐患的程序要小得多。

第23节 断言式编程

1、如果它不可能发生,用断言确保它不会发生。

assert(string != NULL)

断言里写的为真的条件,当不为真时触发断言,程序退出。

2、断言检查的是决不应该发生的事情,而不是错误处理。

3、断言应该一直开着,不要在线上环境关掉它。

断言对应的是一种强提示,它迫使我们必须遵守。像是单元测试,我们通常都使用断言的形式进行检查。

第24节 何时使用异常

1、异常很少应作为程序的正常流程的一部分使用,异常应该保留给意外情况。如果移除了所有的异常处理器,代码就无法运行,那说明异常正在被用于非异常情况中。

2、是否应该使用异常取决于实际情况。比如打开文件,文件不存在,是否应该发生异常?如果文件应该在那里,那么异常就有正当理由。如果不确定文件是否在那里,返回错误就可以了。

标签:代码生成,观后感,断言,程序,程序员,修炼,异常,schema
From: https://www.cnblogs.com/bu-dao-weng/p/16849007.html

相关文章

  • 黑马程序员C++
    C++基础入门1C++初识1.1第一个C++程序编写一个C++程序总共分为4个步骤创建项目创建文件编写代码运行程序1.1.1创建项目​ VisualStudio是我们用来编写C++......
  • 程序员想要快速晋升,应如何平衡技术实力和综合实力?
    职场晋升,作为程序员,要如何平衡技术实力和综合实力呢?我们先来说技术实力,提升它是有技巧的,有迹可循的。许多同学到了P7、P8就觉得已经到了职业瓶颈,感觉很难突破,但从我的视角来......
  • 十月阅读笔记2.《程序员修炼之道:从小工到专家》
    八:正交性正交性是一个从几何学中借鉴而来的术语,如果两条直线相交成直角,他们就是正交的。这在向量中的解释是沿着一条直线移动,你投影到另一条直线上的位置不变。在计算机中......
  • 十月阅读笔记1.《程序员修炼之道:从小工到专家》
    六:交流知道你想要说什么,当我们面临会议,重要通话,或者只是撰写技术文档,问下自己你要表达的中心想法是什么,围绕这一点进行展开。了解你的听众,选择风格,传达一个消息,可以是正......
  • 程序员修炼之道2
    为了找到未来的兴趣和生活,我决定看看《程序员修炼之道》这本书。现在,读完第一章后,这本书告诉我们如何成为一名合格的程序员,以及如何开发自己的程序和代码。在这本书中,我们......
  • 《程序员修炼之道》读后感
    抱着想找到未来的兴趣和生活的目的我选择了观看《程序员修炼之道-从小工到专家》这本书,目前看完了第一章,这本书向我们讲述了怎么样成为一个合格的程序员,以及怎样想出造出一......
  • 程序员修炼之道第四章读书笔记与感悟
      程序员修炼之道第四章读书笔记与感悟与其他工程技术一样,软件工程是一项充满细节的工作,跟踪这些细节需要集中精力。并且能够持续地做出大大小小的改进。最大的弱点就......
  • 程序员修炼之道
    在阅读了《培养程序员的方法:从工人到专家》之后,我收获了很多。从这本书中,我看到了这些前辈的经历,这给了我很多经验。基础对于软件工程非常重要。我们看到的干净、运行良好......
  • 10月读书笔记《程序员修炼之道——从小工到专家》
    本月,我进行了对《程序员修炼之道——从小工到专家》第二章注重实效的途径的学习。作者首先介绍了重复的危害。在最开始时,作者先分析了重复是怎么发生的,总共有四种......
  • 《程序员修炼之道:从小工到专家》读书笔记4
    在高质量软件中,你可以看到“架构的概念完整性”与“其底层实现”之间的关系。“实现”必须与(指导该实现的)“架构”保持一致,并且这种一致性是内在的、固有的。这正是变量名......