【问题标题】:Building PHP Competencies in an organization [closed]在组织中建立 PHP 能力 [关闭]
【发布时间】:2010-02-03 16:27:52
【问题描述】:

这并不是一个真正的技术编程问题,而是更多地与最佳实践和编程/项目管理流程有关。以下是一些背景信息:

我是一家敏捷 (scrum) 软件开发公司的顾问,该公司专门研究 Java、J2EE、Flex 技术堆栈。

许多人普遍认为,与 Java 相比,PHP 相关人员、项目等的质量并没有达到标准。虽然我经常对这种说法提出异议,但我确实承认进入 PHP 的总体门槛很低,这偶尔会吸引低质量的人,然后产生低质量的工作。

对我们来说,质量是第一位的。在接下来的几个季度中,我们还希望在 PHP 方面培养出非常高水平的能力。我们希望达到最高水平的质量,我们的流程应该是不断改进,同时从高水平开始。

我们的新员工正在经历一个严格的选拔过程,在这个过程中,技术任务非常重要。我们评估他们的编码方式,评估他们测试代码的方式,评估他们使用行业标准框架(Zend、CakePHP、CodeIgniter/Kohana、Symphony)的技能。

我们每两个月(每月两次)举办一次知识交流活动,鼓励个人进行展示。我们也参与了活动。

我希望您分享您的经验,了解我们作为个人和一个扁平、敏捷、相对较小的组织如何灌输良好的 PHP 开发实践并不断改进自己。

谢谢, 斯里

【问题讨论】:

  • 提示:如果他们说,“为什么不启用 register_globals?”它们可能不是您想要的。

标签: php agile


【解决方案1】:

我个人认为,良好的开发实践不仅仅局限于语言。您对 PHP 项目的要求应该与对 Java 的要求相同。例如,代码应该清晰、注释、格式良好并经过测试,就像任何其他语言一样。

【讨论】:

    【解决方案2】:

    我认为最重要的第一步是制定标准。设置强制编码风格(没有单行 if/for/while/etc. 语句、制表符代替空格、每个函数的文档等);对代码的清洁度有最低要求对于保持高水平的质量控制非常重要。

    下一步的好方法是找出您的员工在哪些方面胜任,在哪些方面不胜任。找出您的员工在语言的哪些部分遇到问题(即:新的 PHP 5 功能、有效使用 DOMDocument、编写安全类...)并指定强制阅读。

    这让我想到了我的下一个建议:拥有一个“公司图书馆”。对于我工作过的地方,它是一个书架,员工可以从中借书参考或学习。保留来自不同出版商的各种书籍。从我所见,员工非常愿意学习新东西,如果不是强加于他们,而且他们能够在闲暇时学习。优秀的程序员总是希望学习。

    最后,创建一个鼓励员工定期参与的博客/邮件列表/论坛。发布有关最佳实践的花絮(并鼓励您的员工也发布)。您可能会发布关于如何将 gettype 与 switch 语句一起使用是不好的,或者如何以编程方式正确禁用魔术引号。

    祝你好运!

    【讨论】:

      【解决方案3】:

      让自己变得更好的最好方法是确保您只雇用想要变得更好的人。 然后,当他们在追求进步的过程中犯错时,你必须支持他们。这样他们就不会害怕尝试新事物。

      我在美国听过一句话:“雇佣 GPA 低于 3.9(满分 4.0)的人”;这反映了雇佣那些做得不够完美的人的目标(也就是说,他们已经学会了如何做到不完美)。

      变得更好的最佳方法之一是“精益”心态,它催生了敏捷方法,以及大量制造业的成功案例。

      总的想法是不断地参与自我评估的迭代过程,并且永远不要浪费资源或在您的工作流程中遇到障碍。当然,这需要小心处理:研究项目定义不明确,几乎无法进入装配线,而且大部分软件开发都是研究。

      对于一种语言,您的开发人员需要了解最新的安全问题,IT 人员需要及时更新他们的安装,公司应该资助一些学习材料,无论是课程、书籍、会议,或者你有什么。

      总的来说,总体概念是质量是每个人的事,花时间把它做好是可以的

      【讨论】:

        【解决方案4】:

        显而易见的技术是定期代码审查和结对编程;如果您可以将后者用作向新员工灌输最佳实践的工具,则后者尤其重要。确保更接近您编写好代码理想的开发人员可以花足够的时间教其他开发人员。

        不幸的是,如果您雇用的人已经决定他们已经知道他们需要知道的一切,那么所有这些都是毫无意义的;确保您雇用的候选人希望成为更好的程序员并愿意为此努力。

        【讨论】:

          【解决方案5】:

          以上所有答案都有很好的听点。希望这只是补充。

          底线是需要练习。绝对不要接受那些认为自己很完美或不需要太多成长的人。我认为我是一个很好的程序员,但我可以看到很多很多的成长机会。

          依靠其他程序员的智慧和经验。为他们提供一些很好的阅读材料,其中突出显示它们如何解决或影响您的组织。

          如果知道变得更好的重要性,那么“想要”变得更好会容易得多。存在犯错和成长的支持,目标明确且可实现。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2021-08-16
            • 1970-01-01
            • 1970-01-01
            • 2012-09-18
            • 1970-01-01
            相关资源
            最近更新 更多