小学四则运算自动生成软件
读《构建之法》产生的问题
问题1:技能的反面指的是什么?
- 3.3技能的反面 P52
- P52第四段正文给出了“技能的反面”巴克斯顿的解释——“Problem Solving”即“解决问题”。当笔者读到后面的时候,发现后文主要讲的是:通过多次
解决低层次问题提高技能、不要好高骛远、低等级的模仿并不会带来更好的效果。似乎并没有对“技能的反面”做出解释。
笔者对“技能的反面”尝试理解了一下:
- 是指:我们通过不断的深入了解问题,不断的实践,最终知道如何去解决问题?
还是:通过多次实践,能把低层次问题顺手拈来的解决,唯手熟尔的去解决问题?
问题2:下划线能随性使用吗?
- 4.2.7下划线的使用 P63
- 文中写到:下划线用来分隔变量名字中的作用域标注和变量的语义,移山公司规定下划线不用在其他方面。
- 笔者平时在代码编写过程中习惯于在类名,方法名,变量名中普遍使用下划线,笔者觉得能增加代码可读性,例如:
class String_Tester{
void string_Test();
string test_string;
}
- 请问上述的做法是极不推荐的吗,需要改成不使用下划线吗?
问题3:小型本土团队能使用UTF-8编码作为统一的编码,并使用中文注释吗?
- 4.2.9注释 P64
- 文中写到:注释包括所有源代码应该只用ASCLL字符,尽量不使用中文或其他特殊字符。
因为并非每个人都拥有比较高的英文能力,与其查字典后再来阅读代码,还不如直接写中文注释,减少阅读时间。
笔者接触的编译环境比较少,请问推荐使用UTF-8编码吗?
问题4:渐进的价值指的是什么?
- 7.2.5重视商业价值,提供渐进的价值 P131
- 一个沉溺于技术而忽略商业价值的团队往往是失败的,所以需要重视商业价值。
- 在P132底部,阿超说道:一些原本闭源的项目后来变得开源,是因为商业因素。
此处的商业因素是指:开源的社会价值、公司的名誉价值 吗?
这些商业因素是不是就是标题所描述的渐进的价值?
问题5:集合的分割
- 17.2其实还是人的问题 P361
- P={P1,P2,P3,P4,P5}
P1=做事的,P2=不做事的,P3=不让别人做事的,P4=做假事的,P5=假装做事的
不难发现他们之间有交集,比如P4是P1的子集,P5是P2的子集。即第四类、第五类跟前面的两类其实是属于前面的两类人,则出现矛盾。
笔者提出一个大胆的建议:
- P={P1,P2},P2={P2-1,P2-2,P2-3,P2-4}
P1=做实事的,P2=不做实事的,P2-1=旁观不做事的,P2-2不让别人做事的,P2-3做假的事的,P2-4假装做事的。
问题6:大棒和小强的地狱指的是什么?
- 17.4萝卜与白菜 P369
- P370底部阿超说:我们要胡萝卜和大棒并用。我们的大棒就是“小强地狱”。
是指让“明星开发人员”去解决他自己代码中所有的Bug(甚至别人的Bug),以此种方式惩罚他,让他体会Debug的痛苦,并使其反思,最终让其慢下
来吗?
- 并在最终的时候让萝卜与白菜共存吗?
更多
- 这是笔者读到最诙谐最直白没有之一的专业书
书中讲到合作,需要为他人着想,但很多情况下都是懂事的人来操心一切。
书中讲到团队,团队必然少不了要为了共同利益,而非为了一己私利而勾心斗角。
书中讲到道德,很容易让笔者想到社会的阴暗面。
笔者不想去揣摩他们,只想在未来靠着自己的能力吃一份饭。
纵然世皆险恶,但像书中那般以纯真的眼睛去看世界,又岂是错的呢,至少是在程序员的世界里
软件特点分析
例1 Deepin OS
- 国产的发行版Linux系统
1)精美的毛玻璃效果,方便的雷神终端模式以及免费预装CrossOver(可以让Linux模拟运行Windows程序,付费而 且不便宜)
2)目标是推广桌面版,并通过服务器版盈利,桌面版完全免费,服务器版收费,面向专业用户
3)通过科技媒体了解到,并于官网下载安装
4)通过用户反馈得知Bug,并严肃处理每一个Bug,通过迭代更新,有正式版和预览版,正式版稳定且更新慢,预览版反之
5)精美的用户界面。
例2 Office套件
- 微软开发的用于办公的软件
1)强大的功能,精美的外观,清晰的布局
2)目的是盈利 399 RMB/年
3)通过工作学习了解,并随后下载(等工作了还微软正版 -_-)
4)发布之初几乎无Bug,通过发布新的版本,一个版本维持数年
5)垄断低位并不断推陈出新,几乎无竞争对手
例3 纪念碑谷
- 游戏,App Store 精华
1)完整的故事,精美炫酷的游戏界面,简洁简单的操作逻辑
2)目的是盈利 25 RMB
3)通过朋友交流了解到,在App Store付费购买
4)发布之初解决几乎所有Bug,目前为止没有新版,只有子版本
5)精美炫酷的游戏界面,上手容易程度。