阿里架構(gòu)師和你聊聊【系統(tǒng)架構(gòu)】

黃勇驳阎,從事近十年的 JavaEE 應(yīng)用開(kāi)發(fā)工作栋操,現(xiàn)任阿里巴巴公司系統(tǒng)架構(gòu)師柿冲。對(duì)分布式服務(wù)架構(gòu)與大數(shù)據(jù)技術(shù)有深入研究谭期,具有豐富的 B/S 架構(gòu)開(kāi)發(fā)經(jīng)驗(yàn)與項(xiàng)目實(shí)戰(zhàn)經(jīng)驗(yàn)堵第,擅長(zhǎng)敏捷開(kāi)發(fā)模式。國(guó)內(nèi)開(kāi)源軟件推動(dòng)者之一隧出,Smart Framework 開(kāi)源框架創(chuàng)始人踏志。熱愛(ài)技術(shù)交流,樂(lè)于分享自己的工作經(jīng)驗(yàn)胀瞪。著有《架構(gòu)探險(xiǎn)——從零開(kāi)始寫(xiě) Java Web 框架》一書(shū)针余。

我的十年技術(shù)之路

和大家介紹下我目前所從事的工作。

我目前從事分布式服務(wù)架構(gòu)的設(shè)計(jì)與開(kāi)發(fā)工作凄诞,在阿里的大數(shù)據(jù)平臺(tái)上進(jìn)行應(yīng)用程序開(kāi)發(fā)圆雁。我們整個(gè)系統(tǒng)架構(gòu)采用了“前后端分離”的思想,前端關(guān)注數(shù)據(jù)展現(xiàn)帆谍,后端關(guān)注數(shù)據(jù)生產(chǎn)伪朽,通過(guò) REST 服務(wù)將前后端整合起來(lái),所有的應(yīng)用都是無(wú)狀態(tài)的汛蝙,可以做到水平擴(kuò)展烈涮。我們將整個(gè)系統(tǒng)拆分成許多“微服務(wù)”,服務(wù)之間通過(guò)統(tǒng)一的接口來(lái)調(diào)用窖剑,每個(gè)服務(wù)是通過(guò)容器技術(shù)進(jìn)行隔離坚洽,此外服務(wù)可發(fā)布到統(tǒng)一的服務(wù)管理平臺(tái)上,可通過(guò)該平臺(tái)監(jiān)控每個(gè)服務(wù)的運(yùn)行狀態(tài)與生命周期事件西土,并為服務(wù)調(diào)用者提供了服務(wù)發(fā)現(xiàn)的能力讶舰,可對(duì)服務(wù)進(jìn)行平滑升級(jí)。

阿里有許多優(yōu)秀的中間件與基礎(chǔ)服務(wù)翠储,可以快速幫助我們搭建應(yīng)用系統(tǒng)绘雁,而且這些技術(shù)在阿里內(nèi)部全是開(kāi)源的,大家可以通過(guò)源碼和文檔學(xué)習(xí)到很多有價(jià)值的經(jīng)驗(yàn)援所。阿里也提供了濃厚的技術(shù)氛圍庐舟,每位同學(xué)都非常專(zhuān)注于自己的工作領(lǐng)域,大家對(duì)工作一絲不茍住拭,相互配合挪略,方向一致历帚。

我是如何走上技術(shù)這條路的?

2006 年大學(xué)畢業(yè)杠娱,我離開(kāi)了母校武漢理工大學(xué)挽牢,在院長(zhǎng)薛勝軍老師的推薦下,我來(lái)到了上海摊求,這個(gè)對(duì)于我來(lái)說(shuō)非常陌生的地方禽拔。我有幸加入了一家名為“動(dòng)量軟件”的創(chuàng)業(yè)公司,這家公司的老板曾經(jīng)是亞信科技的 CTO室叉,他也是普元軟件的創(chuàng)始人兼 CTO睹栖,他的名字叫黃柳青,他也是薛老師的大學(xué)同學(xué)茧痕。于是就這樣野来,我的老板成為了我的老師,我習(xí)慣叫他黃老師踪旷,包括公司其他資深的同事也成為了我的老師曼氛,因?yàn)槲液芟胨麄兩砩蠈W(xué)到更多有價(jià)值的東西。

剛開(kāi)始工作的時(shí)候我學(xué)習(xí)了什么是云計(jì)算令野?什么是 SaaS舀患、PaaS、IaaS彩掐?我們花了三年時(shí)間開(kāi)發(fā)了一款名為 ODE 的 PaaS 平臺(tái)构舟,讓用戶(hù)可以在該平臺(tái)上量身定制自己的軟件,最終為客戶(hù)提供基于 SaaS 的產(chǎn)品堵幽。確實(shí)很驕傲狗超,那時(shí)我們已經(jīng)在做云了,只是沒(méi)想到后來(lái)云會(huì)在中國(guó)得到這么好的市場(chǎng)朴下,可能當(dāng)時(shí)只有黃老師一個(gè)人想到了吧努咐。

在 2008 年,我為公司拿回了“第一桶金”殴胧,這也是我從程序員轉(zhuǎn)向項(xiàng)目經(jīng)理的里程碑渗稍。當(dāng)時(shí)我?guī)ьI(lǐng)團(tuán)隊(duì)遠(yuǎn)赴深圳,為國(guó)信證券公司開(kāi)發(fā)經(jīng)紀(jì)人管理系統(tǒng)团滥,這個(gè)項(xiàng)目對(duì)于我個(gè)人而言卻是一筆至高無(wú)上的財(cái)富竿屹,我開(kāi)始學(xué)習(xí)如何與人打交道,如何做需求分析灸姊,如何將需求轉(zhuǎn)變?yōu)榧夹g(shù)拱燃,如何帶領(lǐng)團(tuán)隊(duì)小伙伴一起工作。學(xué)到了太多太多力惯,但我依然選擇在我工作第四個(gè)年頭里離開(kāi)了動(dòng)量軟件碗誉,我剛加入動(dòng)量軟件的時(shí)候召嘶,公司只有 5 個(gè)人(包括老板和前臺(tái)),當(dāng)我離開(kāi)動(dòng)量軟件的時(shí)候哮缺,公司已經(jīng)有 200 人左右了弄跌。感謝黃老師!我在他身上學(xué)到了很多尝苇,他的思想和態(tài)度直到今天都還在影響著我铛只。

我的第二份工作還是選擇了我最熟悉的證券金融行業(yè),同樣也是一家創(chuàng)業(yè)型公司茎匠,在這家公司里我擔(dān)任了技術(shù)經(jīng)理格仲,管理了整個(gè)技術(shù)團(tuán)隊(duì)押袍,從項(xiàng)目的售前到售后诵冒,我都親自帶領(lǐng)團(tuán)隊(duì)來(lái)完成。雖然在這家公司我只做了兩年谊惭,但在這短短的時(shí)間里汽馋,我學(xué)會(huì)了如何提高開(kāi)發(fā)效率、如何培養(yǎng)技術(shù)團(tuán)隊(duì)圈盔、如何選拔技術(shù)人才豹芯、如何建立企業(yè)文化。但最后我發(fā)現(xiàn)了一個(gè)問(wèn)題驱敲,越是想做好铁蹈,越是很難做好,為了做成一件事情需要做很多的嘗試众眨,做事情缺乏正確并有效的方法握牧。

