Chuyển đến nội dung
MINH VO Ghi chép từ công việc
của một kỹ sư tại Việt Nam
Cơ bản12 phút đọc

Chọn kỹ năng tiếp theo từ điều dự án đang cần

Lập bản đồ phụ thuộc cho ứng dụng hóa đơn, chọn kỹ năng đang chặn tính năng và kiểm chứng từng bước bằng bằng chứng cụ thể.

Tranh màu nước vẽ những cuốn sổ, một quyển sổ mở và bút chì trên nền màu kem

Hãy chọn kỹ năng tiếp theo giúp giải đáp một câu hỏi thực sự đang cản trở dự án bạn muốn xây. Tôi thích quy tắc đó hơn việc bắt đầu từ lộ trình dài nhất tìm được. Bản đồ phụ thuộc giúp phân biệt điều kiện cần học trước với một chủ đề lân cận thú vị, nhất là khi dự án cùng lúc chạm tới frontend, backend, cloud và AI.

Lộ trình có thể gợi ý môn học hữu ích. Nó không biết bạn đã hiểu giả định nào hay phần nào của tính năng hiện tại đang bị kẹt. Bài thực hành dưới đây dùng ứng dụng sắp xếp hóa đơn giả định để giữ các quan hệ phụ thuộc cụ thể.

Viết kết quả mong muốn bằng hành vi

Giả sử bản đầu cho phép người dùng đã đăng nhập tải lên hóa đơn riêng tư và xem lại trên thiết bị khác. Câu này hữu ích hơn “học full stack” vì bạn có thể hỏi điều gì phải đúng để nó hoạt động.

Trình duyệt cần cách tải hóa đơn lên và hiển thị kết quả. Máy chủ cần nhận diện người gọi. Nơi lưu trữ cần giữ hóa đơn cùng thông tin chủ sở hữu. Lần đọc sau phải thực thi quy tắc sở hữu đó. Môi trường triển khai cần cấu hình và kết nối mạng mà không đưa thông tin xác thực vào mã gửi xuống trình duyệt.

Bài tổng quan HTTP của MDN là tài liệu hữu ích cho ranh giới yêu cầu và phản hồi. Các khuyến nghị AWS IAM đưa ra ví dụ cụ thể trên cloud về danh tính và cấp quyền tối thiểu cần thiết. Chi tiết IAM phụ thuộc nhà cung cấp; câu hỏi danh tính nào được phép làm việc gì có phạm vi rộng hơn.

Vẽ quan hệ phụ thuộc bằng câu hỏi

Tạo một nút cho mỗi câu hỏi bạn chưa trả lời được. Sau đó nối câu hỏi với điều kiện cần có trước. Chẳng hạn, muốn hiểu một yêu cầu được đọc hóa đơn nào, phải biết máy chủ nhận diện người dùng bằng cách nào. Muốn chọn quyền lưu trữ, phải biết thành phần máy chủ nào truy cập nơi lưu trữ.

Bản đồ nhỏ có thể chứa những quan hệ sau:

Câu hỏiĐiều cần biết trước
Máy chủ nhận diện người gọi thế nào?Cách ứng dụng xác thực người dùng
Người gọi có được xem hóa đơn này không?Danh tính người gọi và thông tin chủ sở hữu đã lưu
Dịch vụ nào được truy cập hóa đơn lưu trữ?Ranh giới triển khai và thao tác lưu trữ đã chọn
Trình duyệt nên hiển thị gì sau lỗi?Hành vi lỗi và thử lại của endpoint

Đừng biến mọi thuật ngữ lạ thành điều kiện tiên quyết. Bạn có thể học một luồng xác thực mà chưa nghiên cứu mọi giao thức danh tính. Có thể dùng cơ sở dữ liệu cục bộ trước khi quyết định vận hành cơ sở dữ liệu cloud ra sao. Bản đồ nên làm rõ quan hệ phụ thuộc hữu ích tiếp theo, thay vì chứng minh kỹ thuật phần mềm rộng đến mức nào.

