2017 年 PHP 程序员未来路在何方

PHP 从诞生到现在已经有20多年历史,从Web时代兴起到移动互联网退潮,互联网领域各种编程语言和技术层出不穷, Node.js 、 GO 、 Python 不断地在挑战 PHP 的地位。这些技术的推动者非常热衷于唱衰 PHP , PHP 语言的未来在哪里?PHP 程序员当如何应对未来的变革?

作为老牌的 Web 后端编程语言,PHP 在全球市场占有率非常高,仅次于 Java ,从各个招聘网站的数据上来看PHP 开发的职位非常多,薪资水平也非常不错。实际在中小企业、互联网创业公司PHP的市场地位是高于 Java 的。Java 在超大型企业、传统软件行业、金融领域优势更大。目前来看 Node.js、 GO 、 Python 、 Ruby 等语言还难以企及 PHP 和 Java 。

PHP 语言之所以能有今天的地位,得益于PHP语言设计者一直遵从实用主义,将技术的复杂性隐藏在底层。PHP 语言入门简单,容易掌握,程序健壮性好,不容易出现像 Java 、 C++ 等其他语言那样复杂的问题,如内存泄漏和 Crash ,跟踪调试相对轻松很多。PHP 官方提供的标准库非常强大,各种功能函数都能在官方的标准库中找到,包括MySQL、Memcache、Redis、GD图形库、CURL、XML、JSON等等,免除了开发者到处找库的烦恼。PHP 的文档非常棒,每个函数都有详细的说明和使用示例。第三方类库和工具、代码、项目也很丰富。开发者可以快速、高效地使用 PHP 编写开发各类软件。到目前为止市面上仍然没有出现比 PHP 更简单易用的编程语言。所以 PHP 的前景还是很广阔的,与其纠结于编程语言的选择,不如好好地深入学习使用 PHP 。

作为一个资深的 PHP 开发者,在技术上给各位 PHP 程序十点未来的建议,希望对大家有所帮助。

  1. Composer

第一点就要提 Composer ,自从 Composer 出现后,PHP 的依赖管理可以变得非常简单。程序内依赖一些类库和框架,直接使用 Composer 引入即可,通过使用 composer update 安装依赖的包。解决了过去加载外部库的各种难题。Composer 也有国内镜像,速度非常快。现在绝大部分PHP开源的项目都提供了 Composer 的支持,建议大家在项目中使用 Composer 来解决 PHP 代码包管理的问题,不要再使用下载源码、手工 include 的原始方法。

  1. PHP7

PHP7 版本对 Zend 引擎做了大量修改,大幅提升了 PHP 语言的性能,使用 PHP7 可以使你的程序性能瞬间翻倍。即使是 WordPress 这样重量级的软件运行在 PHP7 都能有上千 QPS ,相当于一台服务器每天就能处理 8000 万次请求。使用 PHP7 ,做好 MySQL 优化,使用 Memcache 和 Redis 进行加速,这套技术架构完全可以应对相当大规模的系统。除了某些亿级用户的平台之外,一般规模的系统完全没有压力。

  1. PSR

PSR 是 http://www.php-fig.org/ 组织制定的PHP语言开发规范,约定了很多方面的规则,如命名空间、类名
规范、编码风格标准、Autoload、公共接口等。现在已经成为PHP技术社区事实上的标准了。很多知名的 PHP 框架和类库都遵守了 PSR 规范。PHP 开发者应当学习掌握 PSR 规范,在开发程序时应当尽量遵循 PSR 规范。

  1. Swoole

2017 年 PHP 还局限于做 Web 网站吗?No ,如果你还不知道 Swoole ,赶快去了解一下吧。Swoole 的口号是重新定义 PHP 语言,Swoole 是一个异步并行的通信引擎,作为 PHP 的扩展来运行。Node.js 的异步回调 Swoole 有,Go语言的协程 Swoole 也有,这完全颠覆了对 PHP 的认知。使用 Swoole PHP 可以实现常驻内存的 Server 程序,可以实现 TCP 、 UDP 异步网络通信的编程开发。过去PHP只能做一个 Web 网站,现在使用 Swoole 可以做 Java 、C++ 才能实现的通信服务,比如 WebSocket 即使通信、聊天、推送服务器、RPC 远程调用服务、网关、代理、游戏服务器等。如果你想用 PHP 做点 Web 系统之外的东西,Swoole 是最好的选择。

  1. Laravel