回想我工作的前六年時(shí)間里,我一直都是在創(chuàng)業(yè)公司里成長(zhǎng)娩梨,雖然可以快速學(xué)到東西沿腰,但似乎很難學(xué)到更加規(guī)范的做事方法。于是我選擇了新的工作機(jī)會(huì)狈定,來(lái)到了 TCL 通訊颂龙,這是一家相當(dāng)大的公司,公司的研發(fā)管理流程來(lái)源于法國(guó)阿里卡特公司纽什。我在公司擔(dān)任 Java 架構(gòu)師職位措嵌,也算是整個(gè) Java 團(tuán)隊(duì)的技術(shù)負(fù)責(zé)人,雖然團(tuán)隊(duì)并不是特別地大芦缰。我在這家公司做了三年企巢,學(xué)到了如何整合現(xiàn)有資源、如何按標(biāo)準(zhǔn)流程去做事饺藤、如何設(shè)計(jì)系統(tǒng)架構(gòu)包斑、如何進(jìn)行異地工作流礁、如何跨團(tuán)隊(duì)工作、如何用英文來(lái)溝通罗丰。說(shuō)實(shí)話神帅,當(dāng)時(shí)我沒(méi)有任何的工作壓力,可以按時(shí)上下班萌抵,從來(lái)都不會(huì)加班找御。雖然自己空閑的時(shí)間很多,但我并沒(méi)有選擇去浪費(fèi)時(shí)間绍填,而是開(kāi)始寫(xiě)點(diǎn)技術(shù)博客霎桅,也正是因?yàn)檫@些技術(shù)文章,才改變了我后續(xù)的職業(yè)發(fā)展道路讨永。

我清楚的記得滔驶,那是在 2013 年 9 月 1 日,我在開(kāi)源中國(guó)(oschina.net)網(wǎng)站發(fā)表了我人生的第一篇博文 《Smart Framework:輕量級(jí) Java Web 框架》卿闹,這篇文章影響了我后續(xù)兩年揭糕。其實(shí)說(shuō)句心里話,當(dāng)我第一次寫(xiě)這篇文章時(shí)锻霎,我心里是沒(méi)底的著角,這個(gè)框架只是根據(jù)自己的理解做出來(lái)的一個(gè)設(shè)想,當(dāng)時(shí)甚至連一行代碼都沒(méi)寫(xiě)過(guò)旋恼。我的想法是先將這個(gè)思想發(fā)表出來(lái)吏口,讓大家討論起來(lái),我會(huì)做一個(gè)決策冰更,然后再親自做具體實(shí)現(xiàn)产徊,最后我會(huì)將實(shí)現(xiàn)過(guò)程通過(guò)博文的方式展現(xiàn)給大家,后續(xù)大家會(huì)對(duì)我的實(shí)現(xiàn)進(jìn)行點(diǎn)評(píng)冬殃,我會(huì)基于大家的建議進(jìn)行改善囚痴。整個(gè)開(kāi)源過(guò)程正好與敏捷的思想是一致的,有效溝通审葬、小步快跑深滚、擁抱變化、不斷改進(jìn)涣觉。

也許就是我的技術(shù)文章吸引了很多廣大讀者痴荐,這里面不排除想邀請(qǐng)我加入的其它公司。我在 2014 年離開(kāi)了 TCL 通訊官册,加入了易傳媒生兆。為什么我要放棄如此舒適的工作環(huán)境,去加入一家還在不斷拼搏的企業(yè)呢膝宁?其實(shí)我看到的是未來(lái)互聯(lián)網(wǎng)的發(fā)展趨勢(shì)鸦难,廣告程序化交易以及廣告與大數(shù)據(jù)的結(jié)合根吁,未來(lái)最值錢(qián)的一定是數(shù)據(jù)。抱著這樣的信心合蔽,我加入了易傳媒击敌,擔(dān)任系統(tǒng)架構(gòu)師職位。當(dāng)時(shí)易傳媒正處于技術(shù)轉(zhuǎn)型的初期拴事,需要將 .Net 全部遷移到 Java沃斤,這件事情對(duì)于我而言是非常有挑戰(zhàn)的。我的做法是:第一步定義開(kāi)發(fā)規(guī)范與流程刃宵,第二步培養(yǎng)核心技術(shù)人員衡瓶,第三步分階段進(jìn)行改造。僅半年時(shí)間牲证,我們所有的產(chǎn)品成功地遷移到了 Java 平臺(tái)哮针,結(jié)果出乎大家的想象。公司市場(chǎng)也非常不錯(cuò)从隆,產(chǎn)品得到了業(yè)界的認(rèn)可诚撵,訂單數(shù)源源不斷,大家每天都很忙碌键闺,但卻很開(kāi)心。而易傳媒的“易家人”企業(yè)文化澈驼,讓我所感動(dòng)辛燥,不管是核心技術(shù)部門(mén)還是其它支持性部門(mén),大家就像一家人一樣缝其,你的事情就是我的事情挎塌。

直到 2015 年初,阿里巴巴與易傳媒建立了合作關(guān)系内边,兩家公司進(jìn)行了深度合作榴都,易傳媒公司與阿里媽媽事業(yè)部進(jìn)行了整合,新阿里媽媽從此誕生了漠其,于是我也成為了阿里巴巴的一員嘴高,目前負(fù)責(zé)阿里媽媽大數(shù)據(jù)品牌營(yíng)銷(xiāo)產(chǎn)品的系統(tǒng)架構(gòu)工作。就在兩家公司整合的過(guò)程中和屎,我完成了人生中的處女作《架構(gòu)探險(xiǎn) —— 從零開(kāi)始寫(xiě) Java Web 框架》這本書(shū)拴驮,目前該書(shū)正在各大網(wǎng)上書(shū)店售賣(mài),我真心希望這本書(shū)能對(duì)一些想成為架構(gòu)師的程序員們有所幫助柴信,由于我個(gè)人水平有限套啤,又是第一次寫(xiě)書(shū),寫(xiě)得不好的地方還請(qǐng)大家多多包涵随常。

上面提到潜沦,寫(xiě)博客給我?guī)?lái)的收獲頗多萄涯,那么我來(lái)分享下技術(shù)人如何寫(xiě)博客,又應(yīng)該以怎樣的態(tài)度對(duì)待唆鸡。

我認(rèn)為技術(shù)人員寫(xiě)博客需要注意以下幾點(diǎn):

思路要清晰餐胀,文章要有明確的大綱與標(biāo)題技掏。

對(duì)于實(shí)戰(zhàn)類(lèi)型的文章,需要分步驟來(lái)描述。

多用短句葱色,少用長(zhǎng)句,能一句話說(shuō)明白畅涂,就不用兩句話霜运。

對(duì)于不太好理解的內(nèi)容,最好能打比方來(lái)說(shuō)明刻蟹。

文章末尾需要有總結(jié)逗旁,用最精辟的語(yǔ)言歸納出這篇文章的主要內(nèi)容。

寫(xiě)博客首先是對(duì)自己所學(xué)知識(shí)的一個(gè)總結(jié)舆瘪,此外片效,也為其他讀者提供了很好的教程,知識(shí)得到了廣播與傳遞英古。

技術(shù)一條不歸路淀衣,選擇了這條路從未有過(guò)放棄的想法。

