PHP – 活动家资讯 //m.catawbaoil.com 传递会议价值_深度行业分析 Mon, 12 Jun 2017 07:10:44 +0000 zh-Hans hourly 1 https://wordpress.org/?v=6.9 //m.catawbaoil.com/wp-content/uploads/2025/12/cropped-微信图片_2025-12-17_114125_972-32x32.jpg PHP – 活动家资讯 //m.catawbaoil.com 32 32 【高可用的 PHP 】专访瓜子二手车纪鹏程:流量密集型服务的 PHP 实践心得 //m.catawbaoil.com/61649.html Mon, 12 Jun 2017 07:10:44 +0000 //m.catawbaoil.com/?p=61649 Read More “【高可用的 PHP 】专访瓜子二手车纪鹏程:流量密集型服务的 PHP 实践心得” »

]]>
摘要:本文为 PHP 全球开发者大会专访系列,本期采访嘉宾是 PHP 大会讲师——瓜子二手车高级技术总监纪鹏程。在即将到来的 PHP 大会上,他将和大家分享瓜子后端技术架构的变迁。

由 DevLink 主办的 PHP全球开发者大会已于 2017年6月10日~11日 在北京亚洲大酒店举行,本次大会特约讲师——纪鹏程将为大家献上精彩的主题演讲,题目为:《瓜子后端技术架构的变迁》。

主题简介:

介绍瓜子如何从最初的原始状态,如何逐步进化到现在的准服务化现状,中间所碰到的问题,以及我们解决的方案和一些经验总结,最后讲一下我们对瓜子整体架构的规划。

以下为采访内容,提问者:DevLink,受访者:纪鹏程。

1纪鹏程老师您好,能否简单介绍一下自己?

07 年从中科院软件所毕业后,去了百度的贴吧项目组,做后端系统的设计和开发工作,当时后端的模块主要用 C/C++ 开发,后期一些系统也逐步转为 PHP,先后主要负责了贴吧资源区项目和i贴吧项目;11 年加入赶集,最开始负责的是赶集交友项目,后面又先后负责瓜子社区、二手物品交易频道和二手车交易频道的开发工作,一直是一半技术一半管理;14 年 9 月内部开始孵化赶集好车的项目,也就是瓜子二手车的前身,我负责整体技术团队的搭建和培养,随后就伴随着这个项目一直走来。

技术上,早期主要侧重点是存储和基于 C/C++ 语言体系的架构,后面随着时间的变化,兴趣点开始变得广泛,后端、前端、移动端以及机器学习都有涉及,不过受精力所限,都很难做到精通。

2我们知道,您曾经在百度、赶集工作过,现在在瓜子二手车负责技术方面的工作,我们发现,您接触到的所有业务基本都是流量密集型的产品。这是您刻意选择的技术方向,还是出于偶然呢?

也不算刻意吧,毕业的时候最想去的还是 google,不过当时没去成,所以去百度就变成了另外一个选择,很幸运当时去的贴吧是百度仅次于大搜的最大流量的产品,大搜那时方向已经分的比较细了,而当时贴吧还基本就分前后端,所以每个人要去 cover 的面就非常广,贴吧这么巨大流量的背后就要求大家把性能做到极致,任何一处性能设计不合理在每天几亿 PV 面前都会迅速暴露,现在回过头来看,贴吧的四年给我打下了一个比较扎实的基础,对此我还是挺心存感激的。

从百度到赶集,一是觉得分类信息是当时的一个很有意思的方向,很贴近我们的日常生活,比较接地气,另外一点,是觉得贴吧也过了它最高速成长的阶段,后期更多偏重的是一些细节的加强。和贴吧一比,赶集的流量相对就要小一些了,但是和贴吧这种在当时不用考虑变现压力,只需要负责吸引流量的产品一比,赶集的业务就要复杂很多,技术和产品不单单要为用户服务,还需要为内部的销售、以及商家服务,要实现多赢、共赢的局面,还要兼顾流量、广告变现这些事情。如果把贴吧的工作比喻成修炼易筋经这样一门内功的话,那在赶集就是十八般兵器,样样要精通,因此同样也会对知识的广度提出要求,逼着我去接触更广阔的领域和知识。

从赶集到瓜子二手车,作为项目孵化最早期的参与者,属于很自然的过度,在瓜子二手车,除了升级之前的技术架构外,我们更加重视算法、大数据、机器学习这些技术对业务、产品的提升,未来的世界,不再拼的是业务、产品,更多的是拼对数据的应用能力。

