🥬
FreshForFresh
  • ✌️Xin chào!
  • Overview
    • 💡Data structures and Algorithms
    • 👀Programming
    • 🧠Database
    • 🦴Back-End
    • ✨Front-End
    • 💐Spring Framework
    • 🛠️Tool
  • Data structures and Algorithms
    • 🎰Data Type
    • 🗑️Garbage collection
    • 🧩Data structures
    • 🎲Algorithms
  • Programming
    • 🧮Compiler
      • 🤖Tại sao phải cần compiler?
      • 📠Java Virtual Machine
  • 📈Thread
  • 🔐Lock & Deadlock
  • 🏇Race condition & Data Race
  • 🧯Synchronized
  • 🗜️Blocking IO và Non Blocking IO Client Server Socket
  • 🌐Languages
    • 🎛️Programming Language
    • 📑Client-Side & Server-Side
    • ⁉️Why java? Why javascript?
  • 🗼Design pattern
    • 🎨Front-End Design Pattern
    • 🏗️Back End Design Pattern
      • 🐴with Java
      • 🦄with Spring Boot
      • 🐖with Modern Backend Development
      • 🐁with Microservice
  • 🍀Clean Code
    • 🌊Chương 1: Code sạch
    • 📐Chương 2: Quy tắc đặt tên rõ nghĩa
    • 🚧Chương 3: Cách viết hàm
    • 👻Chương 4: Comments thế nào cho chuẩn?
    • 🥳Chương 5: Định dạng code.
    • 😈Chương 6: Đối tượng và cấu trúc dữ liệu
    • 🐛Chương 7: Xử lí lỗi
    • ☦️Chương 8: Ranh giới code
    • 🧪Chương 9: Unit test
    • 🥂Chương 10: Lớp đối tượng
    • 🥡Chương 11: Code sạch cấp hệ thống
  • Database
    • 🐔Giới thiệu
    • 📰Các loại cơ sở dữ liệu
    • 🐘Các loại DBMS phổ biến
    • 🕵️‍♀️SQL và cách sử dụng với relational database
      • 👺Lệnh SQL
      • 🛢️JOIN trong SQL
      • 🛕GROUP BY trong SQL
      • 🐼ORDER BY trong SQL
      • 🐣Truy vấn con SUBQUERY trong SQL Server
      • 🏦Transaction Trong SQL
      • 🇲🇰ACID
    • ☢️Thiết kế cơ sở dữ liệu
    • 🕍Consistency and concurrency handling
      • 🔒Database locking
      • 🎮Concurrency Control
      • 🙀Isolation Level
    • 🎨Performance & Scability
      • ☝️Indexing
      • 👯‍♂️Partitioning
      • 💅Các tips tăng hiệu suất SQL
      • 🇲🇬Kiểm tra và Xác thực việc Sao lưu và Phục hồi CSDL
      • 🌠Database sharding
      • 🧘‍♂️REPLICATION
      • 😁Các vấn đề ảnh hưởng đến performance.
  • Back-End
    • 🔫API?
    • 🐕‍🦺Web Services
    • 💾Phân biệt API và web service
    • 🙆‍♂️Tìm hiểu về RestAPI
    • 🧦SOAP
    • ✈️GraphQL API
    • 📊Compared GraphQL & REST
    • 📄Phân biệt HTTP & HTTPS
    • 🚵Client & Server
    • 🇩🇲DOM
  • Front-End
    • 🦑User Interface (UI)
    • 🛰️State Management
  • Spring Framework
    • 🔐Spring Security
      • 🌅Đơn giản hoá Spring Security
      • 🌸Spring Security: Authentication and Authorization In-Depth
      • 🚻OAuth2 Basic
      • 🀄JWT + Spring Security Oauth
      • 📤Logout trong ứng dụng sử dụng bảo mật Oauth
      • 🔂Reset Password
      • 🎗️OAuth2 Remember Me với Refresh Token
      • ⛓️OAuth2 cho một Spring REST API
  • Network
    • 💸Mạng máy tính căn bản
  • Tool
    • 🦏Các câu lệnh Docker cơ bản
    • 🦧Github
      • 🐰Các lệnh Git cơ bản
      • 🐇Một số trường hợp khi sử dụng Git
    • 🏚️WebServer
      • 🪂Tổng quan về kiến trúc hệ thống
      • 🔃Cơ bản về WebServer Nginx
  • Tài nguyên
    • 👨‍🏫Course
    • 📖Docs
Powered by GitBook
On this page

Design pattern

Design pattern là các phương pháp giải quyết các vấn đề thường gặp trong thiết kế phần mềm, có thể tái sử dụng và được coi là best practice của các lập trình viên kinh nghiệm.

PreviousWhy java? Why javascript?NextFront-End Design Pattern

Last updated 1 year ago

Các framework và thư viện hàng ngày cũng được xây dựng dựa trên design pattern.

Design pattern có thực sự cần thiết?

Design pattern trong thiết kế phần mềm là những phương pháp giải quyết các vấn đề phổ biến mà có thể tái sử dụng được. Mặc dù có những lập trình viên cho rằng design pattern không cần thiết hoặc khó áp dụng, thực tế sử dụng một design pattern thích hợp có thể giúp viết code dễ hiểu, dễ bảo trì và tăng tính thẩm mỹ của code.

Creational
Structure
Behavioral

Abstract factory

Adapter

Chain of responsibility

Builder

Bridge

Command

Factory

Composite

Interpreter

Prototype

Decorator

Iterator

#Singleton

Facade

Mediator

Flyweight

Memento

Memento

Proxy

Observer

Strategy

Template Method

Visitor

Một điểm quan trọng nữa của design pattern là nó là một ngôn ngữ chung của các lập trình viên. Khi người khác đọc code của bạn và nhận ra một design pattern được sử dụng, họ có thể nhanh chóng hiểu mục đích và cách thức hoạt động của code đó.

Ví dụ, nếu bạn sử dụng decorator pattern trong dự án, người đọc code có thể nhận biết rằng đoạn code đó được sử dụng để "trang trí" hoặc mở rộng chức năng cho các tính năng chính. Điều này giúp họ tập trung vào giải quyết các vấn đề nghiệp vụ thay vì phải tìm hiểu chi tiết từng dòng code.

Hiểu rõ về design pattern và áp dụng chúng một cách chính xác có ý nghĩa quan trọng.

Chúng ta sẽ cùng tìm hiểu các design pattern phổ biến cho FE và BE:

🗼
🎨Front-End Design Pattern
🏗️Back End Design Pattern