All Projects → saladpuk → Design Patterns

saladpuk / Design Patterns

Projects that are alternatives of or similar to Design Patterns

Low Level Design Primer
Dedicated Resources for the Low-Level System Design. Learn how to design and implement large-scale systems. Prep for the system design interview.
Stars: ✭ 2,706 (+1550%)
Mutual labels:  design-patterns
Php Patterns
A minimal and conceptual PHP 5.4+ pattern collection that *will* cover design patterns (not only GoF's), anti-patterns, closure patterns, refactoring patterns
Stars: ✭ 147 (-10.37%)
Mutual labels:  design-patterns
Domain Driven Hexagon
Guide on Domain-Driven Design, software architecture, design patterns, best practices etc.
Stars: ✭ 4,417 (+2593.29%)
Mutual labels:  design-patterns
Tachyons
Functional css for humans
Stars: ✭ 11,057 (+6642.07%)
Mutual labels:  design-patterns
Nice Knowledge System
📚不积跬步无以至千里,每天进步一点点,Passion,Self-regulation,Love and Share
Stars: ✭ 137 (-16.46%)
Mutual labels:  design-patterns
Laravel Api Templates
Laravel API starter kit collection using different structures.
Stars: ✭ 149 (-9.15%)
Mutual labels:  design-patterns
Ios Design Patterns
Learning ground for iOS Design Pattern included with sample projects for MVC, MVP, MVVM, and VIPER
Stars: ✭ 120 (-26.83%)
Mutual labels:  design-patterns
Python Clean Architecture
A Python toolkit for applications driven by The Clean Architecture
Stars: ✭ 159 (-3.05%)
Mutual labels:  design-patterns
React Bits
✨ React patterns, techniques, tips and tricks ✨
Stars: ✭ 11,572 (+6956.1%)
Mutual labels:  design-patterns
It books
好书分享,送人玫瑰,手有余香。
Stars: ✭ 154 (-6.1%)
Mutual labels:  design-patterns
Designpatterns
Design patterns for C++ example.
Stars: ✭ 126 (-23.17%)
Mutual labels:  design-patterns
Important Java Concepts
🚀 Complete Java - A to Z ║ 📚 Notes and Programs of all Important Concepts of Java - OOPS, Data Structures, Algorithms, Design Patterns & Development + Kotlin + Android 🔥
Stars: ✭ 135 (-17.68%)
Mutual labels:  design-patterns
Design Patterns In Ruby
GoF design patterns in Ruby
Stars: ✭ 1,969 (+1100.61%)
Mutual labels:  design-patterns
Ui Ux
📝 Curated list for UI/UX Designers
Stars: ✭ 125 (-23.78%)
Mutual labels:  design-patterns
Design Patterns
Modern view on classic design patterns implementation in Java
Stars: ✭ 157 (-4.27%)
Mutual labels:  design-patterns
Androidofferkiller
💪 Help you get a better offer.
Stars: ✭ 1,669 (+917.68%)
Mutual labels:  design-patterns
Designpatternsincsharp
Samples associated with Pluralsight design patterns in c# courses.
Stars: ✭ 149 (-9.15%)
Mutual labels:  design-patterns
Clean Flutter App
Aplicativo feito em Flutter usando TDD, Clean Architecture, Design Patterns e SOLID principles
Stars: ✭ 163 (-0.61%)
Mutual labels:  design-patterns
100 Lines Of Code Challenge Js
Write Everything in JavaScript under 100 Lines!!!😈
Stars: ✭ 157 (-4.27%)
Mutual labels:  design-patterns
Design Patterns Python
Design Pattern Examples in Python
Stars: ✭ 150 (-8.54%)
Mutual labels:  design-patterns

Design patterns

Note
1.ตัว pattern ที่เหลือโอกาสใช้มันค่อนข้างต่ำมากถ้ามีเวลาผมจะมาทำต่อนะครับ
2.หากใครต้องการช่วยทำต่อหรือแก้ไขต่างๆ fork ออกไปแล้วทำ pull request เข้ามาจะเป็นพระคุณมากครับ
3.หากอ่านแล้วสงสัย หรือ อธิบายตรงไหนผิด ตั้งเป็น Issue ทิ้งไว้ก็ได้ เดี๋ยวจะกลับมาตอบขอรับ
3.เจ้าหนังสือด้านล่างผมไม่ได้เขียน แต่ผมเอารูปเขามาใช้เลยใส่เครดิตให้เขาเฉยๆ จะซื้อไม่ซื้อก็แล้วแต่ศรัทธาเลยละกัน ส่วนตัวผมว่าอ่านแล้วก็สนุกดี

มันคืออะไร ?

Design patterns เป็นแนวคิดในการแก้ปัญหาที่เราเจอบ่อยๆในการออกแบบซอฟต์แวร์ ซึ่งถ้าเรามี ปัญหา แล้วปัญหานั้นมีลักษณะตรงกับ pattern ไหนก็ตาม เราก็จะสามารถนำแนวคิดของ pattern นั้นๆไปแก้ปัญหาของเราได้เลย

Pattern แต่ละตัวจะเป็นแค่ แนวคิดในการแก้ไขปัญหา เท่านั้น ซึ่งมันไม่ได้บอกชัดเจนว่าเราต้องมีทำอะไรบ้างเพื่อจะแก้ปัญหาที่เจอ ดังนั้นวิธีการแก้ปัญหาที่เจอจะขึ้นกับการตัดสินใจของ developer เอง

👍 ข้อดี

  • เมื่อเกิดปัญหาในการออกแบบซอฟต์แวร์ สามารเอา pattern มาแก้ปัญหาได้เลย
  • สามารถรับมือเมื่อเจอกับ business requirement ที่ซับซ้อนได้
  • ลดการเกิด coupling, โค้ดยืดหยุ่นขึ้น, โค้ดนำกลับมาใช้ใหม่ได้

👎 ข้อเสีย

  • Design pattern แต่ละตัวไม่ได้เข้าใจง่ายสำหรับ developer มือใหม่
  • Developer ส่วนใหญ่จะนำ design pattern ไปใช้เลย โดยไม่ได้ชั่งน้ำหนักก่อนใช้ให้ดีก่อน ทำให้โค้ดมีความซับซ้อนเพิ่มขึ้นโดยไม่จำเป็น

คำเตือน
การนำ design pattern ไปใช้ไม่ใช่เรื่องเท่ เพราะมันมี cost (memory, processing overhead & complexity) ของมันค่อนข้างสูง ดังนั้นก่อนใช้ให้ ชั่งน้ำหนัก ข้อดี/ข้อเสีย ให้ดีก่อน ไม่งั้นโค้ดจะทำงานได้แต่ maintenance ยากขึ้นโดยใช่เหตุ ดังนั้นอย่าเมากาวแล้วตะบี้ตะบันเอา pattern ไปใช้เลยตลอดเวลา (อาตตามาเตือนแล้วนะ)

กลุ่มของ patterns ต่างๆ

Pattern ทั้งหมดถูกแบ่งออกเป็น 3 กลุ่ม ตามวัตถุประสงค์ในการแก้ไขปัญหาของมัน โดยแต่ละกลุ่มจะช่วยให้โค้ดนั้น ลดการเกิด coupling, มีความยืดหยุ่นขึ้นและนำกลับมาใช้ใหม่ได้

Credit

https://refactoring.guru
You can buy his book by click the image below.
img

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].