工程師
其他
推薦課程
average > 0 ? $model->average . '分' : '10.0分' ?>

優(yōu)雅代碼養(yǎng)成指南

歐文

南京云悉職能科技有限公司 CEO

技術(shù)總監(jiān)、資深架構(gòu)師、講師。15年+ 大型軟件產(chǎn)品架構(gòu)經(jīng)驗。曾為瑞穗銀行(Mizuho Bank),東京證 券交易所,五十鈴汽車開發(fā)企業(yè)級系統(tǒng)。擅長企業(yè)級系統(tǒng)架構(gòu),領域驅(qū)動設計,重構(gòu)與模式。
為深圳證券交易所,中國電信,中國平安,招商銀行信用卡中心,DELL,中興通訊講授技術(shù)課程。現(xiàn)為南 京大學,東南大學,南瑞集團特約技術(shù)講師
現(xiàn)任創(chuàng)業(yè)AI公司研發(fā)技術(shù)總監(jiān), 負責帶領團隊研發(fā)計算機視覺、AI安防及大數(shù)據(jù)相關(guān)產(chǎn)品
授課經(jīng)驗(給哪些客戶授課):
深圳證券交易所,中國電信,中國平安,招商銀行信用卡中心,DELL,中興通訊,
華潤集團,南瑞集團,民生銀行,深圳證券信息,廣州農(nóng)商行,中泰證券,振華重工
項目經(jīng)驗成功案例:
深交所運維數(shù)據(jù)平臺開發(fā) DDD 導入
招行銀行信用卡中心手機App積分模塊重構(gòu)
南瑞集團電力繼保模塊重構(gòu)

技術(shù)總監(jiān)、資深架構(gòu)師、講師。15年+ 大型軟件產(chǎn)品架構(gòu)經(jīng)驗。曾為瑞穗銀行(Mizuho Bank),東京證 券交易所,五十鈴汽車開發(fā)企業(yè)級系統(tǒng)。擅長企業(yè)級系統(tǒng)架構(gòu),領域驅(qū)動設計,重構(gòu)與模式。 為深圳證券交易所,中國電信,中國平安,招商銀行信用卡中心,DELL,中興通訊講授技術(shù)課程?,F(xiàn)為南 京大學,東南大學,南瑞集團特約技術(shù)講師 現(xiàn)任創(chuàng)業(yè)AI公司研發(fā)技術(shù)總監(jiān), 負責帶領團隊研發(fā)計算機視覺、AI安防及大數(shù)據(jù)相關(guān)產(chǎn)品 授課經(jīng)驗(給哪些客戶授課): 深圳證券交易所,中國電信,中國平安,招商銀行信用卡中心,DELL,中興通訊, 華潤集團,南瑞集團,民生銀行,深圳證券信息,廣州農(nóng)商行,中泰證券,振華重工 項目經(jīng)驗成功案例: 深交所運維數(shù)據(jù)平臺開發(fā) DDD 導入 招行銀行信用卡中心手機App積分模塊重構(gòu) 南瑞集團電力繼保模塊重構(gòu)

課程費用

5800.00 /人

課程時長

2

成為教練

課程簡介

細節(jié)之中自有天地,細節(jié)也決定著成敗。 對于編碼的細節(jié),一直被認為是小道。諸如方法命名,變量定義,語句組織,任務分解等內(nèi)容,都是細枝末節(jié),微不足道。然而,對一個整體的軟件系統(tǒng)而言,既需要宏觀的架構(gòu) 決策,設計與指導原則,也必須重視微觀的代碼細節(jié)。在軟件行業(yè),有許多影響深遠的重大 失敗,其根源往往是編碼細節(jié)出現(xiàn)了疏漏。
“代碼即架構(gòu)”,軟件系統(tǒng)質(zhì)量的好壞,歸根結(jié)底還是需要代碼來告知。代碼的優(yōu)劣不 僅直接決定了軟件的質(zhì)量,還將直接影響軟件的成本。

目標收益

