Sẽ mở trong thẻ mới
PDL AIAI Worker — trợ lý AI trực 24/7: trả lời khách, xử lý yêu cầu, báo cáo tự động

Kỹ sư phần mềm thời AITờ 01-05 / 112

Ngôn ngữ lập trình và framework: bức tranh tổng thể và lựa chọn năm 2026

Căn bếp lắp sẵn, hộp dụng cụ rời và đường điện gas, ví cho framework, thư viện và runtime
Tờ
01-05 / 112
Hạng mục
M01 · Nền tảng máy tính và web cho người không chuyên
Cấp độ
Cơ bản
Thời gian đọc
18 phút
Giai đoạn công trình
0 · Khám phá
Cập nhật
Bản đồ công trìnhTờ này lắp: Giao diện app, API
Bản đồ công trình Mộc OMSBài này: Giao diện app, API. Đã học: Coding agent, Khách hàng, Kênh bán, Sheet & sổ tay. Chưa tới: PRD & spec, Repo & CI, Kiểm thử, Hosting & tên miền, Giám sát lỗi, Database, Dashboard, báo cáo, Trợ lý AI nhận đơn, Màn hình bếp, Đăng nhập, vai trò, Thanh toán VietQR, Thông báo khách, Nhiều tiệm (MộcOS), Kế toán, hoá đơn.Thi công & hạ tầngDòng đơn hàngNghiệp vụ & dịch vụMở rộng MộcOSPRD & specspecCoding agentagentRepo & CIrepo-ciKiểm thửtestsHosting & tên miềnhostingGiám sát lỗimonitoringKhách hàngcustomerKênh bánchannelsGiao diện appapp-uiAPIapiDatabasedatabaseDashboard, báo cáoreportsSheet & sổ taysheetTrợ lý AI nhận đơnai-assistantMàn hình bếpkitchenĐăng nhập, vai tròauthThanh toán VietQRpaymentsThông báo kháchnotificationsNhiều tiệm (MộcOS)tenantsKế toán, hoá đơnintegrations0 Khám phá1 MVP2 Ra mắt3 Thêm AI4 Mở rộng
Bản đồ công trình Mộc OMSBài này: Giao diện app, API. Đã học: Coding agent, Khách hàng, Kênh bán, Sheet & sổ tay. Chưa tới: PRD & spec, Repo & CI, Kiểm thử, Hosting & tên miền, Giám sát lỗi, Database, Dashboard, báo cáo, Trợ lý AI nhận đơn, Màn hình bếp, Đăng nhập, vai trò, Thanh toán VietQR, Thông báo khách, Nhiều tiệm (MộcOS), Kế toán, hoá đơn.Dòng đơn hàngKhách hàngKênh bánGiao diệnAPIDatabaseBáo cáoNghiệp vụ & dịch vụSheet, sổ tayTrợ lý AIMàn hình bếpĐăng nhậpThanh toánThông báoThi công & hạ tầngPRD & specCoding agentRepo & CIKiểm thửHostingGiám sátMở rộng MộcOSNhiều tiệmKế toán0 Khám phá1234

Bài nàyĐã họcChưa tớiĐã thay thế

Bạn sẽ học được gì

Tiêu chí nghiệm thu

Vì sao chủ doanh nghiệp cần biết chuyện này

Khi chị Lan bắt đầu hỏi quanh, mỗi người tư vấn một kiểu. Một bạn freelancer bảo “làm bằng PHP Laravel, rẻ”. Một công ty phần mềm đề xuất “Java Spring cho chắc”. Người cháu học IT khuyên “Flutter, viết một lần chạy cả iPhone lẫn Android”. Một video trên mạng nói “giờ có AI, ngôn ngữ nào cũng được”.

Câu cuối chỉ đúng một nửa. Đúng là AI viết được nhiều ngôn ngữ. Nhưng lựa chọn công nghệ quyết định ai có thể bảo trì sản phẩm sau này, AI làm việc tốt đến đâu, chi phí vận hành, và bạn tuyển được người hay không. Bạn không cần thành thạo ngôn ngữ nào, nhưng cần đủ hiểu để đặt câu hỏi đúng và không bị dắt mũi bởi những từ nghe “kêu”.

