iT邦幫忙

鐵人檔案

2018 iT 邦幫忙鐵人賽
回列表
Software Development

如何讓程式碼告訴你他在做什麼? 系列

仍然看不懂自己以前寫得程式?或是別人仍然看不懂你在寫什麼?
註解說的跟程式運作的也不一樣?
如果程式能寫出如同英文子句一般的邏輯描述
那無論是程式交接,或是回顧自己一年前寫的code
豈不是更淺顯易懂?

本篇將以Clean Code 為主軸
從閱讀我們使用的SDK 的Source Code
到撰寫淺寫意懂的程式碼
並介紹為何我們會需要近代的程式碼撰寫技術與規範

範例語言為 : C# ,maybe Angular5 (此篇會盡可能減少語言之間的隔閡)

參賽天數 30 天 | 共 31 篇文章 | 10 人訂閱 訂閱系列文 RSS系列文
DAY 10

Day-10 所以那個測試呢?

說的那麼厲害,所以那個測(ㄐㄧㄤˋ)試(ㄓ)呢? 我們就從爬蟲那個介面開始吧 這裡使用先前的方法 利用方法名稱來描述方法 就用 3A 來嘗試吧 Arrange...

2017-12-28 ‧ 由 凱大 分享
DAY 11

Day-11 不是史書才能流傳

現在先回頭看看前面的做法與想法是一個什麼樣的思維 首先要了解一件事情 程式語言就像是日文,英文等,是一個溝通的語言 只是這次溝通的對象是機械,或是編譯器 如果我...

2017-12-29 ‧ 由 凱大 分享
DAY 12

Day-12 這方法叫做大中天 (以下省略)

先來說說方法命名吧 一般來說方法多會以動作來命名 ex:Get, Set, InvokeAsync, FindAll, Query 而像是我們前面所使用的範例也...

2017-12-30 ‧ 由 凱大 分享
DAY 13

Day-13 命名也講三字經!?

在說完方法之後,來說說類別的命名方式 這裡借用一下 DDD 的一個詞彙叫做 Domain 中文可以稱為定義域 所謂的定義域是指包含主要描述對象的所有相關元件的範...

2017-12-31 ‧ 由 凱大 分享
DAY 14

Day-14 程式因為不想當邊緣人,所以.....

在語言的文法上,有所謂的介系詞 其目的在於讓前述的事物可以與其他詞句連貫,並表達其作用關係 所以我們在描述需求或是程式的時候 勢必也需要同樣的作法 通常這樣的文...

2018-01-01 ‧ 由 凱大 分享
DAY 15

Day-15 多國語言!?

於前篇提了方法的 Input 現在來講 OutPut Output 可就不像是Input 那麼單純了 就從最基本的開始吧 object Method(objec...

2018-01-02 ‧ 由 凱大 分享
DAY 16

Day-16 翻譯機?

一般來說呢,功能與功能之間的串接,多半都會借助於先前提到的擴充方法 基於SOLID的責任單一原則 我們一個類別應該只做一件事情 所以接收各種Input 與輸出各...

2018-01-03 ‧ 由 凱大 分享
DAY 17

Day-17 左手是輔助還是擴充?

在前面我們增加了幾個擴充的入口 我們來因應幾個常見的使用法來在一次的將入口擴充吧 請注意,此篇所介紹的內容並不需要總是完全實作 應該要依照需求(含團隊隊員的需求...

2018-01-04 ‧ 由 凱大 分享
DAY 18

Day-18 這是兩件事

由前篇最後做出來的效果,在我看來並不是那麼好 原因如下: 依序對應參數帶入的實際上並不是很好的高可讀性作法,因為他無法被描述成子句 無法判斷其參數的正確性,或...

2018-01-05 ‧ 由 凱大 分享
DAY 19

Day-19 不知不覺就鍊成了!!

接下來繼續前篇未完成的部分 首先是Url,在大多數的狀況下都會是用String來設定 所以就額外加入一個擴充方法叫SetUrl public stati...

2018-01-06 ‧ 由 凱大 分享