不学模式,学概念

下午好(或傍晚或早晨,取决于发布此信息的时间)。

我想谈谈编程的精髓部分,并在尝试使用Habré开始写作的过程中,总体上向后端(不仅是)开发的初学者传达一个显而易见的想法。

所以


在理解了语言的基本知识并编写了第一个项目之后,任何有至少一点品味的程序员开始了自己的自由意志编程,他们将不会被问到“如何做某事”,而是“如何做正确的事”和“什么是标准”。美丽。”

当然,这些真正的问题迟早会导致他使用晦涩的名字“ Abstract Factory”,“ Singleton”,“ Mediator”以及同样易于理解的缩写SOLID,GRASP。

请注意,我没有引用OOP,MVC,ORM的示例-这些概念具有非常特定的含义和范围,并且具有最低的抽象级别。

OOP说:“伙计,我找到了一种清晰易懂的演示程序的方式。”
MVC说:“伙计,最好拆分代码,并且拆分规则已被削减。”
ORM说:“ pss,伙计,我刚刚找到了一种调和两种不同意识形态-OOP和DB的方法。”
这里的一切都清楚了。

我说的是涉及最高抽象水平的事情。 一个例子:
“调解员”:
人们,如果您有很多不同的对象,请将一个中心放置在其他任何东西上。
程序员会朝他的方向看起来很奇怪,如果他善于交际,他会说“谢谢,盖帽!”,而对于他的眼睛,他只会称呼“队长证据”。

其他模式也是如此:
“工厂”:
人们,您知道您可以使用其他类构造对象吗?
“数据映射器”:
为什么不使用额外的抽象层来保存数据?
“观察者”:
家伙,但是让我们得到一些接口?
“策略”:
你知道多态是什么吗?
特别是SOLID:
S(单一职责):
一个模块只能执行一项任务,请不要忘记它!
我(接口隔离):
使用不同的界面进行不同的操作!
等等。

我得出这样一个事实,即模式的主要应用领域根本不习惯于良好的代码。 需要使用模式来讨论某人已经编写的程序,以规范好代码。 这样就可以说(“这个类是做什么的?”-“啊,这是中介的一部分”)。 但是不是为了用惊厥发作的整体模式来检查他的著作“啊,在这种情况下应该采用哪种模式?”。

精通某种概念(例如,以上所述)的程序员将自己使用最佳实践编写代码,即使他没有听说过有关它们的一句话。 并且需要那些相同的最佳实践来正式确定他的团队与他的代码之间的关系-当然,最典型的是GRASP。

我想对新手程序员说:

  1. 学习概念,而不是模式。 概念真的很重要。
  2. 如果您突然感觉到自己不了解这些模式,请不要惊慌。 这只会对招聘人员有影响,而与您的代码和良好风格无关。

我想对哈布尔的上师说:

  1. 我可能是错的。 说真的
  2. 我知道这个主意很普遍。 但是,尽管如此,出于某种原因,我经常为初学者遇到类似的方法。
  3. 根据第2款,我之前可能已经写过一篇类似的文章。 我不知道

最后:文章当然是主观的,我不敦促任何人(与工厂抗争)采取任何行动。 这只是我的意见:)

而且,我只是一个初中生,但是这种方法-过于注意细节-总是使我产生误解。

祝你有美好的一天!

Source: https://habr.com/ru/post/zh-CN468885/


All Articles