做了十年的技術(shù)召调,我從來(lái)都沒(méi)有放棄過(guò)它膨桥,相反,我非常熱愛(ài)它唠叛,因?yàn)槲乙恢币詠?lái)都很喜歡學(xué)習(xí)只嚣,希望能學(xué)到更多的東西,這樣遇到了具體的技術(shù)問(wèn)題艺沼,可以隨時(shí)從自己積累的知識(shí)庫(kù)中找到最佳的解決方案册舞。此外,目前我在公司雖然不怎么寫(xiě)代碼了障般,但我還是會(huì)利用自己工作閑暇之余寫(xiě)一點(diǎn)開(kāi)源項(xiàng)目或者代碼框架等调鲸。

工作過(guò)很多大大小小的公司,那么公司最值錢(qián)的東西是什么呢剩拢?

我認(rèn)為是實(shí)實(shí)在在做事情的程序員們线得。

他們雖然工資不高,每天坐在位置上敲著代碼徐伐,在很多人眼中被稱(chēng)為“屌絲”或“宅男”贯钩,但我認(rèn)為恰恰就是這些人,他們才是公司最有價(jià)值的人。

他們有自己的理想角雷,希望能夠通過(guò)自己的努力祸穷,從中得到那一點(diǎn)點(diǎn)所謂的成就感;

他們需要理解產(chǎn)品經(jīng)理真正的意圖勺三,把想法變成現(xiàn)實(shí)雷滚,讓產(chǎn)品真正落地;

他們更容易把握細(xì)節(jié)吗坚,而這些細(xì)節(jié)往往決定著產(chǎn)品的命運(yùn)與成斊碓丁;

他們突如其來(lái)的跳槽商源,對(duì)我們的項(xiàng)目的交付有直接的影響车份;

他們?cè)谝黄鸸ぷ鞯臍夥眨荏w現(xiàn)技術(shù)公司的文化與底蘊(yùn)牡彻。

由此看來(lái)扫沼,對(duì)程序員的重視是相當(dāng)有必要的,我們需要關(guān)心每一位程序員的職業(yè)發(fā)展庄吼,讓他們?cè)趫F(tuán)隊(duì)里能夠充分地發(fā)揮出自己的能力缎除。

我們也需要對(duì)他們倍加關(guān)注,挖掘出有能力总寻、肯吃苦器罐、敢擔(dān)當(dāng)?shù)娜耍o他們更多的機(jī)會(huì)废菱,讓他們成為技術(shù)領(lǐng)袖技矮。

互聯(lián)網(wǎng)技術(shù)公司需要大量這樣的程序員:

他們是一群有著技術(shù)信仰的人,他們是一群熱愛(ài)編程的人殊轴,他們是一群不解決問(wèn)題睡不好覺(jué)的人;

他們不是打雜的袒炉,不是外包旁理,更不是工具;

他們不喜歡被忽悠我磁,不喜歡被冷落孽文,更不喜歡被驅(qū)動(dòng);

他們需要尊重夺艰,需要培養(yǎng)芋哭,更需要激情!

具體說(shuō)說(shuō)程序員需要具備哪些素質(zhì)郁副。

我個(gè)人是這樣理解真正的程序員的:

深?lèi)?ài)技術(shù)减牺,一天不寫(xiě)代碼手就會(huì)癢,就喜歡那種成就感;

為了一個(gè)問(wèn)題可以廢寢忘食拔疚,有時(shí)會(huì)在夢(mèng)中都能寫(xiě)代碼肥隆;

代碼潔癖癥患者,喜歡優(yōu)雅代碼稚失,寫(xiě)代碼就像寫(xiě)詩(shī)一樣;

善于分析問(wèn)題句各,能快速看清問(wèn)題的本質(zhì)吸占,并動(dòng)手解決它;

喜歡研究?jī)?yōu)秀源碼凿宾,學(xué)習(xí)大師的杰作矾屯,善于歸納與總結(jié);

有自己的開(kāi)源項(xiàng)目或技術(shù)博客菌湃,喜歡學(xué)習(xí)问拘,更喜歡分享;

會(huì)關(guān)注技術(shù)圈子的新聞動(dòng)態(tài)惧所,時(shí)常會(huì)參加線下技術(shù)沙龍骤坐;

知道軟件開(kāi)發(fā)不是一個(gè)人在戰(zhàn)斗,更需要的是團(tuán)隊(duì)協(xié)作下愈;

保持良好健康的心態(tài)纽绍,用一顆積極向上的心去擁抱變化。

十年的職場(chǎng)之路堅(jiān)持不易势似,分享下我的「IT 職場(chǎng)」經(jīng)驗(yàn)拌夏。

時(shí)光飛逝,我事業(yè)中第一個(gè)十年已然結(jié)束了履因。在這十年里障簿,讓我收獲了很多,跟大家分享一下我在 IT 職場(chǎng)方面的一些個(gè)人經(jīng)驗(yàn)栅迄,不一定對(duì)每個(gè)人都實(shí)用站故,請(qǐng)大家僅作參考吧。

大家既然都是做技術(shù)的毅舆,那我們不妨先從技術(shù)這個(gè)話題開(kāi)始說(shuō)起吧西篓。我要與大家分享的第一點(diǎn)經(jīng)驗(yàn)就是:

1. 把技術(shù)當(dāng)成工具

技術(shù)這東西,其實(shí)一點(diǎn)都不神秘憋活,它只不過(guò)是一個(gè)工具岂津,用這個(gè)工具可以幫助我們解決實(shí)際問(wèn)題,就這么簡(jiǎn)單悦即。

我們每天在面對(duì)技術(shù)吮成,市面上也有很多技術(shù)橱乱,真的沒(méi)有必要把這些技術(shù)都拿過(guò)來(lái)學(xué)習(xí)一遍,然后想辦法找個(gè)場(chǎng)景去應(yīng)用它赁豆。如果真的這樣做了仅醇,那么只能說(shuō)明技術(shù)不是工具,而是玩具魔种,技術(shù)不是這樣玩的析二。

我們應(yīng)該從另一個(gè)角度來(lái)看待技術(shù),不妨從自己的實(shí)際工作環(huán)境出發(fā)节预,現(xiàn)在需要什么叶摄,我們就學(xué)什么,而不要漫無(wú)目的的追求一些新技術(shù)安拟。當(dāng)然蛤吓,對(duì)于新技術(shù)還是需要有所關(guān)注的,至少需要知道這個(gè)新技術(shù)是干什么用的糠赦,而且還要善于總結(jié)会傲,將有價(jià)值的技術(shù)收集起來(lái),以備將來(lái)使用拙泽,當(dāng)需要使用的時(shí)候再來(lái)深入研究淌山。

人的精力是有限的,人的生命也是短暫的顾瞻,要善于利用自己的時(shí)間泼疑,合理地學(xué)習(xí)技術(shù)。

不要把技術(shù)看得那么重要荷荤,別把它當(dāng)回事兒退渗,把它當(dāng)工具就行了,它就像我們寫(xiě)字的筆一樣蕴纳,用鉛筆能寫(xiě)字会油,用鋼筆一樣能寫(xiě)字。

作為一名技術(shù)人員古毛,除了學(xué)習(xí)與應(yīng)用技術(shù)以外钞啸,還需要為自己做一個(gè)正確的職業(yè)規(guī)劃,清晰認(rèn)識(shí)自己究竟屬于哪種技術(shù)人才喇潘,是技術(shù)專(zhuān)家類(lèi)型的,還是技術(shù)管理類(lèi)型的梭稚。路到底該怎么走颖低?需要自己做出決定。架構(gòu)技術(shù)是程序員繞不開(kāi)的話題弧烤,關(guān)于分布式忱屑,微服務(wù)蹬敲,源碼,框架結(jié)構(gòu)莺戒,設(shè)計(jì)模式等這些技術(shù)我都分享在群650385180伴嗡,可免費(fèi)下載。希望可以幫助在這個(gè)行業(yè)發(fā)展的朋友和童鞋們从铲,在論壇博客等地方少花些時(shí)間找資料瘪校,把有限的時(shí)間,真正花在學(xué)習(xí)上名段,我把這些視頻分享出來(lái)阱扬。相信對(duì)于已經(jīng)工作和遇到技術(shù)瓶頸的碼友,在這個(gè)群里一定有你需要的內(nèi)容伸辟。

