对于这一点,就是我们要说的第三个原则:
如不雅你拥有的独一对象是一个锤子,那么你看每一个问题都像是钉子。
这条规出场不实用于软件工程,但它尖利地表示了很多软件开辟的情况。很多时刻,我们选择一种说话,或一种说话支撑的对象(如Java的JMS,Python的ASYNCIO,Rails的Ruby等),是因为我们知道它们存在。如不雅我们独一熟悉的说话是Java,那么我们会将我们碰着的所有问题都适应到Java的高低文中。例如,“我须要为一个通信应用创建一个路由框架。在Java中我该怎么做呢?”这就限制了可供我们应用的对象,并工资地限制我们为完成工作选择合适对象的余地。
不要被假象所蒙蔽。进修其他说话的优势表如今我们能大年夜不合的角度去看问题,并且应用最合适该问题的对象。为了做到这一点,我们必须进修其他说话的相干警告,以及开辟人员应用这些说话解决问题的方法。例如,如不雅一个开辟人员想用C ++履行元编程,那么他或她可以应用C ++中的Template Metaprogrammming(TMP),但他或她也可以应用Java中的反射。懂得其他说话是若何解决类似问题的,可以削减我们认为它毫无用处的风险。
再说一个例子,如不雅我们须要可以或许改变一个类的运行时特点,那么一个深刻熟悉C ++错综复杂性的C ++开辟人员,可能会试图编造一个延长这个编译时说话的界线的解决筹划。而另一个C ++开辟人员,因为对Java也有必定的懂得,就可以或许说,“我爱好C ++,但Java的运行时反射更合适解决这个问题。”
解决这个问题的办法是扩大年夜你的视野,懂得其他说话的的功能和错综复杂之处。正如Andrew Hunt和David Thomas在《The Pragmatic Programmer》中给出的建议,一个好的做法就是,每年进修一门新的说话。这可不没有听上去那么轻易,进修一门说话对不合的人将意味着不合的工作。还有一个衍生问题是,我们对正在进行中的项目往往只会应用这一种说话,大年夜而使灯揭捉?习的另一种说话显得毫无用处。例如,假设我是一个Android开辟人员,根本上天天只用Java,那么进修C#可能就会显得不达时宜地浪费时光。
因为有如斯之多的编程说话任开辟人员择选,是以,优先安排进修什么竽暌癸言很重要。不侍从年夜当今最风行的说话入手(可参考《most popular languages >拥抱其他说话的古怪之处。如不雅你是一个Java开辟人员,那么你会应用包来分隔源代码的逻辑单位;如不雅你是一个Python开辟人员,那么你会应用Python的包构造做雷同的工作;如不雅你是一个C ++开辟人员,那么你会应用定名空间或前缀的类名(即“DZone_MyClassName”)。懂得你正在应用的说话的特别之处,并拥抱它们:在罗马,就入乡随俗。不然的话就像是因为你更爱好单词用意大年夜利语发音,而用意大年夜利口音说德语,如许就显得不伦不类了。当然也有可能一种说话的一个功能经久存在,然则如许的话,个中必有其原因:确保本身明白个中的事理。
【编辑推荐】
- Google 宣布重启 Dart 编程说话,应对法度榜样开辟挑衅
- 不合行业的软件都爱用什么编程说话开辟?
- 2018 编程说话存眷度查询拜访:Java 9 存眷度上升
- Swift 成为增长最快的编程说话 已经杀入前十 直逼C说话
- 2018第一季度最受迎接的编程说话:JavaScript 仍然位居榜首
推荐阅读
沙龙晃荡 | 3月31日 京东、微博拭魅战专家与你合营商量容器技巧实践!线下零售大年夜数据应用刚起步扶植强大年夜的数据中台,实现线上线下数字化打通,重构“人、货场”,是新零售的重要内涵。>>>详细阅读
本文标题:千万不要和一种编程语言厮守终生
地址:http://www.17bianji.com/lsqh/40612.html
1/2 1