作为开发中应用最广泛的语言之一,PHP有着大量的粉丝,那么你是一名优秀的程序员吗?在进行自我修炼的同时,你是否想过面对各种各样的问题,我该如何突破自身的瓶颈,以便更好的发展呢?
PHP工程师面临成长瓶颈

先明确这里所指的PHP工程师,是指主要以PHP进行Web系统的开发,没有使用其的语言工作过。工作经验大概在3~4年,普通的Web系统(百万级访问,千成级数据以内或业务逻辑不是特别复杂)开发起基本得心应手,没有什么问题。但他们会这样的物点:

◆除了PHP不使用其它的语言,可能会点shell 脚本。

◆对PHP的掌握不精(很多PHP手册都没有看完,库除外)。

◆知识面比较窄(面对需求,除开使用PHP和mysql ,不知道其它的解决办法)。

◆PHP代码以过程为主,认为面向对象的实现太绕,看不懂。

这些PHPer在遇到需要高性能,处理高并发,大量数据的项目或业务逻辑比较复杂(系统需要解决多领域业务的问题)时,缺少思路。不能分析问题
的本质,技术判断力比较差,对于问题较快能找出临时的解决办法,但常常在不断临时性的解决办法中,系统和自己一步步走向崩溃。那怎么提高自己呢?怎么可以
挑战难度更高的系统?

更高的挑战在那里?

结合我自己的经验,我列出一些具体挑战,让大家先有个感性的认识。

高性能系统的挑战在那里?

◆如何选择Web服务器?要不要使用fast-cgi 模式;

◆要不要使用反向代理服务?选择全内存缓存还是硬盘缓存?

◆是否需要负载均衡?是基于应用层,还是网络层? 如何保证高可靠性?

◆你的PHP代码性能如何,使用优化工具后怎么样? 性能瓶颈在那里? 是否需要写成C的扩展?

◆用户访问有什么特点,是读多还是写多?是否需要读写分离?

◆数据如何存储?写入速度和读出速度如何? 数据增涨访问速读如何变化?

◆如何使用缓存? 怎么样考虑失效?数据的一致性怎么保证?

高复杂性系统的挑战在那里?

◆能否识别业务所对应的领域?是一个还是多个?

◆能否合理对业务进行抽象,在业务规则变化能以很小的代价实现?

◆数据的一致性、安全性可否保证?

◆是否撑握了面向对象的分析和设计的方法

这里所列出的问题,你都能肯定的回答,说明在技术上你基本已经可能成为架构师了。如何你还不能回答,你需要在以下几个方向加强。

怎么样提高,突破瓶颈

如何你还不能回答,你需要在以下几个方向加强:

◆分析你所使用的技术其原理和背后运行的机制,这样可以提高你的技术判断力,提高你技术方案选择的正确性;

◆学习大学期间重要的知识, 操作系统原理,数据结构和算法。知道你以前学习都是为了考试,但现在你需要为自己学习,让自己知其所以然;

◆重新开始学习C语言,虽然你在大学已经学过。这不仅是因为你可能需要写PHP扩展,而且还因为,在做C的应用中,有一个时刻关心性能、内存控制、变量生命周期、数据结构和算法的环境;

◆学习面向对象的分析与设计,它是解决复杂问题的有效的方法。学习抽象,它是解决复杂问题的唯一之道。

