Giải pháp thông minh

Lợi ích và hạn chế của phát triển bản mẫu (prototype)

Body

Đối với các hệ thống phức tạp, nhiều khi chúng ta không nắm chắc được yêu cầu của khách hàng, chúng ta cũng khó đánh giá được tính khả thi cũng như hiệu quả của hệ thống. Một cách tiếp cận đối với trường hợp này là xây dựng bản mẫu. Bản mẫu vừa được dùng để phân tích yêu cầu vừa có thể tiến hóa thành sản phẩm cuối cùng. Bản mẫu phần mềm hoàn toàn khác với bản mẫu phần cứng. Khi phát triển các hệ thống phần cứng, thì thực tế người ta phát triển một bản mẫu hệ thống để thẩm định thiết kế hệ thống.

Kiến trúc Web Architecture 101 là gì?

Body

Lời mở đầu

Sơ đồ trên đây là một ví dụ về cấu trúc hệ thống, các thành phần tạo nên một trang web. Bạn sẽ thấy sơ đồ trên khá phức tạp nếu chưa có nhiều kinh nghiệm trong lĩnh vực web development. Vì thế những hướng dẫn dưới đây sẽ giúp bạn hiểu rõ hơn về từng thành phần trong đó.

Quy trình phát triển phần mềm với mô hình xoắn ốc

Body

Mô hình xoắn ốc (Spiral model) có thể được xem là sự kết hợp giữa mô hình thác nước (Waterfall model) và mô hình mẫu (Prototype model) và đồng thời thêm phân tích rủi ro (Risk assessment).

Trong mô hình xoắn ốc, quy trình phát triển phần mềm được biểu diễn như một vòng xoắn ốc. Các phase trong quy trình phát triển xoắn ốc bao gồm:

10 qui tắc đơn giản của lập trình tinh gọn

Body
Nghiên cứu gần đây đối với các phương pháp Agile (Phát triển Linh hoạt), Adaptive Software Development (Phát triển Phần mềm Thích ứng), và eXtreme Programming (XP) đều có áp dụng các quy tắc đơn giản của Lean Manufacturing trong phát triển phần mềm. Kết quả là, chúng ta có một thuật ngữ gọi là Lập trình Tinh gọn (Lean Programming), cũng kịch tính như những cải tiến trong sản xuất đã mang về các phong trào Just-in-Time và Total Quality Management (Quản Lý Chất Lượng Tổng Thể) của những năm 1980.

10 Anti-patterns các lập trình viên cần phải tránh

Body

Thiết kế kiến trúc của một website hay một ứng dụng, hoặc thiết lập một coding workflow hiệu quả thường xuyên khiến chúng ta phải đối mặt với những vấn đề nan giải, thường xuyên gặp phải. Chúng ta không cần thiết phải giải quyết những vấn đề thiết kế này từ con số 0, vì ta có thể tái sử dụng được những giải pháp ở cấp độ kiến trúc cũng như những đoạn code ở tầng vi mô.

Domain Driven Design (Phần 2)

Body

Phần trước mình đã tóm lược về kiến trúc của Domain Driven Design (DDD). Phần này mình sẽ tập trung đi sâu vào các khuôn mẫu (building blocks) được sử dụng trong DDD. Mục đích của những khuôn mẫu này là để trình bày một số yếu tố chính của mô hình hóa hướng đối tượng và thiết kế phần mềm từ quan điểm của DDD. Dưới đây là sơ đồ các khuôn mẫu sẽ được trình bày và các mối quan hệ giữa chúng.

Building blocks.png

Domain Driven Design (Phần 1)

Body

Domain Driven Design là gì?

Có lẽ chúng ta đã quá quen thuộc với cách tiếp cận truyền thống khi xây dựng một ứng dụng. Đầu tiền chúng ta đọc spec và tìm hiểu các chức năng, sau đó tiến hành chia nhỏ các task. Trong phần lớn trường hợp, việc này nhằm mục đích estimate thời gian và lên kế hoạch thực hiện cho các task này. Vậy trình tự công việc sẽ là estimate thời gian, chia việc cho các thành viên trong team, thiết kế cơ sở dữ liệu, cuối cùng là bắt tay và code. Đây là cách thiết kế hướng dữ liệu hay còn gọi là Data Driven Design.

Mô hình hóa hướng nghiệp vụ Domain Driven Design (DDD) là gì?

Body
Khi chuẩn bị các đề án kinh doanh, phát triển ý tưởng và triển khai các giải pháp phần mềm, các nhà phát triển phần mềm muốn hiện đại hóa mà không cần phải phát minh lại cái bánh xe. Một kỹ thuật nổi tiếng để thực hiện điều này là thiết kế Dpmain-Driven Design, hay DDD.