Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Ruby

Mastering Rails: ทำไมความเร็วจึงสำคัญ และวิธีเร่งการพัฒนา

คุณมั่นใจใน core ideas ของ Rails แล้ว เขียนโค้ดที่ทำงานได้ ไม่มีปัญหา และกำลังเรียนรู้เพิ่มเกี่ยวกับ code quality, refactoring, tests ที่ดี และ object-oriented design

ตอนนี้คุณเริ่มรู้สึกว่าคุณ "เข้าใจแล้ว" อยู่บนเส้นทางสู่ expert มองย้อนหลังเห็นว่าพัฒนาไปไกลแค่ไหน และพอใจกับความก้าวหน้า

ทำไมถึงรู้สึกช้า? ตอนนี้สนใจ testing, maintainability, design รู้สึกว่า ship อะไรสักอย่างใช้เวลานานมาก!

เป็นไปได้ไหมที่จะ ship high quality code อย่างรวดเร็ว?

มันเป็นส่วนหนึ่งของกระบวนการ

ความรู้สึกนี้พบได้บ่อย ไม่ว่าจะเรียนอะไร

ตอนไม่ใช่ beginner แล้ว คุณเริ่มเห็นรูปทรงต่างๆ ที่โค้ดอาจจะมี มี alternatives มากขึ้นให้คิดทุกครั้งที่ลงบรรทัดโค้ด ต้อง test edge cases ที่ไม่เคยรู้จัก

เรียนรู้ skills ที่ช่วยเยอะ แตตอนนี้ยังใช้ความคิดเยอะ ต้องถ่วงตัดสินใจทุกครั้งเพื่อรู้สึกสบายใจว่า決策ถูกต้องจากสิ่งที่เรียนรู้

จะเร็วขึ้น Skills ที่เรียนรู้จะกลายเป็น automatic สร้าง intuition และตัดสินใจได้ดีขึ้นเร็วขึ้น

ดีใจได้ แตช่วยไม่ได้ ตอนนี้ ทำได้อะไร ตอนนี้ เพื่อเสร็จเร็วขึ้น?

ทำเป็นขั้นตอน

ถ้าคุณ obsessed เขียนโค้ด perfect, high-quality, highly-maintainable ทุกครั้งที่พิมพ์ จะไม่เสร็จสิ่งใดเลย

ตอนติด ผมเขียนโค้ดเหมือนเขียนบทความ เริ่ม rough draft sketch tests, code, comments หรือเขียน ideas บนกระดาษ ตอนนี้ไม่กังวล structure ใช้โค้ดขจัด ideas 籠ในหัว

จากนั้นเปลี่ยน ideas ให้เป็น straightforward implementation "The simplest thing that could possibly work" ไม่ perfect เลย แตไม่กังวล เพราะพอ code works จะทำ tidying pass TDD edge cases, refactor bad code ชัดเจน, ทำ names ให้ชัด

"Refined drafts" นี้มักพอ ship แตผมมักทำอีก 몇 passes ไมเยอะ - จะเจอ diminishing returns ใช้เวลาทำความสะอาดมากกว่าคุ้ม

ถ้าอยากได้ cleanest code ให้มันพัก กลับมาอีก ไปสักสัปดาห์หรือเดือน ทำอีก pass ตอนนั้นรู้ระบบมากขึ้น เรียนรู้เขียน maintainable code ดีขึ้น จะทำได้ดีกว่า

เหมือนเขียน กระบวนการคือ:

  1. Sketch rough outline, draft, หรือ prototype
  2. เขียน simple, unedited, straightforward implementation (guided by TDD หรือเขียนพร้อม tests)
  3. Refine, refactor, clean up นิดหน่อย
  4. ปล่อยให้พัก
  5. กลับมา อีก pass

ดูเยอะ แตตอนทำเป็นขั้นตอน จะเคลื่อนไหวเร็วกว่า โดยไม่ second-guess ตัวเองตลอด และไม่ overthink ระหว่าง options ที่ดีเท่ากัน

บทความนี้ inspired by คำถามจาก Topher บน advice page ติดคำถาม Ruby/Rails ต้องการช่วยเหลือ ถามได้ที่นั่น!