记得之前在某个论坛上看到别人说php程序员土,作为一名php程序员内心当然是不乐意的。不过别人这么说也不是完全没有道理,其实他说php程序员土应该指的就是php程序员不懂得与时俱进。
当然,这也不全是我们php程序员本身的锅。相信我们的队伍中至少也有三分之一的人员来自各大培训机构吧?在网上随便搜下各大培训机构的视频教程或者文字教程,讲的东西都还是几年前的东西。比如连接mysql的一水是用mysql扩展,但是这个扩展在php 5.5中就被标记为deprecated了,并且在php 7.0版本被完全移除。还有一个深有感触的就是在各种php群中,会有人贴出一段拼接的sql,然后问别人自己哪里写错了,为什么查不出来数据?让我来说,这些都属于典型的过时培训课程受害者。另外还有一些就是问现在从头做一个网站,选用哪个php版本?然后当别人推荐php7或者7.1的时候,他会当然的说php7和php7.1太新了,不稳定,问下用php 5.4怎么样? wtf……
所以你看,按照上面这些实例来说,别人说我们php程序员土是不是也有点道理?如果有的话,那我们要怎么改变现状,变得modern起来呢?我觉得可以从以下几个方面着手。
首先,要多关注语言层面的发展。比如php7早在15年底就已经released了,而且官方做了大量的测试工作,无论是功能上还是性能上的。php开发团队对php的向向前兼容做了很好的处理,除了移除了一些早已经deprecated的类和接口,其他行为几乎没有改动。并且被移出的这些类库和接口还有专门的文档:http://php.net/manual/en/migration70.php来说明,只要稍费点心,在自己项目中做些检索就能知道会不会影响已有功能。就算线上项目不敢轻易做版本迁移,新开发的项目总也没有理由去用过时的php5了吧?对于这总不做任何调查,稳定性全靠感觉的开发者,鸟哥不知道会不会气到吐血。再说扩展,用的最多的两种:图片处理和数据库访问。图片处理尽量用Imagick去替代GD,前者无论是功能还是处理速度或者是图片处理的质量都远胜于后者;数据库访问务必用PDO或mysqli去替代mysql扩展,前者(PDO)提供一套针对多种流行数据库的统一接口,让你无痛把程序部署在不同的数据库服务上,同时提供的预处理和参数绑定特性,能确保不会发生sql注入,你实在是没有冒着风险去拼sql了。
其次,作为一名与时俱进的程序员还要关注社区的动向。比如关注和实践下近两年比较火的laravel框架,号称为艺术家设计的框架,深入进去你会发现这个框架不仅用起来优雅,设计和实现的也很优雅;试下可以让php异步方式执行的swoole扩展和框架,按照作者自己的评测,性能比nginx还高(笑);还有workerman这种php socket服务框架,除了http协议外,还支持websocket,同时传输层的udp和tcp协议也都支持;尝试着在自己的项目中使用composer来管理依赖,省去了include来require去;在自己的项目和开发团队中践行社区推荐编码规范psr,搭配phpcs,约束团队内编码风格更统一;使用RESTFul架构模式来开始自己的下一个项目;还可以蹭个热点,去尝试下机器学习,可以预想在不远的将来会有很多相关职位和需求,这方面虽然不是php的强项,不过还是有类似php-ml这种优秀的机器学习库供你学习和研究。其实只要保持着对技术的热情,我觉得这些都不是很难做到的事情。做技术很重要的一点就是跟着大公司走和跟着社区走,还有一点就是记得github是你永远的好朋友,时不时的上去瞄两眼,相信偶尔会有惊喜发现。
然后,就是工具的运用了。这里的工具很广泛,从开发工具到调试工具,再到代码管理等。先说开发工具,在我实习的时候,组长让我用editplus去写代码,理由是没有太多代码提示,方便记住更多的函数。当时深以为然,后来随着学习的深入和知识面的扩展,才发现这是邪道。php有一个饱受大家诟病的问题就是混乱的函数名和参数设计,你想记住每个函数名和参数列表几乎是不可能的,我也奉劝各位想要靠背住函数名提升开发水平的还是考虑换条路。所以各位还是尽量使用phpstorm这种all in one的IDE或者vscode这种扩展性很强的编辑器。再说到调试工具,我注意到周围同事大部分时候调试还都是var_dump然后exit,很多时候这是没问题的。不过还是有必要了解一下xdebug的使用,采用单步调试能更方便的掌握任何阶段内存中变量的状态;还有类似kint和debugbar这种调试辅助工具,能大大提高你的调试效率。除了这种本地化的工具外,还有一些很cool的服务你值得关注。比如实时错误报告服务,sentry,能够让你很简单的分析自己的服务哪里出了问题,帮助你快速定位并解决问题;再比如性能监控服务new relic或者blackfire,通过简单的部署,就能分析出来自己线上服务的瓶颈所在,从而提升服务质量。代码管理的话现在应该没有理由不采git了,无论是更轻量的分支、本地版本库还是更多样化的协作方式,都是你值得拥有的原因! 当然了,还有很多更有趣和强大的工具在诞生,我们需要做的就是关注社区,保持进取。
最后,虽然我们在写php,但是眼光不应局限于语言本身。我们还需要了解诸如容器技术,像是docker、lxc,并且在生产和开发环境中尝试使用这些技术提高我们的环境搭建和服务部署效率。再比如持续集成,在敏捷开发的团队中一定对这个概念不会陌生,持续集成的主要意义在于快速发现错误和防止多人开发环境下分支大幅度偏离主干,比较出名的持续集成服务比如jenkins、travis或者是用php开发的PHPCI,如果你还没试过,可以挑选一个在自己的团队中尝试,附上一个总结的脑图给大家
所以,最关键的一点就是要时刻关注社区动向,保持对技术的热情和一颗折腾的心!如果觉得所讲的东西能够帮助到你,并且希望进行更详细的深入的学习,欢迎加群632109190进行讨论和学习。
分享到:
相关推荐
为什么很多程序员喜欢喝咖啡?喝咖啡真的很伤身体吗?除了咖啡之外,还有什么方法可以提神?一个老鸟来为你分享一下真实的心里感受
最高境界绝对不是你去编两行代码,或者是几分钟能写几行代码,或者是用什么所谓的可视化工具产生最少的代码这些工作,这都不是真正的高手境界。即使是这样的高手,那也都是无知者的自封
例如,淘宝和Facebook等大型系统的成功在于它们在不断演化中保持了良好的设计和结构,适应了业务的增长和用户需求的变化。 5. 软件腐坏的过程:通过一个例子,展示了一个软件如何在需求变更的压力下逐渐变得复杂、...
第一个是生理原因 第二个原因是,编程是认知高度密集并且压力非常大的工作,会导致心理疲劳和损伤 第三,有可能你现在已经精疲力竭了,因为正在做的工作耗尽了你的力量,
程序员如何防止颈椎病程序员如何防止颈椎病程序员如何防止颈椎病程序员如何防止颈椎病程序员如何防止颈椎病程序员如何防止颈椎病程序员如何防止颈椎病程序员如何防止颈椎病程序员如何防止颈椎病程序员如何防止颈椎病...
然而,有些人对于这种技术的发展感到担忧,尤其是低端程序员。他们担心,随着CHATGPT等人工智能技术的普及和成熟,他们的工作岗位会受到影响,甚至会被淘汰。那么,面对CHATGPT的出现,低端程序员应该怎么办呢? ...
你想做个受人尊敬的程序员?还是小丑??这是我遇到的问题。和你从不认识的人坐在一起,试图弄清楚他是个程序员还是个小丑。我没有想侮辱任何人的意思,而且,我是第一个要感谢这么多年的教育和努力终于把我变成一个...
【标题】:“框架会使程序员变...因此,程序员应当在熟练运用框架的同时,不断学习和理解基础技术,以保持技术的全面性和深度。同时,教育和培训体系也应当注重基础与进阶的平衡,培养程序员的独立思考和问题解决能力。
1、有人曾说,做程序员的人,都是疯子,做长了往往入戏太深,成天与代码打交道,话都很少说,所以评论程序员们都是以后连妞都泡不到的人,我听后,我可以这样说,泡妞好比一个方法,他人是学习方法,而程序员呢,是...
刚刚走出就业的程序员,技术是刚刚起步的基点。那下面我们就聊一聊有关技术的东西。...你又是哪一类的程序员?“菜鸟”程序员和“大神”程序员差在哪里?真是差在技术上了吗?那不是差在技术上那差在了哪里?
程序员应当具备坚韧不拔的精神,面对困难时要有毅力坚持下去,因为成功往往源于无数次的尝试和失败。 其次,浮华不实和自满自大是程序员的大敌。优秀的程序员始终保持谦逊,不断学习新知识,不满足于现状。他们会...
收入高,福利好(有可能非常好),工作富有挑战性(通常是正面积极的挑战),根据目前的业形势和程序员的需求量,这种职业竞争压力很小。当然,虽然如此,这并不意味着程序员不会偶尔的由于害怕工作上差错而在夜里惊醒,...
这是因为,PHP 程序员需要在工作中保持高度的职业道德和工作态度,以确保项目的顺利进行。 其次,PHP 程序员需要具备良好的客户交流沟通能力,包括需求理解能力和协作精神。只有具备良好的客户交流沟通能力,PHP ...
如何面试一份PHP程序员工作? How to interview a senior PHP developer
php程序员工具箱是迄今为止全网唯一款php程序员的专属工具箱,集合了php环境搭建、在线小工具、原生手册、文字与视频教程、问答社区等,可以更好的帮助和服务广大php初学者,需要此款工具的朋友们欢迎前来下载使用。...
【视频答疑】为什么做程序员头发还这么浓密?!
不管是新手还是高手。php程序员必备手册。
PHP程序员简历模板 iOS程序员简历模板 Android程序员简历模板 Web前端程序员简历模板 Java程序员简历模板 C/C++程序员简历模板 NodeJS程序员简历模板 架构师简历模板 通用程序员简历模板PHP程序员简历模板 iOS程序员...