摘要:
软件工程,模式,语言,设计思想发展到今天,说白了,所有的技巧,思想,原则归根结底都是为了这个DRY 从机器语言开始:为了DRY,出现了汇编符号来代表指令,使开发人员不用“重复翻阅指令手册”为了DRY,出现了宏汇编,来使开发人员不用“重复编写同一个过程”为了DRY,出现了C,Fortran等,使开发人... 阅读全文
摘要:
今天,WC的时候,突然间理解了一个一直很模糊的概念就是:强类型,弱类型,静态类型,动态类型到底具体指什么意思,哈哈,太有成就感了强类型:运行时检查目标地址的对象是不是预期的类型,如.Net,Java等弱类型:运行时没有类型的概念,只有地址的概念,如汇编,C等静态类型:对象的"多态"在编译时决定,编译... 阅读全文
摘要:
Fizz-Buzz-Whizz问题描述:1. 你首先说出三个不同的特殊数,要求必须是个位数,比如3、5、7。2. 让所有学生拍成一队,然后按顺序报数。 3. 学生报数时,如果所报数字是第一个特殊数(3)的倍数,那么不能说该数字,而要说Fizz;如果所报数字是第二个特殊数(5)的倍数,那么要说Buzz... 阅读全文
摘要:
STST 昨天看到这个观点,感同身受,大家讨论下 XQ 分解成小问题:进行抽象并降低耦合性。 STST 恩,所以强调 XQ 代表这一种思维方式:复杂问题简单化。 如何把小模块组合成大系统也很见功力。 STST 当然,无论什么问题,都是如何把问题逐步求精的过程,我们学数学,物理,化学也是这样 复杂问题必须简单化以后才能求解 模块合并的关键在于,小模块之间的正交性如何,具有正交性的多个... 阅读全文
摘要:
瀑布模型 : 强调整体推进与阶段划分 需求->设计->实现->...->测试->交付, 项目资源(时间人力资金等)按阶段分配 每个阶段的产出作为下个阶段的输入.迭代模型 : 强调逐个推进与功能划分 子功能1->子功能2->...->子功能N 项目资源按子功能分配 每个阶完成一部分... 阅读全文
摘要:
1,在编写好失败的单元测试之前,不要编写任何产品代码 如果不先写测试,那么各个函数就会耦合在一起,最后变得无法测试 如果后写测试,你也许能对大块大块的代码进行测试,但是无法对每个函数进行测试 先写测试是进攻,后写测试是防守2,只要有一个单元测试失败了,就不要再写测试代码,编译失败也是失败 一个地方漏... 阅读全文
摘要:
前几天我看到了Bob大叔关于Code Dojo(练习)的表述,获益非浅,以前我只知道这样做肯定是有用,但是说不出所以然,但是Bob一针见血地说了:Dojo就是让你通过反复的练习,使一些原来看起来高阶的抽象变成一种本能,而把脑子解放出来思考更高阶的抽象. 初学者而言,语法就很抽象,通过练习,使语法成... 阅读全文
摘要:
很奇怪的一个现象,在C#中使用Process来启动进程,启动文件名必须是系统指定的扩展名.EXE,而我使用原生的Win32API ::CreateProcess()并没有这个限制,以后遇到类似的问题要注意了下面例子:com.aaa,com.exe都是同一个可执行文件,只是扩展名不一样 [TestMe... 阅读全文