Hành vi hóa đơn riêng tư phụ thuộc vào xử lý yêu cầu, danh tính người gọi và chủ sở hữu đã lưu, từ đó xác định quyền cloud và cách giao diện xử lý lỗiMở ảnh kích thước đầy đủ ↗

Mũi tên thể hiện quan hệ cần biết trong bài thực hành này, không phải thứ tự nghề nghiệp bắt buộc. Người khác có thể đã hiểu danh tính nhưng cần học lưu dữ liệu trước. Một trang công khai chỉ đọc sẽ có bản đồ khác.

Chọn phép thử nhỏ cho nút đầu tiên đang bị chặn

Hình dung giao diện đã chạy với một người dùng cố định trong mã, nhưng bạn chưa giải thích được máy chủ phân biệt hai tài khoản thế nào. Hãy học ranh giới đó tiếp theo. Tạo hai danh tính giả định trong môi trường cục bộ hoặc cô lập và quan sát máy chủ nhận gì ở từng yêu cầu.

Ghi rõ mã định danh mà ứng dụng tin cậy, nguồn tạo ra nó và cách kiểm tra tính hợp lệ. Sau đó thử yêu cầu một hóa đơn thuộc danh tính còn lại. Kết quả mong đợi phải được viết trước khi chạy yêu cầu. Bài tập này kết nối xác thực với phân quyền nhưng vẫn giữ chúng là hai quyết định khác nhau.

Khi giải thích được kết quả, cập nhật bản đồ. Có thể điều chưa rõ tiếp theo là thông tin xác thực của dịch vụ có cho truy cập mọi hóa đơn hay không. Có thể đó là cách giao diện hiển thị khi phiên đăng nhập hết hạn. Chủ đề tiếp theo xuất phát từ khoảng trống đã quan sát được.

Nếu một điều kiện tiên quyết lớn hơn khả năng dự án hiện tại, hãy đơn giản hóa dự án. Bài hóa đơn chỉ chạy cục bộ có thể dạy cách lưu dữ liệu trong khi bạn để danh tính từ xa sang sau. Ghi lại thay đổi phạm vi đó để không mô tả kết quả về sau như một dịch vụ nhiều người dùng an toàn.

Đặt bằng chứng cạnh bản đồ

Nút được đánh dấu “xong” nên trỏ tới thứ cụ thể hơn một bài hướng dẫn đã xem. Giữ lời giải thích ngắn, chuỗi yêu cầu, sơ đồ hoặc bước kiểm tra nghiệm thu. Với nút sở hữu, ví dụ có thể là một lần đọc được chấp nhận và một lần đọc chéo tài khoản bị từ chối, kèm quy tắc tạo ra hai kết quả đó.

Bằng chứng này có phạm vi hẹp. Hai yêu cầu không chứng minh toàn bộ hệ thống an toàn. Chúng cho thấy bạn có áp dụng được quy tắc cụ thể đang học hay không. Bản đồ tốt thể hiện giới hạn đó, thay vì biến dấu tích thành lời khẳng định đã thành thạo.

Giữ danh sách riêng cho các chủ đề thú vị nhưng chưa phải quan hệ phụ thuộc hiện tại. Framework frontend khác, cơ sở dữ liệu vector mới hoặc nền tảng triển khai phức tạp có thể chờ ở đó. Tách sự tò mò khỏi điều kiện cần thiết giúp bạn giữ ý tưởng mà không để nó điều khiển dự án đang làm.

Xem lại bản đồ khi sản phẩm thay đổi

Giả sử bản tiếp theo thêm thư mục hóa đơn dùng chung. Quy tắc sở hữu cũ không còn mô tả toàn bộ sản phẩm. Bạn cần thêm câu hỏi về thành viên, thay đổi quyền và điều xảy ra với màn hình chỉnh sửa đang mở khi quyền bị thu hồi.

