转眼间搞PHP已超过10年准确的说12年,混在帝都,也经历过大公司小公司,有个同行朋友问我,我就思考下,如何成为一名合格的PHP高级开发
所有的所有仅限综合知识,因为PHP其实内容也很多,有的人专门研究框架,你让一个只使用框架的人去和专门研究的PK 没有可比性。
那么咱们开始,专门从技术角度来阐述此问题。
技术概述
对应PHP开发来说最熟悉的就是lamp/lanp
linux+apache/nginx/+mysql/mariadb+php/perl 其他也肯定涉及 h5+css3+jquery
这些是名义上的,但是还有很多细节的,比如现在流行的小程序 公众号开发 这些也算是现在的范畴 至少要很熟悉因为是潮流
很多人抱怨老技术,就是没有跟上时代去学习各种流行的内容,所以保持一颗上进的心是非常有必要的。
1 apache/nginx 所谓的httpd
apache的2种工作模式的区别,调试conf文件,查看日志,多站点配置,配置文件里面的常见代码的意思,应该知道的。
我曾经想专门把配置文件给背下来,发现比较难,常用才是硬道理。在很多大公司 ,这些都是运维的事情,咱们只需要上传代码即可,
既然你的目标是高级,那么掌握这些是必须的。
2 linux centos freebsd
各种版本的linux的随便一个,需要熟悉到啥程度,安装个环境,算是起步要求吧,不要求熟悉的那么强。常见的命令cp link mv,环境和软件的安装yum源或者编译安装,
配置文件的在线编辑vi/vim,设置开机自启动,进程查看,虚拟化啥的,自己感兴趣就自己多学学吧,学无止境。
3 mysql新的版本叫mariadb
如果是涉及高级,就别提crud了,起码数据库的log日志恢复,sql代码的查询优化,索引要求算是起步了。可以mysql的日志,找到慢日志查询,然后细节优化。
不常见的数据,分到别的库里面,很大的表拆分成多个表,之前维护过DZ的时候 帖子表几十个G了,分成8个小的表。innodb表和myisam表的区别,各种表的字段细节的区别
int tingyint float 细节区别,这里就不提了。
4 php 世界上最流行的语言
基础就不提了,至少要会2个框架吧 一个是thinkphp 一个是laravel 虽然最新的tp5和laravel比较像。但是作为国内和国外最流行的框架,会这俩无可厚非。其实大公司都有自己的框架,我之前从事过的几个公司,都是有自己的框架,其实学会了以上二者,其他的框架相对基本都差不多,都是基于mvc模式的。
其实关于会这个词,有点宽泛。很多人用框架都是在控制器中写SQL,其实框架有很多细节的规范,我理解的会不要求所有都用框架的结构,但是核心的设计思想咱们要遵循。
该使用的路由规则咱们需要遵循,模型的东西就写到MODEL里面,VIEW里面肯定不能PHP代码。
框架学会了,原生的PHP也需要会写,由于后期一直使用框架,最近手写了原生的代码,各种不适应,这个是基础咱们不能忘。
5 关于正则
正则这个是好东西,很多地方都会用,所以这里提一下。
索性这个东西各处都是通用的,如果是高级的要求,那么根据要的规则,自己通过查资料,可以写出正则 我觉得算是最低的要求。
要是连^$ \d [] {} 这些都看不懂的话,作为一个高级真的不合适。
6 关于JS/jquery
对dom对象的元素操作要求需要会的,各种层的移动,层内的各种元素input radio的,ajax 这些都不用提了。
啥表单验证,全部都是基础,你肯定会的。
7 CSS和H5和bootstrap
其实我本人的CSS比较弱,一直从事的是比较后端的工作,但是客户肯定有前端的需求,在大公司工作,这些全部有前端搞定,但是通过搜索咱们也可以解决很多问题
magin,等各种的用法咱们也要理解使用。其实h5先进很多了,有很多基础的表单了啥的校验,没事多看看,真的很好用。其实bootstrap是给后端用的前端框架,
很多用户使用他开发后台管理界面,其实bootstrap真的很好用。了解个前端框架吧挺好对和前端配合有很大的帮助。啥VUE 有空可以看看。
8 关于API
PHP属于后端,避免不了和安卓和IOS打交道,约定好接口的规则,咱们写好接口,然后出数据,项目细节的沟通,字段的预留。通信安全的考虑,这些都需要了解到。
安卓和IOS属于展示层,所以后端的校验安全一定要细节。
9 关于流行
公众号和小程序的开发
公众号的开发和小程序的开发
公众号比较多的就是支付和微信校验,其他的写PHP代码一样,但是至少咱们要写一遍,知道这些细节。
小程序就是腾讯自己出的前端框架,咱们也需要写个练习版的,起码知道小程序的来龙去脉。
10 想想还有啥 那就是一些管理了
git了,svn了,这些在提感觉都老到掉牙了。是老掉牙了,但是如果做为一个高级,需要你把SVN的环境给搭建下吧,然后管理下吧,
然后发账号给这些人吧。
11 关于代码规范
为啥要提这个,其实从代码上 只看代码不看代码的细节的话。你说一个搞了3年的,和一个搞了5年的,你是真看不出区别。
但是你看代码细节的话 就能看出来,代码的规范方便自己也方便他人。看着写的整洁的代码,其实你自己也舒服。
12 关于http的整个操作路程
用户在浏览器输入网址到用户看到数据,整个的请求发起和返回的流程,会非常容易帮助你解决未来的问题。
13 关于大流量
大流量是一套解决办法,一些前辈多次告诫,没有大流量的实操经验,身价永远上不来,说的挺有道理。刚开始每次都说大流量,
自己也想那些大网站58了 百度了,都说怎么转的。其实大流量是一套解决方案,说白了不是一个人的事情。
CDN,负载均衡的设置,缓存服务器的相关,数据库服务器的读写分类和分库分表,我所涉及的也就是百万级别的,在高咱也接触不到。
其实现在阿里云已经完全实现了以上的很多功能,作为一个老鸟,可以通过几天的学习和阿里云的培训实现以上功能。
我曾经也参加过AWS的会议,他们也有类似的解决方案,其实我估计腾讯云和百度云都有。
14 关于其他语言
和框架需要学习2种一样,语言怎么也得在学一个,比如python。2种语言都对比才有伤害,重新学习一门语言对另外一门语言,其实在学习的过程中,会增加相互认识。
有人问会产生影响吗,会影响。时间长了就习惯了。我在学习python的过程中,才了解到python的强大,可以写电脑软件开发游戏,可以写爬虫抓数据,还可以写网站。
uwsgi,u威士忌,哈哈。
15 最后的最后 关于一些知识
区块链,网站SEO,电脑维修,dedecms,discuz,wordpress,设计模式
常见的知识,区块链火了一阵咱们要知道他是啥,咱们需要了解和学习完善自己。dede和dz都不是典型MVC架构的,代码看看调试调试是可以通的。
wordpress也挺好的,设计模式,每次面试都考,实际上咱们也不写框架,说白了实践机会少。链式模式和观察者模式到底咋样用。但是工厂模式是怎么玩的咱们要知道的。
类的继承,抽象的接口是啥,抽象类,关于PHP5的设计模式有空多看看。真要自己写框架,肯定用的上。
16 关于架构
做了好多的项目,来了一个新项目,有目标需求,那么你可以来设计整个项目的架构了,比如流量需求1000万的项目架构和搭建是如何的。
根据用户来选择哪种语言,哪种团队人手,每个岗位几个人,早晚要当leader的。到时候啥都明白了。
17 最后写给新人的一些话
高手不是一天练成的,光学习也是练不成高级的,大量的项目实践才能打造足够强大的你。当你有了在团队中多年的项目经验,有些职位的转行,其实你自己就会有思考。
写个BLOG吧,记录自己的学习经历,随着年龄的增长你会发现记忆力不是想象中的好。
最后祝愿各位看的人,一切顺利,88.