在完成软工实践第一次做业以后,老师在个人博客中评论布置了一个任务,用一周的时间通读构建之法,而后提十个问题。原本我还担忧这本书会不会很枯燥,能不能按时间看完,没想到这本书看起来妙不可言,让我欲罢不能,里面有不少的小故事和案例不只生动有趣,还包含了软件工程这门学科的一些专业知识。看完以后收获良多。如下是其中的一个十分有趣的片断:
python
en,争取作一只猪或一只鸡,而不是作一个鹦鹉,O(∩_∩)O。git
欢迎使用并提意见,由于老板在外出差,如今暂停了业务上的推广,可是2.0版本已经在开发日程上了。
程序员
我预想若是这个项目是多人开发,可能还会出现更多的问题,例如代码合并上、设计和测试上、后续维护上。单独开发避免了这些问题,却也给我带来了更大的工做量。(在这边替我老板发个招人广告,会微信小程序或者python django框架的,有兴趣一块儿接着作这个项目的,欢迎联系我O(∩_∩)O,让我一块儿通力合做,搭建出一个好的兼职平台,服务那些勤工俭学的小伙伴们,让他们没必要为了兼职的质量而担心)数据库
软件 = 程序 + 软件工程, 在以前的课程中咱们学习了怎么写程序,而并无教咱们怎么作工程,曾经我忽视了软件工程(这不就是合做写程序吗?),其实并非这么简单,其中的区别就像你们一块儿搬砖和你们一块儿盖大厦的区别这么大...django
虽然把构建之法看了一遍,可是时间仓促,虽然有作了一些笔记,可是仍是以为有些囫囵吞枣,其中提到的一些思想和方法还须要在之后的实践中进一步熟悉和掌握。这是一本须要一有时间就拿来翻翻看看、仔细揣摩的书。
小程序
一些在看书早期中记录的问题,都在后面的阅读中获得了解答。
例如: 开发的过程当中,学习到了新的技术可以促进开发,该怎么办呢? 这个问题在第十五章给了解答:微信小程序
15.1.4 招数:设计变动(Design Change Request)微信
通过Alpha/Beta阶段,移山团队收到了很多用户的反馈,有些是意料之中的,有些是意料以外的。你们都看到,原来的设计也有很多要改进的地方。有了用户反馈,你们也可以取得比较一致的意见。另外,你们也有了不少新想法。一时间,众说纷纭,不少人都嚷嚷着——DCR,DCR!网络
重写或重构app
小飞:咱们的某某模块真是太烂了,我以为必须重写,并且如今又有了新的技术叫“我佩服”(WPF)[或插入任一最近时髦的技术],它能作很酷的效果,为何不呢?
二柱:咱们先要看看,原来烂到什么程度,如今是否能完成功能?你所说的问题有多严重?是功能不能实现?或者界面有问题?或者不能扩展(例如:不能支持更多用户)?
大栓:另外,是重构,仍是重写?重构——在尽可能保持原有界面的基础上优化部分代码。重写——从新实现原有功能,同时,要分清是所有重写原有功能,仍是偷偷加上许多新的功能(Feature Sneak)?
小飞:我们找领导去,超总,看看我新写的功能。
阿超:你不是在修复这个模块的Bug么?怎么开始写新的功能了?
小飞:对,不过你是否是以为我加的这个新功能很酷,嗯……如今是有点慢,可是若是数据库再作一些对应的修改,好比增长缓冲之类的,那就更好了。
阿超:用户提到了这个功能么?这和咱们项目的远景有什么关系?数据库修改后,原来的用户数据要如何迁移到新的Schema下面?
小飞:嗯,可是用户若是看到了,就会喜欢的。
阿超:不少程序员有这样的冲动,在作修改的同时,想到本身还能作更多的事,有一个“东西”一直想作,可是提出几回都没人重视,那如今有机会,就“加进去”算了。或者还有不少灵机一动的想法。打个比方——原本是要修厨房顶上一个有时漏水的水管,结果修理工来了,修好了水管,同时灵机一动,加了一个带淋浴的豪华卫生间。
小飞:但这毕竟是新的想法,我觉得你会喜欢的。
阿超:记住项目的当前阶段是一个阻尼振荡的过程,要收敛和稳定。等到下一个版本开始的时候再进行发散的思考吧。若是你以为目前的设计有问题,咱们要用DCR来管理。
怎么作DCR?阿超给你们列出了DCR的要点:
如何提出DCR?
1)在提交一个DCR时,选用任务做为工做件类型,并在标题中标明DCR。
2)在DCR的描述文字中,说明:
a. 问题在哪里,问题的影响;
b. 若是不修改,会有什么后果?
c. 几种修改方案,各类方案的优缺点和成本。