Back to posts

Think Like a Developer #2: Pattern Recognition — "Đừng phát minh lại bánh xe"

10 tháng 3, 2026 687 views Administrator
Think Like a Developer #2: Pattern Recognition — "Đừng phát minh lại bánh xe"

Bạn muốn làm app đặt lịch khám bác sĩ. Bạn ngồi mô tả chi tiết cho AI: bệnh nhân chọn bác sĩ, chọn ngày giờ, điền thông tin cá nhân, nhận xác nhận qua email, bác sĩ thấy lịch hẹn trong dashboard...

Bạn viết prompt dài 3 đoạn. AI làm ra cái gì đó. Chạy thử thì UI lộn xộn, flow không đúng, bạn lại sửa, lại prompt, lại chờ...

Giờ mình nói cho bạn một sự thật: app đặt lịch khám bác sĩ của bạn giống 90% với app đặt lịch cắt tóc.

Nghĩ lại xem. Cả hai đều có: người dùng chọn dịch vụ, chọn người phục vụ, chọn ngày giờ trống, điền thông tin, xác nhận, nhận thông báo. Khác nhau ở đâu? Chỉ khác ở cái tên. "Bác sĩ" thành "thợ cắt tóc". "Khám" thành "cắt tóc". Còn lại, y hệt.

Và không chỉ 2 cái này. App đặt lịch khám, đặt lịch cắt tóc, đặt lịch sửa xe, đặt phòng họp, đặt sân bóng... tất cả đều là cùng MỘT pattern: Booking System.

Developer biết điều này. Người no-code thì không. Và đó là lý do bạn mất 3 ngày vật lộn với thứ mà developer nhìn vào 5 giây là biết nó là gì.


Developer nhìn app khác bạn

Khi bạn nhìn Grab, bạn thấy "app gọi xe". Khi developer nhìn Grab, họ thấy: một cái form nhập liệu (điểm đón, điểm đến), một hệ thống matching (ghép khách với tài xế), real-time tracking (bản đồ), payment system (thanh toán), notification system (thông báo), và rating system (đánh giá).

Mỗi thứ đó là một pattern. Và mỗi pattern đó xuất hiện trong hàng trăm app khác nhau.

Form nhập liệu? Có ở khắp nơi. Đăng ký tài khoản là form. Đặt hàng là form. Gửi feedback là form. Tạo bài viết là form.

Real-time tracking? Grab dùng để theo dõi tài xế. App giao hàng dùng để theo dõi shipper. App fitness dùng để theo dõi quãng đường chạy.

Rating system? Grab cho đánh giá tài xế. Shopee cho đánh giá sản phẩm. Airbnb cho đánh giá chỗ ở.

Developer không nghĩ "tôi đang build app gọi xe". Developer nghĩ "tôi đang ghép mấy cái pattern lại với nhau: form + matching + tracking + payment + notification + rating."

Và khi bạn biết nghĩ như vậy, bạn sẽ prompt AI tốt hơn gấp nhiều lần.


10 pattern cơ bản mà 90% app đều dùng

Mình gọi đây là "từ điển pattern". Bạn không cần nhớ hết. Chỉ cần biết chúng tồn tại. Khi nào cần, mở ra tra.

1. CRUD (Create, Read, Update, Delete) Tạo, đọc, sửa, xóa. Pattern cơ bản nhất. Blog có bài viết? CRUD. Todo list? CRUD. Quản lý sản phẩm? CRUD. Hầu hết mọi thứ trong phần mềm đều bắt đầu từ CRUD.

2. Authentication (Auth) Đăng ký, đăng nhập, quên mật khẩu, đăng nhập bằng Google/Facebook. Gần như mọi app đều cần cái này.

3. Dashboard Trang tổng hợp thông tin: biểu đồ, số liệu, thống kê. Admin panel của shop online? Dashboard. Trang quản lý của SaaS? Dashboard.

4. Form + Validation Người dùng nhập thông tin, hệ thống kiểm tra đúng sai. Đặt hàng, đăng ký, gửi đơn, liên hệ... tất cả đều là form.

5. List + Filter + Search Danh sách có lọc và tìm kiếm. Danh sách sản phẩm, danh sách bài viết, danh sách user... Ở đâu cũng có.

6. Booking/Scheduling Đặt lịch, chọn ngày giờ, xác nhận. Khám bác sĩ, cắt tóc, đặt phòng, đặt sân. Cùng một pattern.

7. Chat/Messaging Nhắn tin real-time giữa 2 hoặc nhiều người. Messenger, Zalo, chat hỗ trợ khách hàng, chat trong app... cùng một gốc.

8. Notification System Gửi thông báo: email, push notification, in-app notification. Có đơn hàng mới? Thông báo. Có tin nhắn? Thông báo. Hết hạn? Thông báo.

9. Payment/Checkout Thanh toán: chọn sản phẩm, tính tổng, nhập thông tin thanh toán, xác nhận. Mua hàng online, đóng phí dịch vụ, nạp tiền... cùng flow.

10. File Upload + Media Upload ảnh, video, tài liệu. Profile picture, đính kèm file trong chat, upload sản phẩm... pattern giống nhau.


Bài tập: Nhìn ra pattern trong app quen thuộc

Lấy 5 app bạn dùng hàng ngày. Với mỗi app, thử liệt kê xem nó dùng những pattern nào từ danh sách trên.