Ngôn ngữ, thư viện, framework: ba tầng trong căn bếp

Hãy hình dung việc mở một tiệm bánh mới.

Ngôn ngữ lập trình (programming language) giống ngôn ngữ dùng để viết công thức: tiếng Việt, tiếng Anh, tiếng Pháp. Cùng một chiếc bánh có thể viết công thức bằng nhiều thứ tiếng; mỗi thứ tiếng có từ vựng, ngữ pháp và “văn hóa” riêng. TypeScript, Python, Go, PHP, Swift là các ngôn ngữ.

Thư viện (library) giống dụng cụ mua sẵn: máy đánh trứng, khuôn bánh, cân điện tử. Bạn chủ động lấy ra dùng khi cần, dùng xong cất đi. Bạn quyết định quy trình, dụng cụ chỉ phục vụ. Ví dụ trong dự án Bánh Mộc: Zod (kiểm tra dữ liệu), Drizzle ORM (làm việc với database), thư viện xử lý ngày giờ.

Framework (khung làm việc) giống một căn bếp được thiết kế sẵn theo chuẩn của một chuỗi nhượng quyền: khu sơ chế ở đây, lò nướng ở kia, quy trình nhận phiếu order theo mẫu cố định. Bạn không tự quyết bố cục; bạn đặt công việc của mình vào đúng chỗ framework quy định, và framework gọi bạn khi tới lượt. Next.js là một framework: bạn đặt file trang vào thư mục app/, Next.js tự biết khi nào hiển thị trang đó.

Câu tóm tắt dễ nhớ mà giới lập trình hay dùng: “Bạn gọi thư viện; framework gọi bạn.“

Còn một khái niệm nữa hay gặp: runtime (môi trường chạy) là thứ trực tiếp chạy code, giống điện và gas để căn bếp hoạt động. Code JavaScript/TypeScript có thể chạy trong trình duyệt (runtime có sẵn trong Chrome, Safari) hoặc trên server qua Node.js (các runtime khác như Bun, Deno cũng tồn tại). Khi agent nói “cần cài Node.js”, nghĩa là cần lắp đường điện cho căn bếp.

Khái niệm Ẩn dụ Ai nắm quyền điều khiển Ví dụ trong stack Bánh Mộc
Ngôn ngữ Thứ tiếng viết công thức Bạn TypeScript, SQL
Thư viện Dụng cụ mua sẵn Bạn gọi khi cần Zod, Drizzle ORM, React
Framework Căn bếp thiết kế sẵn Framework gọi code của bạn Next.js, Tailwind CSS (framework cho phần trang trí)
Runtime Điện, gas cho bếp chạy Môi trường thực thi Trình duyệt, Node.js
Dịch vụ nền tảng Thuê mặt bằng có sẵn kho, bảo vệ Nhà cung cấp Vercel (hosting), Supabase (database, đăng nhập)

Vì sao framework quan trọng khi làm với AI

Framework mang theo quy ước (convention): file này đặt ở đây, tên thế này, làm theo trình tự này. Với AI, quy ước là một món quà: thay vì phải đoán bạn muốn tổ chức code ra sao, agent làm theo cách hàng triệu dự án khác đã làm. Code sinh ra đồng đều hơn, người khác (hoặc agent khác) tiếp nhận dễ hơn.

Mặt trái: nếu framework có nhiều phiên bản với quy ước khác nhau, AI có thể trộn lẫn chúng. Ví dụ quen thuộc: Next.js có hai cách tổ chức là Pages Router (thư mục pages/, cách cũ) và App Router (thư mục app/, cách mới hơn). AI học từ code của cả hai thời kỳ nên đôi khi viết code kiểu cũ vào dự án kiểu mới. Cách phòng tránh sẽ có ở phần sau.

