zoukankan      html  css  js  c++  java
  • 合格PHP工程师的知识结构 (转载)

    工作有些年头了,从学校开始自学ASP,偶然因为PHP一个功能爱上它(ASP上传代码要写好多,PHP基本几行就搞定了),从此走上了 ”拍黄片“ 之路。结合这几年的工作经验,说说我对PHP工程师知识结构的理解

    PHP的运行环境

    连环境都搞不起来,就是你有多么喜欢PHP,那也是白搭,开始我们大多会使用集成环境软件例如xampp,wamp。随着知识的增加慢慢要学会自己搭建运行环境,例如 Linux(Ubuntu/Centos),Apache/Nginx,Mysql,Redis/Memcached,PHP-FPM

    基础知识
    • PHP编程:变量、常量、字符串、数组、控制结构、数据库、类、继承、多态、Cookie、Session
    • MYSQL命令:INSERT、UPDATE、DELETE、SELECT、GROUP、COUNT、JOIN、索引

    有了PHP基础之后,第一个输出就是 Hello World 请举手(感觉好神奇)
    问:OPCODE 是什么东西?

    前端知识

    如果你认为PHP是后端开发工程师,那么你就错了,最起码目前我接触的PHP工程师对于前端知识掌握的也是非常深的

    • CSS :不要求达到美工级别的切图,看得懂会改就行,会用Debug准确定位排错
    • JS:最起码表单验证,Jquery会使用吧
    • 前端框架:bootstrap或者foundation 最起码你的熟悉一个
    PHP扩展

    在最开始使用PHP的过程,可能完全不是扩展是什么玩意,我是知道了Memcache之后才知道原来有扩展这个概念,对于PHP扩展最基本的要求是先要学会安装和加载,更高的要求是了解扩展的结构并实现一个简单扩展,给大家推荐一个网站PHP扩展开发及内核应用

    Web安全

    SQL注入、验证码、刷新提交、漏洞扫描、DOS攻击、跨域攻击、XSS 这些都要了解下,并学会基本的防御手段,你一定会碰到这些破坏的

    高性能Mysql

    下雨天PHP和Mysql很配哦,对于数据库的要求,开始是会使用基本语句就行(增删改查),其次要有能力写高效语句优化数据库、分库分表的策略、主从架构,最后需要了解索引的原理,推荐大家看一本书叫做 "高性能Mysql"

    MVC框架

    会使用某个框架这是最低要求了,现在那个商业公司不用框架了。希望大家可以理解MVC模式,最终可以自己实现一个简单的MVC框架

    1. MVC模式介绍
    2. 视图
    3. 控制器
    4. 模型
    5. 模块和操作
    6. 主入口文件
    7. MVC模式应用
    服务器知识

    随着了解的越来越多,发现Linux知识是必不可少的,就像七巧板,总差那么一块。对于Linux的知识要求 我觉得以 “鸟哥的私房菜” 这本书 作为要求吧。

    版本控制

    做研发的版本控制很重要,因为这个牵扯到顺利持续集成的进度,最开始使用的是SVN,后续换到了Git,墙裂推荐大家都要学习Git,因为目前Git已经是研发的一个基本要求了

    缓存

    缓存在目前互联网的网站使用频率非常之高,后端主要是大量使用在缓存数据库结果集,减轻数据库的压力,目前主流的有Memcache 和Redis。前端大部分使用CDN,对静态资源使用CDN可以加载更快。无论前后哪端,都是为了给用户更好的体验
    问:Memcache 和 Redis 有什么区别?

    大流量

    我所接触过的最大请求量是千万级别的(每天),使用的架构基本都是分布式的做法,例如负载均衡

    高并发

    高并发目前比较流行,经常看到某某秒杀活动,关于高并发需要了解常用的几种解决方案

    学会使用IDE

    不管你用什么IDE,请选择一款适合自己的,这能大大提高你的开发效率,个人墙裂推荐PHPStorm

    学会搜索

    好多人都喜欢问别人这个什么问题呀,遇到的问题我建议都先搜索,只有认真确认过的确找不到解决办法在找人问了。没有思考和尝试哪有成长了

    应该会的功能

    不是说会了这些功能,你就天下无敌,应该是基本要求了

    • 登录、注册 模块
    • 上传模块
    • 图像验证码模块
    • 手机验证码模块
    • 支付系统
    • 订单系统
    • 统计模块
    • 级联刷选
    • 微信公众号开发(最好是认证的服务号)
    • 商城库存并发控制

    一下子就想了这么多,后续想到了再补,请大家多多指教。

    其实编程使用什么语言不重要,最重要的是思想,编程的思路。当时这个的前提是你实现了很多功能,此时已经是任凭你需求千变万化,哥心中已有解决方案

    有一句话希望大家一起共勉:学无止境,学海无涯

    相关标签:PHP职场生活

    本文原创发布于慕课网 ,转载请注明出处,谢谢合作!


    作者: 编_程_浪_子 
    链接:http://www.imooc.com/article/17994
    来源:慕课网
    本文原创发布于慕课网 ,转载请注明出处,谢谢合作!

  • 相关阅读:
    LeetCode——字符串解码
    LeetCode——迷宫 i-ii
    JavaScript实现按照指定长度为数字前面补零输出的方法
    React 修改input按钮上文字
    HTML input可以输入相同的文件
    LeetCode——重新安排行程
    LeetCode——矩阵中的最长递增路径
    c++ vector push_back对象的时候存起来的是拷贝
    char* = "name" g++报告warn的原因
    虚函数表指针、父类成员变量、子类成员变量在内存中的位置关系
  • 原文地址:https://www.cnblogs.com/hellogt/p/7098291.html
Copyright © 2011-2022 走看看