Ví dụ:

Shopee = Auth + CRUD (sản phẩm) + List/Filter/Search + Cart (biến thể CRUD) + Payment + Notification + Chat + Rating + File Upload

Grab = Auth + Form (nhập điểm đón/đến) + Matching (pattern riêng) + Tracking + Payment + Notification + Rating + Chat

Facebook = Auth + CRUD (post) + List (newsfeed) + Chat + Notification + File Upload + Reaction (biến thể Rating)

Bạn sẽ bắt đầu thấy: app nào cũng là tổ hợp của vài pattern cơ bản. Không có gì mới dưới ánh mặt trời.


Vậy thì điều này giúp gì cho việc prompt AI?

Rất nhiều.

Thay vì prompt thế này:

"Tôi muốn làm một app quản lý phòng khám. Bệnh nhân có thể đăng ký tài khoản, đăng nhập, xem danh sách bác sĩ, chọn bác sĩ, chọn ngày giờ khám, điền thông tin triệu chứng, nhận xác nhận qua email. Bác sĩ đăng nhập vào thấy lịch hẹn của mình, có thể xác nhận hoặc từ chối. Admin quản lý tất cả..."

Bạn prompt thế này:

"Tôi muốn build một Booking System cho phòng khám. Gồm các pattern: Auth (cho bệnh nhân, bác sĩ, admin), CRUD cho thông tin bác sĩ, Scheduling system cho đặt lịch khám, Notification gửi email xác nhận, và Dashboard cho admin. Hãy bắt đầu với phần Auth và CRUD bác sĩ trước."

Cách thứ hai ngắn hơn. Rõ hơn. Và quan trọng nhất: AI hiểu đúng ý bạn ngay từ đầu vì bạn đang nói đúng ngôn ngữ mà nó được train.

Khi bạn nói "Booking System", AI biết ngay đó là gì. Nó đã thấy hàng nghìn booking system trong dữ liệu training. Nó biết cần gì: calendar view, time slot management, confirmation flow...

Khi bạn nói "CRUD cho thông tin bác sĩ", AI biết ngay: tạo form thêm bác sĩ, hiển thị danh sách, cho phép sửa và xóa.

Bạn không cần mô tả từng chi tiết. Bạn chỉ cần gọi tên đúng pattern. AI sẽ fill in the blanks.


Template prompt dùng pattern

Đây là template bạn có thể dùng cho bất kỳ ý tưởng nào:

"Tôi muốn build [mô tả ngắn app]. App này sử dụng các pattern sau: [liệt kê pattern]. Hãy bắt đầu với [pattern ưu tiên] trước. Giữ mỗi pattern đơn giản nhất có thể."

Ví dụ khác:

"Tôi muốn build app quản lý đội nhóm cho startup nhỏ. Pattern: Auth (email login), CRUD cho task, Dashboard thống kê tiến độ, Notification khi task được assign. Bắt đầu với Auth và CRUD task trước."

Hoặc:

"Tôi muốn build marketplace bán hàng handmade. Pattern: Auth, CRUD sản phẩm (seller), List/Filter/Search (buyer), Cart + Payment, Chat giữa buyer và seller, Rating sau khi mua. Bắt đầu với CRUD sản phẩm và List hiển thị."

Bạn thấy không? Khi dùng pattern, prompt ngắn lại, rõ ràng hơn, và AI làm chính xác hơn.


Kết hợp với bài 1: Decomposition + Pattern Recognition

Ở bài trước, bạn học cách chia nhỏ ý tưởng thành các phần. Bài này bạn học cách nhận diện mỗi phần đó thuộc pattern nào.

Flow hoàn chỉnh:

  1. Có ý tưởng app

  2. Decomposition: chia thành các phần nhỏ (bài 1)

  3. Pattern Recognition: mỗi phần nhỏ đó là pattern gì? (bài 2)

  4. Prompt AI theo từng pattern, từng phần một

Ví dụ: Ý tưởng "app cho thuê đồ giữa hàng xóm"

Bước 1 (Decomposition): Đăng ký/đăng nhập, đăng đồ cho thuê, tìm đồ cần thuê, đặt thuê, chat trao đổi, thanh toán, đánh giá

Bước 2 (Pattern Recognition): Auth, CRUD (đồ cho thuê), List/Filter/Search, Booking, Chat, Payment, Rating

Bước 3: Prompt AI từng phần. Bắt đầu với Auth + CRUD. Xong rồi mới tới List/Search. Rồi Booking. Rồi Chat...

Mỗi bước nhỏ. Mỗi pattern rõ ràng. AI xử lý chính xác.


Thử ngay

Lấy ý tưởng app bạn đang muốn build (hoặc bất kỳ ý tưởng nào). Làm 3 bước:

  1. Liệt kê tất cả tính năng (decomposition)

  2. Với mỗi tính năng, gán pattern tương ứng từ danh sách 10 pattern

  3. Viết prompt cho AI theo template ở trên

Nếu bạn làm xong, share kết quả ở comment. Mình sẽ review và góp ý.


Bài tiếp theo: Abstraction — "Bỏ bớt đi, giữ lại cái quan trọng." Bạn sẽ học cách nói chuyện với AI ở đúng level, không quá chi tiết, không quá mơ hồ.