昨天有个人来公司问我,你们网站有用到什么架构没有?当时我就一脸懵逼了,“架构”???我以为所谓的“架构”就是用MVC搭建一个网站框架。但是我没敢说,直接说“这个我不太清楚”。
我现在对架构没一点概念,感觉一提到架构就觉得这个人没有个10年8年的技术经验,都不会说出这两个字来。
还望技术大牛能够解释一下:
1.什么是架构?
2.架构师又是做哪些方面的事情?
3.做网站需要用什么架构(或则说:什么样的网站需要用到架构?/亦或则说:一个有用架构的网站和一个没有用到架构的网站他的区别在哪呢?)?
身为一个PHP程序员需要学习架构这么高大上的技术吗?
说了这么多的废话,总结一点就是“架构”到底是拿来干嘛用的?希望能够通俗易懂的解释一下啊!!!
架构并不是php独有的,所有程序都是有架构的。
只不过小型程序、常见的程序都有一套成熟的构架方案,大家常用,也就不怎么提及了。
比如说php常见的lamp(linuxapachemysqlphp)就是架构。
架构包含的方面很广,小到代码的布局,大到网络的规划,项目的配合等等。
直接说什是构架很笼统。我就举个我们之前的例子吧。
我们之前的网站是一个新闻门户网站,考虑到新闻是发文章居多,且文章发布后,更改的几率比较小,于是我们架构里就增加了一项:文章静态化,其它的架构基本上都是围绕这个来的。
为了安全,我们把文章发布生成的后台和对外访问的服务器分开了。文章生成服务器会根据配置把文章生成到指定位置,有监控程序随时监控文件变化情况,一旦有变化就会把变化文件同步到对外访问服务器。
单台对外访问吃力,于是我们又在其前端增加了CDN,这样最新文章基本上因为cdn缓存的原因不会轻易回源。
以上仅仅是一个简单的构架,也是一个大致构架。目的仅仅是说一下,构架大概在做什么。
盖个简易民房,找几个会码砖的工人就行了。
你盖个大厦,不找个建筑师来设计行吗?只会码砖顶多垒个烟囱,弄不好盖着盖着还塌了。:D
其实,这不只是php.所有的语言所有的工程,都需要架构。他有点像大楼的建筑师,设计师。其实他问你的就是你网站从,输入一个网页发送http到你看到你想看内容的整个过程,其中不只是php。包括在高并发的时候,怎么保证数据库的吞吐量的正常,这又涉及到一系列的高并发的问题的结构。
1.什么是架构?
架构是对产品体系结构的简称,比如i386和x86,两个不仅在硬件设计上有差别,数据存储方式上也有差别。简单来说架构就是一整套体系化设计方案,包含了大量的设计模式和知识产权。
2.架构师又是做哪些方面的事情?
架构师好比排兵布阵的军师,主要为生产提供解决方案,架构师的高低往往由经验和设计上的高低决定。比如你做网站,你用laravel和mysql,别人用thinkphp和mssql,还有人用django和oracle,这就是架构师在解决问题时所采用的方案,也是他们的日常工作。
3.做网站需要用什么架构
架构无处不在,日常说的重构意思就是重新架构。你这个问题就好像做cpu的厂商问自己用什么cpu比较好一样。。。
那个问用到什么架构没有的人,就是个外行,架构这种用来确保自己公司优势的东西,怎么可能将技术交给别人。
架构不分语言的,比如常见的架构:
单体架构
SOA,面向服务的架构
...
架构一般是构架一个简单或者复杂系统的整体框架,简单的可以只是一台机器满足所有需求的系统,复杂的可以是由成千上万个机器和不同子系统相互依赖构建的大型分布式系统。
架构这个词确实有点泛,问一个网站采用什么架构可以大致包括这几个方面:
1.硬件方面
2.系统方面,linux还是windows
3.环境方面,比如是apache还是nginx,php的版本,数据库的选择等
4.数据库方面,除了数据库的类型,还包括数据库的引擎,是否采用分布式数据库,表结构的设计等
5.代码方面,主要是框架的选择
通过搜索结合自己的理解,就想到这些了。