Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/288.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
Php 我们如何让程序员在编写自己的函数之前查找现有函数?_Php_Spl - Fatal编程技术网

Php 我们如何让程序员在编写自己的函数之前查找现有函数?

Php 我们如何让程序员在编写自己的函数之前查找现有函数?,php,spl,Php,Spl,为什么这么多人还在标准库中编写糟糕的版本?不是为了追求PHP开发人员,而是让大家去阅读同行评议可以帮助了解这类事情。如果您让另一位开发人员查看代码,并且他们不断地找到标准库方法的实现,那么除非有充分的理由重新发明轮子,否则该代码应该不会通过审查。更好的搜索技术。和特定领域的熟悉度 开发人员如何检查他们不知道其名称的函数?或者可能没有一个确切的内置函数来做他们想要做的事情,但是他们可以使用它来保存大量的代码。您需要能够为手头的问题找到正确的术语,并从中知道要搜索什么。这最好通过阅读特定于您的问题领

为什么这么多人还在标准库中编写糟糕的版本?不是为了追求PHP开发人员,而是让大家去阅读同行评议可以帮助了解这类事情。如果您让另一位开发人员查看代码,并且他们不断地找到标准库方法的实现,那么除非有充分的理由重新发明轮子,否则该代码应该不会通过审查。

更好的搜索技术。特定领域的熟悉度


开发人员如何检查他们不知道其名称的函数?或者可能没有一个确切的内置函数来做他们想要做的事情,但是他们可以使用它来保存大量的代码。您需要能够为手头的问题找到正确的术语,并从中知道要搜索什么。这最好通过阅读特定于您的问题领域的主题来实现。远离编码特定的资源,花一些时间在你正在编码的领域。。。无论是零售、医疗、保险等行业。

年轻、雄心勃勃的程序员喜欢自己解决所有问题。他们不需要臭图书馆。年长、懒惰的程序员宁愿寻找现有的解决方案来解决手头的问题

所以我的建议是:下次你雇佣程序员时,选择那个在接待区睡着的老家伙


主要是开玩笑。同行评议和教育是答案。

一个简单的编码风格文档可能会有帮助,提醒开发人员有可用的库(可能列出一些首选库),他们应该熟悉它们

有时候,你只需要提醒别人


同行评议会有所帮助。

总结:假设是所有Fubar之母

我从那些不熟悉框架概念的同事(很多人抱怨“两种语言”)中看到了很多:机智的老C++们突然面对C潜水,从头开始重新创建哈希表……p> 显然,从这个角度来看,这一现象的很大一部分并不是走出旧的思维模式和习惯。如果你在一个新的环境中,你需要学习新的规则。从外到内处理这个问题的唯一方法是提供培训,无论是结对编程还是更正式的培训


对你的工具不熟悉会引起别人的蔑视。

这个问题很难回答。显然,同行评议有帮助,但也有适当的文件。您的项目是否有技术规范,您在其中映射出要创建的类和接口


如果是这样的话,团队中的其他人应该检查规范并指出可以在哪里使用现有代码…

PHP有很好的文档记录,如果并且只有当您确切地知道您在寻找什么。例如,您可以打开和部分来查看如何使用数组。你猜怎么着,甚至没有提到SPL。

两个原因很快就浮现在脑海中。首先,标准的PHP库并不广为人知,文档也很差。php.net网站被广泛认为是该语言的最佳资产,但许多较新的内置类(如SPL、反射API、DomDocument等)只不过是一个没有大量上下文的方法列表

但更重要的是,在(未发布的)5.3之前的任何PHP版本中,默认情况下都没有提供完整的SPL。就收养而言,这是一个杀手。通常,编写PHP代码的人无法控制要编译到PHP二进制文件中的内容。这是由他们的web主机和/或操作团队处理的,web主机和/或操作团队与开发人员有不同的目标,不会安装附带的所有可选扩展。这也意味着像Drupal、Joomla、Wordpress等项目不能依赖到处安装的SPL,所以他们不使用它


PHP“战胜”perl的部分原因是一次安装就拥有了您所需要的一切。可选扩展从未被广泛采用,直到它们成为基本安装的一部分。

同意培训和同行评审,但强制执行单元测试和代码文档应该有助于解决这个问题:)

在开始编写代码之前,您还应该鼓励进行研究。我通常通过思考解决问题的方法来解决问题,然后我尝试在标准库或任何其他库中找到任何可以帮助我解决问题的方法。我想说,在某些情况下,一小时的研究可以抵得上几天的编码


如果人们不这样做,最好让别人问他们关于解决问题的一般方法以及他们考虑使用什么库函数/类的问题。如果他们遗漏了一些明显的东西,就向他们建议。

+1。这是一个严重的问题,希望我有一个答案。SPL仍然是文档中一个非常模糊的部分。事实上,即使是记录在案的内容也是不完整的。附议糟糕的文档。当问题中只提到PHP时,这与C#和.net有什么关系?在今天这个时代,谁不能查找东西,在维基百科上做点研究,发现合适的术语,并运行谷歌搜索?这比重新发明轮子花的时间要少。问题是你一开始就知道你没有合适的术语。同意,我解决问题的第一个想法是谷歌搜索任何类似的东西;不幸的是,谷歌并不完美,但如果它存在,我通常可以找到它(当然,如果我没有找到它,我不知道它是否存在,但是,好吧,是的,悖论),我通常把没有找到解决方案作为线索,我看错了方向,需要进一步研究我的问题。关键的一点是它通常是存在的,你只是找不到正确的地方。亚当是正确的,上面有很多例子