Biên soạn code có thể là một thử thách, vậy thì tại sao không thử một phương pháp đơn giản hơn? Đó là Docs as code.
Tài liệu là một phần thiết yếu trong chu trình phát triển phần mềm. Nó giải thích cách dùng phần mềm và có thể bao gồm cả các hướng dẫn sử dụng, tham chiếu API, cài đặt hướng dẫn và ghi chú phiên bản.
Tự động hóa tài liệu là xu hướng mới nhất vì nó có thể giúp bạn tiết kiệm thời gian, giảm lỗi, đồng thời, đảm bảo tính nhất quán. Duy trì cập nhật tài liệu và cho phép tất cả các bên liên quan đều có thể truy cập nhằm tạo điều kiện hợp tác và cải tiến liên tục.
Docs as code là phương pháp tự động hóa tài liệu, xem tài liệu là code.
Docs as code là gì?
Docs as code là một triết lý phát triển phần mềm, xem tài liệu kỹ thuật là một hình thức của code. Nó gợi ý rằng bạn nên xử lý tài liệu chặt chẽ và giống như mã phần mềm.
Ý tưởng đằng sau docs as code là xem tài liệu giống như một tạo tác hạng nhất của quá trình phát triển, tích hợp nó vào vòng đời phát triển phần mềm. Điều đó có nghĩa tài liệu là một phần không thể thiếu của codebase. Bạn áp dụng cho nó cùng một quy trình kiểm soát phiên bản, tích hợp liên tục và thử nghiệm.
Trong tài liệu thông thường dưới dạng thiết lập mã, bạn viết tài liệu dưới dạng tệp văn bản thuần túy, thường bằng ngôn ngữ đánh dấu đơn giản như Markdown, HTML hoặc reStructuredText. Sau đó, lưu trữ nó trong cùng repository được chọn làm mã nguồn. Điều này giúp việc quản lý và theo dõi các thay đổi đối với cả phần mềm và tài liệu trở nên dễ dàng. Nó cũng giúp đảm bảo rằng tài liệu được cập nhật với phiên bản mã mới nhất.
Tại sao nên dùng tài liệu làm code?
Trước khi áp dụng phương pháp docs as code, tài liệu tách biệt với code, được tạo bằng các công cụ và quá trình khác nhau. Phương pháp lỏng lẻo này thường khiến tài liệu trở nên lỗi thời, thiếu nhất quán với code. Bạn có thể khai thác một số lợi ích bằng cách áp dụng tài liệu làm phương pháp tiếp cận code.
Cải thiện quá trình cộng tác
Docs as code cho phép hợp tác giữa các nhà phát triển, nghiên cứu kỹ thuật và các bên liên quan khác trong quá trình phát triển. Vì repository code chứa tài liệu, thật dễ cho các bên cùng xây dựng và thực hiện thay đổi. Điều này đảm bảo tài liệu chính xác, được cập nhật và toàn diện.
Phương pháp cộng tác tài liệu giúp đảm bảo nó bao gồm tất cả thông tin liên quan và phản ánh chính xác hệ thống phần mềm.
Tự động hóa quy trình và khả năng truy cập
Ưu điểm khác của docs as code là cho phép các công cụ tự động hóa tạo và xuất tài liệu. Một hệ thống build có thể tự động tạo các phiên bản HTML hoặc PDF của tài liệu từ file văn bản thuần túy cho việc xuất nó sang web hoặc cổng tài liệu nội bộ. Điều này giúp nhiều bên liên quan hơn có thể truy cập tài liệu.
Bằng cách tự động hóa quá trình tạo và xuất tài liệu, docs as code giúp giảm thời gian và nỗ lực cần thiết để duy trì cũng như xuất tài liệu. Nó cho phép đội lập trình tập trung vào cải tiến phần mềm.
Kiểm soát phiên bản
Lưu trữ tài liệu trong cùng code repository như phần mềm khiến việc quản lý và theo dõi thay đổi dễ dàng hơn.
Bạn có thể dùng hệ thống kiểm soát phiên bản như Git để theo dõi thay đổi tài liệu và trở lại phiên bản trước đó nếu cần. Điều này giúp đảm bảo tài liệu chính xác và được cập nhật. Bạn có thể theo dõi và kiểm tra các thay đổi.
Một mẫu Docs as Code - Tài liệu là code
Quá trình viết
Quá trình viết là giai đoạn đầu tiên của quá trình code bằng tài liệu. Hầu hết kỹ sư tài liệu và nghiên cứu kỹ thuật đều dùng Markdown, AsciiDoc hoặc HTML đơn giản. Họ viết tài liệu bằng các công cụ như GitBook và Redocly. Chúng đảm bảo một quá trình mượt mà.
Kiểm soát phiên bản cho tài liệu
Tài liệu phát triển khi code phát triển. Bạn sẽ cần một hệ thống kiểm soát phiên bản tinh vi như Git, Plastic SCM hoặc Subversion để theo dõi thay đổi tài liệu cho việc hợp tác và theo dõi phiên bản dễ dàng hơn.
Quá trình xây dựng tài liệu
Quá trình này liên quan tới việc xử lý và biên dịch tài liệu thành các định dạng phân phối của nó như HTML, PDF, EPUB… Quá trình biên soạn tài liệu thường dễ hơn dùng các công cụ tạo trang tĩnh như Hugo, Jekyll.
Lưu trữ và phân bổ tài liệu
Quá trình lưu trữ hay phân phối thường là bước cuối cùng của quá trình code bằng tài liệu. Quá trình này đảm bảo tài liệu được chuyển tới người dùng cuối và có sẵn cho mọi bên liên quan. Bạn có thể dùng các trang GitHub, GitLab hoặc một cổng tùy chỉnh để phân bổ tài liệu trên web.
Triết lý code bằng tài liệu đang cách mạng hóa việc lập trình và quản lý tài liệu kỹ thuật. Hi vọng bài viết giúp bạn hiểu rõ hơn về hình thức này.