当前位置: 首页 > news >正文

一个网站的建设步骤是做农业的公司管理网站

一个网站的建设步骤是,做农业的公司管理网站,2017网站发展趋势,做系统用什么网站好惠新宸#xff0c;百度PHP高级顾问,年二十有八#xff0c;好追根究底#xff0c;有不良嗜好, 幸性本善。乙酉年识互联网#xff0c;丁亥年入雅虎#xff0c;翌年入百度。虽性好安稳#xff0c;然经变无数#xff0c;唯常叹人生#xff0c;菠菜汤尔。 大家好#xff0c…惠新宸百度PHP高级顾问,年二十有八好追根究底有不良嗜好, 幸性本善。乙酉年识互联网丁亥年入雅虎翌年入百度。虽性好安稳然经变无数唯常叹人生菠菜汤尔。 大家好今天我主要介绍是PHP在百度一个发展历程最早的时候百度成立于2000年2000惠新宸百度PHP高级顾问,年二十有八好追根究底有不良嗜好, 幸性本善。乙酉年识互联网丁亥年入雅虎翌年入百度。虽性好安稳然经变无数唯常叹人生菠菜汤尔。大家好今天我主要介绍是PHP在百度一个发展历程最早的时候百度成立于2000年2000年的时候百度刚刚成立刚刚在北大资源宾馆建立百度直到2001年的竞价排名我不评价这个产品怎么样竞价排名当时是第一个采用PHP在百度的PHP系统。从2001年到今年已经10年时间了这10年时间百度PHP经历一些什么变化呢我们现在看到是百度那天我自己脑子里想了一遍当然不是全部大家能够知道的一些用户产品无线产品商业产品。包括贴吧这个比较大了还有最新的旅游。对于贴吧来说前端可能是CUI或者业务逻辑一直到后来已经迁到PHP。我列出来这些产品都是使用了PHP还有没列出来也是使用了PHP的很多。所以如果说让我去介绍每个产品是怎么用PHP的我觉得这个不太现实我一共只有30分钟。这30分钟我主要想跟大家分享的我们发现一些问题和怎么去解决这些问题是大家都会遇到的。我们最早的时候就像我刚才提到的我们一些因为处于最高性能要求以及对于PHP的不了解以及对于外部我们可能觉得PHP很慢所以我们以前的时候这些大的访问量产品都是用C来做的。他可能在模板上用Cu-i来做展现这样的方式大家都知道开发调试部署都很复杂成本也比较高门槛也比较高招人也比较难招。后来的时候我们就考虑是不是应该去换一个当时应该考虑要是JAVA或者是PHP。我们在C的时候C-ui和后面进程去通讯主要是Nsheader和mcpack类似于上面一些打包传输的方式。我们为什么选了PHP第一高性能快速开发要求。我这说高性能可能下面有一些工程师就笑了你PHP讲什么高性能。我说的这些高性能是在相对情况下高性能当我们WAP应用程序不仅仅局限PHP瓶颈更大在于数据和文件以及这些IO方面在这些方面来说PHP性能已经足够了。那么开放开发就不用说了PHP不需要编译不依赖于环境我所改即所建改了就能看到这个调试开发过程非常快这是一个优点。稳定性路棒性安全性怎么讲呢有一个玩笑我跟我们百度几个同学去聊天他们就抱怨PHP工程师真的是这个质量层次不齐再烂的PHP工程师写出的代也能跑跑完了也正常。这是从一个方面可能他的本意是说我们招聘有一部分人水平本来不一样。但是从另外一个方面也体现出来PHP一个特点是什么呢稳定鲁棒性很强。再烂再不懂PHP的新手去写你也不会把它写垮掉。说到这里我有一个小问题大家知道怎么PK掉一个PHP进程吗最简单的方式。其实这个问题还挺难的我跟我的朋友讲你们说怎么PK掉一个PHP进程我需要调试其实很简单你写一个无线递归下去就会打掉。PHP有很多安全措施比如我们颇为被人争议GPH选项打开之后会对客户进行过滤。还有PHP对输入做各种各样的转换验证这方面PHP对安全性考虑也是多的当然还有是不建议打开的那样的话更安全。灵活和丰富的语法就不用多说了一个PHP怎么写不需要特定格式随意性也非常强功能当然也很多了。他应用面这么广自然是一个例证。良好的运行在Linux可扩展C/C。PHP经典搭配是没有问题的我们都知道我们当时不选择JAVA一个原因还有一方面考虑JAVA那套开发环境比较复杂重启一下需要30-40秒。更重要一点可扩展因为我接下来讲的问题就是从可扩展来的我们的优化方案。当时我们就想因为PHP应用很多一个开源东西有很多方便第三方房展我们经常用的PDO都是扩展的方式并且他的扩展也非常容易开发网上有一堆教程只要你照着教程做一遍。因为PHP对扩展做的很好一行命令把自己代码写进去就是一个很完整的扩家一个扩展就能用。易部署易调试更不用说了PHP直接拷贝拷贝到哪都能够运行不需要依赖系统的共享库不会因为库的挂接处而出现问题调试也很容易调试最经典的方式不停调试我们还有一个PHP调试技术手册我相信在座很多人都看过那里面介绍一段做单布跟踪调试这样的调试今天在这里讲效率往往还不如直接调试快当时只是一种尝试或者说一种探索去跟大家分享调试的技术。展现逻辑分离这个也很重要对于PHP来说本身生来就是做WAP开发的可以把PHP代码嵌入到WAP里面去这个非常适合于做外部开发的。入门快刚才也提到了我们现在招聘新来这些大学生其实他以前可能是做JAVA是做C一周时间就可以开始写。所以入门非常快社区活跃这里我要提一下在我们百度就我所知有400多名做PHP开发我们这400多名工程师都在一个群里大家聊天问一个问题立马就有人来回答你这只是在百度社区更不用说开源社区活跃程度了。从这些方面我们就觉得PHP替换现在C的方式是可行的于是我们就有了经典的方案就像我这大家看到的用户浏览器经过的分发分发以后后台就是这样一个用PHP脚本下面可能有一些扩展再下面就是PIP后面数据因为这块对于开发来讲我这块主要从贴吧角度来讲它是服务其逻辑数据还是用一些比较快的还是以前那套老东西只不过把UI这一块做到PHP当然其他系统不是这样。这个时候后台像Web Services等等提供这种数据给PHP脚本这是一个现在这样一个应该说比较经典PHP开发模式或者在我们百度来说主要还是以这种方式PHP只是做展现。这样的情况下有一个问题什么问题比方说你是一个PHP工程师你的上级交给你一个任务你去写一个什么样的系统你把它部署下去。你刚来很有信心没问题我去做你用了一周时间写出来写完之后你用一天时间把环境搭起来把代码放上去四台服务器需要共享把这些东西都用完你可能用一周半时间没有问题你这个做的很好你这个东西也很正常架构也设计很好。现在这样的问题还有100个你怎么办难道你再去部署100次这不行吧。另外你做的东西放上去之后你可能出去玩了下班回家了那怎么监控呢谁去监控呢这也是现在单个产品线都要遇到的问题。还有一个问题资源流量陡增比方说你这个产品挺好的日均PV10万突然一天涨到100万大家都知道去年的时候69圣战贴吧经过一次所谓69圣战流量爆增了多少不知道但把服务器给压死了。那么遇到流量陡增怎么办不能说现在这个产品10万前台上了100台前台机我告诉老大我这个流量某一天陡增10谁信啊成本也受不了这也是一个问题。规范和标准这是最头疼的我到百度以后参与了很多规范制定也会提很多意见我每次做这些事情的时候我都是信心慢慢的我觉得做完之后大家看了之后会去用会去学可能咱们普遍共同语言就会多一点。但是发现你标准规范制定出来没人理这就是规范一个怎么去执行当然这个问题很难了另外一个问题这也是我们现在遇到的问题我们有编码规范有部署规范有目录规范但是没有办法推卸没有一个东西去强制让他们这么去做。还有防攻击容灾你有4台前端机仅仅4台某个不知名相关组织弄了100多台僵尸肉鸡去压你你有什么办法没有办法你只能被攻击。还有一个问题我们现在产品线这么多每个产品线使用的框架各不相同开发模式各不相同这就造成他们都是异构的异构会有什么问题OP会很郁闷。OP遇到每个产品线有的配置文件在这放有的配置文件在那放就像我们UC就得为各种各样框架命名规则开发一个不同类库。快速开发我就要求我的基础设施足够丰富我基础设施足够丰富的情况下才能做到快速开发我框架功能要很强这样开发才会快。但是你框架功能很强就带来一个问题你代码多就慢PHP就这样怎么办这也是一个根本矛盾。这些问题有没有解决方案呢当然是有的要不然我也不会拿出来讲了。在百度现在对于前面的问题比方说运维部署和容灾一些流量陡增这些问题怎么办呢看最右边一个Bae就是百度应用开发平台在这个上面会做一些类似于GaeSae这样的东西目前来说只是百度内部用。这样的话当我用了这个东西之后我们开发者不再要求需要关心资源也不需要关心被攻击或者流量陡增这个我待会还会讲。我们在PHP这层加了一个小螃蟹它的名字叫做AP我待会会介绍AP是什么样东西。然后在脚本和PHP之间又加了一层Odp又是什么东西这三个就是解决我刚才提到哪些问题。Bae我刚才提到是来解决我们刚才说的那些问题比方说我资源怎么管理流量陡增没法应付了怎么办。Bae把所有资源统一调度起来提供一个很大平台给你你其中只用一部分他会把冗余资源调配节给你满足你陡增的资源需求。集群化还有一个问题是防攻击我现在是三大服务器有人来压我了他拿100台肉鸡来压我没有关系我们百度后面还有1千台服务器呢上你再来压。如果他真的强大到拿1万台1千万台来压你这样成本在国内很难做到。所以这样情况下能解决我们刚才所说小规模攻击因为你攻击我就可以迁移我可以自动迁移。流量陡增也是一样道理太多。接下来就是今天我要介绍的重点就是怎么解决沉重的框架问题。我们现在用的很多框架各个公司开发都会有用框架也有自己开发框架。在做开发框架的时候大家都会遇到一个问题这个框架要不要做的这么重为什么要做的重呢因为你工作要提供的多要提供路由提供搜索引擎还有ORM等等这样东西。我提供这么多东西必须有这么多的代码我有那么多代码就那么多逻辑就有一个结果慢了下来怎么取舍呢对于百度来说我们现在解决方案出来之前流行两种开发模式一种比较成熟E框架或者ZF框架还有性能要求比较高的会使用我们百度自己开发的B-Gou框架只做路由是一个轻量级框架是一个非常非常轻量框架来满足性能问题。有没有一个解决方案做他们俩的取舍呢下面有一个扩展化。什么是扩展化在座都知道PHP扩展如果关心这个肯定会知道可能也有不知道同学我就提一下什么是PHP的扩展。PHP本身是用C语言写的你所编写的PHP脚本到最后都是通过C代码执行的这时候PHP还提供一种方式可以直接写用C来写一个共享库动态的共享库把它加载到PHP中通过这种方式让你业务模式以C模式存在在PHP当中这个模式就叫扩展PHP提供一个很强大模块来支持你自己PHP扩展。我刚才提到了其实问题也就很明显了我们需要用一个PHP扩展去做一个很重的PHP框架。还有一个要提的什么样的情况下我们应该使用扩展还有一个问题扩展为什么会快这两个问题有些看似很简单问题其实要想起来还是挺难的。第一什么样的情况下我们可以使用扩展我们有两种方式是需要扩展第一种方式我们有一些比方说已经成熟的C库我们PHP许多办法直接用我必须用一个扩展把它桥接过来这种情况下需要使用PHP扩展。还有一种情况我对CPU密集型的东西比方说我有一个算法或者我有一个很复杂很复杂的加密算法。这个算法如果我用PHP写的话非常慢对于这种CPU密集型的东西我是可以把它扩展化用C来实现这样的话能提高性能就这两种方式要去使用PHP扩展。PHP扩展为什么会快呢这里我要提一下FaceBook极致去年11月份极致把一个应用性能提高到4倍他是怎么做到的呢我们大家听各种各样报告是把PHP编译成C他这个编译其实不是说我根据你的逻辑找到对应的C代码进行编辑他做的更多是把这个符号解析给拿掉了。我们在PHP里面我们的变量我们的函数都是存储在一个一个关联数字结构里面他这个结构设计足够精妙确实也花很大心思去设计但是当我们使用一个变量或者一个方式的时候都需要从这个表里面去查的这个过程是非常耗时的。所以PHP性能绝大部分低也是这个关键。PHP就把能在编译期间确定的符号就把它直接替换掉相当于我们C程序编译的时候把符号直接换成二进制地址的一样就是一个符号回天。这只是一方面还有一方面为什么扩展会比PHP快这个我们抛开一切问题一切IO抛开一切内存存储我们来算一个简单算术题一个1G赫兹CPU能编织多少这也是PHP比较慢一个原因。比方说一个简单ICOU(音译)如果你用C代码来写直接写ICOU2也可以如果PHPICOU2先编译第二部分先分析这个PHP找到对应PHP调用这个时候有三种情况这时候拿到一个指令进行执行当执行这次指令的时候可能会发生多次调用。我一个简单的ICOU可能在PHP最后执行的时候可能有5次以上函数调用这个就慢了扩展化就可以避免这些问题。我们Ap就是一个全功能MVC框架是用扩展来实现也就是利用C语言去写的一个PHP扩展。这个地方又有一个问题我们扩展一般也两种理由去写扩展扩展还分两类第一类就是说一个简单我的业务逻辑都是用C代码去做的我只是简单从PHP脚本拿到数据把处理结果反给PHP我基本上不怎么使用Ap。第二个扩展就是负载PHP扩展就是Ap用了大量API提供相应存量或者是一些资源给PHP脚本让用户去进行使用。本文原创发布php中文网转载请注明出处感谢您的尊重
http://wiki.neutronadmin.com/news/264666/

