这不是一个技术编程问题,而是与最佳实践和编程/项目管理流程有关。以下是一些背景信息:
我是一家专注于Java,J2EE,Flex技术堆栈的敏捷(scrum)软件开发公司的顾问。
在许多人看来,与Java相比,PHP相关人员,项目等的质量达不到标准。虽然我经常对这种主张提出异议,但我确实认为进入PHP总体上存在较低的障碍,偶尔会吸引质量较低的人,然后他们会产生较低质量的工作。
对我们来说,质量是第一位的。在接下来的几个季度中,我们也希望开发出非常高水平的PHP能力。我们希望达到最高水平的质量,我们的流程应该是这样的,我们一直在不断改进,同时从高层开始。
我们的新员工正在经历一个严格的选拔过程,其中有非常专业的技术任务。我们评估他们如何编码,我们评估他们如何测试他们的代码,我们使用行业标准框架评估他们的技能(Zend,CakePHP,CodeIgniter / Kohana,Symphony)。
我们每两个月(每月两次)进行知识交流活动,鼓励个人出席。我们也有举手活动。
我会请求您分享您作为个人和一个扁平,敏捷,相对较小的组织如何灌输良好的PHP开发实践并不断提高自己的经验。
谢谢, 斯
答案 0 :(得分:7)
我个人认为良好的发展实践超越了语言。您对PHP项目的要求应与Java相同。例如,代码应该清晰,注释,格式化和测试,就像任何其他语言一样。
答案 1 :(得分:4)
我认为最重要的第一步之一就是制定标准。设置强制编码样式(没有单行if / for / while / etc。语句,制表符而不是空格,每个函数的文档等);对代码清洁度的最低要求对于保持高水平的质量控制非常重要。
下一步的好处是找到您的员工胜任的地方以及他们不在哪里。找出员工遇到问题的语言部分(即:新的PHP 5功能,有效使用DOMDocument,编写安全类......)并分配必读。
这引导我进入下一个建议:拥有一个“公司图书馆”。对于我工作过的地方,员工可以借阅书籍或参考或学习书架。随身携带来自不同出版商的各种书籍。从我所看到的情况来看,员工非常愿意学习新东西,如果没有强迫他们,他们可以在闲暇时做到这一点。一个优秀的程序员总是希望学习。
最后,启动一个博客/邮件列表/论坛,鼓励员工定期参与。发布花絮(并鼓励员工也发布)有关最佳实践的信息。您可以发布如何使用gettype
使用switch语句错误或如何以编程方式正确禁用魔术引号。
答案 2 :(得分:2)
明显的技巧是常规代码审查和结对编程;如果您可以将其用作向新员工灌输最佳实践的工具,后者尤为重要。确保更接近您编写优秀代码的理想的开发人员可以花足够的时间教导其他开发人员。
如果你雇用那些已经知道他们已经知道他们需要知道的人,那么所有这一切都是毫无意义的。确保你聘请想成为更好的程序员并且愿意为此工作的候选人。
答案 3 :(得分:2)
变得更好的最好方法是确保你只雇用想要变得更好的人。 然后,当他们在追求变得更好的过程中犯错时,你必须支持这些人。这样他们就不会害怕尝试新事物。
有一种说法,我在美国听说过:“雇用GPA低于3.9(满分4.0分)的人”;这反映了雇用那些没有做得很完美的人的目标(也就是说,他们已经学会了如何不完美)。
变得更好的最佳方法之一是“精益”思维模式,它产生了敏捷方法论,以及制造业中的大量成功案例。
一般的想法是不断参与自我评估的迭代过程,不要浪费资源或在工作流程中使用块。当然,这需要小心对待:研究项目如此不明确,几乎无法进入装配线,而且大部分软件开发都是研究。
对于某种语言,您的开发人员需要了解最新的安全问题,他们的安装需要由IT人员保持最新,公司应该资助一些学习材料,无论是课程,书籍,会议,或者你有什么。
总的来说,最重要的概念是质量是每个人的事,而且可以花时间做正确的。
答案 4 :(得分:1)
以上所有答案都有好听的意思。希望这只是另外的。
底线是需要练习。绝对不要认为他们认为自己很完美或者不需要太多成长的人。我认为我是一个非常优秀的程序员,但我可以看到很多很多增长的机会。
依靠其他程序员的智慧和经验。给他们一些很好的阅读材料,其中的部分会突出显示他们如何解决或影响您的组织。
如果知道变得更好的重要性,那么“想要”变得更好就容易得多。存在犯错和成长的支持,目标明确且可实现。