一个有能力胜任的程序员当然可以阅读Memento Pattern并理解如何去实现它。他们或许甚至能够确定可以应用模式的场景(可能在GUI中实施撤消操作)。但是,如果没有更多地了解大局,他们仍可能会应用不适当的模式。
相比之下,精通型程序员则能够确定何时Memento Pattern失败(例如,在你要复制大量数据,或要有大量拷贝量的时候)。他们或许会知道一些可考虑的替代方案,在模式并非完美匹配的时候。他们还对如何在Memento背后采用基本概念有一些想法,然后应用这些想法以创建一个自定义更适合特定用例的解决方案。
更为重要的是,精通型程序员能够识别正确和错误的设计模式 —— 如果建设概念验证功能,适当代码设计的问题可能就变得无关紧要。如果向初学者解释代码库,精通型开发者可能会坚持着重于代码实际上是做什么的,而不会抛出命名模式,并告诉新手“在问我任何问题之前,先去阅读《Gang of Four》”。
所以精通还意味着有整体思维的灵活性。
模式,原则,风格,库,语言功能 —— 这些都是工具。但是,一个真正的精通型程序员会让工具来匹配工作,而不是工作匹配工具。
许多人从来没有专门专注于发展精通能力,因为坦率地说,胜任能力更直接。但是,如果你想要改变重点并得到一些帮助来攀登一段新的历程,那么不妨试试这些:
• 解释为什么你想要用某种方式做事的原因推理,不依赖于通用的“最佳做法”或社区准则。单单只在你要解决的当前问题的背景下讨论利弊。
• 了解的东西越少,了解得越深。然后尝试在不同的上下文中加以应用,看看它们在哪里有效,在哪里无效。从失败中寻找机会来寻求新的工具,可以帮助拓宽你的技能集的工具,但只在你已经确立了明确要求的时候。
• 寻找其他人“打破规则”并取得成功的范例。偶尔打破自己的一些规则,看看是会伤害你,帮助你,还是没有变化。
小编推荐阅读
《热血江湖手游技能加点攻略》(掌握技能加点要诀,成就无敌江湖之王)
阅读新版本赏金玩法出装攻略(全面解析最优出装方案,让你在新版本赏金玩法中独领风骚)
阅读《公主级2-6攻略技能大揭秘》(掌握攻略技能,成为公主级2-6的王者!)
阅读《赵云关羽出装铭文攻略视频大揭秘》(如何为赵云和关羽选择最佳装备和铭文?—MOBA游戏攻略)
阅读P5Sband攻略技能加点详解(P5Sband技能加点策略与建议)
阅读《狐狸职业比赛出装攻略男》(以狐狸为主角,揭秘职业比赛中的最佳出装策略)
阅读《钻石局炸鱼英雄出装攻略》(了解最强出装搭配,带你玩转炸鱼英雄局!)
阅读