在我們職業(yè)路線上麻惶,最重要的人莫過(guò)于老板(我指的老板可以是公司大老板,也可以是自己的頂頭上司)信夫,對(duì)待自己的老板窃蹋,我也有一些經(jīng)驗(yàn):

2. 把老板當(dāng)成情人

大家應(yīng)該非常清楚,情人是需要浪漫的静稻,浪漫是需要驚喜的警没。老板其實(shí)跟情人一樣,也是需要驚喜的姊扔。我們做下屬的惠奸,要懂得找到合適的機(jī)會(huì)給老板帶來(lái)驚喜。我們跟情人談情說(shuō)愛(ài)恰梢,這是一種很好的溝通方式佛南,可別忽略了跟老板“談情說(shuō)愛(ài)”,我們需要與老板保持良好的溝通嵌言,這種溝通并不僅僅是溜須拍馬嗅回。

講一個(gè)真實(shí)的故事吧。記得曾經(jīng)我的一位同事摧茴,技術(shù)非常好绵载,做東西非常快苛白,質(zhì)量也很高娃豹,同事們都覺(jué)得他是牛人,但他從來(lái)都不懂得在老板面前表現(xiàn)自己购裙,老板也只是覺(jué)得他是可以做事的懂版,但升職加薪的事情往往總是不會(huì)優(yōu)先考慮他。

大家很定會(huì)問(wèn):怎樣在老板面前表現(xiàn)自己呢躏率?其實(shí)方法有很多躯畴,由于篇幅有限民鼓,我先提供三招吧:

第一招:在給老板做程序演示的時(shí)候,不要只是單純的演示蓬抄,不妨先用一個(gè) PPT丰嘉,簡(jiǎn)單表達(dá)一下自己的解決方案,然后再做演示嚷缭,這樣效果會(huì)好很多饮亏。老板會(huì)認(rèn)為自己是花了心思的,是想把事情做得更好的峭状。

第二招:把自己每天的工作簡(jiǎn)單記錄一下克滴,每周匯總一次,以郵件的形式發(fā)送給老板优床,讓老板知道自己每天在做什么劝赔。每月寫(xiě)一篇本月工作總結(jié)與下月工作計(jì)劃,同樣發(fā)郵件給老板胆敞。年底可以寫(xiě)一個(gè)年終工作總結(jié)着帽,打印出來(lái),悄悄地放在老板的桌子上移层。

第三招:借匯報(bào)工作為理由仍翰,定期請(qǐng)老板出去吃飯,制造面對(duì)面單獨(dú)溝通的機(jī)會(huì)观话。在談話過(guò)程中予借,強(qiáng)調(diào)自己愿意幫助老板分擔(dān)工作壓力。

對(duì)待老板其實(shí)很簡(jiǎn)單频蛔,只要能幫他做事灵迫,又能讓他開(kāi)心,他基本上就搞定了晦溪。老板搞定了瀑粥,自己的職業(yè)發(fā)展才會(huì)平步青云。但千萬(wàn)別忽略了還有一群人三圆,他們或許是自己的團(tuán)隊(duì)?wèi)?zhàn)友狞换,或許是自己的競(jìng)爭(zhēng)對(duì)手,沒(méi)錯(cuò)舟肉!他們就是同事修噪。如何處理同事關(guān)系呢?以下便是我的經(jīng)驗(yàn):

3. 把同事當(dāng)成小孩

處理與同事關(guān)系路媚,其實(shí)比處理與老板關(guān)系要稍微復(fù)雜一點(diǎn)割按,因?yàn)橥掠卸喾N身份,他們可以是隊(duì)友磷籍,也可以是對(duì)手适荣。如果大家在一起做同一個(gè)項(xiàng)目,那么這樣的同事就是隊(duì)友院领;如果為了競(jìng)爭(zhēng)某個(gè)項(xiàng)目弛矛、崗位、資源比然,導(dǎo)致同級(jí)別的同事之間發(fā)生利益上的競(jìng)爭(zhēng)丈氓,那么這樣的同事就是對(duì)手。

對(duì)于隊(duì)友而言强法,要學(xué)會(huì)主動(dòng)給他們提供幫助万俗,讓大家能夠體會(huì)到團(tuán)隊(duì)協(xié)作的氣氛,在一起學(xué)習(xí)饮怯,在一起成長(zhǎng)闰歪,在一起分享”褪可以時(shí)常跟大家一起聚餐库倘,買(mǎi)點(diǎn)零食讓大家品嘗。

隊(duì)友關(guān)系往往比較好處理论矾,關(guān)鍵在于自己能否真正懂得去分享教翩。很多技術(shù)人員,最不愿意的就是分享贪壳,因?yàn)閾?dān)心自己花了很多精力學(xué)到的知識(shí)饱亿,分分鐘就被別人學(xué)會(huì)了,自己失去了優(yōu)勢(shì)闰靴。這種心態(tài)最好不要在團(tuán)隊(duì)里產(chǎn)生彪笼,這樣只會(huì)讓自己變得越來(lái)越封閉,越來(lái)越渺小传黄,隊(duì)友們也會(huì)逐漸排擠自己杰扫。

對(duì)于對(duì)手而言,要想辦法讓自己成為他的兄弟膘掰,告訴他章姓,咱們是兄弟,應(yīng)該相互幫助识埋。如果有機(jī)會(huì)凡伊,可以在老板面前,當(dāng)著對(duì)手的面窒舟,夸獎(jiǎng)自己的對(duì)手系忙。做出這樣的行為,其實(shí)并不會(huì)讓老板覺(jué)得自己不如對(duì)手惠豺,而會(huì)讓老板認(rèn)為自己在用心去容納對(duì)手银还。大家在一起工作风宁,就是一種緣分,都是跟老板打工的蛹疯,真的沒(méi)有必要搞得不愉快戒财。

其實(shí)同事就是自己的小伙伴,不妨把他們當(dāng)成是單純可愛(ài)的小孩吧捺弦,用自己的心去“收買(mǎi)”他們饮寞。

老板與同事,他們都是公司內(nèi)部的人列吼,不管怎么說(shuō)幽崩,大家都在同一條船上,大家可以關(guān)上門(mén)吵一架寞钥,只要事情能夠解決就行慌申。但對(duì)于我們的客戶(hù)而言,就需要用另外一種方法來(lái)處理好關(guān)系了凑耻。我是這樣認(rèn)為的:

4. 把客戶(hù)當(dāng)成病人

客戶(hù)有需求太示,但沒(méi)有技術(shù),而我們有技術(shù)香浩、有經(jīng)驗(yàn)类缤、有產(chǎn)品,正好可以幫助他們實(shí)現(xiàn)需求邻吭,從而提高他們的工作效率餐弱,這樣客戶(hù)才會(huì)心甘情愿地把錢(qián)放入我們的口袋。所以囱晴,在客戶(hù)面前膏蚓,我們要表現(xiàn)出高超的專(zhuān)業(yè)精神,不要被客戶(hù)牽著我們的鼻子走畸写,我們?cè)诳蛻?hù)面前就是技術(shù)權(quán)威驮瞧,就需要這樣的自信。從服裝枯芬、言行论笔、郵件、文檔等各個(gè)方面千所,都要做到專(zhuān)業(yè)狂魔。