3有很多开发者朋友认为,PHP 适合早期原型阶段的开发,而流量上来之后,最好用 Java、Go 这样的编程语言来面对大流量、大并发的情况,您是怎样看待这个观点的?

首先,我想说的是没有最好的语言,只有最合适的语言场景。PHP 的优势是简单易上手、不常驻内存,因此也就不用考虑内存泄漏、资源释放这类问题,初创公司在起始阶段,要快速的满足业务和产品需求,快速搭建原型,所以这时候,PHP 就是最适合的语言,但确实随着大并发、大流量的需求逐渐变多,PHP 不能常驻内存以及解释性语言的特点就会在响应这类需求时逐渐变得有点捉襟见肘,但这并不意味着PHP没有用武之地,PHP 的简单性正是编写复杂业务逻辑的绝佳语言,因此,用 C/C++、go、Java 去写一些逻辑变动小、性能要求高的模块,而用 PHP 去完成偏前端复杂逻辑的模块和页面就是一个很好的配置组合。

最近几年,随着 PHP7、JIT 实践以及 swoole 异步编程框架的不断完善,PHP 在性能上也变的不断强大,相信不远的将来越来越多的高性能模块也会逐步转到 PHP 上。

4在可用性保障方面,您觉得 PHP 有哪些优势和不足?

PHP 的针对每次请求的进程模型其实对系统的可用性和稳定性是有好处的,每次请求结束即释放资源可以简化系统的逻辑,不需要考虑内存泄漏、也不用复杂的 GC 机制;但是,恰恰也正是因为这点,PHP 不能常驻内存以及同步机制,也给性能设置了一些上限,如果请求响应很慢,当所有的进程都在处理请求时,那么也就不能再有其他的请求,服务也就变得不可用,这也是平时很多站点出现 502 的主要原因,因此需要将处理慢的地方抽取出来,要么变成异步实现,通过队列这样的方式来达到,要么用性能更高的语言来实现。

总体说来,保证系统的可用性,重点还是在架构层,是一个复杂的系统工程,包括容量规划、单点消除、服务分级和降级、熔断机制、系统监控以及性能监控等等,只有这样,才能使得系统具备高可用性。

5作为一名技术负责人,在用人和技术团队的管理方面,有没有可以与大家分享的?

用人方面,其实我只看重一点,就是这个人是不是具备足够的学习意识和学习方法,我们所处的这个行业,每天都在发生巨大的变化,要想跟紧这个时代,唯有不断的学习,不断的更新自己的知识。

在管理方面,我也是积极推进学习型组织的建立,在内部推动大家积极主动学习、分享。同时,适当放权,让优秀的同学能够有机会施展拳脚,获得更快的成长。

6对 PHP 开发者有什么要说话的么?

第一,  不要过度依赖框架,虽然框架能够极大的简化我们的劳动,但是框架毕竟只是工具,不应该成为束缚我们手脚的囚笼,我们应该要学习框架背后的思想,要深入理解为什么框架要这么做?体现了哪些设计模式?如果我来做,能不能做的更好?

第二,  练好扎实的基本功,语言都是万变不离其宗,但是扎实的算法、数据结构、操作系统和网络知识才是我们技术持续发展的根基。最近几年面试深有感触,一些出身名校的科班学生,写了几年业务逻辑后,再让写一些基本的算法,哪怕是简单如二分查找、排序、字符串处理这类,离开 PHP 函数都不能很好的写出来,这有点属实不该;

第三,  对语言不要过度排他性,每种语言都有自己的特点和使用场景,所以有时间不妨多了解学习其他的的语言,只有这样,才能在任何一种场景下都能找到最适合的语言和架构;

第四,  遵从规范,PHP 社区也在不断丰富 PSR 的标准规则,从编码规范、自动加载方式到消息格式、缓存机制等,不断从过去的风格转向规范有助于语言的推广以及跟外界更好的合作,这也是将来的趋势;

第五,  用数据驱动、技术驱动的思想去指导自己的工作;

第六,  开始关注机器学习、大数据,随着智能时代的逐渐到来,这些技术将来必然会变成互联网人才的基本技能,与其到时费劲去学,不如现在就开始去了解。

本篇文章仅代表嘉宾个人观点

2017 PHP 全球开发者大会,将于 6.10-11 在北京亚洲大酒店举办,是面向 PHP 开发者及技术管理者举办的线下技术交流活动。

