Quản lý phụ thuộc với AI

Lập trình hỗ trợ bởi AI nâng cao cho nhà phát triển

Thalia Barrera

AI Engineering Curriculum Manager, DataCamp

Vấn đề

Hai máy tính cho kết quả khác nhau

 

 

  • ✅ Atlas chạy trên máy tôi
  • ❌ Cài đặt lỗi trên máy chủ production
  • 🔀 Cùng mã, kết quả khác
Lập trình hỗ trợ bởi AI nâng cao cho nhà phát triển

Xung đột phụ thuộc

 

Sơ đồ xung đột phụ thuộc

 

  • Atlas phụ thuộc vào nhiều thư viện
  • Môi trường không tái tạo được
  • Gọi là xung đột phụ thuộc
Lập trình hỗ trợ bởi AI nâng cao cho nhà phát triển

AI phân tích lỗi

Lỗi cài đặt:

installation-error2.png

🤖 Gợi ý chẩn đoán ngắn:

Đây là đặc tả phụ thuộc và lỗi cài đặt của tôi. Giải thích nguyên nhân gốc của xung đột phiên bản.

Lập trình hỗ trợ bởi AI nâng cao cho nhà phát triển
Lập trình hỗ trợ bởi AI nâng cao cho nhà phát triển

Môi trường có thể tái tạo

 

  • 📦 Một lệnh tạo môi trường chính xác
  • 🤖 AI có thể giúp tạo lệnh thiết lập
  • 💻 Môi trường nhất quán giữa đồng nghiệp và máy khác nhau

Môi trường có thể tái tạo

Lập trình hỗ trợ bởi AI nâng cao cho nhà phát triển

Tạo lệnh thiết lập

🤖 Gợi ý thiết lập có thể tái tạo:

Với cấu trúc dự án này, hãy đề xuất thiết lập môi trường Python có thể tái tạo bằng pip-tools. Tạo đúng tệp và lệnh để tạo môi trường, khóa phụ thuộc và cài đặt xác định. Giải thích cách dùng môi trường ảo trong README.md của dự án.

Phản hồi của mô hình: ai-virtual-env.png

Lập trình hỗ trợ bởi AI nâng cao cho nhà phát triển

Phụ thuộc bắc cầu

Sơ đồ phụ thuộc bắc cầu

 

  • 📦 Bộ công cụ kéo theo nhiều gói
  • ❗ Thư viện dễ tổn thương kéo gián tiếp: phụ thuộc bắc cầu

 

  • ✔ Phát hiện vấn đề bằng công cụ kiểm toán
  • 🤖 AI diễn giải báo cáo, gợi ý phiên bản an toàn hơn, và nêu thay đổi mã
Lập trình hỗ trợ bởi AI nâng cao cho nhà phát triển

Phụ thuộc dễ bảo trì

🤖 Gợi ý kiểm toán phụ thuộc:

Với kho Python này, tôi muốn kiểm toán khả năng bảo trì và tuân thủ giấy phép của phụ thuộc.

Tạo lệnh sinh báo cáo giấy phép JSON cho môi trường Python đang hoạt động, gồm URL gói và tệp giấy phép, và ghi vào reports/licenses.json.

  • ✔ Được duy trì tích cực = rủi ro thấp hơn

 

Phản hồi của AI: ai-licenses.png

Lập trình hỗ trợ bởi AI nâng cao cho nhà phát triển

Xem báo cáo

Gợi ý của AI: ai-licenses-command.png

Báo cáo giấy phép: licenses-output.png

Lập trình hỗ trợ bởi AI nâng cao cho nhà phát triển

AI đề xuất thay thế

🤖 Gợi ý về phương án thay thế:

Đây là reports/licenses.json từ pip-licenses chúng ta vừa tạo.

Tóm tắt kết quả trong bảng ngắn gồm: gói, phiên bản, giấy phép và mức rủi ro cho mục đích thương mại. Gắn cờ mục bất thường, không rõ, hoặc thiếu giấy phép.

Đề xuất một phương án an toàn hơn cho phụ thuộc rủi ro cao nhất.

Phản hồi của AI: models-risk.png

Lập trình hỗ trợ bởi AI nâng cao cho nhà phát triển

Tự động hóa thiết lập môi trường

Luồng tự động hóa thiết lập môi trường

 

 

  • 💻 Thiết lập một lệnh cho dev mới
  • ✅ CI xác thực môi trường mỗi thay đổi
Lập trình hỗ trợ bởi AI nâng cao cho nhà phát triển

Một phần quy trình hằng ngày

ai-ci-licenses-emergency.png

Lập trình hỗ trợ bởi AI nâng cao cho nhà phát triển

Ayo berlatih!

Lập trình hỗ trợ bởi AI nâng cao cho nhà phát triển

Preparing Video For Download...