构建之法阅读笔记

构建之法阅读笔记

在上一次,我读了大道至简,在大道至简中,我理解了软件开发所需要的是简化与便捷,这是软件工程需要思考的地方。而在构建之法中,我学到了软件开发中更符合我的问题的东西。

书中说,软件工程师的成长分为四个阶段:玩具时期,爱好者时期,探索者时期,行业时期。在这四个时期中,我处于玩具时期。还没有掌握最基本的东西。

我们在学校中学习的只是如何去做软件,但是软件是给用户用的,用户不会去考虑软件的内核,软件的原理,用户的感受就是直观的界面,我们需要考虑客户的各种错误,提高软件的容错率,即使是再小的错误也要完善,因为再微小的错误也可能在用户手中发生。

软件的特点:复杂性,不可见性,易变性,服从性,非连续性。这些特点决定了软件工程师需要克服的方向。

软件工程相对于计算机科学,更注重短期的实际结果与实践性,可靠性,在多种角度中寻找最成熟的实践方法来实现工程。

软件不是完美的,他是需要后续不断完善的,软件工程师需要做的是在预计的时间完成 “足够好” 的软件,并且给软件留出后续的发展空间。

单元测试

单元测试,我读了这本书才知道有单元测试这个东西,他更像是写完一小部分就运行一下看看对不对,但是单元测试把这个步骤模块化了,单元测试不需要将所有的错误都测出来。

代码的复杂性决定了单元测试的复杂性,所以需要将代码简化,但是简化的同时可能面临代码运行的低效率,所以可以单独给效能写一个单元测试。

一个软件工程师和一个软件工程学生在一个软件上所花的时间占比来看,软件工程师更多的将时间放在了分析需求和计划中,编程的时间反而少了很多。

GitHub 上管理自己的代码

  • 软件开发中遇到的问题:分析麻痹,分析过多的依赖关系而不去实际解决问题

  • 不分主次:看见什么问题就去解决什么问题,不去分析其中的依赖关系

  • 过早优化:在还未完成一个软件的时候就开始对功能进行修改优化

  • 过早扩大化:说白了就是乱画饼,最后自己根本没有能力去实现

  • 舒适区:低层次问题(自动操作) 学习区:中间层次的问题(花脑力解决) 恐慌区:高层次问题(无暇顾及)

在学习的过程中,我们应扩大自己的舒适区,把基础操作变成自动操作,而去加固自己的学习区,恐慌区会慢慢移动到学习区。

据构建之法中所说:缩进最好的是四个空格,行宽应设置为 100,应用括号把优先级括起来,{} 都需各占一行。

命名问题:在命名时可以把变量的前缀,修饰词去掉,前提是不影响阅读,做有必要的精简,名字要直达意义。下划线用于前缀。大小写:类和函数名第一个字母都大写,变量的第一个单词小写,后面的单词首字母大写。

  • 注释问题:注释的意义在于了解程序是做什么的,为什么这样做。避免无用注释,注释应写在函数前面。
  • 函数问题:一个函数只需要做一件事,并且要做好。

要在软件中做好错误拦截,优化用户体验。

对于团队合作,我目前还没有体验过,但是从书中我了解了团队合作可以帮助程序找出隐藏错误,并且可以相互影响。

在如何进行工作方面,我也是没有头绪的,我还处于玩具阶段,还没有资格去参与到工程制作中。

总的来说,软件工程是面向人的工程,我们所做的一切,不考虑学术方面的东西,我们做出来的东西是为人服务的。

原文地址:https://www.cnblogs.com/L-L-ALICE/p/14909731.html