目录
回复内容:
首页 后端开发 php教程 phper 怎么成长成架构?

phper 怎么成长成架构?

Jun 17, 2016 am 08:31 AM
php

做php已经5年多了,想往架构级phper发展。请问,架构级需要掌握哪些知识,循序渐进的过程怎么走?麻烦说的细一点

回复内容:

记得 Laruence 说过,修炼的路大概如下:

PHP -> C -> PHP扩展 -> Linux 编程 -> 网络编程 -> 成了

然后我就开始努力学习C,扩展,linux.....

直到有天发现,尼玛,这还是phper么?
=========我是一条分割线==============

补充一下:

没有只限于php的架构师存在,放下php的标签。
把方向改为 web 架构师,道路就清晰多了。 PHP请求来了处理一下,请求结束就销毁。作为仅仅掌控一层生命周期的程序。何来架构师,无非就是配置一下Nginx,PHP-fpm,Memcache,HaProxy ,MySQL 等软件。

PHP程序员应该掌握系统底层和网络通信的知识,比如多进程、多线程、Socket、Epoll等。PHP内核,扩展开发,C/C++都需要去学习。网络通信方面建议看一下 swoole。Swoole: PHP的异步、并行、分布式扩展 正在朝架构师的方向努力,个人意见,仅供参考:
架构师最基本的职责是将一个大系统分解为一些列程序员可以处理小模块,并在他们遇到技术难点时给予帮助。由此而来,php架构师必须要掌握的东西有:
1. 数据结构、算法。至少要做到会用,知道什么时候用集合,什么时候用队列,什么时候用排序队列,每种数据结构支持哪些操作,每个操作的时间复杂度是多少;能够将实际问题用适合的数据结构描述。
2. 数据存储: Mysql Redis 等;主从分离后并发数据一致性;关系数据库和非关系数据库的理论;数据库范式,什么时候需要反范式;SQL查询优化;能够将实际问题表述为合适数据库结构。可阅读《SQL查询烦人入门》《Redis入门指南》《MySql技术内幕》
3. webserver:Nginx, Lighttpd。可阅读《深入理解Nginx》
4. 缓存:浏览器,前端服务器,后端服务器的多级缓存。可阅读《构建高性能web站点》
5. 消息队列:数据异步写入的实现方案。
6. 设计理论:面向对象,面向对象基本原则,对耦合的深入理解;设计模式,重构,代码坏味道;架构模式。推荐:《设计模式》《大话设计模式》《重构》《敏捷软件开发:原则、模式与实践》。
7. 设计文档编写:架构师需要把自己想法清楚的传达给每个团队成员,除了基本文档撰写能力,UML必知必会,visio等绘图工具必须。
8. 软件工程:架构师必须有能力为自己负责的项目选择合适的开发流程,瀑布方式、螺旋迭代方式、敏捷,没有好坏之分,只有适合于不适合;

对于只需要的php的项目,有以上能力就可以坐在架构师的位置上了。总结一下,想做架构,就不要把自己定位为phper,php只是一种的服务端脚本语言。

但是,还有但是:

只需要php项目规模不会很大,价值也不会很大。php只是一个脚本语言,适合做业务和快速构建产品原型。产品规模大了以后,后端很定是要迁移到Java、C++等静态语言的。如果你不会Java、C++这类语言。那恐怕永远也无法成为一个牛B的架构师。

所以这是一个让人很纠结的问题,写php多年的人,是否应该转移到Java或C++阵营。我见过的架构师确实,php,C++,Java随便写的。 就会一门语言就想做架构,那也只是想想的。
现在很多框架都是各个语言之间在互相学习的,何况是 框架,很多语言也是。
但这些对于架构师来说也并非是重要的。

我们要有什么技能,首先来看看架构师要达成的目标有哪些。
既需要掌控整体又需要洞悉局部瓶颈并依据具体的业务场景给出解决方案
确认和评估系统需求,给出开发规范,搭建系统实现的核心构架,并澄清技术细节、扫清主要难点。主要着眼于系统的“技术实现”。因此他/她应该是 特定的开发平台、语言、工具的大师,对常见应用场景能马上给出最恰当的解决方案,同时要对所属的开发团队有足够的了解,能够评估自己的团队实现特定的功能 需求需要的代价。 系统架构师负责设计系统整体架构,从需求到设计的每个细节都要考虑到,把握整个项目,使设计的项目尽量效率高,开发容易,维护方便,升级简单等。
百度百科抄的。

上面的在把要点提炼出来,就是:
  • 了解“业务场景”的情况下给出解决方案。
  • 对所属开发团队有足够的了解。
  • 对于项目风险的控制。
  • 对于开发流程,和系统架构的设计、把控与实施。

懂技术,可以不精,但一定要广,可以根据需求正确的设计架构,规范开发流程,把控开发上的技术风险。

懂业务,对于业务场景有大概了解,至少需要在与专业的业务人员沟通时不会有障碍,并且能对于场景做正确的需求分析。

懂管理,主要是对于团队的了解,任务分解中的风险,正确传达需求。



话说回来,做架构,不懂业务行不行?不行!

如果真有通用的架构,那就不需要那么多架构师了,所有业务领域都找个通用的架构来就好了。可能不是通用,但是大同小异啊?是的,这个“小异”弄不好是会死人的。

当然,互联网时代很多业务模式都是创新的,根本没人懂这个业务怎么玩,那对于架构师的要求也就不一样了,玩法变了,变出什么呢?所谓的“敏捷开发”,迭代更新。这就意味着架构师不需要懂业务么?不是的,这个只是一个摸着石头过河,然后,有经验了,遇到瓶颈之前加紧重构。