我們打算把自己的產(chǎn)品賣(mài)給客戶(hù)的時(shí)候,千萬(wàn)不要一上來(lái)就對(duì)自己的產(chǎn)品夸夸其談淫痰,這往往會(huì)讓客戶(hù)感到厭煩最楷。我們不妨先告訴客戶(hù),他們已經(jīng)“生病”了,而且病得不輕籽孙,如果不及時(shí)用藥的話烈评,后果將不堪設(shè)想。也就是說(shuō)蚯撩,要讓客戶(hù)意識(shí)到自己現(xiàn)在所面臨的困境础倍,讓客戶(hù)緊張,當(dāng)他們正在思考如何應(yīng)對(duì)的時(shí)候胎挎,我們?cè)俑嬖V他們,“藥”已經(jīng)準(zhǔn)備好了忆家,可以隨時(shí)服用犹菇。

要讓客戶(hù)有種雪中送炭的感覺(jué),這樣就對(duì)了芽卿,他們一定會(huì)主動(dòng)了解我們的產(chǎn)品揭芍。我們要做到這一切,必須花精力來(lái)分析行業(yè)現(xiàn)狀卸例,揣測(cè)客戶(hù)老板們每天在想什么称杨。如果有機(jī)會(huì)進(jìn)入客戶(hù)所在的公司工作一段時(shí)間,相信自己的感受會(huì)更加深入筷转。

Java 會(huì)在很長(zhǎng)的一段時(shí)間內(nèi)是主流

為什么開(kāi)發(fā) Java Web 都要用框架姑原?

我個(gè)人覺(jué)得框架有以下幾點(diǎn)作用:

讓開(kāi)發(fā)更加高效沪铭,屏蔽底層技術(shù)細(xì)節(jié)园欣,讓開(kāi)發(fā)人員關(guān)注在具體業(yè)務(wù)上。

框架實(shí)際上也是一種規(guī)范管呵,可以讓每位開(kāi)發(fā)人員保持同樣的編碼風(fēng)格袭蝗。

會(huì)使用主流框架的開(kāi)發(fā)人員唤殴,在人才市場(chǎng)上比較好獲取。

現(xiàn)在做 Java Web 開(kāi)發(fā)都用哪些框架呢到腥?

常用的比如 Spring MVC朵逝、Struts2 等,國(guó)內(nèi)的 JFinal乡范、Nutz 等也不錯(cuò)配名,當(dāng)然 Smart 也是一個(gè)很好的選擇。

有一定 Web 前端開(kāi)發(fā)經(jīng)驗(yàn)的人篓足,很多都會(huì)有這么個(gè)想法:那些寫(xiě)框架的人好厲害段誊,什么時(shí)候我才能寫(xiě)一個(gè)自己的框架呢?有時(shí)候看看別人的框架代碼栈拖,又覺(jué)得很復(fù)雜连舍,對(duì)此我有一些建議以及新人學(xué)習(xí)需要什么基礎(chǔ)?分享一些好的方法。

對(duì)于接觸 Java 不太久的朋友索赏,建議按照以下幾個(gè)步驟來(lái)學(xué)習(xí):

學(xué)習(xí) Java 基礎(chǔ)語(yǔ)法與核心技術(shù)盼玄,包括 Servlet、JSP潜腻、JDBC 等埃儿。

熟練使用流行開(kāi)源框架,包括 Spring融涣、MyBatis 等童番。

研究開(kāi)源框架源碼,并吸取其中優(yōu)秀的架構(gòu)威鹿。

此外剃斧,在學(xué)習(xí)的過(guò)程當(dāng)中,建議做學(xué)習(xí)筆記忽你,最好能通過(guò)博客的方式來(lái)記錄自己的收獲幼东。

使用 Python、Perl科雳、PHP根蟹、Ruby 等腳本語(yǔ)言開(kāi)發(fā) Web 程序,跟使用 Java 開(kāi)發(fā) Web 程序相比有什么不同或者優(yōu)劣糟秘?

前者屬于動(dòng)態(tài)語(yǔ)言简逮,無(wú)需編譯,可通過(guò)解釋的方式來(lái)運(yùn)行蚌堵,而且 Java 需要首先通過(guò)編譯买决,將源文件轉(zhuǎn)為字節(jié)碼,且載入 Java 虛擬機(jī)才能運(yùn)行吼畏,相對(duì)來(lái)說(shuō)督赤,Java 對(duì)環(huán)境的要求較高,但 Java 具備更強(qiáng)的面向?qū)ο竽芰π何谩4送舛闵啵琂ava 還擁有較廣的開(kāi)源社區(qū)以及流行的開(kāi)源中間件。因此性雄,如果是做大型系統(tǒng)没卸,建議使用 Java 來(lái)開(kāi)發(fā),而并非那些腳本語(yǔ)言秒旋。

針對(duì) Web约计,Java、PHP迁筛、Python煤蚌、.NET 之中未來(lái)發(fā)展前景最好的會(huì)是什么?

我認(rèn)為 Java 在未來(lái)還會(huì)有一段很長(zhǎng)的路,需要在語(yǔ)言本身上做到更加輕量級(jí)尉桩,用最少的代碼來(lái)實(shí)現(xiàn)目標(biāo)功能筒占;PHP 相對(duì)來(lái)說(shuō)會(huì)比較平穩(wěn),它的特點(diǎn)非常突出蜘犁,上手快且易于開(kāi)發(fā) Web 項(xiàng)目翰苫;Python 仍然不會(huì)有太大的用戶(hù)群體;.NET 加入開(kāi)源社區(qū)太晚这橙,且較 Java 而言并沒(méi)有太強(qiáng)的優(yōu)勢(shì)奏窑,可能會(huì)走下坡路。

在軟件開(kāi)發(fā)中有很多的設(shè)計(jì)模式屈扎,也有一些很高冷良哲,談?wù)勎覍?duì)軟件設(shè)計(jì)的理解,以及讓一些設(shè)計(jì)原則接地氣助隧。

了解設(shè)計(jì)模式的朋友們,想必都聽(tīng)說(shuō)過(guò)“六大設(shè)計(jì)原則”吧滑沧。其實(shí)最經(jīng)典的 23 種設(shè)計(jì)模式中或多或少地都在使用這些設(shè)計(jì)原則并村,也就是說(shuō),設(shè)計(jì)模式是站在設(shè)計(jì)原則的基礎(chǔ)之上的滓技。所以在學(xué)習(xí)設(shè)計(jì)模式之前哩牍,很有必要對(duì)這些設(shè)計(jì)原則先做一下了解。

GoF(四人幫)令漂,傳說(shuō)中的四位大神們膝昆,他們聯(lián)手搞出了一套設(shè)計(jì)模式,堪稱(chēng) OOD(面向?qū)ο笤O(shè)計(jì))的經(jīng)典之作叠必!震驚了整個(gè)軟件開(kāi)發(fā)領(lǐng)域荚孵。但這四個(gè)老家伙非常怪異,總是喜歡顯擺一些高深的理論纬朝,甚至有時(shí)候不說(shuō)人話收叶,十分讓人費(fèi)解。