本課程可以讓程序員將以往格式凌亂、拖沓冗長的代碼變得更具可讀性,更整潔,更優(yōu) 雅。編寫程序不僅是去告訴計算機你要做什么,更重要的是讓人明白,你想要讓計算機去做 什么。 而編寫簡潔、清晰、美觀、容易理解的代碼,才能夠讓”人“容易明白自己的意圖。

培訓對象

只要是需要編寫代碼的人員,都適合本課程,有 C 語言,C++/Java 語言背景者更佳

課程大綱

開篇 內(nèi)容一:是什么讓代碼變得“更好”
1. 可讀性基本原理
2.整潔代碼的含義

3.高質(zhì)量代碼的關(guān)注點

4.優(yōu)雅的代碼 = 可讀,整潔,高質(zhì)量
代碼形式的改進 內(nèi)容一:將信息裝進名字里

1.選擇專業(yè)的詞

2.避免使用像 tmp 這樣泛泛的名字

3.用具體的名字代替抽象的名字

4.為名字附帶更多信息

5.名字應該有多長

6.利用名字的格式類傳遞含義

內(nèi)容二:不會誤解的名字

1.Filter() 與 Clip(text, length)

2.使用 first 和 last 來表示包含的范圍

3.使用 begin 和 end 來表示包含/排除范圍

4.給布爾值命名

5.與使用者的期望相匹配

6.實戰(zhàn):如何權(quán)衡多個備選的名字

內(nèi)容三:代碼審美學

1.保持一致和緊湊

2.用函數(shù)來整理不規(guī)則的代碼

3.在需要時使用列對齊

4.始終保持一個有意義的順序

5.把聲明按塊組織起來

6.把代碼分成“段落”

7.個人風格與一致性

內(nèi)容四:該寫什么樣的注釋

1.什么不需要注釋

2.記錄你的思路

3.站在讀者的角度

4.讓注釋保持緊湊

5.避免使用不明確的代詞

6.潤色粗糙的句子

7.精確的描述函數(shù)的行為


8.用輸入/輸出例子來說明特別的情況

9.聲明代碼的意圖

10.“具名函數(shù)參數(shù)“的注釋

11.采用信息量高的詞
簡化循環(huán)和邏輯 內(nèi)容五:把控制流變得易讀

1.條件語句中參數(shù)的順序

2.if/else 語句塊的順序

3.三目運算符

4.避免 do/while 循環(huán)

5.從函數(shù)中提前返回

6.臭名昭著的 goto

7.最小化嵌套

內(nèi)容六:拆分超長的表達式

1.使用解釋性變量

2.使用總結(jié)性變量

3.使用德摩根定律

4.濫用的短路邏輯

5.實戰(zhàn):與復雜的邏輯戰(zhàn)斗

6.拆分巨大的語句

7.簡化表達式的創(chuàng)意方法

內(nèi)容七:變量與可讀性

1.減少變量

2.縮小變量的作用域

3.只寫一次的變量

4.實戰(zhàn):變量優(yōu)化
重新組織代碼 內(nèi)容八:抽取不相關(guān)的子問題

1.例子:findClosestLocation()

2.純工具代碼

3.其他多用途代碼

4.創(chuàng)建大量通用代碼

5.項目專有功能

6.簡化已有接口

7.按需重塑接口


8.過猶不及

內(nèi)容九:一次只做一件事

1.任務可以很小

2.從對象中抽取值

3.大型的例子

內(nèi)容十:把想法變?yōu)榇a

1.清楚的描述邏輯

2.了解函數(shù)庫是有幫助的

3.把這個方法用于更大的問題

內(nèi)容十一:少些代碼

1.別費神去實現(xiàn)你不需要的功能

2.質(zhì)疑和拆分你的需求

3.保持小代碼庫

4.熟悉你周邊的代碼庫
精化測試代碼 內(nèi)容十二:測試與可讀性

1.使測試易于閱讀和維護

2.測試代碼的問題

3.如何使測試代碼更可讀

4.讓錯誤消息具有可讀性

5.選擇好的測試輸入

6.為測試函數(shù)命名

7.測試函數(shù)中的陷阱

8.測試驅(qū)動開發(fā)
項目實戰(zhàn) 內(nèi)容十三:設計并改進“計數(shù)器“

1.問題

2.定義類接口