相关文章:

  • 重要的网站建设在线做分析图的网站
  • phpcms 网站路径网站开发明细报价表
  • 网站建设实训进程计划专业建设网站公司哪家好
  • 简单的asp网站源码WordPress 教育模板
  • 山东网站开发学校怎么制作商城小程序
  • 做外贸生意最好的网站网络运营策划
  • 做门户网站cmswordpress yusi
  • 留学网站建设网络公司的推广
  • 做网站很火的APP万网 网站建设
  • 专业做室内设计的网站有哪些内容wordpress不显示网站标题
  • 济南网站搭建公司青岛seo推广
  • 网站文章收录查询山西建筑工程集团有限公司
  • 定州网站建设兼职服装行业做推广网站
  • 着力规范网站集约化建设wordpress 留言插件
  • 做网站的流程知乎北戴河区建设局网站
  • pac网站代理seozhun
  • 北理离线《网站开发与应用》平面网页设计教学
  • 网站开发常用js函数官方网站下载拼多多
  • 备案中的网站名称微信开发公司怎么样
  • 网站域名注册哪家好东莞排名推广
  • 网站免费制作教程珠海高端网站建设
  • 阳春做网站公司学习做网站多久
  • 如何让网站火起来wordpress 获取当前文章id
  • 做网站美工工资多少wordpress首页文章显示固定分类
  • 网站筑云做关键词网站建设哪里找
  • 广西南宁建设银行最新招聘网站wordpress的插件下载地址
  • 网站建设需求量深圳住房与建设局网站
  • 自适应型网站建设费用邢台做wap网站的公司
  • 滨海新区建设网站平面设计公司赚钱吗
  • 响应式网站头部企业网站改版建议