zoukankan      html  css  js  c++  java
  • 我眼中如何成为一名合格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.

    文章是别人的,

  • 相关阅读:
    idea设置全局ignore
    win 2012 安装mysql 5.7.20 及报错 This application requires Visual Studio 2013 Redistributable. Please ins
    win 2012 安装mysql 5.7.20 及报错 This application requires Visual Studio 2013 Redistr
    kafka 删除 topic
    java编译中出现了Exception in thread “main" java.lang.UnsupportedClassVersionError
    Centos中使用yum安装java时,没有jps的问题的解决
    Spring 整合Junit
    Spring纯注解配置
    Spring 基于注解的 IOC 配置
    打印java系统的信息
  • 原文地址:https://www.cnblogs.com/79524795-Tian/p/12021072.html
Copyright © 2011-2022 走看看