เพิ่งพิมพ์ rails new โปรเจกต์ถัดไป ตอนไหนเริ่ม? เขียนทั้งหมดใน single app หรือ Service Oriented Architecture? เวลาเรียน RSpec ดีไหม? เริ่มสร้าง data models ทั้งหมด หรือได้ actions ใดๆ end-to-end? 決策เยอะมากตอนต้น 易感覺迷失 procrastinate frustrated และไม่จบ app
ปัญหานี้ super common มาจาก決策มากเกินไปตอนต้น ตอนมีข้อมูลน้อยที่สุดตัดสินใจ
Convention Over Decision-making
Convention over Configuration คือ Rails principle โปรด ก่อน Rails ผมติดกับที่วางไฟล์ ชื่อ tables map objects และ決策 minor meaningless เยอะ ใช้เวลาเลือกทิศทางมากกว่าเปลี่ยนใจตอนรู้ภายหลังว่าผิด
決策เยอะตอนเริ่มโปรเจกต์ใหม่ เหมือนนี้ แทนที่ด้วย conventions จากหนังสือ blogs styleguides ประหยัดเวลา stress และ debate ไร้ความหมาย
Conventions ที่ผม follow ตอนเริ่ม app ใหม่:
เริ่มด้วย few full features
App ไม่ต้องทำทุกอย่างทันที เริ่มเล็ก เริ่ม simple หา 1-2 features ที่ขาดไม่ได้ โฟกัสทั้งหมด สร้างให้ดี เพิ่มอื่นๆ ภายหลัง แต YAGNI (และมักพบว่าสิ่งคุณ คิด ว่าต้อง ต่างจากสิ่ง customers คิดว่าต้อง)
เริ่มด้วย single app
รู้ อยากหลีกเลี่ยง Monorail มี RailsConf talks ครึ่งโหล SOA ดีที่สุดเก็บ Rails apps maintainable long term ควรแยกส่วนไหน independent สร้าง service แต่ละส่วน?
SOA แยก large complex app ดี แตเพิ่ม ปวดมาก และเวลาปวดสร้าง maintain monitor services ไม่ outweigh ปวด monolithic Rails app ไม่ worth doing ถ้ายัง ไม่เริ่ม เขียน app คุณไม่รู้สึกปวด 所以 เริ่ม single app
เริ่มด้วย stack ที่เคยใช้
ยังไม่รู้ stack ใด ใช้ Omakase stack แตไม่ว่าจะอะไร ไม่อยากใช้ครึ่งวัน integrate test framework ไม่เคย用กับ Rails ไม่อยากสู้ version conflicts VCR/WebMock ไม่อยากคิดว่า tests crash เป็นความผิดคุณหรือ resque_unit อยากลอง library ใหม่ เพิ่มภายหลังได้ (หรือลอง toy project)
Ship ยาก ถ้าอยากจบ app ต้องขูดทุก advantage 所以 เริ่มเล็ก เริ่ม simple เริ่มกับสิ่งที่รู้
Conventions อาจไม่ perfect แตช่วยเริ่ม และเริ่มคือส่วนยากที่สุด
ต่อไปอะไร?
คุณ follow conventions อะไรบ้าง? และตัดสินใจ features/tests เริ่มไหน? ผมแชร์ thoughts ครั้งหน้า แตอยากฟังของคุณ