烟台达内的小编总结,其实,这并非意味着要成为一个完美主义者。有时,修复破碎的窗户是可以推迟的。但是,通常情况下,对于允许窗户被打破和保持打破状态,没有人会觉得开心。我们程序员不开心,我们的客户不开心,我们的用户不开心,我们的项目经理也不开心。这是一种态度,是作为专业人士的核心内容。Benjamin Franklin怎么看呢?
“低价格的甜蜜被遗忘之后,低质量的苦涩将回味悠长。”
一切都是如此。“低价”是我们用一种草率的方式来实现某些东西而获得的快速胜利。
4.软件应该是确定性的。这就是要瞄准的目标!
在理想化的世界中,软件中的一切都应该是“确定性的”.我们都应该是函数式程序员,编写没有副作用的纯粹的函数。如String.contains()。无论执行以下操作多少次:
assertTrue(“abcde”.contains(“bc”));

…结果总是相同的,都是预期的结果。哪怕宇宙爆炸对这一计算也没有影响。这是确定性的。
我们也可以在我们自己的程序中,而不仅仅是在标准库中做到这一目标。我们可以尝试尽可能多地编写无副作用的确定性模块。这真的与我们选择什么技术无关。确定性编程可以用任何语言完成--即使函数语言有更多工具也可以通过更复杂的类型系统来防止意外的副作用。但是我所示的例子是一个Java示例。对象方向允许确定性。对的,像PL / SQL这样的程序语言允许确定性。如果要在索引中使用函数,那么需要请求确定性的函数:
CREATE INDEX upper_first_name ON customer (upper (first_name));
-- Deterministic function here: -----------^^^^^^^^^^^^^^^^^^
这又是一个规则问题。有副作用的过程/方法/“函数”是为“破窗户”.有副作用也许会更容易维护,当然希望最终可以消灭副作用。但这通常是自己骗自己。当将来的某一天意外突现的时候,就是你付出昂贵代价的时候。别不相信,说曹操曹操就到。
以上就是烟台达内给大家做的内容详解,更多关于IT的学习,请继续关注烟台达内