經(jīng)常聽(tīng)到一些程序員說(shuō):
“我們公司的架構(gòu)師天天就在開(kāi)會(huì),調(diào)研,設(shè)計(jì),寫(xiě)文檔,指指點(diǎn)點(diǎn),根本就不寫(xiě)代碼。真好?!?/p>
“我的下一個(gè)目標(biāo)是做架構(gòu)師,這樣就不要寫(xiě)代碼了。”
“你們公司的架構(gòu)師要寫(xiě)代碼嗎?”
對(duì)于這些說(shuō)法,不同的人會(huì)有不同的觀點(diǎn)。對(duì)我而言,我會(huì)旗幟鮮明,毫不掩飾的表達(dá):我希望架構(gòu)師能在百忙之中拿出一定的時(shí)間來(lái)寫(xiě)代碼,特別是核心代碼,什么時(shí)候都不要忘了和磨練寫(xiě)代碼的基本功,如果還想走技術(shù)路線的話。
首先來(lái)看看什么是架構(gòu)師。在百度百科里是這么定義的。
確認(rèn)和評(píng)估系統(tǒng)需求,給出開(kāi)發(fā)規(guī)范,搭建系統(tǒng)實(shí)現(xiàn)的核心構(gòu)架,并澄清技術(shù)細(xì)節(jié)、掃清主要難點(diǎn)的技術(shù)人員。主要著眼于系統(tǒng)的“技術(shù)實(shí)現(xiàn)”。因此他/她應(yīng)該是特定的開(kāi)發(fā)平臺(tái)、語(yǔ)言、工具的大師,對(duì)常見(jiàn)應(yīng)用場(chǎng)景能馬上給出最恰當(dāng)?shù)慕鉀Q方案,同時(shí)要對(duì)所屬的開(kāi)發(fā)團(tuán)隊(duì)有足夠的了解,能夠評(píng)估自己的團(tuán)隊(duì)實(shí)現(xiàn)特定的功能需求需要的代價(jià)。 系統(tǒng)架構(gòu)師負(fù)責(zé)設(shè)計(jì)系統(tǒng)整體架構(gòu),從需求到設(shè)計(jì)的每個(gè)細(xì)節(jié)都要考慮到,把握整個(gè)項(xiàng)目,使設(shè)計(jì)的項(xiàng)目盡量效率高,開(kāi)發(fā)容易,維護(hù)方便,升級(jí)簡(jiǎn)單等。
架構(gòu)師的主要任務(wù)不是從事具體的軟件程序的編寫(xiě),而是從事更高層次的開(kāi)發(fā)構(gòu)架工作。他必須對(duì)開(kāi)發(fā)技術(shù)非常了解,并且需要有良好的組織管理能力??梢赃@樣說(shuō),一個(gè)架構(gòu)師工作的好壞決定了整個(gè)軟件開(kāi)發(fā)項(xiàng)目的成敗。
簡(jiǎn)單的說(shuō),架構(gòu)師是程序員磨練,積累到了一定程度,同時(shí)具有宏觀和微觀掌控能力的大師級(jí)程序員。更通俗的說(shuō),是對(duì)程序員的技術(shù)級(jí)別的一個(gè)劃分,也就是說(shuō),程序員有初級(jí)的,中級(jí)的,高級(jí)的,什么的,再往上,有了架構(gòu)師。所以,我們看到,架構(gòu)師首先是程序員,那么,程序員的首要任務(wù),程序員的基本功,是什么?當(dāng)然,是,寫(xiě)代碼。從來(lái)沒(méi)有人說(shuō),架構(gòu)師不會(huì)寫(xiě)代碼,不喜歡寫(xiě)代碼。沒(méi)有平時(shí)的積累,沒(méi)有動(dòng)手實(shí)踐,何以能成為大師。
當(dāng)然,架構(gòu)師會(huì)要花很大一部分時(shí)間去從事更高層次的開(kāi)發(fā)工作,但也別忘了,如果不實(shí)際參與一部分代碼的開(kāi)發(fā)和review工作,怎么能很好的把握技術(shù)的細(xì)節(jié),怎么能夠知道系統(tǒng)真的是按自己的要求和設(shè)計(jì)工作的。當(dāng)其他組員遇到問(wèn)題時(shí),怎么能夠幫他們迅速定位和解決,甚至挽起袖管自己上。再白話一點(diǎn)的說(shuō),如果遇到像“你行你上”的挑戰(zhàn)時(shí),怎么能夠無(wú)所畏懼,該動(dòng)手時(shí)就動(dòng)手。還有,在某些情況下,對(duì)于系統(tǒng)的核心部分,核心算法,真的需要架構(gòu)師自己來(lái)寫(xiě)和維護(hù)這些critical代碼。如果平時(shí)不堅(jiān)持寫(xiě)寫(xiě),到真正要用時(shí)也會(huì)感到手生。
再說(shuō),技術(shù)的進(jìn)步日新月異,新的開(kāi)發(fā)平臺(tái),新的語(yǔ)言,新的工具,新的模式,不停的在出現(xiàn),如果還只是堅(jiān)守自己之前非常熟悉的那一塊,將會(huì)很容易過(guò)時(shí),被淘汰。如何快速的跟進(jìn)新的技術(shù),新的發(fā)展,除了閱讀,交流,最重要的一環(huán)是自己動(dòng)手去實(shí)踐,那么,寫(xiě)代碼,通常是掌握這些新技術(shù)實(shí)踐的重要一步,只有自己動(dòng)手了,才能發(fā)現(xiàn)其中的優(yōu)越,其中的坑坑洼洼,這樣,才能更好的做好高層次的開(kāi)發(fā)工作。一個(gè)從來(lái)沒(méi)有用過(guò)或?qū)戇^(guò)TensorFlow代碼的人,不相信會(huì)是TensorFlow的高手。
最后,大家都知道興趣和喜好是成功的非常重要的因素。寫(xiě)代碼,愛(ài)好寫(xiě)代碼,應(yīng)該是程序員的一種興趣,一種愛(ài)好,沒(méi)有這個(gè)愛(ài)好,其實(shí)也很難成為優(yōu)秀的大師級(jí)程序員。退一步講,設(shè)想一下,如果自己有什么創(chuàng)意,有什么想法,然后馬上能寫(xiě)代碼來(lái)實(shí)現(xiàn),是多么幸福的一件事情。做了架構(gòu)師,就想放棄寫(xiě)代碼,就不想寫(xiě)代碼,是多么粗淺的想法。如果真的不喜歡寫(xiě)代碼,不愿意寫(xiě)代碼,那其實(shí)也不用去做架構(gòu)師了,因?yàn)?,已?jīng)對(duì)程序員的基本功都沒(méi)有了熱情。
總之,架構(gòu)師是一定要寫(xiě)代碼的,不管寫(xiě)多寫(xiě)少。保持寫(xiě)代碼的激情,會(huì)讓自己成為時(shí)代的弄潮兒,永不落后,不被淘汰。南寧網(wǎng)站建設(shè)