Link Search Menu Expand Document

28. 編碼風格 Coding Style

同樣一件事情,可以有很多種不同的寫法,要用哪一種好呢? 很多時候對電腦來說並沒有什麽差別,因為作用和效能是一模一樣的,差別只是編碼風格而已。

編碼風格對於團隊開發十分重要,維持一慣的風格可以增加代碼的可讀性。在 Ruby 和 Rails 社區中,大多會遵守以下的風格指南:

對個人來說,編碼風格也代表了你的代碼有沒有在程式語言社區「接地氣」,更是代碼給人的第一印象。一個縮進不佳的代碼,給人的第一印象就是「不專業」。

要找工作的同學,面試官在看你的 Portfolio 作品集的代碼時,第一印象就是你的代碼風格好不好

29. 時間處理 Time

  • 什麼是 UTC 時間
  • 什麼是 Unix time 時間 計算從 1970-01-01 起跳的秒數,不建議使用這種格式。但有些老派的 API 仍會出現他的蹤影。
  • 資料交換請用 ISO 8601 標準格式
  • 時區和日光節約時間的相關問題
    • 只知道時間,不知道時區 -> 無法確定是那一天,不同時區會差一天
    • 只知道時間,不知道確切日期 -> 直接加時間長度可能會不正確,因為可能剛好跨到日光節約時間
    • 結論:用 Date 和 Time 的 library,而不要自己處理,因為日光節約時間沒有規則

30. 資料存續和交換 Data Persistence and Exchange

  • 記憶體一關機重開、沒電,資料就不見了,需有一種方式將程式中的資料存進 Disk 硬碟中,永續儲存(Persistence)。例如存成純文字檔案,或是使用資料庫。
  • 不同電腦之間,透過網路交換資料,也需要定義資料的格式

資料格式有哪些?

  • 程式語言專用的 Marshal 編碼格式,可以支援該程式語言所有的 Data Type,將物件轉成字串文字。
  • 跨語言資料格式,支援的 Date Type 有限
    • Human-readable 類型
      • XML
      • JSON
      • YAML
    • Binary 類型
    • 哪一種電腦處理比較有效率?
    • 哪一種經過長久時間仍能打開讀取?

使用資料庫

存成檔案是一種簡單的方法,應用程式更常見的實務作法是採用獨立的資料庫程式,用結構化的格式,提供搜尋、索引、容量能力,或是支援 ACID 操作:

31. 套件管理 Package manager

在程式語言中,一定會用到現成的類別、套件等等。這些來自於:

  • Language core 程式語言本身就有
  • Language build-in library 程式語言內附的標準函式庫,只要載入就可以使用,不需要額外安裝
  • 3-rd party library and framework 需要額外安裝的第三方套件

而當今的程式語言,都有一個套件管理工具(Package manager),這工具的目的在於:

  • 方便安裝和散布上述的這三方套件
  • Dependency 依賴性管理,例如套件A需要套件B 1.1 版、套件C需要套件 B 1.0 版,那麼套件管理工作就會幫你安裝 套件B 1.1 版

例如:

別跟 homebrew 搞混了,上述的套件管理工具是管理「程式碼」套件,而 homebrew 是我們在 Mac 上管理「Command Line 工具」的套件。之後我們在 Ubuntu Linux 上,還會用一個套件管理工具叫做 apt-get 用來在伺服器上安裝軟體。

32. 開放原始碼 Open Source


Copyright © 2010-2021 Wen-Tien Chang All Rights Reserved.