, June 27, 2022

0 kết quả được tìm thấy

Tự học ngôn ngữ Dart: Những điều cần biết trước khi bắt đầu

  • Đăng bởi  Groot
  •  Jul 07, 2021

  •   8 min reads
Tự học ngôn ngữ Dart: Những điều cần biết trước khi bắt đầu

Nếu bạn đang có ý định học Flutter nhưng lại gặp rào cản với ngôn ngữ Dart. Thì trong series này, từng bước một chúng ta sẽ cùng nhau chinh phục nó. Từ cấp độ cơ bản nhất của người mới bắt đầu, chúng ta sẽ từ từ đi qua tất cả những kiến thức mà bạn cần phải biết để viết được một chương trình cơ bản.

Trong series sẽ có thể đề cập đến một vài khái niệm trong các ngôn ngữ khác. Dù bạn đã biết hay chưa biết về các khái niệm đó thì cũng đừng lo nhé. Các bài viết sẽ cố gắng đơn giản nhất để cho các bạn chưa biết gì cũng có thể nắm bắt được.

Hành trình mà bạn sẽ chinh phục ngôn ngữ Dart trong series này:

Phần 1: Những điều cần biết trước khi bắt đầu

Phần 2: Ứng dụng Dart đầu tiên

Phần 3: Kiểu dữ liệu và biến

Phần 4: Kiểu dữ liệu numbers, string, booleans

Phần 5: Type Inference, Type Annotation, Dynamic Types, Constants

Phần 6: Toán tử (Operator)

Phần 7: Collection của ngôn ngữ Dart

Phần 8: Control Flow Statements

Phần 9: Functions

Phần 10: Classes

Bonus: Dart Cheat Sheet - Full bộ "bỏ túi" các syntax trong ngôn ngữ Dart

1. Ngôn ngữ Dart: Lịch sử hình thành

Ngôn ngữ Dart: Lịch sử hình thành

Dart 1.0 được phát hành bởi google vào ngày 14 tháng 11 năm 2013 và được viết bởi Lars Bak và Kasper Lund. Ngôn ngữ này hướng đến việc giúp cho các developer xây dựng được các ứng dụng điện thoại và các web hiện đại. Nó có thể viết được cho phía client, server và hiện tại là mobile với Flutter.

Ngôn ngữ Dart đi kèm với một loạt các công cụ như là máy ảo, các thư viện cốt lõi và repository quản lý package,... dư sức để bạn có thể bắt đầu cho dự án tiếp theo của mình.

2. Ngôn ngữ Dart là ngôn ngữ hướng đối tượng (OOP)

Ngôn ngữ Dart là ngôn ngữ hướng đối tượng (OOP)

Smalltalk được phát hành vào năm 1970 và là một trong những ngôn ngữ lập trình hướng đối tượng nguyên bản đầu tiên. Ngày nay ngôn ngữ hướng đối tượng đã trở nên phổ biến và dường như thống trị trong thế giới ngôn ngữ lập trình.

Ý tưởng đằng sau khái niệm lập trình hướng đối tượng rất đơn giản: các chương trình yêu cầu một dạng cấu trúc cụ thể.

Cách rõ ràng nhất để đạt được cấu trúc cụ thể này là sử dụng khái niệm containers. Một ngôn ngữ lập trình có thể được chia thành dữ liệu và những phương thức thực hiện các dữ liệu đó. Dữ liệu cụ thể và những phương thức sẽ được gói trong một số loại container.

Hơn nữa, những container này được tạo ra để trở nên dễ sử dụng. Vì thế chúng không chỉ chứa dữ liệu và phương thức mà chúng cũng chính là những giá trị được chứa vào những container khác và được chuyển dưới dạng tham số cho các hoạt động khác. Trong lập trình hướng đối tượng, những container này được biết như là những đối tượng.