Bản đồ ngôn ngữ theo loại sản phẩm

Không có ngôn ngữ “tốt nhất”, chỉ có ngôn ngữ phù hợp với loại sản phẩm. Sơ đồ dưới đây là bản đồ đơn giản hóa tại thời điểm viết (2026):

Hình chữ ký Cây quyết định
  1. Bạn muốn làm gì?
  2. Ứng dụng web
  3. App điện thoại
  4. Phân tích dữ liệu, AI, tự động hóa
  5. Hệ thống hiệu năng cao, hạ tầng
Xem sơ đồ gốc (Hình 1)

Vuốt ngang để xem hết sơ đồ

Bạn muốn làm gì?

Ứng dụng web

App điện thoại

Phân tích dữ liệu, AI, tự động hóa

Hệ thống hiệu năng cao, hạ tầng

Giao diện trên trình duyệt:
JavaScript / TypeScript (bắt buộc)
React, Vue, Svelte, Angular

Phía server:
TypeScript (Node.js), Python, PHP,
Go, Java/Kotlin, C#, Ruby

Bản địa: Swift (iOS), Kotlin (Android)

Đa nền tảng: React Native (TypeScript),
Flutter (Dart)

Python, SQL

Go, Rust, C/C++, Java

Hình 1 Sơ đồ luồng
Đọc sơ đồ dạng chữ
  1. Bạn muốn làm gì? → Ứng dụng web
  2. Bạn muốn làm gì? → App điện thoại
  3. Bạn muốn làm gì? → Phân tích dữ liệu, AI, tự động hóa
  4. Bạn muốn làm gì? → Hệ thống hiệu năng cao, hạ tầng
  5. Ứng dụng web → Giao diện trên trình duyệt: JavaScript / TypeScript (bắt buộc) React, Vue, Svelte, Angular
  6. Ứng dụng web → Phía server: TypeScript (Node.js), Python, PHP, Go, Java/Kotlin, C#, Ruby
  7. App điện thoại → Bản địa: Swift (iOS), Kotlin (Android)
  8. App điện thoại → Đa nền tảng: React Native (TypeScript), Flutter (Dart)
  9. Phân tích dữ liệu, AI, tự động hóa → Python, SQL
  10. Hệ thống hiệu năng cao, hạ tầng → Go, Rust, C/C++, Java

Web

  • Giao diện trên trình duyệt: JavaScript là ngôn ngữ duy nhất trình duyệt chạy trực tiếp (bên cạnh công nghệ chuyên biệt WebAssembly), nên mọi frontend cuối cùng đều thành JavaScript. TypeScript được “dịch” sang JavaScript trước khi chạy. Các thư viện/framework giao diện phổ biến: React, Vue, Svelte, Angular.
  • Phía server: lựa chọn rộng hơn nhiều. TypeScript trên Node.js (Next.js, Express, NestJS…), Python (Django, FastAPI), PHP (Laravel; WordPress cũng viết bằng PHP và rất phổ biến tại Việt Nam cho website nội dung), Go, Java/Kotlin (Spring), C# (.NET), Ruby (Rails).

Mobile

  • Bản địa (native): Swift cho iPhone, Kotlin cho Android. Trải nghiệm tốt nhất, nhưng phải làm hai lần.
  • Đa nền tảng (cross-platform): React Native (viết bằng TypeScript, gần với stack web) và Flutter (ngôn ngữ Dart). Viết một lần, chạy cả hai hệ.
  • Với nhiều doanh nghiệp nhỏ, một website tốt trên điện thoại (có thể cài lên màn hình chính như app, gọi là PWA) là đủ cho giai đoạn đầu. Bài Responsive, mobile-first và PWA05-04 bàn kỹ hơn.

