您好,欢迎访问一九零五行业门户网

如何成为专业的PHP开发者

如何才能成为一名专业的php开发者?资深web开发者bruno skvorc在其博客上分享了一些心得。
当阅读各种和php相关的博客、quora问题、google+社区、资讯和杂志的时候,bruno skvorc注意到讨论的问题出现了两极分化的现象。例如“我如何连接到一个mysql数据库?”,或者是“在不增加服务器的前提下,我如何使得邮件系统能够每小时发送超过一百万份电子邮件?”
bruno skvorc根据对php的使用能力将应用者分为四类:初级、中级、专业和精英。
两极在php语言中,初级用户会用一些变量、includes、表单处理,等等。还会学一些简单的逻辑结构。借助教程他们能用php发邮件,甚至他们可能接触到一些面向对象编程的例子,当然他们不一定理解背后的原理。他们使用wordpress,修改一些css类。他们凭着这些知识去申请工作,然后很不幸地被拒了。
php专业用户能让很多项目焕发生机。他们使用众多框架开发商业应用,高效地使用各种不同的数据库,参加各种研讨会,学习各种设计模式,很轻松地开发出一个完整的项目——从流程设计到最后运行。他们早已不再使用过程式编程范式了。
精英程序员就是传说中经过10000+小时磨练的专业人士,自己编写扩展来扩充自己部署的php的功能,只要粗略地浏览一下源文件就能抓出bug,对代码布局极为讲究,只认可极为复杂的项目,在别人还没察觉之前就找到解决问题的创造性的替代方案。他们还会写一些畅销的关于php语言的书籍,在大量研讨会上发言,甚至创建一个属于自己的php分支或者一两个非常成功的框架。
那么,那些中级用户在哪里?
缺失的一环一个程序员如何从初级升到专业级甚至更高?如果一个人只会基础的编程知识,他如何提升自己的技能,舍弃糟糕的实践,使用高级的方式实践呢?初学者经常问bruno skvorc这个问题。要想成为一个专业的程序员,首先要成为一个中级php程序员。
接下来的列表指出了流畅地使用php需要注意的一些方面:
放弃意大利面式代码很多人认为使用类就意味着是在编写面向对象的代码,而使用函数就意味着是在编写过程式代码。大错特错!让我们复习一下广泛意义上的定义:过程式代码就是不使用类和对象的代码,面向对象的代码就是尽可能多地使用类和对象。
bruno skvorc的建议是完全放弃过程式代码。尽可能多地采用面向对象风格——编写类,封装逻辑,考虑真实世界的术语。考虑到可复用性,过程式代码相对于基于类的代码的性能优势微不足道。适当的oop代码可以让未来的开发者接手你的项目。通常人们会这么反驳:“但是,wordpress可是过程式的!”老实说(也许不好听),如果wordpress的开发者是php开发者的话,那instagram的开发者可就是摄影师了。这并不意味着wp没什么用——对于博客、简单的网站和一天项目而言,wp很棒。用wp能很快地赚些小钱,对不太懂技术的用户而言也很好用。但是精通wp绝不意味着你是一个专业的php开发者——那就是一堆意大利面一样的代码,那些代码可没法教会你合理的设计原则。
从小事做起。思考现实世界的概念,尝试用面向对象的代码表达它们。学习一些基本的教程,再慢慢向高级方向发展。练习面向对象编程直到你真正理解类。在此之前,不要急着去学习各种框架,以及 mvc 之类的抽象术语。
钻研现有项目不管你是在哪里看到的源代码,都要仔细钻研。例如,在github里查找php项目,克隆下来,部署在自己的机器上,尝试加以修改。一个文件接着一个文件,一行代码接着一行代码,直到你真正理解它们的意义。
学习搭建的php环境搭建php环境也是一项宝贵的技能。这不仅允许你调整优化自己的配置,还可以让你熟悉如何通过源码构建插件。
别用windows开发——如果你的主要桌面是windows,你需要安装一个虚拟机软件,然后运行一个linux虚拟机——windows的大小写敏感,行结尾,和大多数服务器环境不同的怪异之处,都会给你造成麻烦。所以最好在一个和服务器相似的环境下开发。
虚拟机也有利于实验——如果出现了问题,你可以重新开始或者回滚一下。你也可以尽情实验,而不用担心把一切搞砸。掌握工具的使用方法是很重要的,但有一个好的工作平台也同样重要。
用你自己搭建的环境做实验也可以让你熟悉不同的服务器——该用nginx还是apache,或者使用appserver,等等。
尽早应用最佳实践在编写自己代码的时候,要确保详细注释、完美缩进、仔细架构。在构建一个类、项目和库之后,使用知名的的文档工具(phpdocumentor、apigen)来提取文档,并在此基础上加以改进。
一个好的ide是很宝贵的,熟悉一个跨平台的编辑器有利于你在架设新环境后马上进入代码,而不是把时间浪费在设置键盘快捷键和主题上。确保你将ide配置文件保存在云端,(例如google drive),这样即使你新安装了系统,你也可以很方便地导入它们。bruno skvorc推荐phpstorm和netbeans这两个跨平台的ide,后者是免费的。
早一点适应最佳实践能够帮助你在项目进程里保持一致,更有助于别人流利地阅读你的代码。找到你的风格并坚持下去——这对你自己和别人都有好处。尽可能严格遵循psr标准(psr-0、psr-1、psr-2、psr-3)。标准可不是徒有虚名。大部分人遵循这些标准,喜爱这些标准,因为它们增加了每个人的代码的可复用性和可读性。
对于初学者来说,php之道是一个非常有用的资源,提供及时的指引。通过此书,你可以熟悉最新的最佳实践,面向对象的基本概念,安全,部署,代码标准,等等。
尝试不同的框架后做出选择很久以来,php是一个具备最多框架的编程语言(javascript最近已经赶上了)。很难说这到底是意味着社区的分裂还是语言的流行。但事实是,选择一款框架是一个很纠结的事情,尤其是在刚开始的时候。
试用了大多数框架之后,bruno skvorc推荐稳定优质的phalcon框架。其实phalcon是用c语言编写的,可以当作php扩展安装,因此比现存的框架都要快。无论如何,尝试使用不同的框架绝对是很有必要的。
当你尝试不同框架的时候,你每次都能学到解决常见问题的新方式。每个框架都有自己的特性和坑,但是最重要的是,你能学到别人(主要是框架开发者)的思路。你将接触新的用法和方式,用所有你能找到的框架重构你的项目是一个非常好的练习。这将帮助你有效地衡量某个特定框架的效率:开发的速度和性能。
阅读千万不要忽略别人给你的提示和小建议。尽可能多地阅读。订阅好的博客,阅读网站上的教程,在stackoverflow上面阅览问答,订阅邮件列表,关注google+上的优质资源。但是要避免php基础教程类的书本,它们很快就会过时。相反,要关注网上有用的、最新的代码片段和教程。即使是已经接触过的主题也可以再读一遍,常常能从别人的观点里领悟出新的想法。
如果没有工作,那就发明一些出来总有事情可做。永远别对自己说:“我没有一个项目。”更别对自己说:“我很无聊。”如果你找不到什么项目做,那就开一个新的。你是不是因为天天使用的工具缺乏某个功能而沮丧?做一个更好的替代品!没有新产品的创意?那就重复已有的创意——尝试重建一个基本的facebook,重新创建一些你已知的项目来练手。
最重要的是永远别停——如果你停下了,就不会有惊人的一万小时了!持续地工作,维持自己的兴趣,持续投入。做一个简单的地址薄应用。然后用别的框架重构一下。然后再换个数据库(比如将 mariadb 换成 mongo)。保持忙碌!
找一个伙伴或者指导者和人合作学习起来更容易。寻找一个和你一样有激情的伙伴。也许你是少数好运气的人,能找到一个能和你分享极客兴趣的伙伴。也许你在学校里,能找到一个想开始学习也需要伙伴的同伴。你甚至可以找一个指导者,接受一些专业指导。
永远不要低估陪伴的力量!
结论当你专注于实践上面所提到各种方法的时候,你就在成为php专业开发者的路上。坚持原则,永不放弃(即使周围的人放弃了),持续练习。
原文 ecoming a php professional: the missing link
编译 segmentfault
php
其它类似信息

推荐信息