Mình muốn chia sẻ với các bạn một điều mà không phải ai cũng biết, đó là nội dung hầu hết các khoá học ở Stanford được đưa lên mạng miễn phí. Các lớp học thường có website để sinh viên tiện tìm thông tin, và website đó thường có đầy đủ thông tin về […]
Category: Kiến thức lập trình cơ bản
Mô hình CQRS-ES
Một trong các đòi hỏi lớn của việc quản lý danh mục sản phẩm là phải thiết kế để đáp ứng các nhu cầu về hiệu năng và tích hợp với các hệ thống khác. Để đáp ứng các yêu cầu tốt, thì phải được thiết kế từ tổng thể ngay từ đầu. Có vậy […]
Thiết kế hệ thống phần mềm với mô hình CQRS
Đầu tiên chúng ta bắt đầu với bài toán quản lý sản phẩm với các nghiệp vụ phức tạp. Ví dụ hệ thống quản lý sản phẩm của các trang thương mại điện tử (Amazon, shoppe, tiki..). Với bất kì sản phẩm phần mềm nào, chúng ta đều có chung mục đích thiết kế: – […]
Tiếp cận lại về static và singleton
Xuất phát từ mấy vấn đề nên muốn cover lại kiến thức về static và singleton. – Một là để hiểu rõ thêm vấn đề – Hai là làm rõ thêm vấn đề Vậy static có đặc điểm gì? Khi nào nên dùng nó? Singleton thì sao? Dùng thế nào? Các vấn đề cần lưu ý […]
Tạo ứng dụng blockchain đầu tiên với C#
Thông qua bài viết này mình sẽ hướng dẫn các bạn làm quen và hiểu thêm về công nghệ Blockchain. Mục đích – Tạo hệ thống Blockchain đơn giản nhất. – Tạo hệ thống mining (poor of work) đơn giản. – Khám phá thêm về Blockchain. Kiến thức cần chuẩn bị: OOP, biết 1 ngôn ngữ […]
ASP.NET Core Dependency Injection – How to Register Generic Types
Trong dự án asp net core, khi các bạn sử dụng Generic Repository Pattern, làm cách nào để register generic interface và implementation generic interface bằng cách sử dụng ASP.NET Core DI container? Ok, với một interface đơn giản và implementation của nó, ta sử dụng như sau serviceCollection.AddSingleton<IService, MyService>(); Vậy còn kiểu Generic thì sao? Chúng ta […]
Cấu hình Virtual Host trong XAMPP
Virtual Host (Vhost) là một cấu hình trong Apache để cho phép nhiều domain cùng chạy trên một máy chủ. Để dễ hình dung hơn khi các bạn chạy webapps ở môi trường phát triển sẽ có url localhost:1234. Giờ ta có thể làm url trở nên thân thiện hơn bằng các chuyển nó thành […]
Technical debt hay câu chuyện về nợ kĩ thuật
Bài viết này chúng ta sẽ làm rõ các vấn đề 1. Technical debt là gì? 2. Khi nào gặp? 3. Phòng tránh và hạn chế như nào? 4. Làm sao để thay đổi? Technical debt là gì? – Khi nào gặp? Theo dịch thuật, technical debt có nghĩa là nợ kĩ thuật. Diễn giải […]
Cài đặt và cấu hình Apache, MySQL trên macos
OSX 10.10 Yosemite được cài đặt sẵn Apache 2.4. Để khởi động web server, các bạn chỉ việc mở Terminal (/Applications/Utilities/Terminal) và gõ: sudo apachectl start Tương tự khi muốn restart và stop Apache sudo apachectl stop sudo apachectl restart Sau khi start Apache, bạn có thể mở trình duyệt lên và gõ thử localhost sẽ xuất hiện […]
Unit Of Work và Repository Pattern – Song kiếm hợp bích
Ở bài trước mình đã giới thiệu với các bạn về UnitOfWork Design Pattern. Nhắc lại vể lợi ích của UOW Quản lý danh sách các đối tượng logic nghiệp vụ được thay đổi trong một transaction. Khi một transaction được complete, tất cả thay đổi sẽ được gửi tới database như một big unit of work Bài […]