PHPCON技术峰会成功召开

<!--[if !mso]> <style> v\:* {behavior:url(#default#VML);} o\:* {behavior:url(#default#VML);} w\:* {behavior:url(#default#VML);} .shape {behavior:url(#default#VML);} </style> <![endif]-->

<!--[if gte mso 9]><xml> <w:WordDocument> <w:View>Normal</w:View> <w:Zoom>0</w:Zoom> <w:TrackMoves>false</w:TrackMoves> <w:TrackFormatting/> <w:DoNotShowComments/> <w:DoNotShowInsertionsAndDeletions/> <w:PunctuationKerning/> <w:DrawingGridVerticalSpacing>7.8 磅</w:DrawingGridVerticalSpacing> <w:DisplayHorizontalDrawingGridEvery>0</w:DisplayHorizontalDrawingGridEvery> <w:DisplayVerticalDrawingGridEvery>2</w:DisplayVerticalDrawingGridEvery> <w:ValidateAgainstSchemas/> <w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid> <w:IgnoreMixedContent>false</w:IgnoreMixedContent> <w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText> <w:DoNotPromoteQF/> <w:LidThemeOther>EN-US</w:LidThemeOther> <w:LidThemeAsian>ZH-CN</w:LidThemeAsian> <w:LidThemeComplexScript>X-NONE</w:LidThemeComplexScript> <w:Compatibility> <w:SpaceForUL/> <w:BalanceSingleByteDoubleByteWidth/> <w:DoNotLeaveBackslashAlone/> <w:ULTrailSpace/> <w:DoNotExpandShiftReturn/> <w:AdjustLineHeightInTable/> <w:BreakWrappedTables/> <w:SnapToGridInCell/> <w:WrapTextWithPunct/> <w:UseAsianBreakRules/> <w:DontGrowAutofit/> <w:SplitPgBreakAndParaMark/> <w:DontVertAlignCellWithSp/> <w:DontBreakConstrainedForcedTables/> <w:DontVertAlignInTxbx/> <w:Word11KerningPairs/> <w:CachedColBalance/> <w:UseFELayout/> </w:Compatibility> <m:mathPr> <m:mathFont m:val="Cambria Math"/> <m:brkBin m:val="before"/> <m:brkBinSub m:val="--"/> <m:smallFrac m:val="off"/> <m:dispDef/> <m:lMargin m:val="0"/> <m:rMargin m:val="0"/> <m:defJc m:val="centerGroup"/> <m:wrapIndent m:val="1440"/> <m:intLim m:val="subSup"/> <m:naryLim m:val="undOvr"/> </m:mathPr></w:WordDocument> </xml><![endif]--><!--[if gte mso 9]><xml> <w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="true" DefSemiHidden="true" DefQFormat="false" DefPriority="99" LatentStyleCount="267"> <w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="Normal"/> <w:LsdException Locked="false" Priority="9" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="heading 1"/> <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 2"/> <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 3"/> <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 4"/> <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 5"/> <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 6"/> <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 7"/> <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 8"/> <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 9"/> <w:LsdException Locked="false" Priority="39" Name="toc 1"/> <w:LsdException Locked="false" Priority="39" Name="toc 2"/> <w:LsdException Locked="false" Priority="39" Name="toc 3"/> <w:LsdException Locked="false" Priority="39" Name="toc 4"/> <w:LsdException Locked="false" Priority="39" Name="toc 5"/> <w:LsdException Locked="false" Priority="39" Name="toc 6"/> <w:LsdException Locked="false" Priority="39" Name="toc 7"/> <w:LsdException Locked="false" Priority="39" Name="toc 8"/> <w:LsdException Locked="false" Priority="39" Name="toc 9"/> <w:LsdException Locked="false" Priority="35" QFormat="true" Name="caption"/> <w:LsdException Locked="false" Priority="10" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="Title"/> <w:LsdException Locked="false" Priority="1" Name="Default Paragraph Font"/> <w:LsdException Locked="false" Priority="11" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="Subtitle"/> <w:LsdException Locked="false" Priority="22" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="Strong"/> <w:LsdException Locked="false" Priority="20" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="Emphasis"/> <w:LsdException Locked="false" Priority="59" SemiHidden="false" UnhideWhenUsed="false" Name="Table Grid"/> <w:LsdException Locked="false" UnhideWhenUsed="false" Name="Placeholder Text"/> <w:LsdException Locked="false" Priority="1" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="No Spacing"/> <w:LsdException Locked="false" Priority="60" SemiHidden="false" UnhideWhenUsed="false" Name="Light Shading"/> <w:LsdException Locked="false" Priority="61" SemiHidden="false" UnhideWhenUsed="false" Name="Light List"/> <w:LsdException Locked="false" Priority="62" SemiHidden="false" UnhideWhenUsed="false" Name="Light Grid"/> <w:LsdException Locked="false" Priority="63" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 1"/> <w:LsdException Locked="false" Priority="64" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 2"/> <w:LsdException Locked="false" Priority="65" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 1"/> <w:LsdException Locked="false" Priority="66" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 2"/> <w:LsdException Locked="false" Priority="67" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 1"/> <w:LsdException Locked="false" Priority="68" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 2"/> <w:LsdException Locked="false" Priority="69" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 3"/> <w:LsdException Locked="false" Priority="70" SemiHidden="false" UnhideWhenUsed="false" Name="Dark List"/> <w:LsdException Locked="false" Priority="71" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Shading"/> <w:LsdException Locked="false" Priority="72" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful List"/> <w:LsdException Locked="false" Priority="73" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Grid"/> <w:LsdException Locked="false" Priority="60" SemiHidden="false" UnhideWhenUsed="false" Name="Light Shading Accent 1"/> <w:LsdException Locked="false" Priority="61" SemiHidden="false" UnhideWhenUsed="false" Name="Light List Accent 1"/> <w:LsdException Locked="false" Priority="62" SemiHidden="false" UnhideWhenUsed="false" Name="Light Grid Accent 1"/> <w:LsdException Locked="false" Priority="63" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 1 Accent 1"/> <w:LsdException Locked="false" Priority="64" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 2 Accent 1"/> <w:LsdException Locked="false" Priority="65" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 1 Accent 1"/> <w:LsdException Locked="false" UnhideWhenUsed="false" Name="Revision"/> <w:LsdException Locked="false" Priority="34" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="List Paragraph"/> <w:LsdException Locked="false" Priority="29" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="Quote"/> <w:LsdException Locked="false" Priority="30" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="Intense Quote"/> <w:LsdException Locked="false" Priority="66" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 2 Accent 1"/> <w:LsdException Locked="false" Priority="67" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 1 Accent 1"/> <w:LsdException Locked="false" Priority="68" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 2 Accent 1"/> <w:LsdException Locked="false" Priority="69" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 3 Accent 1"/> <w:LsdException Locked="false" Priority="70" SemiHidden="false" UnhideWhenUsed="false" Name="Dark List Accent 1"/> <w:LsdException Locked="false" Priority="71" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Shading Accent 1"/> <w:LsdException Locked="false" Priority="72" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful List Accent 1"/> <w:LsdException Locked="false" Priority="73" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Grid Accent 1"/> <w:LsdException Locked="false" Priority="60" SemiHidden="false" UnhideWhenUsed="false" Name="Light Shading Accent 2"/> <w:LsdException Locked="false" Priority="61" SemiHidden="false" UnhideWhenUsed="false" Name="Light List Accent 2"/> <w:LsdException Locked="false" Priority="62" SemiHidden="false" UnhideWhenUsed="false" Name="Light Grid Accent 2"/> <w:LsdException Locked="false" Priority="63" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 1 Accent 2"/> <w:LsdException Locked="false" Priority="64" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 2 Accent 2"/> <w:LsdException Locked="false" Priority="65" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 1 Accent 2"/> <w:LsdException Locked="false" Priority="66" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 2 Accent 2"/> <w:LsdException Locked="false" Priority="67" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 1 Accent 2"/> <w:LsdException Locked="false" Priority="68" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 2 Accent 2"/> <w:LsdException Locked="false" Priority="69" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 3 Accent 2"/> <w:LsdException Locked="false" Priority="70" SemiHidden="false" UnhideWhenUsed="false" Name="Dark List Accent 2"/> <w:LsdException Locked="false" Priority="71" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Shading Accent 2"/> <w:LsdException Locked="false" Priority="72" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful List Accent 2"/> <w:LsdException Locked="false" Priority="73" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Grid Accent 2"/> <w:LsdException Locked="false" Priority="60" SemiHidden="false" UnhideWhenUsed="false" Name="Light Shading Accent 3"/> <w:LsdException Locked="false" Priority="61" SemiHidden="false" UnhideWhenUsed="false" Name="Light List Accent 3"/> <w:LsdException Locked="false" Priority="62" SemiHidden="false" UnhideWhenUsed="false" Name="Light Grid Accent 3"/> <w:LsdException Locked="false" Priority="63" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 1 Accent 3"/> <w:LsdException Locked="false" Priority="64" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 2 Accent 3"/> <w:LsdException Locked="false" Priority="65" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 1 Accent 3"/> <w:LsdException Locked="false" Priority="66" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 2 Accent 3"/> <w:LsdException Locked="false" Priority="67" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 1 Accent 3"/> <w:LsdException Locked="false" Priority="68" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 2 Accent 3"/> <w:LsdException Locked="false" Priority="69" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 3 Accent 3"/> <w:LsdException Locked="false" Priority="70" SemiHidden="false" UnhideWhenUsed="false" Name="Dark List Accent 3"/> <w:LsdException Locked="false" Priority="71" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Shading Accent 3"/> <w:LsdException Locked="false" Priority="72" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful List Accent 3"/> <w:LsdException Locked="false" Priority="73" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Grid Accent 3"/> <w:LsdException Locked="false" Priority="60" SemiHidden="false" UnhideWhenUsed="false" Name="Light Shading Accent 4"/> <w:LsdException Locked="false" Priority="61" SemiHidden="false" UnhideWhenUsed="false" Name="Light List Accent 4"/> <w:LsdException Locked="false" Priority="62" SemiHidden="false" UnhideWhenUsed="false" Name="Light Grid Accent 4"/> <w:LsdException Locked="false" Priority="63" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 1 Accent 4"/> <w:LsdException Locked="false" Priority="64" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 2 Accent 4"/> <w:LsdException Locked="false" Priority="65" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 1 Accent 4"/> <w:LsdException Locked="false" Priority="66" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 2 Accent 4"/> <w:LsdException Locked="false" Priority="67" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 1 Accent 4"/> <w:LsdException Locked="false" Priority="68" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 2 Accent 4"/> <w:LsdException Locked="false" Priority="69" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 3 Accent 4"/> <w:LsdException Locked="false" Priority="70" SemiHidden="false" UnhideWhenUsed="false" Name="Dark List Accent 4"/> <w:LsdException Locked="false" Priority="71" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Shading Accent 4"/> <w:LsdException Locked="false" Priority="72" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful List Accent 4"/> <w:LsdException Locked="false" Priority="73" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Grid Accent 4"/> <w:LsdException Locked="false" Priority="60" SemiHidden="false" UnhideWhenUsed="false" Name="Light Shading Accent 5"/> <w:LsdException Locked="false" Priority="61" SemiHidden="false" UnhideWhenUsed="false" Name="Light List Accent 5"/> <w:LsdException Locked="false" Priority="62" SemiHidden="false" UnhideWhenUsed="false" Name="Light Grid Accent 5"/> <w:LsdException Locked="false" Priority="63" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 1 Accent 5"/> <w:LsdException Locked="false" Priority="64" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 2 Accent 5"/> <w:LsdException Locked="false" Priority="65" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 1 Accent 5"/> <w:LsdException Locked="false" Priority="66" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 2 Accent 5"/> <w:LsdException Locked="false" Priority="67" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 1 Accent 5"/> <w:LsdException Locked="false" Priority="68" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 2 Accent 5"/> <w:LsdException Locked="false" Priority="69" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 3 Accent 5"/> <w:LsdException Locked="false" Priority="70" SemiHidden="false" UnhideWhenUsed="false" Name="Dark List Accent 5"/> <w:LsdException Locked="false" Priority="71" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Shading Accent 5"/> <w:LsdException Locked="false" Priority="72" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful List Accent 5"/> <w:LsdException Locked="false" Priority="73" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Grid Accent 5"/> <w:LsdException Locked="false" Priority="60" SemiHidden="false" UnhideWhenUsed="false" Name="Light Shading Accent 6"/> <w:LsdException Locked="false" Priority="61" SemiHidden="false" UnhideWhenUsed="false" Name="Light List Accent 6"/> <w:LsdException Locked="false" Priority="62" SemiHidden="false" UnhideWhenUsed="false" Name="Light Grid Accent 6"/> <w:LsdException Locked="false" Priority="63" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 1 Accent 6"/> <w:LsdException Locked="false" Priority="64" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 2 Accent 6"/> <w:LsdException Locked="false" Priority="65" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 1 Accent 6"/> <w:LsdException Locked="false" Priority="66" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 2 Accent 6"/> <w:LsdException Locked="false" Priority="67" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 1 Accent 6"/> <w:LsdException Locked="false" Priority="68" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 2 Accent 6"/> <w:LsdException Locked="false" Priority="69" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 3 Accent 6"/> <w:LsdException Locked="false" Priority="70" SemiHidden="false" UnhideWhenUsed="false" Name="Dark List Accent 6"/> <w:LsdException Locked="false" Priority="71" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Shading Accent 6"/> <w:LsdException Locked="false" Priority="72" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful List Accent 6"/> <w:LsdException Locked="false" Priority="73" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Grid Accent 6"/> <w:LsdException Locked="false" Priority="19" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="Subtle Emphasis"/> <w:LsdException Locked="false" Priority="21" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="Intense Emphasis"/> <w:LsdException Locked="false" Priority="31" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="Subtle Reference"/> <w:LsdException Locked="false" Priority="32" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="Intense Reference"/> <w:LsdException Locked="false" Priority="33" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="Book Title"/> <w:LsdException Locked="false" Priority="37" Name="Bibliography"/> <w:LsdException Locked="false" Priority="39" QFormat="true" Name="TOC Heading"/> </w:LatentStyles> </xml><![endif]--><!--[if gte mso 10]> <style> /* Style Definitions */ table.MsoNormalTable {mso-style-name:普通表格; mso-tstyle-rowband-size:0; mso-tstyle-colband-size:0; mso-style-noshow:yes; mso-style-priority:99; mso-style-qformat:yes; mso-style-parent:""; mso-padding-alt:0cm 5.4pt 0cm 5.4pt; mso-para-margin:0cm; mso-para-margin-bottom:.0001pt; mso-pagination:widow-orphan; font-size:10.5pt; mso-bidi-font-size:11.0pt; font-family:"Calibri","sans-serif"; mso-ascii-font-family:Calibri; mso-ascii-theme-font:minor-latin; mso-hansi-font-family:Calibri; mso-hansi-theme-font:minor-latin; mso-font-kerning:1.0pt;} </style> <![endif]-->

PHPCON技术峰会成功召开

 

2013630日,上海Think技术社区举办的“2013 PHPCON 技术峰会”在上海华纳风格酒店国际会议厅隆重举行。本是阴雨连连的6月底,却在这日骄阳似火,恰似互联网行业技术领域火热的人气,恰似技术人员滚烫的热情。

大会邀请了高春辉,惠新宸,梁枫,马明练,夏绪宏,张东进,陈浩,匡萃彪,潘晓良,钱武星,王磊,吴振宇,张尔宁,庄表伟等一线PHP开发者、架构师作为嘉宾,与参会者一起探讨当今PHP语言的现状和未来。大会吸引了将近500名有丰富经验的PHP开发者的积极参与。

会议就PHP领域的主题进行了一系列的分享。分享内容包括:贴吧架构分享、快速构建PHP全文检索、PHP在百度、微博的LAMP性能优化之路、BUG FREEPHP开发实践分享、在WEB之外的PHP

Think技术社区 “板子”诙谐幽默的主持,分享人精彩的演讲,扣人心弦的抽奖,振奋人心的摇滚演奏,将大家带入了一次别出心裁的PHP大会之旅,犹如穿越一般。参会人员就分享内容不断提问,直到大会结束,大家都沉浸在探讨问题的活跃气氛中,以及幸运降临的喜悦之中。也有对抽奖意犹未尽的人员虎视眈眈于我们可爱的大象纪念衫、精致的雨伞、精美的眼镜等奖品,可以期待下次大会好运降临,或者通过我们的微博领取纪念品。

最后会议在梁枫风趣幽默的演讲中以及揭晓大奖的悬念中正式落幕。本次大会除了现场人员的参与,还有微博上的积极互动。大家纷纷表示不枉此行,希望可以多参加类似的活动。

 

1 大会现场

2 主持人板子

 

3 赞助商致辞

  

 大会福利多

话说Think社区有工作、有生活、有帅哥、有美女,五颜六色福利多多。一开场就给各美女派送纪念衫,不知道这是IT圈美女们的福利,还是IT圈众多男同志们的福利,不过更像是锅巴的福利,此时,只见他在“丛中笑”。IT圈内更不缺帅哥,板子就这样无奈的淹没在高大威猛的帅哥群中。

带着对大会的期待,在大家阵阵掌声中,2013PHPCON技术峰会正式拉开了帷幕。在此特别感谢安居客、2345、虎扑、网宿、中国电信、PHP.NET的大力支持,以及为活动付出辛劳的组委会成员和志愿者们。

 

4 给美女派送纪念衫

 

5 给帅哥派送纪念衫

 

 夏绪宏《贴吧架构分享》 

百度贴吧高级工程师—夏绪宏分享了,百度贴吧LAMP化及后续架构演进的一些经验。

贴吧是功能性产品,唯快不破是永恒的准则,所以快速迭代是需要解决的关键性问题。快速迭代,包括:开发阶段,快速开发;测试阶段,包含了环境快速搭建、自动化测试工具;运维阶段,包含了集群管理技术、自动化运维工具;同时,这三方面的工作需要一个整体性的解决方案衔接起来。

早期的贴吧,作为一个高性能社区,功能相对单一,全部采用C语言开发,系统可重用程度低,开发、测试效率低,运维方面的积累也很少。为了提高效率,开始尝试LAMP架构,经过几年的发展,贴吧已全部迁移到了LAMP。随着产品规模急剧膨胀,30+子系统,150+模块,500+机器,10亿+流量,在LAMP架构方面积累了很多经验,逐渐形成了快速迭代的一体化方案。

通过该LAMP解决方案,在开发、测试、运维方面都能极大的提高效率。未来在LAMP架构方面,需要更多的在规范化、平台化上下功夫。规范之后才能开展这种自动化的工作提高效率;平台化可以把各种规范固化下来,提供自动化的支持。

 

6 夏绪宏演讲现场

 

马明练《快速构建PHP全文检索》

 

马明练作为xunsearch技术总监,彩字秀创始人,Xungle站内全文检索创办者。职业网络开发工程师,热衷活跃于开源社区,PHP业界的技术牛人。这次大会给大家分享了全文检索的理论背景的介绍,并以 xunsearch 为例讲解如何快速构建 web 站点全文检索。本次xunsearch 是基于 xapian scws 分词的开源软件,重点支持 PHP-SDKAPI 简单清晰、上手快,是 PHP 开发者构建全文检索的最佳选择之一。

 

7 马明练演讲现场

 

 

张东进《PHP在百度》

    百度资深研发工程师张东进,介绍了5年来PHP在百度的应用历程,以及经验和教训。

在此,他强调,不谈技术,只谈思想。他总结的四大要点是:勿在浮沙筑高台,Just Try It,接口比实现重要,不能落地的规范都是耍流氓。

不要在浮沙上面建筑高台。基础不扎实,台筑的再高也会倒掉的,没有坚实的基础,是学不好的,搞不好的,张东进给大家推荐了码农领袖侯捷所著的书,《深入浅出MFC》。PHP是一门极好上手的语言,看似简单,其实又不简单。张东进列举了一道面试题来考验大家的PHP水平,勾起了大家的好奇(图8所示为张东进与参会人员互动的现场照片),很多人才发现自己对PHP的认识还是有限的,勿在浮沙建筑高台是学习的基础哲学。

流传谣言说,LAMP性能差,难以承担高压力,LAMP却解决了百科的困境,所以不要听信谣言,而是Just Try It,这也是工作跟学习过程中的一大哲学。

接口比实现重要,接口是模块间的耦合点,实现可以逐步优化,而接口最好在一开始就精心设计。任何需要调用者关注的东西都是接口,比如配置、部署方法和加载方法等,都要审慎考虑。

不能落地的规范都是耍流氓,如安全规范,编码规范,部署规范,分层规范,API规范,运维规范,URL规范等,难以推行,无疾而终。破解方法有:代码review,落实到基础库,落实到工具自动化检查。最后张东进总结道,上策:落地于无形,中策:自动监督,下策:人肉执行和监督,下下策:全凭自觉。人常常是不靠谱的,基础设施才是王道。

8 张东进与参会人员互动现场

 

乐队演奏

 三曲摇滚演奏,赶走了午后的疲惫,让人眼前一亮,为之振奋。程序员的振奋状态都比较保守,大家都处于大脑振奋,行为安静的状态。此时看到一条微博@贾胜謇:程序员的特质之一就是任你在台上再high,他们也能一直保持冷静,看摇滚和听交响乐是一样一样的。恰到其分的调侃了程序员们此时的状态。

9 乐队演奏现场

惠新宸《微博的LAMP性能优化之路》

    新浪微博架构师兼首席PHP技术顾问惠新宸,传说中的“鸟哥”,介绍了微博在LAMP优化上的一些经验。

最初的微博,日访问量巨大, 在业务高速增长期,架构一直没变,响应时间越来越慢,代码量庞大, 只做加法不敢做减法,开发成本大, 开发周期长。自2012年以来,做了很多优化,如:框架优化 - Yaf,配置优化 - Weibo,模板优化 - 弃用Smarty,并行化 - CBigpipe,结构优化,PL服务化 Yar等,使得首页响应时间降低了一半以上。

鸟哥对各种优化功能以及优化效果做了介绍,也强调技术保障规范的规范,才是真的规范。新浪微博的优化之路一直在继续,还有更多的优化空间等着去探索。

 

10 惠新宸演讲现场

 

高春辉《BUG FREEPHP开发实践分享》

有着丰富的互联网行业经验的高春辉,他是连续创业者,卓越网前身、手机之家、ECSHOP软件、爱壁纸应用创始人,是中国个人站长第一人。他从PHP框架、数据库以及服务器设置、以及 DevOps 角度来分享随着代码量的增加而不用担心半夜被报警声叫醒的实践之路。  

他提到程序员经常会遇到的一些问题,如页面报错、服务器当机,后半夜的催命电话,在数据库里总出现莫名其妙的数据,安全问题等。为什么会出现这些问题,可能是变量预期值不对或代码逻辑不对。如何知道 BUG?如何避免 BUG?所谓Bug Free,就要简洁、高效率、安全、无错误。要想 Bug Free,高春辉提到了DevOpsDevelopment Operations 的组合),它是一组过程、方法与系统的统称,用于促进开发(应用程序 / 软件工程)、技术运营和质量保障(QA)部门之间的沟通、协作与整合。它的出现是由于软件行业更多是互联网行业日益清晰地认识到:为了按时交付软件产品和服务,开发和运营工作必须紧密合作。

在这里,高春辉还提到了,写代码的时候要时刻注意的6个问题,19个重要的经验。他说,我们自己,走的更远:框架会 unset GETPOSTCOOKIE 等相关数据,对一些外来数据做初始化,比如 GET 操作下,FILES 变量会被清空,必须通过我们自己封装的方法进行外来数据的获取;我们针对前端 HTML 代码,分割静态资源并作自动优化,无须人工干预;文件储存实现了统一化,自动去重,这样对开发用户上传内容型的应用非常方便,而且一点都不用担心被上传注入;我们有专门的任务处理服务,通过 FastCGI 协议与前端进行通信,省掉 HTTP 层的开销;不仅 Web 是单一入口,任务处理、命令行和计划任务都做了单一入口。

高春辉还谈到对 PHP 未来功能的一些期望,如:原生更丰富的日志内容,可以记录比如 backtraceURLUAIPReferer 等等信息;好用的 Type Hinting,让我们可以实现想强类型就强类型,想弱类型就弱类型;统一的错误处理机制,对于一些错误不好处理。

 

11 高春辉演讲现场

 

梁枫《在WEB之外—PHP

现上海永大电梯传媒开发,前任台湾 StudyAreaTnLUGCOSCUP 组织活动干部,Zend PHP 认证工程师梁枫,他脱离WEB,从一个新的角度去探讨PHP的价值所在。

    PHP 不只能做 WEB,不只有WEB一条出路, 能做的很多很多,从生产线的出货管理、嵌入式系统样品的快速开发、到智能家居。其实,都有人不但利用 PHP 开发、管理,甚至在业界已经存在案例。

梁枫带领大家一起跳脱思维,把视野放宽,去了解PHP 真正的优势。在互动环节,梁枫还当场操作演示一些代码功能,可以说是在Think会议史上当着几百号人做演示的第一人。

12 梁枫跟参会人员互动现场

 

13 梁枫演示现场

 

抽的不是奖,而是心跳

     改变气质的大奖是什么?板子一开始就设下了悬念,所谓花几千块买台笔记本还是屌丝,但是这个奖品却能改变一个人的气质。 大奖只有一个,小奖品不少,看到一个个中奖的参会人员,雀跃的飞奔来领取奖品,也看到台下揪着袖子紧张的期盼幸运降临的参会人员,不禁感慨,抽的不是奖,而是心跳。

     最后悬念揭晓了,大奖落定,紧张的神经也放松了,改变气质的奖品就是高富帅级别的眼镜。

拍头像成了历届活动的特色,此次活动也不例外,首次参加Think大会的参会者都不理解入场前拍照的意义,现在终于发现,是作为抽奖的依据,没拍照的都后悔不已。此次锅巴设计的抽奖程序更炫了,赢得了程序员们的阵阵喝彩。

 

14 中奖者与锅巴、板子的合作

 

大会圆满落幕

2013PHPCON技术峰会在下午1700圆满落幕, 此次大会充分传播PHP最佳实践经验,

让许多技术人员们对PHP有了更深入的认识,让许多技术人员茅塞顿开。

15 Think工作人员合照

 

官方站点:http://www.Thinkinlamp.com

官方邮件组:http://groups.google.com/group/Thinkinlamp

Twitterhttp://twitter.com/Thinkinlamp

新浪微博:http://weibo.com/Thinkinlamp

 

猜你喜欢

转载自thinkinlamp.iteye.com/blog/1903859