3 คะแนน โดย GN⁺ 2024-11-04 | 2 ความคิดเห็น | แชร์ทาง WhatsApp
  • เริ่มต้นบล็อก

    • ในปี 2022 เริ่มพัฒนาแอปพลิเคชันสำหรับจัดทำเอกสารสำแดงศุลกากร
    • หลังจากประเมินหลายภาษาและหลายเฟรมเวิร์กแล้ว จึงตัดสินใจพัฒนาด้วย Ruby on Rails
    • เนื่องจากคุ้นเคยกับ Rails จึงพัฒนาได้เร็วกว่าตัวเลือกอื่นถึง 10 เท่า
  • การพัฒนาเวอร์ชัน 2

    • เริ่มพัฒนาแอปพลิเคชันเวอร์ชันที่สองโดยใช้ Rust และ SvelteKit
    • ช่วงแรกทั้งเร็วและดูดี แต่พัฒนาได้เพียง 10% ของฟีเจอร์ที่ต้องการ
    • เนื่องจากไม่มีเฟรมเวิร์กของ Rust ที่เทียบได้กับ Rails จึงใช้เวลามาก
  • ข้อดีของ Rust

    • ได้สัมผัสข้อดีของประสิทธิภาพของ Rust และการคอมไพล์ที่ไร้ข้อผิดพลาด
    • ใน Ruby มักเกิด runtime error บ่อย จึงรู้สึกถึงความจำเป็นของ Rust
  • การเปลี่ยนแปลงฝั่งฟรอนต์เอนด์

    • รู้สึกไม่พอใจกับฟรอนต์เอนด์ของ Rails จึงตัดสินใจย้ายไปใช้ SvelteKit
    • เปลี่ยนบางหน้าไปใช้สแตกใหม่ได้อย่างรวดเร็ว แต่การดีพลอยกลับซับซ้อนขึ้น
  • ความเป็นจริงของการพัฒนา

    • ส่วนของ Rails ยังคงพัฒนาไปเรื่อย ๆ พร้อมเพิ่มฟังก์ชันที่มีประโยชน์อย่างต่อเนื่อง
    • ตระหนักว่าการย้ายไปใช้ Rust และ Svelte ไม่ได้สร้างคุณค่าโดยตรงให้ผู้ใช้
  • ความยากของการตัดสินใจ

    • ตัดสินใจเลิกใช้สแตกใหม่และกลับไปใช้ Rails
    • ชักชวนให้สมาชิกทีมเรียนรู้ Rails
  • ข้อดีของ Rails

    • Rails เป็นรากฐานของบริษัทที่ประสบความสำเร็จมากมาย และมีไลบรารีกับอีโคซิสเต็มจำนวนมาก
    • ช่วยให้สามารถโฟกัสกับการพัฒนาผลิตภัณฑ์ได้
  • บทเรียน

    • การเรียนรู้ภาษาและเฟรมเวิร์กใหม่ ๆ ให้มุมมองเชิงลึกมากมาย
    • การพัฒนาเว็บแอปพลิเคชันต้องอาศัยทางเลือกและการประนีประนอมจำนวนมาก
    • การกลับไปใช้ Rails เป็นการตัดสินใจที่ดีและช่วยเพิ่มประสิทธิภาพการทำงาน
  • ข้อเสียของ Ruby และ Rails

    • ปัญหา runtime สามารถแก้ได้ด้วยการทดสอบ
    • การที่โค้ดซับซ้อนขึ้นเป็นปัญหาของนักพัฒนาเอง และต้องจัดระเบียบให้ดี
    • Rails เร็วเพียงพอ และสามารถปรับปรุงประสิทธิภาพได้ด้วย Turbo และการแคช
  • สรุป

    • ไม่มีภาษาหรือเฟรมเวิร์กใดสมบูรณ์แบบ ต้องเข้าใจและใช้ประโยชน์จากข้อดีข้อเสียของแต่ละตัว
    • Rails เป็นตัวเลือกที่ดี และเฟรมเวิร์กอื่น ๆ อีกมากก็ยอดเยี่ยมเช่นกัน

2 ความคิดเห็น

 
lemonmint 2024-11-04

