Istnieje różnica między „najlepszymi praktykami”, rzeczami, które wiele osób robi z dobrych powodów, a „powszechnymi praktykami”, rzeczami, które wiele osób robi, ponieważ są leniwe i / lub ignoranckie.
Aplikacje i (gorsze) serwery, które muszą być rutynowo restartowane lub ponownie uruchamiane, aby nadal działały poprawnie, są dość powszechne. Ale jest to również wyraźny sygnał, że masz krytyczny błąd.
Dzięki regularnemu ponownemu uruchamianiu aplikacji przez SPO firma ukrywa poważny błąd pod dywan. Jest to niewybaczalne, błąd musi być zakryty i zgnieciony, albo wróci, by cię ugryźć później.
W idealnym przypadku Twoja firma powinna znaleźć lepszego programistę. Niestety może to spowodować sporo pracy przy przepisywaniu dużych fragmentów kodu. Fakt, że deweloper albo uważa, że źle napisany kod jest akceptowalny, albo nie wie wystarczająco, aby rozpoznać objawy błędnego kodu, sugeruje niską jakość kodu. Dobry deweloper będzie konstytucyjnie niezdolny do pozostawienia go w tym stanie.
Biorąc pod uwagę, że możesz nie być w stanie zastąpić programisty, kilka sugestii:
- Sprawdź, czy możesz poprosić lepszego programistę o sprawdzenie kodu i zgłoszenie jego oceny komuś, kto może coś z tym zrobić,
- Zobacz narzędzia do profilowania. Jeśli masz umiejętności i / lub skłonność, spróbuj samodzielnie profilować kod, aby znaleźć wyciek i zgłosić go.
Nawet bez wchodzenia w narzędzia profilujące zorientowane na programistę, istnieje wiele narzędzi zorientowanych na sysadmin do profilowania i monitorowania wykorzystania pamięci w aplikacjach Java. W każdym razie powinieneś naprawdę skonfigurować monitorowanie pamięci (szczególnie sterty) na serwerach produkcyjnych. Polecam to, nawet jeśli korzystasz z kodu jakości. Może to dać ostrzeżenie z wyprzedzeniem, gdy Twoje błędne aplikacje wkrótce się przewrócą.
Ale jeszcze lepiej, powinny one pomóc w zebraniu dowodu na wyciek, a nawet mogą wskazywać, gdzie jest problem w aplikacji. To da ci lepszą amunicję do lobbowania za jej naprawieniem.