Đàm đạo về Tech Stack

Đàm đạo về Tech Stack

Tin ngắn hàng ngày dành cho bạn
  • Cũng giống như 12 Days of OpenAI - một chuỗi sự kiện diễn ra trong 12 ngày liên tiếp của OpenAI, mỗi ngày họ sẽ giới thiệu một công cụ "đột phá", và cứ như thế.

    DeepSeek đã bắt "trend" ngay sau đó với chuỗi 202502 Open-Source Week diễn ra ngay trong tuần sau. Mỗi ngày họ sẽ công bố một công cụ mã nguồn mở, trái được hoàn toàn với tính "Open" của AI. Chúng ta hãy chờ xem họ mang đến những dự án thú vị nào nhé 🤓. Chắc sẽ hấp dẫn lắm đây vì ai cũng biết từ lúc ra mô hình R1, Deepseek đã chiếm trọn tin tức nổi bật trên toàn thế giới.

    » Xem thêm
  • Grok 3 beta vừa ra mắt và cho mọi người dùng thử miễn phí có giới hạn số lần trong ngày (tài khoản trả phí hình như được dùng nhiều hơn). Trong đó có 2 tính năng nổi bật là Think và DeepSearch.

    Think thì chắc ai cũng biết hoặc dùng ở một số mô hình suy luận như ở ChatGPT rồi. Còn DeepSearch thì mới hơn, gõ điều bạn muốn vào thì nó sẽ tự lên mạng tìm kiếm thông tin rồi tổng hợp lại kết quả mà nó tìm thấy được. Khá hay nhưng chắc để tham khảo hoặc muốn tổng hợp thông tin nhanh chóng thôi chứ vẫn nên tự mình tìm kiếm thông tin 😅

    » Xem thêm
  • Có 2 phần mềm tiện ích cho Mac mà mỗi khi dùng máy Mac Mini hoặc Macbook có cắm thêm màn hình rời, thêm bàn phím với chuột nữa là BetterDisplayMac Mouse Fix. Đi qua từng cái nhé!

    BetterDisplay giúp tinh chỉnh kích thước của màn hình rời để đạt độ phân giải HiDPI. Như bạn biết Mac khá kén màn hình và tuỳ chọn độ phân giải trong cài đặt mặc định rất ít ỏi, nên BetterDisplay cung cấp nhiều lựa chọn phù hợp hơn.

    Cái thứ hai là Mac Mouse Fix, nếu dùng chuột ngoài bạn sẽ thấy nó cuộn không giống với Trackpad của Macbook cho lắm. Điều kì diệu xảy ra khi cài phần mềm này vào. Nó thêm hiệu ứng "smooth" và giúp cuộn chuột y như cuộn bằng Trackpad luôn. Thật thần kỳ.

    » Xem thêm

Vấn đề

MEAN là viết tắt bởi 4 ký tự đầu trong một tập hợp gồm có MongoDB, Express, AngularNode.js. Tương tự, LAMP được tạo thành từ Linux, Apache, MySQLPHP. Ngoài ra chúng ta còn rất nhiều những cái tên viết tắt với ý nghĩa tương tự như vậy như là JAM Stack, T3 Stack... Nghe đến đây, hẳn bạn cũng biết đó là tập hợp của những công nghệ giúp tạo ra một trang web hay ứng dụng web hoàn chỉnh rồi phải không?

Thời còn ngồi trên ghế nhà trường, tôi rất thích PHP và làm nhiều dự án dựa trên PHP. Lúc đó dùng máy tính Windows nên bộ công cụ mà mình dùng là WAMP cơ, tức là thay Window bằng Linux. Mà hồi đó chỉ cần biết đến WAMP là làm được khá nhiều thứ rồi, từ website landing page cho đến các trang thương mại điện tử. Thiết nghĩ chẳng còn thiếu thứ gì không làm được. Đến lúc chuẩn bị ra trường, cái tên Node.js bỗng nhiên sốt rần rần trên mạng. Tôi tò tò đọc thử nhưng chẳng hiểu cái gì hết. Chắc vì nó không giống với PHP mà lâu nay mình dùng, từ viết mã cho đến quy trình triển khai đều khác biệt. Ấy thế mà lúc đi thực tập lại làm ở vị trí JavaScript/Node.js. Thú thật tôi không thể nhớ mình đã làm thế nào nữa!