最近几年最火热的 PHP 框架,官网号称是为 Web 艺术家设计的框架,可见这套框架有多优雅。Laravel 提供的功能模块丰富,API 设计简洁,表达力强。而且它的社区非常活跃,代码贡献者众多,第三方的插件非常多,生态系统相当繁荣。 Laravel 底层使用了很多 symfony2 组件,通过 composer 实现了依赖管理。如果还在纠结使用什么PHP框架,不如选择 Laravel 。 Laravel 提供的命令行工具基于 symfony.console 实现,功能强大,集成了各种项目管理、自动生成代码的功能。

  1. Phar

PHP5.3 之后支持了类似 Java 的 jar 包,名为 phar。用来将多个 PHP 文件打包为一个文件。这个特性使得 PHP 也可以像 Java 一样方便地实现应用程序打包和组件化。一个应用程序可以打成一个 Phar 包,直接放到
PHP-FPM 中运行。配合 Swoole ,可以在命令行下执行 php server.phar 一键启动服务器。PHP 的代码包可以用 Phar 打包成组件,放到 Swoole 的服务器容器中去加载执行。

  1. C/C++/GO

任何技术有优点就有缺点,PHP 作为一门动态脚本语言,优点是开发方便效率高。缺点就是性能差。在密集运算的场景下比 C 、 C++ 相差几十倍甚至上百倍。另外 PHP 不可以直接操作底层,需要依赖扩展库来提供 API 实现。PHP 程序员可以学习一门静态编译语言作为补充实现动静互补,C/C++/Go 都是不错的选择。而且静态语言的编程体验与动态语言完全不同,学习过程可以让你得到更大的提升。

掌握 C/C++ 语言后,还可以阅读 PHP 、 Swoole 、 Nginx 、Redis 、 Linux内核 等开源软件的源码,了解其底层运行原理。

现在最新版本的Swoole提供了C++扩展模块的支持,封装了Zend API,用C++操作PHP变得很简单,可以用C++实现PHP扩展函数和类。

  1. HTML5

作为 Web 前端新一代标准,HTML5 未来前景非常广阔,市场需求量非常大。从 PC 网站、B/S 企业软件、移动端网页、APP,这些领域都在拥抱 HTML5,掌握了 HTML5 才能在下一波互联网技术大潮中存活下来。

  1. Vue.js

PHP 程序员除了写后台程序之外,还有很大一部分工作在展现层,和浏览器前端打交道。2017 年你还在用 jQuery 操作 DOM 实现界面渲染吗?已经完全 out 了。现在用 Vue.js 可以非常方便地实现数据和 DOM 元素的绑定。通过 Ajax 请求后台接口返回数据后,更新前端数据自动实现界面渲染。2017 年再不学 Vue 就晚了。

如果你不光要写 Web 程序,同时还希望兼顾 Android 、IOS 、PC 客户端等平台,React Native 是一个不错的选择。

  1. 深度学习/人工智能

互联网的未来属于人工智能,如果你还不了解机器学习、深度学习、人工智能这些概念,那你需要尽快学习了解一下。现在互联网巨头们都在布局人工智能,包括 Google 、 Facebook 、微软、亚马逊 和国内的百度。虽然现在还处于科学研究的阶段,但未来互联网的各个领域都会应用到人工智能,包括自动驾驶、大数据分析、网络游戏、图像识别、语言处理等。当然现在普通的工程师可能还无法参与到人工智能产品中,但至少应该理解深度学习/人工智能的基本概念和原理。

