我经常听到人们称赞语言,框架,结构等是"明确的".我试图理解这个逻辑.语言,框架等的目的是隐藏复杂性.如果它让你明确指定所有类型的细节,那么它不会隐藏太多的复杂性,只会移动它.什么是显性的如此伟大,你如何使语言/框架/ API"明确",同时仍然使其服务于隐藏复杂性的目的?
Pat*_*her 30
是否应该明确或隐含取决于具体情况.你是正确的,因为你经常试图隐藏复杂性,并且在幕后为你做的某些事情自动是好的.封装等
有时虽然框架或构造隐藏了我们不应该的东西,这使得事情变得不那么清晰.有时某些信息或设置对我们隐藏,因此我们不知道发生了什么.假设我们不理解也无法确定.我们无法预测的行为发生了.
封装:好.隐藏:糟糕.做出正确的电话需要经验.逻辑属于哪里,它应该是明确的.
示例: 我曾经从页面后面的一系列代码中删除了大约90行代码; 数据访问代码,业务逻辑等,不属于那里.我将它们移动到基页和关键业务对象.这很好(封装,关注点分离,代码组织,解耦等).
然后我兴奋地意识到我可以从许多这些页面中移除最后一行代码,将其移动到基页.这是一行从url获取参数并将其传递给业务对象.好,对吗?好吧,不,这很糟糕(我在躲藏).这个逻辑属于这里,即使它在每一页上几乎都是同一条线.它将UI意图与业务对象相关联.它需要明确.否则我隐藏了,而不是封装.有了那条线,看着那个页面的人会知道那个页面做了什么以及为什么; 没有它,确定发生了什么将是一件痛苦的事.
代码比阅读更难阅读.在非常重要的应用程序中,给定的代码片段也会比写入代码更频繁地读取.因此,我们应该编写代码,以使读者尽可能轻松.做很多不明显的事情的代码不容易阅读(或者更确切地说,当你阅读它时很难理解).因此,显性被认为是一件好事.