Dữ liệu và AI

  • Python là ngôn ngữ thống trị trong phân tích dữ liệu, học máy và nghiên cứu AI, nhờ hệ sinh thái thư viện khổng lồ.
  • SQL là ngôn ngữ truy vấn database, gần như ai làm phần mềm cũng gặp.
  • Lưu ý: dùng AI trong sản phẩm (gọi API của mô hình ngôn ngữ để trích xuất đơn hàng từ tin nhắn Zalo) không bắt buộc phải dùng Python. Các nhà cung cấp mô hình lớn đều có SDK chính thức cho TypeScript. Module 12 sẽ làm điều này ngay trong Mộc OMS.

Hệ thống và hạ tầng

  • Go, Rust, C/C++: dùng khi cần hiệu năng rất cao, công cụ hạ tầng, phần mềm nhúng. Doanh nghiệp nhỏ hiếm khi cần ở giai đoạn đầu.

Ngôn ngữ biên dịch và thông dịch: một ghi chú ngắn

Bạn có thể nghe “ngôn ngữ biên dịch” (compiled) và “ngôn ngữ thông dịch” (interpreted). Ẩn dụ: biên dịch giống dịch trọn cuốn công thức sang tiếng của thợ trước khi giao; thông dịch giống có người phiên dịch đứng cạnh dịch từng dòng khi thợ làm. Trong thực tế, ranh giới đã mờ và bạn hiếm khi phải quan tâm. Điều đáng nhớ: TypeScript có một bước “build” để kiểm tra kiểu và chuyển thành JavaScript. Khi agent báo “build failed”, nghĩa là bước chuẩn bị này gặp lỗi, thường do lỗi kiểu hoặc cú pháp, và sản phẩm chưa thể chạy.

AI “quen tay” với hệ sinh thái nào?

Mô hình AI học từ lượng rất lớn code và tài liệu công khai. Từ đó suy ra vài nguyên tắc định tính (không có con số chính xác, và mức độ thay đổi theo từng mô hình):

  1. Hệ sinh thái càng phổ biến, AI càng quen. JavaScript/TypeScript và Python có lượng code công khai, câu hỏi, hướng dẫn rất lớn. AI thường viết code cho chúng trôi chảy và ít “bịa” hơn so với ngôn ngữ hay framework ít người dùng.
  2. Quy ước rõ ràng giúp AI làm đúng. Framework có cấu trúc thư mục và cách làm chuẩn (Next.js, Laravel, Django, Rails) giúp agent đoán đúng nơi đặt code.
  3. Kiểu dữ liệu tĩnh cho AI vòng phản hồi. Với TypeScript, agent viết xong có thể chạy kiểm tra kiểu và tự phát hiện lỗi trước khi bạn thấy. Đây là lợi thế thật, như bạn đã thấy ở bài Đọc hiểu code cơ bản01-04.
  4. Phiên bản mới là vùng mù. Mô hình có ngày cắt kiến thức (knowledge cutoff); phiên bản thư viện ra sau ngày đó, AI có thể chưa biết, hoặc trộn cách viết cũ và mới. Bài LLM hoạt động thế nào02-01 giải thích kỹ hơn.

Tiêu chí chọn công nghệ cho doanh nghiệp nhỏ

Một doanh nghiệp nhỏ không phải Google. Bạn không cần công nghệ “chịu được trăm triệu người dùng”; bạn cần thứ chạy ổn định, dễ bảo trì, tìm được người hỗ trợ. Bảy câu hỏi nên đặt cho mọi lựa chọn:

  1. Có phổ biến không? Nhiều người dùng nghĩa là nhiều tài liệu, nhiều câu trả lời trên mạng, AI quen tay, dễ tuyển người.
  2. Có ổn định không? Công nghệ đã qua nhiều năm sử dụng thực tế an toàn hơn công nghệ “hot” vừa ra mắt.
  3. Một ngôn ngữ cho nhiều tầng được không? Ít ngôn ngữ hơn nghĩa là ít thứ phải học, ít chỗ AI nhầm lẫn.
  4. Triển khai và vận hành có dễ không? Có nền tảng hosting đưa lên mạng trong vài cú bấm không?
  5. Chi phí tổng thể ra sao? Không chỉ chi phí viết, mà cả hosting, bảo trì, nhân sự nhiều năm.
  6. Có dễ thoát không? Nếu nhà cung cấp tăng giá hay đóng cửa, bạn chuyển đi được không?
  7. Hệ sinh thái tích hợp có đủ không? Có thư viện, SDK cho thanh toán, gửi email, thông báo mà bạn cần?