Alan Kay, người phát minh ra Smalltalk, nhận xét rằng theo cách này, đối tượng đơn giản nhất có nguyên tắc cấu tạo giống như một máy tính hoàn chỉnh: nó kết hợp dữ liệu với các phương thức dưới một giao diện được chính thức hóa.

Và bây giờ, mặc dù lập trình hướng đối tượng có thể được tìm thấy trong vô số ngôn ngữ, nhưng có rất ít ngôn ngữ thực sự tuân theo các nguyên tắc do Smalltalk đặt ra.

Dart là một ngôn ngữ lập trình hướng đối tượng thuần túy với mọi giá trị là một đối tượng.

3. Ngôn ngữ Dart: dưới góc nhìn của JavaScript

Ngôn ngữ Dart: dưới góc nhìn của JavaScript

Dart là một ngôn ngữ hướng đối tượng đơn giản, clean và dựa trên class. Nó còn có nhiều cấu trúc hơn cả JavaScript - một ngôn ngữ mà nó chịu ảnh hưởng thiết kế khá là nhiều.

Đó là một điều tốt cho các developer những ai yêu thích việc có cấu trúc trong ngôn ngữ lập trình của mình. Các dev có thể dễ dàng tái cấu trúc và xây dựng những ứng dụng web lớn hơn.

Theo như những nhà sáng lập, một trong những thứ họ tập trung vào khi tạo ra ngôn ngữ này đó chính là tính tương thích của nó với web. Vì vậy, một trong những component quan trọng nhất của Dart đó chính là trình biên dịch Dart sang JavaScript. Nó sẽ dịch source code của Dart sang Javascript và đảm bảo rằng bạn sẽ nhận đúng ngữ nghĩa giống như khi bạn chạy nó trên máy ảo của javascript.

4. Từ ngôn ngữ Dart đến Framework Flutter

Từ ngôn ngữ Dart đến Framework Flutter

Flutter đã thu hút được sự chú ý của cộng đồng các nhà phát triển bằng cách giới thiệu các style cho phép việc xây dựng UI đẹp hơn và biểu cảm hơn vì thế mà việc code cũng trở nên thú vị hơn nhiều. Nó kết hợp một số khái niệm quen thuộc với những kinh nghiệm phát triển hiện đại như lập trình reactive và widget composition trong khi sử dụng nền tảng Dart làm cơ sở chính cho các hoạt động đó.

Nhóm Flutter đã đánh giá nhiều ngôn ngữ khác nhau và cuối cùng họ chọn Dart vì nó phù hợp với cách mà họ xây dựng giao diện người dùng. Dưới đây là những lý do tại sao mà ngôn ngữ Dart lại được Flutter lựa chọn để sử dụng:

4.1 Tối ưu cho giao diện người dùng:

Hoạt động bất đồng bộ cho phép chương trình của bạn có thể hoàn thành hoàn toàn công việc trong khi chờ hoạt động khác kết thúc. Đây là một số hoạt động bất đồng bộ phổ biến:

  • Tìm nạp dữ liệu thông qua mạng
  • Viết cơ sở dữa liệu
  • Đọc dữ liệu từ file

Hầu hết các máy tính, thậm chí các nền tảng mobile, đều có CPU đa nhân. Để tận dụng hết tất cả các nhân đó, các dev thông thường phải sử dụng các luồng bộ nhớ chia sẻ đồng thời. Các concurrency ở trạng thái chia sẻ có thể dễ bị lỗi và có thể dễ dẫn đến những code khá phức tạp. Thay vì sử dụng luồng, tất cả các code của ngôn ngữ Dart chạy bên trong các isolate. Mỗi isolate có vùng bộ nhớ riêng, đảm bảo rằng không có bất kỳ trạng thái của isolate này có thể truy cập được vào isolate kia.

Ngôn ngữ lập trình này cũng tối ưu cho việc xây dựng giao diện người dùng với những tính năng cho phép mở rộng các collection và tùy chỉnh UI cho từng nền tảng khác nhau.

