The javascript 2022 stack

23 tháng 02, 2022 - 1309 lượt xem

image.png
Hôm nay tôi quyết định viết những suy nghĩ của mình về việc lựa chọn công nghệ. Tôi sẽ chọn hệ thống công nghệ cho một dự án cần duy trì khả năng mở rộng quy mô dễ dàng trong vài năm tới.

Tôi sẽ nói về cả front-end và back-end trong khi cung cấp cho bạn suy nghĩ của tôi về các công cụ tôi nghĩ là phải có dưới vành đai công cụ phát triển của bạn.

Front-End Stack

Front-end đang phát triển từng ngày, các công cụ và công nghệ mới tiếp tục xuất hiện hàng năm. Chọn một công nghệ cho front-end của bạn vào năm 2022 cho đến nay là chủ đề gây tranh cãi nhất nhưng cũng là chủ đề yêu thích của tôi, vì vậy hãy cùng tìm hiểu.

Development Framework

Mặc dù tôi đã xem xét một số framework mới ngoài kia, tôi thấy rằng NextJS là một framework khá vượt trội so với đối thủ cạnh tranh của nó. Framework này cung cấp cho bạn đủ sự linh hoạt để mở rộng các ứng dụng của bạn như bạn muốn trong khi cũng cho phép bạn tạo một dự án một cách nhanh chóng, tận dụng nhiều tính năng đi kèm với nó ‘chức năng xuất xưởng’. NextJS là mã nguồn mở và được xây dựng trên đầu trang của Node.js và React. Một lý do lớn khiến đây là sự lựa chọn framework là công ty đứng sau nó dẫn đầu sự phát triển mã nguồn mở của mình: Vercel. Tôi thấy rằng với tư cách là một công ty, Vercel đã làm chính xác những gì cần thiết và lắng nghe cộng đồng xung quanh các dự án của họ, thuê một số bộ óc tuyệt vời để thúc đẩy sự phát triển và đổi mới cho sản phẩm của họ.

Như đã đề cập trước đây, NextJS đang dựa vào React để xây dựng các thành phần UI của mình. Đồng thời, một số người có thể coi đó là một nhược điểm. Tôi thấy đây là một điểm cộng. Sự hài lòng và sử dụng của nhà phát triển react tương đối cao, có nghĩa là bạn rất có thể sẽ có thể mở rộng quy mô nhóm front-end của mình mà không gặp nhiều rắc rối. Bạn có thể khấu trừ điều này từ cuộc khảo sát mới nhất của JS.

Application State

Tôi đã làm việc nhiều năm với Redux, và đó là một mối quan hệ yêu ghét. Tôi chưa bao giờ thực sự thích bản soạn sẵn của nó, và bất cứ khi nào tôi cố gắng để có được một cái gì đó lên và chạy nhanh, tôi sẽ được nhắc nhở về tất cả các logic bạn cần để làm cho Redux hoạt động tốt. Nhưng gần đây, với hệ sinh thái JavaScript đang phát triển, đặc biệt là trong lĩnh vực này, có một sự kết hợp của các công cụ mà bạn có thể sử dụng và đạt được một nền tảng vững chắc để quản lý lớp dữ liệu của mình.

Vì vậy, gần đây, hầu hết các thư viện lấy dữ liệu này đi kèm với một cơ chế bộ nhớ đệm có thể được tận dụng. Do đó, bạn có thể hưởng lợi từ việc sử dụng một thư viện nhẹ hơn để quản lý trạng thái ứng dụng. Vì tôi thích bản chất xác định của các máy trạng thái hữu hạn, lựa chọn của tôi ở đây sẽ là XState.

Data fetching

Tôi tin rằng khi nói đến việc lấy dữ liệu, có một vấn đề ưu tiên, nhưng quan điểm rất chủ quan của tôi về điều này là:

Đối với Graph API, tôi sẽ sử dụng Máy khách Apollo, kết hợp với GraphQL

Đối với REST API, tôi sẽ sử dụng React Query

TypeScript over JavaScript

Tôi không phải là người chấp nhận sớm cho Typescript, nhưng ngay sau khi thử nó, tôi đã chuyển đổi. Bởi vì tôi đang làm việc trong hệ sinh thái React, tôi thường cho rằng Flow sẽ là lựa chọn tốt nhất cho các tiện ích mở rộng được nhập tĩnh cho JavaScript. Tôi đã sai. Trong khi viết mọi thứ trong Flow, tôi thường giải quyết các vấn đề đã được giải quyết bởi TypeScript và do đó cảm thấy muốn “tái phát minh ra bánh xe”. Tuy nhiên, tôi chọn Typescript trong tương lai gần. Nó sẽ nâng cao tính toàn vẹn của code của bạn và giữ cho đầu ra của bạn có thể đọc được. Sự phát triển xung quanh công cụ này rất nổi bật. Trong vài năm qua, họ đã đứng đầu các tính năng mới nhất và tuyệt vời nhất và giới thiệu chức năng mới do cộng đồng thúc đẩy.

Compilers and Bundlers