Đây chính là tinh thần “công nghệ đơn giản, phổ biến thắng công nghệ hot” của chuỗi bài. Bài Chọn tech stack04-06 ở module 4 sẽ đi sâu vào quy trình ra quyết định và ghi lại lý do.

So sánh vài phương án cho Mộc OMS

Bảng dưới đây so sánh định tính các phương án chị Lan được tư vấn. Không có phương án “sai”; mỗi cái hợp một hoàn cảnh.

Tiêu chí Next.js + TypeScript + Supabase Laravel (PHP) + MySQL Django (Python) + PostgreSQL Nền tảng no-code
Một ngôn ngữ cho cả frontend và backend ✅ ❌ (giao diện tương tác thường cần thêm JavaScript) ❌ (giao diện tương tác thường cần thêm JavaScript) Không áp dụng
AI quen tay ✅ Rất phổ biến ✅ Phổ biến ✅ Phổ biến Hạn chế, tùy nền tảng
Kiểm tra kiểu giúp agent tự phát hiện lỗi ✅ Một phần Một phần (có gợi ý kiểu tùy chọn) ❌
Hosting dễ cho người mới ✅ (Vercel, nhiều nền tảng khác) ✅ (nhiều hosting phổ biến) Trung bình ✅ Có sẵn
Tùy biến theo quy trình riêng của tiệm ✅ ✅ ✅ Hạn chế khi quy trình phức tạp
Tìm người hỗ trợ tại Việt Nam ✅ ✅ ✅ Tùy nền tảng
Sẵn sàng mở rộng thành SaaS (giai đoạn 4) ✅ ✅ ✅ Khó

Nếu bạn còn phân vân giữa tự xây, mua phần mềm có sẵn hay dùng no-code, bài Tự xây, đi mua hay dùng no-code?03-03 sẽ giúp ra quyết định đó trước khi chọn ngôn ngữ.

Vì sao chuỗi bài chọn TypeScript + Next.js

Tóm lại các lý do, cũng chính là lý do Bánh Mộc chọn:

  • Một ngôn ngữ từ đầu đến cuối: TypeScript dùng cho giao diện, backend, test, script. Chị Lan chỉ cần làm quen một thứ tiếng; agent không phải chuyển ngữ cảnh.
  • Kiểu dữ liệu bắt lỗi sớm: agent tự kiểm tra, bạn đọc được lỗi.
  • Hệ sinh thái lớn nhất của web: gần như dịch vụ nào cũng có SDK cho TypeScript, từ Supabase tới các nhà cung cấp mô hình AI.
  • Next.js gộp frontend và backend (như bài Frontend, backend, database01-03 đã giải thích), một dự án duy nhất, triển khai đơn giản.
  • AI quen tay: phổ biến, nhiều tài liệu, quy ước rõ.
  • Lộ trình mở rộng: từ công cụ nội bộ tới SaaS mà không phải viết lại.

Và những điểm cần dè chừng, nói thẳng:

  • Next.js thay đổi khá nhanh giữa các phiên bản; cần ghi rõ phiên bản và cách làm trong file hướng dẫn agent.
  • Ranh giới server/trình duyệt trong Next.js dễ nhầm, cần review kỹ.
  • Hệ sinh thái JavaScript có rất nhiều gói phụ thuộc, kéo theo rủi ro chuỗi cung ứng (sẽ bàn ở bài An toàn chuỗi cung ứng phần mềm09-05).

Áp dụng vào dự án Bánh Mộc

Nhật ký công trình · Bánh Mộc

BM-261012-011

12.10.2026

  • Chị LanChủ chuỗi
