Skip to content
Showing 1-50 of 70 items.
@renovate
Admin 16/03/2021 13:30
Tôi đã dùng Service Pattern trong NuxtJS như thế nào ?

Giới thiệu Trong quá trình làm VueJS NuxtJS hay thậm chí là Laravel mình cũng hay áp dụng các pattern như Service hoặc Repository. Mình cũng đã trải nghiệm qua thằng Angular, và thực sự nó support các pattern này khá tốt và theo khuôn khổ. Với VueJS hay Nuxt thì các dev sẽ phải cần có kinh nghiệm và tự dựng bằng tay Bài viết này mình mong muốn chia sẻ về cách sử dụng Service pattern trong NuxtJS mình hay làm...

Happy New Year VueJS Design Pattern nuxt
@renovate
Admin 23/03/2021 19:10
Giới thiệu về Prototype Design Pattern

Ý đồ Prototype là một creational design pattern cho phép bạn sao chép các object hiện có mà không làm cho code của bạn phụ thuộc vào các class của chúng. Vấn đề Giả sử bạn có một object và bạn muốn tạo một bản sao của nó. Bạn sẽ làm điều này như thế nào? Đầu tiên, bạn phải tạo một object mới của cùng một class. Sau đó, bạn phải sao chép giá trị của tất cả các trường từ object gốc...

Happy New Year Design Pattern
@renovate
Admin 23/03/2021 19:50
Hướng dẫn Adapter Design Pattern

Trong bài viết này, chúng ta sẽ cùng tìm hiểu về Adapter Design Pattern qua cấu trúc, cánh triển khai, ví dụ, đánh giá và ứng dụng của nó. Đây là bài viết đầu tiên của mình nên sẽ không tránh khỏi sai sót, rất mong nhận được sự thông cảm và góp ý từ mọi người. 1. Tổng quan 1.1. Phân loại Adapter là 1 design pattern thuộc nhóm Structural Pattern. Structural Pattern bao gồm những pattern cung cấp các...

Design Pattern C# Design Patterns Adapter Pattern Structural Design Pattern
@renovate
Admin 02/05/2021 20:50
Data Class hay Builder Design Pattern?

Như chúng ta đã biết, Builder pattern là một trong những Design Pattern thuộc về nhóm Creational Pattern - những mẫu thiếu kế cho việc khởi tạo đối tượng của lớp. Design Pattern này sẽ giúp chúng ta tạo mới một đối tượng từ class một cách rõ ràng, linh hoạt. Bên cạnh đó, Data Class là một từ khóa không còn xa lạ với chúng ta ở trong Kotlin. Khi sử dụng Data Class, với từ khóa này, trình biên dịch...

Kotlin Design Pattern May Fest data
@renovate
Admin 07/05/2021 18:20
Design Patterns trong ngôn ngữ lập trình C - bài 1

Design Patterns trong C Design Patterns (Thiết Kế Mẫu) không phải là một khái niệm quá xa lạ với người lập trình. Trong Viblo cũng đã có nhiều bài viết chia sẻ về DP. Tuy nhiên khi nói đến DP, thông thường DP hay gắn với các ngôn ngữ lập trình hướng đối tượng. Ngay trong quyển sách Design Pattern - có thể coi là kinh thánh về DP - của Nhóm bộ tứ (Gang of Four), các tác giả cũng nói rằng "DP miêu...

Design Pattern May Fest C language
@renovate
Admin 18/05/2021 22:00
Hướng dẫn Chain of Responsibility Design Pattern

1. Tổng quan "The Chain of Responsibility pattern establishes a chain within a system, so that a message can either be handled at the level where it is first received, or be directed to an object that can handle it." - Gang of Four Chain of Responsibility là một design pattern thuộc nhóm Behavioral Pattern. Behavioral Pattern bao gồm những pattern quan tâm đến hành vi của đối tượng, sự giao tiếp giữa các đối tượng với nhau. Ý tưởng...

Design Pattern Design Principle C# Behavioral Design Pattern Chain of Responsibility Pattern
@renovate
Admin 05/06/2021 09:30
Các loại Design Patterns thường dùng ở Android và App Architectures - Phần 2