Đã có hai công cụ quan trọng trong thế giới JavaScript đã trở thành một chuẩn mực: Babel và Webpack. Mặc dù được chứng minh từ góc độ công nghệ, sự hài lòng đã giảm khi thời gian trôi qua. Có một số công cụ mới ngoài kia đã làm tốt hơn trong việc thiết lập một hướng đi trong khi lắng nghe những khó khăn của cộng đồng JavaScript. Nếu bạn chọn một framework, nó thường sẽ quyết định việc sử dụng các công cụ này. Ví dụ: NextJS gần đây đã thay đổi trình biên dịch của mình thành SWC và các điểm chuẩn cho thấy rằng nó hiện nhanh hơn 17 lần so với thiết lập Babel trước đó của họ. Mặt khác, họ vẫn sử dụng Webpack để đóng gói, điều này rất hiệu quả.

Webpack đã chứng minh rằng nó rất tốt trong việc thích nghi và duy trì khả năng tương thích ngược. Đối với một dự án quy mô lớn vào năm 2022, tôi rất có thể sẽ dựa vào Webpack, nhưng đối với các dự án phụ nhỏ, pack mà tôi lựa chọn phải là RollUp.

Back-End Stack

Back-end stack cần một số lựa chọn có phương pháp và cẩn thận vì nó phụ thuộc rất nhiều vào miền hoạt động kinh doanh của bạn. Mọi thứ không đơn giản lắm, và bạn có thể không đồng ý với những lựa chọn dưới đây.

Framework

Ngày nay, có rất nhiều công cụ cung cấp cho bạn một thứ gì đó hoàn hảo hơn, và công cụ yêu thích nhất của tôi là Hasura. Nếu bạn có ý tưởng tốt về kiến ​​trúc dữ liệu của mình, bạn có thể tạo và triển khai back-end ngay lập tức. Họ linh hoạt trong việc cung cấp giải pháp đám mây của họ trong khi cũng cung cấp khả năng tự lưu trữ nó. Thông qua Hasura, bạn có thể thể hiện cả đồ thị API và REST, vì vậy đó là vấn đề lựa chọn.

Nó phụ thuộc vào lĩnh vực kinh doanh mà bạn hoạt động khi nói đến các giải pháp back-end. Bạn có thể dựa vào chính framework để xử lý các tính năng vượt trội đối với một số tính năng. Một giải pháp cực kỳ linh hoạt mà tôi đã tìm thấy gần đây trong NestJS. Nó là một framework được viết trên Node.js và, như một ví dụ, nó có thể dễ dàng được định cấu hình để hoạt động với Express hoặc Fastify. Tôi rất có thể sẽ chọn cách tiếp cận này thay vì bắt đầu viết mọi thứ hoàn toàn từ đầu.

Database

Tôi thấy tất cả các ngăn xếp 4 chữ cái này quảng bá MongoDB. Trong khi tôi đồng ý rằng bạn có thể sử dụng điều này để khởi động một dự án một cách nhanh chóng, cá nhân tôi chưa bao giờ có nhiều thành công với nó. Điều này có lẽ là do tất cả các cơ sở dữ liệu SQL đã có một số nâng cấp đáng kể về hiệu suất trong những năm qua.

Đối với năm nay, lựa chọn NoSQL của tôi sẽ là MongoDB, trong khi lựa chọn SQL sẽ là PostgreSQL. Cả hai đều được thành lập khá lâu trong cộng đồng phát triển và đã có nhiều năm chứng minh độ tin cậy về cả quy mô và hiệu suất.

Tổng kết

Mặc dù đây là một quan điểm rất chủ quan về bối cảnh hiện tại và việc sử dụng các công nghệ, tôi hy vọng nó cung cấp một số trợ giúp để bắt đầu dự án tiếp theo của bạn có thể phát triển thành một doanh nghiệp phụ.

Vào cuối ngày, tất cả chỉ tập trung vào việc lựa chọn công nghệ phù hợp với bạn và không phụ thuộc vào sự phát triển quá đà mà chúng ta tiếp xúc ngày này qua ngày khác. Biết những công nghệ để lựa chọn là một lợi thế lớn, nhưng hãy nhớ rằng tất cả chúng ta đều mắc sai lầm, và khi công nghệ tiến bộ, chúng ta đang nhận được nhiều lựa chọn thay thế hiệu quả hơn và rẻ hơn nhiều so với những gì chúng ta có ngày hôm nay.

Hiện tại khóa học Web Frontend + React.js tại Techmaster Vietnam vẫn liên tục tuyển sinh các lớp tiếp theo. Với cả hai hình thức là đào tạo Offline và học trực tuyến có tương tác. Và vẫn đảm bảo việc làm cho học viên tốt nghiệp đối với cả hai hình thức đào tạo.

Chi tiết khóa học: https://frontend.techmaster.vn/

Liên hệ tư vấn: Mr Thịnh - 0987273764 (zalo).

Bình luận

avatar
Ngọc Lục 2022-02-24 13:51:55.678139 +0000 UTC

Good

Avatar
* Vui lòng trước khi bình luận.
Ảnh đại diện
  0 Thích
0