除了最經(jīng)典的六大設(shè)計(jì)原則以外共苛,還有一些其他的設(shè)計(jì)原則也非常重要判没。我將盡可能地解釋這些晦澀的理論,希望看完之后隅茎,會(huì)讓您對(duì)這些設(shè)計(jì)原則稍微加深一些理解澄峰。若有不正確的地方,懇請(qǐng)大家指正辟犀!

六大設(shè)計(jì)原則

先看一幅圖吧:

這幅圖清晰地表達(dá)了六大設(shè)計(jì)原則俏竞,但僅限于它們叫什么名字而已,它們具體是什么意思呢?下面我將從原文胞此、譯文臣咖、理解、應(yīng)用漱牵,這四個(gè)方面分別進(jìn)行闡述夺蛇。

1. 單一職責(zé)原則(Single Responsibility Principle - SRP)

原文:There should never be more than one reason for a class to change.

譯文:永遠(yuǎn)不應(yīng)該有多于一個(gè)原因來(lái)改變某個(gè)類(lèi)。

理解:對(duì)于一個(gè)類(lèi)而言酣胀,應(yīng)該僅有一個(gè)引起它變化的原因刁赦。說(shuō)白了就是,不同的類(lèi)具備不同的職責(zé)闻镶,各施其責(zé)甚脉。這就好比一個(gè)團(tuán)隊(duì),大家分工協(xié)作铆农,互不影響牺氨,各做各的事情。

應(yīng)用:當(dāng)我們做系統(tǒng)設(shè)計(jì)時(shí)墩剖,如果發(fā)現(xiàn)有一個(gè)類(lèi)擁有了兩種的職責(zé)猴凹,那就問(wèn)自己一個(gè)問(wèn)題:可以將這個(gè)類(lèi)分成兩個(gè)類(lèi)嗎?如果真的有必要岭皂,那就分吧。千萬(wàn)不要讓一個(gè)類(lèi)干的事情太多爷绘!

2. 開(kāi)放封閉原則(Open Closed Principle - OCP)

原文:Software entities like classes, modules and functions should be open for extension but closed for modifications.

譯文:軟件實(shí)體书劝,如:類(lèi)、模塊與函數(shù)土至,對(duì)于擴(kuò)展應(yīng)該是開(kāi)放的购对,但對(duì)于修改應(yīng)該是封閉的。

理解:簡(jiǎn)言之毙籽,對(duì)擴(kuò)展開(kāi)放洞斯,對(duì)修改封閉。換句話說(shuō)坑赡,可以去擴(kuò)展類(lèi)烙如,但不要去修改類(lèi)。

應(yīng)用:當(dāng)需求有改動(dòng)毅否,要修改代碼了亚铁,此時(shí)您要做的是,盡量用繼承或組合的方式來(lái)擴(kuò)展類(lèi)的功能螟加,而不是直接修改類(lèi)的代碼徘溢。當(dāng)然吞琐,如果能夠確保對(duì)整體架構(gòu)不會(huì)產(chǎn)生任何影響,那么也沒(méi)必要搞得那么復(fù)雜了然爆,直接改這個(gè)類(lèi)吧站粟。

架構(gòu)技術(shù)是程序員繞不開(kāi)的話題,關(guān)于分布式曾雕,微服務(wù)奴烙,源碼,框架結(jié)構(gòu)剖张,設(shè)計(jì)模式等這些技術(shù)我都分享在群650385180切诀,可免費(fèi)下載。希望可以幫助在這個(gè)行業(yè)發(fā)展的朋友和童鞋們搔弄,在論壇博客等地方少花些時(shí)間找資料幅虑,把有限的時(shí)間,真正花在學(xué)習(xí)上顾犹,我把這些視頻分享出來(lái)倒庵。相信對(duì)于已經(jīng)工作和遇到技術(shù)瓶頸的碼友,在這個(gè)群里一定有你需要的內(nèi)容炫刷。

3. 里氏替換原則(Liskov Substitution Principle - LSP)

原文:Functions that use pointers or references to base classes must be able to use objects of derived classes without knowing it.

譯文:使用基類(lèi)的指針或引用的函數(shù)哄芜,必須是在不知情的情況下,能夠使用派生類(lèi)的對(duì)象柬唯。

理解:父類(lèi)能夠替換子類(lèi),但子類(lèi)不一定能替換父類(lèi)圃庭。也就是說(shuō)锄奢,在代碼中可以將父類(lèi)全部替換為子類(lèi),程序不會(huì)報(bào)錯(cuò)剧腻,也不會(huì)在運(yùn)行時(shí)出現(xiàn)任何異常拘央,但反過(guò)來(lái)卻不一定成立。

應(yīng)用:在繼承類(lèi)時(shí)书在,務(wù)必重寫(xiě)(Override)父類(lèi)中所有的方法灰伟,尤其需要注意父類(lèi)的 protected 方法(它們往往是讓您重寫(xiě)的),子類(lèi)盡量不要暴露自己的 public 方法供外界調(diào)用儒旬。

該原則由麻省理工學(xué)院的 Barbara Liskov 女士提出栏账,她是美國(guó)第一位獲取計(jì)算機(jī)博士學(xué)位的女性,曾經(jīng)也獲得過(guò)計(jì)算機(jī)圖靈獎(jiǎng)栈源。

4. 最少知識(shí)原則(Least Knowledge Principle - LKP)

原文:Only talk to you immediate friends.

譯文:只與你最直接的朋友交流挡爵。

理解:盡量減少對(duì)象之間的交互,從而減小類(lèi)之間的耦合甚垦。簡(jiǎn)言之茶鹃,一定要做到:低耦合涣雕,高內(nèi)聚。

應(yīng)用:在做系統(tǒng)設(shè)計(jì)時(shí)闭翩,不要讓一個(gè)類(lèi)依賴(lài)于太多的其他類(lèi)挣郭,需盡量減小依賴(lài)關(guān)系,否則疗韵,您死都不知道自己怎么死的兑障。

該原則也稱(chēng)為“迪米特法則(Law of Demeter)”,由 Ian Holland 提出伶棒。這個(gè)人不太愿意和陌生人說(shuō)話旺垒,只和他走得最近的朋友們交流。

5. 接口隔離原則(Interface Segregation Principle - ISP)

原文:The dependency of one class to another one should depend on the smallest possible interface.

譯文:一個(gè)類(lèi)與另一個(gè)類(lèi)之間的依賴(lài)性肤无,應(yīng)該依賴(lài)于盡可能小的接口先蒋。

理解:不要對(duì)外暴露沒(méi)有實(shí)際意義的接口。也就是說(shuō)宛渐,接口是給別人調(diào)用的竞漾,那就不要去為難別人了,盡可能保證接口的實(shí)用性吧窥翩。她好业岁,我也好。

應(yīng)用:當(dāng)需要對(duì)外暴露接口時(shí)寇蚊,需要再三斟酌笔时,如果真的沒(méi)有必要對(duì)外提供的,就刪了吧仗岸。一旦您提供了允耿,就意味著,您將來(lái)要多做一件事情扒怖,何苦要給自己找事做呢较锡。

6. 依賴(lài)倒置原則(Dependence Inversion Principle - DIP)

原文:High level modules should not depends upon low level modules. Both should depend upon abstractions. Abstractions should not depend upon details. Details should depend upon abstractions.

