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

ohui
i co tera?
@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ć.
@nbzwdsdzbcps a mi by się podobało, przynajmniej bym miał zajęcie
@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.
@nbzwdsdzbcps śmiało możesz usuwać, powinno działać
@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 Masz na myśli CryOps?
@nbzwdsdzbcps metoda działająca w dowolnej branży i języku. Jak nikt nie dzwoni to znaczy, że niepotrzebne.
@peposlav same zalety - coverage wzrośnie, kod bardziej czytelny
@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.
@nbzwdsdzbcps ciekawe ile to ma commitów xD
@zomers Nie ma takiej ilości jaka by mnie tu zdziwiła. Wierzę tak samo w 1 jak i w 100+.
Chciałbym zobaczyć jak poradzi sobie z tym AI xD.
@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.
@nbzwdsdzbcps nic nie robię. Jak coś działa to nie ruszam.
@MostlyRenegade Refaktoryzacja nadal zmusza jednak do zrobienia czegoś. Nie wiem czy takiego taska zaakceptują z 0 zmian.
@nbzwdsdzbcps ale po co robić refaktoryzację czegoś, co działa? Nie rozumiem.
@MostlyRenegade definicja refaktoringu to zmienianie czegoś co działa
@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.
Przy takiej ilości kodu komp wyrzuca out of memory
@nbzwdsdzbcps przypomniała mi się moja ulubiona górna granica długości funkcji/metody: ma się zmieścić cała na ekranie 1080px.
@psalek w pionie, czy w poziomie? ( ͡° ͜ʖ ͡°)
@nbzwdsdzbcps Piszę testy, bo skoro tam jest 6k+ linii kodu, to testów na 99% nie ma. Po napisaniu testów, można refactorować.
@LondoMollari 13k+ linii kodu w samej funkcji ale się zgadzam co do podejścia.
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
@ZohanTSW siedemdziesiąt osób tworzyło tą metodę a żadna już tu nie pracuje
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.
(obrazek kłamie, tak naprawdę to ósmy rok)

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ć