Chào các bạn, ở phần trước chúng ta đã cùng nhau tìm hiểu qua về Creational patterns và Structural patterns và những trường hợp hay sử dụng chúng ở trong Android. Tiếp theo hôm nay chúng ta sẽ tìm hiểu nốt phần còn lại là Behavioral Patterns và App Architectures nhé. Thôi bắt đầu ngay nào. Behavioral Patterns “Vậy… làm cách nào để biết một class đang chịu trách nhiệm về việc gì?” Behavioral Patterns cho...

Kotlin Android Design Pattern App Architectures
@renovate
Admin 20/11/2021 23:40
Design Patterns là gì? Tại sao nó lại là trợ thủ đắc lực của các Developers

Design Pattern là một giải pháp chung để giải quyết các vấn đề phổ biến khi thiết kế phần mềm trong lập trình hướng đối tượng OOP. Định nghĩa Design pattern là các giải pháp tổng thể đã được tối ưu hóa, được tái sử dụng cho các vấn đề phổ biến trong thiết kế phần mềm mà chúng ta thường gặp phải hàng ngày. Design patterns là một kỹ thuật trong lập trình hướng đối tượng,...

Design Pattern Design Patterns Clean Code lập trình hướng đối tượng Design Partern
@renovate
Admin 21/11/2021 00:20
Design Patterns là gì? Tại sao nó lại là trợ thủ đắc lực của Developers

Design Pattern là một giải pháp chung để giải quyết các vấn đề phổ biến khi thiết kế phần mềm trong lập trình hướng đối tượng OOP. Định nghĩa Design pattern là các giải pháp tổng thể đã được tối ưu hóa, được tái sử dụng cho các vấn đề phổ biến trong thiết kế phần mềm mà chúng ta thường gặp phải hàng ngày. Design patterns là một kỹ thuật trong lập trình hướng đối tượng,...

Design Pattern Design Patterns Clean Code lập trình hướng đối tượng Design Partern
@renovate
Admin 21/11/2021 00:30
Factory Method Design Pattern - Trợ thủ đắc lực của Developers

1. Giới thiệu Factory method (hay còn gọi là virtual constructor) là một mẫu thiết kế thuộc nhóm Creational Patterns – những mẫu thiết kế cho việc khởi tạo đối tượng của lớp Khi chúng ta muốn tạo ra một object của một type nào đấy, nhưng chúng ta không biết rõ mình sẽ phải tạo ra cái gì, mà nó phải dựa vào một số điều kiện business logic đầu vào để tạo ra object tương ứng, thì chúng ta...

Design Pattern Design Patterns Creational Patterns Creational Design Pattern Factory method pattern
@renovate
Admin 21/11/2021 11:20
Bridge Design Pattern - Trợ thủ đắc lực của Developers

1. Giới thiệu Bridge Pattern là một trong những Pattern thuộc nhóm Structural Pattern. Ý tưởng của nó là tách tính trừu tượng (abstraction) ra khỏi tính hiện thực (implementation) của nó. Từ đó có thể dễ dàng chỉnh sửa hoặc thay thế mà không làm ảnh hưởng đến những nơi có sử dụng lớp ban đầu. Sử dụng Bridge Patern khi chúng ta muốn: Khi bạn muốn tách ràng buộc giữa Abstraction và Implementation,...

Design Pattern Design Patterns Structural Design Pattern Structural Patterns
@renovate
Admin 21/11/2021 12:40
Builder Design Pattern - Trợ thủ đắc lực của Developers

1. Giới thiệu Builder là một mẫu thiết kế thuộc nhóm Creational Pattern – những mẫu thiết kế cho việc khởi tạo đối tượng của lớp Builder Pattern là một mẫu thiết kế được dùng để cung cấp một giải pháp linh hoạt cho các vấn đề tạo đối tượng (object) khác nhau trong lập trình hướng đối tượng. Cho phép bạn xây dựng các đối tượng phức tạp bằng cách sử dụng các đối...

