Dziennik programisty || Tydzień 87
📄

Dziennik programisty || Tydzień 87

notion image

Kolejny odcinek z serii „Mój plugin i analiza działania IntelliJ IDEA 🙂

🔹 Problem:

Chcę złapać sytuację, gdy w ciele pętli (np. for) pojawia się wywołanie loggera. To dobry kandydat do ostrzeżenia. Logowanie w ciasnej pętli potrafi zabić wydajność.

🔹 PsiStatement:

To każdy pojedynczy statement w kodzie. Coś, co kończy się średnikiem albo jest blokiem {...}. Zatem, każda instrukcja, pętla, if, return. Wszystko to statementy.

Dzięki temu mogę prosić Intelij „przeskanuj mi tylko ciało tej pętli, nie resztę kodu”. Dla IntelliJ pętla for to węzeł PsiForStatement, a jego wnętrze to PsiStatement body.

🔹 PsiMethodCallExpression:

To moment, w którym kod coś wywołuje, np. metodę logger.info().

Mogę więc zapytać: "jaką metodę wywołujesz (info)? I na czym (logger)?”

 

🔍 Gdy uruchamiam moją inspekcję:

1️⃣ IntelliJ odwiedza każdą pętlę (np. PsiForStatement)

2️⃣ Z jej ciała (PsiStatement) wyciąga wszystkie wywołania metod (PsiMethodCallExpression)

3️⃣ Jeśli znajdzie logowanie (np. INFO), wtedy podkreśla pętlę i mówi „Ziomuś, może to zbyt częste logowanie... skoro tak być musi, to może zmienimy na DEBUG?

Fajnie taką strukturę można podejrzeć używając pluginu PSI Viewer 😉

notion image

Mój tygodniowy postęp


🚀 Kontynuuję tworzenie mojego plugina do Intellij

🚀 Implementacja endpointu logowania z mechanizmem Keycloaka w
🚀
Spring Boot Mailing System

🚀Zacząłem pokrywanie testami rejestracji i logowania użytkowników w moim

Kolejny tydzień (plan)


🚀 Kolejna funkacjonalność do wtyczki

🚀 Kontynuacja testowania w