Software Architecture Timeline

Bài viết được sự cho phép của tác giả Edward Thien Hoang

Và điều đầu tiên đề cập đến trong bài viết này tôi gọi là “lược sử (timeline) về kiến trúc phần mềm” nơi tác giả liệt kê các mốc chính về các mô hình lập trình, các kiểu thiết kế nổi bật từ thuở sơ khai đến hiện tại, có thể kể đến như:

  10 Công cụ Go-To Tech dành riêng cho các Software Developer
  Biến Git và GitHub trở thành công cụ đắc lực cho Software Engineer
  • 1950S

    •   Non-structured Programming
    • ~1951 – Assembly
  • 1960S

    •   Structured Programming
    •   Layering: 1 tier with the UI, Business Logic and Data Storage
    • ~1958 – Algol
  • 1970S

    •   Procedural / Functional Programming
    • ~1970 – Pascal
    • ~1972 – C
    •   1979 – Model-View-Controller
  • 1980S

    •  Object Oriented Programming (first thoughts were in the late 1960s, though)
    •   Layering: 2 tier, the 1st tier with the UI, the 2nd tier with Business Logic and Data Storage
    • ~1980 – C++
    •   CORBA – Common Object Request Broker Architecture (though the first stable version was only out in 1991, the first usages were during the 1980s)
    • ~1986 – Erlang
    • ~1987 – Perl
    •   1987 – PAC aka Hierarchical Model-View-Controller
    •   1988 – LSP (~SOLID)
  • 1990S

    •   Layering: 3 tier, the 1st tier with the UI, the 2nd tier Business Logic (and the UI presentation logic in case of a browser as client), the 3rd tier with the Data Storage
    • ~1991 – Message Bus
    • ~1991 – Python
    •   1992 – Entity-Boundary-Interactor Architecture aka EBC aka EIC
    • ~1993 – Ruby
    • ~1995 – Delphi, Java, Javascript, PHP
    •   1996 – Model-View-Presenter
    •   1996 – OCP, ISP, DIP (~SOLID), REP, CRP, CCP, ADP
    •   1997 – SDP, SAP
    • ~1997 – Aspect Oriented Programming
    • ~1997 – Web Services
    • ~1997 – ESB – Enterprise Service Bus (although the book that coined the term was published in 2004, the concept was already used before)

Tham khảo tuyển dụng software engineer lương cao trên TopDev

  • 2000S

    • 2002 – SRP (~SOLID)
    • 2003 – Domain-Driven Design
    • 2005 – Model-View-ViewModel
    • 2005 – Ports & Adapters Architecture aka Hexagonal Architecture
    • 2006? – CQRS & ES (Command Query Responsibility Segregation & Event Sourcing)
    • 2008 – Onion Architecture
    • 2009 – Microservices (at Netflix)
  • 2010S

    • 2010 – Data-Context-Interaction Architecture 
    • 2012 – Clean Architecture
    • 2014 – C4 Model

Giống như ông bà ta thường nói, không biết lịch sử nước nhà thì cũng như là người mất gốc. Bằng cách nắm được timeline của một việc nào đó sẽ giúp chúng ta có cái nhìn toàn cảnh đầu tiên nhất về sự việc đó, bằng không sẽ rất khó khăn khi liên kết các mắt xích của vấn đề lại với nhau.

Trong bài tiếp theo, chúng ta sẽ tìm hiểu kỹ hơn về các khái niệm căn bản trong kiến trúc phần mềm. Sẽ thật là thiếu sót khi làm về một việc nào đó mà không thể đưa ra định nghĩa rõ ràng về nó phải không nào. See you then.

Đây là bài viết trong loạt bài viết về “Tổng quan về sự phát triển của kiến trúc phần mềm“. Đây là loạt bài viết chủ yếu giới thiệu về một số mô hình kiến trúc phần mềm hay nói đúng hơn là sự phát triển của chúng qua từng giai đoạn, qua đó giúp chúng ta có cái nhìn tổng quát, up-to-date và là roadmap để bắt đầu hành trình chinh phục (đào sâu) thế giới của những bản thiết kế với vai trò là những kỹ sư và kiến trúc sư phần mềm đam mê với nghề.

Bài viết gốc được đăng tải tại edwardthienhoang.wordpress.com

Có thể bạn quan tâm:

Xem thêm Việc làm Developer hấp dẫn trên TopDev