[英]Real advantages of using Moo(se) over Perl OO
我目前正在一家公司工作,我们正在进行Perl开发。 然而,代码非常混乱,使用了非常古老的Perl习语,所以我决定慢慢清理它并教我的同事关于Modern :: Perl,良好的软件设计,OOP - 抽象,耦合,继承,SOLID原则等等。有一个缺点,我在这里工作只有一个月,所以我在这里很新。
我的问题是:我可以(如果是这样的话)说服他们考虑从普通的Perl OO切换到Moo(se)吗? 它的优点是什么? 我需要他们考虑的充分理由。
使用这些模块是否有很大的性价比? 我从经验中知道,使用这些模块非常舒服(特性也非常好),但我担心由于性能原因它们会拒绝切换。
所以。 有没有优势,你会如何描述那些陷入2000年前时代的Perl开发者?
特别是对于Moose,在PerlMonks和Stackoverflow上有一些有趣的性能讨论。 它的要点似乎是穆斯有一个重要的启动惩罚,但在此之后并不多。
但是,我认为这里有一个更大的问题: 什么时候应该重写现有代码?
选择新工具/方法时需要考虑两个不同的阈值:
当现有的范例很好时,很多人都犯了错误,就是用他们喜欢的范例重写一堆完美的代码。 这不仅浪费了工作,而且还有引入新漏洞并使最终产品比之前更糟糕的危险。
更改现有代码库使用的对象系统接近于对代码的基本重写。 这是一个主要的成本和风险,你需要一个很好的理由去做。 不仅仅是“Moose更好地编写代码”。
当编写一段与遗留代码完全分开的新代码时,可能是尝试Moose的好时机。 但我怀疑改变所有现有代码并不合理。 (另外,从实际上让人们倾听你的想法的角度来看,无论如何,小的增量变化都会好得多)。
我首先要问一下 - 你的同事是否理解这些术语的含义以及为什么它们是好东西? 采用新范式总是存在一个艰难的挑战,因为即使你的“新方式”在各方面都更好......你将创造一个仍然需要维护的遗留代码库。 或者重做。
如果他们建立了从Bash脚本到perl hacking的Perl理解,那么说服某人“去OO”可能是一个挑战。 他们可能 - 非常正确 - 指出尽管转换有优势,但“最低公分母”是适用的。 与知道'驼鹿'的人相比,有很多人知道'非驼鹿'perl。 (这可能对您有利,但指出它是一种有用的技术专业,可以提高他们未来的就业能力)
毕竟,今天仍然使用shell脚本的原因 - 这是因为它们是一个简单,直接且易于解决的直接问题解决方案。
首先,介绍一下您的计算机科学原理。 让你的同事“买进”你概述的东西。 这需要时间。 可能需要很多时间。 如果代码风格在15年内没有改变,那意味着那里的编码人员对事物的方式感到满意。
然后,你需要向同事们证明为什么“你的方式”足够让他们费心去学习它。 新的'东西'一直出现,而且总会有人想尝试新的和酷的东西。 你会看起来像这个人。 就他们而言,目前的“家居风格”运作良好。
您可能会发现在新风格中实现新功能是令人信服的。 让他们“买进来”作为概念证明。 您可能会发现其他几个程序员也喜欢这个想法。
但无论如何 - 你必须接受这样一种非常现实的可能性:没有人愿意支付你所创造的'遗产'的技术债务。 通过在您的组织中使用一组有限的编码范例,可以获得许多业务优势。 你需要考虑如何使用这两种方法。
这不是一个新的讨论--OO编程总是有那些看不到它的 - 他们看到开销,而不是好处。 我们使用OO的原因并不是因为它更有效。 这是因为它是构建健壮,可靠和可测试代码的好方法。 这将是你采用驼鹿的“倾向”。 我建议你看看各种形式的测试,并准备一个测试套件的演示,因为这些是大多数编码人员讨厌的东西:)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.