这篇文章是“成为PHP专家”系列4篇文章中的第一篇。在浏览各种与PHP相关的博客(例如Quora问题、Google群组、时事通讯和杂志)时,我经常会注意到技能的层次结构。问题都类似于“如何连接到MySQL数据库?”或“如何在不引入新服务器的情况下扩展我的邮件系统以每小时发送超过10,000封电子邮件?”我将PHP能力级别分为4个级别(可能适用于任何编程语言或专业):初学者、中级、专家和精英。级别对于PHP初学者,他们学习如何使用变量、包含文件、表单处理等。他们学习简单的逻辑结构。在教程的指导下,实现了用PHP发送邮件,甚至接触了面向对象编程,但没有完全理解。他们还可以修改WordPress的几个CSS文件。有了这些知识,他们开始找工作,不幸的是,这通常都失败了。专家是那??些经历过很多项目并且有很多经验的人。他们已经开发了许多商业应用程序,但并没有完全使用框架来这样做。他们能够在不同的数据库上使用PHP进行高效开发,并通过会议讨论解决问题的方法。他们熟悉设计模式,可以轻松地用代码实现项目的工程图。他们远离过程编程。精英程序员是那些通过10000+小时的努力来磨练自己专业技能的人。他们可以根据自己的需要编写PHP扩展,只需查看源代码文件就可以发现错误,并且非常了解自己的代码布局。他们只从事最复杂的项目,并且能够找到问题的替代和创造性解决方案。他们编写了一些关于编程语言的流行书籍,进行了数十次讲座,甚至可能拥有自己的PHP语言版本或非常成功的框架,或两者兼而有之。那么,谁属于中产阶级?缺失的环节初学者如何成为并超越专业人士?如果一个人连基础知识以外的东西都不知道,他又如何提高自己的技能,摒弃错误的开发方法,去学习更高级的开发方法。很多初学者问过我这个问题。要想成为专家,必须先成为中级。下面列出了成为中级人员需要经历的PHP学习之旅:放弃意大利面条式编码许多人认为使用类意味着编写面向对象的代码,使用函数意味着编写过程风格的代码。然而,这是错误的。为了支持这个观点,我们假设一个广为流传的定义:过程式代码是不使用类和对象的代码,OOP代码是尽可能使用类和对象的代码。我的建议是完全放弃过程代码。尽可能以面向对象的风格编程——编写类、封装逻辑、考虑使用现实世界的术语。与适当的OOP代码为您提供的可重用性以及未来开发人员可以继续处理您的项目的便利性相比,过程代码的性能优势显得微不足道。反对这种观点的是“但是,WordPress是程序化的!”。坦率地说,尽管听起来很刺耳,“WordPress开发人员”并不是真正的PHP开发人员,就像拥有Instagram的人不是摄影师一样。请不要认为这意味着WP没有用-当您不希望花太多时间开发博客、简单网站和小型单日项目时,使用WP进行开发会让您大吃一惊。这对于赶时间或没有太多技术的人来说很棒,但掌握WP绝对不会让你成为专业的PHP开发人员——它使用意大利面条式编码并教你不恰当的设计原则。从小事开始。想一个现实世界的概念并尝试用OOP代码表示它。通过一些基础教程,慢慢地精通OOP。坚持使用OOP思维编写代码,直到您了解一般的类-所有这些都在空中,然后再过渡到适当的框架和Punk的术语,如“模型”、“视图”和“控制器”。抽象术语在OOP中没有坚实的基础。剖析现有项目会尽可能深入到现有源代码中。比如查看Github上的PHP项目,克隆它们,部署到自己的主机上,尝试阅读代码。每个文件,每一行,直到您了解它们的作用。寻找不断开发的评论良好、结构良好的项目。如果您打算开始使用PHP5.5,则2008年之前更新的项目不是很好—否则您可能会错过PHP最新和最强大的功能,这些功能可以让您在已经人满为患的领域中脱颖而出。学会搭建自己的PHP开发环境如果能够搭建自己的环境,那是一种非常好的能力。自己搭建环境不仅可以让你根据实际情况做一些小的调整,还可以让你熟悉如何从源代码构建扩展。放弃在Windows上开发——如果你的主要桌面环境是Windows,那么安装虚拟化软件并运行Linux虚拟机——Windows中的大小写不敏感,它的行尾,以及其他的东西与大多数服务器环境不匹配,并且在Windows上开发很麻烦,所以最好在最终运行项目的系统上开发。虚拟机还可以帮助您进行一些实验——如果出现问题,您可以重新开始或回滚。你可以尝试尽可能低,而不用担心把事情搞砸。掌握工具固然重要,但拥有一个好的工作平台也很重要。自己进行试验还可以让您熟悉不同的服务器——无论您使用的是Apache还是Nginx、Appserver等。早期最佳实践编写代码时,请确保您有大量的文档注释、良好的缩进和良好的结构。当您构建类、项目或库时,使用众所周知的文档工具(PHPDocumentor、ApiGen)来提取您的文档注释并加以改进。一个好的IDE也是非常值得的——使用跨平台的编辑器可以帮助你随时建立一个新的开发环境,确保你可以专注于编写代码而不是浪费时间更改键盘快捷键和主题。确保将IDE的配置文件备份到GoogleCloudServices之类的地方,这样您就可以随时导入配置文件以进行全新安装。一个好的IDE是PHPStorm,如果你买不起,或者没有需要免费许可的开源项目,Netbeans是个不错的选择,而且都是跨平台的。尽早应用最佳实践将帮助您的代码保持一致并让其他人更流畅地阅读。找到你的风格并坚持下去——你不仅会帮助自己,也会帮助他人。尝试遵循PSR标准(PSR-0、PSR-1、PSR-2、PSR-3)——它们是标准是有原因的。我们大多数人都使用并喜欢这些标准,它们使每个人的代码都可重用和可读。对于初学者来说,PHP的正确方法是一个非常好的且不断更新的资源-学习它将使您熟悉最新的实践、基本的OOP、安全性、部署、编码标准等。我提到过,等等。尝试不同的框架并选择一个。长期以来,PHP一直是大多数框架使用的语言(最近是JavaScript)。我不知道这是否说明了我们的社区或语言受欢迎程度的不一致,但事实仍然是选择框架可能是一项艰巨的任务,尤其是在第一次开始时。在尝试了其中的大部分之后,我可以全心全意地推荐Phalcon框架,因为它的健壮性和质量,以及它是用C编写并作为PHP的扩展安装的(因此比任何当前框架都更快)。但是,值得自己尝试不同的框架。当您尝试不同的框架时,您会找到解决相同问题的新方法。每个框架都有你喜欢的优点和你讨厌的缺点,但更重要的是,你将能够理解别人(尤其是框架的开发者)的心态。您会看到新的用法和方法,最好的做法是使用尽可能多的框架重构相同的实验项目。这将帮助您有效地衡量特定框架的功效:使用它的开发速度及其性能。不要低估其他人的提示和技巧。尽可能多地阅读——如果你坚持下去,它不会像你想的那么久。找到一个好的博客并关注它,阅读本网站上的指南,浏览StackOverflow问题和答案,访问SitePoint论坛,订阅时事通讯,关注Google+上的好资源。避开基本的PHP教程书籍——因为它们一出版就已经过时了——而是专注于你可以在网上找到的包含最新代码的片段和教程。即使遇到您已经研究过的主题,也请尝试阅读它——通过阅读其他人对同一问题的评论,您通常会发现新的东西。如果无事可做,那就试着创造一些总有事可做的事情。永远不要说“我没有项目可做”,或者更糟的是,“我很无聊”。如果您没有正在进行的项目要处理-创建一个。您每天使用的工具是否因为功能不完善而令人沮丧?自己做一个更好的!对新产品没有想法?然后复制现有的-尝试重建一个基本的FaceBook,重建一些你已经知道的东西,只是为了能够练习。最重要的是永远不要停止——如果你不珍惜每个小时,你就无法积累10,000小时!保持良好的工作,让自己保持兴趣和参与。做一个简单的通讯录应用。然后用另一个框架重建它。并使用不同的数据库(例如使用Mongo而不是MariaDB)。保持忙碌!寻找合作伙伴/导师如果有人可以加入您,学习会更容易。找一个和你有共同爱好的伙伴。也许您是少数幸运儿中的一员,您已经拥有一个与您有着共同兴趣的合作伙伴。也许你在学校或大学里有一个愿意和你一起创业和努力的同龄人。您甚至可以找到导师并接受专家指导。别小看伙伴的力量——三人行必有师!总结当你专注于所有这些项目并尽可能地掌握它们时,当你意识到这就是你想要的时,然后继续前进——你正在成为一名高级PHP开发人员的路上。坚持原则,永不放弃(即使您身边的人放弃了)并坚持练习。如果您有一些有用的资源并想与我们分享您是如何跨越(或正在跨越)中级开发人员障碍的,请在下方发表评论并告诉我们!原文链接:http://www.sitepoint.com/becoming-php-professional-missing-link/翻译链接:http://blog.jobbole.com/56560/
