Press "Enter" to skip to content

Author: admin

SOLID – Đơn nhiệm (P1)

Bài SOLID là thay đổi đã lướt qua một chút các nguyên tắc trong SOLID. Bài này chúng ta cùng bàn về nguyên tắc đầu tiên Single Responsibility – Đơn Nhiệm. Mỗi class chỉ nên có duy nhất một lý do để thay đổi Đây là một nguyên tắc đơn giản và tôi nghĩ ai cũng hiểu, nhưng nó lại nguyên tắc hay bị vi phạm và dễ vi phạm nhất. Dù đơn giản nhưng…

Leave a Comment

SOLID là thay đổi

Trong bài trước SOLID – Tổng quan, tôi đưa ra quan điểm rằng SOLID không nhằm tạo ra những dòng code bất tử mà nhằm tạo ra những dòng code sẵn sàng thay đổi. Có thể cái tên SOLID khiến ta có chút liên tưởng ngược lại, nhưng từng nguyên tắc trong đó lại toàn nói về sự thay đổi. Single Responsibility – không có nhiều hơn một lý do để thay đổi class Ngay…

Leave a Comment

SOLID – Tổng quan

Cách đây khoảng 10 năm, tôi thực sự chật vật khi học và đọc về SOLID hay Design Pattern. Thời đó tôi nghĩ không nhiều lập trình viên hiểu về SOLID hay Design Pattern, mạng xã hội cũng không phát triển như bây giờ nên kiến thức cũng ít được chia sẻ rộng rãi. Mà những người giỏi, theo tôi nghĩ thì không phải dạng lắm mồm hay khả năng xã hội cao nên những…

Leave a Comment

Sử dụng bit – bitwise trong phát triển ứng dụng

Dùng bitwise là một cách tuyệt vời, cực kì tối ưu cả về tốc độ tính toán lẫn sử dụng bộ nhớ. Nhưng có vẻ không nhiều developer hiện nay biết và ứng dụng nó. Bài này đưa ra ba trường hợp thực tế sử dụng bit và bitwise để xử lý.Github repo: https://github.com/refacore/bitwise Lưu và xử lý quyền truy nhập Thay vì lưu thành các giá trị riêng biệt, các quyền được lưu thành…

Leave a Comment

Refactor open-source ERP 1k sao GitHub WebVella – P2

Bài trước mình đã review và refactor một vài hàm trong bộ mã nguồn này. Bài này sẽ chỉ ra một số điểm về kiến trúc để chúng ta cải thiện. Git: https://github.com/refacore/WebVella-ERP/tree/refactor/refactor-webapicontroller Siêu controller Nhìn vào WebApiController chúng ta sẽ hoa mắt một chút vì nó dài đến 4.5k dòng. Rất khó để có thể giải thích vì sao file này lại dài như thế. Có thể các tác giả nghĩ rằng gom hết…

Leave a Comment

Kiểu giá trị – Kiểu tham chiếu – Giải thích gốc rễ

Nội dung bài viết này đề cập đến kiểu giá trị và kiểu tham chiếu trong C# (và có thể một số ngôn ngữ khác như Java). C# không có kiểu con trỏ và không cần người dùng quản lý bộ nhớ. Nhưng về mặt gốc rễ, con trỏ và quản lý bộ nhớ vẫn tồn tại và chúng ta cần hiểu về cách thức mà nó hoạt động để hiểu rõ kiểu giá trị,…

Leave a Comment

Review và refactor opensource ERP có 1.1k sao git P1

WebVella là một opensource ERP, đã được phát triển từ .netframework và mới được nâng cấp lên .net. Dù nhận được 1.1k sao Git sau 6 năm đưa lên Github, nhưng WebVella cũng không thực sự thành công khi không nhận được sự tài trợ từ công ty lớn nào. Sự hạn chế về nguồn lực khiến WebVella thực sự hụt hơi khi nâng cấp lên .net cũng như bảo trì mã nguồn của mình.…

Leave a Comment

Đau đầu vì đặt tên

Đặt tên luôn là vấn đề tốn nhiều thời gian cũng như nước bọt của dân lập trình. Đôi khi tìm kiếm được một tên tốt cũng khiến chúng ta vui vẻ và thỏa mãn cả ngày. Làm nghề đủ lâu thì mọi người đều hiểu rằng trong lập trình, việc đọc code chiếm phần lớn thời gian chứ không phải việc viết code. Vì thế, không lạ gì việc các lập trình viên thâm…

Leave a Comment

Hành trình của thiết kế phần mềm

Trong dự án tôi tham gia trước đây, sau khi tôi đề xuất ứng dụng mô hình n-tiers thay thế cấu trúc cũ, cậu em đồng nghiệp đã hỏi tôi rằng “Dùng n-tiers thì mình được lợi gì anh?”. Câu hỏi này thực sự làm tôi bối rối vì không biết nên trả lời thế nào cho thỏa đáng. Cậu em hỏi câu ấy không phải bởi cậu không biết n-tiers là gì hay n-tiers…

Leave a Comment