本屌经验不多,刚毕业,半年经验,但是发现如果把php作为纯粹地技术研究,而不是为了赚钱,那就继续深入,研究源码,作为一项追求。本it狗钱还没赚够,只能学学其他东西,多掌握几项技能,而把专心研究php这个伟大工程留给我赚够钱之后了 你职业生涯何必和php绑定呢,php工作几年马上转:

c/c++ ->服务端架构设计 -> java 系列框架 -> jvm系列语言

c/c++ 优秀开源服务端有:
nginx 性能卓越,
ace 设计无人匹敌,
traffic server 设计和性能都不错

java的也很有很多,推荐你看看,你就知道 外面的世界多精彩了。
jvm系列语言也有很多选择,scala语言的kafka 卓越的消息队列,storm等等。

如果还继续深入php不想转的话,hhvm是个好选择。
见多识广比抱死一颗烂树强多了,花时间学习 zend php如何写扩展还不如去睡觉 说点我的看法。属于只看过猪跑的。

我理解的架构师职责就是提供整体的解决方案,就是负责给出功能实现的具体方案,从阅读需求到功能设计到技术选型、优化重构、测试发布回滚,甚至代码风格都要给出。

这一切都以一个至多个文档来体现,所以文档能力对架构师而言是必须的,而决定输出文档质量的,就是架构师的核心能力,这包括对需求的阅读理解能力、设计能力和技术广度及深度。

对架构师而言,理解需求和抽象设计,应该是硬实力,这两者达不到一定程度,是无法胜任架构师的。
除此之外,技术选型是个很重要的环节,这决定整个团队之后所依赖的技术走向,需要权衡很多东西。
workflow的设计也很重要,好的workflow能极大提高团队效率,如何配合技术选型来引入更多的自动化,也是架构师需要考虑的问题。

单纯的phper很难成为架构师,除非是那么两三个人的破公司顶个架构师的名头而已。

因为视野太窄了。

架构师的知识面要求很广,光会一门语言是不行的。
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

<🎜>:泡泡胶模拟器无穷大 - 如何获取和使用皇家钥匙
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系统,解释
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
Mandragora:巫婆树的耳语 - 如何解锁抓钩
3 周前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

热门话题

Java教程
1665
14
CakePHP 教程
1424
52
Laravel 教程
1321
25
PHP教程
1269
29
C# 教程
1249
24
PHP和Python:比较两种流行的编程语言 PHP和Python:比较两种流行的编程语言 Apr 14, 2025 am 12:13 AM

PHP和Python各有优势,选择依据项目需求。1.PHP适合web开发,尤其快速开发和维护网站。2.Python适用于数据科学、机器学习和人工智能,语法简洁,适合初学者。

PHP行动:现实世界中的示例和应用程序 PHP行动:现实世界中的示例和应用程序 Apr 14, 2025 am 12:19 AM

PHP在电子商务、内容管理系统和API开发中广泛应用。1)电子商务:用于购物车功能和支付处理。2)内容管理系统:用于动态内容生成和用户管理。3)API开发:用于RESTfulAPI开发和API安全性。通过性能优化和最佳实践,PHP应用的效率和可维护性得以提升。

PHP:网络开发的关键语言 PHP:网络开发的关键语言 Apr 13, 2025 am 12:08 AM

PHP是一种广泛应用于服务器端的脚本语言,特别适合web开发。1.PHP可以嵌入HTML,处理HTTP请求和响应,支持多种数据库。2.PHP用于生成动态网页内容,处理表单数据,访问数据库等,具有强大的社区支持和开源资源。3.PHP是解释型语言,执行过程包括词法分析、语法分析、编译和执行。4.PHP可以与MySQL结合用于用户注册系统等高级应用。5.调试PHP时,可使用error_reporting()和var_dump()等函数。6.优化PHP代码可通过缓存机制、优化数据库查询和使用内置函数。7

PHP的持久相关性:它还活着吗? PHP的持久相关性:它还活着吗? Apr 14, 2025 am 12:12 AM

PHP仍然具有活力,其在现代编程领域中依然占据重要地位。1)PHP的简单易学和强大社区支持使其在Web开发中广泛应用;2)其灵活性和稳定性使其在处理Web表单、数据库操作和文件处理等方面表现出色;3)PHP不断进化和优化,适用于初学者和经验丰富的开发者。

PHP与Python:了解差异 PHP与Python:了解差异 Apr 11, 2025 am 12:15 AM

PHP和Python各有优势,选择应基于项目需求。1.PHP适合web开发,语法简单,执行效率高。2.Python适用于数据科学和机器学习,语法简洁,库丰富。

PHP和Python:代码示例和比较 PHP和Python:代码示例和比较 Apr 15, 2025 am 12:07 AM

PHP和Python各有优劣,选择取决于项目需求和个人偏好。1.PHP适合快速开发和维护大型Web应用。2.Python在数据科学和机器学习领域占据主导地位。

PHP与其他语言:比较 PHP与其他语言:比较 Apr 13, 2025 am 12:19 AM

PHP适合web开发,特别是在快速开发和处理动态内容方面表现出色,但不擅长数据科学和企业级应用。与Python相比,PHP在web开发中更具优势,但在数据科学领域不如Python;与Java相比,PHP在企业级应用中表现较差,但在web开发中更灵活;与JavaScript相比,PHP在后端开发中更简洁,但在前端开发中不如JavaScript。

PHP和Python:解释了不同的范例 PHP和Python:解释了不同的范例 Apr 18, 2025 am 12:26 AM

PHP主要是过程式编程,但也支持面向对象编程(OOP);Python支持多种范式,包括OOP、函数式和过程式编程。PHP适合web开发,Python适用于多种应用,如数据分析和机器学习。

See all articles