Chị Lan so ba bản tư vấn công nghệ và viết bản ghi quyết định một trang

Chị Lan ngồi lại với ba lời tư vấn ban đầu và đi qua bảy câu hỏi tiêu chí. Chị ghi lại quyết định thành một đoạn ngắn, dự định sau này đưa vào thư mục docs/adr/ (nơi lưu các quyết định kiến trúc, sẽ học ở module 4):

MARKDOWN
# Quyết định: Ngôn ngữ và framework cho Mộc OMS

## Bối cảnh
- Chủ dự án không chuyên lập trình, làm việc chủ yếu cùng coding agent.
- Cần web dùng tốt trên điện thoại cho nhân viên 3 chi nhánh; chưa cần app trên kho ứng dụng.
- Có kế hoạch mở rộng thành phần mềm bán cho tiệm khác trong 1-2 năm.

## Quyết định
- Ngôn ngữ: TypeScript cho toàn bộ dự án.
- Framework: Next.js (App Router), React, Tailwind CSS + shadcn/ui.
- Database và đăng nhập: Supabase (PostgreSQL).

## Lý do
- Một ngôn ngữ cho mọi tầng; kiểm tra kiểu giúp agent tự phát hiện lỗi.
- Phổ biến, nhiều tài liệu, AI quen tay; dễ tìm freelancer hỗ trợ.
- Triển khai đơn giản; đủ khả năng mở rộng.

## Đánh đổi chấp nhận
- Next.js thay đổi nhanh: ghi phiên bản trong AGENTS.md, yêu cầu agent đọc tài liệu chính thức.
- Không có app native: dùng web responsive, cân nhắc PWA sau.

Chị gửi đoạn này cho bạn freelancer từng tư vấn Laravel để xin góp ý. Bạn ấy đồng ý rằng cả hai lựa chọn đều làm được, và chỉ ra một điểm chị chưa nghĩ tới: cần chắc chắn có người hỗ trợ khi agent “bí”. Chị thêm một dòng vào kế hoạch: tìm một lập trình viên TypeScript làm cố vấn theo giờ khi cần. (Bài Khi nào cần kỹ sư chuyên nghiệp13-07 bàn kỹ chuyện này.)

Prompt mẫu

Prompt 1: nhờ AI so sánh lựa chọn công nghệ một cách trung lập.

Tôi là chủ doanh nghiệp nhỏ (chuỗi 3 tiệm bánh, khoảng 100 đơn/ngày), không biết lập trình,
sẽ xây phần mềm quản lý đơn hàng chủ yếu cùng coding agent. Hãy so sánh các phương án
[liệt kê phương án] theo bảng với các tiêu chí: độ phổ biến, độ ổn định, một ngôn ngữ cho
nhiều tầng, dễ triển khai, chi phí vận hành, khả năng tìm người hỗ trợ tại Việt Nam,
mức độ AI quen thuộc. Với mỗi đánh giá, nêu lý do ngắn gọn. Chỗ nào bạn không chắc chắn
hoặc thông tin có thể đã lỗi thời, hãy nói rõ. Không cần chọn hộ tôi.

Prompt 2: kiểm tra agent có đang dùng đúng phiên bản và quy ước.

Trước khi viết code, hãy đọc package.json và cấu trúc thư mục, rồi cho tôi biết:
phiên bản Next.js, React, TypeScript đang dùng; dự án dùng App Router hay Pages Router.
Với tính năng sắp làm, liệt kê các API/cách viết của framework bạn định dùng và xác nhận
chúng phù hợp với phiên bản này. Nếu không chắc, hãy tra tài liệu chính thức trước.

Prompt 3: giải thích một thư viện lạ trong dự án.

Trong package.json của dự án có thư viện [tên]. Hãy giải thích bằng tiếng Việt dễ hiểu:
nó là thư viện hay framework, dùng để làm gì trong dự án này (chỉ ra file nào dùng nó),
và nếu bỏ nó đi thì ảnh hưởng gì.

