首先提醒一下记得单一职责原则(SRP)是面向对象实践下的设计原则,也是SOLID五大面向对象设计原则之一。然后不要重复自己(DRY)原则则是更泛化的编程原则,也可以用在编程工作以外。这个短文讲两个原则的关系,总归还是把前提限定在了面向对象编程之内。
我记得这是哪本书上的例子,大概是Clean Code,它是用这个例子来解释 SRP 的含义的,我稍微改一下,不翻原书了:
需求 1:有三种员工,经理和普通员工和临时工,计算他们薪资的算法是相同的。
需求 1 映射到代码里就是,三个分开的员工类,然后三个类计算薪资的方法内部会调用同一个工具函数,DRY,对吧。
Life
6246
13 分钟
前言
我不是装机发烧友,过程中也请教了不少朋友和互联网,但现在想想其实不是很麻烦,主要是没有整体的知识框架,是无知导致的畏手畏脚。所以把最近第一次组装台式主机的经历和总结记下来,如果能帮到其他人就更好了。
选配件
就算知道配件的知识,什么接口什么协议,那些都是抽象的行业标准,对选配件没太大帮助。比如你知道牛奶的国标,但还是在货架旁纠结买哪个品牌的牛奶。和买牛奶一样,选电脑配件就是选品牌,需要对品牌甚至品牌下的产品线有一个整体的了解,不是发烧友一般不会主动去获取这方面的知识。下面我会多次提到某个配件“竞争品牌多,勤搜索论坛和评测,注意别翻车”这类话,就是指,首先搜着看一些广谱的推荐文章,选定一些品牌型号,然后挨个在网上搜这个型号的评价。
前言
本文旨在配合图示帮助读者理解单元测试中的“Mock”这个技巧概念,希望下次开发时大家可以用到这个技巧。
简单说一下单元测试的概念:
- 测试对象通常是(单个模块的)单个方法。
- 目标是用代码把对方法的行为的期望固定成能重复执行的脚本,以实现自动化测试。
- 通过预先定义输入值与对应的断言 (assertion)
这种二元组,来检查某个状态值是否符合预期。(语义即:我期望给方法传值 A 时,返回值 | 输入值变成 | 实例的某个依赖收到值 B)
- 断言是另一个二元组,即期望值和实际值,常用
except
和actual
两个变量名。
调用方法会产生两种行为,两种行为可同时发生,但至少发生一种,要不它就失去了作为方法的方生意义:
前言
本文试图通过介绍编程工作中的部分技能和知识,帮助新进入程序员职业的朋友熟悉未来的工作。特别的,本文将额外提供以 Java 编程语言下的 Spring 框架开发 Web 应用后端逻辑的工作相关的介绍。
因本文实在冗长,建议你结合目录挑选自己感兴趣的部分阅读。如果你想通过文本做跳板寻找优质学习资源,希望附录部分我精心挑选的网站和书籍推荐让你满意。
这是一篇译制博客文章,原博客为
Learn from Source Code (an Effective Way to Grow for Beginners)
,原作者为Nick Mose 。
我 向 Nick 申请获得了此文的中文翻译权与中文翻译文章发布权。
前言
上周我在和一位年轻程序员聊天时,他问到我:“如何阅读源码?”,我们讨论了一段时间,我还列举了几种有效阅读源码的方式。
然后他说:“你应该就这个话题写篇文章,这对初学者很有帮助,而且这种经验无法从书籍和教程中获得。”
那么开始吧,下面是我关于阅读源码的小技巧。