架構(gòu)師是做什么的(架構(gòu)師和程序員的區(qū)別)
每天滿滿的干貨
作者:admin
出處:
http://www.zmfx8.com/39107.html
由于微信公眾號(hào)近期改變了推送規(guī)則如果你第一時(shí)間看到我的文章就置頂星標(biāo)公眾號(hào)。


之前有網(wǎng)友說(shuō)想看架構(gòu)師升級(jí)的文章,所以寫了本文。先給本文中架構(gòu)師做個(gè)定義:第一,能力上達(dá)到(似乎是廢話),第二,公司肯承認(rèn),不僅能給架構(gòu)師的頭銜,更能按架構(gòu)師的標(biāo)準(zhǔn)發(fā)工資。
對(duì)于程序員來(lái)說(shuō),架構(gòu)師是職業(yè)發(fā)展的一道坎,如果跨過(guò)去了,后面就前途無(wú)量了,否則可能一直得做著代碼coding的事情。
本文將從“如何升級(jí)”和“平時(shí)工作內(nèi)容”兩方面,說(shuō)下我對(duì)架構(gòu)師的認(rèn)識(shí)。
一、先說(shuō)下大家對(duì)架構(gòu)師認(rèn)識(shí)的誤區(qū)

1、架構(gòu)師不是不食人間煙火,不是只在一個(gè)人的隔間里設(shè)計(jì)架構(gòu),而是需要和產(chǎn)品方,需求方,程序員等各路人馬打交道。
2、架構(gòu)師偏重于技術(shù),這個(gè)不假,但絕不能是技術(shù)完美主義者,因?yàn)槿魏萎a(chǎn)品或網(wǎng)站的架構(gòu)都充滿著妥協(xié)。
3、高級(jí)程序員和架構(gòu)師的界限并不明顯,不是哪天高級(jí)程序員學(xué)好了什么課程,掌握了一門技術(shù)就自動(dòng)升級(jí)到架構(gòu)了,有些要求不高的項(xiàng)目里,甚至由高級(jí)開(kāi)發(fā)來(lái)充當(dāng)架構(gòu)的角色。
4、架構(gòu)師并不是門門都精通,而是得知道某個(gè)需求要點(diǎn)可以有哪些實(shí)現(xiàn)方案,然后會(huì)根據(jù)當(dāng)前的預(yù)算,人員等情況合適地選擇適合當(dāng)前項(xiàng)目組的。
5、對(duì)架構(gòu)師而言,不是什么都是得自己設(shè)計(jì),比如實(shí)現(xiàn)負(fù)載均衡時(shí),不可能讓架構(gòu)師用java實(shí)現(xiàn)一套解決方案,而是至少選用哪種組件,比如nginx,能在項(xiàng)目中把這套組件搭建起來(lái)。
6、架構(gòu)師設(shè)計(jì)出來(lái)的,是產(chǎn)品,未必是藝術(shù)品。架構(gòu)師設(shè)計(jì)出來(lái)的產(chǎn)品可能僅僅能滿足流量等的需求,可能只能遠(yuǎn)觀,近看可能就一團(tuán)糟了。但公司恰恰是要結(jié)果的,而且產(chǎn)品開(kāi)發(fā)的周期會(huì)很緊,所以最終上線的架構(gòu)也就只能是應(yīng)付當(dāng)前的需求。
二、高級(jí)開(kāi)發(fā)升級(jí)到架構(gòu)師的必要條件
在很多場(chǎng)景里,高級(jí)開(kāi)發(fā)只有具備了如下的條件,才有資格升級(jí)到架構(gòu)師,這里我是拿java架構(gòu)舉例。

1、Java Core以及Java web的基本技能,比如集合,多線程,SSM框架就不說(shuō)了,這個(gè)是必須要掌握的。
2、至少能會(huì)在linux上看日志,如果可以,最好具備在linux上部署和運(yùn)行程序的能力。
3、具備一定的調(diào)優(yōu)能力,比如需要能通過(guò)看日志,進(jìn)行JVM內(nèi)存調(diào)優(yōu),或者通過(guò)看執(zhí)行計(jì)劃等方式,進(jìn)行SQL調(diào)優(yōu)。
4、得了解設(shè)計(jì)模式,可以不用精通,但至少得知道,在哪種場(chǎng)景里,可以通過(guò)哪種模式來(lái)優(yōu)化結(jié)構(gòu)。
5、這個(gè)是關(guān)鍵的一條,考慮問(wèn)題時(shí),得擺脫“單機(jī)版”的局限,在知識(shí)儲(chǔ)備里,得包含負(fù)載均衡,消息隊(duì)列,數(shù)據(jù)庫(kù)集群等基于分布式的知識(shí)點(diǎn)。
6、和人打交道時(shí),至少?zèng)]障礙,至少得能清晰地表達(dá)出自己的意思。







