Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我如何说服人们使用正确的面向对象Perl?_Perl_Oop_Model View Controller - Fatal编程技术网

我如何说服人们使用正确的面向对象Perl?

我如何说服人们使用正确的面向对象Perl?,perl,oop,model-view-controller,Perl,Oop,Model View Controller,我一直在为一个web项目使用一个面向对象的MVC架构,所有的模型都是OOPerl。但我注意到团队中的一些人正在恢复程序性技术,并且基本上使用“对象”作为相关功能的转储场地。它们的功能基本上是直接读/写数据库 让他们相信这是错误的方法的最好方法是什么?我可以让他们阅读一些好的教程吗?OOP只是一个工具,可以完成一些伟大的事情,比如更可靠、更可用和更可维护的软件。如果您无法说服您的团队编写测试,请放弃严格的OOP OOP只是一个工具,它可以完成一些伟大的事情,比如更可靠、可用和可维护的软件。如果您无

我一直在为一个web项目使用一个面向对象的MVC架构,所有的模型都是OOPerl。但我注意到团队中的一些人正在恢复程序性技术,并且基本上使用“对象”作为相关功能的转储场地。它们的功能基本上是直接读/写数据库


让他们相信这是错误的方法的最好方法是什么?我可以让他们阅读一些好的教程吗?

OOP只是一个工具,可以完成一些伟大的事情,比如更可靠、更可用和更可维护的软件。如果您无法说服您的团队编写测试,请放弃严格的OOP

OOP只是一个工具,它可以完成一些伟大的事情,比如更可靠、可用和可维护的软件。如果您无法说服您的团队编写测试,请放弃严格的OOP

我可以想出三个可能的原因来解释为什么一些团队成员可能无法生成好的OO代码:

  • 他们不在乎
  • 他们关心,试图做得对,但缺乏做得对的技能
  • 他们做得对,或者至少足够正确!有些设计问题是意见问题。回头看看你自己的一些旧代码,你认为很好的代码,现在你很有可能会修改其中的一些
  • 我的方法是假设每个人都想把工作做好,所以我假设(或假装)大家都关心。人们试图建立一种想把事情做好的精神


    因此,剩下的就是培养我们的技能,他们的和你的(还有我的)。代码审查似乎是一种显而易见的方法。谈论其他选择。也可能是结对编程?

    我可以想出三个可能的原因来解释为什么一些团队成员可能无法生成好的OO代码:

  • 他们不在乎
  • 他们关心,试图做得对,但缺乏做得对的技能
  • 他们做得对,或者至少足够正确!有些设计问题是意见问题。回头看看你自己的一些旧代码,你认为很好的代码,现在你很有可能会修改其中的一些
  • 我的方法是假设每个人都想把工作做好,所以我假设(或假装)大家都关心。人们试图建立一种想把事情做好的精神


    因此,剩下的就是培养我们的技能,他们的和你的(还有我的)。代码审查似乎是一种显而易见的方法。谈论其他选择。也可能是结对编程?

    它们是否都与您不同步?也许只有你不合拍

    为了避免我显得滑稽,我的意思是以下问题的答案是什么:

    • 团队一致认为应该采用什么方法

    • 谁有责任保持纯洁?如果你不追求强制的纯洁,谁的责任是鼓励纯洁?如果不是你,照照镜子,确保你不是团队中令人讨厌的家伙,告诉那些老员工如何做他们从你穿着婴儿服装以来一直在做的工作

    • 您有什么机制来解决此类团队问题?定期的代码审查,结对编程,赤裸裸的战斗

    • 要求他们阅读一些教程可能是白费口舌。你用面向对象的方式做事的理由是什么?正如Boris所观察到的,OO本身并不是目的,它只是达到目的的一种手段,而不是唯一的手段


    在你的情况下,你可能需要考虑更多的事情,但这些应该让你开始。

    也许只有你不合拍

    为了避免我显得滑稽,我的意思是以下问题的答案是什么:

    • 团队一致认为应该采用什么方法

    • 谁有责任保持纯洁?如果你不追求强制的纯洁,谁的责任是鼓励纯洁?如果不是你,照照镜子,确保你不是团队中令人讨厌的家伙,告诉那些老员工如何做他们从你穿着婴儿服装以来一直在做的工作

    • 您有什么机制来解决此类团队问题?定期的代码审查,结对编程,赤裸裸的战斗

    • 要求他们阅读一些教程可能是白费口舌。你用面向对象的方式做事的理由是什么?正如Boris所观察到的,OO本身并不是目的,它只是达到目的的一种手段,而不是唯一的手段


    在你的情况下,你可能需要考虑更多的事情,但是这些应该让你开始。

    好的OO不一定是对的,但比程序化的意大利面要好。(结构良好的过程代码完全是另一个论点……)好的OO不一定正确,但它比过程意大利面条好。(结构良好的过程代码是另一个参数……)如果您有一个用于访问DB的已建立API,那么对DB的所有调用都应该使用它。如果API缺少所需的功能,则应扩展DB API以提供这些功能。依我看,无论使用什么范式(OOP、过程性、声明性、功能性等),这种行为都是需要纠正的问题。嗯……让我们看看。Perl章程之一(可以这么说)是:“有不止一种方法可以做到这一点”,但您希望一些Perl黑客相信在这个项目上只有一种(正确的)方法可以做到这一点。关于这一点,有些地方似乎不太适合……在我看来,Perl并不是非常面向对象友好的。有些标准库是OO,有些不是(无论出于何种原因,CGI.pm提供了这两个库),这都没有帮助。如果您有一个用于访问数据库的API,那么对数据库的所有调用都应该使用它。如果API缺少所需的功能,则应扩展DB API以提供这些功能。在国际海事组织看来,这种行为将是一个需要纠正的问题,无论发生什么情况