3.嘗試 1 – 一個幼稚的方案

4.嘗試 2 – 傳送帶設計方案

5.嘗試 3 – 時間桶設計方案

6.比較三種方案
開篇
內(nèi)容一:是什么讓代碼變得“更好”
1. 可讀性基本原理
2.整潔代碼的含義

3.高質(zhì)量代碼的關(guān)注點

4.優(yōu)雅的代碼 = 可讀,整潔,高質(zhì)量
代碼形式的改進
內(nèi)容一:將信息裝進名字里

1.選擇專業(yè)的詞

2.避免使用像 tmp 這樣泛泛的名字

3.用具體的名字代替抽象的名字

4.為名字附帶更多信息

5.名字應該有多長

6.利用名字的格式類傳遞含義

內(nèi)容二:不會誤解的名字

1.Filter() 與 Clip(text, length)

2.使用 first 和 last 來表示包含的范圍

3.使用 begin 和 end 來表示包含/排除范圍

4.給布爾值命名

5.與使用者的期望相匹配

6.實戰(zhàn):如何權(quán)衡多個備選的名字

內(nèi)容三:代碼審美學

1.保持一致和緊湊

2.用函數(shù)來整理不規(guī)則的代碼

3.在需要時使用列對齊

4.始終保持一個有意義的順序

5.把聲明按塊組織起來

6.把代碼分成“段落”

7.個人風格與一致性

內(nèi)容四:該寫什么樣的注釋

1.什么不需要注釋

2.記錄你的思路

3.站在讀者的角度

4.讓注釋保持緊湊

5.避免使用不明確的代詞

6.潤色粗糙的句子

7.精確的描述函數(shù)的行為


8.用輸入/輸出例子來說明特別的情況

9.聲明代碼的意圖

10.“具名函數(shù)參數(shù)“的注釋

11.采用信息量高的詞
簡化循環(huán)和邏輯
內(nèi)容五:把控制流變得易讀

1.條件語句中參數(shù)的順序

2.if/else 語句塊的順序

3.三目運算符

4.避免 do/while 循環(huán)

5.從函數(shù)中提前返回

6.臭名昭著的 goto

7.最小化嵌套

內(nèi)容六:拆分超長的表達式

1.使用解釋性變量

2.使用總結(jié)性變量

3.使用德摩根定律

4.濫用的短路邏輯

5.實戰(zhàn):與復雜的邏輯戰(zhàn)斗

6.拆分巨大的語句

7.簡化表達式的創(chuàng)意方法

內(nèi)容七:變量與可讀性

1.減少變量

2.縮小變量的作用域

3.只寫一次的變量

4.實戰(zhàn):變量優(yōu)化
重新組織代碼
內(nèi)容八:抽取不相關(guān)的子問題

1.例子:findClosestLocation()

2.純工具代碼

3.其他多用途代碼

4.創(chuàng)建大量通用代碼

5.項目專有功能

6.簡化已有接口

7.按需重塑接口


8.過猶不及

內(nèi)容九:一次只做一件事

1.任務可以很小

2.從對象中抽取值

3.大型的例子

內(nèi)容十:把想法變?yōu)榇a

1.清楚的描述邏輯

2.了解函數(shù)庫是有幫助的

3.把這個方法用于更大的問題

內(nèi)容十一:少些代碼

1.別費神去實現(xiàn)你不需要的功能

2.質(zhì)疑和拆分你的需求

3.保持小代碼庫

4.熟悉你周邊的代碼庫
精化測試代碼
內(nèi)容十二:測試與可讀性

1.使測試易于閱讀和維護

2.測試代碼的問題

3.如何使測試代碼更可讀

4.讓錯誤消息具有可讀性

5.選擇好的測試輸入

6.為測試函數(shù)命名

7.測試函數(shù)中的陷阱

8.測試驅(qū)動開發(fā)
項目實戰(zhàn)
內(nèi)容十三:設計并改進“計數(shù)器“

1.問題

2.定義類接口

3.嘗試 1 – 一個幼稚的方案

4.嘗試 2 – 傳送帶設計方案

5.嘗試 3 – 時間桶設計方案

6.比較三種方案

活動詳情

提交需求