Đó là lý do sửa bản đồ, không phải lý do xem bản đầu là vô ích vì chưa đủ mọi thứ. Nó được thiết kế cho mục tiêu hóa đơn riêng tư. Giữ các giả định trước đó, thêm quan hệ phụ thuộc mới và chọn hành vi đầu tiên bạn chưa giải thích được. Bản đồ hữu ích khi giúp quyết định điều tra gì tiếp, kể cả lúc quyết định phù hợp là thu hẹp tính năng.

Phân biệt điều kiện tiên quyết với công cụ mình thích

Bản đồ có thể gây hiểu nhầm nếu coi công cụ yêu thích của bạn là bước bắt buộc. Để thực thi quyền đọc hóa đơn, ứng dụng cần cách nhận diện người gọi và quyết định người đó có được đọc đối tượng yêu cầu không. Nó chưa chắc cần một framework frontend, hệ thống điều phối container hay nhà cung cấp cơ sở dữ liệu cụ thể.

Trước tiên viết quan hệ phụ thuộc dưới dạng khả năng. “Máy chủ xác định được tài khoản đã xác thực” là yêu cầu của ví dụ. Thư viện quản lý phiên đã chọn là một quyết định triển khai. Nếu bản đồ chỉ ghi “học thư viện X” mà không nêu khả năng cần có, bạn có thể nhầm việc thay thư viện với việc giải quyết câu hỏi nền tảng.

Sự phân biệt tương tự áp dụng cho triển khai. Cơ sở dữ liệu được lưu trên dịch vụ hosting, cơ sở dữ liệu cục bộ và dịch vụ lưu trữ được quản lý có yêu cầu vận hành khác nhau. Chọn môi trường giúp nghiên cứu hành vi dự định, rồi ghi rõ mối quan tâm nào của hệ thống thực tế vẫn nằm ngoài bài thực hành.

Làm thử một thứ tự học cụ thể

Giả sử ứng dụng đã có biểu mẫu tải lên hoạt động, nhưng máy chủ gán mọi tệp cho tài khoản cố định trong mã. Bạn cũng muốn tìm kiếm hóa đơn, thêm giao diện mobile và triển khai cloud. Cả bốn hướng đều thú vị, nhưng mức độ khẩn thiết không giống nhau đối với bản phát hành riêng tư có nhiều người dùng.

Việc muốn họcQuan hệ phụ thuộc hiện tạiKết quả ban đầu hữu ích
Nhận diện người gọi phía máy chủĐang chặn khả năng truy cập theo tài khoảnHai danh tính giả định tạo các yêu cầu đã xác thực phân biệt được
Thực thi quyền sở hữu hóa đơnCần danh tính người gọi và chủ sở hữu đã lưuMột lần đọc được phép và một lần đọc chéo tài khoản bị từ chối
Tìm kiếm nội dung hóa đơnCần phạm vi truy cập phù hợp nếu kết quả là riêng tưTruy vấn không tiết lộ tài liệu hoặc đoạn trích của tài khoản khác
Thêm giao diện mobileDùng lại hợp đồng yêu cầu và truy cậpCùng thao tác hợp lệ từ một ứng dụng khách khác
Triển khai cloudBổ sung danh tính của thành phần chạy ứng dụng và kết nối mạngHợp đồng hiện có được kiểm tra với cấu hình triển khai

Với mục tiêu này, nhận diện người gọi là khả năng đầu tiên đang thiếu. Tìm kiếm được xây trước quy tắc sở hữu có thể phải sửa đáng kể, còn giao diện mobile có thể lặp lại cùng cách gọi không an toàn trên thiết bị khác. Thứ tự xuất phát từ hành vi riêng tư đã hứa với người dùng, không phải vì mobile hay tìm kiếm vốn là chủ đề nâng cao hơn.

Đồ thị học ứng dụng hóa đơn đặt danh tính người gọi trước quyền sở hữu, tìm kiếm đúng phạm vi và ứng dụng khách bổ sung; triển khai thêm nhánh danh tính riêng cho thành phần chạy ứng dụngMở ảnh kích thước đầy đủ ↗

Đồ thị cũng cho thấy việc có thể làm độc lập. Bạn có thể học bố cục mobile bằng dữ liệu giả định cục bộ trong khi hợp đồng truy cập API đang được thiết kế. Gọi đúng phần đó là bản thử giao diện cho tới khi nó dùng đường yêu cầu đã kiểm chứng.

Nối các kết quả nhỏ thay vì sưu tập dấu hoàn thành

Sau bài danh tính, đừng đánh dấu đã “thành thạo xác thực”. Giữ bằng chứng yêu cầu cụ thể cùng giả định của nó. Có thể thiết lập cục bộ dùng phiên ngắn hạn nhưng chưa xử lý lúc hết hạn. Như vậy đã đủ hỗ trợ bài sở hữu tiếp theo trong điều kiện đã nêu, còn hết hạn vẫn là trường hợp chưa giải quyết.

Khi quyền sở hữu hoạt động, dùng lại hai tài khoản đó trong bài tìm kiếm. Kết quả tìm kiếm có thể lộ tiêu đề và đoạn trích dù endpoint chi tiết tài liệu đã được bảo vệ. Bằng chứng mới cần cho thấy truy vấn áp dụng đúng phạm vi, chứ không chỉ cho thấy bấm vào kết quả cuối cùng sẽ gặp lỗi truy cập.

Việc dùng lại này tạo tính liên tục cho lộ trình. Mỗi câu hỏi đã giải quyết cung cấp bằng chứng mà câu hỏi tiếp theo cần. Nó cũng làm lộ lỗi hồi quy: sửa phần tìm kiếm làm mất bộ lọc tài khoản có thể vi phạm quy tắc đã thiết lập trước đó, dù tính năng mới có vẻ hoạt động với tài khoản chính.

Đặt kiến thức công cụ trên một nhánh riêng

Đề cương Missing Semester năm 2026 có làm việc dòng lệnh, gỡ lỗi, quản lý phiên bản, đưa mã vào sử dụng và lập trình với tác nhân AI. Đây là ví dụ về chương trình học nêu rõ công cụ phát triển, thay vì giả định người học sẽ tự biết cách dùng. Sự tồn tại của chương trình không có nghĩa mọi bài công cụ phải hoàn thành trước tính năng ứng dụng đầu tiên.

Thêm công cụ vào bản đồ tại nơi nó gỡ một trở ngại thật. Nếu chưa quan sát được yêu cầu hoặc tái hiện lỗi, học công cụ gỡ lỗi liên quan có thể mở đường tiến tiếp. Nếu việc chưa hiểu rõ cách quản lý phiên bản khiến các thử nghiệm khó hoàn tác, một bài Git nhỏ có giá trị ngay. Việc tùy chỉnh trình soạn thảo không liên quan có thể để thành dự án khám phá riêng.

Sửa đồ thị khi phát hiện một quan hệ phụ thuộc không đúng

Bạn có thể phát hiện điều mình dự tính học trước thực ra chưa cần. Chẳng hạn, trình xem hóa đơn đầu tiên có thể dùng API đã xác thực sẵn, cho phép tập trung vào giao diện phản ánh đúng quyền trước khi học sâu danh tính phía máy chủ. Cập nhật bản đồ theo hợp đồng có sẵn đó và nói rõ phần nào đang do hệ thống khác cung cấp.

Bạn cũng có thể tìm ra điều còn thiếu, như quy tắc lưu nguồn trước khi thêm trích xuất văn bản. Thêm nó vì tính năng cần quyết định về nội dung lưu trữ, không phải vì bản đồ cần nhiều ô hơn. Đồ thị phụ thuộc được phép thay đổi khi bằng chứng tốt hơn. Mục đích của nó là chọn hành động tiếp theo có ích, đồng thời giữ rõ giới hạn của ứng dụng hiện tại.

Nguồn tham khảo & đọc thêm

  1. MDN: overview of HTTP
  2. AWS IAM security best practices
  3. MIT Missing Semester 2026 syllabus
← Về trang bài viết

Hình minh họa

100%