Analyzing production code with AI

Advanced AI-Assisted Coding for Developers

Thalia Barrera

AI Engineering Curriculum Manager, DataCamp

Beyond code generation

nanobanana: full: analyzing production code with AI

Advanced AI-Assisted Coding for Developers

Course overview

nanobanana: half: developer at desk with multiple monitors

 

During this course, you will learn to:

  • Perform AI-based code analysis for production code
  • Apply AI-assisted testing and security
  • Use AI for software design and collaboration
Advanced AI-Assisted Coding for Developers

The scenario: Wayfarer Labs

nanobanana: half: tourism startup office with world maps

 

  • 💻 You are a software developer at Wayfarer Labs
  • 🌎 A tourism startup building a mobility platform
  • 🔎 Your task: find an open-source analytics tool
Advanced AI-Assisted Coding for Developers

Discovering Atlas

 

atlas-ch1.png

 

Key questions before adopting:

  • Is it maintainable?
  • Is it reliable?
  • Is it a solid long-term addition?

 

🤖 AI can help accelerate and systematize the evaluation of code!

Advanced AI-Assisted Coding for Developers

Understanding a new repository

 

nanobanana: full: AI guiding exploration of a new repository

Advanced AI-Assisted Coding for Developers

Structured prompting for codebase orientation

prompt1-ch1.png

Advanced AI-Assisted Coding for Developers
Advanced AI-Assisted Coding for Developers

Structured prompting for codebase orientation

 

atlas-command.png

Advanced AI-Assisted Coding for Developers

 

🤖 Static analysis prompt:

The following repository contains a Python analytics toolbox called Atlas, intended for use in a production environment.

Assume I have access to a Unix-like system and can install common open-source tools.

I want to perform a static analysis of this codebase without executing it.

 

Your goal is to:

  • Recommend appropriate static analysis tools for this project
  • Explain what each tool measures and why it is relevant
  • Provide concrete commands to run the analysis
  • Explain how to interpret the key results
Advanced AI-Assisted Coding for Developers
Advanced AI-Assisted Coding for Developers

AI-guided dynamic analysis

nanobanana: full: dynamic analysis profiling

Advanced AI-Assisted Coding for Developers

Assessing code quality with AI

 

🤖 Maintainability prompt:

Analyze the codebase for maintainability concerns: identify overloaded modules, functions with blurred responsibilities, and areas where a single change would require edits across multiple files.

 

Maintainability issues:

  • Overloaded modules
  • Blurred responsibilities
Advanced AI-Assisted Coding for Developers

Complexity and technical debt

 

🤖 Complexity prompt:

Identify areas of high logical complexity, focusing on long functions, nested conditionals, and branching.

Complexity indicators:

  • Long functions
  • Nested conditionals
  • High branching

 

🤖 Technical debt prompt:

Look for signs of technical debt, such as TODOs, duplicated logic, or legacy patterns.

Technical debt signals:

  • TODOs and FIXMEs
  • Duplicated logic
  • Legacy patterns
Advanced AI-Assisted Coding for Developers

Evaluation conclusion

 

Verdict on Atlas:

  • ✅ Well-structured codebase
  • ✅ Reasonable to adopt
  • 👀 Address complexity issues first
  • 👀 Tackle technical debt
Advanced AI-Assisted Coding for Developers

AI-assisted refactoring

 

code-changes-ch1.png

 

AI can also helps us:

  • Refactor focusing on high-impact changes
  • Propose patches
Advanced AI-Assisted Coding for Developers

Important reminder

nanobanana: half: developer reviewing AI suggestions critically

 

AI is not a replacement for engineering judgment

  • It can make mistakes
  • It can miss context
  • It can hallucinate

✔ Used correctly, it accelerates understanding and helps us make better coding decisions

Advanced AI-Assisted Coding for Developers

Let's practice!

Advanced AI-Assisted Coding for Developers

Preparing Video For Download...