2020 年 PHP 开发者应该何去何从| 掘金年度征文

7,438 阅读8分钟

骄傲的PHP

Web开发领域有一个大家都耳熟能详的梗:PHP是世界上最好的语言!!!甚至,圈外的都对这个梗有所耳闻。

我的入门是在外包公司的DedeCMS套站开始的。当时被推荐,就是觉得PHP入门快,门槛低,对新人友好而入坑。回首这几年的开发,从 DedeCMS / TP / CI / Discuz! / ECMallECShop / Laravel 等大家都很亲切的框架或类库,曾经PHP是何等的风光。

但是随着中小公司的生存环境越来越艰辛,云计算和微服务技术流行让Java上项目都有先天的优势,Python得益于成熟丰富的类库和人工智能,加上Golang和JS全栈技术的崛起,PHP的优势越来越被弱化。

我们不可否认:PHP仍然是世界上最好的语言,但是作为一名开发,我们应该清楚的认识到自己的位置和将来的走向,时刻警醒,虚怀若谷——只会PHP的开发的职场竞争力越来越弱。

尽管2019年圈里曾有一篇文章类似“PHP早已不是十年前的鸟样”,甚至在2019年的年末,韩天峰以《2020年如何正确使用PHP为题发表了在新的一年对PHP开发的畅想,回顾PHP发展,表示PHP7的性能改进,PHP8 JIT 性能将直追 Java/C++/Go, 还有Hyperf/Swoole 高性能框架。

image.png


我们都看到PHP生态的越来越丰富,甚至在短板补齐上面都在努力。但是是否考虑了这两点:

1、广大开发者是否买账?比如在考虑性能、微服务这些项目的时候,现有成熟的解决方案,项目选型还会选择PHP吗?又为什么不是Java / Golang? PHP在此时的优势是什么?因为手下仅有的几个PHP boy? 强行用PHP来解决性能和微服务问题是否会更显得力不从心、捉襟见肘?

2、想想PHP的优势到底是什么?强行和其他编程语言拉倒一个赛道,真的可行吗?

处境尴尬PHP

圈里还有这样的声音,在鼓吹或浸淫在PHP的幻想里:世界上有多少大网站大公司在使用PHP。但是机智的你有没有想过,使用的范围,支撑的业务?以此来证明“PHP是世界上最好的语言”是否真的站得住脚?

守着 PHP 写几个if else 或 Laravel 或其他容器依赖注入和其他设计模式来解决中小型问题也可行,但是更往上走,更大的业务规模和团队,作为企业级的应用是PHP的尴尬之地。

此处,想起之前分享的阮一峰的文章,大家也可以看下是否中肯《PHP很烂?我的看法》,这篇文章还是发表在10年前。

时代的十字路口

在2019年的时间,每当周末或下班我总会参加一些技术分享,现在回想不少都是偏向于Java中间件、高效运维、ElasticSearch、Serviceless、K8s、Flutter和大前端、Dubbo和微服务等等,越来越多的新技术、热门和趋势好像PHP被边缘化。甚至在年中传出小米技术委员会下文件不再上PHP项目,年末甚至传出某大厂直接裁员其PHP项目团队。

我们虽不能讲PHP“大势已去”,但是我们都看到PHP遇冷,于是乎好像看到今年越来越多的PHP开发者转向Golang开发,所以网上有人说Golang群里有一半多都是PHP转过去的。虽是调侃,却不无道理。

我们现在冷静下来,除了拥抱Golang还有更好的选择吗?

PHP如何构建自我竞争力?

其实,为何PHP会处于鄙视链末端,我想起不知是2gua还是谁在知乎上说过的一句话,大意是并不是鄙视PHP语言本身,而是只会写PHP的开发。因为PHP对新人友好,代码写的再烂也能跑起来,虽然PHP在5就已经引入了面向对象支持,但是不少人为了快速上手,思路仍然是面条式的面向过程,一条线杀到数据库。PHP代码虽上手快,但是的难维护、性能不足、bug频出是令人诟病的关键。诚然,我也见过Java写出的垃圾代码,代码的可维护性和性能并不和开发语言有直接的关系。

