这些知识七个月让我从程序员成为了架构师

成为架构师是绝大部分程序员的梦想,当然不敢说绝对,因为一部分程序员想转行搬砖还有一部分想往管理层发展。可是像我们这样有这良好的职业操守的程序员怎么可能三心二意呢,自己选的编程跪着也要把代码敲完。想要成为架构师当然首先的知道架构师需要知道哪些知识,先来看看活在网上的大牛是怎么说的:

某平台的一位大牛给大家的建议:

1. 通信协议

各个子系统之间要进行通信,必须要选择一种或多种通信协议,现代比较常见的都是基于HTTP的协议。更早期,为了追求性能,有过一些基于TCP协议的实现。建议还了解下CORBA等RPC方式。了解更多协议对于学习安全也有很大帮助,比如MySQL和PostgreSQL的协议都有安全的设计。

2. 序列化

系统之间通过网络传输,或者存储到文件时,肯定只有一种格式,就是字符串。要将复杂的数据结构与字符串之间进行转换,就需要用到序列化。简单的序列化如JSON和XML,稍微复杂些的有protobuf、thrift等。需要了解所有这些序列化方式之间的优势和劣势。比如JSON和XML只能用于传递数据,而protobuf与thrift还可以用来做RPC协议。至少要确保每种序列化方式都自己尝试过hello world。

3. 数据库

要形成自己的数据库选取风格,就需要先对自己常用的数据库有足够深入的了解。对于关系式数据库,除了一般的Create、Query、Delete、Update操作外。还需要能自行建立索引,数据库的平行扩展,了解如何进行性能调试。以及了解常见查询操作的性能级别,常见的查询性能瓶颈点。一个较好的例子是 "SELECT COUNT(*) FROM table WHERE dt_create-86400>NOW();" 。

4. 存储

存储分为几种类型。NAS等各家产品有所不同,大多是通过NFS来访问的,这个不必多讲。问题是NAS的价格很高,而且在去IOE的趋势中很多人也不愿意再用。所以经常会有基于文件系统建立小规模存储的需求。要关注的点主要就是每个目录下的文件数不应该太多,当一个目录下文件数(实际是inode数量,包括文件和目录)超过1000时,性能就很差了。所以建议的做法是将一个系统中要存储的对象ID做16进制,随后每2位16进制做成一级目录。这样可以确保每个目录下的文件数不会超过256个。现代云计算,如Amazon S3已经把存储的问题解决的很好了,如果可能,尽量用好。

5. 应用框架

此事在各个语言之间各有选择,多注意了解自己关注方向的所有框架的优势和劣势。至少当有个毛头孩子问你为什么不选择某个最新的框架时,要有自己的观点来给出明确的答复。对于常见的框架,十分推荐自己重新实现一个来当作锻炼。实现一个WEB框架,他用了不到200行代码就实现了。

6. 接口

主要是指接口协议,或者RPC协议。系统之间进行RPC调用很常见,注意选择个自己能熟练使用的,并且有所深入研究。并了解其常见的限制。RESTful API就是个比较常见的选择,但是性能并不好。要自己对性能等参数有个量化的了解,而不是简单的一句好或不好。短连接接口在三次握手时是串行操作,要了解其为何耗时。

除了要在如上的各种不可或缺的组成部分中有所了解,还要能清楚的知道一些常用系统模块的原理,并能够很深入的玩起来。几个值得注意的:

1. HTTP服务器:常见的无非是nginx、apache,自己要能进行基本配置,包括静态文件、fastcgi转发等

2. 关系式数据库:常见的如mysql、postgresql、sqlite,自己要对每一种都有深入的了解。自己要做一遍常见操作的性能测试,并能牢记于心。比如sqlite虽然并不需要走网络,但是实际查询性能是很差的。我2008年就发现其 "<"和">"共同作用的查询的例子比走网络的mysql还慢了几十倍。

3. NoSQL数据库:memcache、redis、mongodb等,近几年有很多,挨个了解下其实现原理,以及各种常用操作的性能。当有需要时,要随时能拿得出手来用。

4. 云计算平台:几种常见的云计算平台的应用方式要有了解,如Google的资源方式,和Amazon的VPS方式,每种云计算平台往往还会提供一大堆的附加服务,比如可靠数据库,存储,缓存等,也要分别有所了解。

5. 加密/签名技术:常见如truecrypt、openssl、gnu pg、sha1、md5、scrypt等,了解各种加密/签名技术的安全性,字长等,并都能自己做过hello world。

一些网上常见的系统服务形式的架构设计也要仔细了解清楚。一般此类系统的开发人员,往往会通过个人博客,或者一些活动的PPT中进行讲解。仔细找找会有不少收获。值得关注的常见系统架构

1. 博客/论坛:博客和论坛有很多,并且各个网站也都很常用,了解下其原理,最好自己写个练习下。

2. 微博:Twitter/weibo等,涉及到大量的联表查询,需要用多种办法来优化查询性能。

3. 云计算:云计算的几个常见平台的服务提供方式,如Google和Amazon的,如果精力够用最好了解下OpenStack等搭建私有云的方式,总的来说,这是未来的大方向。

4. 视频播放:在网页上播放视频的技术,包括基于Flash和HTML5的,各种浏览器对视频的兼容性等,了解通过ffmpeg将一个视频转换为标准mp4(HTML5可以播放的)的方式和参数

5. CDN:了解应用CDN的方式,包括拆分静态文件的域名,静态文件版本化,Cookie拆分等相关技术

6. OAuth:与其他网站联合认证的方式,有多种,分别了解。

常见的架构设计陷阱:

1. 用户认证:一开始就应该花大精力设计好用户认证系统,包括不要明文存储密码,包括严格限制Cookie和Session的使用,包括用户认证信息的缓存等。如果需要设计一个长期运行的大系统,强烈建议使用签名来保证Cookie的不可伪造,同时常见信息直接存储Cookie,这样可以避免每次Request都访问数据库。

2. 静态文件存储:如果一开始就将静态文件与主站内容混杂在一起,未来就是个灾难,具体参考CDN的应用方式。

以上的知识看起来比较杂乱无章,就算知道这些知识我该如何的去学习去得到这些个知识点的方法;

下面的一个课程体系为你总结了所有的知识点,而所有的知识七个月可以学完,我知道你可能工作了两三年不知道该往那个方向发展,想要提升自己也一直没有门路,想要跳槽也没有牢固的知识,要加薪却始终不敢跟老板提;那么请你用心看完这个体系图;


想学习交流HashMap,nginx、dubbo、Spring MVC,分布式、高性能高可用、redis、jvm、多线程、netty、kafka、的对于课程有兴趣加群:561614305 同时也可以免费获得下面分享的视频资料

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,670评论 5 460
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,928评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,926评论 0 320
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,238评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,112评论 4 356
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,138评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,545评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,232评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,496评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,596评论 2 310
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,369评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,226评论 3 313
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,600评论 3 299
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,906评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,185评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,516评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,721评论 2 335

推荐阅读更多精彩内容