譯文:高層模塊不應(yīng)該依賴(lài)于低層模塊,它們應(yīng)該依賴(lài)于抽象盗痒。抽象不應(yīng)該依賴(lài)于細(xì)節(jié)蚂蕴,細(xì)節(jié)應(yīng)該依賴(lài)于抽象。

理解:應(yīng)該面向接口編程俯邓,不應(yīng)該面向?qū)崿F(xiàn)類(lèi)編程骡楼。面向?qū)崿F(xiàn)類(lèi)編程,相當(dāng)于就是論事稽鞭,那是正向依賴(lài)(正常人思維)君编;面向接口編程,相當(dāng)于通過(guò)事物表象來(lái)看本質(zhì)川慌,那是反向依賴(lài)吃嘿,即依賴(lài)倒置(程序員思維)祠乃。

應(yīng)用:并不是說(shuō),所有的類(lèi)都要有一個(gè)對(duì)應(yīng)的接口兑燥,而是說(shuō)亮瓷,如果有接口,那就盡量使用接口來(lái)編程吧降瞳。

將以上六大原則的英文首字母拼在一起就是 SOLID(穩(wěn)定的)嘱支,所以也稱(chēng)之為 SOLID 原則。

只有滿(mǎn)足了這六大原則挣饥,才能設(shè)計(jì)出穩(wěn)定的軟件架構(gòu)除师!但它們畢竟只是原則,只是四人幫給我們的建議扔枫,有些時(shí)候我們還是要學(xué)會(huì)靈活應(yīng)變汛聚,千萬(wàn)不要生搬硬套,否則只會(huì)把簡(jiǎn)單問(wèn)題復(fù)雜化短荐,切記倚舀!

補(bǔ)充設(shè)計(jì)原則

1. 組合 / 聚合復(fù)用原則(Composition/Aggregation Reuse Principle - CARP)

當(dāng)要擴(kuò)展類(lèi)的功能時(shí),優(yōu)先考慮使用組合忍宋,而不是繼承痕貌。這條原則在 23 種經(jīng)典設(shè)計(jì)模式中頻繁使用,如:代理模式糠排、裝飾模式舵稠、適配器模式等∪牖拢可見(jiàn)江湖地位非常之高柱查!

2. 無(wú)環(huán)依賴(lài)原則(Acyclic Dependencies Principle - ADP)

當(dāng) A 模塊依賴(lài)于 B 模塊,B 模塊依賴(lài)于 C 模塊云石,C 依賴(lài)于 A 模塊,此時(shí)將出現(xiàn)循環(huán)依賴(lài)研乒。在設(shè)計(jì)中應(yīng)該避免這個(gè)問(wèn)題汹忠,可通過(guò)引入“中介者模式”解決該問(wèn)題。

3. 共同封裝原則(Common Closure Principle - CCP)

應(yīng)該將易變的類(lèi)放在同一個(gè)包里雹熬,將變化隔離出來(lái)宽菜。該原則是“開(kāi)放 - 封閉原則”的延生。

4. 共同重用原則(Common Reuse Principle - CRP)

如果重用了包中的一個(gè)類(lèi)竿报,那么也就相當(dāng)于重用了包中的所有類(lèi)铅乡,我們要盡可能減小包的大小。

5. 好萊塢原則(Hollywood Principle - HP)

好萊塢明星的經(jīng)紀(jì)人一般都很忙烈菌,他們不想被打擾阵幸,往往會(huì)說(shuō):Don’t call me, I’ll call you. 翻譯為:不要聯(lián)系我花履,我會(huì)聯(lián)系你。對(duì)應(yīng)于軟件設(shè)計(jì)而言挚赊,最著名的就是“控制反轉(zhuǎn)”(或稱(chēng)為“依賴(lài)注入”)诡壁,我們不需要在代碼中主動(dòng)的創(chuàng)建對(duì)象,而是由容器幫我們來(lái)創(chuàng)建并管理這些對(duì)象荠割。

其他設(shè)計(jì)原則

1. 不要重復(fù)你自己(Don’t repeat yourself - DRY)

不要讓重復(fù)的代碼到處都是妹卿,要讓它們足夠的重用,所以要盡可能地封裝蔑鹦。

2. 保持它簡(jiǎn)單與傻瓜(Keep it simple and stupid - KISS)

不要讓系統(tǒng)變得復(fù)雜夺克,界面簡(jiǎn)潔,功能實(shí)用嚎朽,操作方便铺纽,要讓它足夠的簡(jiǎn)單,足夠的傻瓜火鼻。

3. 高內(nèi)聚與低耦合(High Cohesion and Low Coupling - HCLC)

模塊內(nèi)部需要做到內(nèi)聚度高室囊,模塊之間需要做到耦合度低。

4. 慣例優(yōu)于配置(Convention over Configuration - COC)

盡量讓?xiě)T例來(lái)減少配置魁索,這樣才能提高開(kāi)發(fā)效率融撞,盡量做到“零配置”。很多開(kāi)發(fā)框架都是這樣做的粗蔚。

5. 命令查詢(xún)分離(Command Query Separation - CQS)

在定義接口時(shí)尝偎,要做到哪些是命令,哪些是查詢(xún)鹏控,要將它們分離致扯,而不要揉到一起。

6. 關(guān)注點(diǎn)分離(Separation of Concerns - SOC)

將一個(gè)復(fù)雜的問(wèn)題分離為多個(gè)簡(jiǎn)單的問(wèn)題当辐,然后逐個(gè)解決這些簡(jiǎn)單的問(wèn)題抖僵,那么這個(gè)復(fù)雜的問(wèn)題就解決了。難就難在如何進(jìn)行分離缘揪。

7. 契約式設(shè)計(jì)(Design by Contract - DBC)

模塊或系統(tǒng)之間的交互耍群,都是基于契約(接口或抽象)的,而不要依賴(lài)于具體實(shí)現(xiàn)找筝。該原則建議我們要面向契約編程蹈垢。

8. 你不需要它(You aren’t gonna need it - YAGNI)

不要一開(kāi)始就把系統(tǒng)設(shè)計(jì)得非常復(fù)雜,不要陷入“過(guò)度設(shè)計(jì)”的深淵袖裕。應(yīng)該讓系統(tǒng)足夠的簡(jiǎn)單曹抬,而卻又不失擴(kuò)展性,這是其中的難點(diǎn)急鳄。

想學(xué)習(xí)交流HashMap,nginx谤民、dubbo堰酿、Spring MVC,分布式、高性能高可用赖临、redis胞锰、jvm、多線程兢榨、netty嗅榕、kafka、的加群:650385180加群獲取資料學(xué)習(xí)吵聪,無(wú)工作經(jīng)驗(yàn)不要加哦凌那!

一個(gè)成功的項(xiàng)目,離不開(kāi)每個(gè)人的努力吟逝,分享下我曾經(jīng)的項(xiàng)目管理經(jīng)驗(yàn)帽蝶。

給大家提出以下 10 點(diǎn)建議及其目標(biāo):

Sprint 第一天,需要將目標(biāo)定義清楚块攒,并讓團(tuán)隊(duì)所有人都知道「確保建立一致的目標(biāo)并使之明確」励稳;

若出現(xiàn)需求變更,則優(yōu)先排到下次迭代囱井,特殊情況需特殊處理「確保本次迭代可以按時(shí)完工」驹尼;

Scrum Master 將迭代中的需求分解為任務(wù),每個(gè)任務(wù)只能有一個(gè)任務(wù)負(fù)責(zé)人庞呕,且不超過(guò)一個(gè)人天「確保每日任務(wù)可評(píng)估」新翎;

