实践和思考的重要意义(论软件代码设计)

感触

最近这段时间,包括以前,经常听到,程序员们大谈 设计模式,这个话题并不陌生,面试必问的问题,活了这么多年,我就一直没搞清楚,为啥面试官喜欢问这个问题。如果一个面试官喜欢问这种问题,我觉得也没啥意思。就我个人而言,我觉得毫无意义。如果你在百度上面搜索的话,关于设计模式的博文或者讨论,铺天盖地而来。这都没有问题,问题是,你是否真的理解了设计模式背后的含义,你是否真的需要理解它。

谈代码设计

设计模式这个词,来源于计算机大师们,经年来月的经验总结,在进行复杂的系统设计的时候,应该考虑的问题。他们给我们提出了一种设计思想,而不是去生搬硬套,我们是不是在进行实际操作的时候,有所变更,而不是为了代码的华丽,去高谈阔论。

设计来源于经验总结,如果你从没一个人在公司开发独立的项目,我觉得你很难理解设计模式这个词的意义,在这几年的开发中,我有幸负责过一些独立的开发项目,也负责过一些项目的中比较棘手的部分,开发起来比较复杂,如何适应不断变化的需求系统的横向扩展性如何将各个需求独立开来,而不会互相影响,这成为了我必须思考的问题,我从不会去查阅当前到底有哪些设计模式可以借鉴,我觉得,我的设计就是最好的设计,为啥?因为它满足我现在的需求,我想不到会有比这个更好的办法,有一天你再回去看设计模式的时候,你会发现你的设计就是别人已经总结出来的所谓设计模式,设计模式很自然的体现在你的代码中。等你有足够的编程经验,你已经不需要知道你是否会设计模式,因为你已经懂了,也不需要有人教你,你需要的只是思考和不断的联系,这个别人也教不会,就像是武侠中很多高深的武学,师傅可以教你基本的武学招式,但是如何领悟这门武学的精髓,只能靠你自己。

反常现象

工作这么多年,我发现身边的人,都不怎么用接口,抽象类,继承,这是一个非常奇怪的现象,如果你不用这些东西,你是怎么实现所谓的设计的,你想过没有,为啥语言会有这个东西。

实践

听别人讲和自己去写,完全是两种情况,我们总说:实践是检验真理的唯一标准,但是真正去践行的人,又有几个啊。与其夸夸其谈,不如拿起你的键盘,敲起来,我很喜欢这句话:我不要你觉得,我要我觉得,我觉得不行,那就是不行。我在之前写的一篇博客就提到过,切记不要随波逐流,听风就是雨,要具有自己的判断能力,也可以多咨询身边值得信赖的人。古人常说:读万卷书,不如行万里路,自己去体会。

本作品采用《CC 协议》,转载必须注明作者和本文链接
微信:okayGoHome
本帖由系统于 4年前 自动加精
Dennis_Ritchie
讨论数量: 8

是啊,几乎大部分人都是自定义设计模式,也就是混合设计模式吧。

4年前 评论

完全按照规范去写面对对象的,估计只有框架了,这样的系统才好维护,屹立不倒。

4年前 评论
Summer

设计模式对我来讲是一个工具:

  • 有时候是为了灵活的代码结构,以适应不断变更的需求;
  • 有时候是为了更好的可测试性;
  • 有时候是为了规范团队成员的编码一致性;
  • 有时候是为了让我更好地去理解代码(MVC 等);
  • 有时候是为了更好地与其他程序员沟通;
  • ...

然而,我一直保持敬畏之心,不敢在项目中随便使用设计模式。

很棒的文章 :+1: ,感谢分享

4年前 评论
Squ1rrel

十分赞同!具体问题具体分析是马克思主义活的灵魂 :+1:

4年前 评论
小民爱Laravel

工作这么多年,我发现身边的人,都不怎么用接口,抽象类,继承,这是一个非常奇怪的现象

甚至很多人都不怎么用对象的,数组打天下。
很多人不会一直思考,都只觉得这是一份工作而已。
很赞的分享,一起加油。

4年前 评论

工作这么多年,我发现身边的人,都不怎么用接口,抽象类,继承,这是一个非常奇怪的现象 :+1:

4年前 评论

扎心了老铁,当工作中遇到实际问题才会去考虑如何去改进。然后去实现。这也许就是成长(填坑)

4年前 评论

模块化才是第一设计模式。 c 语言 没有接口 类 抽象 继承。 任何语言模块化和编程规范做好足以。

4年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!