Przychodzisz do pracy i dostajesz taska na refaktoryzacje funkcji z linijki 6061 i co robisz?
Sam nie pamiętam kiedy ostatnio widziałem jakikolwiek plik na 1000 linii, a co dopiero taką abominację.
#heheszki #humorobrazkowy #humorinformatykow

Przychodzisz do pracy i dostajesz taska na refaktoryzacje funkcji z linijki 6061 i co robisz?
Sam nie pamiętam kiedy ostatnio widziałem jakikolwiek plik na 1000 linii, a co dopiero taką abominację.
#heheszki #humorobrazkowy #humorinformatykow

@Half_NEET_Half_Amazing Najpierw kawa, a potem pewnie sprawdziłbym co ona zwraca i spróbował napisać do tej funkcji jakieś testy jednostkowe. Jeśli nic nie zwraca to szukałbym czy pobiera jakiś obiekt i go edytuje.
Chyba wygląda na Swift, a nie wiem co tam można wybitnie głupiego zrobić także nie wiem na co uważać.
@Acrivec W sumie ja też lubię sobie jakieś bugi rozwiązać ale bardziej w kodzie jaki dobrze znam zamiast w czymś co widzę pierwszy raz.
@peposlav W sumie już widziałem wyłączanie usług i czekanie na telefon by upewnić się czy ktoś z nich korzysta. Także zakładam, że to podobne podejście.
@nbzwdsdzbcps metoda działająca w dowolnej branży i języku. Jak nikt nie dzwoni to znaczy, że niepotrzebne.
@nbzwdsdzbcps Hehhehe. A potem po 2 latach telefon, że ktoś nam usunął bardzo ważną funkcję, której bardzo często używamy. No wczoraj jeszcze ją mieliśmy, słowo.
@Catharsis W sumie nie wiem jak długi kontekst mają agenci AI i czy tak długą wiadomość przyjmie na jedno polecenie.
@nbzwdsdzbcps Gemini 2.5 Pro ma milion tokenów inputa więc spokojnie, gorzej z odpowiadaniem i edytowaniem kodu bo jego output to tylko 65k tokenów. Kilka razy miałem taką akcje, że jak poprosiłem o edycje dużego pliku to API mi zwracało errora, że odpowiedź od modelu przekraczała ten limit. Wtedy trzeba go prosić o małe zmiany na raz itp.
Oczywiście pomijam totalnie, że AI będzie gadać totalne głupoty i gubić się cały czas gdy wrzucisz mu plik na 19k linii czy ile on tam ma bo nie pokazałeś całości xd.
@MostlyRenegade Refaktoryzacja nadal zmusza jednak do zrobienia czegoś. Nie wiem czy takiego taska zaakceptują z 0 zmian.
@Dru no tak, ale musi to mieć jeszcze jakiś cel: głównie będzie to przygotowanie do zmian w architekturze/api lub poprawa wydajności. Więc żeby zrobić refaktoring trzeba jeszcze wiedzieć, po co on jest. W przeciwnym razie nie ruszam kodu, który działa.
@nbzwdsdzbcps przypomniała mi się moja ulubiona górna granica długości funkcji/metody: ma się zmieścić cała na ekranie 1080px.
@nbzwdsdzbcps Piszę testy, bo skoro tam jest 6k+ linii kodu, to testów na 99% nie ma. Po napisaniu testów, można refactorować.
Jak firma ma jakieś wewnętrzne AI do którego można wklejać kod to chyba jesteś uratowany. A skoro udało się naruchać FUNKCJĘ na 13k linii, to takie rzeczy nie powstają w 2 miesiące, ten projekt musi trwać kilka lat, więc pewnie firma jest duża, bo małe nie robią takich dużych projektów, więc uważam że jest spora szansa na wewnętrzne AI
Jezu co to za potworek w środku.
Ja ostatnio refactorowałem komponent reactowy co miał 6000 linii już formatowane go kodu...
A ja robię max. 250 liniowe
jako amator programowania powiem, ze myslalem, ze obiektowka nie ma szans na takie cyrki. takie pliki to chyba w strukturalnym predzej?
@solly-1 Wszędzie może to być możliwe ale to są lata zaniedbań. U mnie w pracy nie widziałem nic co by się nawet zbliżyło do 1000 linii, a co dopiero funkcja kilkanaście razy dłuższa.
Co do reszty, to jak przedmówcy – nie ma czegoś takiego jak "task na refactor", poprawiasz kod na bieżąco jak robisz coś powiązanego/innego. Albo prosisz o budżet żeby to naprawić – i wtedy sam wiesz co i jak zrobić – albo masz wliczony budżet z definicji, bo zamierzasz coś zrobić.
Jak masz jakieś testy gwarantujące jakiś stan po/w trakcie operacji (tj. o zachowaniu danego kawałka możesz powiedzieć więcej niż C⁎⁎J WIE) to raczej ez. Tam na ogół nie ma żadnej szczególnej logiki, po prostu ktoś w biegu dopisywał linijkę czy dwie i tak przez 10 lat.
Polecam zacząć od testów jak nie ma bo bez tego jest możliwe pominięcie czegoś co już działało. A tak to powoli czytać i bardzo powoli wydzielać mniejsze części do innych funkcji i plików.
Zaloguj się aby komentować