Builder partern Design Pattern Design Patterns Creational Patterns Creational Design Pattern
@renovate
Admin 21/11/2021 13:20
Prototype Design Pattern - Trợ thủ đắc lực của Developers

1. Giới thiệu Prototype là một design pattern thuộc nhóm Creational Pattern - những mẫu thiết kế cho việc khởi tạo object của lớp. Prototype quy định loại của các đối tượng cần tạo bằng cách dùng một đối tượng mẫu, tạo mới nhờ vào sao chép đối tượng mẫu này mà không làm cho code phụ thuộc vào các lớp của chúng. Prototype Pattern được dùng khi việc tạo một object tốn nhiều chi phí và...

Design Pattern Design Patterns prototype Creational Design Pattern Prototype Pattern
@renovate
Admin 21/11/2021 13:30
Composite Design Pattern - Trợ thủ đắc lực của Developers

1. Giới thiệu Composite là một mẫu thiết kế thuộc nhóm cấu trúc (Structural Pattern). Composite Pattern là một sự tổng hợp những thành phần có quan hệ với nhau để tạo ra thành phần lớn hơn. Nó cho phép thực hiện các tương tác với tất cả đối tượng trong mẫu tương tự nhau. Tần suất sử dụng: khá cao 2. Mục đích ra đời Composite Pattern được sử dụng khi chúng ta cần xử lý một nhóm đối...

Design Pattern Design Patterns Structural Design Pattern Structural Patterns Composite Pattern
@renovate
Admin 21/11/2021 15:00
Flyweight Design Pattern - Trợ thủ đắc lực của Developers

1. Giới thiệu Flyweight là một mẫu thiết kế thuộc nhóm Structural Pattern – những mẫu thiết kế giúp dễ dàng thiết kế bằng cách xác định một cách hiện thực hóa mối quan hệ giữa các thực thể. Mẫu thiết kế Flyweight là một mẫu thiết kế cấu trúc cho phép bạn lắp nhiều đối tượng hơn vào dung lượng RAM có sẵn bằng cách chia sẻ, phân phối các phần trạng thái chung - riêng giữa nhiều...

Design Pattern Design Patterns Structural Design Pattern Structural Patterns
@renovate
Admin 21/11/2021 15:30
State Design Pattern - Trợ thủ đắc lực của Developers

1. Giới thiệu State Pattern là một mẫu thiết kế thuộc nhóm Behavioral Pattern – những mẫu thiết kế xác định các mẫu giao tiếp chung giữa các object. Từ đó các mẫu này tăng tính linh hoạt trong việc thực hiện việc giao tiếp giữa các object. State Pattern là một mẫu thiết kế hành vi cho phép một object thay đổi hành vi của nó khi trạng thái bên trong của nó thay đổi. Nó là một trong những mẫu...

Design Pattern Design Patterns Behavioral Design Pattern Behavioral state design pattern
@renovate
Admin 21/11/2021 15:50
Strategy Design Pattern - Trợ thủ đắc lực của Developers

1. Giới thiệu Phân loại: Behavior Pattern Bí danh: Policy Mục đích: Định nghĩa một tập hợp các thuật toán giống nhau, encapsulate chúng và khiến chúng có thể thay thế cho nhau. Strategy làm cho phần thuật toán độc lập khỏi client sử dụng nó. Tần suất sử dụng: khá cao 2. Mục đích ra đời Giả sử chúng ta cần xây dựng một app giúp tìm đường đi trong thành phố. Ban đầu app chỉ giúp những...

Design Pattern Behavioral Design Pattern Strategy Pattern Strategy Strategy Design Pattern
@renovate
Admin 21/11/2021 16:00
Proxy Design Pattern - Trợ thủ đắc lực của Developers

1. Giới thiệu Proxy (hay còn gọi là Surrogate) là một mẫu thiết kế thuộc nhóm cấu trúc (Structural Pattern). Điều khiển gián tiếp việc truy xuất đối tượng thông qua một đối tượng được ủy nhiệm Cung cấp 1 class đại diện để quản lí sự truy xuất đến thành phần của 1 class khác Giải quyết vấn đề security, perfomance, validation,… Tần suất sử dụng: khá cao 2. Mục đích ra...