讓 Product Owner 直接與相關(guān)開(kāi)發(fā)人員確定需求,Scrum Master 需一同參與「確保需求與實(shí)現(xiàn)不會(huì)發(fā)生偏差」住练;

每日定時(shí)站會(huì)地啰,時(shí)長(zhǎng)不超過(guò) 15 分鐘,規(guī)模不要太大「確保任務(wù)完成情況與計(jì)劃保持一致」讲逛;

每日進(jìn)行一次代碼評(píng)審亏吝,由 Scrum Master 負(fù)責(zé),并在次日將評(píng)審結(jié)果通知給相關(guān)開(kāi)發(fā)人員「確保代碼質(zhì)量不要下降」盏混;

各個(gè)團(tuán)隊(duì)的 Scrum Master 保持每日溝通一次蔚鸥,時(shí)間不要超過(guò) 15 分鐘「確保項(xiàng)目管理不會(huì)出現(xiàn)風(fēng)險(xiǎn)」;

每次迭代結(jié)束括饶,讓大家稍微放松一下,可提供一些團(tuán)隊(duì)活動(dòng)来涨,比如聚餐「確保團(tuán)隊(duì)能夠更加凝聚」图焰;

Scrum Master 需要給團(tuán)隊(duì)一些承諾,比如項(xiàng)目獎(jiǎng)金或特殊福利等「確保團(tuán)隊(duì)更加有激情」蹦掐;

對(duì)于情緒異常的員工技羔,Scrum Master 需及時(shí)與其溝通「確保不要讓一個(gè)人的情緒影響整個(gè)團(tuán)隊(duì)」僵闯;

此外,作為項(xiàng)目管理者藤滥,需要不斷在團(tuán)隊(duì)中加強(qiáng)以下 5 點(diǎn)文化:

方向一致

當(dāng)面溝通

全情投入

充分信任

說(shuō)到做到

真正的開(kāi)源并非只是代碼的開(kāi)源鳖粟,而是思想的開(kāi)源

談?wù)勎覍?duì)「開(kāi)源」的看法,國(guó)內(nèi)的開(kāi)源的現(xiàn)在如何拙绊,對(duì)比國(guó)外呢向图?

我個(gè)人認(rèn)為,真正的開(kāi)源并非只是代碼的開(kāi)源标沪,而是思想的開(kāi)源榄攀。在做開(kāi)源項(xiàng)目之前,建議能將自己的想法共享出來(lái)金句,而不是 埋頭閉門(mén)造車(chē)檩赢。我不反對(duì)“重造輪子”,因?yàn)槲覀冃枰玫妮喿游ツ喿雍昧塑?chē)子才能跑得快贞瞒。凡是有利也有弊,我們也不能盲目地選擇開(kāi)源技術(shù)趁曼,因?yàn)椴⒉皇沁m合 別人的技術(shù)就適合自己军浆,而是需要根據(jù)自身的需求,選擇最適合的開(kāi)源技術(shù)彰阴,搭建恰如其分的架構(gòu)瘾敢。

有大量的新技術(shù),我首先會(huì)去關(guān)注它尿这,了解它是做什么的簇抵,可以解決什么問(wèn)題,但我一開(kāi)始絕不會(huì)去深入研究它射众,更不會(huì)去看它的源碼碟摆,因?yàn)橐坏┯龅竭@方面的需求場(chǎng)景,我就會(huì)從這個(gè)“知識(shí)庫(kù)”中去尋找最好的解決方案,如果仍然尋找不到最合適的開(kāi)源技術(shù),我才會(huì)嘗試自己去實(shí)現(xiàn)绰精。

技術(shù)人的歸途

走技術(shù)這條路趴泌,歸途是什么?是否轉(zhuǎn)型又該如何抉擇呢杀狡?

至少有好幾條路線是可以走的,比如:深入技術(shù)、轉(zhuǎn)型做產(chǎn)品轩缤、轉(zhuǎn)型做管理等,需要根據(jù)自己的特長(zhǎng)和性格來(lái)選擇,做自己喜歡的事情火的。

從技術(shù)轉(zhuǎn)管理壶愤,對(duì)自身的要求比較高,說(shuō)具體點(diǎn)馏鹤,需要看自己的情商征椒,為人處世的經(jīng)驗(yàn),與人溝通的技巧湃累,自己也需要有足夠的胸懷勃救,去包容一些事情,還需要自己有足夠的人格魅力去吸引別人脱茉,讓別人愿意跟著你一起做事剪芥。管理有些東西是很難從書(shū)本上學(xué)到的,但一些經(jīng)典的管理理論是必須要去學(xué)的琴许。

相比較而言税肪,繼續(xù)深入技術(shù)或者從技術(shù)轉(zhuǎn)產(chǎn)品會(huì)容易一些了,因?yàn)楹芏鄷r(shí)候都不太需要與人打交道榜田。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末益兄,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子箭券,更是在濱河造成了極大的恐慌净捅,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,744評(píng)論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件辩块,死亡現(xiàn)場(chǎng)離奇詭異蛔六,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)废亭,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,505評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門(mén)国章,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人豆村,你說(shuō)我怎么就攤上這事液兽。” “怎么了掌动?”我有些...
    開(kāi)封第一講書(shū)人閱讀 163,105評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵四啰,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我粗恢,道長(zhǎng)柑晒,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,242評(píng)論 1 292
  • 正文 為了忘掉前任眷射,我火速辦了婚禮匙赞,結(jié)果婚禮上恋追,老公的妹妹穿的比我還像新娘。我一直安慰自己罚屋,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,269評(píng)論 6 389
  • 文/花漫 我一把揭開(kāi)白布嗅绸。 她就那樣靜靜地躺著脾猛,像睡著了一般。 火紅的嫁衣襯著肌膚如雪鱼鸠。 梳的紋絲不亂的頭發(fā)上猛拴,一...
    開(kāi)封第一講書(shū)人閱讀 51,215評(píng)論 1 299
  • 那天,我揣著相機(jī)與錄音蚀狰,去河邊找鬼愉昆。 笑死,一個(gè)胖子當(dāng)著我的面吹牛麻蹋,可吹牛的內(nèi)容都是我干的跛溉。 我是一名探鬼主播,決...
    沈念sama閱讀 40,096評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼扮授,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼芳室!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起刹勃,我...
    開(kāi)封第一講書(shū)人閱讀 38,939評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤堪侯,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后荔仁,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體伍宦,經(jīng)...
    沈念sama閱讀 45,354評(píng)論 1 311
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,573評(píng)論 2 333
  • 正文 我和宋清朗相戀三年乏梁,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了次洼。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,745評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡掌呜,死狀恐怖滓玖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情质蕉,我是刑警寧澤势篡,帶...
    沈念sama閱讀 35,448評(píng)論 5 344
  • 正文 年R本政府宣布,位于F島的核電站模暗,受9級(jí)特大地震影響禁悠,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜兑宇,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,048評(píng)論 3 327
  • 文/蒙蒙 一碍侦、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦瓷产、人聲如沸站玄。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,683評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)株旷。三九已至,卻和暖如春尔邓,著一層夾襖步出監(jiān)牢的瞬間晾剖,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,838評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工梯嗽, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留齿尽,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,776評(píng)論 2 369
  • 正文 我出身青樓灯节,卻偏偏與公主長(zhǎng)得像循头,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子炎疆,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,652評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容