摘要:前言到今天為止,正好是工作一年了。一年里有過折磨痛苦,有過成就感,一年后很欣慰能看到自己是有所收獲的。自己做出了一件很棒的事情完全可以拿去和別人炫耀,比如你用了一個(gè)很好的設(shè)計(jì)模式,比如你優(yōu)化了一個(gè)功能讓他快了倍,比如你開發(fā)了一個(gè)很棒的工具。
前言
到今天為止,正好是工作一年了。
一年里有過折磨痛苦,有過成就感,一年后很欣慰能看到自己是有所收獲的。
記錄如下,如有不當(dāng),還望指點(diǎn)。
看到別人寫出的bug,自己也很大可能會(huì)犯同樣的錯(cuò)誤。
從bug中學(xué)習(xí),每一個(gè)bug都會(huì)對(duì)自己有警示的作用,或許你的定時(shí)任務(wù)有問題,那么完全可以想想,如果上線了出問題怎么辦,是否有補(bǔ)償機(jī)制,如果要補(bǔ)償如何處理。并找到根源,然后思考這個(gè)根源會(huì)影響到哪些功能。
絕對(duì)不要放過一個(gè)細(xì)微的問題,之前在使用dubbo的時(shí)候發(fā)現(xiàn)實(shí)體類中如果有Date類型的屬性為空會(huì)導(dǎo)致整個(gè)類為null,同事們采取的做法是用別的類型替代,但是仔細(xì)鉆研一番,看了源碼之后發(fā)現(xiàn)這是dubbo2.5.3使用hessian序列化時(shí)候的一個(gè)自帶的bug,并且定位到了源碼中的某一行。如果不能發(fā)現(xiàn)并很好的避免,如果以后出問題了會(huì)非常棘手??梢赃@么說,項(xiàng)目中的問題,沒有小問題,任何一個(gè)問題都可能毀了一切。
程序員要做的事情應(yīng)該比產(chǎn)品提供的需求更多,包括后臺(tái)的管理,一些意外情況的處理,甚至之前說到的定時(shí)任務(wù)的補(bǔ)償,都可以形成管理模塊進(jìn)行開發(fā)。
問題的最小場景的還原,當(dāng)面對(duì)一個(gè)問題的時(shí)候,應(yīng)該能夠迅速的縮小問題的范圍,然后定位到問題結(jié)癥所在,再予以解決,這是一個(gè)經(jīng)驗(yàn)的問題,還是需要直覺和積累,而直覺來源于經(jīng)驗(yàn)。
開發(fā)的過程中要考慮越來越多的事情,性能,穩(wěn)定,異常,安全,復(fù)用性,兼容性等等,做到了這些,代碼將會(huì)慢慢變成一件藝術(shù)品。
項(xiàng)目的安全性,包括常見的SQL注入,XSS,CSRF,DDOS,cookie劫持等等的比較容易防御但是卻能造成很大危害的漏洞,應(yīng)該設(shè)計(jì)時(shí)候就予以考慮,而不是開發(fā)完了再去補(bǔ)。
功能的整體性,如果有一個(gè)較大的系統(tǒng)需要開發(fā),那么最好能先讓開發(fā)人員了解整體,最最好的情況當(dāng)然是整個(gè)需求一起給出,這樣方便開發(fā)人員從整體上設(shè)計(jì),如果一個(gè)龐大的體系今天一個(gè)需求明天一個(gè)需求,而且這些需求彼此關(guān)聯(lián),后期的開發(fā)將會(huì)舉步維艱。
架構(gòu)的遵循,傳統(tǒng)的J2EE層次,現(xiàn)在使用到的包括Controller,F(xiàn)acade,Service,Dao層級(jí)。前端則是HTML和JS的配合,模板框架配合渲染HTML。那么當(dāng)使用的時(shí)候Controller應(yīng)該重點(diǎn)負(fù)責(zé)對(duì)應(yīng)起URL,進(jìn)行權(quán)限的校驗(yàn),session的檢查等等并調(diào)用具體的facade層次,facade更多的是業(yè)務(wù)上的邏輯,比如轉(zhuǎn)賬那么service應(yīng)該有兩個(gè)接口,一個(gè)加錢一個(gè)減錢,facade去調(diào)用這兩個(gè)接口,而不是service直接一個(gè)接口完成了加錢減錢,facade進(jìn)行了垂直的調(diào)用,并且如果要求密碼的話,我更傾向于密碼校驗(yàn)在facade(那么對(duì)應(yīng)的service也要有校驗(yàn)接口),而在serivce 就不必校驗(yàn)密碼,畢竟service提供了加錢減錢的服務(wù),而facade才是真正的業(yè)務(wù)。在我看來這樣的設(shè)計(jì)才能讓service的復(fù)用性更高,各層級(jí)層次清晰分明。對(duì)團(tuán)隊(duì)的配合至關(guān)重要。
細(xì)節(jié)上注重,比如mybatis中$和#的區(qū)別,整體上關(guān)注,比如hibernate和mybatis的優(yōu)缺點(diǎn),redis和其他緩存的對(duì)比等等。
注釋非常重要,尤其接口的注釋,應(yīng)該說明這個(gè)接口的功能,傳入?yún)?shù)的類型及含義,返回值的類型及含義,如果是數(shù)字類型那么-101234各代表了什么。對(duì)于別人的代碼的修改也應(yīng)寫好注釋,修改的起始位置,結(jié)束位置,修改人,修改時(shí)間,為什么修改等等。否則以后別人問你為什么改可能自己都記不住。
日志的記錄,在重要的業(yè)務(wù)流程或者容易出現(xiàn)異常的地方加入較多的日志,平常的代碼也要加入日志便于上線之后出了問題查找問題原因所在。
不是特別忙碌的情況下可以多接觸新的技術(shù)或者語言,一門新的語言可能讓你大開眼界原來還有這樣的語法,接觸的越多,思路會(huì)越廣,也會(huì)越聰明。程序員不能停止學(xué)習(xí)。
習(xí)慣任何一個(gè)人都有值得學(xué)習(xí)的地方,或許他性格沉穩(wěn),或許他樂于鉆研,或許他感興趣于新興技術(shù)。
保持清醒的頭腦,忙碌也要適當(dāng),快速的反應(yīng)和清晰的思路才是最佳的狀態(tài),而不是渾渾噩噩的癱在電腦前做著一些搬磚的工作。
對(duì)于已經(jīng)成型的功能點(diǎn),如果進(jìn)行了改進(jìn)或者安全性的加強(qiáng),應(yīng)該在改進(jìn)的同時(shí)整理優(yōu)化點(diǎn)或者修改點(diǎn),提交測(cè)試的時(shí)候一并通知測(cè)試人員,這樣能讓力量用在刀刃上,測(cè)試測(cè)的準(zhǔn),也省時(shí)間。
多多思考如何提高工作效率,這種思考有兩種,第一種,如何提高自身效率,包括代碼習(xí)慣,IDE的使用,小技巧的積累,甚至作息時(shí)間上的調(diào)整等等。第二種就是如何提高所在團(tuán)隊(duì)的效率了,所處的團(tuán)隊(duì)高效,活躍,那么自身也會(huì)受益頗多。所以可以開發(fā)小的工具供大家使用,比如當(dāng)大家一起去完成一些技術(shù)含量比較低的工作的時(shí)候,開發(fā)了一個(gè)小工具來減少一些無腦的工作。比如當(dāng)大家每天啟動(dòng)項(xiàng)目的時(shí)候要啟動(dòng)那么多微服務(wù),可以和管理者溝通是否搭建一個(gè)公用的微服務(wù)減少大家啟動(dòng)的時(shí)間以及PC內(nèi)存的占用,比如當(dāng)大家痛苦于登記JIRA上的bug修改記錄的時(shí)候,是不是可以考慮開發(fā)一個(gè)小工具造福全人類呢~
跟住趨勢(shì),承受向好方向發(fā)展時(shí)候的痛苦,比如最近在從eclipse逐步過渡到使用IDEA,快捷鍵什么的基本不一樣了,用著有點(diǎn)不習(xí)慣,但是能感覺到如果熟練了效率肯定會(huì)高很多(逼格也高)。
不斷的出現(xiàn)技術(shù)上的問題是一件好事情,說明整個(gè)項(xiàng)目是在向前走的。隨著項(xiàng)目組項(xiàng)目業(yè)務(wù)的越來越復(fù)雜,架構(gòu)上的問題也逐漸暴露,所以問題的存在也在推動(dòng)著不斷地進(jìn)行優(yōu)化。
溝通如果有新的同事或者剛剛加入項(xiàng)目組的同事,更傾向于首先讓其了解整個(gè)項(xiàng)目的整體作用,然后講到他即將接觸到的相對(duì)獨(dú)立的模塊的功能,然后再細(xì)致的講解業(yè)務(wù)上的流程,數(shù)據(jù)的流轉(zhuǎn),以及一些特殊的情況。先了解最主線的任務(wù),然后再講解各種不正常的情況。從大的概念上了解,然后再比較全面的了解一個(gè)小功能,再輻射到更大的模塊,這也是我自己學(xué)習(xí)和滲透項(xiàng)目的一個(gè)思路。
自己做出了一件很棒的事情完全可以拿去和別人炫耀,比如你用了一個(gè)很好的設(shè)計(jì)模式,比如你優(yōu)化了一個(gè)功能讓他快了10倍,比如你開發(fā)了一個(gè)很棒的工具?;蛟S你的炫耀可以讓別人知道你這么做的優(yōu)點(diǎn),然后向你學(xué)習(xí),也或許別人聽了之后給你了一個(gè)更棒的建議。成就感是最好的動(dòng)力,每個(gè)人都希望被肯定。
清晰的說明,耐心的講解,必要的配合一些畫圖,會(huì)讓溝通事半功倍,如今的開發(fā)節(jié)奏誰都不能獨(dú)自開發(fā)一個(gè)很棒的應(yīng)用,溝通和表達(dá)在團(tuán)隊(duì)中絕對(duì)是非常重要的能力。
項(xiàng)目相關(guān)開發(fā)的時(shí)間不應(yīng)舍棄設(shè)計(jì),單元測(cè)試,模塊測(cè)試,全面的自測(cè),以及聯(lián)調(diào)的階段,如果時(shí)間安排上忽視了這些,那么必然要在后來的修改bug時(shí)間,或者處理緊急問題的時(shí)間上找回來,而且一定會(huì)虧損更多的時(shí)間。
公司在將項(xiàng)目轉(zhuǎn)化為產(chǎn)品的過程中,隨著產(chǎn)品包含的范圍不斷的擴(kuò)大,業(yè)務(wù)的不斷整合,開發(fā)人員漸漸的不能從全局的角度來審視整個(gè)產(chǎn)品,而現(xiàn)有架構(gòu)的特點(diǎn)對(duì)于業(yè)務(wù)的理解要求還是比較高的。所以全局上了解了業(yè)務(wù),才能寫出高質(zhì)量,復(fù)用性高,可靠性高的代碼,這對(duì)程序員來說是一個(gè)挑戰(zhàn)。
需求邊界的劃分清晰也是非常重要的一件事情,當(dāng)然了,這不是一個(gè)普通的程序員能夠掌握的事情,但是如果需求邊界不清晰,需求不斷的變更或者增加,對(duì)整個(gè)項(xiàng)目組來說都是一件非常耗神耗力的事情。
項(xiàng)目組人員越來越多的時(shí)候,各個(gè)開發(fā)人員之間技術(shù)的差異,或者因?yàn)闃I(yè)務(wù)上的不清晰導(dǎo)致的代碼質(zhì)量的問題比較嚴(yán)重,畢竟項(xiàng)目的水平取決于最差的一塊。
周邊問題多的時(shí)候盡量保持平穩(wěn)的心情,畢竟急躁不能帶來任何正面的效果,其實(shí)這個(gè)也是需要磨練的,光是說肯定沒用的,經(jīng)歷了很多折磨的事情才能淡定的面對(duì)一些很蛋疼的情況。
理解同事,無論是產(chǎn)品還是測(cè)試,雖然沒有感同身受但是也應(yīng)該盡量的站在別人的角度思考,自己做成什么樣子能對(duì)大家都好,提高大家的工作效率。
注意身體健康,身體是革命的本錢啊~所以基本隔一天去公司的健身房鍛煉一次,保證一個(gè)好的體魄,旺盛的精力才能更好的生活和工作。
興趣愛好也很重要,如果每天的生活就是起床,敲代碼,睡覺,再起床的話,真的只是活著而不是生活了,平時(shí)喜歡彈彈烏克麗麗唱唱歌,拍拍照片旅旅游,和同學(xué)同事開黑LOL,要懂得休息和放松~
最后表達(dá)能力真的非常非常重要,清晰,扼要。
要有責(zé)任心。
重視細(xì)節(jié)。
盡量給團(tuán)隊(duì)加buff。
自身能力橫向的擴(kuò)展,知識(shí)面的拓寬。
自身能力縱向的深入,對(duì)已知技術(shù)的深入理解。
你不該只是活著,要去生活。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/67389.html
摘要:第三部分對(duì)于參加工作年到年的同學(xué)。我當(dāng)時(shí)看的是大話設(shè)計(jì)模式這本書,并且寫了完整版的設(shè)計(jì)模式博客。這一年,你必須對(duì)于設(shè)計(jì)模式了如指掌,大話設(shè)計(jì)模式可以作為你的開端。與此同時(shí),這個(gè)階段你要做的事情還遠(yuǎn)不止如此。 這一部分其實(shí)也算是今天的重點(diǎn),這一部分用來回答很多群里的朋友所問過的問題,那就是大佬你是如何學(xué)習(xí)Java的,能不能給點(diǎn)建議? 今天我是打算來點(diǎn)干貨,因此咱們就不說一些學(xué)習(xí)方法和技巧...
摘要:不覺間,已悄然離去恍然后,正慢慢襲來。已完成一期內(nèi)容,只包含買家點(diǎn)餐功能,二期準(zhǔn)備做賣家及支付功能。經(jīng)過考慮和評(píng)估,我決定對(duì)這兩個(gè)選擇進(jìn)行一個(gè)折中。項(xiàng)目部署,及代理轉(zhuǎn)發(fā)等配置。發(fā)現(xiàn)最近,已經(jīng)對(duì)非技術(shù)類書籍少了很多興趣。 不覺間,2016已悄然離去;恍然后,2017正慢慢襲來。 又到了總結(jié)過去,展望未來的時(shí)候了,那就先總結(jié)16年的收獲和經(jīng)驗(yàn)教訓(xùn),再展望17年對(duì)自己及行業(yè)的一些期望吧。 1...
摘要:不覺間,已悄然離去恍然后,正慢慢襲來。已完成一期內(nèi)容,只包含買家點(diǎn)餐功能,二期準(zhǔn)備做賣家及支付功能。經(jīng)過考慮和評(píng)估,我決定對(duì)這兩個(gè)選擇進(jìn)行一個(gè)折中。項(xiàng)目部署,及代理轉(zhuǎn)發(fā)等配置。發(fā)現(xiàn)最近,已經(jīng)對(duì)非技術(shù)類書籍少了很多興趣。 不覺間,2016已悄然離去;恍然后,2017正慢慢襲來。 又到了總結(jié)過去,展望未來的時(shí)候了,那就先總結(jié)16年的收獲和經(jīng)驗(yàn)教訓(xùn),再展望17年對(duì)自己及行業(yè)的一些期望吧。 1...
閱讀 2084·2021-11-16 11:45
閱讀 582·2021-11-04 16:12
閱讀 1386·2021-10-08 10:22
閱讀 861·2021-09-23 11:52
閱讀 4146·2021-09-22 15:47
閱讀 3523·2021-09-22 15:07
閱讀 494·2021-09-03 10:28
閱讀 1742·2021-09-02 15:21