继前年的“ PHP7 初探”、去年的“高性能的 PHP ”主题后,第三届 PHP 全球开发者大会的活动主题是“高可用的 PHP ”,本次活动,我们将在 PHP7 这个日趋成熟的 PHP 版本之上,与大家探讨 PHP 开发和运维中的高可用性挑战。

1563-640.jpg.png

]]>
专访奇虎360核心安全事业部、云引擎开发组工程师——郭军 //m.catawbaoil.com/61640.html Mon, 12 Jun 2017 06:59:35 +0000 //m.catawbaoil.com/?p=61640 Read More “专访奇虎360核心安全事业部、云引擎开发组工程师——郭军” »

]]>
摘要:本文是DevLink对奇虎360核心安全事业部软件开发工程师——郭军老师进行的专访…..

DevLink与Go语言北京用户组联合举办的X to Go语言“小课桌”技术分享活动,将于9月3日在上地福道大厦链家网举办,活动面向对Go感兴趣的开发者,希望能够帮助到大家快速了解Go这个新时代的编程语言。

会前我们对本次活动的讲师之一、奇虎360核心安全事业部软件开发工程师——郭军老师进行了文字专访。

1.郭军老师您好,能否简单介绍一下自己?


大家好,我是郭军,2013年21岁大学毕业,之前做的是asp.net,实习期间自学了PHP,之后大部分时间做PHP相关的开发工作,期间也使用过erlang,python等语言。

2014年离开新浪加入360公司,负责360会员中心旗下项目的开发和维护工作,2015年加入核心安全业务线,目前服务于360核心安全事业部 云引擎开发组技术团队,做着和大数据相关的一些有趣的事情,关注golang,架构设计等互联网技术。

2.据您了解的情况,目前Go语言在360这样的大型互联网企业中的应用状况是怎样的?

其实我们公司现在很多部门都在使用或者尝试使用go语言,比如: 免费wifi,用户中心,安全卫士服务端,360搜索等,随着业务的发展,性能和并发编程越来越受到开发人员的关注,除了线上业务,我们公司有些ops同事也在使用go语言替代python。

3.您本次的分享主题是关于重构的,但也有一种观点是,稳定运行的系统不要轻易重构,而选择硬件扩容等更为保守的形式来维持稳定,您是如何看待这种观点的?


这个问题挺难回答的,最理想的状态当然是把所有的系统都部署在一台超级计算机上,而且可以无限扩容,这个我们目前做不到,虽然通常情况下硬件扩容相比投入人力重新开发是很廉价,但是架构师仍然需要全面考虑投入人力做这件事情的性价比来合理做取舍:造轮子之后对业务的提高(比如性能提高,稳定性提高,可扩展性提高等),参与人员技术能力的提升,重构之后带来新的问题以及重构使用的某些新技术团队是否能hold住,尤其在创业项目还需要考虑时间和人力成本不能耽误新需求的更迭。

4.能评价一下刚刚发布的 Go 1.7版本么?


Go 1.7没有新增有亮点的功能,主要在改善和优化方面,自Go 1.5以来编译速度大幅下降,在1.6就计划引入的SSA,在1.7加入了,但是也仅支持了x86-64平台,至于编译之后的文件大小,我想大部分gopher都不是很在意,将context包加入到标准库在这之前有开发者在golang dev group提过多次,其中一部分标准包性能提升10%以上,这个我们还没测试。

5您觉得目前Go还存在哪些亟待解决的缺点?

Go语言到现在的版本其实已经能满足我们绝大多数的需要了,缺点算不上,只能说改进的地方吧,一些常用的标准库性能提升,反射,不支持泛型也有很多人反馈过,但是go team可能有自己的想法一直没加,也许会有更好的特性出来吧,期待以后的版本。

6.对Go开发者和希望了解Go的同学们有什么要说的么?


目前就性能而言go语言可以排在前列了(仅比C慢10%左右),原生对并发编程的支持,开发体验好,社区活跃,资料丰富,目前有很多公司也都在使用,可以满足特定情况下对性能的需求,线上部署简单,将build之后的应用程序挂起即可,最重要的一点是足够简单,比如我们要写一个像nginx这样的软件可能需要全球最好的C程序员,用go一个中级工程师用更少的代码就可以完成一个和nginx性能差不多的webserver。


本次郭军老师演讲的议题及提纲

 

]]>