什么样的编程姿势才没有bug
工作中,我們總會遇到這樣那樣的的問題,
以下的問題是我分析上家公司和這家公司總結(jié)出來的,不喜可噴,我會假裝看不見,哈哈!
目錄
- 一般bug產(chǎn)生的原因有哪些?
- 什么樣的編程姿勢才沒有bug
- 1. 制定合理的開發(fā)排期
- 2. 合理招聘團隊技術(shù)人材
- 3. 制定團隊協(xié)作表
- 4. 強制要求自測
- 3. 后端開發(fā)一定要能本地運行最新的前端代碼
- 4.技術(shù)負(fù)責(zé)人還得多做的一些事兒
- 5. 技術(shù)領(lǐng)導(dǎo)一定要是最有責(zé)任心和積極的一個人
- 6.利用post man批量測試
- 7. 培養(yǎng)員工主人翁意識
- 8. 招一個有軟件設(shè)計思想的產(chǎn)品
一般bug產(chǎn)生的原因有哪些?
- 開發(fā)時間緊,開發(fā)不注意細(xì)節(jié)上問題
- 團隊整體能力有待提高
- 領(lǐng)導(dǎo)不合格
- 員工太懶、主人翁意識不強
- 溝通不到位
- 產(chǎn)品設(shè)計不合理
什么樣的編程姿勢才沒有bug
1. 制定合理的開發(fā)排期
開發(fā)時間在影響開發(fā)質(zhì)量上,絕對排得上第一。但要記住,非技術(shù)領(lǐng)導(dǎo)參與排期是大忌。
接口排期:我見過的項目和聽過的一些朋友的項目基本都是按這種方式排的。這里的排期包括客戶端與服務(wù)端
| 難度 | 開發(fā)排期 | 說明 |
| 容易 | 3個/天 | 一般是指只查單表的下拉列表 |
| 中等 | 2個/天 | 一般是指多表聯(lián)查,需要掌握的產(chǎn)品邏輯比較寬泛 |
| 難 | 1個/天 ~ 1個/周 | 一般是指不僅需要掌握寬泛的產(chǎn)品邏輯,代碼里也需要作復(fù)雜的計算與判斷 |
有些朋友會覺得,實際寫接口可能要不了那么多時間,其實我也是這樣認(rèn)為。但為什么還是要這樣排呢?這是因為,寫接口稍復(fù)雜點兒的調(diào)用通過只是第一步,我們寫完接口后返回數(shù)據(jù)讓前端人員調(diào)用后,我們還需要針對我們的接口作全面的考慮,即自測。比如邊界測試、權(quán)限測試、根據(jù)不同業(yè)務(wù)試等等。如果自測很負(fù)責(zé)任,你甚至?xí)l(fā)現(xiàn),這點兒時間完全不夠。
2. 合理招聘團隊技術(shù)人材
技術(shù)人材,不止決定了項目的質(zhì)量,還決定了項目進度。
項目的進度上,基本上是前后端一起完事,一般也只差在一天左右。如果相差太多,是有問題的。比如前端抱怨說是后端接口沒有出來,那就說明是項目管理沒有做好,因為這種事是可以避免的。比如,在后端剛開始寫接口的時候,前端可以先寫靜態(tài)頁面,或者前后端先定義數(shù)據(jù)返回格式,前端自己組裝假數(shù)據(jù)。
團隊中的技術(shù)不一定要都是牛人,而是合適的人。從接口排期可以看出,很多活是比較簡單的活,剛畢業(yè)的學(xué)生也能完成的很好,有些活需要一定的經(jīng)驗。個人認(rèn)為一個完整的團隊基本上是:1位負(fù)責(zé)任的資深技術(shù)+1~2個有經(jīng)驗的中級開發(fā)+2~4個好學(xué)的初級開發(fā)。前端和后端基本上都需要種階梯式的人材,我記得我來公司的時候,前端沒有一個經(jīng)驗豐富的人,總的來說還不如我一個后端,我天天寫完后端接口,還得跑去寫前端代碼,那絕對是一個黑暗的時代啊!!!!也許領(lǐng)導(dǎo)最初的想法是為公司省錢吧,加上那段時間也招不到好的人材。
3. 制定團隊協(xié)作表
排期排完了,給大家分配好工作后,一定要制作一張表,讓整個團隊都知道前端和后端每個接口和功能是誰在負(fù)責(zé),這樣大家在有問題的時候,第一時間就知道去找誰。我在項目中經(jīng)常會聽到有人問,這個是你做的嗎?別人回答不是,然后又去找另一個人。你去打擾人家一次,另外幾個人又去打擾人家一次,然后人家又這樣來回打擾你,一來二去,增加溝通成本不說,一看就是個亂烘烘的團隊氛圍。
4. 強制要求自測
自測,是開發(fā)人員最基本的素質(zhì)。在團隊中,你會發(fā)現(xiàn)有些人寫完代碼就覺得自己完事了,還覺得自己代碼效率高。在之前的公司遇到一位小伙伴,他開發(fā)速度是最快的,而bug也是最多的,以至于領(lǐng)導(dǎo)會經(jīng)常讓我給他審查代碼;甚至有時候他不會寫的復(fù)雜代碼也悄悄讓我?guī)退麑憽N铱偸潜局粋€團隊的想法一次次幫了他。
自測這個東西,責(zé)任心強的人一般做得比較好。團隊中態(tài)度懶散、與世不爭的人一般做自測比較敷衍,類似這種人只有責(zé)任化,出了bug作出相應(yīng)的小懲罰才行。上家公司凡是在驗收時出現(xiàn)一個bug,就要請所有開發(fā)吃雪糕,不幸的是,整個華為音樂相關(guān)系統(tǒng)做完也就吃了人家一次雪糕。
3. 后端開發(fā)一定要能本地運行最新的前端代碼
現(xiàn)在的項目基本上都是前后端分離的模式,如果出現(xiàn)了一個問題,但又不知道問題在哪,這時可能就需要前端和后端一起配合排查。但是,在開發(fā)過程中,所有人都比較忙,前端可能會覺得問題是后端導(dǎo)致的,跟他毛線關(guān)系沒有,要他花費時間配合后端,他心里會很不爽,如果真的是后端的問題也確確實實是浪費了他的時間。所以這時就需要后端拿到前端代碼進行自測,不至于同時浪費兩個人的時間。這就需要前端將代碼上傳到公共服務(wù)器,后端開發(fā)人員pull之后,將IP改成自己電腦的服務(wù)器,本地運行起來后,然后一個人安靜的找問題。如果問題找確認(rèn)是自己的,就悄悄的改了;如果是前端的,可以高調(diào)也可以低調(diào)的說是前端的問題。
4.技術(shù)負(fù)責(zé)人還得多做的一些事兒
5. 技術(shù)領(lǐng)導(dǎo)一定要是最有責(zé)任心和積極的一個人
技術(shù)團隊的整個想法,基本上是技術(shù)領(lǐng)導(dǎo)的想法。如果領(lǐng)導(dǎo)都得過且過,那下面的人基本也就那樣了。
6.利用post man批量測試
我們經(jīng)常會遇到這種情況,發(fā)現(xiàn)一個bug,然后費老勁了去改,終于解決了這個問題,測了測發(fā)現(xiàn)沒問題然后就上線。上線沒多久,又出現(xiàn)了另外一個問題,一查,居然是上一次改bug后,影響到另外的接口了。但接口那么多,時間又緊,總不能每改一個問題都手動去點其每一個接口吧,這時我們就可以利用post man的集成測試,自動將跑完所有接口,然后查看是否有接口有問題。
做這件事的前期就得需要前期開發(fā)的時候用post man規(guī)范化測試。
7. 培養(yǎng)員工主人翁意識
公司之前有個外包團隊,合作了近一年的時間。他們的開發(fā)團隊有個兩個最大的問題,一個是領(lǐng)導(dǎo)對下面的技術(shù)要求過低,另一個是下面的人總認(rèn)為自己是在給別人干活。因為是給乙方干,整個團隊天然都會有這種給別人干活的意識。其實自己公司的人,也會有些人覺得是在給別人打工,活是別人的,干得好壞與自己無關(guān)。
怎樣才能有主人翁意識?其實人的行為會受到自身利益、想法、人生態(tài)度等很多影響。要想一個人主動做事還特別上心,那么就要讓這個人成為這件事的利益共同者。
從我自己來說,我做事之所以一直秉持著積極、主動、負(fù)責(zé)任的方式,是因為我從希望自己有個好的做事態(tài)度,我覺得這會是人要成功的必要因素。即使我多次因為公司的某些事想離開的時候,我也會堅持這樣做。當(dāng)然我加班就沒那么積了,哈哈,其實還有是因為我做了手術(shù)后身體不允許我強擼代碼了。雖然我不善于交際,能力也一般般,但我一直希望我以后能往更好的方向發(fā)展,所以我也會很努力的去做每件事。歸根結(jié)底,我把這些與我未來的成長、習(xí)慣養(yǎng)成看成了一種利害關(guān)系。我經(jīng)常和我的小伙伴說,我們雖沒那么高尚的說是為了公司把代碼寫好,但我們要為自己養(yǎng)成一個好的習(xí)慣和態(tài)度以及能力的提高而去把事情做好。
雖然我也是打工的,但從客觀角度看,有些員工如果是以獎勵的方式讓他把一件事干得更好,似乎作用不大。是什么原因呢?這是因為你會發(fā)現(xiàn)人天生就懶、愛玩兒,當(dāng)一個人家里不缺錢花,沒有什么壓力的時候,領(lǐng)導(dǎo)拿一點兒獎勵去換他本可以玩手機的打游戲的時間,似乎根本不可能。不過在中國,有錢人還是少數(shù),哈哈。
8. 招一個有軟件設(shè)計思想的產(chǎn)品
我遇到過最好的產(chǎn)品,是技術(shù)轉(zhuǎn)的產(chǎn)品;就像我遇到過最好的前端是后端轉(zhuǎn)過去的一樣。
一個好的產(chǎn)品,不止要能提煉用戶真正的需求,還需要知道避免設(shè)計一些常規(guī)的影響系統(tǒng)性能的需求。為什么很多開發(fā)都會覺得產(chǎn)品的錢真是拿得太輕松了,是因為產(chǎn)品做的事,開發(fā)只要簡單學(xué)習(xí)一個禮拜之后,也能叫產(chǎn)品。
畢竟從技術(shù)轉(zhuǎn)產(chǎn)品的人也不是那么的多,所以產(chǎn)品人材的招聘上,經(jīng)驗是非很重要的。因為他們在經(jīng)歷了多個項目后,被開發(fā)懟的次數(shù)多了,慢慢就總結(jié)出哪些設(shè)計方式是對整個軟件設(shè)計是不利的。如果產(chǎn)品在源頭就犯了錯,那后面的開發(fā)、測試是要付出更多的代價的。
開發(fā)其實就是產(chǎn)品的第一個用戶,當(dāng)開發(fā)都很難理解需求時,用戶會很輕松理解?開發(fā)至少是完全參與著整個產(chǎn)品。如果產(chǎn)品設(shè)計連開發(fā)看著費勁,那么代碼寫起來肯定也費勁,bug的出現(xiàn)率自然也大不少。等大家辛辛苦苦的開發(fā)完,基本用戶一反饋就是搞不懂,什么玩意兒,罵兩句就不想用了;然后等來的就是,產(chǎn)品重新設(shè)計、開發(fā)重新加班干!!!
總結(jié)
以上是生活随笔為你收集整理的什么样的编程姿势才没有bug的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Spring事务的处理流程、传播属性、及
- 下一篇: 三分钟了解Mysql的表级锁——《深究M