- Claude Code tự động khám phá và tài liệu hóa các codebase COBOL kế thừa, tạo ra các tài liệu chi tiết, danh sách công việc và sơ đồ quy trình kinh doanh (Mermaid diagrams) để cung cấp cái nhìn sâu sắc về logic phức tạp.
- Công cụ này sau đó hỗ trợ di chuyển các tính năng cốt lõi của COBOL sang các ngôn ngữ hiện đại như Java, phát triển kế hoạch chi tiết và tạo ra mã Java chuẩn, dễ bảo trì.
- Để đảm bảo độ chính xác, Claude Code thực hiện xác minh từng bit bằng cách sử dụng khung kiểm thử kép, so sánh kết quả đầu ra cuối cùng cũng như các phép tính trung gian, đảm bảo hành vi nhất quán.
Claude Code modernizes a legacy COBOL codebase
- Sử dụng các
tác nhân phụ(sub-agent) của Claude Code cho các tác vụ chuyên biệt như tài liệu hóa và dịch COBOL, cho phép chúng hoạt động song song với các cửa sổ ngữ cảnh riêng biệt. - Kích hoạt
chế độ suy nghĩ(thinking mode) để Claude Code phân tích kiến trúc codebase và tự động tạodanh sách việc cần làmnhằm theo dõi tiến độ tài liệu hóa. - Tận dụng khả năng của Claude Code để tạo
sơ đồ Mermaidvà các tệp bộ nhớ (ví dụ:Catalog.Tex) để trực quan hóa cácquy trình kinh doanh(business workflow) và các phụ thuộc của codebase. - Chuyển sang
chế độ lập kế hoạch(planning mode) trước khi di chuyển để Claude Code xây dựngchiến lược di chuyểntoàn diện, bao gồm cấu trúc dự án, dịch mô hình dữ liệu và lớp IO. - Đảm bảo quá trình chuyển đổi tạo ra
mã Java chuẩn(Idiomatic Java) phù hợp với cácmẫu thiết kế(design patterns) hiện đại,xử lý lỗi(error handling) vàghi nhật ký(logging) để dễ bảo trì. - Triển khai
khung kiểm thử kép(dual test harness) để thực hiệnxác minh(verification)độ trung thực từng bit(bit-for-bit fidelity), so sánh không chỉ kết quả cuối cùng mà còn cả các phép tính trung gian và ghi tệp. - Các kỹ thuật này có
khả năng mở rộng(scalable) để xử lý cáccodebase COBOL kế thừalớn hơn nhiều, với khả năng chạytự chủ(autonomously) trong thời gian dài.
COBOL codebase— codebase COBOLsub-agent— tác nhân phụthinking mode— chế độ suy nghĩbusiness workflow— quy trình kinh doanhMermaid diagrams— sơ đồ Mermaidplanning mode— chế độ lập kế hoạchdual test harness— khung kiểm thử képbit-for-bit fidelity— độ trung thực từng bitIdiomatic Java— Mã Java chuẩnscalable— khả năng mở rộng
Giới thiệu về Hiện đại hóa COBOL với Claude Code
Hãy cùng khám phá cách các nhà phát triển có thể sử dụng Claude Code để hiện đại hóa một COBOL codebase. Để phục vụ demo này, chúng tôi sử dụng Mainframe Modernization Demo Repository của AWS. Đây là một hệ thống quản lý thẻ tín dụng cỡ trung bình với khoảng 100 tệp, bao gồm các chương trình COBOL, copybooks và JCL scripts.
Giai đoạn 1: Khám phá và Tài liệu hóa Codebase
COBOL codebase mẫu của chúng tôi gần như không có tài liệu. Điều này, tất nhiên, rất phổ biến với các codebase kế thừa (legacy codebases) nơi logic kinh doanh quan trọng và yêu cầu quy định được nhúng trong mã không có tài liệu. Các nhà phát triển đã viết mã đã rời khỏi tổ chức từ lâu, và rất khó để thuê các nhà phát triển quen thuộc với COBOL.
Tạo Tác nhân Phụ chuyên biệt và Phân tích Kiến trúc
Chúng tôi đầu tiên tạo một tác nhân phụ (sub-agent) chuyên biệt bằng cách sử dụng lệnh /agent của Claude Code. Đây là chuyên gia tài liệu COBOL và người dịch của chúng tôi. Các tác nhân phụ có thể được Claude Code gọi song song, và chúng hoạt động với các cửa sổ ngữ cảnh (context window) riêng biệt để tránh làm ô nhiễm luồng chính. Chúng tôi đã bật chế độ suy nghĩ (thinking mode) và yêu cầu Claude Code phân tích kiến trúc của codebase. Claude Code đã tạo một danh sách việc cần làm gồm tất cả 94 tệp và theo dõi tiến độ của nó để đảm bảo không có tệp nào được xử lý hai lần và không có gì bị bỏ sót.
Tạo Tài liệu và Sơ đồ Quy trình Kinh doanh Chi tiết
Tài liệu mà Claude tạo ra đã vượt xa các bình luận mã đơn thuần. Ví dụ, hãy xem chương trình tính lãi, CBACT04C. Nó đã trích xuất toàn bộ quy trình kinh doanh (business workflow). Cách chương trình đọc số dư theo danh mục giao dịch, tra cứu lãi suất theo nhóm tài khoản, áp dụng quy tắc kinh doanh cho lãi suất dự phòng, và cập nhật hồ sơ tài khoản. Claude đã thực hiện điều này cho từng tệp, nhưng cũng tạo ra hai tệp bộ nhớ dưới dạng văn bản thuần túy. Catalog.Tex dịch các tên khó hiểu như CBACT04C thành "chương trình xử lý hàng loạt tính lãi". CBACT04C.Tex ánh xạ mọi phụ thuộc bằng cách sử dụng định dạng phân tách bằng dấu gạch đứng (pipe-delimited format) đơn giản. Sử dụng các chỉ mục này, Claude sau đó đã tạo ra các sơ đồ Mermaid, một bản đồ hoàn chỉnh về quy trình xử lý hàng loạt hàng ngày (daily batch processing workflow), cho thấy dữ liệu chảy từ đầu vào giao dịch qua hạch toán, tính lãi, và cuối cùng đến sao kê khách hàng như thế nào.
Khả năng Mở rộng của Quy trình Tài liệu hóa
Trong demo này, Claude Code đã chạy liên tục trong một giờ để soạn thảo hơn 100 trang tài liệu. Claude Code có khả năng chạy tự chủ (autonomously) trong hơn 30 giờ, và các kỹ thuật được sử dụng ở đây có thể mở rộng (scale) cho các codebase lớn hơn rất nhiều.
Giai đoạn 2: Di chuyển và Xác minh Mã
Sau khi đã tài liệu hóa kỹ lưỡng COBOL codebase, chúng tôi yêu cầu Claude di chuyển (migrate) một trong những tính năng cốt lõi của nó sang Java. Chúng tôi đã chuyển sang chế độ lập kế hoạch (planning mode) để đảm bảo Claude sẽ suy nghĩ kỹ về toàn bộ chiến lược di chuyển mà không chỉnh sửa tệp (editing files) quá sớm.
Phát triển Kế hoạch Di chuyển sang Java
Claude đã phân tích chương trình được biết đến với tên gọi CBACT04C và xác định các mẫu COBOL phức tạp như xử lý ngắt dòng (line break processing) và điều phối đa tệp (multi-file coordination). Claude đã phát triển một kế hoạch di chuyển cho tính năng này với năm giai đoạn:
- Tạo
cấu trúc dự án. - Dịch các
mô hình dữ liệutừcopybookssanglớp Java(Java classes). - Xây dựng
lớp IO(IO layer) tương thích vớiđịnh dạng tệpgốc. - Chuyển đổi
logic kinh doanhđồng thời bảo toàn cáchành vi đặc thù của COBOL. - Và cuối cùng, tạo một
khung kiểm thử kép(dual test harness), một sử dụngGNU COBOL 3.2.0chocodebase gốcvà một trongJava 17.
Chuyển đổi Mã COBOL sang Java và Kiểm thử Kép
Mã Java thu được đã vượt xa một bản dịch cú pháp đơn giản. Claude đã tạo ra các lớp Java (Java classes) phù hợp với các mẫu thiết kế (design patterns), xử lý lỗi (error handling) và ghi nhật ký (logging) thích hợp. Mã Java chuẩn (Idiomatic Java) mà một nhóm phát triển hiện đại thực sự sẽ duy trì.
Xác minh Độ chính xác Bit-for-bit
Tiếp theo là xác minh (verification) để đảm bảo rằng mã Java mới hoạt động giống như mã COBOL mà nó thay thế. Chúng tôi đã tạo nhiều tệp dữ liệu kiểm thử và chạy chúng đối với cả COBOL gốc và các chương trình mới. Việc xác minh không chỉ so sánh kết quả đầu ra cuối cùng mà còn so sánh các phép tính trung gian, ghi tệp và chuyển đổi dữ liệu. Kết quả là độ trung thực từng bit (bit-for-bit fidelity) hoàn hảo. Mọi phép tính, quy tắc kinh doanh và trường hợp biên (edge case) đều được bảo toàn.
Kết luận: Nâng cao Hiệu quả Hiện đại hóa
Tất nhiên, ứng dụng demo này nhỏ hơn nhiều so với các legacy COBOL codebases của bạn, nhưng tất cả các kỹ thuật ở đây đều có thể mở rộng (scalable). Claude Code sẽ trao quyền cho các nhà phát triển của bạn để hiện đại hóa codebase với sự tự tin và hiệu quả mà cách đây 12 tháng đơn giản là không thể.
TL;DR
- Claude Code tự động khám phá và tài liệu hóa các codebase COBOL kế thừa, tạo ra các tài liệu chi tiết, danh sách công việc và sơ đồ quy trình kinh doanh (Mermaid diagrams) để cung cấp cái nhìn sâu sắc về logic phức tạp.
- Công cụ này sau đó hỗ trợ di chuyển các tính năng cốt lõi của COBOL sang các ngôn ngữ hiện đại như Java, phát triển kế hoạch chi tiết và tạo ra mã Java chuẩn, dễ bảo trì.
- Để đảm bảo độ chính xác, Claude Code thực hiện xác minh từng bit bằng cách sử dụng khung kiểm thử kép, so sánh kết quả đầu ra cuối cùng cũng như các phép tính trung gian, đảm bảo hành vi nhất quán.
Điểm chính
- Sử dụng các
tác nhân phụ(sub-agent) của Claude Code cho các tác vụ chuyên biệt như tài liệu hóa và dịch COBOL, cho phép chúng hoạt động song song với các cửa sổ ngữ cảnh riêng biệt. - Kích hoạt
chế độ suy nghĩ(thinking mode) để Claude Code phân tích kiến trúc codebase và tự động tạodanh sách việc cần làmnhằm theo dõi tiến độ tài liệu hóa. - Tận dụng khả năng của Claude Code để tạo
sơ đồ Mermaidvà các tệp bộ nhớ (ví dụ:Catalog.Tex) để trực quan hóa cácquy trình kinh doanh(business workflow) và các phụ thuộc của codebase. - Chuyển sang
chế độ lập kế hoạch(planning mode) trước khi di chuyển để Claude Code xây dựngchiến lược di chuyểntoàn diện, bao gồm cấu trúc dự án, dịch mô hình dữ liệu và lớp IO. - Đảm bảo quá trình chuyển đổi tạo ra
mã Java chuẩn(Idiomatic Java) phù hợp với cácmẫu thiết kế(design patterns) hiện đại,xử lý lỗi(error handling) vàghi nhật ký(logging) để dễ bảo trì. - Triển khai
khung kiểm thử kép(dual test harness) để thực hiệnxác minh(verification)độ trung thực từng bit(bit-for-bit fidelity), so sánh không chỉ kết quả cuối cùng mà còn cả các phép tính trung gian và ghi tệp. - Các kỹ thuật này có
khả năng mở rộng(scalable) để xử lý cáccodebase COBOL kế thừalớn hơn nhiều, với khả năng chạytự chủ(autonomously) trong thời gian dài.
Từ vựng
COBOL codebase— codebase COBOLsub-agent— tác nhân phụthinking mode— chế độ suy nghĩbusiness workflow— quy trình kinh doanhMermaid diagrams— sơ đồ Mermaidplanning mode— chế độ lập kế hoạchdual test harness— khung kiểm thử képbit-for-bit fidelity— độ trung thực từng bitIdiomatic Java— Mã Java chuẩnscalable— khả năng mở rộng
Nội dung chi tiết
Giới thiệu về Hiện đại hóa COBOL với Claude Code
Hãy cùng khám phá cách các nhà phát triển có thể sử dụng Claude Code để hiện đại hóa một COBOL codebase. Để phục vụ demo này, chúng tôi sử dụng Mainframe Modernization Demo Repository của AWS. Đây là một hệ thống quản lý thẻ tín dụng cỡ trung bình với khoảng 100 tệp, bao gồm các chương trình COBOL, copybooks và JCL scripts.
Giai đoạn 1: Khám phá và Tài liệu hóa Codebase
COBOL codebase mẫu của chúng tôi gần như không có tài liệu. Điều này, tất nhiên, rất phổ biến với các codebase kế thừa (legacy codebases) nơi logic kinh doanh quan trọng và yêu cầu quy định được nhúng trong mã không có tài liệu. Các nhà phát triển đã viết mã đã rời khỏi tổ chức từ lâu, và rất khó để thuê các nhà phát triển quen thuộc với COBOL.
Tạo Tác nhân Phụ chuyên biệt và Phân tích Kiến trúc
Chúng tôi đầu tiên tạo một tác nhân phụ (sub-agent) chuyên biệt bằng cách sử dụng lệnh /agent của Claude Code. Đây là chuyên gia tài liệu COBOL và người dịch của chúng tôi. Các tác nhân phụ có thể được Claude Code gọi song song, và chúng hoạt động với các cửa sổ ngữ cảnh (context window) riêng biệt để tránh làm ô nhiễm luồng chính. Chúng tôi đã bật chế độ suy nghĩ (thinking mode) và yêu cầu Claude Code phân tích kiến trúc của codebase. Claude Code đã tạo một danh sách việc cần làm gồm tất cả 94 tệp và theo dõi tiến độ của nó để đảm bảo không có tệp nào được xử lý hai lần và không có gì bị bỏ sót.
Tạo Tài liệu và Sơ đồ Quy trình Kinh doanh Chi tiết
Tài liệu mà Claude tạo ra đã vượt xa các bình luận mã đơn thuần. Ví dụ, hãy xem chương trình tính lãi, CBACT04C. Nó đã trích xuất toàn bộ quy trình kinh doanh (business workflow). Cách chương trình đọc số dư theo danh mục giao dịch, tra cứu lãi suất theo nhóm tài khoản, áp dụng quy tắc kinh doanh cho lãi suất dự phòng, và cập nhật hồ sơ tài khoản. Claude đã thực hiện điều này cho từng tệp, nhưng cũng tạo ra hai tệp bộ nhớ dưới dạng văn bản thuần túy. Catalog.Tex dịch các tên khó hiểu như CBACT04C thành "chương trình xử lý hàng loạt tính lãi". CBACT04C.Tex ánh xạ mọi phụ thuộc bằng cách sử dụng định dạng phân tách bằng dấu gạch đứng (pipe-delimited format) đơn giản. Sử dụng các chỉ mục này, Claude sau đó đã tạo ra các sơ đồ Mermaid, một bản đồ hoàn chỉnh về quy trình xử lý hàng loạt hàng ngày (daily batch processing workflow), cho thấy dữ liệu chảy từ đầu vào giao dịch qua hạch toán, tính lãi, và cuối cùng đến sao kê khách hàng như thế nào.
Khả năng Mở rộng của Quy trình Tài liệu hóa
Trong demo này, Claude Code đã chạy liên tục trong một giờ để soạn thảo hơn 100 trang tài liệu. Claude Code có khả năng chạy tự chủ (autonomously) trong hơn 30 giờ, và các kỹ thuật được sử dụng ở đây có thể mở rộng (scale) cho các codebase lớn hơn rất nhiều.
Giai đoạn 2: Di chuyển và Xác minh Mã
Sau khi đã tài liệu hóa kỹ lưỡng COBOL codebase, chúng tôi yêu cầu Claude di chuyển (migrate) một trong những tính năng cốt lõi của nó sang Java. Chúng tôi đã chuyển sang chế độ lập kế hoạch (planning mode) để đảm bảo Claude sẽ suy nghĩ kỹ về toàn bộ chiến lược di chuyển mà không chỉnh sửa tệp (editing files) quá sớm.
Phát triển Kế hoạch Di chuyển sang Java
Claude đã phân tích chương trình được biết đến với tên gọi CBACT04C và xác định các mẫu COBOL phức tạp như xử lý ngắt dòng (line break processing) và điều phối đa tệp (multi-file coordination). Claude đã phát triển một kế hoạch di chuyển cho tính năng này với năm giai đoạn:
- Tạo
cấu trúc dự án. - Dịch các
mô hình dữ liệutừcopybookssanglớp Java(Java classes). - Xây dựng
lớp IO(IO layer) tương thích vớiđịnh dạng tệpgốc. - Chuyển đổi
logic kinh doanhđồng thời bảo toàn cáchành vi đặc thù của COBOL. - Và cuối cùng, tạo một
khung kiểm thử kép(dual test harness), một sử dụngGNU COBOL 3.2.0chocodebase gốcvà một trongJava 17.
Chuyển đổi Mã COBOL sang Java và Kiểm thử Kép
Mã Java thu được đã vượt xa một bản dịch cú pháp đơn giản. Claude đã tạo ra các lớp Java (Java classes) phù hợp với các mẫu thiết kế (design patterns), xử lý lỗi (error handling) và ghi nhật ký (logging) thích hợp. Mã Java chuẩn (Idiomatic Java) mà một nhóm phát triển hiện đại thực sự sẽ duy trì.
Xác minh Độ chính xác Bit-for-bit
Tiếp theo là xác minh (verification) để đảm bảo rằng mã Java mới hoạt động giống như mã COBOL mà nó thay thế. Chúng tôi đã tạo nhiều tệp dữ liệu kiểm thử và chạy chúng đối với cả COBOL gốc và các chương trình mới. Việc xác minh không chỉ so sánh kết quả đầu ra cuối cùng mà còn so sánh các phép tính trung gian, ghi tệp và chuyển đổi dữ liệu. Kết quả là độ trung thực từng bit (bit-for-bit fidelity) hoàn hảo. Mọi phép tính, quy tắc kinh doanh và trường hợp biên (edge case) đều được bảo toàn.
Kết luận: Nâng cao Hiệu quả Hiện đại hóa
Tất nhiên, ứng dụng demo này nhỏ hơn nhiều so với các legacy COBOL codebases của bạn, nhưng tất cả các kỹ thuật ở đây đều có thể mở rộng (scalable). Claude Code sẽ trao quyền cho các nhà phát triển của bạn để hiện đại hóa codebase với sự tự tin và hiệu quả mà cách đây 12 tháng đơn giản là không thể.