ขณะสร้างซอฟต์แวร์ จะมีสิ่งที่รบกวนทุกครั้งที่ต้องเขียน โค้ดที่ดู醜 หรือบรรทัดที่จำไม่ได้ต้อง copy-paste จากที่อื่นใน codebase สิ่งเหล่านี้หยุด flow! สำคัญที่จะรับรู้และทำให้สะดวกขึ้น
เช่น ต้องการ custom configuration ใน Rails app อาจอยาก extra app-specific settings หรือ libraries ไม่อยากหาใน config/ ปกติจะทำ YAML-ERB-read-Rails.env dance:
YAML.load(ERB.new(File.read(Rails.root.join('config', 'google_analytics.yml'))).result)[Rails.env]แต่นี่ ridiculous และบางครั้งลืม ERB แล้วแตกตอนไม่น่าเชื่อ
ใน codebase ของเรา มี Settings class 簡單 ทำให้สะดวก:
require 'settings'
GoogleAnalyticsSettings = Settings.new(:google_analytics)
GoogleAnalyticsSettings.google_analytics_id # => "UA-XXXXXXX-1"Settings จะหา config file ใน config/ เอง pipe ผ่าน YAML และ ERB 用 Rails.env ดึง config สำหรับ environment สุดท้าย wrap ด้วย OpenStruct ทำให้เข้าถึง top-level config สะดวก นี่คือ gist ของ basic Settings implementation
มัน simple แตสะดวก จำ Settings.new ง่ายกว่าทั้ง file loading stuff และความสะดวกเล็กๆ เหล่านี้สะสม ทำให้ codebase สนุกขึ้นเยอะ
ในโค้ดคุณ คิดถึงสิ่งที่รบกวน หยุด flow หรือต้องหาตัวอย่างทุกครั้ง? หาวิธีทำให้ง่ายขึ้นได้ไหม?