Free Mind map 是我最喜欢的思维导图工具。它是一款轻量级的免费桌面软件。我喜欢它,因为它是我用过的最简单的思维导图工具。Free Mind map也遵守GPL协议,对于每个人都是免费的。你可以使用它的键盘快捷键快速创建导图。文件的扩展名是.mm,你也可以把你的扩展名为.mm的文件和Free Mind map软件一起和其他人共享你的导图,并且每个人都可以编辑它。
...全文
119744打赏收藏
笔记暂存8
Free Mind map 是我最喜欢的思维导图工具。它是一款轻量级的免费桌面软件。我喜欢它,因为它是我用过的最简单的思维导图工具。Free Mind map也遵守GPL协议,对于每个人都是免费的。你可以使用它的键盘快捷键快速创建导图。文件的扩展名是.mm,你也可以把你的扩展名为.mm的文件和Free Mind map软件一起和其他人共享你的导图,并且每个人都可以编辑它。
1 错误的“重构”是双倍的浪费
课堂上案例是以“重构前”“重构后”的形式展示出来的,但绝对不是推荐这样的“重构”!先快速完成功能,然后整理代码,这是合理地重构。由于需求变化,引入更多的设计元素,这也是合理地重构。为提升性能,引入复杂的编程技巧,这也算是合理地重构。但是,以浪费时间、低效地方式编写不必要的代码,再花更多的时间重写一遍,这是双倍的浪费。
2 美是不可定义的
哲学系专门有个美学专业。如果要为难一个美学专业的人,最好的方式就是问他,“什么是美?”,他真是说不出来。美,最神秘的地方,就在于它无法被定义,但却可以被感知。美的实际案例可以展示,但是美的做法却无法明确说出。反过来说,凡是可以被具体定义出来的东西,那么它就已经被工程化了。不是说工程化不好,而是说已经工程化的东西,我们就不需要把它放到美的范畴来讨论,直接按照工程化的方法去实施就好了。但是总有很多东西是无法被工程化的。
3 彻底去除显而易见的东西
如何做到优雅,没有捷径,但是有几个原则:
优雅,就是彻底去除显而易见的东西
结构,使得复杂系统呈现优雅
节省时间,会让人感觉优雅
知识和经验,让事情更优雅
记住,总有些事情与优雅无缘……
4 人是天生的模仿者
这次仅仅介绍了“心流”以及“大脑模式”中最最基础的理论,也初步分析了软件设计、结对编程、测试驱动开发中常常问题的原因,但是没有详细讨论怎么解决这些问题。其实主要不是时间问题,因为这里面很多东西不是知识而是技能,技能是说不清楚的。就像学游泳,你无法对一个不懂游泳的人,通过讲述让他学会游泳。你只能通过带领、指导他去游,才有可能学会。如果让一个不懂游泳的人拿着一本游泳指导书独自去学游泳,那更是非常危险的事情。所以在缺乏教练的情况下,甚至不建议大家自行尝试结对编程和测试驱动开发。
5 感性的体验对人的影响超越理性
关于STL,我们在课前故意不给大家资料,也不通知大家需要准备什么,这是有所考虑的。传统的培训,总是讲授知识,这有两个问题,知识的讲授需要巨量的时间,而纯知识的讲授也容易使课堂枯燥。如果要完整地讲授STL的知识,估计得十几次课。另外,其实大家想一想,我们在大学都逃过课,但是每门课程一样自学过关,可见大家对知识的自学并没有问题,用不着培训来讲。这次课程的目标是给大家创造一个有指导的、方便安全的体验环境。如果大家体验好,就自然会去自学。
6 只有透彻地理解细节,才能放心地忽略细节
关于C++,课堂的实战围绕构造器、运算符重载、引用、常量、自动类型转换、友元展开,这些都是非常底层的知识点。完整的面向对象包括封装、继承、多态,这次仅仅涉及封装,并且只是封装的一小部分。但是大家在练习中应该能感觉到,就这些很基础的知识点,细节却是层出不穷。而且一些技术书籍中,仅仅讲解单个细节,却很少分析各个细节之间的关系,于是很多看完整本手册的人也还是用不好C++。实际上,如果不了解这些细节,很难写出良好的代码,甚至编译都没法通过。软件工程推崇面向对象,推崇设计模式,强调抽象,要求忽略细节,但这是建立在细节已经被吃透,细节已经不是问题的基础上。只有透彻地理解细节,才能放心地忽略细节。否则只能是空中楼阁。
7 最容易获得财富的方式是继承
The easiest way to obtain wealth is to inherit it; the second best way is to make it off the labor of others; marrying wealth is too much like work.
最容易获得财富的方式是继承,面对继承下来的财富,有的人视而不见,有的人挥霍,有的人珍惜。视而不见的人只能终日苦苦地劳作,挥霍的人变得比以前更加一贫如洗,只有珍惜的人不仅仅用财富实现了自己的愿望,同时还让财富在不断增值。
其实以上说的不仅是金钱财富,也包括业界前辈大师的代码宝库。
8 以无法为有法,以无限为有限
初学者比较喜欢军规,甚至很多时候,如果没有军规,他们还会主动要求团队给他们一些军规,因为军规可以确保他们不会犯常见的错误。所以说在起始阶段,军规是必要的。但是对于技术骨干来说,他们必须学会有条件地打破军规,否则很难突破自己的技术瓶颈,他们需要知道,此时此刻,此种方式的违规恰恰是最好的。如果一个程序员不懂得遵守军规,那么他无法成为一个合格的程序员,如果他不懂得打破军规,那么他无法成为一个优秀的程序员。
9 影响力的武器
一个技术骨干,仅仅依靠自己的技术水平,是否就能建立技术影响力?这是需要思考的。能够有力地影响人的方式分为:
互惠
承诺和一致
社会认同
喜好
权威
稀缺
大多数技术人员看到了提高技术水平,建立权威的影响力,但对其他方式的影响力却基本忽视掉了。