ทางเลือกอื่นๆ
บทความนี้อยู่ระหว่างการเขียน
หากต้องการให้บทความนี้เสร็จเร็วขึ้น คุณสามารถ:
- 📢 แบ่งปันความคิดเห็นของคุณ ที่บทความ (คอมเมนต์/รีแอกชัน)
- 💬 รวบรวมเนื้อหา ที่เกี่ยวข้องจากแชท
- ⚒️ ร่วมสนับสนุน ในรูปแบบอื่นๆ
🍰 Stay tuned!
ประวัติความเป็นมาของแนวทางการออกแบบสถาปัตยกรรม (Architecture Approaches)
Big Ball of Mud
บทความนี้อยู่ระหว่างการเขียน
หากต้องการให้บทความนี้เสร็จเร็วขึ้น คุณสามารถ:
- 📢 แบ่งปันความคิดเห็นของคุณ ที่บทความ (คอมเมนต์/รีแอกชัน)
- 💬 รวบรวมเนื้อหา ที่เกี่ยวข้องจากแชท
- ⚒️ ร่วมสนับสนุน ในรูปแบบอื่นๆ
🍰 Stay tuned!
มันคืออะไร? ทำไมถึงพบบ่อย? เมื่อไหร่ที่เริ่มสร้างปัญหา? จะทำอย่างไรและ FSD ช่วยเรื่องนี้ได้อย่างไร?
- (Article) Oleg Isonen - Last words on UI architecture before an AI takes over
- (Report) Julia Nikolaeva, iSpring - Big Ball of Mud and other problems of the monolith, we have handled
- (Article) DD - Big Ball of mud
Smart & Dumb components
บทความนี้อยู่ระหว่างการเขียน
หากต้องการให้บทความนี้เสร็จเร็วขึ้น คุณสามารถ:
- 📢 แบ่งปันความคิดเห็นของคุณ ที่บทความ (คอมเมนต์/รีแอกชัน)
- 💬 รวบรวมเนื้อหา ที่เกี่ยวข้องจากแชท
- ⚒️ ร่วมสนับสนุน ในรูปแบบอื่นๆ
🍰 Stay tuned!
เกี่ยวกับแนวทางนี้ ความสามารถในการนำไปใช้ในฝั่ง Frontend และจุดยืนของระเบียบวิธี (Methodology)
เกี่ยวกับความล้าสมัย และมุมมองใหม่จากระเบียบวิธีนี้
ทำไมแนวทาง component-containers ถึงไม่ค่อยเวิร์ค?
หลักการออกแบบ (Design Principles)
บทความนี้อยู่ระหว่างการเขียน
หากต้องการให้บทความนี้เสร็จเร็วขึ้น คุณสามารถ:
- 📢 แบ่งปันความคิดเห็นของคุณ ที่บทความ (คอมเมนต์/รีแอกชัน)
- 💬 รวบรวมเนื้อหา ที่เกี่ยวข้องจากแชท
- ⚒️ ร่วมสนับสนุน ในรูปแบบอื่นๆ
🍰 Stay tuned!
เรากำลังพูดถึงเรื่องอะไร และจุดยืนของ FSD
SOLID, GRASP, KISS, YAGNI, ... - และทำไมหลักการพวกนี้ถึงทำงานร่วมกันได้ไม่ค่อยดีในทางปฏิบัติ
และระเบียบวิธีนี้รวบรวมแนวปฏิบัติเหล่านี้ไว้ด้วยกันได้อย่างไร
DDD
บทความนี้อยู่ระหว่างการเขียน
หากต้องการให้บทความนี้เสร็จเร็วขึ้น คุณสามารถ:
- 📢 แบ่งปันความคิดเห็นของคุณ ที่บทความ (คอมเมนต์/รีแอกชัน)
- 💬 รวบรวมเนื้อหา ที่เกี่ยวข้องจากแชท
- ⚒️ ร่วมสนับสนุน ในรูปแบบอื่นๆ
🍰 Stay tuned!
เกี่ยวกับแนวทางนี้ และทำไมถึงใช้งานจริงได้ยาก
ข้อแตกต่างคืออะไร มันช่วยปรับปรุงการนำไปใช้ได้อย่างไร และรับแนวปฏิบัติส่วนไหนมาใช้บ้าง
- (Article) DDD, Hexagonal, Onion, Clean, CQRS, ... How I put it all together
- (Talk) Ilya Azin - Feature-Sliced Design (fragment about Clean Architecture, DDD)
Clean Architecture
บทความนี้อยู่ระหว่างการเขียน
หากต้องการให้บทความนี้เสร็จเร็วขึ้น คุณสามารถ:
- 📢 แบ่งปันความคิดเห็นของคุณ ที่บทความ (คอมเมนต์/รีแอกชัน)
- 💬 รวบรวมเนื้อหา ที่เกี่ยวข้องจากแชท
- ⚒️ ร่วมสนับสนุน ในรูปแบบอื่นๆ
🍰 Stay tuned!
เกี่ยวกับแนวทางนี้ ความสามารถในการนำไปใช้ในฝั่ง Frontend และจุดยืนของ FSD
มีความคล้ายคลึงกันอย่างไร (ในหลายๆ จุด) และแตกต่างกันอย่างไร
- (Thread) About use-case/interactor in the methodology
- (Thread) About DI in the methodology
- (Article) Alex Bespoyasov - Clean Architecture on frontend
- (Article) DDD, Hexagonal, Onion, Clean, CQRS, ... How I put it all together
- (Talk) Ilya Azin - Feature-Sliced Design (fragment about Clean Architecture, DDD)
- (Article) Misconceptions of Clean Architecture
เฟรมเวิร์ก (Frameworks)
บทความนี้อยู่ระหว่างการเขียน
หากต้องการให้บทความนี้เสร็จเร็วขึ้น คุณสามารถ:
- 📢 แบ่งปันความคิดเห็นของคุณ ที่บทความ (คอมเมนต์/รีแอกชัน)
- 💬 รวบรวมเนื้อหา ที่เกี่ยวข้องจากแชท
- ⚒️ ร่วมสนับสนุน ในรูปแบบอื่นๆ
🍰 Stay tuned!
ความสามารถในการนำไปใช้ในฝั่ง Frontend ทำไมเฟรมเวิร์กถึงแก้ปัญหาไม่ได้ทั้งหมด ทำไมถึงไม่มีแนวทางเดียวที่ใช้ได้กับทุกอย่าง และจุดยืนของ FSD
ความเป็น Framework-agnostic (ไม่ยึดติดกับเฟรมเวิร์ก) และแนวทางแบบ Conventional
- (Article) About the reasons for creating the methodology (fragment about frameworks)
- (Thread) About the applicability of the methodology for different frameworks
Atomic Design
มันคืออะไร?
ใน Atomic Design ขอบเขตความรับผิดชอบจะถูกแบ่งออกเป็นเลเยอร์ที่เป็นมาตรฐาน
Atomic Design แบ่งออกเป็น 5 เลเยอร์ (จากบนลงล่าง):
pages- ฟังก์ชันการทำงานคล้ายกับเลเยอร์pagesใน FSDtemplates- คอมโพเนนต์ที่กำหนดโครงสร้างของหน้าเว็บโดยไม่ยึดติดกับเนื้อหาเฉพาะเจาะจงorganisms- โมดูลที่ประกอบด้วย molecules และมี Business Logicmolecules- คอมโพเนนต์ที่ซับซ้อนขึ้น ซึ่งปกติจะไม่มี Business Logicatoms- UI คอมโพเนนต์พื้นฐานที่ไม่มี Business Logic
โมดูลในเลเยอร์หนึ่งจะโต้ตอบกับโมดูลในเลเยอร์ที่ต่ำกว่าเท่านั้น ซึ่งคล้ายกับ FSD นั่นคือ molecules สร้างจาก atoms, organisms สร้างจาก molecules, templates สร้างจาก organisms และ pages สร้างจาก templates Atomic Design ยังเน้นการใช้ Public API ภายในโมดูลเพื่อการแยกส่วน (Isolation) ด้วย
การนำไปใช้กับ Frontend
Atomic Design ค่อนข้างแพร่หลายในโปรเจกต์ต่างๆ แต่มักจะเป็นที่นิยมในหมู่นักออกแบบเว็บมากกว่านักพัฒนา นักออกแบบเว็บมักใช้ Atomic Design เพื่อสร้างดีไซน์ที่สเกลได้และดูแลง่าย ในส่วนของการพัฒนา Atomic Design มักจะถูกนำมาผสมผสานกับระเบียบวิธีทางสถาปัตยกรรมอื่นๆ
อย่างไรก็ตาม เนื่องจาก Atomic Design เน้นไปที่ UI คอมโพเนนต์และการประกอบกันของคอมโพเนนต์เหล่านั้น ปัญหาจึงเกิดขึ้นเมื่อต้อง implement Business Logic เข้าไปในสถาปัตยกรรม
ปัญหาคือ Atomic Design ไม่ได้กำหนดระดับความรับผิดชอบของ Business Logic ไว้อย่างชัดเจน ทำให้ Logic กระจายไปตามคอมโพเนนต์และเลเวลต่างๆ ซึ่งทำให้การดูแลรักษาและการทดสอบทำได้ยาก Business Logic จะเริ่มเบลอๆ ไม่ชัดเจน ทำให้แยกความรับผิดชอบได้ยาก และทำให้ โค้ดมีความเป็นโมดูล (Modular) และนำกลับมาใช้ใหม่ (Reusable) ได้น้อยลง
มันเกี่ยวข้องกับ FSD อย่างไร?
ในบริบทของ FSD องค์ประกอบบางอย่างของ Atomic Design สามารถนำมาใช้สร้าง UI คอมโพเนนต์ที่ยืดหยุ่นและสเกลได้
เลเยอร์ atoms และ molecules สามารถ implement ได้ใน shared/ui ของ FSD ซึ่งช่วยให้การนำกลับมาใช้ใหม่และ
การดูแลรักษา UI element พื้นฐานง่ายขึ้น
├── shared
│ ├── ui
│ │ ├── atoms
│ │ ├── molecules
│ ...
การเปรียบเทียบระหว่าง FSD และ Atomic Design แสดงให้เห็นว่าทั้งสองระเบียบวิธีต่างมุ่งเน้นความเป็นโมดูล (Modularity) และการนำกลับมาใช้ใหม่ (Reusability) แต่เน้นคนละด้าน Atomic Design เน้นไปที่ visual components และการประกอบกัน ส่วน FSD เน้นไปที่การแบ่งฟังก์ชันการทำงานของแอปพลิเคชันออกเป็นโมดูลอิสระและการเชื่อมต่อระหว่างโมดูลเหล่านั้น
- Atomic Design Methodology
- (Thread) About applicability in shared / ui
- (Video) Briefly about Atomic Design
- (Talk) Ilya Azin - Feature-Sliced Design (fragment about Atomic Design)
Feature Driven
บทความนี้อยู่ระหว่างการเขียน
หากต้องการให้บทความนี้เสร็จเร็วขึ้น คุณสามารถ:
- 📢 แบ่งปันความคิดเห็นของคุณ ที่บทความ (คอมเมนต์/รีแอกชัน)
- 💬 รวบรวมเนื้อหา ที่เกี่ยวข้องจากแชท
- ⚒️ ร่วมสนับสนุน ในรูปแบบอื่นๆ
🍰 Stay tuned!
เกี่ยวกับแนวทางนี้ ความสามารถในการนำไปใช้ในฝั่ง Frontend และจุดยืนของ FSD
ความเข้ากันได้ ประวัติการพัฒนา และการเปรียบเทียบ