ขณะที่คุณกำลังสร้างซอฟต์แวร์ จะมีบางสิ่งที่จะทำให้คุณหงุดหงิดทุกครั้งที่ต้องเขียนมัน บิตของรหัสที่ดูน่าเกลียด หรือบรรทัดเหล่านั้นที่คุณแทบจะจำวิธีการเขียนไม่ได้เลย ดังนั้นคุณจึงหาตัวอย่างที่อื่นใน codebase ของคุณเพื่อคัดลอกและวาง สิ่งเหล่านี้ทำลายกระแสของคุณ! การจดจำและทำให้พวกเขาสะดวกขึ้นจึงเป็นสิ่งสำคัญ
ตัวอย่างเช่น บางครั้งคุณอาจต้องการการกำหนดค่าแบบกำหนดเองในแอป Rails ของคุณ บางทีคุณอาจต้องการการตั้งค่าเฉพาะแอปเพิ่มเติม หรือไลบรารีที่คุณใช้ไม่ต้องการดูใน config/
สำหรับไฟล์คอนฟิกูเรชันของตัวเอง โดยปกติ คุณจะต้องทำ YAML-ERB-read-Rails.env
เต้น:
YAML.load(ERB.new(File.read(Rails.root.join('config', 'google_analytics.yml'))).result)[Rails.env]
แต่นั่นก็น่าขำนะ และบางครั้งคุณจะลืม ERB
และทุกอย่างจะพังเมื่อคุณไม่คาดหวัง
ใน codebase ของเรา เรามี Settings
. อย่างง่าย เพื่อให้สะดวกยิ่งขึ้น:
require 'settings'
GoogleAnalyticsSettings = Settings.new(:google_analytics)
GoogleAnalyticsSettings.google_analytics_id # => "UA-XXXXXXX-1"
Settings
จะค้นหาไฟล์การกำหนดค่าที่ถูกต้องโดยอัตโนมัติใน config/
ไดเรกทอรี จากนั้นจะไปป์ผ่าน YAML และ ERB และใช้ Rails.env
เพื่อคว้าการกำหนดค่าสำหรับสภาพแวดล้อม Rails ในที่สุด มันรวมทุกอย่างไว้ใน OpenStruct เพื่อให้การเข้าถึงการกำหนดค่าระดับบนสุดดีขึ้นเล็กน้อย นี่คือส่วนสำคัญของการใช้งานการตั้งค่าพื้นฐาน
มันง่ายมาก แต่ก็สะดวก มัน มาก จำง่ายกว่า Settings.new
กว่าการโหลดไฟล์ทั้งหมดนั้น และสิ่งอำนวยความสะดวกเล็กๆ น้อยๆ เหล่านี้ก็เพิ่มขึ้น และจะทำให้ codebase ของคุณสนุกมากขึ้นในการทำงาน
ในโค้ดของคุณ คุณสามารถนึกถึงบางสิ่งที่ทำให้คุณรำคาญ หยุดการทำงาน หรือที่ที่คุณต้องดูตัวอย่างทุกครั้ง คุณหาวิธีที่จะทำให้ใช้งานได้ง่ายขึ้นไหม