Sai lầm thường gặp

  1. Sự cố 01

    Chọn công nghệ theo độ “hot”.

    Triệu chứng

    Framework mới ra, nhiều người bàn tán, nhưng ít tài liệu, AI chưa quen, cộng đồng chưa có lời giải cho lỗi.

    Cách tránh

    Ưu tiên công nghệ phổ biến, đã ổn định nhiều năm. Để công nghệ mới cho dự án thử nghiệm.

  2. Sự cố 02

    Tin rằng “có AI thì ngôn ngữ nào cũng như nhau”.

    Triệu chứng

    AI viết được, nhưng chất lượng, tốc độ và khả năng tự kiểm chứng khác nhau đáng kể giữa các hệ sinh thái.

    Cách tránh

    Đánh giá thêm tiêu chí “AI quen tay” và “có kiểm tra kiểu” khi chọn.

  3. Sự cố 03

    Trộn quá nhiều ngôn ngữ và framework.

    Triệu chứng

    Frontend một kiểu, backend một kiểu, script tự động một kiểu nữa. Mỗi thứ thêm vào là thêm thứ phải bảo trì.

    Cách tránh

    Giữ số lượng ngôn ngữ tối thiểu; chỉ thêm khi có lý do rõ ràng và ghi lại.

  4. Sự cố 04

    Không ghi rõ phiên bản cho agent.

    Triệu chứng

    Agent trộn cách viết của phiên bản cũ và mới, sinh lỗi khó hiểu.

    Cách tránh

    Ghi phiên bản chính và quy ước bắt buộc trong file hướng dẫn agent; yêu cầu agent tra tài liệu chính thức cho tính năng mới.

  5. Sự cố 05

    Làm app native khi chưa cần.

    Triệu chứng

    Làm riêng app iPhone và Android tốn gấp đôi công sức, trong khi nhân viên chỉ cần mở web trên điện thoại.

    Cách tránh

    Bắt đầu bằng web responsive; chỉ làm app khi có nhu cầu thật (thông báo đẩy phức tạp, dùng camera chuyên sâu, hoạt động ngoại tuyến).

Checklist

Phiếu nghiệm thu

Bài tập thực hành

  1. Bài 1

    Cơ bản

    Phân loại

    Xếp các tên sau vào nhóm ngôn ngữ, thư viện, framework, runtime, dịch vụ nền tảng: TypeScript, Python, React, Next.js, Django, Node.js, Zod, Supabase, Vercel, Flutter, Swift, Laravel.

    Kết quả mong đợi

    Ngôn ngữ: TypeScript, Python, Swift. Thư viện: React, Zod. Framework: Next.js, Django, Laravel, Flutter (bộ công cụ/framework giao diện viết bằng Dart). Runtime: Node.js. Dịch vụ nền tảng: Supabase, Vercel.

  2. Bài 2

    Cơ bản

    Tìm hiểu một phần mềm bạn đang dùng

    Hỏi nhà cung cấp phần mềm bán hàng hoặc website hiện tại của bạn (hoặc tự tìm hiểu): nó được viết bằng ngôn ngữ, framework gì? Áp bảy câu hỏi tiêu chí lên lựa chọn đó.

    Kết quả mong đợi

    Một đoạn ngắn đánh giá điểm mạnh, điểm yếu, đặc biệt là câu “nếu nhà cung cấp ngừng hỗ trợ, tôi có thể tìm người khác tiếp quản không?”.

  3. Bài 3

    Nâng cao

    Viết bản ghi quyết định của riêng bạn

    Dùng Prompt mẫu 1 để so sánh 2–3 phương án cho dự án của bạn. Sau đó viết một bản ghi quyết định theo mẫu của chị Lan: bối cảnh, quyết định, lý do, đánh đổi chấp nhận.

    Kết quả mong đợi

    Một văn bản dưới một trang, đủ để người khác (hoặc agent) hiểu vì sao dự án dùng công nghệ này.

Thuật ngữ trong bài