本文来自开源中国社区 [http://www.oschina.net]

时间: 2024-10-03 20:37:36

2017 年 PHP 程序员未来路在何方的相关文章

我的程序员之路:一个女程序员的奋斗经历

因为有人在酷壳里评论里说我给一个女程序员的建议不靠谱,我不服,因为我的工作经历中的一些女程序员都很不错,比那些男程序员都强,所以,我在新浪微博和twitter上征集女程序员的故事和想法,这两天来,我收到了好几封邮件,让我很感动.其中,有一个故事让我回味很久,在脑海里挥之不去,可能是因为她的经历和我很相似,她的想法和我很有共鸣. 本来,我想通过收到的这些故事然后编辑成一篇关于女程序员的文章,但是我觉得这个故事已经足够好了,任何的编辑都是对这个故事的不尊重,所以,我原封不动,一字不改地把这个故事转到

Extjs4.2 rest 与webapi数据交互----顺便请教了程序员的路该怎么走

这一章接着上一篇 对于Ext.data.Store 介紹 与总结,以及对以前代码的重构与优化 1.对于更新OnUpdate()函数的修改:先上代码: function OnUpdate(record) { //获取要更新的数据 var functionCode = Ext.getCmp('code').getValue(); var FunctionName = Ext.getCmp('name').getValue(); var IsEnabled = Ext.getCmp('isEnable

应届生思考—我的程序人生之路在何方!

问题描述 本人广西南宁某一个职业技术院校大专学生,今年七月就能顺利毕业了!首先谈谈自己是如何会走上程序这条路的吧,记得高中的时候曾经听到一则广播:史上最牛逼的大专生,软件专业的,现在你也可以百度看看,这话不假.当时自己想,既然别人能那么牛,为什么自己不行呢,也就是这股冲劲,我在第一志愿专业那一栏选了:软件技术怀着梦想,09年踏上了外出求学之路,大学的生活如何美好我这里不说了,大家都懂.这里我简单总结自己的大学生活:逃过学,旷过课,挂过科,泡过妞,当过班干,拿过奖学金(国家励志).今年年初9,一样

LBS的中国学徒:鼻祖也在试错未来路在何方

LBS已经从单纯的签到模式走向多方面发展,机会在哪? 文/曲琳 Foursquare推出伊始,基于位置的服务(Location Based Service,下简称"LBS")曾经掀起一股风潮, 图钉.开开.多乐趣.街旁(微博).玩转四方.切客等产品先后推出:但在去年下半年开始,陆续有声音看衰LBS:Check-in(签到)加勋章的模式显得很虚无缥缈,对使用者无法产生持续吸引力,甚至都无法形成一种有力的商业模式,更别提挣钱了.不过在今年2月,著名风投.美国KPCB风险投资公司(Klein

业余程序员未来之路在何方

与其说人生缺少规划,不如说前半生不知道什么是规划.大学学的物理,第二专业学习了市场营销,毕业后培训了2月日语和java,找工作找到了大型机.工作6年思考为什么中国BAT不用大型机.我猜想也许大型机只是一种已经被淘汰的技术,存在的理由是瘦死的骆驼比马大. 于是辞掉工作去欧洲学习了半年的英语,回国后也没找工作,而是重新开始学习编程,现在时间过了3个月,java前后端,框架,数据库的知识已经非常熟悉.我没有着急找工作,而是思考一个问题,如果我接下来仅仅需要的是一份工作,还是一个可以让我相信未来的机会.

Kotlin 喧嚣过后,谈谈 Java 程序员未来的出路

自从谷歌 I/O 2017宣布将支持 Kotlin 作为 Android 开发的 First-Class 语言,各种 Kotlin 能否取代 Java 的文章.争论层出不穷. 作为一名老 Java 程序员,心态是比较复杂的,虽然类似场面见过不少. 早在 2009 年,就有了 Scala 是否是 Java 后继者的争论. 2009年7月 InfoQ 发表的一篇文章:「Roundup: Scala as the long term replacement for Java」,还谈到了 Java 之父

Percona Live 2017见闻 中国程序员在开源领域的影响力不断扩大

中国程序员在开源技术领域正在起到越来越重要的作用和影响.4月24日,开源数据库领域全球最具影响力峰会Percona Live 2017将在旧金山硅谷举行.包括谷歌.Facebook.领英.Twitter.Booking和阿里云在内的全球数据库精英将齐聚一堂,共话数据库领域的现状与发展. 峰会前夕,Percona Live 2017组委会特别专访了阿里云数据库团队高级技术专家张广舟(PostgreSQL专家)和彭立勋(Replication专家),技术专家翟卫祥(InnoDB专家)和刘鑫(Mong

走向大神级的程序员之路

问题描述 任何程序员都想着成为大神,我也不例外.最近在网上也看了很多关于这些的文章,印象最深的就是某论坛一篇文章提到:拥有持续旺盛的对技术饥渴感是成为大神级的程序员的一个前提条件.这我表示强烈的赞同,首先你需要热爱编程,如果不热爱编程仅仅为了一份收入去编程,那么你会做不好也做不长,那么想成为一个大神级的程序员这条路几乎不可能(不排除天才).下面说自己总结的一些方式:1.别拷贝粘贴别人的代码! 只有你把代码敲出来,你才能真的学到东西,你才能发现你对某些代码还没弄透,可以通过"Baidu"

程序员之路——一个老程序员对刚上大学的学弟学妹的忠告

始终认为,对一个初学者来说,IT界的技术风潮是不可追赶. 我时常看见自己的DDMM们把课本扔了,去买些价格不菲的诸如C#, VB.Net 这样的大部头,这让我感到非常痛心. 而许多搞不清指针是咋回事的BBS站友眉飞色舞的讨论C#里面可以不用指针等等则让我觉得好笑. C#就象当年的ASP 一样,"忽如一夜春风来,千树万树梨花开",结果许多学校的信息学院成了"Web 学院". 96, 97级的不少大学生都去做Web了.当然我没有任何歧视某一行业的意识. 我只是觉得如果他