某日看代碼對代碼可讀性的思考
緣起
今天去看編譯模塊的代碼,發現實在是看不進去.究其原因,就是設計得有些混亂.這提醒了我,很多時候寫代碼的時候不會註意到一些設計上的問題.在閱讀別人代碼的時候會非常清晰地表現出來.其中有一些典型的問題.
命名之設計模式
比如使用了某種設計模式,但是命名卻沒有符合那個設計模式的規範.導致看了代碼許久,才反應過來:"原來這裏使用了××設計模式啊".
命名之方法內容
經常有些方法叫:"build××".但是其實裏面的內容遠多於build一個實體對象.而是包含了很多查詢.從宏觀上來說可以這麽做,比較確實最後是build了一個Obj.但是在看代碼的時候就容易忽視這個方法的實現.這麽做其實很不好.
風格混搭
一會用Spring註入,一會用init方法,一會用構造方法.總之,一個初始化過程經常在使用不同的方式去構建.當然,這裏恐怕不是某一個人的問題,如果項目參與的人數多了一些,就容易發生這種情況.
調用鏈路過長
這個問題特指由於功能本身的叠代.導致一些調用鏈路越來越長.而實際上有些類本身沒有解決什麽問題.
某日看代碼對代碼可讀性的思考
相關推薦
某日看代碼對代碼可讀性的思考
發現 叠代 命名 提醒 內容 實體對象 方法 的人 功能 緣起 今天去看編譯模塊的代碼,發現實在是看不進去.究其原因,就是設計得有些混亂.這提醒了我,很多時候寫代碼的時候不會註意到一些設計上的問題.在閱讀別人代碼的時候會非常清晰地表現出來.其中有一些典型的問題. 命名之設計
關於對H264碼流的PS的封裝的相關代碼實現
真心 clip gef 但是 占用 udp 大致 結果 方法 轉自:http://www.cnblogs.com/lidabo/p/6604988.html 1、寫在開始之前: 最近因為新工作要維護別人留下的GB模塊代碼,先熟悉了流程,然後也試著封裝
關於對H264碼流的TS的封裝的相關代碼實現
有效 當前 完成 read ble tco and mark comm 轉自:http://www.cnblogs.com/lidabo/p/6604998.html 1 寫在開始之前 在前段時間有分享一個H264封裝ps流到相關文章的,這次和
html代碼對齊
好的 技術分享 plus storm logs 換行對齊 步驟 span 換行 情景:所有html代碼都在一行裏面,我希望它們能按標準的格式換行對齊 原始代碼如下圖: 步驟一:把文件名後綴改為 xml,文件名現在是1.xml 步驟二:用瀏覽器打開1.xml 有報錯
寵物連連看2完整Android代碼項目
trac tracking tac style 支持 廣告 ack attach chm 寵物連連看2完整代碼,該源代碼支持多種風格的連連看遊戲的,如有國旗類的連連看,還有寵物連連看的等,主要的功能實現了無盡關卡挑戰模式。還有催命倒計時,以及鏈接提示,暫停。多樣圖片集
Java進階知識點2:看不懂的代碼 - 協變與逆變
階段 off 開始 限制 array 設計者 equals 性方面 版本兼容 要搞懂Java中的協辦與逆變,不得不從繼承說起,如果沒有繼承,協變與逆變也天然不存在了。 我們知道,在Java的世界中,存在繼承機制。比如MochaCoffee類是Coffee類的派生類,那麽我
pycharm 對代碼做靜態檢查
clas 靜態檢查 fun images 字母 ini 還要 快的 self. 對於下面這種情況,java c這些提前編譯的語言,不給你運行機會就立馬報錯了,但對於動態語言運行之後才能報錯,用運行的方法來檢查代碼錯誤是在是太坑了,這是py對比靜態語言的巨大劣勢,尤其是代碼文
翻看本次項目看同事負責部分代碼 整理了一下
調用函數 tor url file nav navi regexp roc 官方 這次項目是vue的路由用的是nuxt比較官方相對來說。 以前項目都是 寫完了沒有總結的好習慣 偶的空閑 整理一波 也利於自己以後項目開發進度。 1 獲取登錄瀏覽器的類型 此函數可區分ie5.
利用Jenkins和SonarQube集成對代碼進行持續檢測
jenkins和sonarqubeJenkins與SonarQube 集成插件的安裝與配置Jenkins 是一個支持自動化框架的服務器,我們這裏不做詳細介紹。Jenkins 提供了相關的插件,使得 SonarQube 可以很容易地集成 ,登陸 jenkins,點擊"Manage Jenkins&qu
前面學習通過方法對代碼進行改進,為什麽要給方法使用靜態呢?
-- 改進 spa 我們 靜態 .com 是什麽 文件夾 png 前面學習通過方法對代碼進行改進,為什麽要給方法使用靜態呢? 答:因為main方法是靜態的,而靜態方法只能訪問靜態的成員變量和靜態的成員方法。 所以之前我們的方法是使用靜態來修飾的,即靜態的方法。 如
如何更方便的查看Linux內核代碼的更新記錄【轉】
跟著 detail 水平 空間 個人 SM 快的 cli 點擊 轉自:http://blog.csdn.net/lee244868149/article/details/44302819 Linux內核的更新非常的快,如何快速的了解這些更新呢?最一般的辦法就是把新
VS中代碼對齊等快捷鍵
顯示 shift 組合 tlab edit tool nbsp 文本 是否 在VS2008中,選定代碼後,按Ctrl+K+F組合鍵,可以自動進行代碼對齊。 註意:要先按下Ctrl和K,再按下F,因為Ctrl+F是查找的快捷鍵。 也可以先按下Ctrl+K,再按下Ctrl+F。
30秒就能看懂的JavaScript 代碼片段
lob HR mas scrip 兼容性 second -c git 精選 原文地址 精選的有用的JavaScript代碼片段 片段用ES6編寫,使用Babel transpiler來確保向後兼容性。 30秒就能看懂的JavaScript 代碼片段
寫在最前面 - 《看懂每一行代碼 - kubernetes》
說明 left CA 打開 公眾號 功能 但是 重要 ima 我要寫什麽 《看懂每一行代碼 - kubernetes》會包含k8s整個項目的源碼解析,考慮到門檻問題,在開始分析k8s之前我會通過一些更低難度的golang開源項目講解來幫助大家提升golang編碼技能;然後
註釋是對代碼的“提示”,而不是文檔
scanf %s fprintf you stdlib.h 提示 esp getc mes 註釋是對代碼的“提示”,而不是文檔。程序中的註釋不可喧賓奪主, 註釋太多了會讓人眼花繚亂。註釋的花樣要少。 1 #include <iostream> 2 #i
python使用上下文對代碼片段進行計時,非裝飾器
_exit type pytho span 返回結果 python elf ogg text 之前發過了一組常用的裝飾器,包括了一個where_is_it_called的裝飾器,可以計時和對入參和返回結果,被何處調用進行記錄,十分強大。 這是用上下文,上下文的好處是
引入類型struct(結構),提高代碼的邏輯性和可讀性
復數 and 可讀性 complex tchar add ace pac int 創建一個新類型(struct, 即 結構)SComplex 來表示復數,提高了代碼的邏輯性和可讀性,代碼更加的簡潔。 #include "stdafx.h" #include
js對代碼解析機制
javascrip 之前 定義 glob 進行 nts func 全局變量 理解 JavaScript運行三部曲 腳本執行js引擎都做了什麽呢? 1.語法分析 2.預編譯 3.解釋執行 在執行代碼前,還有兩個步驟 語法分析很簡單,就是引擎檢查你的代碼有沒有什麽低級的語
一篇文章能夠看懂基礎源代碼之JAVA篇
不可 condition 多個 訪問權限 自增 一個數 abs gen amp java程序開發使用的工具類包:JDK(java development kit)java程序運行需要使用的虛擬機:JVM,只需要安裝JRE (java runtime environment)
代碼對拍器
bat文件 || uil not .exe output code tput 數據 bat文件 一個exe用於不斷生成數據 (build) 另外兩個exe輸出結果並比較 (test1,test2) 一個文件夾存放結果(addr) @echo o