NỘI DUNG Lời nói đầu Lời mở đầu Lời cảm ơn Về tác giả PHẦN I Giới thiệu Chương 1 Thiết kế và Kiến trúc là gì? Mục tiêu? Nghiên cứu thực tế Kết luận Chương 2 Câu chuyện về Hai Giá trị Hành vi Kiến trúc Giá trị lớn hơn Ma trận Eisenhower Chiến đấu cho Kiến trúc PHẦN II Bắt đầu từ những viên gạch nền: Các mô hình lập trình Chương 3 Tổng quan về mô hình Lập trình cấu trúc Lập trình hướng đối tượng Lập trình hàm Để suy ngẫm Kết luận Chương 4 Lập trình cấu trúc Chứng minh Một tuyên bố gây hại Phân rã theo hàm Thiếu chứng minh hình thức Khoa học cứu cánh Kiểm thử Kết luận Chương 5 Lập trình hướng đối tượng Đóng gói? Kế thừa? Đa hình? Kết luận Chương 6 Lập trình hàm Bình phương số nguyên Tính bất biến và kiến trúc Tách biệt phần có thể thay đổi Event Sourcing Kết luận PHẦN III Nguyên lý thiết kế Chương 7 SRP: Nguyên lý Trách nhiệm Đơn Triệu chứng 1: Trùng lặp ngẫu nhiên Triệu chứng 2: Gộp nhầm Giải pháp Kết luận Chương 8 OCP: Nguyên lý Mở–Đóng Thí nghiệm suy nghĩ Kiểm soát định hướng Ẩn thông tin Kết luận Chương 9 LSP: Nguyên lý Thay thế Liskov Hướng dẫn sử dụng kế thừa Vấn đề Hình vuông/Hình chữ nhật LSP và kiến trúc Ví dụ vi phạm LSP Kết luận Chương 10 ISP: Nguyên lý Phân tách Giao diện ISP và ngôn ngữ ISP và kiến trúc Kết luận Chương 11 DIP: Nguyên lý Đảo ngược Phụ thuộc Các trừu tượng ổn định Nhà máy (Factories) Các thành phần cụ thể Kết luận PHẦN IV Nguyên lý thành phần Chương 12 Thành phần Lược sử về thành phần Khả năng di chuyển Linkers Kết luận Chương 13 Tính tập hợp của thành phần Nguyên lý Tương đương Tái sử dụng/Phát hành Nguyên lý Đóng chung Nguyên lý Tái sử dụng chung Biểu đồ căng thẳng cho tính tập hợp thành phần Kết luận Chương 14 Phụ thuộc thành phần Nguyên lý Phụ thuộc Không Chu kỳ Thiết kế từ trên xuống Nguyên lý Phụ thuộc Ổn định Nguyên lý Trừu tượng Ổn định Kết luận PHẦN V Kiến trúc Chương 15 Kiến trúc là gì? Phát triển Triển khai Vận hành Bảo trì Giữ các tùy chọn mở Độc lập thiết bị Thư rác Địa chỉ vật lý Kết luận Chương 16 Độc lập Các trường hợp sử dụng Vận hành Phát triển Triển khai Giữ các tùy chọn mở Tách rời các lớp Tách rời các trường hợp sử dụng Tách rời chế độ Khả năng phát triển độc lập Khả năng triển khai độc lập Trùng lặp Tách rời chế độ (lặp lại) Kết luận Chương 17 Ranh giới: Vẽ đường Một vài câu chuyện buồn FitNesse Bạn vẽ đường nào và khi nào? Còn về đầu vào và đầu ra? Kiến trúc Plugin Tranh luận về Plugin Kết luận Chương 18 Giải phẫu ranh giới Việc vượt ranh giới Quái vật Monolith đáng sợ Các thành phần triển khai Luồng Quy trình cục bộ Dịch vụ Kết luận Chương 19 Chính sách và Cấp độ Cấp độ Kết luận Chương 20 Quy tắc nghiệp vụ Thực thể Trường hợp sử dụng Mô hình yêu cầu và phản hồi Kết luận Chương 21 Kiến trúc hét to Chủ đề của kiến trúc Mục đích của kiến trúc Còn về Web thì sao? Frameworks là công cụ, không phải cách sống Kiến trúc có thể kiểm thử Kết luận Chương 22 Kiến trúc sạch Quy tắc phụ thuộc Một kịch bản điển hình Kết luận Chương 23 Người trình bày và Đối tượng Khiêm tốn Mẫu Đối tượng Khiêm tốn Người trình bày và giao diện Kiểm thử và kiến trúc Cổng cơ sở dữ liệu Bộ chuyển đổi dữ liệu Người nghe dịch vụ Kết luận Chương 24 Ranh giới một phần Bỏ qua bước cuối cùng Ranh giới một chiều Facades Kết luận Chương 25 Lớp và ranh giới Săn Wumpus Kiến trúc sạch? Giao nhau luồng Tách luồng Kết luận Chương 26 Thành phần chính Chi tiết cuối cùng Kết luận Chương 27 Dịch vụ: Lớn và nhỏ Kiến trúc dịch vụ? Lợi ích dịch vụ? Vấn đề Kitty Đối tượng cứu nguy Dịch vụ dựa trên thành phần Mối quan tâm cắt ngang Kết luận Chương 28 Ranh giới kiểm thử Kiểm thử như thành phần hệ thống Thiết kế cho dễ kiểm thử Giao diện kiểm thử Kết luận Chương 29 Kiến trúc nhúng sạch Bài kiểm tra App-titude Cổ chai phần cứng mục tiêu Kết luận PHẦN VI Chi tiết Chương 30 Cơ sở dữ liệu chỉ là chi tiết Cơ sở dữ liệu quan hệ Vì sao hệ quản trị cơ sở dữ liệu phổ biến? Nếu không có ổ đĩa thì sao? Chi tiết Còn hiệu suất thì sao? Giai thoại Kết luận Chương 31 Web chỉ là chi tiết Con lắc bất tận Kết quả Kết luận Chương 32 Frameworks cũng chỉ là chi tiết Tác giả framework Cuộc hôn nhân không cân xứng Rủi ro Giải pháp Giờ tôi công bố bạn... Kết luận Chương 33 Nghiên cứu trường hợp: Bán Video Sản phẩm Phân tích trường hợp sử dụng Kiến trúc thành phần Quản lý phụ thuộc Kết luận Chương 34 Chương thiếu Gói theo lớp Gói theo tính năng Ports and Adapters Gói theo thành phần Quỷ dữ ẩn trong chi tiết triển khai Tổ chức so với đóng gói Các chế độ tách rời khác Kết luận: Lời khuyên còn thiếu PHẦN VII Phụ lục Phụ lục A Khảo cổ kiến trúc Chỉ mục