simplify huge python projects with AST (abstract syntax tree)

danilovmy


2

Votes

Description:

An overcomplicated project increases development and maintenance time. If a complete redesign is not possible, we can try to distribute the complexity across the existing codebase. The AI assistants can help us only partially, and we should discuss manual methods and tools that can help us. The effectiveness of the proposed ideas will be demonstrated by applying them to large projects from different business areas.


The purpose of this talk is to define the necessary steps for Projects after the initial grow to support successful scalability in future. Every brilliant project reaches a moment in time when developer productivity decreases significantly, this is a normal phase in the project's life with the following symptoms:

  • Exponential growth of required tools technologies and developers
  • Low impact from additional features vs. high development costs

Since it is impossible to avoid the occurrence of this part of the project life, it is necessary to prepare for it in advance to minimize the negative effects.

Preventive actions: - Implementing a Code Style Guide to unify parts of the code base. - Gather opinions on keeping legacy code or a complete refactoring. These will become future milestones on your project roadmap. - Documentation in the form of "What do I do if I die?".

Spreading complexity through separating parts of a project with AST into isolated blocks : - GPT tools, how they can help, and why they can't help. - Abstract syntax tree for identifying and avoiding anti-patterns in the project. - Looking at the structure of modular-monolyth applications if microservices are not a good solution. - Packaging portions of code with AST into separate libraries. - Separating settings.

For each topic, I will give examples of working with large projects. Despite different business types, geographical and social contexts, these projects shows similar architectural mistakes, which will be discussed.

Prerequisites:

Basic Knowlege about architectural patterns

Video URL:

https://www.youtube.com/watch?v=lSZW0ZMVtk8

Content URLs:

Slides

Repository

Speaker Info:

Python/Django Senior Engineer, Solution Architect, DevRel and Tech Speaker.

I start my career as an embedded systems programmer in 1997, and in recent years have grown to CTO. Through many successful projects, I gained a robust understanding of various software development paradigms. In last 10 years as a code tutor and mentor , I 've got three times the Award 'Super Mentor in Engineering'

Speaker Links:

linkedin

Repository

Section: Python in Web and Applications
Type: Talk
Target Audience: Advanced
Last Updated: