-
Design Pattern
- Singleton Design Pattern
- Factory Design Pattern
- Factory Method Design Pattern
- Abstract Factory Design Pattern
- Builder Design Pattern
- Prototype Design Pattern
- Object Pool Design Pattern
- Chain of Responsibility Design Pattern
- Command Design Pattern
- Interpreter Design Pattern
- Iterator Design Pattern
- Mediator Design Pattern
- Memento Design Pattern
- Observer Design Pattern
- Observer Design Pattern - Xử Lý Exception
- Strategy Design Pattern
- Template Method Design Pattern
- Visitor Design Pattern
- Null Object Design Pattern
- Adapter Design Pattern
- Bridge Design Pattern
- Composite Design Pattern
- Decorator Design Pattern
- Flyweight Design Pattern
- Proxy Design Pattern
- S.O.L.I.D
- Clean code
- Lập trình socket
- Java Core
- Multi-Thread
- Spring
- Java Web
- Memory Caching
- Message Queue
- DevOps
- Xây dựng một nền tảng
- MongoDB
- MySQL timestamp
- Properties vs yaml
- Kotlin
- Lập Trình Machine Learning với PyTorch
- Mã Nguồn Mở
- Ezy HTTP
- Free Chat
- Một số kinh nghiệm với Git
- Review cho đồng nghiệp!
- Setup Dev Environment
- Hello World
- Create a Server Project
- Handle Client Requests
- Using ezyfox-server-csharp-client
- Using ezyfox-es6-client
- Client React.js Interaction
- Build And Deploy In Local

Nếu bạn muốn nhanh hơn!
Chúng ta đã quá quen với #SQL, với #MySQL với #Oracle hay SQL server rồi và chúng ta vẫn thường phàn nàn với nhau về việc phải tạo bảng, về tốc độ của các câu lệnh truy vấn join, về việc phải dùng #ORM để truy vấn dữ liệu thì đây nhé! Chúng ta có #MongoDB không cần tạo bảng, không #join, đối tượng java thế nào thì lưu xuống MongoDB thế ấy, thật là tuyệt vời. Ngày xưa mình làm game, hồi đầu dùng MySQL nhưng sau thấy các câu lệnh join rất chậm, mà thiết kế bảng thì cứ phải theo nguyên tắc #1NF, lôi hibernate vào, khai báo đủ kiểu map qua map lại rất mất thời gian, trong khi đó việc phát triển game cần phải nhanh để chiếm lĩnh thị trường, và game cũng yêu cầu hiệu năng rất cao. Khi mình biết đến MongoDB, thử code những dòng đầu tiên mình đã tìm được chân ái. Từ đó mà tốc độ phát triển dự án lẫn hiệu năng của game đều được đảm bảo
Không phải viên đạn bạc
NHƯNG, mình đã phạm phải 1 sai lầm. Vì quá yêu thích MongoDB nên mình đã dùng nó cho 1 dự án quản lý khách hàng và cơn ác mộng đã tới. Việc thiếu các câu lệnh join khiến việc code trầy trật đặc biệt là câu lệnh inner join và đến nghiệp vụ phân trang thì hy vọng đã tắt, gần như không thể làm được nghiệp vụ này nếu không có câu lệnh join, thế mới biết lệnh join nó quan trọng thế nào
Các loại dự án phù hợp
Qua 4, 5 dự án mình rút ra kinh nghiệm, MongoDB chỉ phủ hợp cho những loại dự án:
- Đòi hỏi việc tốc độ truy vấn, insert và update nhanh:
- Không có các nghiệp vụ trích xuất báo cáo phân trang phức tạp, yêu cầu join giữa các bảng. Tiêu biểu như các dự án: #game, #chat, #blockchain
Nếu các bạn đang có ý định sử dụng MongoDB cho các dự án kiểu #CRM, Quản lý nhân sự, Quản lý hàng hoá, vân vân và mây mây, đại loại là các dự án quản lý nặng về nghiệp vụ truy xuất và báo cáo thì hãy dừng ý tưởng này lại nếu không muốn phải code lại toàn bộ tầng Repository. #MySQL + #Redis sẽ là lựa chọn tốt hơn cho chúng ta.
-
Design Pattern
- Singleton Design Pattern
- Factory Design Pattern
- Factory Method Design Pattern
- Abstract Factory Design Pattern
- Builder Design Pattern
- Prototype Design Pattern
- Object Pool Design Pattern
- Chain of Responsibility Design Pattern
- Command Design Pattern
- Interpreter Design Pattern
- Iterator Design Pattern
- Mediator Design Pattern
- Memento Design Pattern
- Observer Design Pattern
- Observer Design Pattern - Xử Lý Exception
- Strategy Design Pattern
- Template Method Design Pattern
- Visitor Design Pattern
- Null Object Design Pattern
- Adapter Design Pattern
- Bridge Design Pattern
- Composite Design Pattern
- Decorator Design Pattern
- Flyweight Design Pattern
- Proxy Design Pattern
- S.O.L.I.D
- Clean code
- Lập trình socket
- Java Core
- Multi-Thread
- Spring
- Java Web
- Memory Caching
- Message Queue
- DevOps
- Xây dựng một nền tảng
- MongoDB
- MySQL timestamp
- Properties vs yaml
- Kotlin
- Lập Trình Machine Learning với PyTorch
- Mã Nguồn Mở
- Ezy HTTP
- Free Chat
- Một số kinh nghiệm với Git
- Review cho đồng nghiệp!
- Setup Dev Environment
- Hello World
- Create a Server Project
- Handle Client Requests
- Using ezyfox-server-csharp-client
- Using ezyfox-es6-client
- Client React.js Interaction
- Build And Deploy In Local