MrHyperion
2017-05-16 11:21

Ludzie, wszystko ma swoje granice xD.

Od jakiegoś czasu będąc freelancerem biorę projekty Androidowe, tak aby sobie dorobić. Niestety ostatnie 3 projektów to było szambo i byłem po prostu szambo nurkiem, bo każdy projekt miał w sobie następujące problemy:

  • Statyczna analiza kodu? Panie na co to komu, po co to komu?
  • Czysty gradle'a? No po cholere xD. Nawalone bibliotekami, jakieś Toda Time'y albo Guavy używane do jednej rzeczy. Oczywiście w konsekwencji każdy projekt miał multidex'a
  • Architektura? Lol;
  • Testy? Chyba w programistycznym eldorado;
  • Zakomentowany kod na produkcji xD. Panie Mietku nie ma szans aby się nie działało xD;
  • Nie używane importy? No tak bo oczywiście się zapomina o takim skrócie klawiszowym a Android Studio to przerośnięty notatnik;
  • Fragmenty, fragmenty, wszędzie fragmenty xD;
  • Zaporowe ilości używanych deprecated metod albo klas;
  • No i jeden projekt trafił się na Roboguice xD;
  • Coś do logowania błędów? Chyba karta i długopis xD;
  • System.out.println xD;
  • SOLID? KISS? No co Ty xD
  • Struktura pakietów? Hm...
  • Android Annotations XD
  • Statyczne klasy, singletony w jednym projekcie były po prostu na każdym kroku
  • Serializabe tak bardzo, bo API Androidowe nie ma Parcelable;

Projekty które widziałem są gorsze od tego co piszą studenci. Czemu? Bo wypociny studentów są małe i przeważnie nie działają. Natomiast te projekty są duże i działają pomimo legacy code xD;

Teraz ja nie mam żadnych kompleksów z moimi skillami programistycznymi. Serio ja dbam o swój kod, piszę testy, staram się pilnować aby nic nie zepsuć staram się utrzymywać jakość, ale jak patrzę na to wszystko to się zastanawiam skąd Ci się programiści się urwali.

Oczywiście klienci idą w zaparte, że kod jest super, super działa i tak dalej a dodanie nowej funkcji to żaden problem (tak oczywiście gdy cały dom jest w ruinie remontowanie małego składzika ma sens). Musiałem to napisać, bo mi się wydawało, że legacy code to coś co się spotyka baaardzo rzadko, ale jednak nie.

Życzę miłego dnia, elo xD.

Myślałem, że mam mało doświadczenia (w czerwcu będę miał równe dwa lata w Androidzie od absolutnego zera), ale nie mam już żadnych kompleksów z tego tytułu.

PS. Musiałem po prostu gdzieś napisać swoje żale bo myślałem, że eksploduje xD.

#java #chceumrzec #humor

MrHyperion

Niestety, tutaj filozofia xD pasuje jak znalazł.

panryz

@MrHyperion: Freelance:D żadna nowość.

arklin

Android Annotations akurat spoko, zwłaszcza do małych apek

MrHyperion

@arklin: słowo klucz - do małych apek.

bednarz

klienty patrzą ci w kod :D? lol

V-2

Nieużywane importy to problem do rozwiązania w kilka sekund. Roboguice jest już niewspierane, ale nie było wcale złe (zwłaszcza przed ukazaniem się Daggera 2, bo jedynka wywoływała sporo problemów na Androidzie np. z ProGuardem), może projekt jest po prostu stary. Co to znaczy "czysty gradle'a" i jak to się niby ma do kwestii użycia multidexa??

Pracowałem z podobnym kodem pisanym przez pewną Hinduskę, śmialiśmy się i płakaliśmy naprzemiennie.

MrHyperion

@V-2: oczywiście, że to jest problem do rozwiązania w kilka sekund tylko po prostu mówię o tym, że poprzednie osoby nawet nie zwracały uwagi na takie rzeczy jak importy. Nie miałbym z tym problemu, ale spotykałem się z opinią, że wszystko jest super i działa

V-2

@MrHyperion: no tak to nie jest taki problem sam w sobie, tylko bardziej symptom bałaganiarskiego podejścia w ogóle

MrHyperion

@V-2: no a o czym jest mój cały wpis? Po prostu opisywałem rzeczy które mówią o tym jak ktoś miał baaardzo wywalone w to co robi i tyle

V-2

@MrHyperion: nie polemizuję z całym wpisem, ani nawet - nie z większością punktów, uwagi były do paru. Samo użycie Roboguice nie jest ujmą na honorze programisty, chyba że robi to teraz.

WhiteLightning

@MrHyperion - o co chodzi z Android Annotations? (to nie moj ekosystem wiec sie nie znam)

MrHyperion

@WhiteLightning: mocny narzut frameworka, generowanie mnóstwa nieprzydatnych rzeczy. Straszne zaciemnianie kodu.

arklin

@WhiteLightning: wręcz przeciwnie, AA generuję za Ciebie cały androidowy bajzel, zaczynając od cyklu życia activity i fragmentów a kończąc na elastycznym DI. Ale jak się nie pilnuje to można zrobić makaron z tego przez wstrzykiwanie wszystkiego wszędzie

drorat1

Freelancerka ma to do siebie, że tak naprawdę chodzi o to, żeby coś machnąć na szybko, żeby tylko szybko dostać zapłatę. Zwłaszcza jeśli chodzi o klepanie aplikacji, za które dostanie się kasę dopiero po zakończeniu, nie biorę pod uwagę np. kamieni milowych czy zaliczek. Klient się nie zna, więc guzik go obchodzi w jaki sposób to było napisane i nie interesują go tego typu poboczne problemy.

Wróć do swoich kodów za rok, za dwa to gwarantuję Ci że stwierdzisz, że to co namachałeś można było zrobić inaczej (i lepiej, bo cały czas się uczysz a każda kolejna appka to nowe doświadczenia). Trochę klepałem kiedyś pod Androida małe appki w Eclipse, co każdy kolejny projekt to i kod naturalnie lepszy. Ale pierwsza appka, choć działająca bez zarzutów to było też jak teraz na to popatrzę totalne szambo.