0%

1. 里氏替換原則 Liskov Substitution Principle

  • Subtypes must be substitutable for their base types.

    • subtypes(衍生型別) = 類別
    • base types(基底型別) = 介面、抽象類別、基底類別
  • 子型別必須可以替換為他的基底型別

  • 如果你的程式有採用繼承或介面,然後建立出幾個不同的衍生型別(Subtypes)。在你的系統中只要是基底型別出現的地方,都可以用子型別來取代,而不會破壞程式原有的行為。

2. 關於LSP的基本精神

  • 當實作繼承時,必須確保型別轉換後還能得到正確的結果
    • 每個衍生類別都可以正確地替換為基底類別,且程式在執行時不會有異常的情況(如發生執行時期例外)
    • 必須正確的實作”繼承“與”多型
閱讀全文 »

1. 色彩對比度

腦袋需要簡單記一下的基本比例

AA 級對比度

文本和文本圖像的視覺呈現至少需有 4.5:1 的對比度。

大文本(加粗的 14pt/普通的 18pt 及以上)和大文本圖像的對比度至少需為 3:1

AAA 級對比度

文本和文本圖像的視覺呈現至少需有 7:1 的對比度。

大文本(加粗的 14pt/普通的 18pt 及以上)和大文本圖像的對比度至少需為 4.5:1

參考 Material Design 和 iOS 人機交互規範,基本都是以滿足 AA 級標準為主。在特殊情況下才要求滿足 AAA 級標準。

閱讀全文 »

1. 在程式開發的過程會遇到各種情境

  • 開發的時間較長?還是維護的時間較長?

  • 有團隊一起進行開發?還是一個人寫CODE?

  • 一個長期維護的專案,需求變更的頻繁程度?

  • 你如何讓程式碼具備有可讀性擴充性

  • 如何避免修改程式的過程中引發連鎖反應?(改A壞B)

閱讀全文 »

1. 何謂”模組” (Module)

  • 一種抽象的概念

  • 其實C#沒有Module概念

  • 以C#舉例

    • 可能是一個「類別」(class)
    • 可能是一個「方法」(method)
    • 可能是一個「組件」(assembly)
閱讀全文 »

1. 介紹SOLID物件導向設計原則

2. 何謂”原則”(Principle)

  • A principle is a concept or value that is a guid for behavior or evaluation

  • 所謂「原則」就是一種「概念」或「價值」用來導引你產生適切的行為價值評量方法

  • 白話文解釋

    • 依循SOLID原則,可以寫出比較好的程式碼
    • 依循SOLID原則,能夠判斷程式碼的好壞(Code Smell)
閱讀全文 »

1. 單一責任原則 SRP Single Responsibility Principle

  • A class should have only one reason to change
  • 一個類別應該只有一個改變的理由!

2. 何謂 “責任” (Responsibility)

  • 責任 = reason to change (改變的理由)
  • 當一個類別擁有多個不同的責任
    • 意味著一個類別負責多項不同的工作
    • 當需求變更時,更動一個類別的理由也可能不只一個
閱讀全文 »

1. 開放封閉原則 OCP Open Closed Principle

  • Software entities(classes,modules,functions,etc.)

    should be open for extension but closed for modification

  • 軟體實體(類別、模組、函式等)應該開放擴充封閉修改

  • 藉由增加新的程式碼來擴充系統的功能,而不是藉由修改原本已經存在的程式碼來擴充系統。

閱讀全文 »

在網頁設計中,提醒用戶網路離線的最佳方式應該是簡潔、明確且不干擾用戶體驗。以下是一些設計建議:

1. 顯示明確的離線提示

在頁面上方或底部顯示一個橫幅,告知用戶他們已經離線。這個橫幅應該易於識別並且包含明確的文字提示,例如「您目前處於離線狀態」。

2. 使用顏色和圖標

利用顏色(如紅色或橙色)和圖標(如斷開的Wi-Fi圖標或感嘆號)來強調離線狀態。這可以幫助用戶更快速地注意到提示。

3. 動態檢測網路狀態

實現動態檢測,用戶重新連接網路時,自動更新提示信息。例如,使用JavaScript的 navigator.onLine 屬性和 online/offline 事件來檢測網路狀態變化。

閱讀全文 »