PHP工程师面临成长瓶颈的更多相关文章

  1. PHP程序员面临的成长瓶颈

    作为Web开发中应用最广泛的语言之一,PHP有着大量的粉丝,那么你是一名优秀的程序员吗?在进行自我修炼的同时,你是否想过面对各种各样的问题,我该如何突破自身的瓶颈,以便更好的发展呢? PHP工程师面临 ...

  2. PHP程序员如何突破成长瓶颈(php开发三到四年)

    看了这篇博文,我正好处于这个阶段,也有心要突破自己,呵呵! 作为Web开发中应用最广泛的语言之一,PHP有着大量的粉丝,那么你是一名优秀的程序员吗?在进行自我修炼的同时,你是否想过面对各种各样的问题, ...

  3. PHP程序员如何突破成长瓶颈

    PHP因为简单而使用,但不能因为它的简单而限制我们成长!文章给PHP工程师突破成长瓶颈提了一些建议,希望PHPer能够突破自己,有更好的发展. AD: 作为Web开发中应用最广泛的语言之一,PHP有着 ...

  4. GMTC 2019-前端夜话《聊聊前端工程师的成长和发展》会后简要总结

      今天晚上去参加了winter主持的前端夜话:聊聊前端工程师的成长和发展圆桌论坛分享会,真的是收益颇多,这次的这个嘉宾阵容也是很有诚意的,在现在前端领域都是有一定影响力的嘉宾,嘉宾阵容也列一下: 主 ...

  5. DevOps工程师的成长路线图

    DevOps工程师的成长路线图 我们推崇的是 Reducing the gap between Devs and Operation teams. 来自kamranahmedse you built ...

  6. JS工程师的成长路径

    JS 说起来必须是一个神器,这个当年10天内被开发出来的神器,以一种谁也想象不到的速度快速发展,它击败了Java Applet,逼死Flash,当Android和IOS看似一统全球的时候,JS慢条斯理 ...

  7. 年薪50W京东软件测试工程师的成长路——我们都曾一样迷茫

    这两天和朋友谈到软件测试的发展,其实软件测试已经在不知不觉中发生了非常大的改变,前几年的软件测试行业还是一个风口,随着不断地转行人员以及毕业的大学生疯狂地涌入软件测试行业,目前软件测试行业“缺口”已经 ...

  8. 一名合格的Web安全工程师之成长路径

    最近经常听到公司的招聘专员反馈应聘者简历“水分”太大,尤其是技术岗位,例如Web安全工程师,明明是初级阶段的菜鸟,就敢写资深Web安全工程师:在几个项目做一些基础打杂的工作,就敢写带过团队,项目经验丰 ...

  9. java工程师的成长历程

    2019年2月 这是我站在刚入行的角度,对自己未来的发展做出的初步的规划,以后慢慢调整 一. 初级java工程师 1.熟悉java的基本语法,拥有面向对象的思维,熟悉javaSE的核心类库 2.学习j ...

随机推荐

  1. php新手:XAMMP打开开源php代码

    1.启动XAMPP 打开XAMPP启动 Apache 和 MySql 如果发现默认的80端口被IIS占用了 请参考 这个  如何改变apache被占用的端口 2.将源代码复制到 磁盘(XAMPP安装目 ...

  2. codeviz安装

    1.     下载:http://www.skynet.ie/~mel/projects/codeviz/#download 结合Graphviz工具,使用CodeViz可以生成直观和漂亮的C/C++ ...

  3. Nginx 老是抢先捕获了404 我想这个404我Yii项目来处理 要怎么配置?

    配置Nginx vhost的时候别指定error_page 它就不会跟Yii抢生意了 or 你弄一个frontendController   然后再里面 加上 $user->loginRequi ...

  4. std::function赋值的几种方法

    定义: #include <functional> std::function<void(const QString&)> myPrintFunction; 函数指针 ...

  5. How to use Android Activity's finish(), onDestory() and System.exit(0) methods

    Activity.finish() Calling this method will let the system know that the programmer wants the current ...

  6. UML类图关系大全-转

    1.关联 双向关联: C1-C2:指双方都知道对方的存在,都可以调用对方的公共属性和方法. 在GOF的设计模式书上是这样描述的:虽然在分析阶段这种关系是适用的,但我们觉得它对于描述设计模式内的类关系来 ...

  7. 1934: [Shoi2007]Vote 善意的投票 - BZOJ

    Description幼儿园里有n个小朋友打算通过投票来决定睡不睡午觉.对他们来说,这个问题并不是很重要,于是他们决定发扬谦让精神.虽然每个人都有自己的主见,但是为了照顾一下自己朋友的想法,他们也可以 ...

  8. c++ 枚举 在函数中的应用

    #include <iostream> using namespace std; enum RespErrNo { SUCCESS = , INVALID_URL = , INVALID_ ...

  9. 设置HTTP header方式

    一, Server Code JSP----> <%@ page language="java" contentType="text/html; charse ...

  10. HTML中动态图片切换JQuery实现

    相信很多同学都注意到了,各大新闻或者娱乐网站都含有动态图片切换,那个漂亮的感觉让刚刚学习html的人,都非常好奇和心动.那下面就让我们看一下到底如何实现动态图片切换呢?看一下百度贴吧的效果图吧~ // ...