Ngôn ngữ lập trình
“Thứ tiếng” để viết chỉ dẫn cho máy
Thư viện (library)
Bộ code mua sẵn, bạn gọi khi cần
Framework
Khung làm việc có sẵn cấu trúc và quy ước; nó gọi code của bạn
Runtime
Môi trường trực tiếp chạy code (trình duyệt, Node.js)
Quy ước (convention)
Cách làm chuẩn mà framework/cộng đồng thống nhất
Native
App viết riêng cho từng hệ điều hành
Cross-platform
Viết một lần, chạy nhiều nền tảng
Build
Bước chuẩn bị (kiểm tra, chuyển đổi, đóng gói) trước khi chạy
SDK
Bộ công cụ chính thức để dùng một dịch vụ từ code
Knowledge cutoff
Ngày cắt kiến thức của mô hình AI
App Router / Pages Router
Hai cách tổ chức trang trong Next.js (mới / cũ)

Đọc thêm

Nghiệm thu tờ 01-05

Đọc xong và tự kiểm theo phiếu nghiệm thu, rồi đánh dấu tờ này.

Tác giả
Phú Digital
Đội ngũ PDL Digital — triển khai website, giải pháp AI và digital marketing cho doanh nghiệp.
Tư vấn 1:1

Muốn dựng phần mềm riêng cho doanh nghiệp của bạn?

Kỹ sư PDL cùng bạn chọn bước đầu tiên phù hợp — phản hồi trong giờ làm việc (T2–T7, 8h–18h).

<script src="https://cdn.jsdelivr.net/npm/page-flip/dist/js/page-flip.browser.js"></script>

<div id="container-flipbook" style="display:flex; justify-content:center;">
    <div id="my-flipbook">
       <div class="page"> <img src="https://pdl.vn/wp-content/uploads/2025/05/AI-Google-Search.jpg" /> </div>
       <div class="page"> <img src="https://pdl.vn/wp-content/uploads/2025/05/wearable-tech-advertising.jpg" /> </div>
       <div class="page"> <img src="https://pdl.vn/wp-content/uploads/2025/05/multimodal-embeddings-digital-marketing.jpg" /> </div>
    </div>
</div>
#my-flipbook {
    box-shadow: 0 0 20px rgba(0,0,0,0.2);
    margin: 20px auto;
    background-color: #f0f0f0;
}

.page {
    background-color: white;
    overflow: hidden;
}

.page img {
    width: 100%;
    height: 100%;
    object-fit: cover; /* Giúp ảnh vừa vặn trang sách */
}
// Đảm bảo thư viện đã sẵn sàng
function initFlipbook() {
    const el = document.getElementById("my-flipbook");
    if (!el || !window.St) return; // Nếu chưa thấy thư viện St thì thoát

    const pageFlip = new St.PageFlip(el, {
        width: 550,
        height: 733,
        size: "stretch",
        minWidth: 315,
        maxWidth: 1000,
        minHeight: 420,
        maxHeight: 1350,
        showCover: true,
        maxShadowOpacity: 0.5,
    });

    pageFlip.loadFromHTML(document.querySelectorAll(".page"));
}

// Chạy khởi tạo
if (document.readyState === 'complete') {
    initFlipbook();
} else {
    window.addEventListener('load', initFlipbook);
}
PDL · Tư vấn 1:1

Nhận tư vấn
miễn phí

Để lại thông tin, chuyên viên PDL sẽ liên hệ để hiểu nhu cầu và đề xuất giải pháp phù hợp ngân sách của bạn.

  • Phân tích nhanh hiện trạng website, quảng cáo, kênh bán hàng
  • Đề xuất lộ trình & báo giá minh bạch, rõ từng hạng mục
  • Không ràng buộc: nghe tư vấn xong mới quyết định
Giờ làm việc T2–T7 · 08:00–18:00

Chỉ mất khoảng 30 giây

Bạn cần tư vấn về

🔒 Thông tin được bảo mật, chỉ dùng để PDL liên hệ tư vấn.