4.2 Việc phát triển năng suất hơn

Flutter có tính năng hot reload giúp bạn thử nghiệm, xây dựng UI, thêm tính năng và fix bug một cách nhanh chóng và dễ dàng hơn. Tính năng hot reload hoạt động bằng cách đưa những file source code đã được update vào máy ảo Virtual Machine (VM) của Dart. Sau khi VM cập nhập các class với phiên bản mới nhất của field và function, framework Flutter sẽ tự động tái xây dựng cây widget, cho phép bạn xem các hiệu ứng mà bạn đã thay đổi một cách nhanh chóng hơn.

Flutter cung cấp phân tích static cho phép bạn phát hiện ra những vấn đề ngay trước khi dòng code đó được thực thi. Nó thực sự là một công cụ mạnh mẽ có thể giúp các dev tránh việc phát sinh bug và đảm bảo được code tuân theo các quy tắc của style.

4.3 Hiệu năng nhanh trên tất cả nền tảng

Ngôn ngữ Dart có trình biên dịch AOT (Ahead of Time) giúp nó biên dịch nhanh, đúng và native code. Điều này không chỉ đảm bảo giúp Flutter nhanh hơn mà còn đảm bảo rằng hầu như mọi thứ (bao gồm tất cả các widget) đều có thể được tùy chỉnh. Với lý do đó cho nên hầu hết các phần của Flutter đều được viết bằng ngôn ngữ này.

Trên đây là một số giới thiệu về ngôn ngữ Dart, hãy cùng bắt đầu tìm hiểu sâu hơn về ngôn ngữ này trong các bài tiếp theo nhé!

Bài viết cùng seri

Bài viết liên quan

Tổng hợp các Shortcuts, Extensions & Settings trong VSCode khi lập trình Flutter

Trong bài viết này, mình sẽ liệt kê cho bạn các shortcuts, extensions, setting mà bạn nên sử dụng để lập trình Flutter hàng ngày....

Tổng hợp các Shortcuts, Extensions & Settings trong VSCode khi lập trình Flutter
[Phần 1] Những extension cần thiết khi làm việc với Flutter trên VS Code

VS Code là 1 text editor tuyệt vời được phát triển bởi Mircosoft. Đây là một trong các công cụ được developer trên toàn thế giới yêu thích vì sự tiện lợi, dễ dùng và nó chứa hàng ngàn, thậm chí trăm ngàn các extension phục vụ cho bạn trong quá trình bạn phát triển phần mềm....

[Phần 1] Những extension cần thiết khi làm việc với Flutter trên VS Code
Dart 2.15 có gì mới?

Ở bài viết này, chúng ta sẽ cùng nhau tìm hiểu chi tiết những tính năng vừa mới được cập nhật thêm ở phiên bản Dart 2.15. Cùng xem thử để xem có tính năng nào mà bạn đang "mong chờ" từ lâu đối với ngôn ngữ Dart hay không 😄....

Dart 2.15 có gì mới?
Flutter Design Patterns: 17 — Bridge

Tổng quan về Bridge design pattern và việc thực hiện nó trong Dart và Flutter...

Flutter Design Patterns: 17 — Bridge
Navigation 2.0 - Routing On Flutter Web

Trong hướng dẫn này, chúng ta sẽ tìm hiểu cách Navigation 2.0 hoạt động với Web Flutter, cách chúng ta có thể xây dựng các trang web và đồng bộ hóa URL với các dự án Flutter Web của chúng ta....

Navigation 2.0 - Routing On Flutter Web
You've successfully subscribed to 200Lab Blog
Great! Next, complete checkout for full access to 200Lab Blog
Xin chào mừng bạn đã quay trở lại
OK! Tài khoản của bạn đã kích hoạt thành công.
Success! Your billing info is updated.
Billing info update failed.
Your link has expired.