个人都在编写API
我们都在网上看过几十次谈话。我们可能不记得他们中的很多人了。但是,有些人确实会留在我们的脑海中,我们最终会再次看到他们,因为我们知道他们是好的,我们想记住他们说过的话。因此,我决定编写一小份演讲清单,我觉得这些演讲非常有见地,很有用,而且在某种程度上,它们塑造了我的软件工程实践,或者扩大了我对软件世界的理解。
1. 是一个必须注意的问题(嗯,很明显,一切都是如此)。不要跳过它,因为“您不是在编写API”--每个人都在编写API。也许其他数百个开发人员没有使用,但至少有几个开发人员使用,这是一个很好的理由。看了这篇演讲之后,我买了一本软件书籍,并阅读了其中的一本,而实际上我读过的是端到端的“有效的Java”(讲座以Java为例,但原则并不局限于Java)。
2. 许有很多关于测试代码的讨论,也许Bob叔叔有一个更受欢迎的代码,但我发现这个特别实用,而且重点是--编写可测试代码是一种技能,而可测试代码是很好的代码。(顺便说一句,演讲者随后写了AngularJS)
3. 恩·斯基特。标题说明了这一切,让人想起编程语言的基础知识是多么脆弱,这是很好的。
4. ichard Stallman。这与编写软件有一点不同,但它将软件置于法律背景下--立法漏洞如何影响代码重用以及与其相关的业务实践。有点长,但我觉得值得。
5. 声明:Martin Fo业体系结构,以及如何在没有复杂和昂贵的中间件的情况下实际完成企业架构。(不幸的是,它没有出现在YouTube上,所以没有嵌入)。
虽然这不是“排名”,但我想补充几个值得尊敬
我希望这份汇编是有益的和有启发性的。好好享受吧。
https://m.douban.com/mip/note/812800945/
每个有数据库的项目都面临两难境地:如何测试依赖于数据库的代码。有几种选择(不相互排斥):
- 只使用单元测试并模拟数据访问层,假设DAO到数据库通信工作。
- 使用每个测试启动和关闭的嵌入式数据库。这也可
- 使用部署在某个地方(本地或测试环境)的真正数据库。最难的部分是确保它总是处于干净的状态。
- 将应用程序部署到测试服务器(该服务器具有适当的数据库)后,使用端到端/功能测试/bdd/ui测试。
所有这些都不是没有问题的。带有模拟DAO的单元测试不能真正测试依赖于数据库状态的更复杂的交互。嵌入式
https://m.douban.com/mip/note/812800945?from=author
数据库并不总是可用的(例如,如果您使用的是非关系数据库,或者您依赖于特定于RDBMS的功能,则HSQLDB不会这样做),或者它们的启动速度可能很慢,您的测试可能需要很长时间的支持。真正的数据库安装会使安装变得复杂,保持它的干净并不总是那么容易。端到端测试的覆盖范围是不容易测量的,它们不一定涵盖所有的边缘情况,因为它们比单元测试和集成测试更难维护。
我最近尝试了一种奇怪的方法,到目前为止效果很好据库。它更适用于键值存储,而不适用于关系数据库。
就我而言,即的启动速度慢,设置起来不容易,并且有一些微妙的问题。这就是为什么我把整件事换成了记忆中的东西ConcurrentHashMap.
由于我使用的是SpringDataCassandra,所以我只是扩展了CassandraTemplate类中的所有方法,并在StubCassandraTemplate,并在测试Spring上下文中使用它而不是常规的。存根可以很容易地支持所有的键/值操作,并且您可以有一个更复杂的集成测试(当然,拥有非常复杂的测试不是一个好主意,但是单元测试既可能过于简单,也可能过于依赖于大量的模拟)。下面是代码的摘录:

浙公网安备 33010602011771号