Đối với những ai mới tiếp xúc với JavaScript hoặc Node.js, cái tên MEAN không thể nào mà không biết. Đó như là một luật bất thành văn mà người ta sẽ không hỏi tại sao lại là MEAN chứ không phải là một cái gì đó khác. Nhiều người tìm cách sử dụng thành thạo MEAN vì nghe nói bộ công cụ này nhận được nhiều sự quan tâm cũng như dễ tìm việc hơn. Tôi cũng không phải là ngoại lệ, cái tên này đi theo mình một thời gian dài sau đó, ăn ngủ cùng với MEAN.

MEAN, LAMP, WAMP... hay nhiều cái tên tương tự như là một bộ xương sống của ứng dụng. Tức là chỉ cần tối thiểu những thứ đó hệ thống đã hoạt động. Nhưng trên thực tế như vậy là chưa đủ. Vẫn còn rất nhiều thành phần khác tham gia vào trong hệ thống phần mềm, tất cả chúng đều có nhiệm vụ là củng cố cho nó hoạt động ổn định và hiệu quả. Gộp lại thì thành một Tech Stack.

Vậy Tech Stack là gì? Nó có quan trọng hay không? Việc tìm hiểu về nó giúp được gì cho chúng ta? Hy vọng bạn đọc sẽ tìm được câu trả lời trong bài viết ngày hôm nay.

Tech Stack là gì?

Tech Stack (hay còn gọi là "ngăn xếp công nghệ") là tập hợp các công nghệ, ngôn ngữ lập trình, framework, thư viện và công cụ được sử dụng để xây dựng và triển khai một ứng dụng hoặc hệ thống phần mềm. Cụ thể, Tech Stack thường bao gồm Front-end, Back-end, Cơ sở dữ liệu và Công cụ hỗ trợ.

Front-end (FE) và Back-end (BE) không cần phải giải thích gì nhiều nữa. FE đóng vai trò cho những thứ người dùng thấy, người dùng tương tác. Còn BE đóng vai trò xử lý logic chính của ứng dụng. Còn Cơ sở dữ liệu (DB) là một phần không thể thiếu cho ứng dụng hiện đại, cái gì cần lưu trữ hầu hết cần phải dùng đến cơ sở dữ liệu.

Dễ thấy MEAN, LAMP, WAMP... đã đáp ứng được 3 trên 4 tiêu chí, tức là đã bao gồm FE, BE và DB, vậy Công cụ hỗ trợ ở đây là gì? Là tất cả những thứ còn lại như Window, Linux (môi trường), các công cụ quản lý mã nguồn (Git), kiểm thử, triển khai (CI/CD) và các công cụ DevOps khác. Hay nói tóm lại là bất kỳ thành phần nào tham gia vào hệ thống phần mềm.

Vậy xác định Công cụ hỗ trợ như thế nào? Thì thật ra nó liên quan rất nhiều đến kiến trúc hệ thống.

Mối liên hệ với kiến trúc hệ thống

Kiến trúc hệ thống là cách tổ chức, cấu trúc và phân chia các thành phần trong hệ thống để đảm bảo hiệu năng, khả năng mở rộng, bảo mật và khả năng bảo trì. Kiến trúc hệ thống quyết định cách các thành phần giao tiếp và làm việc cùng nhau (ví dụ: kiến trúc Monolithic, Microservices, Serverless,...).

Lấy ví dụ, trước đây kiến trúc Monolithic rất thịnh hành, tất cả thành phần nằm trong cùng một khối nên loại bỏ được chi phí liên lạc. Chỉ cần ngôn ngữ lập trình FE, BE, DB và một máy chủ để triển khai hệ thống. Còn bây giờ, nhiều người thấy hứng thú với Microservices hơn, tách biệt các phần xử lý logic ra riêng để tăng tính minh bạch và tăng khả năng mở rộng. Đổi lại cần phải mất thêm chi phí liên lạc, tức là những công cụ trợ giúp liên lạc giữa các hệ thống như Pub/Sub, Message Queue...

