《代码大全》读书笔记及随想(day01)

乱入传统软件行业,之前对软件工程一点概念都没有,读点书,仅此而已。


1.1 什么是软件构件?


通过阅读可知,软件构建主要就是指整个软件项目的编码过程或阶段。


那么一个软件工程都有哪些阶段呢?
大致可为:


1.定义问题(可能就是要解决什么问题)

2.需求分析(和客户的沟通应该很重要)

3.规划构建(是不是该谈钱了?)

4.软件构架(粗框)

5.详细设计(细框)

6.编码与调试(软件构建了)

7.单元测试(单个功能击破)

8.集成测试(链接bug吗?)

9.集成(不同模块的拼接)

10.系统测试(总体测试)

11.保障维护(后期的运营啦~)


在一些不正规的项目中,无法在软件开发过程中细分这么多的过程,基本都会被并入到编程的环境当中。

1.2 那么为什么软件构建如此重要呢?

1.构建活动是软件开发的主要组成部分。(在一个项目中大约会占到30%-80%的时间)
2.构建活动是软件开发中的核心活动。(不正规的项目中基本达到100%)
3.把主要的精力集中于构建活动,可以大大的提高程序员的生成效率。
4.构建活动的产物:源代码,往往是对软件的唯一的精确描述。(很多项目中,程序员可以得到的唯一文档就是源代码本身。)
5.构建活动是唯一一项确保会完成的工作。(也就是说可以没有别的流程%>_<%。。)

2.1 隐喻的重要性

重要的研发成果常常产自类比。通过把你不太理解的东西和一些你较为理解、且十分类似的东西作比较,你可以对这些不太理解的东西产生更深刻的理解,这种使用隐喻的方法叫做建模

2.2 如何使用软件隐喻

隐喻的作用更像是启示,而不是算法。算法是一套定义明确的指令,是你完成某个特定的项目,而启示是一种帮你寻找答案的技术。

对于编程来说,最大的挑战还是将问题概念化,编程中的很多错误都是概念的错误。(说的太好了!)
原因在于每个问题在概念上都具有独特性。(所以没有通吃的方法啦~)

那么该如何使用软件中的隐喻呢?应该用他来提高你对编程问题和编程过程的洞察力,用它来帮助你思考编程过程中的活动,想象出更好的做事的方法。(就是建模建的好,编程飞上天呗!)

2.3常见的软件隐喻

A.软件中的书法:写作代码(简单、呆板)

写信隐喻主要针对于个人开发,但不适合更大的软件项目常见,因为它没有完整、充分地刻画软件开发工作。

对于写作而言,最重要的事其原创性。但对于软件构架来说,努力创造真正的原创成功的开发效率,往往低于专注于重用以往项目的一些设计思想、代码以及测试用例的开发效率。(这种方法和《人月神话》好像还扯上了关系)

文字写作隐喻暗示着软件开发过程是一种代价昂贵的试错过程,而非仔细的规划和设计。


B.软件的耕作法:培育系统(一次做一点)

C.软件的牡蛎养殖观点:系统生长(先搭架在添加)

增量式的开发过程就是我们先搭建一个尽可能简单,但能运行的版本,然后在向这个版本一点一点的增加功能代码。这种隐喻的优势在于未做过过度承诺。

D.软件构建:构建软件(详细指引)

它与软件生长的概念相似,只是给出了更详细的指引,暗示出软件开发过程中有诸多阶段

适当的多层次的规划对于建造建筑物和构建软件都有好处。如果你按错误的顺序构建软件,那么编码、测试和调试都会更难。需要花更长的时间才能完成,甚至整个项目分崩离析。你只需要保证已经做了足够的计划,不会到后来因为计划不足而引发重大问题。

E.应用软件技术:智慧工具箱(拿来就用)

不同的隐喻是不同的启发方法而不是算法,因为它们并不互斥,你可以组合使用对你来说最有用的隐喻。

   
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值