Design Pattern Design Patterns Structural Design Pattern Structural Patterns
@renovate
Admin 21/11/2021 16:20
Visitor Design Pattern - Trợ thủ đắc lực của Developers

1. Giới thiệu Visitor là một mẫu thiết kế thuộc nhóm Behavior Pattern Visitor còn được biết đến như là Double dispatch Cho phép định nghĩa các operation trên một tập hợp các đối tượng không đồng nhất về kiểu mà không làm thay đổi định nghĩa về lớp của các đối tượng đó. Cho phép tách các thuật toán khỏi các đối tượng mà chúng hoạt động. Giúp phục hồi lại kiểu dữ liệu bị mất...

Design Pattern Design Patterns Behavioral Design Pattern Behavioral Visitor Pattern
@renovate
Admin 21/11/2021 16:30
Command Design Pattern - Trợ thủ đắc lực của Developers

1. Giới thiệu Command (hay còn gọi là Action, Transaction) là một mẫu thiết kế thuộc nhóm hành vi (Behavioral Pattern). Command pattern là một pattern cho phép bạn chuyển đổi một request thành một object độc lập chứa tất cả thông tin về request. Việc chuyển đổi này cho phép bạn tham số hoá các methods với các yêu cầu khác nhau như log, queue (undo/redo), transtraction. Khái niệm Command Object giống như một...

Design Pattern command Behavioral Design Pattern Behavioral command pattern
@renovate
Admin 21/11/2021 16:50
Memento Design Pattern - Trợ thủ đắc lực của Developers

1. Giới thiệu Phân loại: Behavior Pattern Mục đích: Memento cho phép người lưu trữ và hồi phục các phiên bản cũ của 1 object mà không can thiệp vào nội dung của object đó. 2. Mục đích ra đời Problem Tưởng tượng bạn đang tạo 1 text editor. Bao gồm các chức năng như chỉnh sửa text, format text, thêm ảnh, v.v.. Để phát triển thêm app, bạn quyết định cho phép người dùng undo và redo bất kỳ thao tác...

Design Pattern Design Patterns Behavioral Design Pattern Behavioral Memento Pattern
@renovate
Admin 21/11/2021 16:50
Mediator Design Pattern - Trợ thủ đắc lực của Developers

1. Giới thiệu Mediator Pattern là một trong những Pattern thuộc nhóm hành vi (Behavior Pattern). Mediator có nghĩa là người trung gian. Pattern này nói rằng “Định nghĩa một đối tượng gói gọn cách một tập hợp các đối tượng tương tác. Mediator thúc đẩy sự khớp nối lỏng lẻo (loose coupling) bằng cách ngăn không cho các đối tượng đề cập đến nhau một cách rõ ràng và nó cho phép bạn thay đổi sự...

Design Pattern Design Patterns Behavioral Design Pattern Behavioral Mediator
@renovate
Admin 21/11/2021 18:00
Iterator Design Pattern - Trợ thủ đắc lực của Developers

1. Giới thiệu Iterator hay còn gọi là Cursor là một mẫu thiết kế thuộc nhóm hành vi (Behavioral Pattern). Iterator được thiết kế cho phép xử lý nhiều loại tập hợp khác nhau bằng cách truy cập những phần tử của tập hợp với cùng một phương pháp, cùng một cách thức định sẵn, mà không cần phải hiểu rõ về những chi tiết bên trong của những tập hợp này. Nói cách khác, một Iterator được...

Design Pattern Design Patterns Behavioral Design Pattern Iterator Pattern Iterator
@renovate
Admin 25/11/2021 18:00
Để code ngắn gọn và tinh tế hơn trong Java