Nếu hệ thống cần xử lý khối lượng dữ liệu lớn và yêu cầu khả năng mở rộng, chúng ta có xu hướng chọn thêm cơ sở dữ liệu như SQL, NoSQL hoặc kết hợp chúng lại với nhau. Bên cạnh đó kỹ thuật "caching" để tối ưu hiệu suất truy vấn cũng yêu cầu một số công cụ thích hợp. Mỗi công cụ tham gia vào hệ thống đều trở thành một phần của Tech Stack.

Đó là về mặt logic và xử lý dữ liệu. Còn một thành phần quan trọng không kém nữa là các quy trình DevOps, CI/CD và tự động hóa. Đây là nơi mà có rất nhiều công cụ phần mềm được sử dụng bởi các chuyên gia. Đặt nền móng cho việc xây dựng tính ổn định thông qua các quy trình kiểm thử hoặc triển khai tự động, tránh lỗi sai sót mang yếu tố con người.

Không chỉ là những công cụ mang thiên hướng về code, về lập trình. Có nhiều công cụ dành riêng cho phân tích, xử lý nghiệp vụ kinh doanh cũng nằm trong Tech Stack dưới cái tên Business Tools.

Để cho dễ hình dung về một Tech Stack trong thực tế có những gì, thành phần nào thì bạn đọc có thể tham khảo trang web stackshare.io. Đây như một bức tranh tổng quát lại các công cụ mà một hệ thống đang hoạt động. Ví dụ dưới đây là Tech Stack của Facebook. Bạn có thể kể tên được bao nhiêu trong số đó?

Facebook Tech Stack

Tầm quan trọng và lợi ích

Tech Stack đóng vai trò rất quan trọng trong việc xây dựng và vận hành một ứng dụng. Nó quyết định cách tổ chức các thành phần khác nhau của hệ thống, từ giao diện người dùng (front-end), xử lý logic nghiệp vụ (back-end), đến cơ sở dữ liệu và các công cụ hỗ trợ khác.

Một Tech Stack được lựa chọn kỹ càng không chỉ giúp xác định kiến trúc của ứng dụng mà còn đảm bảo hiệu năng tối ưu, khả năng mở rộng và bảo mật cao. Nó còn góp phần tối ưu hóa quy trình phát triển, giảm thời gian đưa sản phẩm ra thị trường và tạo điều kiện thuận lợi cho việc bảo trì, nâng cấp ứng dụng theo thời gian.

Việc hiểu biết và thành thạo nhiều Tech Stack mang lại nhiều lợi ích. Khi bạn có kiến thức về nhiều công nghệ, bạn sẽ linh hoạt hơn trong việc lựa chọn và kết hợp các công nghệ phù hợp nhất với từng dự án cụ thể. Điều này không chỉ giúp giải quyết các vấn đề một cách hiệu quả mà còn mở rộng tầm hiểu biết về các xu hướng công nghệ mới.

Sự đa dạng trong kiến thức cũng giúp bạn dễ dàng chuyển đổi giữa các dự án khác nhau, tạo điều kiện thuận lợi cho sự phát triển nghề nghiệp. Hãy tưởng tượng khi bạn biết được nhiều thứ, bạn có thể đảm nhận nhiều loại dự án khác nhau và đưa ra những quyết định về công nghệ một cách đúng đắn, góp phần tối ưu hóa quy trình làm việc cũng như giảm chi phí bảo trì, vận hành hệ thống.

Còn bạn đang sử dụng Tech Stack nào ở nơi làm việc hoặc cho các dự án cá nhân? Hãy chia sẻ nó dưới phần bình luận nhé. Xin cảm ơn!

Cao cấp
Hello

5 bài học sâu sắc

Mỗi sản phẩm đi kèm với những câu chuyện. Thành công của người khác là nguồn cảm hứng cho nhiều người theo sau. 5 bài học rút ra được đã thay đổi con người tôi mãi mãi. Còn bạn? Hãy bấm vào ngay!

Mỗi sản phẩm đi kèm với những câu chuyện. Thành công của người khác là nguồn cảm hứng cho nhiều người theo sau. 5 bài học rút ra được đã thay đổi con người tôi mãi mãi. Còn bạn? Hãy bấm vào ngay!

Xem tất cả

Đăng ký nhận thông báo bài viết mới

hoặc
* Bản tin tổng hợp được gửi mỗi 1-2 tuần, huỷ bất cứ lúc nào.

Bình luận (0)

Nội dung bình luận...