สิ่งที่ได้เรียนรู้จากการพัฒนาฐานข้อมูลโอเพนซอร์สตลอด 7 ปี
(philipotoole.com)- บันทึกย้อนมองจากผู้พัฒนา rqlite ฐานข้อมูลแบบกระจายน้ำหนักเบาที่สร้างบน SQLite
→ จุดเริ่มต้นมาจากการลองทำสนุก ๆ เพื่อกระจายการทำ replication ของ SQLite ด้วย RAFT
-
ถ้าเป็นไปได้ ให้เริ่มจากสิ่งเล็ก ๆ และพัฒนาทีละฟีเจอร์
-
หลีกเลี่ยงการเขียนโค้ดใหม่ครั้งใหญ่โดยไม่มีผลลัพธ์ระหว่างทางที่ชัดเจน
-
ความคิดสร้างสรรค์นั้นไม่สม่ำเสมอและคาดเดาไม่ได้
-
สิ่งที่ช่วยยกระดับคุณภาพของโค้ดคือ test coverage ที่กว้างขวาง
→ เขียน test case ให้ใกล้เคียงกับโค้ดจริงให้มากที่สุด
→ ต้องคง integration test สำหรับ smoke test เอาไว้เสมอ
→ unit test คือหัวใจสำคัญ หากไม่มี coverage ที่ยอดเยี่ยมในระดับ unit test ซอฟต์แวร์ก็ไม่มีวันมีคุณภาพสูงได้
-
Go มีประสิทธิภาพต่อการพัฒนามากพอตลอด 7 ปี และยังคงสนุกกับมันอยู่
-
การโปรโมตเป็นเรื่องยาก ใช้เวลา 7 ปีถึงจะได้ 8000 Star บน GitHub
-
การเขียนโปรแกรมเป็นสิ่งที่เยียวยาใจ (therapeutic)
→ งานประจำของฉันคือการบริหารโปรแกรมเมอร์ (Engineering Manager ที่ Google) ซึ่งก็น่าสนใจ แต่ไม่เหมือนกับการได้ลงมือเขียนโค้ดเอง
→ การเขียนโปรแกรมในฐานะกิจกรรมของทีม ต้องมีทั้งรูปแบบการเขียนโค้ด นโยบายการแก้บั๊ก การรีวิวโค้ด การจัดลำดับความสำคัญของฟีเจอร์ ฯลฯ การสร้างซอฟต์แวร์ในระดับทีมจึงต้องมีงานที่ไม่ใช่การเขียนโค้ดอยู่มาก
→ แต่ในโปรเจกต์ของฉันเองมีอิสระเต็มที่ ฉันกำหนดสไตล์การเขียนโค้ดเอง เลือกฟีเจอร์เอง ตัดสินใจเองว่าจะแก้บั๊กไหน และไม่ต้องไปประชุมด้วย
- แม้จะพัฒนามา 7 ปีแล้ว แต่ก็ยังมีสิ่งที่ต้องทำอีกมาก
→ คิดว่าคงไม่มีวันไปถึงจุดที่เรียกว่า "it's done"
→ เหมือนที่ทหารผ่านศึกพูดไว้ว่า "พวกเขาไม่ได้ตายไป แค่ค่อย ๆ เลือนหายไป" (จาก "Old soldiers never die, they simply fade away")
1 ความคิดเห็น
rqlite - ฐานข้อมูลแบบกระจายน้ำหนักเบาที่ทำงานบน SQLite https://th.news.hada.io/topic?id=3636