文档章节

PHP高级程序员所要掌握的技能

 小田天
发布于 2016/11/18 15:35
字数 837
阅读 111
收藏 2

很多工作几年的php开发者都会有这样的迷茫,php开发多了,无外乎“增删改查调接口”,真的是这样吗?

实际上开发者除了把自己当成php程序员,更应该关注php以外的东西,将自己定位于能熟练使用php搭建系统的工程师。

我认为高级php工程师可以往几个方向去发展:

1.深度方向

一个工程师要往高阶发展,必须同时强化几个技术能力:

设计能力:懂得如何利用分层、面向对象、设计模式等设计组织代码

编码能力:熟悉php语法特性,知道怎么用一两行代码代替初级开发者十几上百行代码。

工程能力:学会如何快速构建工程,学会如何构建可读、可扩展性的工程,学会如何避免埋坑给后人,学会如何与人协作维护工程,学会如何保证工程质量,学会如何权衡利弊,学会如何在困难面前妥协。

抽象能力:初级开发者通常会等到逻辑重复时再抽象封装(甚至怕拖进度或者懒惰而放弃),而高级开发者通常一开始写出的逻辑就为了以后的重用,并且深知一开始多付出的思考设计时间最终都会因为复用得到回报。很多开发框架就是一步步抽象/埋坑/优化而来的。

架构能力:一个业务系统如何划分模块,模块之间如何协作通信,每个模块的技术选型如何做,系统细节如何规避问题等等。

优化能力:学会如何评估、分析、提升系统性能。优化途径很多,产品功能优化、业务逻辑优化、基础技术优化、操作系统底层硬件的优化等等。

2.广度方向

php开发基本上离不开操作系统、存储、缓存、网络、webserver等等配套设施,因此这也是高阶必备技能。一旦业务系统出问题了,必须要能快速定位解决(不一定自己解决,但要知道找到哪个负责人来解决)。

比如存储mysql,高级开发者会懂得利用索引、利用分表分库提高查询性能,懂得负载均衡和灾备提高性能提高可靠性(虽然是DBA的工作,但了解了有助于出问题时排查)

比如缓存,高级开发者懂得如何有效且最大限度利用缓存系统提高应用性能。

比如http,初级开发者往往只懂得http网络请求就只一去一回两个包,高级开发者会去深究网络七层模型、会深究http请求的各个环节(DNS、三次握手等等)

比如web前端,学习如何依靠浏览器缓存、CDN缓存、压缩代码、合并文件等等提高前端性能,学习如何进行前端安全攻防。

3,软素质

懂得团队管理,项目管理,沟通技巧等等。(有空再展开)

以上观点同样适用于其他语言的开发者。

本文转载自:http://www.51siyuan.cn/74.html

粉丝 1
博文 85
码字总数 51684
作品 0
怀化
私信 提问
什么是PHP高级工程师

众观各大公司在PHP高级工程师的招聘要求,以个人的理解,将共同点抽象出来,得此文,如有与君意见之不同,请留言讨论。 关键词 PHP、高级、系统架构设计、OOP、网络协议、沟通、Linux 定义 ...

鉴客
2011/09/21
9.5K
16
Android程序员的晋级之路

Android移动开发程序员的职业发展路径。 晋升轨迹:Android初级开发程序员---中级---高级--软件架构师--系统架构师--项目经理--首席技术官 各阶段对于技能要素的要求:    入门初级阶段:...

SunnyTime
2016/09/27
1K
13
php程序员的水平 看看自己属于那个级别的

PHPer的定义 PHPer是以PHP程序编写为主要工作,其他方面略有涉及的一种职业人士,大家所说的程序猿。 对PHPer的等级划分 PHP 爱好者 (半个PHPer) PHP 初学者 (PHP Beginner) PHP 初级程序员 ...

郜秀
2012/07/06
10.1K
34
北京昆仑万维诚聘游戏开发人员

一、PHP软件工程师(工作地点:北京、广州、上海) 【岗位职责】 1.Web game或Sns game的后端开发; 2.平台、运营管理系统开发维护的支持工作; 【任职要求】 1. 2年以上PHP及互联网应用开发...

昆仑万维
2011/08/05
404
4
该怎样进一步提升PHP技能?

最近看到很多招聘信息,对比自己的能力,总是觉得离高级程序员还差那么一截,但是又不太清楚是差在哪里,希望得到osc的高人们指点一二,告诉我应该在哪方面提高。 我有一年半的PHP经验,熟悉...

帖子列表
2013/02/11
4.9K
12

没有更多内容

加载失败,请刷新页面

加载更多

javascript中的offsetWidth、clientWidth、innerWidth及相关属性方法

下面的元素属性和元素方法都通过 elem.属性 或 elem.方法 的方式使用,window属性通过 window.属性 的方式使用,document属性则通过document调用: <script> /* ****** 元素视图属性 * offs...

Bing309
19分钟前
4
0
Apache Kafka快速入门指南

简介 Kafka是基于发布订阅的消息系统。最初起源于LinkedIn,于2011年成为开源Apache项目,然后于2012年成为Apache顶级项目。Kafka用Scala和Java编写,因其分布式可扩展架构及可持久化、高吞吐...

AiChinaTech
21分钟前
2
0
Discrete Cosine Transform [DCT] (离散余弦变换)

Discrete Cosine Transform [DCT] (离散余弦变换) 描述:Binarizer是一个Transformer,只能对DataFrame进行单特征转换,并且特征的数据类型必须是DoubleType。 离散余弦变换是与傅里叶变换相...

divenwu
22分钟前
2
0
如何玩转 TiDB 性能挑战赛?本文教你 30 分钟快速上手拿积分!

作者:wish 上周我们正式宣布了 TiDB 性能挑战赛。在赛季内,通过向 TiDB、TiKV、PD 贡献代码完成指定类别任务的方式,你可以获得相应的积分,最终你可以使用积分兑换礼品或奖金。在性能挑战...

TiDB
23分钟前
2
0
12、SpringMVC数据回显

数据回显方法 1.springmvc默认对pojo数据进行回显。 pojo数据传入controller方法后,springmvc自动将pojo数据放到request域,key等于pojo类型(首字母小写) 使用@ModelAttribute指定pojo回显...

快乐的瓶子
24分钟前
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部