如果你不能用一种语言里面的基本特性写出好的代码,那你换成另外一种语言也无济于事。你会写出一样差的代码。我经常看到有些人 Java 代码写得相当乱,相当糟糕,却骂 Java 不好,雄心勃勃要换用 Go 语言。这些人没有明白,是否能写出好的代码在于人,而不在于语言。 -- 王垠 《如何掌握所有的程序语言

提高编程能力的万无一失的方式,还是阅读更多好代码

而不只是学几个设计模式,这方面有太多文章可以参考。这方面,抽出更多时间去Github逛逛,看看最新的代码,看大家是如何写的,并不一定上来就看某框架的大型项目的源码,可以先从小而精美的类库开始,慢慢培养兴趣和习惯。

虽然很多人只是为了混口饭吃,但是还是希望你能在编程中找到乐趣

因为IT行业的火热,越来越多的人甘愿为“码农”,虽然是自嘲,但是真不建议我们要这么想,我更希望大家都觉得自己是一名“创造者”,是靠创意和点子来完成一个产品或一项工程。

We are Makers.

We are Software Engineers.

不卑不抗,这是一个最好的时代,也是一个最坏的时代。

不以程序员多么高薪或高大上而自居看不起其他行业(相比投入和报酬,程序员并不见得是高薪),也不以码农(搬砖者)让自己麻木的投入到体力劳动者或只是一份工作而已定位自己,学会平衡工作和生活,持续学习。

补足计算机及软件其他方面知识

如果非要说混口饭吃,那么我们也是在吃专业的饭。

技术活,凭本事吃饭,不管你是科班出身还是半路出家,既然投入到软件开发行业,都应该精益求精,让自己专业起来,而不是PHP给人的野路子印象,简单粗暴,能用就行。凭着 var_dump die 调试走天下。

如果数据结构、算法感觉距离太远,那么也应该了解操作系统Linux基本运维、分布式数据存储、高性能缓存、常见业务场景解决方案、软件开发流程有所了解总结,能够独当一面解决问题。了解越多,越会融会贯通,解决思路无外乎“分层设计”、“分而治之”、“空间和时间的权衡取舍”、“提效降耗”、“专业的人做专业的事儿”等等。

职场竞争力

想下自己的兴趣,转一门开发语言并不一定是唯一解,要了解技术,莫过于留意技术论坛,特别是技术活动宣讲的是什么,或者招聘网站的岗位JD。



虚怀如谷,持续学习

不要把自我定位在某一个编程语言的开发者,故步自封,自高自大,抱残守缺。关注技术趋势,拥抱时代,才不会被淘汰。因为你不自我革命,就会被时代革命而下岗。程序员的价值就是解决问题,软件开发的价值就是尽早把更多的有用的功能实现给用户使用。

关注开源文化,不要把精力浪费在已经解决的问题上。

沟通及自我管理

沟通态度、情绪控制、语气、多方协调、工作总结反思等

PHP何去何从

PHP的开发岗位在减少,如果你留意招聘网站,PHP开发的岗位大概在两类:1、后台或OA开发;2、开源电商网站维护或二开。

如此之外,我们还有别的选择吗?

  1. Golang等中台或中间件开发
  2. Java生态及微服务等分布式系统
  3. Python及DevOps
  4. Docker及k8s云原生架构
  5. Vuejs/ReactJs/Flutter等大前端

以上

此刻,2020年1月3日凌晨1点半,终于沉下来做了一个反思和总结。也是和更多PHP开发的交流和分享,以上是个人感悟,如有偏颇,请指正批评。

今年你的开发之路怎么走,想好了吗?


补充

最近几天再次和朋友聊起这个尴尬的话题时,自己也在思考“swoole和Hyperf能再次撑起PHP?”,刚还在知乎看到一个想到中肯的评论,摘抄如下,如果对这个问题感兴趣也可以看>> 原贴


image.png


image.png


image.png


image.png


image.png


最后

开放的心态,努力向前(钱)看,工具和编程语言都是为了解决问题而生,都有擅长或不擅长的场景和领域。