修炼之路
阶段1
能简单处理html+css+js前端页面,可实现管理后台前端页面

熟练安装php的web运行环境,并调整配置,会自行安装php扩展

熟练数据库操作,清楚为何使用pdo而不使用mysql等其他数据库扩展

熟练php的语法,熟练使用内置函数,并明白各函数的作用

掌握compose的用法,熟练使用主流框架,如 ThinkPHP、Laravel

掌握一些基础的算法,如递归、冒泡排序

阶段2
清楚动态语言和静态语言的区别,明白PHP的局限性

清楚session、cookie的运行机制、特性、使用方法

清楚web服务的访问原理,每个环节是如何协作的,如: Nginx 是如何调用 PHP 的

掌握Linux的基本用法,如:
基本操作 ls/chmod/chown/rm/find/ln/cat/mount/mkdir/tar/gzip

文本操作命令 sed/awk/grep/tail/less/more

管理命令 ps/top/lsof/netstat/kill/tcpdump/iptables/dd

熟练调优Linux + Nginx + MySQL + PHP + Redis环境
能调整Nginx的rewrite、location等的配置,熟练使项目支持伪静态
熟悉主流的代码规范,如: PSR,注重代码风格和注释习惯,编写高效的代码
能自行实现autoload机制,清楚compose如何运作的

能实现接管PHP本身的session,模仿cookie机制

清楚PHP为何可以使用全单例模式,而不容易出现线程安全问题
熟练使用缓存,知道如何利用缓存提高系统的并发负载能力
有并发安全意识,知道如何规避并发情况下导致的安全问题,善用锁机制
有效避免或解决sql注入、js注入、xss跨站攻击
针对不同项目更有针对性设计数据结构,知道如何通过数据结构约束来避免大量的数据查询
能够重新实现php基础框架v3/package下的所有功能
能安全、有效地处理文件、图片,意识到句柄资源为何需要释放和加锁
知道如何优化计算量巨大的请求,如: 每个用户同一时间只能运行一个任务,也可通过定时任务来优化
能针对不同的sql语句提供优化方案,使用explain
清楚HTTPS、HTTP的区别,知道如何搭建HTTPS
阶段3
研究HTTP、TCP/IP协议

熟练掌握socket套接字网络编程

熟练组建代码分布式集群、MySQL分布式集群、PHP分布式集群

熟练搭建常见的服务器监控方案

系统(CentOS)运行不稳定时,可以根据排查原因并解决

知道如何使用CDN来优化网站访问

可以自行开发PHP扩展
还是迷茫的话,去学一门强类型语言吧,c\c++\java\golang 等

sanchi的更多相关文章

  1. Swagger2的使用及注意事项

    一.Swagger的主要作用有两方面: 1.生成在线文档,通过注解方式生成在线文档,方便在定义修正接口时直接修改接口文档: 2.对接口文档在线测试,不用在输入接口地址以及里面的参数对象,可以很方便的对 ...

  2. rainmeter 修正天气插件信息不准确 设置居住城市

    rainmeter天气插件的原理是用爬虫抓取一个天气网页然后用自带的那一套正则表达式匹配出天气信息 在国外官网社区下载的插件的天气信息城市都会出现问题(因为插件作者又不知道你在哪),解决方法是在原基础 ...

随机推荐

  1. fzu1062 洗牌问题(思路模拟)

    http://acm.fzu.edu.cn/problem.php?pid=1062 一开始想暴力找规律,没看出来..然后开始推,推测根据1再次返回第一个的时候顺序也复原,然后想以此推导出一个规律公式 ...

  2. javacript onclick事件中传递对象参数

    var user = {id:1, name:'zs', age:20}; var ele = '<a onclick="edit(' + JSON.stringify(user).r ...

  3. LVM原理与实现

    一.什么是LVM 不管是使用传统的MBR分区方式或者是GPT的分区方式,在最后数据量逐渐变大的过程中都会出现空间不足的情况,但是若是使用将此分区的数据全部迁移至一个更大空间的磁盘上的迁移时间也是不可想 ...

  4. kettle 6.1 按时间增量抽取数据

    1.设计一个增量 配置表ETL_INCREMENTAL,用于配置表的增量时间等数据 2.增量JOB全图如下: 2.1获取增量时间变量,并设置增量变量 2.2 表的增量转换,在表中引用2.1的增量变量 ...

  5. [Pipy]利用pip2pi搭建本地pypi源

    当我们一个团队开发一个项目的时候,须要的Python第三方包基本是固定的.每次搭建新环境的时候总是由于各种内外网,https问题花费大量的时间来安装执行环境. 所以搭建一个本地的,小巧的,仅仅包括须要 ...

  6. Fiddler Composer 模拟post请求

    在模拟post请求的时候,发现服务器端无法接收post参数 发现原来的请求表头的设置问题加上表头 Content-Type: application/x-www-form-urlencoded 后正常

  7. MyBatis项目快速搭建及MySQL一个Statement支持多条命令参数

    一.简述 本文以笔记的形式,记录一个基本Mybatis项目的使用,方便后期项目使用到相关配置时直接复制使用. 二.项目结构 pom.xml中的依赖 <!-- https://mvnreposit ...

  8. Java内存管理:Java内存区域 JVM运行时数据区

    转自:https://blog.csdn.net/tjiyu/article/details/53915869 下面我们详细了解Java内存区域:先说明JVM规范定义的JVM运行时分配的数据区有哪些, ...

  9. 【Linux】磁盘读写 测试

    一.如何查看当前磁盘的IO使用情况 使用命令:iotop Total DISK READ: 3.89 K/s | Total DISK WRITE: 0.00 B/s TID PRIO USER DI ...

  10. [转]git commit --amend用法

    适用场景: 比方说,你的代码已经提交到git库,leader审核的时候发现有个Java文件代码有点问题,于是让你修改,通常有2种方法: 方法1:leader 将你提交的所有代码 abandon掉,然后 ...