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

f7e74644-9614-4678-a78f-007feb93a69f

Komentarze (34)

nbzwdsdzbcps

@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

@nbzwdsdzbcps a mi by się podobało, przynajmniej bym miał zajęcie

nbzwdsdzbcps

@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

@nbzwdsdzbcps śmiało możesz usuwać, powinno działać

nbzwdsdzbcps

@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.

bandziorek

@nbzwdsdzbcps Masz na myśli CryOps?

Iknifeburncat

@nbzwdsdzbcps metoda działająca w dowolnej branży i języku. Jak nikt nie dzwoni to znaczy, że niepotrzebne.

ZohanTSW

@peposlav same zalety - coverage wzrośnie, kod bardziej czytelny

Fly_agaric

@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.

zomers

@nbzwdsdzbcps ciekawe ile to ma commitów xD

nbzwdsdzbcps

@zomers Nie ma takiej ilości jaka by mnie tu zdziwiła. Wierzę tak samo w 1 jak i w 100+.

Catharsis

Chciałbym zobaczyć jak poradzi sobie z tym AI xD.

nbzwdsdzbcps

@Catharsis W sumie nie wiem jak długi kontekst mają agenci AI i czy tak długą wiadomość przyjmie na jedno polecenie.

Catharsis

@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

@nbzwdsdzbcps nic nie robię. Jak coś działa to nie ruszam.

nbzwdsdzbcps

@MostlyRenegade Refaktoryzacja nadal zmusza jednak do zrobienia czegoś. Nie wiem czy takiego taska zaakceptują z 0 zmian.

MostlyRenegade

@nbzwdsdzbcps ale po co robić refaktoryzację czegoś, co działa? Nie rozumiem.

Dru

@MostlyRenegade definicja refaktoringu to zmienianie czegoś co działa

MostlyRenegade

@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.

Hajt

Przy takiej ilości kodu komp wyrzuca out of memory

psalek

@nbzwdsdzbcps przypomniała mi się moja ulubiona górna granica długości funkcji/metody: ma się zmieścić cała na ekranie 1080px.

MostlyRenegade

@psalek w pionie, czy w poziomie? ( ͡° ͜ʖ ͡°)

LondoMollari

@nbzwdsdzbcps Piszę testy, bo skoro tam jest 6k+ linii kodu, to testów na 99% nie ma. Po napisaniu testów, można refactorować.

nbzwdsdzbcps

@LondoMollari 13k+ linii kodu w samej funkcji ale się zgadzam co do podejścia.

ZohanTSW

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

GazelkaFarelka

@ZohanTSW siedemdziesiąt osób tworzyło tą metodę a żadna już tu nie pracuje

inty

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

solly-1

jako amator programowania powiem, ze myslalem, ze obiektowka nie ma szans na takie cyrki. takie pliki to chyba w strukturalnym predzej?

nbzwdsdzbcps

@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.

DEAFCON_ONE

(obrazek kłamie, tak naprawdę to ósmy rok)

add7d2a0-17e5-4e48-8a80-c6cda638a55f
DEAFCON_ONE

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.

RandomNick

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ć