Danh mục

Kiến trúc tiến hóa và thiết kế nổi dần: Nghiên cứu điều tra kiến trúc và thiết kế Khám phá kiến trúc và thiết kế dễ bảo trì hơn Neal Ford, Kiến trúc phần mềm, ThoughtWorks

Số trang: 11      Loại file: pdf      Dung lượng: 844.56 KB      Lượt xem: 12      Lượt tải: 0    
tailieu_vip

Xem trước 2 trang đầu tiên của tài liệu này:

Thông tin tài liệu:

Tóm tắt: Thiết kế và kiến trúc phần mềm phát sinh ra nhiều sức nóng tranh luận nhưng không phát sinh nhiều ánh sáng. Để bắt đầu một cuộc trò chuyện mới về những cách nghĩ khác đi về chúng, bài viết này khởi đầu loạt bài Kiến trúc tiến hóa và thiết kế nổi dần. Kiến trúc tiến hóa và thiết kế nổi dần (Evolutionary architecture and emergent design) là các kỹ thuật khéo léo để lùi các quyết định quan trọng cho đến thời điểm hợp lý cuối cùng. ...
Nội dung trích xuất từ tài liệu:
Kiến trúc tiến hóa và thiết kế nổi dần: Nghiên cứu điều tra kiến trúc và thiết kế Khám phá kiến trúc và thiết kế dễ bảo trì hơn Neal Ford, Kiến trúc phần mềm, ThoughtWorks Kiến trúc tiến hóa và thiết kế nổi dần: Nghiên cứu điều tra kiến trúc và thiết kế Khám phá kiến trúc và thiết kế dễ bảo trì hơn Neal Ford, Kiến trúc phần mềm, ThoughtWorks Tóm tắt: Thiết kế và kiến trúc phần mềm phát sinh ra nhiều sức nóng tranh luận nhưng không phát sinh nhiều ánh sáng. Để bắt đầu một cuộc trò chuyện mới về những cách nghĩ khác đi về chúng, bài viết này khởi đầu loạt bài Kiến trúc tiến hóa và thiết kế nổi dần. Kiến trúc tiến hóa và thiết kế nổi dần (Evolutionary architecture and emergent design) là các kỹ thuật khéo léo để lùi các quyết định quan trọng cho đến thời điểm hợp lý cuối cùng. Trong bài giới thiệu này, tác giả Neal Ford của loạt bài viết sẽ định nghĩa kiến trúc và thiết kế rồi sau đó xác định các mối quan tâm bao quát sẽ nảy sinh trong suốt cả loạt b ài viết này. Kiến trúc và thiết kế phần mềm đã chống lại mọi định nghĩa vững chắc trong một thời gian dài do việc phát triển phần mềm, như một lĩnh vực chuyên môn, vẫn còn chưa được nắm bắt đầy đủ tất cả những rắc rối và các mối liên quan của chúng. Nhưng để tạo ra một cuộc đàm luận đúng mức về những chủ đề này, bạn phải bắt đầu từ đâu đó. Loạt bài viết này quan tâm đến kiến trúc tiến hóa và thiết kế nổi dần, do đó cần mở đầu cho loạt bài viết này bằng một loạt các định nghĩa, xem xét cân nhắc và thiết lập nền tảng khác. Về loạt bài viết này Loạt bài này nhằm mục đích cung cấp một cách nhìn mới mẻ về các khái niệm thường được bàn luận nhưng khó nắm bắt ý nghĩa, đó là thiết kế và kiến trúc phần mềm. Thông qua các ví dụ cụ thể, Neal Ford sẽ mang lại cho bạn một nền móng vững chắc về các biện pháp thực hành nhanh trong kiến trúc tiến hóa và thiết kế nổi dần. Bằng cách lùi các quyết định kiến trúc và thiết kế quan trọng đến thời điểm hợp lý cuối cùng, bạn có thể ngăn ngừa không để những phức tạp không cần thiết hủy hoại các dự án phần mềm của bạn. Định nghĩa kiến trúc Kiến trúc trong phần mềm là một trong những khái niệm được nói đến nhiều nhất nhưng lại được hiểu ít nhất mà các nhà phát triển phải đánh vật với nó. Tại các hội nghị, các cuộc thảo luận và tụ họp của những người cùng chí hướng về kiến trúc chật cả tòa nhà, nhưng chúng ta vẫn chỉ có các định nghĩa mơ hồ về nó. Khi chúng ta thảo luận về kiến trúc, chúng ta thực sự đang nói về một số mối quan tâ m khác nhau nhưng có liên quan đến nhau, thường rơi vào những phạm trù rộng rãi của kiến trúc ứng dụng và kiến trúc doanh nghiệp. Kiến trúc ứng dụng Kiến trúc ứng dụng mô tả các mảnh ở mức chi tiết thô làm thành một ứng dụng. Ví dụ như trong thế giới Java, kiến trúc ứng dụng mô tả hai điều: sự kết hợp của các khung công tác được sử dụng để xây dựng một ứng dụng cụ thể — mà tôi gọi là kiến trúc mức khung công tác — và sự phân tách các mối quan tâm logic truyền thống hơn mà tôi luôn gắn cho biệt danh là kiến trúc ứng dụng. Việc tách kiến trúc khung công tác như một sự phân biệt là có ý nghĩa vì hầu hết các nhà thực hành ngôn ngữ hướng đối tượng đã phát hiện ra rằng các lớp riêng lẻ không làm việc tốt như là một cơ chế tái sử dụng. (Lần cuối cùng bạn đã tải về chỉ một lớp đơn từ Internet để sử dụng trong một dự án là khi nào?) Đơn vị tái sử dụng trong các ngôn ngữ hướng đối tượng hiện đại là một thư viện hay một khung công tác. Khi bạn bắt đầu một dự án mới trong các ngôn ngữ giầu khung công tác nh ư Java, một trong các mối quan tâm về kiến trúc đầu tiên là kiến trúc mức khung công tác của ứng dụng. Phong cách tái sử dụng kiểu này thắng thế hơn hẳn trong thế giới Java đến mức mà tôi đã bắt đầu nói rằng chúng ta sẽ nên thôi không gọi lập trình Java là một ngôn ngữ hướng đối tượng mà chỉ nên gọi nó là một ngôn ngữ hướng khung công tác. Theo nhiều cách, kiến trúc mức khung công tác biểu diễn một kiến trúc vật lý được mô tả bởi các khối xây dựng nền tảng cụ thể. Một khía cạnh thú vị khác của kiến trúc ứng dụng là mô tả cách làm thế nào để các mảnh lô gic của ứng dụng ăn khớp với nhau. Đây là lĩnh vực của các mẫu thiết kế và các mô tả cấu trúc khác và vì vậy có xu hướng trở nên vừa trừu tượng hơn vừa mang tính logic hơn là kiến trúc vật lý. Ví dụ, bạn có thể nói rằng một ứng dụng web trung thành với mẫu Mô hình -Khung nhìn -Trình bày mà không cần chỉ rõ bạn sử dụng khung công tác nào để thực hiện được sự sắp xếp lô gic đó. Sự sắp xếp lô gic này là cái có vẻ thích hợp nhất để trang trí các bảng trắng của vùng làm việc của bạn khi bắt đầu làm việc trên các phần mới của ứng dụng. Kiến trúc doanh nghiệp Kiến trúc doanh nghiệp bản thân nó quan tâm đến cách l àm thế nào để doanh nghiệp như là một tổng thể (thường có nghĩa là các ứng dụng đang chạy bên trong một tổ chức lớn) sử dụng các ứng dụng. Một phép ẩn dụ hữu ích thường dùng về mối quan hệ giữa kiến trúc doanh nghiệp và kiến trúc ứng dụng là ví kiến trúc doanh nghiệp như việc quy hoạch thành phố và kiến trúc ứng dụng là xây dựng các công trình kiến trúc. Các nhà quy hoạch thành phố phải suy nghĩ về việc cấp nước, điện, thoát nước thải và các dịch vụ khác để cho phép thành phố hoạt động. Bạn không thể có một tòa nhà tiêu thụ nhiều nước hơn lượng nước được chia sẻ cho nó. Kiến trúc doanh nghiệp suy nghĩ về các vấn đề giống như thế nhưng cho các ứng dụng: bạn không thể cho phép một ứng dụng tiêu thụ tất cả băng thông của mạng thông tin và nếu các dịch vụ cơ sở hạ tầng bị sụp đổ, nước thải (ảo) lại dâng lên. Kiến trúc doanh nghiệp đã được chú ý rất nhiều trong vài năm gần đây nhờ có kiến trúc hướng dịch vụ (SOA). SOA bản thân nó đã là một chủ đề lớn, do đó các bài viết sắp tới của loạt bài này sẽ đề cập đến SOA như là một trường hợp riêng. Nó cũng có những khía cạnh đáng quan tâm riêng bởi vì nó làm mờ đi đường biên giới giữa kiến trúc doanh nghiệp và kiến trúc ứng dụng khi nó áp đặt các đặc trưng kỹ thuật của cấu trúc ứng dụng. Các đoạn trên đây đưa ra những định nghĩa hời hợt bên ngoài về các khái niệm ...

Tài liệu được xem nhiều: