我眼中的如何成为一名合格的PHP高级开发工程师
转眼间搞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.
我眼中的如何成为一名合格的PHP高级开发工程师的更多相关文章
- 如何成长为一名合格的web前端开发工程师呢?
前端开发工程师不仅仅要掌握一些基础的美工设计等还要懂得网页设计类的HTML JavaScript和css,这三种能力缺一不可,虽不要求你特别的精通,但至少要熟练的掌握,能够运用自己所了解的这些技术和知 ...
- 怎么成为合格的WEB前端开发工程师
web前端开发工程师目前来讲是一个热门职位,但是要成为一个合格的web前端开发工程师,需要掌握的知识可不少,零度就简单的为大家讲讲. 大致的来讲,web前端开发工程师需要掌握的知识有:HTML.CSS ...
- 如何成为一名合格甚至优秀的个人草根站长(转载自ChinaZ)
这章本来不想写来的,后来琢磨琢磨还是废话一下吧.主要是想说下现在草根站长的状态和如何成为一名合格的甚至优秀的草站站长. 伟大的草根站长们,在某些媒体的超级忽悠下全来到网络上淘金来了,有在校的大学生,有 ...
- 一名合格QA的基本素养
测试不是无脑的重复劳动.测试与开发一样,先用脑,再动手. 拒绝搬砖,关注技术: 把握需求,极致体验: 把控进度,高效沟通: 测试技术 如果你只会加班,行万里路,也只是个邮差 将程序测"好 ...
- 如何成为一名合格的CTO?(转)
不会走出去公众演说的的攻城狮不是好CTO. 本文来源于微信公众号“线性资本”(ID:LinearVenture) 成为一名合格 CTO 我们投过很多技术型的公司,对于什么是合格的 CTO 有过自己的一 ...
- 如何成为一名合格的Android工程师?
首先需要申明的是,我并不是一名合格的Android工程师,无论从开发经验或者是技术水平上来说,我都没有资质承担以为Android工程师的责任,但是我把它作为一个目标,也一如既往的努力着.如果我的论点有 ...
- 2018年一名合格的web前端程序员应该会哪些技术
有朋友让小编说一说web前端在未来几年的发展趋向,对于这个问题,恕小编无能为力,web前端技术日新月异,更新非常快,谁也不能预料未来会发生些什么 小编也只能说在2018年,react native和j ...
- 如何成为一名合格的Apache项目Committer,参与Apache开源贡献的正确姿势
近日,孙金城老师在 "Open Source Promotion Plan - Summer 2020" 开源软件供应链点亮计划做了<如何成为一名合格的Apache项目Com ...
- 不得不看的秘诀,如何成为一名合格的web前端工程师
何为:前端工程师? 前端工程师,也叫Web前端开发工程师.他是随着web发展,细分出来的行业. Web前端开发技术主要包括三个要素:HTML.CSS和JavaScript! 它要求前端开发工程师不仅要 ...
随机推荐
- 数据库常用SQL语句(二):多表连接查询
前面主要介绍了单表操作时的相关查询语句,接下来介绍一下多表之间的关系,这里主要是多表数据记录的查询,也就是如何在一个查询语句中显示多张表的数据,这也叫多表数据记录的连接查询. 在实现连接查询时,首先是 ...
- mysql之innodb存储引擎---BTREE索引实现
在阅读本篇文章可能需要一些B树和B+树的基础 一.B树和B+树的区别 1.B树的键值不会出现多次,而B+树的键值一定会出现在叶子节点上,而且在非叶子节点也可能会重复出现2.B数存储真实数据,B+数叶子 ...
- JSP学习笔记(5)——Servlet、监听器、过滤器、MVC模式介绍
MVC模式 在讲解Servlet前,先介绍一下MVC模式. M:model 模型,相当于数据层,用于存放数据,如一个Java中的一个bean类 V:view 视图,相当于页面层,用于显示数据,如一个网 ...
- 【原创】(四)Linux内存模型之Sparse Memory Model
背景 Read the fucking source code! --By 鲁迅 A picture is worth a thousand words. --By 高尔基 说明: Kernel版本: ...
- Python实现语音识别和语音合成
声音的本质是震动,震动的本质是位移关于时间的函数,波形文件(.wav)中记录了不同采样时刻的位移. 通过傅里叶变换,可以将时间域的声音函数分解为一系列不同频率的正弦函数的叠加,通过频率谱线的特殊分布, ...
- 42 (OC)* 字典实现原理--哈希原理
一.NSDictionary使用原理 1.NSDictionary(字典)是使用 hash表来实现key和value之间的映射和存储的,hash函数设计的好坏影响着数据的查找访问效率. - (void ...
- vue2.0生成二维码图片并且下载图片到本地兼容写法
vue生成二维码图片,这里使用的是qrcode.js 这个插件(亲测写法,兼容没有问题) 第一步,下载插件 需要注意,这里下载的是qrcodejs2 cnpm install --save qrcod ...
- Android的显示意图和隐式意图总结
显示意图 简而言之: 通过指定特定Activity的包名和类名开启Activity 应用场景: 一般应用于本App内的activity间的跳转. XML配置信息: AndroidManifest.xm ...
- Java HotSpot(TM) 64-Bit Server VM warning: INFO: os::commit_memory(0x00000000fa980000, 59244544, 0) failed; error='Cannot allocate memory' (errno=12)
启动项目报错 Java HotSpot(TM) 64-Bit Server VM warning: INFO: os::commit_memory(0x00000000fa980000, 592445 ...
- Python3.7.4入门-2流程控制工具
2 流程控制工具 记得在语句后加冒号 2.1 while # Fibonacci series: # the sum of two elements defines the next a, b = 0 ...