Drogi Wykopowiczu
w załączonym linku do Polityki Prywatności przypominamy podstawowe informacje z zakresu przetwarzania danych osobowych dostarczanych przez Ciebie podczas korzystania z naszego serwisu. Zamykając ten komunikat (klikając w przycisk “X”), potwierdzasz, że przyjąłeś do wiadomości wskazane w nim działania.
+530
pokaż komentarz
Jeszcze tłumaczy co robi xD Potraktuję to jako kurs programowania :D
+290
pokaż komentarz
@evilonep: nie warto, tak kod to piszę się dla stronek hobbistycznych, nie miesza się php z html'em, nawet html z css :)
+48
pokaż komentarz
@bla_bla_bla: powiedział, że potem kulturalnie to poprzenosi :P
+238
pokaż komentarz
@evilonep: nigdy tego nie zrefaktoruje ( ͡° ͜ʖ ͡°)
+235
pokaż komentarz
@gromota: w końcu to ma być odpowiednim Aliagczy, więc nawet nie może tego refaktoryzowac ( ͡° ͜ʖ ͡°)
+155
pokaż komentarz
@PrawyKuba: bo nie liczy się jakość kodu, a ilość dotacji pobranych na jego napisanie ( ͡~ ͜ʖ ͡°)
+101
pokaż komentarz
@gromota: Nikt nigdy nic nie refaktoruje. Refaktoring istnieje jedynie w teorii i w książkach. Powód jest prosty - od początków istnienia programowania, nikt nigdy nie znalazł na to czasu, bo wszystko zawsze musi być gotowe na wczoraj.
+76
pokaż komentarz
@Varin: w software house tak, ale taki Samsung czy nokia jak ci rzucą budżet to nawet na testy masz czas
+3
pokaż komentarz
nie warto, tak kod to piszę się dla stronek hobbistycznych, nie miesza się php z html'em, nawet html z css :)
@bla_bla_bla: Laravel i blade...
+20
pokaż komentarz
@Varin: to zależy od klienta, powiem Ci że klienci którzy są mocno into technologia dużo chętniej wyrażają zgodę na spalanie N godzin na refaktoring kodu który później może się mścić miesiącami
+13
pokaż komentarz
Nikt nigdy nic nie refaktoruje. Refaktoring istnieje jedynie w teorii i w książkach. Powód jest prosty - od początków istnienia programowania, nikt nigdy nie znalazł na to czasu, bo wszystko zawsze musi być gotowe na wczoraj.
@Varin: Ostatnio w firmie mieliśmy sporo refactoringu. Projekt międzynarodowy i niemały.
-4
pokaż komentarz
@lepiszcz: .NET and Razor albo Blazor :)
I nie, nie wierze na serio że nikt nigdy nie zrobił refaktoringu, nie ma potrzeby próby wyprowadzania mnie z błędu mireczki...
+4
pokaż komentarz
@Varin: Bzdury
+8
pokaż komentarz
@bla_bla_bla Przecież nikt nie będzie z tego strzelać.
+65
pokaż komentarz
@Varin: Większość IT w Polsce to januszerka i ciężko trafić na firmę, która poważnie podchodzi do kodu. Trochę przeszedłem i trochę widziałem. Wejście w tą firmę w której teraz pracuje było ciężkie... Na code review potrafisz dostać zwrotkę nawet za styl, no i stosujemy lintery. Wszystko co piszemy pokrywamy testami. Rezultat? Jest to pierwsza firma w której nie obijam się o tzw. pożary w burdelu i śpię spokojnie bo wiem, że nie będę siedział po godzinach bo coś się wyglebie - to jest po prostu dopracowane. Nad jednym ticketem po prostu czasem siedzę dłużej - a ile już testy wychwyciły bubli... Merge nie przejdzie bez 100% zielonych testów. Pielęgnowanie kodu popłaca.
W wielu projektach realizowanych w Polsce nawet code review to abstrakcja, nie mówiąc o pisaniu testów. W wielu miejscach się tego wymaga, o to się pyta na rozmowach o pracę, a jak już się zatrudniasz, zastajesz chlew osrany gównem.
Już nie mówiąc o cwaniachkach typu RTCLab które januszują nawet na sprzęcie i oprogramowaniu.
+33
pokaż komentarz
@Varin: bzdura. Refactoring robi się przynajmniej jak coś się modyfikuje w kodzie, przy okazji. To nie jest kwestia kasy, tylko podejścia do swojej roboty. Większość IDE mocno pomaga przy sprzątaniu, więc to nie zajmuje o wiele więcej. Jak robisz tylko na wczoraj, to potem dług techniczny będzie tak duży, że zostaje tylko napisanie od początku. A na to kasa jakoś się znajduje zazwyczaj.
0
pokaż komentarz
@Varin: I w projektach gdzie jest burdel w kodzie, a nie ma zespołu desperatów do rozwoju i konserwacji.
-21
pokaż komentarz
zgodę na spalanie N godzin na refaktoring kodu który później może się mścić miesiącami
@KKK1337: wlasnie dlatego nie warto. ;) Po refaktoringu masz 2x tyle bugow co przed.
-16
pokaż komentarz
Refactoring robi się przynajmniej jak coś się modyfikuje w kodzie, przy okazji
@kakulec: nigdy nie rozumialem tego podejscia. moim zdaniem to jest niebezpieczne. To tak jakbys podczas naprawiania okna zobaczyl zepsute gniazdko i pomyslal: a se je naprawie przy okazaji. Rozumiem trzymanie jakiegos trackera rzeczy do refactoringu i poswiecanie raz na jakis czas kilku godin na zrobienie tego, ale 'refaktoring przy okazji' to nie moja bajka. chyba, ze jest wymagany przez funkcjonalnsc nad ktora obecnie pracujesz.
0
pokaż komentarz
@Volki: Poczytaj o srb.
+4
pokaż komentarz
@kowalzki: bo dopisując do niezrefaktoryzowanego kodu przyczyniasz się do powiększania ogólnego chaosu w kodzie (bo musisz dostosować się do jakości kodu), co się kończy tym że działasz na szkodę swojego pracodawcy bo zwiększasz mu koszty.
A kolejna osoba próbująca cokolwiek zmienić będzie miała jeszcze większe bagno.
Najgorzej jak wyjdzie że przestarzałe biblioteki kończą wsparcie i pojawiają się krytyczne luki, i teraz zamiast migrować z rozsądnej ilości wersji, macie całe api do przepisania
-3
pokaż komentarz
piszę się
@bla_bla_bla: piszesz się?
-3
pokaż komentarz
@ArchDelux: tak jest ( ̄^ ̄)ゞ
źródło: upload.wikimedia.org
-3
pokaż komentarz
tak jest ( ̄^ ̄)ゞ
@bla_bla_bla: podstawówka by Ci nie zaszkodziła. ;-)
+22
pokaż komentarz
@kakulec: @kowalzki: @Rad-X: zasada skautów. Jak coś ruszasz to od razu sprzątasz.
Ale oczywiście nie robisz tego w jednym commicie. Zaciemniłbyś zmianę funkcjonalności i na code review by nie wiadomo było co dokładnie zmieniłeś.
Zazwyczaj robisz dwa commity:
- robisz swoją zmianę, ale wszystko co wymaga refaktoru nie robisz w tym commicie,
- robisz kolejnego commita, w którym jest tylko refaktor.
Chyba, że już znasz to miejsce i wiesz co trzeba poprawić, to najpierw robisz refaktor, a dopiero potem na ładnym kodzie robisz swoją zmianę.
Czasem też wychodzi tak, że powstają trzy commity. Od razu widać jakieś duże zmiany do zrobienia, więc od razu to robisz, żeby potem nie tracić czasu na pisanie swojego nowego kodu, który trzeba będzie zakaz przerefaktorować. Robisz swoją zmianę. Ale w trakcie zauważasz jeszcze kilka miejsc, które można ulepszyć (ale niezwiązane z twoją zmianą), więc robisz trzeciego commita.
Porównując do przykładu:
- Idziesz naprawić okno, ale wchodząc do pokoju widzisz, że nie działa gniazdko. Do naprawienia okna potrzebujesz wiertarki, którą musisz podłączyć do gniazdka. Zamiast się męczyć i ciągnąć przedłużacz z drugiego pokoju, to najpierw naprawiasz gniazdko.
- Potem wygodnie naprawiasz okno.
- Przy wychodzeniu z pokoju widzisz, że nie działają drzwi, więc i je naprawiasz (już masz podłączoną wiertarkę).
Jakbyś zrobił inaczej? Ja mam tylko naprawić okno, więc ciągnę 5 metrów przedłużacza, który zaraz zabieram ze sobą. Potem druga osoba przychodzi naprawić drzwi i też nie ma gdzie podłączyć wiertarki. I nie wie gdzie jest przedłużacz, więc szuka po szafkach w pokoju. Na koniec wszyscy mówią, że gniazdko nie działa, ale kierownik mówi, że w zasadzie to już nikomu nie jest ono potrzebne.
Refaktor robi się od razu. Z kilku powodów:
- Znasz kod, który trzeba zmienić, bo właśnie robisz w nim zmianę. W takiej sytuacji refaktor jest szybszy (bo wiesz co i gdzie) oraz lepszy (bo jesteś użytkownikiem tego kodu, właśnie z niego korzystasz pisząc swoją rzecz, więc wiesz jak zrobić, żeby tobie było wygodnie - duże prawdopodobieństwo, że innym programistom też będzie). Jakby zrobił to ktoś inny lub ty za miesiąc, to nie będziesz pamiętał co tam trzeba i po co. Powstaną jakieś wydumane zmiany, które nie ułatwią pracy.
- Jak powstaje jakaś zmiana lub funkcjonalność, to musi to być przetestowane. Przy okazji twój refaktor zostanie przetestowany. Kto potem będzie testował sam refaktor czy nic nie popsuł?
- Zaciąganie długu technologicznego (nigdy nie będzie czasu na refaktor).
Tworzenie zadań w backlogu ma uzasadnienie tylko wtedy gdy:
- Zmiana będzie naprawdę duża lub jest naprawdę trudna. Trzeba oddzielić ją od taska z tworzeniem funkcjonalności. Tylko najlepiej zrobić to jak najszybciej.
- Refaktor to ogólne zmiany w systemie. Np. przepisywanie czegoś na nową bibliotekę.
- Masz nóż na gardle. Błąd produkcyjny przez, który klient traci kasę. Termin oddania projektu, jeśli przekroczysz to kara umowna finansowa. Ale wtedy trzeba wrócić do tematu w najbliższym możliwym terminie. Jeśli zawsze jest "wyjątkowa sytuacja" i nigdy nie ma tego najbliższego wolnego terminu (zaczynanie projektu gdy termin już na starcie jest przekroczony) roku świadczy o stylu zarządzania projektem. Na to developerzy nic nie poradzą i trzeba uciekać. Refaktor tam nic nie pomoże, bo projekt już jest trupem.
0
pokaż komentarz
@mk321: dzieki za ten komentarz! ratujesz poziom wykopu. Z ciekawosci - jestes PM-em, team leaderm, developerem czy cos jeszcze innego?
+4
pokaż komentarz
@kowalzki: tech lead
0
pokaż komentarz
@evilonep: możesz to potraktować jako kurs jak nie robić www :)
0
pokaż komentarz
jak ci rzucą budżet to nawet na testy masz czas
@lazaruss: no właśnie jak rzucają pieniądze to zamiast czasu, a nie oprócz ( ͡° ʖ̯ ͡°)
0
pokaż komentarz
@bla_bla_bla: co? HTML z php się nie miesza? O .phtml słyszałeś?
0
pokaż komentarz
@weakra: chodzi mi o dobre praktyki programowania
0
pokaż komentarz
@kakulec: Jak w projekcie brak jest testów to lepiej nie brać się za refaktoryzację.
0
pokaż komentarz
@lepiszcz: Coś w tym jest mam podobne doświadczenia. Rozmowa kwalifikacyjna w miarę wysokich lotów a kod wygląda jak Woodstock Owsiaka.
0
pokaż komentarz
@bla_bla_bla: całe Magento na phtml stoi.
0
pokaż komentarz
@weakra: ale nie w phtml piszesz warstwę logiczną strony
0
pokaż komentarz
@mk321: ale nie zawsze dasz radę rozdzielić commit z refactoringiem od nowej funkcjonalności. A przynajmniej ja nie znam na tyle git aby wybrane linijki commitowacnz pliku...
+1
pokaż komentarz
@lepiszcz: Większość Software House na świecie raczej niż tylko w Polsce. Pracuje w UK od 15 lat, od jakichś 10 w kodzie. Jeśli jest to firma która robi własny produkt i nie ma jakichś twardych, prawie niemożliwych deadlinów - to pewnie, jest cały wachlarz testów, code review, refaktoring, itp itd. Jak jest to Software House który robi na zamówienie klientów lub jakieś digital agency - to jest to zazwyczaj puszka pandory. Wszystko na szybko, bo klient nie rozumie na czym polega development, a ludzie którzy są nad tobą nie potrafią wytłumaczyć albo boją się że stracą kontrakt i klient pójdzie gdzie indziej.
Dlatego godzą się na kretyńskie terminy, a potem "lets go live and deal with the aftermath later" - co jest idiotycznym podejściem. Oczywiście są wyjątki, zwykle firmy które mogą sobie kontrakty wybierać bo mają klientów z głębokimi kieszeniami, renomę i własne procedury których nie muszą łamać żeby zatrzymać klientów. Bardzo wiele zależy od upper managementu, nie od samych devów. Jako dev ja bym chciał siedziec z 3 razy dłużej nad wszystkim, żeby to dopracować, aby wszystko było "akuratne". Ale w pewnym momencie w karierze zdajesz sobie sprawe że to utopia którą ciężko znaleźć. A przecież jak ci ktoś nad tobą mówi że masz na ticket 1 dzień, to jak notorycznie będziesz chciał po swojemu nap%@@##@ać idealny kod którego pisanie, testowanie itp zajmuje 2-3 dni, to szybko dostaniesz brązową kopertę :)
To czego potrzebuje biznes nie jest zawsze tym co Ty jako programista myślisz będzie najlepszym rozwiązaniem. Im szybciej Junior czy Mid zda sobie sprawę że polityka w pracy, cała ta gra z klientem jest nieodłączną częścią developmentu - tym szybciej wskoczy na Seniora.
0
pokaż komentarz
@Varin: Ja pracuję w firmie która ma własny produkt i nie bierze zleceń z zewnątrz.
0
pokaż komentarz
@lepiszcz: No to zazdroszcze i też nie zazdroszcze. Z jednej strony fajnie bo można wszystko zrobić podręcznikowo bo czas jest, mniej stresu z deadlinami zazwyczaj... Ale nie wiem jak by mi się przyjęło pracowanie nad np jednym produktem przez lata. Firma w której obecnie jestem od 3 lat, próbuje właśnie wejść w SAAS, razem z klientem który zamówił ten soft (ubezpieczenia), więc jest tu na to szansa, ale te ostatnie 2 lata dłubania w tym samym projekcie strasznie mnie uwiera. W sumie jestem tu tylko dla tej szansy ze firma eksploduje finansowo jak ten projekt wyjdzie. Jak nie to trzaskam drzwiami za plus minus pół roku.
0
pokaż komentarz
@Varin: Ja robię dużo rzeczy hobbystycznie i tak sobie odbijam projekty, które średnio mnie kręcą.
0
pokaż komentarz
@kakulec: @kowalzki: @Rad-X: @bla_bla_bla:
@mk321: Istnieja gdzies w sieci jakies darmowe gotowce do sciagniecia tego typu portali?
Tak do sciagniecia jako punkt startowy.
Potrzebowalbym tez kodu sklepu internetowego jak najtanszego. Ale wlasnie z kodem zrodlowym by moc rozwijac go we wlasnym kierunku.
0
pokaż komentarz
@BigArtoo: co do sklepów darmowych do pobrania to Prestashop, Magento, mniej zasobożerny OpenCart, co do portalu to nie wiem
+62
pokaż komentarz
Jaki stack?
+322
pokaż komentarz
@nieocenzurowany88: overflow
+28
pokaż komentarz
@nieocenzurowany88: stackoverflow ( ͡° ͜ʖ ͡°)
+402
pokaż komentarz
@nieocenzurowany88: z tego co widać na streamie, to tam jest stack tzw. spaghetti PHP czyli przemieszane czystego PHP z HTML-em i CSS-em w jednym pliku. Kolega ewidentnie poszedł w ultrarealizm i wierne odwzorowanie kodu Wielkiego Patriotycznego Portalu Społecznościowego ( ͡° ͜ʖ ͡°).
+87
pokaż komentarz
@krejdd: druciarstwo tak zwane ( ͡° ͜ʖ ͡°)
+24
pokaż komentarz
@nieocenzurowany88: Notepad++
+20
pokaż komentarz
@ponton: Masakra, chyba naprawdę tak gość pisze :D
To ja się czuję w swoim środowisku jakbym w rakiecie siedział i na marsa leciał w porównaniu do tego.
Samo kodowanie to chyba trolling, bo nie wierzę, że ktoś coś takiego może na serio robić. no i jest md5(md5()) :D
+23
pokaż komentarz
@krejdd: @szczesc_borze: macie bo wam chyba umknęły założenia tego eksperymentu
https://www.wykop.pl/wpis/55056137/dzien-dobry-%CA%96-kurdelebele-za-mna-naprawde-dluga-n/
+4
pokaż komentarz
@krejdd: Przemieszanie php z html pamiętam ze studiów kiedy Doktor na ćwiczeniach zadawał zadanie np. prosta biblioteka i wymagał szybiej implementacji zadania nie ważne w jakiej jakości (głównie chodziło o przećwiczenie SQLi i trochę PHP) i jak na 1,5 h ćwiczenia to rzeczywiście nasze implementacje "działały". Były oczywiście w wuj wrażliwe na SQL injection ale większość to wiedziała, btw jednym z ćwiczeń było atakowanie napisanych wcześniej aplikacji poprzez SQL injection ( ͡° ͜ʖ ͡°). Osobiście uważam że skoro są frameworki do PHP do tworzenia aplikacji webowych to powinno się ich używać zwłaszcza, że (nie wiem czy w przypadku PHP) często wymagają używania dobrych praktyk. Mieszanie PHP z html to największe dzbaniarstwo jakie można zrobić
+1
pokaż komentarz
@krejd @szczesc_borze @Brodeon: ja np. tak piszę. Dlaczego? Bo wygenerowanie (skrajnie prostego z reguły) HTML-a w przypadku moich aplikacji to jest jakieś 10% tego co program robi. 90% to są dośc skomplikowane rzeczy w backendzie. Program czyta różne pliki, analizuje kupę danych, generuje na tej podstawie pliki konfiguracyjne dla innych narzędzi, które wywołuje z wnętrza PHP, analizuje to co te narzędzia wyprodukowały i dopiero na tej podstawie generuje jakiś output w HTML-u, zazwyczaj bardzo prostym, bo nie chodzi o wygląd tylko o zawartość. Taka specyfika :). Więc dużo prościej i szybciej pisze się mieszając te dwie rzeczy. Poza tym, przynajmniej dla mnie i innych ludzi którzy pracują z tym kodem, taki kod jest bardziej czytelny i łatwiej się go debuguje. Jak czytam kod używający jakichś frameworków które mają ściśle rozdzieloną warstwę logiki i prezentacji, i musze taką aplikację np. zdebugować, to zwykle strasznie się mozna z tym namęczyć zanim się dojdzie do tego co dany kawałek kodu w ogóle robi. W takim wymieszanym kodzie (o ile oczywiście jest klarownie napisany, bo nawet taki kod można napisać jasno i klarownie albo nie) duzo łatwiej to widać.
0
pokaż komentarz
@raj: ale przeciez jak jest rozdzielone na warstwy, to samo wymuszenie tego bardzo zaweza ilosc kodu do sprawdzenia do jednego odpalonego widoku i sprawdzeniu co w nim sie dzieje krok po kroku, o ile np ktos nie zrobil testow automatycznych, ktore dobrze zrobione potrafia wyeliminowac znaczna wiekszosc opcji szukania bledu, o ile takiemu pozwola zaistniec.
+227
pokaż komentarz
¯\_(ツ)_/¯
źródło: paczaizm.pl
-3
pokaż komentarz
@Jariii: Jakiś taki podobny...
źródło: Rev-9.jpg
+109
pokaż komentarz
OK... powiedzmy sobie szczerze... koleś, który się tego podjął, ma nikłe pojęcie o programowaniu w PHP... prawdopodobnie jest gdzieś tu:
pokaż spoiler
Ale powodzenia... fajnie będzie to oglądać.
źródło: 2021-01-22 18.45.58.jpg
+37
pokaż komentarz
@pokpok: mam to samo odczucie xD on zaczyna z dupy strony
+10
pokaż komentarz
@pokpok: no dobra.... zmieniam zdanie - nie będzie się fajnie oglądać. Zęby bolą od patrzenia.
+13
pokaż komentarz
@pokpok: ale Ty wiesz że ma być to odpowiednik albuqerke a nie działającego portalu? ( ͡° ͜ʖ ͡°)
+1
pokaż komentarz
odpowiednik albuqerke
@Deska_o0: to ten portal napisany przez battlefielda counterstrika?
+1
pokaż komentarz
@pokpok: moja pierwsza mysl wczoraj jak wlaczylem stream na ok 3h trwania. Spodziewalem sie juz dosyc sprawnej struktury mvc i dzialajacego modulu uzytkownikow w najgorszym wypadku. A zobaczylem typa co pisal sobie front, i to tak slamazarnie jakby nauczyl sie podstaw webdevu max 2-3 miesiace wczesniej, a po chwili jak zaczal wciskac php inline to mnie az skrecilo.
Juz jakies 7 lat nie pisze zawodowo, jedynie sporadycznie jakies zlecenie sie zrobi, ale od reki bym usiadl i zrobil to lepiej i szybciej nawet w vanilla, bo majac jakies doswiadczenie w back i front, to pisze sie duzo szybciej i duzo wiecej przed wcisnieciem F5 w przegladarce, bo sie dokladnie wie, co sie dostanie.
Bolalo ogladanie, wylaczylem po chwili.
Mam nadzieje ze typ jednak ogarnia, tylko np zapil czy byl zjarany i mozg mu nie dzialal, a nie ze jest poczatkujacy i rzucil sie zgodnie z Twoim wykresem z motyka na slonce.
Nie oczekiwalem jakiegos super wysokiego poziomu w challengu, liczylem jedynie ze zrobi to ktos, kto ma chociaz ten rok zawodowo wbity, zeby to sie tak nie wloklo strasznie.
0
pokaż komentarz
@sierzchula: Ja php zawodowo zajmowałem się chyba z 15 lat temu, ale nie pisząc, a nadzorując pracę innych, ale już wtedy coś takiego byłoby nie do przyjęcia.
Rzeźnia.
Najzabawniejsze, że koleś się nie wyrobi w 48h, bo pół dnia zmarnował na dłubanie layoutu, a funkcjonalnie nie ma nic...
-1
pokaż komentarz
@pokpok: Programowanie i PHP w jednym zdaniu. Ale te czasy się zmieniają.
0
pokaż komentarz
@m0rgi: no... bez przesady. Równie dobrze można się śmiać z javascriptu albo pythona.
0
pokaż komentarz
@pokpok: Jakiej przesady?
Wymieniłeś kolejne języki skryptowe gdzie nawet jeden z nich ma to w nazwie.
( ͡° ͜ʖ ͡°)
0
pokaż komentarz
@m0rgi: ano takiej, że teraz oba języki są w top 3 popularności.
-1
pokaż komentarz
@pokpok: Linux a więc bash i komendy w nim wydawane biją te wszystkie języki na głowę. Więc rozumiem, że pisanie komend i skryptów w bashu też nazwiesz programowaniem?
0
pokaż komentarz
@m0rgi: co z bzdury...
+119
pokaż komentarz
Warning: PDOStatement::execute(): SQLSTATE[HY093]: Invalid parameter number: parameter was not defined in /var/www/domains/www.xepo.pl/template/login.php on line 72
- 2 minutki kochani, muszę odebrać telefon
źródło: i.ytimg.com
+20
pokaż komentarz
@trumnaiurna: XD
Oglądałem kilka minut i wyłączyłem. Ten gość to katastrofa.
+5
pokaż komentarz
@kidzior: szkoda że nie robiłem streama i znaleziska na wykopie gdy kiedyś pisałem kupo stronki na informatyce, byłoby na bułki z donejtów i może bordo na wykopie ( ͡º ͜ʖ͡º)
+1
pokaż komentarz
@e_ek_an: ja to bym nie chcial zobaczyc swojego kodu z 2005 roku ( ͡° ͜ʖ ͡°)