只有累積,沒有奇蹟

2019年4月12日 星期五

[UnitTest] Refactoring 好幫手 - Refactoring.Guru

前言
過去還在菜鳥時期很常遇過一種情境,就是當看到一段既有的代碼或是專案裡的 Code,看起來有些怪異的地方但又說不出來怪的點是哪一點,想改又不知道從何下手的情境,如果遇到這問題想要得到解答的話,可以試試看到 refactoring.guru,這網站透過漫畫的方式介紹兩項開發者在 Coding 時的必修課程,重構 ( Refacting ) 與設計模式 ( Design Pattern );以下就針對這兩項目做簡單說明

Refactoring
除了閱讀經典書籍 重構:改善既有代碼的設計 之外,可以透過網站整理重構相關的幾個議題說明
  • Refactoring : 重構的目的是消除技術債,介紹容易維護及乾淨的代碼帶來什麼樣的好處
  • Dirty Code : 什麼是技術債以及造成的影響
  • Refactoring Process : 如何重構? 介紹 Code Smell 及遇到該如何解決程式碼的壞味道
  • Clean Code : 甚麼是乾淨的程式碼 ?
個人覺得實用的部分是針對 Code Smell 的介紹,以及為甚麼這段 Code 需要 (why) 重構還有如何(how) 重構它,讓你瞭解這段代碼背後的問題,遇到了可以用什麼樣的方式來解決它,不像是一些文章用比較生硬的角度切入在理解上比較難懂,在配上漫畫圖片的介紹,加速對於問題的理解,舉例來說如果遇到 Code 有一段內容很長的方法,什麼樣的情境符合 Long Method,網站建議解決方是 extract method 以及下圖說明 


如果想了解更多,可以到網站分類 Refactor : 傳送門

Design Pattern

設計模式在開發時也是必修學分之一,這部份自己也尚在領悟中就不在班門弄斧介紹,有興趣的可以直接點選頁面更快 : 傳送門,網站介紹的 Sample Code : GitHub 傳送門

同場加映
其實在過去當新進同仁進公司時,都會推薦另一個類似的網站叫做 source making,讓有興趣的新進同仁可以自行去研究如果有時間可以跟大家分享,在 source making 分類與今天介紹的十分相似,有 design pattern、Antipatterns、Refactoring 以及 UML 等四大類,其中插圖風格也是頗為相似 (不確定是否為相同作者),如果有興趣的朋友也可以加減看看,這裡就廢話不多說直接附上 傳送門

參考
refactoring.guru

Related Posts:

  • [UnitTest] Visual Studio 2017 按右鍵無法建立單元測試 ? 問題 最近心血來潮使用家中舊電腦小白寫 Code,在練習測試中發現竟然有點怪異,在要測試的 method 按下右鍵沒有 建立單元測試 Create Unit Test 選項,但相同練習專案拿到公司筆電就是正常的,經比對後發現舊筆電 Visual Studio 版本少安裝測試功能,以下簡單紀錄解決問題的過程 解決方案 在 Visual Studio 2017 早期版本這是已知問題,有開發者在 vs community 回報給開… Read More
  • [UnitTest] Refactoring 好幫手 - Refactoring.Guru前言 過去還在菜鳥時期很常遇過一種情境,就是當看到一段既有的代碼或是專案裡的 Code,看起來有些怪異的地方但又說不出來怪的點是哪一點,想改又不知道從何下手的情境,如果遇到這問題想要得到解答的話,可以試試看到 refactoring.guru,這網站透過漫畫的方式介紹兩項開發者在 Coding 時的必修課程,重構 ( Refacting ) 與設計模式 ( Design Pattern );以下就針對這兩項目做簡單說明 Re… Read More
  • [UnitTest] 使用 Fluent Assertions 增加單元測試碼可讀性前言 過去在撰寫單元測試代碼時都是使用 NUnit 內建的 Assert.AreEqual 來驗證是否符合預期,雖然早已聽過 Fluent Assertions 盛名但並未實際使用過,直到最近在與同事討論時同事大推發現真的很不錯,讓戴碼的可能性增加不少,想起之前上 91 Training 時不斷強調測試代碼可讀性的重要性,這一篇就來簡單介紹 Flnent Asserentions 的安裝與使用,若有問題或是錯誤的地方歡迎各位高手給予指導。 … Read More
  • [UnitTest] 如何測試目標方法中 Guid 型別的代碼 ?情境 如果要產生一個亂數時很常會想到 Guid 方法解決,在 C# 使用 Guid 的方式相當簡單僅要透過  Guid.NewGuid  靜態方法產生一組 Guid 使用,在目前公司很常看到使用 Guid 作為識別碼,今天在重構舊代碼時忽然想到如果遇到 Guid 該如何進行加上單元測試,以下就目前想到的解法進行測試與說明,如果各位高手們有更好的方法歡迎高抬貴手一起討論研究。 解決方案 寫個簡單的 Sa… Read More
  • [UnitTest] ASP.NET Core 2.2 測試專案中的版本衝突 問題  這幾天專案某項功能接近尾聲,要替其核心 ASP.NET Core 專案加上單元測試專案,加入後按下建置發現跳出 Error 錯誤訊息  "CS1705 Assembly 'xxxx, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' uses 'Microsoft.Extensions.Logging.Abstractions, Version=2.… Read More

0 意見:

張貼留言

Copyright © 2025 m@rcus 學習筆記 | Powered by Blogger

Design by Anders Noren | Blogger Theme by NewBloggerThemes.com