花20分钟写一个能自动生成小学四则运算题目的“软件”,要求:除了整数以外,还要支持真分数的四则运算。将代码上传至coding.net,并将地址发布至自己的博客。

代码链接:xinz

在一周之内快速看完《构建之法》,列出你不懂的5-10个问题,发布在自己的博客。

p76--断言是什么?

百度百科: 编写代码时,我们总是会做出一些假设,断言就是用于在代码中捕捉这些假设。断言表示为一些布尔表达式,程序员相信在程序中的某个特定点该表达式值为真,可以在任何时候启用和禁用断言验证,因此可以在测试时启用断言而在部署时禁用断言。同样,程序投入运行后,最终用户在遇到问题时可以重新启用断言。使用断言可以创建更稳定、品质更好且 不易于出错的代码。当需要在一个值为FALSE时中断当前操作的话,可以使用断言。单元测试必须使用断言(Junit/JunitX)。

p78 代码复审 代码复审究竟要复审什么?又有什么作用?既然代码可以成功完成既定目标,那复审的意义又是什么?

p97 看了很多软件团队的模式,有主治医生模式,明星模式,社区模式等等。以及功能团队模式,有官僚模式。开发流程有写了再改模式等。但是,可能是我拜读不深吧,看完还是么能理清团队如何合作,团队里的每一个人负责什么。要一起写需求设计吗?还是一部分人负责?有没有具体的例子可以帮助理解呢。一个公司开发一个大项目,要如何才能让一个软件团队有条不紊等工作,他们之间如何分工,如何把所有人所负责的部分整合成一个项目?

p161 用户调研 在现实中大部分软件都和用户需求的有差别,究竟怎样也能准确的抓住用户需求呢?

p240 1. 关于小飞拿到spec之后做的估计开发任务所需时间,他是根据以前同类任务所需花费的实际时间以及其他同事的时间估计的。以现阶段我们学生的角度,该如何估计一个项目开发所需时间呢?

软件有很多种:包装在盒子里的软件、基于网页的软件、企业或学校或某组织内部的软件、游戏、手机应用、操作系统、工具软件,选取三种软件,请分析它们各自的特点。

1)这些软件开发者是怎么说服你(陌生人)成为他们的用户的?他们的目标都是盈利么?他们的目标都是赚取用户现金么么?还是别的?
2)这些软件是如何到你手里的(邮购,下载,互相拷贝)
3)这些软件是如何处理Bug的?又是如何更新新的版本的?
4) 同一类型的软件之间是如何竞争的?
列举你在使用上述软件时观察到的“特殊”现象,它们和硬件有什么不同?这些能说明软件的某些本质特性么?

游戏

主要通过各式各样的广告宣传,目标是盈利
主要通过下载,当时五年级,感觉主要就是好玩,然后就是为了变强或者获得更炫酷的皮肤而贡献软妹币。
通过补丁来修复bug,通过
主要通过大型IP或者情怀还有各种优惠活动来吸引玩家。

企业或学校或某组织内部的软件

一般都是强制性使用,目标是方便管理用户等
企业学校发放 感觉就是很一般,毕竟是强制使用
基本不处理Bug,能用就凑合用,也不会更新
通过更适应用户需求来竞争

工具软件

一般是用户主动使用,目标是方便用户进行操作
大部分通过互相拷贝,感觉就是挺有用的
通过更新来处理bug,更新版本就是发布一个新的软件。
竞争看谁的功能更符合人们的习惯

软件不能独立存在,总是要运行在硬件上面,体现了软件的服从性。软件可以随时更新换代体现了易变性。

团队:皮炜(组长) 魏仁杰 孟凡锚 王银龙