红米手机|为什么说每个程序员都要尽早掌握设计模式相关知识?( 三 )


实际上 , 除了看不懂、看不下去的问题 , 还有一个隐藏的问题 , 你可能自己都发现不了 , 那就是你自己觉得看懂了 , 实际上 , 里面的精髓你并没有get到多少!因为优秀的开源项目、框架、中间件 , 就像一个集各种高精尖技术在一起的战斗机 。 如果你想剖析它的原理、学习它的技术 , 而你没有积累深厚的基本功 , 就算把这台战斗机摆在你面前 , 你也不能完全参透它的精髓 , 只是了解个皮毛 , 看个热闹而已 。
因此 , 学好设计模式相关的知识 , 不仅能让你更轻松地读懂开源项目 , 还能更深入地参透里面的技术精髓 , 做到事半功倍 。
5. 为你的职场发展做铺垫普通的、低级别的开发工程师 , 只需要把框架、开发工具、编程语言用熟练 , 再做几个项目练练手 , 基本上就能应付平时的开发工作了 。 但是 , 如果你不想一辈子做一个低级的码农 , 想成长为技术专家、大牛、技术leader , 希望在职场有更高的成就、更好的发展 , 那就要重视基本功的训练、基础知识的积累 。
你去看大牛写的代码 , 或者优秀的开源项目 , 代码写得都非常的优美 , 质量都很高 。 如果你只是框架用得很溜 , 架构聊得头头是道 , 但写出来的代码很烂 , 让人一眼就能看出很多不合理的、可以改进的地方 , 那你永远都成不了别人心目中的“技术大牛” 。
再者 , 在技术这条职场道路上 , 当成长到一定阶段之后 , 你势必要承担一些指导培养初级员工、新人 , 以及code review的工作 。 这个时候 , 如果你自己都对“什么是好的代码?如何写出好的代码?”不了解 , 那又该如何指导别人 , 如何让人家信服呢?
还有 , 如果你是一个技术leader , 负责一个项目整体的开发工作 , 你就需要为开发进度、开发效率和项目质量负责 。 你也不希望团队堆砌垃圾代码 , 让整个项目无法维护 , 添加、修改一个功能都要费老大劲 , 最终拉低整个团队的开发效率吧?
除此之外 , 代码质量低还会导致线上bug频发 , 排查困难 。 整个团队都陷在成天修改无意义的低级bug、在烂代码中添补丁的事情中 。 而一个设计良好、易维护的系统 , 可以解放我们的时间 , 让我们做些更加有意义、更能提高自己和团队能力的事情 。
最后 , 当你成为leader、或者团队中的资深工程师、技术专家之后 , 你势必要负责一部分团队的招聘工作 。 这个时候 , 如果你要考察候选人的设计能力、代码能力 , 那设计模式相关的问题便是一个很好的考察点 。
不过 , 我也了解到 , 很多面试官实际上对设计模式也并不是很了解 , 只能拿一些简单的单例模式、工厂模式来考察候选人 , 而且所出的题目往往都脱离实践 , 比如 , 如何设计一个餐厅系统、停车场系统、售票系统等 。 这些题目都是网上万年不变的老题目 , 几乎考察不出候选人的能力 。 在我的专栏中 , 有200多个真实项目开发中的设计模式相关问题 , 你跟着看下来 , 足以让你成为设计模式方面的大牛 , 再来面试候选人的时候 , 就不用因为题目老套、脱离实践而尴尬了!
重点回顾今天 , 我们讲了为什么要学习设计模式相关的知识 , 总结一下的话 , 主要有这样五点:应对面试中的设计模式相关问题;告别写被人吐槽的烂代码;提高复杂代码的设计和开发能力;让读源码、学框架事半功倍;为你的职场发展做铺垫 。
投资要趁早 , 这样我们才能尽早享受复利 。 同样 , 有些能力 , 要早点锻炼;有些东西 , 要早点知道;有些书 , 要早点读 。 这样在你后面的生活、工作、学习中 , 才能一直都发挥作用 。 不要等到好多年后 , 看到了 , 才恍然大悟 , 后悔没有早点去学、去看 。