เห็นแว็บๆว่าเปลี่ยน version แต่ไม่ได้สังเกตอะไรเพิ่มเติม
วันนี้พึ่งรู้ว่าเปลี่ยนไปเป็น implement ด้วย Rails แล้ว
(ของเดิมใช้ python)
source code อยู่ที่ KnowledgeVolution.org
เลยถือโอกาสเข้าไป scan ดู code หน่อย
(อาจารย์ธวัชชัย ที่เป็นคนเขียน เขาเก่งอยู่ เพื่อจะได้ trick อะไรติดมือกลับมา)
- plugin ที่ใช้ เห็นมี Exception Notifier Plugin
ใช้สำหรับส่ง mail เตือน กรณีที่เกิด error ขึ้นใน app - deployment เห็นว่าใช้ capistrano ด้วย
- ส่วน Localization ใช้ GetText ทำ
- มี patch เรื่องเกี่่ยวกับ Date ใน http://knowledgevolution.org/browser/trunk/lib/overrides.rb
ถ้าเราดูใน source file ของ ruby# === Doesn't depend on strftime
#
# This library doesn't use +strftime+. Especially #rfc2822 doesn't depend
# on +strftime+ because:
#
# * %a and %b are locale sensitive
#
# Since they are locale sensitive, they may be replaced to
# invalid weekday/month name in some locales.
เห็นใน code ใช้วิธีแปะเดือน กับวัน จาก Constants Array ใน Date ทับลงไป
โดย string ชุดนี้ถูก replace จาก application.rb (controller) บรรทัดที่ 33 ซึ่งใช้ gettext แปลงตาม locale อีกที - มีการใช้ rmagick ช่วย generate background image ตาม theme ด้วย
generate_images.rb - ใช้ Rmagick generate รูปที่ใช้ถามเวลา comment เพื่อป้องกัน spam
generate.rb
โดย generate ไว้ตั้งแต่ต้นเลย เพื่อไม่ให้เสียเวลา generate ตอนที่ request วิ่งเข้ามา - changeset ล่าสุด เห็นมีการใช้ thread มา expire_fragment
- ส่วนเรื่อง Testing เห็นมี unit test ที่ user model กับ mailer test
(ผมก็เหมือนกัน ถ้า app มันตรงไปตรงมา บางที ก็ขี้เกียจ test
แต่ก็พยายามหัดอยู่)
Note: source code เขาใช้ tab = 8 space ดูสะอาดตาดี
2 comments:
8 space นี้ล้นจอแน่นอนครับ
ถ้าโค้ดที่ซับซ้อนมากๆ ต้อง indent เยอะๆ อย่างเช่น html ที่ตารางซ้อนกันหลายๆ ชั้น บางทีผมเซ็ต 2 space เองนะ
ปกติผมก็ใช้ 2 space
ยกเว้น java ที่ใช้ 4 space
Post a Comment