TypeScript và sứ mệnh scaling

TypeScript và sứ mệnh scaling

Từ khi typescript xuất hiện, có rất nhiều các ý kiến trái chiều về việc nên hay không nên sử dụng loại cú pháp này. Bài viết này sẽ chỉ ra không phải ngẫu nhiên TypeScript trở thành xu thế.

TypeScript is bad?

Nếu các bạn search thử Google với từ khoá typescript is bad, các bạn sẽ thấy vô vàn ý kiến anti TypeScript.

https://dev.to/bettercodingacademy/typescript-is-a-waste-of-time-change-my-mind-pi8

Đây là một bài viết điển hình về anti TypeScript

Và mọi người nói gì khi không sử dụng TypeScript?

Việc học một ngôn ngữ mới như TypeScript tốn nhiều thời gian.

Đầu tiên thì TypeScript không hẳn là một ngôn ngữ hoàn toàn mới.

start-and-end-with-javascript.png

TypeScript bản chất là JavaScript, được bổ sung một loạt các tính năng, đặc biệt là static type, và trở thành một tập cha của JavaScript. Sau khi biên dịch, nó lại trở về JavaScript để chạy trên các môi trường hỗ trợ JavaScript, đó là lý do nó Start with JavaScript và End with JavaScript.

Và vì nó là tập cha của JS, việc tiếp cận là rất dễ dàng, bạn có thể bê nguyên code JS của bạn vào một file .ts để chạy mà không có lỗi nào. Sau đó bạn có thể làm quen dần từng tính năng của TypeScript.

TypeScript không phải ngôn ngữ tiêu chuẩn như JavaScript?

Hiện tại, TypeScript vẫn đang bám sát ECMAScript spec, những tính năng của TypeScript đều là các tính năng đã được cam đoan, hoặc có xác suất rất cao sẽ được thêm vào các phiên bản ECMAScript tương lai.

Vì thế, việc sử dụng TypeScript cũng không khác gì việc đang sử dụng JavaScript tiêu chuẩn.

Đôi khi dynamic type của JavaScript cũng tốt. Việc dùng TypeScript sẽ giết chết lợi thế này?

Có ý kiến cho rằng sử dụng TypeScript tốn nhiều thời gian hơn JavaScript do JS và các ngôn ngữ scripting nói chung giản lược được việc định nghĩa kiểu trong khi code.

Đúng. Tuy nhiên đó là với hệ quy chiếu ngắn hạn.

Với hệ quy chiếu dài hạn, thời gian chênh lệch giữa sử dụng TS vs JS chính là giá để mua lại tính đáo ứng mở rộng.

Nếu tính Scaling không đáp ứng được, bạn sẽ tốn chi phí cho các lỗi tiềm ẩn xảy ra khi quy mô dự án lớn dần lên, lượng code nhiều lên, và refactoring đến như một điều tất yếu.

Đối với các dự án đang hoạt động, việc chuyển đổi sang TypeScript sẽ tốn rất nhiều thời gian.

Đúng. Tuy nhiên chỉ đúng khi bạn quyết định làm một cuộc đại cải tổ.

Như đã phân tích ở trên, TypeScript là tập cha của JavaScript, vì thế bạn hoàn toàn có thể cấu hình cho TS compiler hoạt động với dự án JS hiện có mà chưa cần động đến một chút feature nào của TypeScript. Sau đó, việc cải tổ có thể diễn ra từ từ, từng phần, có thể bắt đầu từ những phần code mới, rồi mới quay lại refactor đến phần code cũ.

Sứ mệnh của TypeScript

Theo các bạn thấy TypesScript nên được sử dụng vì lý do gì?.

Các công ty lớn dùng TypeScript thì mình cũng nên dùng à? Các công ty lớn vẫn dùng những công nghệ có từ lâu mà, có sao đâu!

Có thể dùng các tính năng thậm chí mới chỉ ở kế hoạch tương lai của JavaScript à? Thế thì dùng Babel cũng được mà!

Trình thông dịch có thể hỗ trợ code đầu ra tương thích với các trình duyệt cổ lỗ à? Babel lại cũng làm được luôn, hoặc đơn giản hơn có thể dùng Polyfills!

Lý do tiên quyết mà mình thấy (và chính thằng TypeScript nó cũng nhấn mạnh), đó là Scale.

typescript-slogan.png

Rồi, giờ vào thử trang chủ của TypeScript xem đúng ko nào.

The JavaScript that scales

Đây chính là slogan của TypeScript. Hãy luôn nhớ Typescript và Scale.

Không phải ngẫu nhiên các công ty lớn vẫn có thể duy trì, và chọn sử dụng các công cụ tuổi đời lâu năm như Java, C++.

Không phải ngẫu nhiên người ta tạo ra TypeScript, ốp static type cho JavaScript - một ngôn ngữ dynamic type. Type là một trong những con át chủ bài cho khả năng scaling về mặt code.

Một số lợi ích của TypeScript trong việc scaling code:

Các con số không biết nói dối

Dù có rất nhiều quan điểm anti TypeScript, xu hướng sử dụng TypeScript vẫn tăng khá tuyến tính.

Tạm kết

Nhấn mạnh lại một lần nữa, TypeScript - The JavaScript that scales. Sứ mệnh của TypeScript là hỗ trợ việc scaling. Các tính năng khác của TypeScript có thể không phải là tốt nhất, nhưng chắc chắn việc hỗ trợ scaling thì TypeScript đang làm rất tốt. Chi tiết về cách sử dụng tối ưu TypeScript cho scaling mình sẽ nói trong một bài viết khác.

Và cuối cùng, nếu có điều kiện, hãy thử sử dụng TypeScript và tự cảm nhận.

Previous Post Next Post