
Design Patterns ใน Rails
Service objects, form objects, decorators, presenters, query objects, concerns
1Service Object ใน Rails คืออะไร?
Service Object ใน Rails คืออะไร?
คำตอบ
Service Object คือคลาส Ruby ธรรมดา (PORO) ที่ห่อหุ้มลอจิกทางธุรกิจที่ซับซ้อน โดยทั่วไปคือการดำเนินการเพียงอย่างเดียว มันแยกลอจิกออกจาก controller และ model เพื่อรักษา Single Responsibility Principle (SRP) โดยทั่วไป service object จะเปิดเผยเมธอด public เพียงเมธอดเดียวเช่น call หรือ execute ทำให้ทดสอบและนำกลับมาใช้ใหม่ได้ง่าย
2ข้อดีหลักของการใช้ Service Object แทนการใส่ลอจิกไว้ใน controller คืออะไร?
ข้อดีหลักของการใช้ Service Object แทนการใส่ลอจิกไว้ใน controller คืออะไร?
คำตอบ
ข้อดีหลักคือความสามารถในการทดสอบและการนำกลับมาใช้ใหม่ Service Object เป็นคลาส Ruby ที่แยกอิสระ ทดสอบแบบแยกได้ง่ายโดยไม่ต้องจำลองบริบท HTTP ทั้งหมดของ controller นอกจากนี้ลอจิกเดียวกันยังสามารถเรียกใช้จากที่ต่าง ๆ (controller, job, console) ได้โดยไม่ต้องเขียนโค้ดซ้ำ
3จะจัดโครงสร้าง Service Object ด้วยหลักการตั้งชื่อที่ชัดเจนได้อย่างไร?
จะจัดโครงสร้าง Service Object ด้วยหลักการตั้งชื่อที่ชัดเจนได้อย่างไร?
คำตอบ
หลักการที่แนะนำคือใช้คำกริยาตามด้วยคำนาม สะท้อนการกระทำที่ดำเนินการ (เช่น CreateUser, ProcessPayment, SendInvitation) เซอร์วิสจะเปิดเผยเมธอด call เป็นจุดเข้าเดียว และสามารถเรียกใช้ผ่าน UserCreator.call(params) หรือ UserCreator.new(params).call หลักการนี้ทำให้โค้ดอธิบายตัวเองได้และคาดเดาได้
Form Object คืออะไรและใช้เมื่อใด?
ควรรวมโมดูล Ruby ใดไว้ใน Form Object เพื่อใช้ประโยชน์จากการตรวจสอบของ ActiveRecord?
+19 คำถามสัมภาษณ์
หัวข้อสัมภาษณ์ Ruby on Rails อื่นๆ
พื้นฐาน Ruby
การเขียนโปรแกรมเชิงวัตถุใน Ruby
พื้นฐาน Rails
Routing & Controllers
พื้นฐาน ActiveRecord
Views และ ERB Templates
การเชื่อมโยงของ ActiveRecord
การสอบถาม ActiveRecord ขั้นสูง
ฟอร์ม Rails
การยืนยันตัวตนและการอนุญาต
Asset Pipeline สมัยใหม่และ frontend
โหมด API ของ Rails
การทดสอบด้วย RSpec
ActiveJob & Background Jobs
ActionCable & WebSockets
ActionMailer
ActiveStorage
กลยุทธ์การ Caching
การ Migration ขั้นสูง
Rails Engines และแอปแบบโมดูลาร์
การเพิ่มประสิทธิภาพการทำงาน
เมตาโปรแกรมมิงใน Ruby
ความปลอดภัยของ Rails
GraphQL กับ Rails
การดีพลอยและโปรดักชัน
Monitoring & Logging
กลยุทธ์การอัปเกรด Rails
เชี่ยวชาญ Ruby on Rails สำหรับการสัมภาษณ์ครั้งถัดไป
เข้าถึงคำถามทั้งหมด flashcards แบบทดสอบเทคนิค แบบฝึกหัด code review และตัวจำลองสัมภาษณ์
เริ่มใช้ฟรี