Bỏ qua để đến nội dung

Sinh tài liệu tự động

Trong nhiều dự án, tài liệu mô tả database là một file Word được viết một lần lúc khởi động dự án — rồi schema tiếp tục tiến hóa còn file Word thì đứng yên. Hackolade Studio tiếp cận theo hướng khác: model chính là nguồn sự thật, tài liệu được sinh tự động từ model. Mỗi lần model thay đổi, bạn chỉ cần bấm generate lại là có bộ tài liệu mới, khớp 100% với thiết kế hiện hành.

Cách sinh tài liệu và các định dạng xuất

Phần tiêu đề “Cách sinh tài liệu và các định dạng xuất”

Mở model rồi vào menu File > Generate Documentation. Hackolade Studio hỗ trợ ba định dạng xuất:

Định dạngKhả dụngPhù hợp khi
PDFMọi editionModel nhỏ; cần file cố định để gửi duyệt, đính kèm hồ sơ
HTMLCác edition thương mại (gồm cả trial 14 ngày)Model cỡ vừa; một file duy nhất tự chứa, mở bằng browser, dễ chia sẻ nội bộ
MarkdownCác edition thương mại (gồm cả trial 14 ngày)Model lớn; ảnh tách thư mục riêng, dễ tùy biến và đưa vào hệ thống docs/wiki của team

Gợi ý chọn định dạng theo cỡ model ở cột cuối là khuyến nghị chính thức từ tài liệu hãng. Ngoài thao tác trong ứng dụng, tính năng này còn gọi được qua CLI (Command-Line Interface) — nghĩa là bạn có thể đưa bước sinh tài liệu vào pipeline tự động, ví dụ CI/CD (Continuous Integration/Continuous Deployment).

Bộ tài liệu bám theo cấu trúc model, gồm ba khối chính:

  1. Tổng quan model — sơ đồ ERD (Entity-Relationship Diagram, sơ đồ thực thể–quan hệ) của toàn model, kèm các property ở cấp model.
  2. Chi tiết từng container — với mỗi container (tùy target, đây có thể là database/schema/collection group…): sơ đồ schema dạng phân cấp, property của container, và từng field với sơ đồ cây con cùng property chi tiết (kiểu dữ liệu, ràng buộc, mô tả…).
  3. Relationship — sơ đồ quan hệ và property của từng relationship.

Nhờ vậy, một người mới vào dự án có thể đọc tài liệu để hiểu cấu trúc dữ liệu từ tổng quan xuống chi tiết từng field, mà không cần mở tool hay xin quyền truy cập database.

Có hai tầng tùy biến:

  • Cấu hình trước khi sinh — vào Tools > Options > Documentation để chọn những section sẽ đưa vào tài liệu, thêm logo công ty vào report, và đặt giới hạn thời gian sinh (hữu ích với model rất lớn).
  • Chọn lọc object khi sinh — ngay trong hộp thoại Generate Documentation, bạn lọc những object cụ thể muốn đưa vào (không nhất thiết xuất toàn bộ model), và chọn hiển thị theo business name hay technical name — xuất bản business name khi tài liệu dành cho nghiệp vụ, technical name khi dành cho đội kỹ thuật.

Giá trị: tài liệu không bao giờ “lỗi thời”

Phần tiêu đề “Giá trị: tài liệu không bao giờ “lỗi thời””

Điểm mấu chốt không nằm ở định dạng đẹp, mà ở chỗ tài liệu là sản phẩm phái sinh của model, không phải một tài liệu sống song song. Khi quy trình của team là “mọi thay đổi schema đều sửa trên model trước”, thì tài liệu sinh ra luôn đúng bằng model tại thời điểm generate. Kết hợp với reverse engineering và so sánh model (xem bài So sánh và merge model), bạn còn kiểm chứng được model có khớp thực tế production hay không — khép kín vòng: thực tế ↔ model ↔ tài liệu.

Với doanh nghiệp Việt Nam đang làm data governance hay chuẩn bị audit, đây là cách rẻ nhất để luôn có sẵn bộ tài liệu data dictionary cập nhật thay vì huy động người ngồi viết lại mỗi quý.

  • Viết tài liệu tay tách rời model. Duy trì một file Word/Excel mô tả schema song song với model nghe có vẻ chủ động, nhưng chỉ sau vài sprint là hai bên lệch nhau và không ai biết bản nào đúng. Hãy dồn mọi mô tả (description, ví dụ, ghi chú nghiệp vụ) vào chính model — tài liệu sinh ra sẽ mang theo tất cả.
  • Sinh tài liệu một lần rồi lưu kho. File PDF xuất từ 6 tháng trước cũng lỗi thời y như file Word viết tay. Nên coi tài liệu là thứ “sinh lại theo nhu cầu” — hoặc tự động hóa qua CLI để mỗi lần model đổi là tài liệu mới được xuất bản.
  • Xuất toàn bộ model cho mọi đối tượng. Người nghiệp vụ không cần 300 trang chi tiết kỹ thuật. Tận dụng bộ lọc object và lựa chọn business name/technical name để xuất đúng lát cắt cho đúng người đọc.
  • Model không có description rồi kỳ vọng tài liệu tự hay. Công cụ chỉ trình bày những gì model có. Đặt chuẩn ngay từ đầu: mỗi entity/attribute khi tạo phải kèm mô tả — chi phí nhỏ ở khâu thiết kế, đổi lại tài liệu đọc được thật sự.

BSD Insight là đối tác triển khai Hackolade tại Việt Nam — liên hệ tư vấn.

Tài liệu đã tự động, bước kế tiếp là đưa model vào vòng cộng tác có kiểm soát: Cộng tác qua Git.

Chia sẻ: