为什么这么多人仍在标准库中编写糟糕的版本?不是追随 PHP 开发人员,而是去阅读PHP SPL
10 回答
同行评审可以帮助抓住这类事情。如果您有另一个开发人员查看代码,并且他们不断地找到标准库方法的实现,那么除非有充分的理由重新发明轮子,否则它应该无法通过审查。
年轻、雄心勃勃的程序员喜欢自己解决每一个问题。他们不需要任何臭气熏天的图书馆。年长的、懒惰的程序员宁愿寻找手头问题的现有解决方案。
所以我的建议是:下次雇佣程序员时,选择在接待区睡着的老家伙。
开个玩笑,主要是。同行评审和教育就是答案。
更好的搜索技术。 和特定领域的熟悉度
开发人员如何检查他们不知道名称的函数?或者也许没有一个 EXACT 内置函数来做他们想做的事,但他们可以用它来节省大量代码。您需要能够为手头的问题找到正确的术语,并从那里知道要搜索什么。这最好通过阅读特定于您的问题领域的主题来实现。摆脱对特定资源的编码,花一些时间在你正在编码的领域……无论是零售、医疗、保险等。
总结:假设是所有 FUBAR 之母
我从不熟悉框架概念的同事那里看到了很多这一点(天哪,他们如何抱怨“两种语言合二为一”),也就是说:老 C++ 家伙突然面临 C# 首先从头开始重新创建哈希表。 .
显然,从这个角度来看,这种现象的很大一部分并没有摆脱旧的心态和习惯。如果您在新环境中,则需要学习新规则。解决这个问题的唯一方法是提供培训,无论是一段时间的结对编程还是更正式的培训。
不熟悉你的工具会招致他人的蔑视。
一个简单的编码风格文档可能有助于提醒开发人员有可用的库(可能列出一些首选)并且他们应该熟悉它们。
有时候,你只需要提醒人们。
同行评审会有所帮助。
当且仅当您确切知道要查找的内容时,PHP 才具有良好的文档记录。例如,您将打开Arrays和Array functions部分以查看您可以使用数组做什么。你猜怎么着,甚至没有提到 SPL。
在真正开始编写代码之前,您还应该鼓励进行研究。我通常通过思考解决问题的方法来解决问题,然后尝试在标准库或任何其他库中找到任何可以帮助我的东西。我想说,在某些情况下,一个小时的研究可能值得几天的编码。
如果人们不这样做,最好让某人向他们询问有关他们解决问题的一般方法以及他们正在考虑使用哪些库函数/类的问题。如果他们遗漏了一些明显的东西,请向他们提出建议。
两个原因很快浮现在脑海。首先,标准 PHP 库并不广为人知,而且文档很差。php.net 网站被广泛认为是该语言的最佳资产,但许多较新的内置类(如 SPL、反射 API、DomDocument 等)只不过是没有大量上下文的方法列表。
更重要的是,看起来完整的 SPL 在(未发布的)5.3 之前的任何版本的 PHP 中都没有默认提供。就收养而言,这是一个杀手。通常,编写 PHP 代码的人无法控制编译到他们的 PHP 二进制文件中的内容。这由他们的网络主机和/或运营团队处理,网络主机和/或运营团队的目标与开发人员不同,并且不会安装随之而来的每个可选扩展。这也意味着 Drupal、Joomla、Wordpress 等项目不能依赖随处安装的 SPL,因此他们不使用它。
PHP “胜出” perl 的部分原因是一次安装就能满足您的一切需求。可选扩展在成为基本安装的一部分之前从未被广泛采用。
非常难回答的问题。显然,同行评审有帮助,但也有适当的文档。您的项目是否有技术规范,您在哪里绘制出要创建的类和接口?
如果是这样,团队中的其他人应该审查规范并指出可以使用现有代码的地方......
同意培训和同行评审,但执行单元测试和代码文档应该有助于解决NIH综合症 :)