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