Lập trình khai báo (declarative programming) là một kĩ thuật mang lại rất nhiều lợi ích: code ngắn gọn hơn, dễ thay đổi, dễ bảo trì và mở rộng. Java là một ngôn ngữ thuần túy OOP theo hướng lập trình mệnh lệnh (imperative programming), "trường phái" ngược lại của declarative. Nhưng kể từ Java 8 với lambda expression, Java đã có thể tham gia vào cuộc chơi này. Trong bài viết này, mình sẽ giới thiệu...

Java Design Pattern declarative programming Functional Programming java 8
@renovate
Admin 29/11/2021 11:40
[MSDP] - Retry Pattern (resilience4j)

Bài viết này chúng ta sẽ tìm hiểu về Retry pattern trong chuỗi bài viết về resilience4j. Khi làm việc với các hệ thống phân tán, hãy luôn nhớ một điều rằng chúng ta có thể gặp phải các vấn đề về độ trễ mạng, dịch vụ từ xa không khả dụng hay đang chạy chậm,...những sự cố này có thể ảnh hưởng đến hiệu suất tổng thể của hệ thống. Nếu một hệ thống có khả năng phục hồi...

Design Pattern microservices
@renovate
Admin 29/11/2021 11:40
[MSDP] - Timeout pattern (spring boot)

Khi làm việc với các hệ thống phân tán, hãy luôn nhớ một điều rằng chúng ta có thể gặp phải các vấn đề về độ trễ mạng, dịch vụ từ xa không khả dụng hay đang chạy chậm,...những sự cố này có thể ảnh hưởng đến hiệu suất tổng thể của hệ thống. Nếu một hệ thống có khả năng phục hồi sau những sự cố như vậy sẽ tránh được sự cố domino (sụp đổ xếp tầng liên tiếp,...

Spring Boot Design Pattern microservices
@renovate
Admin 29/11/2021 11:40
[MSDP] - Priority Queue Pattern

Trong một số trường hợp khi các request đến server, chúng ta có thể muốn đưa các request vào hàng đợi và xử lý chúng theo trình tự hoặc theo thứ tự có ưu tiên sau đó thông báo cho người dùng sau khi các tác vụ được hoàn thành. Để các hệ thống của chúng ta có thể được kết hợp một cách mềm dẻo linh hoạt và cung cấp trải nghiệm người dùng tốt hơn vì người dùng sẽ không bị lock lại...

Redis Spring Boot Design Pattern
@renovate
Admin 29/11/2021 12:10
Change account

Tài khoản cũ của mình có chút vấn đề nên mình chuyển sang dùng tài khoản mới để viết bài. Mọi người có thể follow tài mới TheLight và các bài viết gốc tại thenewstack. Xin cảm ơn mọi người! Nội dung bên dưới sẽ được move sang một tài viết trên tài khoản mới: TheLight Phát triển một ứng dụng microservice có thể rất thú vị. Nhưng xử lý nghiệp vụ giao dịch phân tán (business...

Redis Java Spring Boot Design Pattern kafka
@renovate
Admin 05/12/2021 23:20
[Java 8] Behavior Parameterization in Java.

Chào các bạn, hôm nay mình sẽ giới thiệu mọi người về Behavior Parameterization là gì và được implement trong java như thế nào thông qua ví dụ vô cùng đơn giản. Để dễ hiểu mình sẽ dùng cú pháp java 8 để thể hiện các ví dụ sau. 1. Đặt vấn đề (Problem). Trong một buổi phỏng vấn, nhà tuyển dụng cho đề bài sau: Bạn có một danh sách các số nguyên và họ muốn bạn in ra một danh sách mới mà...

Design Pattern java core java 8 lambda expression behavior parameterization
@renovate
Admin 23/12/2021 20:30
[Design Pattern] Creational Pattern

Trong bài trước, mình đã tổng hợp lại các design pattern cơ bản nhất. Bài này sẽ tiếp tục với các creational pattern. I. Creational Pattern 1. Chức năng Khởi tạo object Cung cấp 1 cơ chế đơn giản, chính quy và có thể kiểm soát được việc khởi tạo object Đảm bảo tính bao đóng về các chi tiết trong việc class nào được khởi tạo và các instances này được khởi tạo ra sao Khuyến khích sử dụng...

Design Pattern