"

                            ✅万博manbext|体育首页✅㊣全球最大,最信誉的线上综合平台✅万博manbext|体育首页✅千款游戏,砖石级服务,万博manbext|体育首页,欢迎各界玩家加入体验!

                                                      "
                                                      资讯:IT行业激荡30年->技术与架构演进(强哥畅聊)
                                                      作者:强官涛   类型:学院动态    类别:资讯   日期:2020-04-03    阅读:4244 次   消耗积分:0 分




                                                      大家好,我是强哥万博manbext|体育首页万博manbext|体育首页万博manbext|体育首页,我是一名程序员万博manbext|体育首页。我始终相信“技术改变生活万博manbext|体育首页,研发构建未来”。


                                                      今天是“IT行业激荡30年”系列文章的第四篇(前三篇文章请猛戳这里“IT行业激荡30年->编程语言变迁史”万博manbext|体育首页,“IT行业激荡30年->改变世界的程序员们”万博manbext|体育首页,“IT行业激荡30年->技术改变生活”)。今天这篇文章万博manbext|体育首页,我试图用一种相对容易理解的方式来聊一聊这30年来IT软件和互联网应用开发的技术和架构万博manbext|体育首页万博manbext|体育首页。毕竟涉及到的是比较技术性的话题万博manbext|体育首页,但是我还是尽最大努力写得通俗易懂一些。


                                                      90年代万博manbext|体育首页,IT行业正式在国内生根发芽万博manbext|体育首页万博manbext|体育首页万博manbext|体育首页,互联网也是90年代后期慢慢进入大众视线,中国如此,美国也差不多万博manbext|体育首页,略早小几年而已万博manbext|体育首页万博manbext|体育首页。所以万博manbext|体育首页,90年代的软件开发万博manbext|体育首页万博manbext|体育首页,通常不是以互联网应用为主,而是单机程序单机应用。单机应用怎么开发呢?其实比较简单,就是用一门编程语言,直接绘制一个界面万博manbext|体育首页,通过调用操作系统底层的接口来实现一些功能就可以了万博manbext|体育首页万博manbext|体育首页。比如音乐视频播放器,杀毒软件,输入法万博manbext|体育首页,办公软件(如Office或WPS等)万博manbext|体育首页万博manbext|体育首页万博manbext|体育首页,单机游戏。所以这类软件其实不存在什么架构可言万博manbext|体育首页,主要是功能驱动型软件,如果非得要画张图来展示这类软件的工作机制的话,也比较简单万博manbext|体育首页。


                                                      20200403_143437_248.jpg


                                                      这类单机软件时至今天万博manbext|体育首页万博manbext|体育首页,依然存在万博manbext|体育首页,比如很多操作系统内置的软件万博manbext|体育首页,也都是属于这类单机软件。这个时候的程序员,在开发软件时主要学习的技术只有两个:一是操作系统底层类库(比如Windows操作系统的MFC,或者Linux操作系统的QT,或者针对图形图像处理的DirectX和OpenGL等),这类库主要解决了对操作系统底层能力的封装万博manbext|体育首页,使开发过程更加快捷万博manbext|体育首页,事实上,即使软件开发技术发展到今天,依然无法超越操作系统万博manbext|体育首页,所以底层库的调用一直存在且必须。只是很多新的编程语言或编程框架将这类库进行了再封装万博manbext|体育首页万博manbext|体育首页,使编程过程变得比较简单而已万博manbext|体育首页?;剐枰暗囊幻偶际醯比痪褪潜喑逃镅员旧砹送虿﹎anbext|体育首页,除了编程语言本身的特性(如控制结构万博manbext|体育首页,面向对象万博manbext|体育首页万博manbext|体育首页,函数库万博manbext|体育首页,扩展库)等万博manbext|体育首页,还需要了解如何绘制界面万博manbext|体育首页,如何操作按钮万博manbext|体育首页万博manbext|体育首页万博manbext|体育首页,文本框万博manbext|体育首页,如何打开对话框,如何播放音乐视频万博manbext|体育首页,如何美化窗口样式等万博manbext|体育首页万博manbext|体育首页万博manbext|体育首页。这两个问题解决了万博manbext|体育首页,就具备足够的能力开发一个单机应用了。单机应用开发人员万博manbext|体育首页,对架构方面不需要有什么心得体会,无非就是把界面弄得漂亮一点万博manbext|体育首页,把功能做得丰富一点万博manbext|体育首页万博manbext|体育首页,优化一下CPU和内存消耗就差不多了万博manbext|体育首页。


                                                      95年左右,互联网开始萌芽万博manbext|体育首页万博manbext|体育首页,三个技术的标准化让互联网应用变成可能,一是HTTP协议(也就是今天在应用最为广泛的应用层通信协议万博manbext|体育首页万博manbext|体育首页,其地位可与TCP/IP层协议媲美万博manbext|体育首页万博manbext|体育首页万博manbext|体育首页,无论是Web应用万博manbext|体育首页,还是网络应用或者是App万博manbext|体育首页,一定优先使用或者全部使用HTTP或HTTPS协议进行应用间通信)万博manbext|体育首页万博manbext|体育首页万博manbext|体育首页。二是HTML(也就是在浏览器内可以解析的一堆指令集合万博manbext|体育首页,让浏览器可以通过解析HTML来渲染出一个网页界面),三就是浏览器(最开始主要是网景公司推出的Netscape浏览器万博manbext|体育首页,后来微软加入竞争万博manbext|体育首页,此处先不表细节)万博manbext|体育首页。一个互联网应用能够真正产生价值万博manbext|体育首页万博manbext|体育首页,这三者缺一不可。而在互联网领域万博manbext|体育首页,由于是多用户访问万博manbext|体育首页,所以形成了早期标准的B/S架构(Browser-Server)万博manbext|体育首页万博manbext|体育首页万博manbext|体育首页,用图表示如下万博manbext|体育首页万博manbext|体育首页。


                                                      20200403_143503_322.jpg


                                                      注意万博manbext|体育首页万博manbext|体育首页万博manbext|体育首页,所有的通信过程都是双向通信,通过B/S架构慢慢地让程序员开始思考架构层面的东西万博manbext|体育首页万博manbext|体育首页,架构设计开始萌芽万博manbext|体育首页万博manbext|体育首页。既然有B/S架构,当然也有C/S架构,既然有服务器的支持万博manbext|体育首页万博manbext|体育首页万博manbext|体育首页,需要使用网络协议万博manbext|体育首页,为什么只能使用HTTP协议呢万博manbext|体育首页万博manbext|体育首页万博manbext|体育首页?


                                                      其他使用哪种协议通信完全是程序员们讨论的结果万博manbext|体育首页,并不能指责谁好谁坏万博manbext|体育首页。比如一些之前的单机应用,加上一个服务器端的通信处理万博manbext|体育首页,是不是也可以变成多终端应用了呢?当然可以啊万博manbext|体育首页,比如咱们玩的端游万博manbext|体育首页,就是一个典型的C/S架构的应用万博manbext|体育首页万博manbext|体育首页?万博manbext|体育首页万博manbext|体育首页?梢远嗳俗槎釉谙咭黄鹜嫱虿﹎anbext|体育首页万博manbext|体育首页,互相之间就需要依赖于服务器进行数据同步和中转。但是端游需要借助于操作系统的显卡和其他硬件的能力,所以需要直接调用操作系统底层接口万博manbext|体育首页,显然浏览器是不具备这种能力的(因为浏览器出于安全考虑,都运行于浏览器沙箱环境万博manbext|体育首页万博manbext|体育首页,与操作系统进行完全的隔离,不允许浏览器操作操作系统万博manbext|体育首页,否则大家可以想象一下万博manbext|体育首页万博manbext|体育首页,你访问的网页可能全是病毒)万博manbext|体育首页。所以对于端游这类C/S应用万博manbext|体育首页万博manbext|体育首页,无法借助于浏览器进行处理万博manbext|体育首页万博manbext|体育首页,那么就自己开发客户端万博manbext|体育首页,再与服务器通信即可。而自己开发客户端的过程万博manbext|体育首页万博manbext|体育首页万博manbext|体育首页,与开发一个单机应用的过程本质上是没有任何区别的万博manbext|体育首页。比如Foxmai万博manbext|体育首页万博manbext|体育首页,Outlook万博manbext|体育首页,QQ等这类应用万博manbext|体育首页,也是属于C/S架构的应用万博manbext|体育首页万博manbext|体育首页。


                                                      20200403_143529_950.jpg


                                                      那么C/S架构的C端与服务器如何进行通信呢万博manbext|体育首页?使用什么协议比较好呢?其实这就完全根据自己的系统的需求来定了,比如直接使用TCP或UDP进行通信万博manbext|体育首页万博manbext|体育首页,也可以使用HTTP协议通信(跟浏览器一样的通信方式在C/S中也是可以的)万博manbext|体育首页,再比如自定义一个应用层协议(如QQ的应用层协议叫OICQ)万博manbext|体育首页万博manbext|体育首页万博manbext|体育首页万博manbext|体育首页,或者使用特定的通信协议完成特定的功能(比如Foxmail万博manbext|体育首页,Outlook这类软件则主要基于SMTP,POP3等这类邮箱通信协议)万博manbext|体育首页。所以B/S架构的通信协议必然是HTTP(或衍生协议)万博manbext|体育首页万博manbext|体育首页,而在C/S架构中万博manbext|体育首页,则可以选择任意协议进行通信万博manbext|体育首页,但是在互联网上无论哪种协议,通常我们指的都是应用层协议,其底层协议都是TCP/IP协议模型万博manbext|体育首页,殊途同归万博manbext|体育首页万博manbext|体育首页。


                                                      现在我们所熟知的B/S架构万博manbext|体育首页,大量应用于手机App和Web应用中万博manbext|体育首页,也成为了应用系统开发的首选模型,因为基于HTML和HTTP两个标准的规范支撑万博manbext|体育首页万博manbext|体育首页,具备多方面的优势。


                                                      1. 直接编写HTML界面,用CSS进行美化和排版处理,剩下的工作万博manbext|体育首页万博manbext|体育首页万博manbext|体育首页,交给浏览器来处理即可万博manbext|体育首页⊥虿﹎anbext|体育首页万博manbext|体育首页?梢源蟠筇岣呖⑿释虿﹎anbext|体育首页,因为浏览器是标准化的产品。

                                                      2. 正因为浏览器是满足W3C委员会制定的标准化产品万博manbext|体育首页万博manbext|体育首页万博manbext|体育首页,所以Web系统的兼容性天生很好,无论运行于Windows万博manbext|体育首页万博manbext|体育首页万博manbext|体育首页,Linux或者Mac上,或者是手机端万博manbext|体育首页,只要是通过浏览器来渲染和处理万博manbext|体育首页,那么无论哪个平台上的浏览器都是标准化的万博manbext|体育首页,都是可以正常渲染出页面来的万博manbext|体育首页。

                                                      3. 更新方便,基于浏览器的应用万博manbext|体育首页,如果有版本更新只需要更新服务器端即可万博manbext|体育首页,不需要通知用户去更新客户端万博manbext|体育首页万博manbext|体育首页,因为客户端本身就是浏览器万博manbext|体育首页万博manbext|体育首页。而如果是C/S架构的话,则客户端需要做同步更新才行万博manbext|体育首页。比如说今天我们在手机上安装的很多App,是不是经常通知我们更新,是不是感觉很烦?但是你用浏览器去访问一个页面万博manbext|体育首页,从来没有通知你说要去更新一个网站万博manbext|体育首页万博manbext|体育首页万博manbext|体育首页,对吧万博manbext|体育首页万博manbext|体育首页。

                                                      4. 但是B/S架构并不都是好处万博manbext|体育首页,对于一些轻量级的应用是没有任何问题的万博manbext|体育首页,但是对于重型应用万博manbext|体育首页万博manbext|体育首页万博manbext|体育首页,由于受限于浏览器的沙箱环境万博manbext|体育首页,与操作系统完全隔离万博manbext|体育首页,所以我们没有办法在浏览器里面运行一些大型应用(比如大型游戏就不可能在浏览器中运行)万博manbext|体育首页,或者是一些底层软件(比如杀毒软件等)万博manbext|体育首页,在一个网页中是不可能运行起来的万博manbext|体育首页万博manbext|体育首页。为了提升浏览器的运行能力万博manbext|体育首页,业界也想了很多办法,比如微软的ActiveX万博manbext|体育首页万博manbext|体育首页,或者Adobe公司的Flash/Flex等(两个技术在业界者有点臭名远播,无论安全性还是兼容性万博manbext|体育首页万博manbext|体育首页,都存在很多)。所以这类技术目前已经基本被抛弃万博manbext|体育首页。


                                                      对于能够直接操作操作系统的应用程序万博manbext|体育首页万博manbext|体育首页,我们通常称之为“原生应用”万博manbext|体育首页万博manbext|体育首页万博manbext|体育首页,Native App万博manbext|体育首页,今天万博manbext|体育首页,我们在手机上经惩虿﹎anbext|体育首页?吹秸庖幻?万博manbext|体育首页,其实这本身并不是手机端的发明万博manbext|体育首页,在PC端的单机应用万博manbext|体育首页,C/S应用万博manbext|体育首页,均可以称之为原生应用万博manbext|体育首页,手机端只是移植了一下这个技术体系而已万博manbext|体育首页。那么与之对应的万博manbext|体育首页,在浏览器中运行的应用万博manbext|体育首页万博manbext|体育首页万博manbext|体育首页,称之为“Web应用”,Web App,同样万博manbext|体育首页万博manbext|体育首页,PC端和手机端都存在这种应用体系万博manbext|体育首页万博manbext|体育首页万博manbext|体育首页,而且所有的软件开发技术,都是在PC端上先行应用起来了万博manbext|体育首页万博manbext|体育首页。


                                                      既然B/S和C/S都存在各种不足万博manbext|体育首页万博manbext|体育首页,而Flash和ActiveX这类试图把B/S变成具备B/S特性又具备C/S处理能力的技术又广受差评,那么有没有别的解决方案了呢万博manbext|体育首页?当然是有的,IT领域这帮聪明的程序员们,又想出来一个新的办法万博manbext|体育首页万博manbext|体育首页万博manbext|体育首页,那就把Web应用嵌入到C/S原生应用里面万博manbext|体育首页,通过把一个通常称之为Webview的控件放到一个原生应用里面万博manbext|体育首页,这样既可以通过Webview来访问一个网站的内容万博manbext|体育首页,又可以在需要的时候利用C/S架构的C端来直接操作操作系统。这类应用我们称之为“混合应用”万博manbext|体育首页,Hybrid App。比如我在2006年的时候用Delphi开发一个桌面小程序万博manbext|体育首页万博manbext|体育首页,就是一个标准的混合应用。在一个C/S应用程序上加入对网站的访问能力万博manbext|体育首页。


                                                      20200403_143543_839.jpg


                                                      当时我为了方便平时进行各种搜索万博manbext|体育首页万博manbext|体育首页,所以开发一个小工具给自己用万博manbext|体育首页。直接启动这个应用,想搜索什么内容直接输入,选择从哪个搜索引擎进行搜索即可万博manbext|体育首页万博manbext|体育首页。这个应用界面的上半部分就是原生应用,而下面展开后的界面,就是在这个原生应用里面内嵌了一个浏览器控件访问当时我开发一个网站(现在大家看到画面中已经无法成功访问了万博manbext|体育首页万博manbext|体育首页,因为域名和网站早就没有再维护了)万博manbext|体育首页万博manbext|体育首页。


                                                      这就是混合应用万博manbext|体育首页万博manbext|体育首页,无论是PC端万博manbext|体育首页万博manbext|体育首页,还是手机端万博manbext|体育首页,混合应用都是比较流行的一种应用开发方式万博manbext|体育首页万博manbext|体育首页,可以兼具B/S和C/S架构的所有功能。今天我们看到的QQ万博manbext|体育首页,微信电脑端万博manbext|体育首页万博manbext|体育首页,或者微信小程序等,本身都是一个标准的混合应用万博manbext|体育首页万博manbext|体育首页。


                                                      而光有单纯的B/S和C/S万博manbext|体育首页,根本无法支撑一些网站和企业级应用,为什么呢?没有数据库啊万博manbext|体育首页,怎么存数据呢万博manbext|体育首页?用户要访问万博manbext|体育首页,要使用系统万博manbext|体育首页万博manbext|体育首页,必须会产生很多数据万博manbext|体育首页万博manbext|体育首页万博manbext|体育首页,数据得有个地方存起来啊。所以万博manbext|体育首页,严格意义上的B/S或者C/S,其实在架构中还少了一个环节万博manbext|体育首页,数据存储万博manbext|体育首页万博manbext|体育首页。改进后的三层架构如下万博manbext|体育首页。


                                                      20200403_143558_006.jpg


                                                      来说一说数据库,数据库本质上就是指一个可以永久保存数据的地方,所以并不特指关系型数据库万博manbext|体育首页万博manbext|体育首页万博manbext|体育首页,而是只要能保存数据就行。比如早期使用一个文本文件来保存数据,或者使用XML文件或者Excel文件或者Access文件数据库来保存数据都是可以的。只是后来大家发现通过文件来保存数据操作的过程并不是特别方便万博manbext|体育首页万博manbext|体育首页,而且性能堪忧万博manbext|体育首页,所以后来使用关系型数据库来保存数据,关系型数据库可以更好的描述数据结构,数据之间的关系,并且通过标准的SQL查询语句也可以进行高效的查询万博manbext|体育首页万博manbext|体育首页,性能也很不错。事实上万博manbext|体育首页,今天的关系型数据库已经很难承受高并发处理能力,还需要在架构上进行优化,后面一点我再细说万博manbext|体育首页。


                                                      引入了关系型数据库后万博manbext|体育首页万博manbext|体育首页,基本上算是给各类应用系统插上了飞翔的翅膀万博manbext|体育首页,上述的三层架构基本上伴随着这30年来所有网络应用系统的发展万博manbext|体育首页万博manbext|体育首页,后续的更多的架构衍生和优化,也都是基于上述三层架构进行修补而已万博manbext|体育首页,本质上没有任意变化万博manbext|体育首页万博manbext|体育首页万博manbext|体育首页。三层架构的广泛应用万博manbext|体育首页,让所有的IT系统都得以解决实际生活和工作中的几乎所有场景万博manbext|体育首页万博manbext|体育首页,也因此万博manbext|体育首页万博manbext|体育首页,让企业级应用万博manbext|体育首页万博manbext|体育首页,电子商务,各类网络应用等所有今天看到的应用系统类型得以真正产生实用价值万博manbext|体育首页万博manbext|体育首页。比如金融行业各类系统,企业ERP系统万博manbext|体育首页,CRM系统万博manbext|体育首页万博manbext|体育首页,电子商务,在线支持万博manbext|体育首页,物流系统,制造业MES系统万博manbext|体育首页万博manbext|体育首页万博manbext|体育首页,网络游戏,或者最近的小区健康二维码等等,其核心都是数据资产的合理管理万博manbext|体育首页。包括最近微盟被运维人员删库这些事情万博manbext|体育首页万博manbext|体育首页,足以见得数据所产生的价值。也正因为如此万博manbext|体育首页万博manbext|体育首页,Oracle这家生产数据库起家的公司这些年才能赚得盆满钵满万博manbext|体育首页,才能这么嚣张,有恃无恐万博manbext|体育首页。


                                                      哎万博manbext|体育首页万博manbext|体育首页,说到这里万博manbext|体育首页万博manbext|体育首页,又不得不说一说自己的国家万博manbext|体育首页万博manbext|体育首页万博manbext|体育首页,在这些方面的薄弱和无力万博manbext|体育首页万博manbext|体育首页。数据库至今被美国几家公司垄断万博manbext|体育首页,一家是Oracle万博manbext|体育首页万博manbext|体育首页,扔有MySQL和Oracle两条数据库产品线万博manbext|体育首页,一家是IBM,拥有Infomix和DB2两条数据库产品线万博manbext|体育首页万博manbext|体育首页,还有一家是微软万博manbext|体育首页,拥有Acces和SQL Server两条产品线万博manbext|体育首页。不过好在MySQL有开源版本,才能让这么中小企业可以不受这几家大公司的威胁万博manbext|体育首页万博manbext|体育首页。


                                                      关于MySQL,Java与Oralce和IBM甚至微软等这几家牛逼的软件公司之间的故事,那完全可以写成一本小说万博manbext|体育首页万博manbext|体育首页,各中纠葛,分分合合万博manbext|体育首页,有兴趣的朋友不妨去查一查万博manbext|体育首页万博manbext|体育首页,还挺有故事性的万博manbext|体育首页万博manbext|体育首页。


                                                      所以,这几年看到国内的数据库在慢慢起步万博manbext|体育首页,我是感到由衷的高兴,比如大多用于军方系统的达梦数据库,阿里云和华为发布的自研数据库等,都让我们从业者能够感受到中国科技行业的进步万博manbext|体育首页万博manbext|体育首页万博manbext|体育首页。


                                                      希望这样的企业能够多一点万博manbext|体育首页万博manbext|体育首页,再多一点万博manbext|体育首页。当然万博manbext|体育首页万博manbext|体育首页万博manbext|体育首页,国内的科技公司但凡做出点成绩万博manbext|体育首页万博manbext|体育首页万博manbext|体育首页万博manbext|体育首页,网上总很多喷子舔狗要去嘲笑一番万博manbext|体育首页万博manbext|体育首页,然后再跪舔一下美国老爹,哎万博manbext|体育首页,帝国主义亡我之心不死啊万博manbext|体育首页。比如什么你自己开发的数据库,是关系型数据库吗万博manbext|体育首页?有本事别用关系型的啊,别用SQL啊万博manbext|体育首页,那是美国人的发明万博manbext|体育首页万博manbext|体育首页,又来骗补贴的万博manbext|体育首页万博manbext|体育首页?;蛘呤怯?万博manbext|体育首页,自己做芯片了万博manbext|体育首页万博manbext|体育首页,是用的ARM架构吗万博manbext|体育首页万博manbext|体育首页,有本事别用啊,不是原创啊万博manbext|体育首页万博manbext|体育首页,还好意思说自主研发万博manbext|体育首页万博manbext|体育首页?又或者是操作系统,哟万博manbext|体育首页万博manbext|体育首页,底层还是Linux啊,那你好意思说是自主研发万博manbext|体育首页?有本事从0开始搞一个操作系统巴虿﹎anbext|体育首页万博manbext|体育首页??这类言语就是纯粹的没文化的体现了万博manbext|体育首页,没有IT文化万博manbext|体育首页万博manbext|体育首页,大抵都是这么考虑问题的万博manbext|体育首页。当然,国内有些企业也真是犯贱,纯粹骗国家补贴的也真不少,妈的万博manbext|体育首页万博manbext|体育首页万博manbext|体育首页,不想说他们了万博manbext|体育首页万博manbext|体育首页,民族败类万博manbext|体育首页万博manbext|体育首页。


                                                      咱们继续,三层架构加上数据库后,让2000年到2010年这段时间的信息化建设如火如荼万博manbext|体育首页,基础架构问题解决了万博manbext|体育首页万博manbext|体育首页,编程语言万博manbext|体育首页万博manbext|体育首页万博manbext|体育首页,浏览器万博manbext|体育首页万博manbext|体育首页,服务器应用(比如Apache,PHP万博manbext|体育首页,Tomcat,Nginx万博manbext|体育首页,Weblogic万博manbext|体育首页,Apusic等等)万博manbext|体育首页,数据库等问题都变得成熟起来万博manbext|体育首页万博manbext|体育首页万博manbext|体育首页。那么企业信息化和网站开发就不需要关注这些基础技术了万博manbext|体育首页万博manbext|体育首页万博manbext|体育首页,只需要解决业务问题即可万博manbext|体育首页。这一时期,程序员从业人员越来越多万博manbext|体育首页万博manbext|体育首页,除了技术人员外万博manbext|体育首页万博manbext|体育首页,软件企业里面另外一个角色也变得越不可或缺万博manbext|体育首页万博manbext|体育首页,那就是需求分析师万博manbext|体育首页万博manbext|体育首页。得懂业务啊万博manbext|体育首页万博manbext|体育首页万博manbext|体育首页,比如你开发一个银行系统万博manbext|体育首页,你得知道银行原来是怎么运转的啊万博manbext|体育首页,流程是什么。


                                                      你开发一个供应链SCM系统万博manbext|体育首页万博manbext|体育首页,你得知道供应链管理是怎么回事啊万博manbext|体育首页。程序员哪懂这个万博manbext|体育首页万博manbext|体育首页万博manbext|体育首页,所以需要配合需求分析师万博manbext|体育首页万博manbext|体育首页,就是懂产品业务逻辑的人。这类人大抵都成长为后来的项目经理或产品经理万博manbext|体育首页,他们可以不懂技术万博manbext|体育首页,但是必须要懂业务万博manbext|体育首页万博manbext|体育首页。说到产品经理万博manbext|体育首页,吐槽一下有些培训机构万博manbext|体育首页,号称能培养产品经理万博manbext|体育首页万博manbext|体育首页,之前我也有学生跑来找我说我不想学技术万博manbext|体育首页,我想做产品经理。我说你懂哪个行业的产品呢万博manbext|体育首页万博manbext|体育首页?他说产品经理不就是画画流程图,找人聊聊天万博manbext|体育首页万博manbext|体育首页万博manbext|体育首页,顺便吹吹牛逼就可以了吗万博manbext|体育首页万博manbext|体育首页?


                                                      我想说的是万博manbext|体育首页,产品经理比技术更难万博manbext|体育首页,但是很多时候又很难体现出产品经理的价值万博manbext|体育首页,大家不妨去看看,那些牛逼的产品经理,最开始都是从什么领域成长起来的万博manbext|体育首页。没有个几年对某个行业手深刻理解,做什么产品经理呢?那叫产品助理,给产品经理打打杂是可以的万博manbext|体育首页。


                                                      产品经理,必须经过行业的洗礼万博manbext|体育首页,不是一个培训机构或者一个应届毕业生可以做成的万博manbext|体育首页。产品经理的培训万博manbext|体育首页万博manbext|体育首页,有一段时间还挺火的万博manbext|体育首页,无非就是培养一下互联网思维万博manbext|体育首页,讲一讲怎么画个原型等万博manbext|体育首页,实在没有任何技术含量可言万博manbext|体育首页万博manbext|体育首页万博manbext|体育首页万博manbext|体育首页。很多应届毕业生万博manbext|体育首页,小白一个,信誓旦旦要做产品经理,那都是瞎扯,有没有成长起来的万博manbext|体育首页,当然有万博manbext|体育首页,但是是极少数万博manbext|体育首页。


                                                      大多数就是一个打杂的万博manbext|体育首页万博manbext|体育首页,画个原型图就能成长为产品经理万博manbext|体育首页,你觉得可能吗?我就是公司目前在线教育平台和内部运营管理系统的产品经理,那是我在教育培训这个行业深耕了11年的结果万博manbext|体育首页,要不然,我不可能知道我们需要开发什么东西万博manbext|体育首页,用系统来解决什么问题,设计什么样的产品出来万博manbext|体育首页万博manbext|体育首页万博manbext|体育首页。


                                                      说到这儿了万博manbext|体育首页万博manbext|体育首页,顺便提醒一下各位想去做产品经理的朋友万博manbext|体育首页,先好好在一个行业里面深耕几年万博manbext|体育首页,从技术做起(能够更快地找到自己的位置和价值)万博manbext|体育首页,然后慢慢地根据企业发展需要万博manbext|体育首页,做一个技术型的产品经理万博manbext|体育首页万博manbext|体育首页,既懂技术,又懂行业万博manbext|体育首页万博manbext|体育首页万博manbext|体育首页万博manbext|体育首页,这才是正道万博manbext|体育首页万博manbext|体育首页万博manbext|体育首页,这样的产品经理,才有根万博manbext|体育首页。千万不要被一些人给带偏了,最后吃亏的只会是自己万博manbext|体育首页万博manbext|体育首页。


                                                      行万博manbext|体育首页万博manbext|体育首页,言归正传万博manbext|体育首页万博manbext|体育首页万博manbext|体育首页,继续说一说架构的演进万博manbext|体育首页万博manbext|体育首页。有了三层架构做基础以后万博manbext|体育首页,企业万博manbext|体育首页万博manbext|体育首页、政府、事业单位万博manbext|体育首页万博manbext|体育首页、金融万博manbext|体育首页、医疗、制造、电商等等万博manbext|体育首页,各行各业的信息化建设加快了速度,好一顿投入万博manbext|体育首页,让2000年后的IT行业在中国高速发展万博manbext|体育首页万博manbext|体育首页,造就了IT行业繁荣的20年至今。但是当一个企业的信息系统越来越多以后,尤其是一些大型企业,什么ERP万博manbext|体育首页万博manbext|体育首页,SCM万博manbext|体育首页,MES,eHR,OA万博manbext|体育首页,Potal万博manbext|体育首页,官网万博manbext|体育首页万博manbext|体育首页万博manbext|体育首页、业务系统等等,系统特别多万博manbext|体育首页。于是乎出现了一些问题万博manbext|体育首页,导致企业和用户特别难受万博manbext|体育首页万博manbext|体育首页。


                                                      1. 系统与系统之间,数据是独立的,如何共享数据万博manbext|体育首页万博manbext|体育首页,很麻烦万博manbext|体育首页,还得搞个数据中转系统,来让多系统之间能够共享数据万博manbext|体育首页。

                                                      2. 一个员工要使用企业内部的各个系统万博manbext|体育首页万博manbext|体育首页万博manbext|体育首页,每一个系统都要先登录一次,特别麻烦。

                                                      3. 企业的系统可能找的是不同的软件公司来开发的,有用Java开发的,有用C#开发的万博manbext|体育首页万博manbext|体育首页,也有PHP开发的,甚至还有一些其他什么技术开发的,都有。要把这些系统整合起来万博manbext|体育首页万博manbext|体育首页,特别麻烦万博manbext|体育首页,也不太现实万博manbext|体育首页万博manbext|体育首页。


                                                      那么怎么解决这些问题呢万博manbext|体育首页,当然万博manbext|体育首页万博manbext|体育首页,通过单点登录(SSO)技术万博manbext|体育首页,可以解决不同系统之间多次登录的问题,但是这只是一个很小的问题万博manbext|体育首页。其他问题怎么办呢?异构系统之间的通信如何解决万博manbext|体育首页,多业务系统如何打通?这才是大问题。于是万博manbext|体育首页,基于WebService技术万博manbext|体育首页,业界提出了SOA架构(Service-Oriented Architecture,面向服务架构),它将应用程序的不同功能单元(称为服务)进行拆分,并通过这些服务之间定义良好的接口和协议联系起来万博manbext|体育首页万博manbext|体育首页。接口是采用中立的方式进行定义的万博manbext|体育首页,它是独立于实现服务的硬件平台万博manbext|体育首页万博manbext|体育首页、操作系统和编程语言的万博manbext|体育首页。这使得构件在各种各样的系统中的服务可以以一种统一和通用的方式进行交互万博manbext|体育首页。听起来是不是很美好万博manbext|体育首页,网上找了张图万博manbext|体育首页万博manbext|体育首页,将就着看一下。


                                                      20200403_143620_986.jpg


                                                      SOA架构的核心就是把一个应用系统搞成一个服务,通过企业总线来根据应用请求统一调度服务系统。应用系统不用关心后台服务是怎么回事万博manbext|体育首页万博manbext|体育首页万博manbext|体育首页,把企业内部的各个应用子系统全部整合起来万博manbext|体育首页,统一对外提供接口调用。同时,这种架构方式,使得应用系统之间相互独立又互相关联,在进行业务变更时可以不用动整个应用系统万博manbext|体育首页。SOA确实不太好解析,我百度了一个案例,给大家说明一下这种架构的优势就行了万博manbext|体育首页万博manbext|体育首页。


                                                      一个服装零售组织拥有 500 家国际连锁店万博manbext|体育首页万博manbext|体育首页,它们常常需要更改设计来赶上时尚的潮流万博manbext|体育首页万博manbext|体育首页。这可能意味着不仅需要更改样式和颜色万博manbext|体育首页,甚至还可能需要更换布料万博manbext|体育首页万博manbext|体育首页、制造商和可交付的产品万博manbext|体育首页万博manbext|体育首页万博manbext|体育首页。如果零售商和制造商之间的系统不兼容万博manbext|体育首页万博manbext|体育首页,那么从一个供应商到另一个供应商的更换可能就是一个非常复杂的软件流程万博manbext|体育首页。通过利用WebService 接口在操作方面的灵活性,每个公司都可以将它们的现有系统保持现状,而仅仅匹配WebService接口并制订新的服务级协定万博manbext|体育首页,这样就不必完全重构它们的软件系统了万博manbext|体育首页。这是业务的水平改变万博manbext|体育首页,也就是说万博manbext|体育首页,它们改变的是合作伙伴,而所有的业务操作基本上都保持不变。这里万博manbext|体育首页万博manbext|体育首页万博manbext|体育首页,业务接口可以作少许改变万博manbext|体育首页,而内部操作却不需要改变万博manbext|体育首页万博manbext|体育首页万博manbext|体育首页。


                                                      没怎么看懂是吧万博manbext|体育首页,没关系万博manbext|体育首页万博manbext|体育首页万博manbext|体育首页,现在已经2020年了万博manbext|体育首页,SOA架构也有点落伍了万博manbext|体育首页,现在我们基于SOA这种架构又进行了优化万博manbext|体育首页,现在叫“微服务架构”,也没听说过万博manbext|体育首页万博manbext|体育首页,正常万博manbext|体育首页,你不搞IT当然可以没听说过万博manbext|体育首页万博manbext|体育首页万博manbext|体育首页。但是只要你搞IT行业万博manbext|体育首页万博manbext|体育首页,一定听说过这个架构万博manbext|体育首页,也是目前企业尤其是大型企业系统的主要架构万博manbext|体育首页万博manbext|体育首页。我从蜗牛学院的教材里面找了两张图,给大家做个对比万博manbext|体育首页,你们感受一下。


                                                      第一张图是传统的三层架构的样子万博manbext|体育首页,这里面使用集群技术对服务器进行了水平扩展万博manbext|体育首页,就是服务器由多台电脑一起提供服务万博manbext|体育首页,来解决服务器端性能的问题万博manbext|体育首页万博manbext|体育首页。


                                                      20200403_143653_604.jpg


                                                      再来看看万博manbext|体育首页,对于微服务架构万博manbext|体育首页,又是怎么来解决问题的万博manbext|体育首页万博manbext|体育首页万博manbext|体育首页。


                                                      20200403_143705_674.jpg


                                                      微服务架构已将传统单体架构中的订单服务万博manbext|体育首页万博manbext|体育首页、商品服务万博manbext|体育首页万博manbext|体育首页、用户服务拆分为了独立的服务,其中的每一服务都是一个独立的应用万博manbext|体育首页,可以访问自己的数据库万博manbext|体育首页,这些服务对外提供公共的API万博manbext|体育首页,并且服务之间可以相互调用万博manbext|体育首页。


                                                      本文不讨论过深的技术架构万博manbext|体育首页万博manbext|体育首页万博manbext|体育首页,就是有一个感性认知万博manbext|体育首页,我简单说一个微服务的好处就行了,就是当系统负载比较大的时候万博manbext|体育首页万博manbext|体育首页,可能服务器扛不住压力,跨了万博manbext|体育首页万博manbext|体育首页万博manbext|体育首页。那么万博manbext|体育首页万博manbext|体育首页,在微服务架构模式下万博manbext|体育首页,如果夜间服务跨了万博manbext|体育首页万博manbext|体育首页,这并不影响商品服务和用户服务万博manbext|体育首页万博manbext|体育首页万博manbext|体育首页,系统一样可以继续提供服务万博manbext|体育首页,网站一样可以访问万博manbext|体育首页。


                                                      当然,针对不同的微服务,咱们也可以对微服务再进行集群万博manbext|体育首页万博manbext|体育首页万博manbext|体育首页,让每一个微服务都不会跨万博manbext|体育首页万博manbext|体育首页,即使跨了也有备份的服务器继续提供服务万博manbext|体育首页万博manbext|体育首页。这样就可以保证系统高性能的同时万博manbext|体育首页万博manbext|体育首页,还能提供高可靠性和高可用性万博manbext|体育首页。想想是不是很带劲万博manbext|体育首页,没错,确实是这样的万博manbext|体育首页。只是微服务架构的运维成本相对比较高万博manbext|体育首页万博manbext|体育首页,所以为了解决这些问题万博manbext|体育首页万博manbext|体育首页,咱们又提出了DevOps万博manbext|体育首页,持续集成万博manbext|体育首页,自动化运维等这些理念和技术万博manbext|体育首页,来解决运维的效率问题万博manbext|体育首页万博manbext|体育首页万博manbext|体育首页。


                                                      再往后一点万博manbext|体育首页万博manbext|体育首页,SaaS(Software as a Service万博manbext|体育首页,软件即服务),你看万博manbext|体育首页,又来一个服务万博manbext|体育首页万博manbext|体育首页,面向服务架构中的服务万博manbext|体育首页,微服务架构中的服务万博manbext|体育首页万博manbext|体育首页万博manbext|体育首页,软件即服务中的服务万博manbext|体育首页万博manbext|体育首页万博manbext|体育首页万博manbext|体育首页,看来这软件架构跟服务分不开了啊万博manbext|体育首页万博manbext|体育首页。确实是这样的万博manbext|体育首页万博manbext|体育首页,那么什么叫SaaS呢万博manbext|体育首页万博manbext|体育首页万博manbext|体育首页,其实这是比较简单好理解的万博manbext|体育首页,就是我给你开发一个软件万博manbext|体育首页,你不需要购买软件授权万博manbext|体育首页,也不需要在你的服务器上安装和部署万博manbext|体育首页万博manbext|体育首页,你直接租用我的软件就可以了万博manbext|体育首页。


                                                      比如你在淘宝上开个店,淘宝为你开发了一套卖东西的软件,你直接去淘宝注册成卖家万博manbext|体育首页,然后把商品一上架就可以开卖了万博manbext|体育首页万博manbext|体育首页万博manbext|体育首页,卖东西万博manbext|体育首页万博manbext|体育首页,租个电子门面万博manbext|体育首页万博manbext|体育首页,你给我淘宝一点钱就行了,是不是很方便。这其实就是Saas,我把我的软件部署好万博manbext|体育首页万博manbext|体育首页万博manbext|体育首页,你直接来用就行了万博manbext|体育首页万博manbext|体育首页,免去了你的安装部署调试的成本,而且你也不需要再去租用服务器万博manbext|体育首页,注册域名等,这些事情万博manbext|体育首页,交给我就好了万博manbext|体育首页万博manbext|体育首页,你只管用我的软件就行万博manbext|体育首页。其实像什么钉钉万博manbext|体育首页,京东万博manbext|体育首页,或者我们云商铺看到的一些收银系统等万博manbext|体育首页,基本上者是SaaS这种存在形式。道理很简单啊万博manbext|体育首页万博manbext|体育首页万博manbext|体育首页万博manbext|体育首页,你不能让一个卖饺子的小两口万博manbext|体育首页万博manbext|体育首页,还得云搞套服务器环境整个域名来转行搞IT吧万博manbext|体育首页万博manbext|体育首页,那合着我卖个饺子还要招个IT运维万博manbext|体育首页万博manbext|体育首页?


                                                      Saas本身并不是什么新鲜玩意儿万博manbext|体育首页,也没有技术上的改进和变化万博manbext|体育首页,还是一个软件而已,只不过就是说这个软件可以支持多个客户独立使用万博manbext|体育首页,客户与客户之间的数据是不能共享的万博manbext|体育首页万博manbext|体育首页。与Saas相对应的理念,在云计算时代,大家又提出了PaaS(平台即服务)和IaaS(基础设施即服务)万博manbext|体育首页,说白了万博manbext|体育首页,就是你啥都不用管万博manbext|体育首页万博manbext|体育首页,你直接租我的就好了万博manbext|体育首页。我们可以租软件万博manbext|体育首页万博manbext|体育首页,当然也可以租服务器,租数据库万博manbext|体育首页万博manbext|体育首页,租硬盘等。


                                                      再比如,现在咱们很多系统都支持短信通知,那要用程序发短信万博manbext|体育首页,我们必须要在移动运营商那里申请授权才行万博manbext|体育首页万博manbext|体育首页。这玩意儿实在太麻烦了,所以咱们可以去租用别人的短信平台嘛万博manbext|体育首页,给钱就行了万博manbext|体育首页万博manbext|体育首页万博manbext|体育首页。我给短信平台钱万博manbext|体育首页,短信平台给我开发一个接口万博manbext|体育首页,我在程序里面调用这个接口就可以发短信了万博manbext|体育首页,我管短信平台是怎么跟移动运营商合作的呢,我不关心万博manbext|体育首页万博manbext|体育首页。


                                                      20200403_143720_377.jpg


                                                      蜗牛学院的在线教育平台里面,目前只是针对个人用户学习用万博manbext|体育首页,提供点播和直播功能。那么今年我们还有两个研发计划万博manbext|体育首页,一个就是面向企业用户的企业内训万博manbext|体育首页,企业可以在蜗牛网校注册一个账户,然后在这个平台上安排自己员工的内训计划等万博manbext|体育首页?万博manbext|体育首页;褂幸桓鼋衅笠嫡衅?万博manbext|体育首页,企业也可以通过蜗牛网校来招聘我们的学生,同样的,企业只需要注册一个账户就行了万博manbext|体育首页万博manbext|体育首页。这种万博manbext|体育首页,其实也是典型的SaaS应用。


                                                      除了上述这些基础架构外万博manbext|体育首页万博manbext|体育首页,今天我再简单中大家聊一聊架构的性能优化的问题,其实系统架构并没有那么难理解万博manbext|体育首页。很多程序员的梦想就是成长为一名架构师万博manbext|体育首页,这是好事,但是也不要把架构师想得太遥远万博manbext|体育首页万博manbext|体育首页,你只要稍加努力万博manbext|体育首页,再用点心去思考总结万博manbext|体育首页,慢慢地你就成长起来了。关于架构师的问题万博manbext|体育首页万博manbext|体育首页,后面我再找时间细说万博manbext|体育首页万博manbext|体育首页,先聊一聊系统优化的问题万博manbext|体育首页,这个问题很多工程师都有点概念模糊万博manbext|体育首页,搞得不是特别清楚万博manbext|体育首页万博manbext|体育首页。包括很多性能测试工程师万博manbext|体育首页万博manbext|体育首页,一提起系统优化万博manbext|体育首页万博manbext|体育首页万博manbext|体育首页万博manbext|体育首页,就感觉头皮发麻,不知道怎么办了万博manbext|体育首页万博manbext|体育首页万博manbext|体育首页。其实思路挺简单的万博manbext|体育首页。


                                                      上面的单体架构中,提到了集群环境万博manbext|体育首页万博manbext|体育首页,这是系统性能优化的第一步万博manbext|体育首页,什么意思呢万博manbext|体育首页万博manbext|体育首页?就是当一台服务器不够用了万博manbext|体育首页,那我就给你多加几台服务器,大家一起通过集群对外提供服务万博manbext|体育首页。你想嘛万博manbext|体育首页,一台电脑假设能支撑1000个用户访问万博manbext|体育首页,那么10台电脑合一起,不就可以支撑10000个用户访问了吗万博manbext|体育首页?我们把这种方式叫做负载均衡(Load-Balance),而且这种集群环境,还有一个什么优势呢万博manbext|体育首页万博manbext|体育首页,那就是故障转移(Fail-Over)万博manbext|体育首页万博manbext|体育首页,你看啊万博manbext|体育首页,10台服务器在提供服务,不可能10台一起跨吧万博manbext|体育首页万博manbext|体育首页,如果其中有2台服务器来不起了万博manbext|体育首页,崩了。没关系啊万博manbext|体育首页万博manbext|体育首页,另外8台服务器继续接过来这2台的处理任务接着处理就行了嘛万博manbext|体育首页。这就叫故障转移万博manbext|体育首页万博manbext|体育首页,通过这种手段,可以非常方便地实现一个高可用(High-Availability)的服务器环境万博manbext|体育首页万博manbext|体育首页万博manbext|体育首页万博manbext|体育首页。即使有后台服务器跨了万博manbext|体育首页,用户在使用的时候也感觉不到的万博manbext|体育首页。


                                                      下面这批图万博manbext|体育首页万博manbext|体育首页,也是我从蜗牛学院的测试开发专业的教材里面抠出来的万博manbext|体育首页,有个图给大家看要容易理解一些万博manbext|体育首页万博manbext|体育首页。


                                                      20200403_143729_532.jpg


                                                      除了通过集群来优化性能外万博manbext|体育首页,还有很多手段,这些手段我就简单总结一下就行了万博manbext|体育首页,就不细说了。一个不小心万博manbext|体育首页万博manbext|体育首页,又是连着第四篇万字长文了,看我专栏的朋友万博manbext|体育首页,你们如果能看到这里万博manbext|体育首页万博manbext|体育首页,说明对IT行业是真爱万博manbext|体育首页,好好把握吧万博manbext|体育首页万博manbext|体育首页万博manbext|体育首页。你看看图万博manbext|体育首页,看看文字,基本能懂万博manbext|体育首页。


                                                      1. 多使用内存来减少硬盘的频繁访问万博manbext|体育首页万博manbext|体育首页万博manbext|体育首页万博manbext|体育首页,由于硬盘通常比较慢,即使是固态硬盘万博manbext|体育首页,比起内存的读写速度来说万博manbext|体育首页万博manbext|体育首页,那也是几十上百倍的差距万博manbext|体育首页。所以想个办法来有效利用内存,减少对硬盘的访问次数万博manbext|体育首页, 可以显著提高硬盘速度万博manbext|体育首页。使用缓存服务器就是一个很好的解决方案万博manbext|体育首页,看图万博manbext|体育首页万博manbext|体育首页。


                                                      20200403_143737_950.jpg


                                                      1. 读写分离:即使使用了缓存万博manbext|体育首页万博manbext|体育首页万博manbext|体育首页,也不可能完全不读写硬盘啊万博manbext|体育首页,尤其是数据库的读写操作万博manbext|体育首页万博manbext|体育首页,完全依赖于硬盘,这是不可避免的。因为内存虽然快万博manbext|体育首页万博manbext|体育首页,但是不能永久保存啊万博manbext|体育首页万博manbext|体育首页,一旦断电或程序停止万博manbext|体育首页,内存的数据全者没了万博manbext|体育首页万博manbext|体育首页。所以硬盘必须得用万博manbext|体育首页,那么就想个办法,把硬盘用好万博manbext|体育首页。


                                                      20200403_143748_501.jpg


                                                      1. 页面静态化:其实很多网站的页面都是差不多的内容万博manbext|体育首页,每一个用户来访问的时候看到的内容大致都是差不多的万博manbext|体育首页,这种情况下万博manbext|体育首页,那就没必要每次访问都要从数据库或缓存中取一次数据了万博manbext|体育首页,直接把页面变成一个静态的HTML页面万博manbext|体育首页,保存在服务器硬盘里面或者加载到内存里万博manbext|体育首页,这样可以大量地减少硬盘读写操作和数据库查询操作万博manbext|体育首页。同时万博manbext|体育首页万博manbext|体育首页万博manbext|体育首页,通过静态化处理还能显著降低CPU的运算,减少CPU使用率万博manbext|体育首页万博manbext|体育首页。经验表明,CPU很容易成为一个系统的瓶颈万博manbext|体育首页,那咱们就想办法少用CPU嘛万博manbext|体育首页。

                                                      2. 后台架构大量使用集群万博manbext|体育首页,来解决高可用,高并发的问题。无论怎么优化,一台服务器的处理能够始终是有限的万博manbext|体育首页万博manbext|体育首页,那就全部集群嘛。数据库可以集群万博manbext|体育首页,缓存服务器可以集群万博manbext|体育首页万博manbext|体育首页万博manbext|体育首页,微服务架构可以集群万博manbext|体育首页万博manbext|体育首页,文件服务器可以集群万博manbext|体育首页,能用多台服务器解决的问题万博manbext|体育首页,咱就不要搞到一台服务器上嘛,现在买个服务器又不贵万博manbext|体育首页,实在买不起还可以租嘛万博manbext|体育首页万博manbext|体育首页。

                                                      3. CDN网络:当用户越来越多以后万博manbext|体育首页,服务器通过各种架构和技术手段解决了性能问题万博manbext|体育首页,但是网络带宽的问题始终是不好解决的万博manbext|体育首页万博manbext|体育首页万博manbext|体育首页,这玩意儿万博manbext|体育首页,死贵死贵的万博manbext|体育首页。所以通过CDN来解决问题嘛万博manbext|体育首页万博manbext|体育首页,CDN叫内容分发网络,什么意思呢?你把你的网站的内容万博manbext|体育首页,通过购买CDN万博manbext|体育首页万博manbext|体育首页,将内容缓存到CDN服务商那里万博manbext|体育首页,比如我现在在成都访问一个北京的网站万博manbext|体育首页万博manbext|体育首页,而北京这个网站购买了CDN,把它的内容缓存到了成都或者四川的一个CDN服务商那里万博manbext|体育首页,这个时候我去访问的时候其实是访问的CDN的内容万博manbext|体育首页万博manbext|体育首页万博manbext|体育首页万博manbext|体育首页万博manbext|体育首页,请求根本没有通过北京万博manbext|体育首页万博manbext|体育首页,北京那边都不知道我在访问万博manbext|体育首页。

                                                      4. 当然万博manbext|体育首页万博manbext|体育首页万博manbext|体育首页,除了这些宏观层面的各类优化手段外万博manbext|体育首页万博manbext|体育首页,还有一种方式就是调整服务器端的参数万博manbext|体育首页,比如调整数据库的内核参数万博manbext|体育首页万博manbext|体育首页,调整Java万博manbext|体育首页万博manbext|体育首页,PHP万博manbext|体育首页,Apache,Nginx万博manbext|体育首页,Tomcat万博manbext|体育首页,Weblogic等等这类服务器的内核参数万博manbext|体育首页,还有就是优化一下代码的算法,优化一下SQL语句的查询效率等万博manbext|体育首页万博manbext|体育首页,这些手段万博manbext|体育首页,都可以从微观上减少系统的负载万博manbext|体育首页万博manbext|体育首页。这部分内容,每一个都可以写成一个长篇大论万博manbext|体育首页,而且要求就是对各类服务器和编程语言本身有比较深的理解才行万博manbext|体育首页。其实万博manbext|体育首页万博manbext|体育首页,一个牛逼的程序员万博manbext|体育首页万博manbext|体育首页,和一个普通程序员万博manbext|体育首页万博manbext|体育首页,从表面上很难看出他们差距在哪里万博manbext|体育首页,反正都会写代码万博manbext|体育首页万博manbext|体育首页,都能实现程序的功能不是吗?往往,差别就体现在这些细微之处万博manbext|体育首页万博manbext|体育首页,你写程序的时候有没有质量意识万博manbext|体育首页万博manbext|体育首页万博manbext|体育首页,有没有效率意识万博manbext|体育首页万博manbext|体育首页,有没有优化意识万博manbext|体育首页万博manbext|体育首页万博manbext|体育首页,是否理解这些底层的原理万博manbext|体育首页,这些东西万博manbext|体育首页万博manbext|体育首页,表面是看不出来的。同样是技术出身的CEO万博manbext|体育首页万博manbext|体育首页,人马化腾做的是几千亿的生意万博manbext|体育首页万博manbext|体育首页万博manbext|体育首页,我他妈就能做几千万的生意万博manbext|体育首页万博manbext|体育首页万博manbext|体育首页,你说我们差哪儿呢万博manbext|体育首页?可能他比我帅吧。


                                                      最后万博manbext|体育首页万博manbext|体育首页万博manbext|体育首页,来张猛图万博manbext|体育首页万博manbext|体育首页万博manbext|体育首页,当做今天的结尾万博manbext|体育首页,感谢蜗牛学院西安校区高级讲师杨波老师供图。


                                                      20200403_143808_051.jpg


                                                      大家好万博manbext|体育首页,我是强哥,我是一名程序员万博manbext|体育首页。我始终相信“技术改变生活万博manbext|体育首页,研发构建未来”万博manbext|体育首页。其实技术,远比你想象的万博manbext|体育首页,有意思的多;程序员,远比你想象的万博manbext|体育首页,要牛逼的多的多万博manbext|体育首页。否则万博manbext|体育首页万博manbext|体育首页,他可能只是一个伪程序员。



                                                      为了答谢大家对蜗牛学院的支持万博manbext|体育首页,蜗牛学院将会定期对大家免费发放干货万博manbext|体育首页万博manbext|体育首页,敬请关注蜗牛学院的官方微信万博manbext|体育首页。


                                                      20190320_095757_834.jpg





                                                      版权所有万博manbext|体育首页,转载本站文章请注明出处:蜗牛学院在线课堂万博manbext|体育首页万博manbext|体育首页, http://www.abcderliebe.com/note/479
                                                      上一篇: 资讯:IT行业激荡30年->技术改变生活(强哥畅聊)
                                                      下一篇: 资讯:IT行业的35岁,一道难以逾越的坎万博manbext|体育首页?(强哥畅聊)
                                                      提示:登录后添加有效评论可享受积分哦!
                                                      万博manbext|体育首页