程式員晉級CTO之路的8大準則

来源:https://www.cnblogs.com/Javame/archive/2018/08/23/9523652.html
-Advertisement-
Play Games

推薦閱讀: 大數據智慧平臺落地方案 Nginx + 阿裡雲SSL + tomcat 實現https訪問代理 永遠別忘了TD 再確認測試代碼前,先找別人幫你檢查下是否無誤。在別人做之前儘量檢查出bug並且將其處理好。代碼審查最重要規則是對即將提交的代碼中查找問題——你需要做的就是確認代碼是正確的。 2 ...


推薦閱讀:

大數據智慧平臺落地方案

 Nginx + 阿裡雲SSL + tomcat 實現https訪問代理

 

  1. 永遠別忘了TD

再確認測試代碼前,先找別人幫你檢查下是否無誤。在別人做之前儘量檢查出bug並且將其處理好。代碼審查最重要規則是對即將提交的代碼中查找問題——你需要做的就是確認代碼是正確的。

2.儘可能的自動化

這裡有幾個非常好的Java工具比如:PMD, Checkstyle, Findbugs等等。問題是當利用這些工具查找後人們還肯花時間去做代碼審查嗎?

使用這些工具前,為這些工具制定一套細則是非常重要的。這能夠確保你使用同一個代碼審核標準從而區別於那些常被用於20世紀老式的代碼審查規範。在理想的狀態下,這些工具可運行在各種版本控制系統上通過hook審查每個代碼。如果該代碼不好將被阻止在外。

3.尊重設計

在我開始從事Java項目早期時,用代碼審查的方式已為時已晚。因為當你檢查代碼問題時實際上給你的設計造成了缺陷。設計模式被誤解,一些繁雜的附屬物質混入進來或者開發者脫離了主題。

審查會混亂你的觀點。或許你會反駁:“這是代碼審查而不是設計審查”。這時一些爛攤子必然會接踵而至。為了避免這些問題發生,我們改變了設計的初衷。代碼審查會牽連到很多面,無論是設計還是設計審查。事實上,我們通過設計審查要比代碼審而得多的衝擊要多的多。設計需要更高的質量和靈感,我們應該避免一些複雜的思維。

4. 統一的風格指南

即使是使用自動化工具(諸如Checkstyle,Findbugs等)也應避免不必要的風格衝突,你的項目應該具備有風格指南。(在儘可能的情況下)堅持Java協議的規範標準。嘗試著為你的項目介紹制定一個“詞典”,這就意味著,當涉及這個代碼時,查看該代碼的用法和環境是否適宜,這些都很容易被檢測出。

5. 挑選適宜的工具

如果開發者都在使用Eclipse開發工具( Eclipse IDE插件Jupiter),你可以通過你的方式來查看代碼、調試代碼甚至可使用Eclipse IDE上的一切東西當來幫助你在審查代碼時更加的便捷。但是,如果大家沒有使用同一個IDE(或者該IDE沒有給你的工作帶來方便)你可以考慮Review Board. ,它是個不錯的選擇。

6.請記住每個項目都不同

也許你在採用以前的項目方法工作,但是,請記住每個項目之間是不同的。每一個項目都有特定的架構(高併發或是高分散),有特定的文化(或許很多人喜歡使用Eclipse),並使用特定的工具(maven or ant)。難道你想照葫蘆畫瓢?OK,請記住,不同的項目有不同的工作方法。

7.懂得取捨

代碼審查需要積極和細緻而不是賣弄學問。你會因為一些細微的瑣事讓你緊張而導致項目失敗或是花費公司成本嗎?記住,千萬不要這樣。理清頭緒,換個角度想想,改變自己的心態而不是記掛著去改變別人。

8. Be buddies

在我看來,稱之為“buddy reviews”(別人會叫“over the shoulder”)非常好。A buddy review是指與其他團隊成員每隔一到兩天以非正式的形式討論,並且快速的瀏覽(5-10分鐘)對方的代碼。這種方法可以幫助你:

1. 及早的發現問題

2. 總是很快的知道該乾什麼

3. 代碼審查無須過長,因為你只需要查看新的代碼,舊的代碼會很快趕上

4. 這種非正式的場合——沒有緊張感,很有趣!

5. 可以定期的交換想法

buddy reviewing在團隊中是一種很好的工作方式,當某人在團隊中出現問題時可以及早的發現。這不僅可以幫助大家,還可以交換彼此的進度和想法。

總之,如果你的項目正在進行代碼審查,應該做到快速、有效、不浪費別人的時間。正如文章所說的,這幾點非常重要。代碼審查用意是在代碼提交前找到其中的問題。


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 一般來講深複製主要是為了複製js對象中的引用類型,引用類型在普通的賦值操作下相當於是引用,修改複製對象也會影響原對象,簡單的方法的話可以使用JSON.parse(JSON.stringify(obj)) 來實現深複製 然而這是沒有考慮對象中有函數的情況,用var b = JSON.parse(JSO ...
  • html js ...
  • 問題描述: 函數的結構如上圖所示,在調用該函數的時候,瀏覽器報錯: 分析原因: 在 js 的語法中,如果語句獨占一行,通常可以省略句末的分號 但實際上 js 解析代碼的時候,只有在句末缺少分號就無法正常運行的時候,才會自動填補分號 如果前後的語句能夠組成一個語法正確的語句,則不會自動填補分號 上面的 ...
  • 最近在項目中有這麼一個需求,就是上傳一個視頻文件,然後要獲取視頻文件的第一幀圖片,這個可以通過canvas獲取得到,得到的是一個dataURL,之後還要將這個圖片上傳到雲,這個時候如何操作就不清楚了,於是乎,google一番,總結如下: 將dataURL轉成Blob 利用formData 非同步上傳 ...
  • 工廠方法模式分為三種: 一、普通工廠模式,就是建立一個工廠類,對實現了同一介面的一些類進行實例的創建。首先看下關係圖: 舉例如下:(我們舉一個發送郵件和簡訊的例子) 首先,創建二者的共同介面: 其次,創建實現類: 最後,建工廠類: 我們來測試下: 輸出:this is sms sender! 二、多 ...
  • TCP的三次握手與四次揮手 一、TCP(Transmission Control Protocol 傳輸控制協議) 二、TCP報文段(封裝在IP數據報中) 1、埠號1)源埠號:發送方進程對應的埠號,源IP和埠的作用就是標誌報文的返回地址。2)目標埠號:對應的是接收端的進程,接收端收到數據段 ...
  • 前言 之前幾個章節,大部分都是算介紹springboot的一些外圍配置,比如日誌配置等。這章節開始,開始總結一些關於springboot的綜合開發的知識點。由於SpringBoot本身是基於Spring和SpringMvc等各類spring家族的一個解決方案,可快速進行集合。故相關知識點其實大部分都 ...
  • 相關jar包分享:struts2+hibernate3+spring3 以及aop ,mysql,以及整合必須包。 鏈接:https://pan.baidu.com/s/1nCHmSsKU0hiV8DTj_V03sQ 密碼:29nf 在學習spring和hibernate的基礎後,試著將三大框架整合 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...