Duc Nguyen
2 min readJun 30, 2021

--

Kiến trúc tốt nhất để phát triển ứng dụng là KHÔNG sử dụng kiến trúc nào cả :))

Đầu tiên, hãy yên tâm đây sẽ là một bài post ngắn. Không làm mất thời gian của các bạn đâu vì tôi cũng ghét đọc những thứ lan man lắm.

Câu hỏi ở đây là, kiến trúc nào là phù hợp ?
Thế nào là phù hợp: là giống như ngôi nhà, xây dc một phần móng + khung vững chãi đến mức xây thêm bao nhiêu tầng cũng không sập và lúc xây lên cũng rất dễ làm.
Ban đầu chúng ta phát triển ứng dụng và rồi ứng dụng lớn lên, vấn đề phình to code (massive) xuất hiện, may mắn thay chúng ta có OOP và MVC.

Tuyệt vời, vấn đề đã được giải quyết ! Nhưng một ngày đẹp trời nó lại phình to hơn nữa, MVC trở nên vô dụng thì may mắn thay, chúng ta lại có MVVM.

Tuyệt vời, vấn đề đã được giải quyết! Nhưng một ngày đẹp trời nó lại phình to hơn nữa , MVVM trở nên vô dụng thì may mắn thay, chúng ta lại có VIPER.

Tuyệt vời, vấn đề đã được giải quyết! Nhưng một ngày đẹp trời nó lại phình to hơn nữa , VIPER trở nên vô dụng thì may mắn thay, chúng ta lại có RIBs.

Tuyệt vời ….. Nhưng ….
Tuyệt vời ….. Nhưng ….
……..

Nhưng đời mà, may mắn sẽ không đến nhiều lần vậy đâu, yêu thương là phải cố gắng tìm lối đi đúng chứ không phải trông chờ. Cách giải quyết vấn đề này giống như việc ống nước bị thủng, cứ thủng chỗ nào là lại vá chỗ đó, cứ thủng … lại vá, tiếp diễn mãi và đến một ngày đẹp trời ống nước bị thủng quá nhiều sẽ tự vỡ, thế là hết, nó giống như việc một ngày nào đó ứng dụng chúng ta viết ra sẽ đổ sập và … chúng ta bị đuổi việc :))

Có một cách khác giải quyết tốt hơn, đã bao giờ bạn đặt câu hỏi, nếu vấn đề phình to code (massive) không tồn tại, thì chúng ta sẽ không cần những kiến trúc cao siêu đó (MVC, MVVM, VIPER, RIBs, …)
Nó như là để dập cháy rừng thì có 2 cách: Một là đi dập lửa, Hai là đừng đốt rừng 🙈. Đơn giản là vậy, cách muốn nhắc đến ở đây là cách thứ 2.
Đó chính là đáp án cho tiêu đề bài viết, nếu chúng ta chia các thành phần (component) đủ nhỏ, nhỏ đến mức MVC cũng không cần thiết và [Quản Lý Nó Đủ Tốt] thì chúng ta sẽ không cần một kiến trúc nào nữa.

Hết rồi :))
À One more thing ..
Suýt quên Kiến Trúc mà tôi đang nói là kiến trúc phẳng (MVC, MVVM, VIPER, RIBs, …) thôi nhé, bởi vì đâu đó ngoài kia có các kiến trúc khác to hơn như Kiến Trúc Hướng Module. Mà thôi dài quá rồi, những Kiến Trúc khác sẽ nói lúc khác.
Happy reading Guys and Gals

--

--