构建之法阅读笔记01
今天阅读了构建之法的第一章绪论,第二章个人技术和流程和第三章软件工程师的成长
首先在绪论中讲了了解了一些软件工程的基本知识.
Build To Learn:开发软件,构建系统的目的是做进一步的试验,试图发现客观规律或某个试验方法的优点与缺点。这些项目经常是科研论文的基础工作。
Build To Show:为了突出地展现某个技术的作用,开发一些演示为目的的软件,这些项目很吸引眼球,经常获得新闻报道,但是功能未必全面。
Build To Serve:为了服务一定范围的目标用户而构建的工具等,有时以公开的SDK形式发布。
Build To Win:以在市场上赢得用户为目标而构建的软件。这也是种种科学发现,技术突破最好的试金石。这是我在研究院之外的十余年中做的最多的项目类型,也是这本书的英文名字。
软件=程序+软件工程;同时可以推出拓展的理论,软件企业=软件+商业模式
在第二章学习了个人的技术和流程。就是个人进行的软件测试。那么单元测试有什么标准呢?
单元测试有以下标准
在最基本的功能/参数上验证程序的正确性
单元测试必须由最熟悉代码的人(程序的作者来写)
单元测试过后,机器的状态保持不变
单元测试要快(一个测试的运行时间是几秒钟,而不是几分钟)
单元测试应该产生可重复、一致的结果
独立性——单元测试的运行/通过/失败不依赖于别的测试,可以人为构造数据,以保持单元测试的独立性。
通过以上的标准我们可以不段完成相应的单元测试,减少bug的发生,单元的独立性较强,兼容性也会更好。
其次就是个人能力的培养与发展,人们都是有初级工程师成长来的,初级工程师包括以下几种
(1)积累软件开发相关的知识,提升技术技能(如对具体技术的掌握,动手能力)。例如:对JAVA、C/C++、C#的掌握,诊断/提高效能的技术,对设备驱动程序、内核调试器的掌握,对于某一开发平台的掌握
(2)积累问题领域的知识和经验(例如对医疗或金融行业的了解)
(3)对通用的软件设计思想和软件工程思想的理解
(4)提升职业技能(区别于技术技能),包括:自我管理的能力、表达交流的能力、与人合作的能力、按质按量完成任务的执行力
(5)实际成果——最重要的评价标准
所以最后我们可以通过评估表来评测自己的程序水平