เขียนใหม่ด้วย Ruby
เขียนใหม่ด้วย Rails

 
GN⁺ 2024-11-04
ความคิดเห็นบน Hacker News
  • Rails, Django และ Laravel นำหน้ากว่าสแต็กอื่นมากในการพัฒนาเว็บแอป พวกมันจัดการงานที่ทำซ้ำ ๆ เข้าใจความต้องการได้ดี และไม่ขัดขวางตอนสร้างแอปพลิเคชัน มองว่าการพัฒนาเว็บเป็นปัญหาที่ถูกแก้ไปแล้ว และเทคโนโลยีฝั่ง JavaScript มักถูกขับเคลื่อนด้วยเงินทุนจากบริษัทขนาดใหญ่

  • ใช้ Rails มา 17 ปีแล้ว และยังคงรักและชอบมันอยู่ ยังแยกโค้ดได้ง่าย ทำให้ส่วนหัวของไฟล์ไม่ยาวเกินความจำเป็น เมื่อแยก logic กับ markup ออกจากกัน ก็ทดสอบแยกกันได้ จึงตามบั๊กได้ง่ายขึ้น

  • Rust เป็นภาษาที่สร้างโดยคนที่ฉลาดมาก แต่เพราะมันเน้นทฤษฎีชนิดข้อมูลและการจัดสรรหน่วยความจำ จึงเข้าใจยากสำหรับนักพัฒนาทั่วไป ต่อให้อ่านบล็อกโพสต์เกี่ยวกับ Rust ก็เข้าใจได้แค่ประมาณครึ่งเดียว

  • ความไม่พอใจต่อ Ruby และ Rails ลดลงแล้ว ไม่มีภาษาหรือเฟรมเวิร์กไหนสมบูรณ์แบบ และควรรู้ทั้งจุดแข็งและจุดอ่อนเพื่อรับมือกับมัน

  • การเขียนเว็บแอปพลิเคชันขนาดใหญ่ด้วย Rust ให้เสร็จอย่างรวดเร็วเป็นเรื่องยาก แอปขนาดใหญ่ที่เขียนด้วย Rails ก็อาจรันได้ไม่เร็ว มีบั๊กเยอะ และดูแลรักษาหรือขยายต่อได้ยาก ภาษาอย่าง Java, C#, Go ทำงานได้เสร็จเร็วพอ ๆ กับ Rails และรันได้เร็วพอ ๆ กับ Rust

  • เหตุผลที่เทคโนโลยีอย่าง NextJS และ SvelteKit ได้รับความนิยมในหมู่นักพัฒนา JS คือมันช่วยแก้ปัญหาประสบการณ์การพัฒนาแบ็กเอนด์ของ Node.JS ส่วน Rails ได้มอบโซลูชันแบบครบวงจรสำหรับการสร้างแอปพลิเคชันไว้อย่างปฏิวัติวงการตั้งแต่ปี 2006

  • กำลังทดสอบ AdonisJS ในฐานะทางเลือก TS ของ Rails มันคล้ายกับ Rails หรือ Laravel และช่วยลดภาระที่ต้องตัดสินใจเองทุกส่วนของสแต็ก

  • รู้สึกสับสนกับความเห็นที่ว่า Rust ไม่เหมาะกับเว็บแบ็กเอนด์ เพราะมีประสบการณ์ที่ดีในบริการขนาดเล็ก แม้ความซับซ้อนจะเพิ่มขึ้นเมื่อสร้างแอปขนาดใหญ่ แต่ Rust ก็ให้ความมั่นใจที่จำเป็นกับโค้ดเบสขนาดใหญ่

  • กำลังเจอประสบการณ์แบบเดียวกับ Django โดยปัญหาด้านประสิทธิภาพส่วนใหญ่มักเกิดจากคำสั่งคิวรีฐานข้อมูลมากกว่าตัว Django เอง

  • ไม่ใช่ปี 2010 แล้ว จึงสงสัยว่าทำไมยังใช้ Rails ทั้งที่มีทางเลือกมากมายอย่าง Java(Spring), Go, Node การใช้ Rust ก็เป็นตัวเลือกที่แปลกพอ ๆ กับ C++