Drukowana wersja tematu

Kliknij tu, aby zobaczyć temat w orginalnym formacie

Forum PHP.pl _ Hydepark _ Nie chce mi się już programować

Napisany przez: SmokAnalog 20.06.2019, 21:38:28

Cześć, postanowiłem podzielić się z Wami moimi odczuciami na temat programowania webowego.

Zajmuję się tym od ponad 15-tu lat. I wiecie co? Od kilku lat wydaje mi się, że jestem w tym cienki. Kiedyś uwielbiałem rozgryzać problemy programistyczne, projektować rozwiązania i dbać o to, żeby mój projekt był jak najlepszy w odbiorze dla publiczności. Ale od kilku lat programowanie webowe to zalew technologii, zalew frameworków i bibliotek. Praca z projektem polega już nie na rozwiązywaniu problemów, tylko na znajomości tej czy innej paczki. I wiecie co? Nie chcę już ich znać.

Jestem zmęczony tą ciągłą gonitwą za zmianami i trendami. Mam dość tych wszystkich package managerów. Mam dość pytań: "czy pracował pan na XXX", gdzie XXX to nazwa jednego z tysiąca frameworków, CMS-ów i bibliotek.

Umiem Laravela na bardzo dobrym poziomie i wiecie co? Czuję się, jakbym nie umiał nic. Poza Laravelem umiem WordPressa, Vue.js, React JS i wiele różnych API i bibliotek. Ale i tak czuję, że robię to źle, bo przecież jest tysiąc różnych narzędzi i bibliotek, klienci co chwilę pytają o te, których nie znam.

Ja chcę tworzyć. Nie chcę bawić się w zlepianie kolejnych gotowych paczek. Dlaczego programowanie webowe nie wymaga już tyle logicznego myślenia, co kiedyś? Teraz wymaga to wiecznego researchu i pamiętania, czego do czego i z czym używać. A mnie się zwyczajnie już nie chce. Mam kiepską pamięć.

Człowiek chce mieć poczucie, że zbliża się do mistrzostwa. W programowaniu webowym to nigdy nie następuje. Zanim się ogarnie jedną technologię do dobrego poziomu, ta technologia staje się już albo przestarzała, albo niewystarczająca. To kołowrotek, a ja jestem chomiczkiem. Czuję, że za kilka lat zamienię dobre pieniądze z programowania na zajęcie, które daje więcej satysfakcji. Chcę być w czymś mistrzem. Tylko tyle i aż tyle.

Napisany przez: phpseven 20.06.2019, 23:19:05

Ja po napisaniu małego serwisu w Ruby on Rails i jakichś blogów i aplikacji w Django, wróciłem do PHP 7. Zniechęciło mnie kilka przykładów z tutoriala od Django, kody tam napisane po prostu nie chciały działać. Wydaje mi się, że PHP jest jak najbardziej stabilne, a trudno nadążyć za RoR, Django czy tymi nowinkami typu Elixir - Phoenix oraz Crystal. A na pewno za Node. Oracle też ostatnio przyspieszyło i Java wychodzi co kilka miesięcy, ciekawe jak jest z przejściami do kolejnych wersji takich kobył programistycznych jak Spring, przechodząc z Javy 8 do Javy 13. Niedawno już wyszła Java 13. Próbowałem Kotlina, ale jakieś to pokręcone, za dużo lukru i za dużo nowych funkcji. Dla nowych użytkowników to tylko więcej problemów na początku nauki. Na filmach devstyle, autor narzekał, że C# .NET jest coraz bardziej rozbudowane i coraz trudniej się nauczyć tej technologii i ją ogarnąć. Gdyby PHP miało wbudowany taki serwer Railsy czy Django, sporo by to ułatwiło, zamiast posiłkować się XAMPP, czy instalując wszystkie składniki serwera w swoim systemie.

Napisany przez: SmokAnalog 21.06.2019, 00:12:59

PHP rzeczywiście ostatnio ma dobrą prasę i budzi optymizm, a jeszcze stosunkowo niedawno nic na to nie wskazywało. To również jest jedna z rzeczy, których nie lubię w web devie. Jesteśmy niewolnikami narzędzi, których los nie zależy od nas. Ktoś może poświęcić kilka lat na naukę narzędzia, które wkrótce po opanowaniu go odejdzie do lamusa. Czy wyobrażacie sobie to w innym zawodzie? Czasami zazdroszczę tym, którzy codziennie wstają z łóżka z pewnością, że ich dzień uczyni ich lepszym w ich ukochanej dziedzinie. My tego nie mamy. Ilość informacji, które codziennie przetwarzamy jest niezdrowa. A co więcej, nie wiadomo, czy w ogóle przydatna w dłuższym czasie.

A najlepsze jak klient każe wycenić projekt. Przecież w dzisiejszych czasach jest to niemożliwe. Skąd mam wiedzieć ile czasu zajmie mi używanie tuzina bibliotek, z którymi nie miałem do czynienia? Naprawdę mam ochotę się przerzucić na coś, co każe mi wyzwolić kreatywną moc mojego umysłu, a nie pamięciówkę i zgadywankę. Jestem zmęczony chomikowaniem w mojej głowie pudełek z półproduktami. Dzisiaj mogę powiedzieć, że naprawdę bardzo dobrze znam świat webu. Poświęciłem mnóstwo czasu, żeby pozwolić mojemu mózgowi zrozumieć jak działają podwaliny sieci, czyli HTTP, przeglądarki, serwery, bezpieczeństwo itd. Ta wiedza kiedyś była czymś wspaniałym. Dziś bez znajomości cudzych kobył w postaci narzędzi nie znaczymy nic.

Napisany przez: mrc 21.06.2019, 06:23:20

@SmokAnalog z tego co widzę, to wypaliła Cię freelancerka. Ja jakiś czas temu również się wypaliłem, ale z trochę innego powodu. W powrocie pasji pomogła mi zmiana technologii po godzinach (C++). Dodatkowo, jeżeli chcesz stabilności technologicznej, to zachęcam Cię to zmiany kierunku na tworzenie aplikacji biznesowych. Ale nie takich, które załatwisz wordpressem czy paroma paczkami. Jest dużo pracy z dużymi systemami, gdzie klepie się backend (tak, jeszcze raz: klepie się, a nie instaluje tuziny paczek). Do tego zainteresuj się może architekturą aplikacji i DDD. To jest ciekawa porcja wiedzy, którą (jeżeli nie znasz) będziesz odkrywał i to na pewno da Ci sporo frajdy. Dodatkowo poczujesz stabilizację, bo ta wiedza jest "ponad" technologiami.

Napisany przez: Tomplus 21.06.2019, 08:09:08

Wypalenie przychodzi w każdym zawodzie. Mnie także to spotyka. Że mimo że się dokształcam, to czuję że stoję w miejscu. Dlatego ja np. uczę się Pythona.

Napisany przez: SmokAnalog 21.06.2019, 08:42:55

Dwa lata temu nauczyłem się Swifta i się zakochałem. Teraz na dokładkę Apple zaserwowało Swift UI, które wygląda obiecująco. Dla samej frajdy programowania poważnie rozważam przebranżowienie lub dobranżowienie się na Swifta. Wady tego wyboru są jednak oczywiste - Swift to tylko Apple.

Druga opcja, którą rozważam, to blockchain. Pociąga mnie budowanie rozwiązań o skomplikowanej strukturze, algorytmika. Ciekaw jestem na ile w świecie blockchaina również trzeba żonglować paczkami, jak w webie. Chciałbym po prostu robić coś, co nie wymaga nieustającego researchu „na zewnątrz”. Bardzo chętnie będę zgłębiał swoją dziedzinę do oporu, ale nauka paczek to niestety nie jest zgłębianie dziedziny, a przynajmniej nie w sensie, o jaki mi chodzi.

@mrc to są dobre rady i rzeczywiście nauka dobrych nawyków, wzorców itd. jest ponadczasowa. Uprawiam to odkąd pamiętam i może dlatego jeszcze nie oszalałem smile.gif

Napisany przez: markuz 21.06.2019, 09:01:40

Może to przez pogodę? Odpocznij, weź sobie urlop albo po prostu zwolnij tempo - przyjdzie jesień, zrobi się chłodniej, bardziej deszczowo to się milej będzie siedziało przy biurku wink.gif

Napisany przez: SmokAnalog 21.06.2019, 09:06:49

Obawiam się, że moje żale nie tyczą się wypalenia, ale natury web devu w tych czasach. Prawdą jest, że gdy ogarnie się porządnie jak to wszystko działa i dlaczego, to nauka każdej paczki jest znacznie łatwiejsza. Po prostu wtedy nie programujemy po omacku. Jednak brakuje mi wyzwań. Ilekroć mam studiować nową super cool paczkę, rzygam.

Napisany przez: markuz 21.06.2019, 09:38:26

W ostatnim projekcie mamy mnóstwo paczek i fakt - nie mam pojęcia jak to działa, ciężko też analizować kod każdej paczki żeby się tego dowiedzieć tymbardziej, że co kilka dni wychodzi nowy update, a gdyby wziąć pod uwagę też paczki zależne, to pewnie co kilka godzin jest nowa wersja "kodu w całości".

Myślę, że musisz się skoncentrować na finalnej wartości, całości projektu który oddajesz klientowi bez wnikania w szczegóły (nie jest możliwe zrozumienie i poznanie całego kodu w tych czasach). Kodu "łączącego", zależności i narzędzi będzie coraz więcej, typowego prostego kodu coraz mniej - żeby ogarnąć tą całość rzeczy których nie jesteśmy w stanie ogarnąć "manualnie" (czy po npm install nasza aplikacja dalej działa, czy po zainstalowaniu narzędzia XY i dodaniu pluginu do webpacka wydajność aplikacji nie zmalała o 100% itp.) polecam testy unit i dużo testów e2e, wpięcie w CI narzędzi do badania wydajności, zarówno odpowiedzi serwera jak i budowania aplikacji w przeglądarce - mi to daje poczucie spokoju. Nie wiem jak to się odnosi do freelance, gdzie wszystko na szybko trzeba dowieźć - ja się staram pracować w zespołach które pracują nad jednym projektem przez długi czas, często kosztem pensji, ale zyskuje trochę więcej włosów na głowie wink.gif

Zgodnie z tym co napisał @mrc są rzeczy ponadczasowe których warto się uczyć - sieci, same języki i to jak działają, języki obce, paradygmaty, wzorce, DDD itd.

To nie jest tylko problem web, wiem, że dev-ops ma podobnie i podejrzewam, że większość "odłamów programowania" ma z tym problem tj. narzędzia > kod. Tylko czy to faktycznie problem? Ludzie dążą do automatyzacji wszystkiego a narzędzia miały w tym pomagać i pewnie finalnie pomagają (przy okazji psując trochę krwi), wystarczy, że spróbujesz napisać sobie kolejną aplikację dla klienta bez użycia tych narzędzi i porównasz efekt końcowy.

Napisany przez: Comandeer 21.06.2019, 13:32:39

Ze swojego doświadczenia powiem tak: jest webdev i webdev. Owszem, główny nurt związany jest najczęściej z pogonią za najnowszymi trendami i wykorzystywaniem akurat popularnego frameworka. Ale równocześnie istnieją też nisze (jak choćby tworzenie RTE), w których tej pogoni nie ma i tam wykorzystuje się sprawdzone od lat, stabilne technologie, a problemy rozwiązuje się po staremu, bo… nikt inny dotąd ich nie rozwiązał. Ot, po prostu wystarczy nieco zboczyć z głównej drogi i na zarośniętej krzewami ścieżce znaleźć nieco ukojenia wink.gif

Napisany przez: SmokAnalog 21.06.2019, 13:59:14

Na pewno masz rację, Comandeer. W moim przypadku też do pieca dowala to, że zdecydowałem się być senior full-stackiem freelancerem. To na mnie zwykle ciąży odpowiedzialność dobierania technologii do projektu no i oczywiście implementacja. Bardzo często też nie mam się z kim skonsultować, bo albo jestem jedynym devem w projekcie, albo pracujemy w różnych strefach czasowych. Kiedy mam z kim pogadać, od razu jest inaczej. A jak nie, to pytam oczywiście na Stack Overflow i forach, ale to nie to samo.

Napisany przez: phpseven 21.06.2019, 15:44:20

Mnie ostatnio zaciekawił Rust i Cargo. Język programowania do pisania systemów komputerowych RedoxOs, silników przeglądarek www, przeglądarek Firefox, Basilisk Browser(Goanna). Można też w nim pisać ciężki backend strony jako alternatywa Go, Swift czy Scala w mikroserwisach. https://rocket.rs

Drugi język programowania który mnie zaciekawił to Crystal, jest to lepsza, nowsza i szybsza wersja Ruby. Jest kompilowany, ma odśmiecanie pamięci, brak nulla i brak wskaźników, do tego jest prosty w nauce jak RoR. Posiada już kilka frameworków webowych. Czekam tylko jak to wszystko się ustabilizuje i wybije się jeden główny framework, jak Ror czy Django. Wtedy można w nim pisać wydajny sklep internetowy, czy porównywarkę produktów. Jest kompilowany, więc powinien być wydajniejszy nawet od Javy.
https://amberframework.org
http://kemalcr.com
https://luckyframework.org

Napisany przez: Pyton_000 21.06.2019, 20:50:23

Ja jestem full backend w PHP do tego czasami coś klepię w Javie 8 (mikroserwis w projekcie), do tego Python na potrzeby toolsa niższego poziomu. Dodatkowo Sysops/Devops. Nie nudzę się w pracy a wręcz brakuje mi czasu na realizację pomuysłów biggrin.gif (wiadomo że sprint leci i trzeba zrobić plan)

Także kwestia znalezienia sobie czegoś co Cię kręci.

Napisany przez: SmokAnalog 21.06.2019, 21:12:53

Pyton, może jak ktoś się nie brudzi frontendem to nie szaleje biggrin.gif

Napisany przez: phpseven 22.06.2019, 06:59:19

A w Pythonie jest szansa, że nie trzeba się uczyć tych różnych frameworków, Django, Angular, React, PostgreSQL i być fullstackiem? To niby taki język klejowy, ale czy jest lepiej w tym natłoku technologii jak w Javie i JavaScript? Raczej jedynie C/C++ nie wymaga żadnego frameworka, piszesz jakiś kod w czystym języku do mikrokontrolerów, gry, sterowniki.

Napisany przez: markuz 22.06.2019, 09:50:02

Gry bez frameworków, ciężko to widzę, no chyba, że masz kilkaset programistów albo robisz tetrisa wink.gif

Napisany przez: phpseven 22.06.2019, 17:02:05

Sądziłem, że używają tylko jakiegoś silnika graficznego napisanego w C++, ewentualnie te duże produkcje jakiegoś Pythona Lua jeszcze do oskryptowania. Raczej ci chodzi o lekkie gierki czy przeglądarkowe i takie silniki jak rubygame i godot?
https://godotengine.org
http://rubygame.org
Popatrz na grę Dzieje Khorins, jest czysty Python i C++.
https://www.youtube.com/watch?v=-EFYQ4ZN5Ss

Napisany przez: Comandeer 22.06.2019, 19:23:26

Cytat
Popatrz na grę Dzieje Khorins, jest czysty Python i C++.


I dlatego https://docs.google.com/forms/d/1-qQFN32o9JQm3qfEdveC8cdA8NH-ijB7wsvakdV1YAg/viewform?edit_requested=true wink.gif

Napisany przez: gitbejbe 22.06.2019, 19:56:30

Żadna praca nie da ci tyle satysfakcji i spełnienia jak praca dla siebie. rób coś po za pracą, jakiś swój własny komercyjny projekt... Ja stety czy niestety już o 6 lat ogarniam zupełnie inną branże - własny biznes, programuje tylko dla przyjemności. Web to nadal mój as w rękawie, programuje co się da : ) W ten oto sposób stałem się 100% autorem systemu do sterowania automatyką grzewczą kotłów na pellet, który działa na całym świecie i ma obecnie ponad 10k kotłów online i ciągle rośnie (kwestia dystrybucji niezależnej ode mnie)- z czego garnę profity za abonamenty. Buduje teraz dom, oprogramuje co się da, mam zajawkę i dobrze się przy tym bawie. W swoim czasie nawet tworzyłem z szwagrem grę na unrealu ale odpuściłem bo to robota głupiego w 2 osoby, w każdym razie jak robi się to dla siebie i na własną korzyść, satysfakcji multum niezależnie w czym się klepie. Mimo iż mógłbym teraz "pisać" u kogoś kod za niezłą kasę - śmieją się ze mnie że tego nie robię zawodowo, to jednak szkoda mi czasu. Na swoim to na swoim.

Napisany przez: phpseven 23.06.2019, 17:53:41

Trafiłem na taki wykres, ankietę dotyczącą PHP i uważam, że sporo zaniżyli udział Sublime Text dając im tylko 7%. Sam używam Sublime Text 3 do PHP. W komercyjnych projektach zawsze używacie płatnego PHPStorm, czy Eclipse, NetBeans, Aptana, Atom też się pojawia?
https://www.jetbrains.com/lp/devecosystem-2019/php/

Napisany przez: SmokAnalog 23.06.2019, 18:12:39

Cytat(phpseven @ 23.06.2019, 18:53:41 ) *
Trafiłem na taki wykres, ankietę dotyczącą PHP i uważam, że sporo zaniżyli udział Sublime Text dając im tylko 7%. Sam używam Sublime Text 3 do PHP. W komercyjnych projektach zawsze używacie płatnego PHPStorm, czy Eclipse, NetBeans, Aptana, Atom też się pojawia?
https://www.jetbrains.com/lp/devecosystem-2019/php/

A możesz nie zasyfiać mojego tematu takimi pytaniami?

Napisany przez: phpseven 23.06.2019, 18:34:16

Jesteś zwykłym chamem i prostakiem z głupim avatarem i tyle w temacie.

Napisany przez: athabus 24.06.2019, 08:51:51

Po naszych pizzowych rozmowach wydaje mi się, że dobija Cię typ pracy jaki wykonujesz. Freelance ma swoje zalety, ale niestety w większości robisz tam proste i powtarzalne projekty. Pracując w firmie masz kilka pozytywów:
- kontakty społeczne
- wymiana doświadczeń / możliwość pracy z lepszymi od siebie
- większe projekty, gdzie potrzeba wielu kompetencji z różnych dziedzin

Mam porównanie z pracą na freelansie i pracą z większymi projektami. Jednym z głównych elementów, które spowodowały, że chciałem iść do pracy w firmie była świadomość, że utknąłem w rozwoju - ciągle powtarzałem swoje błędy, nie miałem wizji rozwoju, przytłaczała mnie ilość rzeczy do nauczenia i żadnej nie mogłem poświęcić tyle czasu ile bym chciał.

Teraz mam swój backend, w nim się bawię w architekturę, poznawanie PHP itd i tego oczekuje się ode mnie w pracy. A w wolnych chwilach hobbystycznie bawię się nowymi zabawkami - np. obecnie Reactem a w planach już jest Jenkins, DDD i inne rzeczy. Ale to robię dla siebie, żeby mieć większy obraz całości. Ogólnie teraz mam trochę jak Pyton, że w głowie pełno pomysłów tylko czasu brakuje.
Na freelansie faktycznie zawsze jest pogoń bo musisz wiedzieć wszystko i w niczym nie możesz przez to się wyspecjalizować. Ciągle tylko lepisz gotowce bo klient już stoi ze stoperem, a zamiast programować szukasz w Google jak w tej konkretnej bibliotece obsłużyć jakiś edgecase.

Ogólnie mam wrażenie, że bycie fullstackiem w dzisiejszych czasach to droga do nikąd. Technologii jest tyle, że życia nie starczy aby je opanować. Można być fullstackiem hobbystycznie - założyć sobie, że backend robisz w technologii X, frontend w Y i w tym się rozwijać, ale komercyjnie trudno jest skakać pomiędy vue, reactem, angularem, wszelkimi dialektami javascriptu i jednocześnie nadążać za zmianami w backendzie.

Czasami czytam sobie ogłoszenia dla backendowców i mam wrażenie, że nie znam często połowy technologii z ogłoszenia. Rozmawiam z kolegami seniorami i mają podobnie. W ogłoszeniach często są jednocześnie 3 wiodące frameworki, kilka baz noSQL, kolejki, systemy CD/CI, kilka rozwiązań typu WP/Magento itd. Trudno ZNAĆ te rzeczy jednocześnie, ja z wieloma miałem do czynienia, rozumiem ideę, kiedyś nawet użyłem w jakimś projekcie (i już często zapomniałem), ale trudno mi uczciwie powiedzieć, że znam technologię X.
Kluczem do szczęścia jest chyba aby trafić do pracy, gdzie masterujesz 2-4 rzeczy + masz styczność z wieloma innymi, w których masz ludzi, od których możesz się uczyć.


Napisany przez: SmokAnalog 24.06.2019, 09:53:22

Powiedziałbym, że z tymi powtarzalnymi projektami jest dokładnie na odwrót. Freelancerka, a szczególnie małe projekty (bycie zaangażowanym do zrobienia czegoś, czego nie umie zrobić zespół klienta) to ciągle nowe zadania. W ostatnich projektach np. musiałem zrobić system do rejestrowania domen, a w innym postawić i dostosować system reklam google i facebooka. Na powtarzalność narzekałem w firmach, bo mieliśmy swój stack i po prostu robiliśmy wiele stosunkowo podobnych projektów.

Ja z bycia full stackiem nie zrezygnuję, bo dla mnie zarówno frontend i backend to światy, w których się duszę po kilku dniach. Oba lubię i lubię się przestawiać z jednego na drugi. Problem, o którym tu piszę dotyczy obu, choć oczywiście w znacznie większym stopniu dziś frontendu. Nie wydaje mi się, by bycie full stackiem coś tu zmieniało, bo na upierdliwość świata frontu narzeka dziś większość. Nawet nie chodzi tyle o poczucie przytłoczenia, co o nudny i upierdliwy proces tworzenia. Za dużo zapamiętywania, za mało myślenia logicznego.

Napisany przez: Tomplus 24.06.2019, 10:39:29

Właśnie to jest problem, że duże firmy z góry narzucają pewne projekty, powtarzalne, a małych firm mimo że mają możliwość na większą politematyczność nie stać na lepszy zespół, albo tak jak moją firmę stać tylko na jednego programistę. Gdyby chcieli dwóch, to musiałbym się podzielić swoją wypłatą.

Dlatego mam trudny wybór, bo z jednej strony podobają mi się projekty firmy, a z drugiej brakuje towarzystwa, brakuje konsultacji, dyskusji nad problemami. Co za tym idzie, wydajność, szybkość wdrażania danego podprojektu spada.

Z drugiej strony, będąc w domu nie chce zbyt dużo czasu poświęcać na samodokształcanie, bo chciałbym ten czas poświęcać na inne moje sprawy. Chociaż bardzo lubię małe projekty od firm/osób z zewnątrz, które można stworzyć w jeden, dwa wieczory - przed spaniem.

Napisany przez: athabus 24.06.2019, 11:16:25

@smokanalog - to mi się właśnie przejadła taka praca "wszystko po trochu". Skacząc z kwiatka na kwiatek miałem ciągle poczucie, że się nie rozwijam, tylko chaotycznie poznaje podstawy z różnych dziedzin. Gdy ostatnio rozmawialiśmy to miałem właśnie takie wrażenie, że Ciebie też to męczy. Oczywiście w takiej pracy są fajne rzeczy - np. konieczność poznawania różnych domen problemów biznesowych. Zawsze będzie coś za coś.

Na szczęście są jeszcze projekty prywatne ;-)

Napisany przez: SmokAnalog 24.06.2019, 11:18:35

Najlepiej byłoby zorganizować grupę freelancerów i funkcjonować jak zespół smile.gif Ja nie oddałbym wolności freelancerskiej już teraz, choć może zatrudnię się w jakiejś firmie na chwilę, żeby liznąć czegoś nowego.

Napisany przez: athabus 24.06.2019, 11:26:26

Jak załatwisz ciekawe zlecenia to wchodzę w to ;-) Dla mnie jedyny poważny argument za freelansem to to, że można pracować dla zagranicznej firmy za znacznie lepszą kasę niż w PL. Trochę to załamujące jak moja firma bierze 150-200$ za godzinę, a ja nawet o takiej kwocie w złotówkach nie mogę pomarzyć ;-) Fajnie byłoby mieć projekty z USA i robić je w grupie na własny rachunek.

Napisany przez: SmokAnalog 24.06.2019, 11:35:21

Ja bardzo źle znoszę rutynę, więc dla mnie argumentów przemawiających za freelance’owaniem jest znacznie więcej. Ale ogromnym, OGROMNYM minusem jest brak towarzystwa.

Napisany przez: athabus 24.06.2019, 15:02:37

Zawsze można połączyć 2 światy - np. w firmie być osobą dochodzącą jak są zlecenia (lepsza stawka godzinowa przy okazji) + freelans. Póki dzieci nie ma można się bawić w takie rzeczy bo potem to już się najbardziej stabilizacja liczy i ta rutyna, której tak chcesz unikać.

Napisany przez: Lord 24.06.2019, 15:09:06

Cytat(SmokAnalog @ 24.06.2019, 12:35:21 ) *
Ja bardzo źle znoszę rutynę, więc dla mnie argumentów przemawiających za freelance’owaniem jest znacznie więcej. Ale ogromnym, OGROMNYM minusem jest brak towarzystwa.

Ja pracuje w firmie gdzie ludzie są, ale jestem jedynym programista, ostatnio poprosiłem w firmie o towarzystwo, bo nawet nie chodzi o to ze nie wyrabiam sięm ale o to, że mam dość samemu stawianie sobie pytań i odpowiadanie na nie. Czasami człowiek musi się utwierdzić, że to co robi jest dobre lub jest to ślepa uliczka. Koleżanka z pracy dała fajny przykład. Przed zaproszeniem znajomych w celu zagrania w jakąś grę siedziała 4h studiując jej zasady. Następnie ona wytłumaczyła im zasady w 15min. Oni wiedzieli dokładnie tyle samo co ona, a byli te prawie 4h do przodu. I to jest dla mnie minus pracy w 1 osobowym zespole. Nie ma możliwości szybkiego zdobywania wiedzy. Masz coś do zrobienia. Sam musisz wszystko sprawdzić i przetestować, a przecież czasami wystarczy spytać się kogoś kto spotkał się z danym problemem. Ja rozważam odejscie z pracy własnie z tego powodu, że mam dość rozwiązywania problemów i pierdółek bo nie mam nikogo innego kto mógłby mi pomóc, nakierować i muszę udawać, że jestem Panem Złota Rączka.

Napisany przez: SmokAnalog 24.06.2019, 15:15:32

Zależy jak na to spojrzeć. Jeśli jako freelancer zarabiam dwa razy tyle co w firmie (a w rzeczywistości ponad dwa razy tyle), to mogę sobie pozwolić na pracę 6 miesięcy w roku za te same pieniądze, a pozostałe sześć miesięcy np. spędzać z dziećmi. Temat freelance vs. firma jest dość mocno dyskusyjny.

Napisany przez: Tomplus 24.06.2019, 17:36:35

Tylko w wadą wolnych strzelców jest to że samemu trzeba poszukiwać projektów, a w firmie ktoś inny zajmuje się pozyskiwaniem klientów.

Napisany przez: usb2.0 26.06.2019, 14:49:48

przyznam, że wybitnym programistą nie jestem, ale czuje podobnie,
zacząłem od webdevu i c++, ale jednak w webdevie zostałem, z czasem doszedł Node/React/Mongo/podobne, no i zaczęły się paczki z npm, kto do cholery to wszystko ogarnia, pewnie nawet nie znam połowy sensownych paczek,
pracuje dla firmy jako senior, 2 lata temu zrobiłem szybki projekt, "nieco" się rozrósł, teraz połowę każdego dnia nad nim spędzam :/ dołujące

Napisany przez: nospor 26.06.2019, 15:32:04

Czytajac wasze wszystkie posty mozna normalnie popasc w depresje wink.gif

Napisany przez: mrc 26.06.2019, 15:52:04

@nospor, nie dołuj się smile.gif

Ja z kolei mogę powiedzieć, że ostatnio czuję duży boost pod kątem architektury aplikacji biznesowych i w zasadzie nie widzę tego problemu "przepaczkowania" w backendzie u siebie (Symfony here)

Napisany przez: Tomplus 26.06.2019, 17:32:18

@nospor
Depresję? Mnie dodały powodów do zmian w życiu, a nie stanu życia (1:0) biggrin.gif

Napisany przez: nospor 26.06.2019, 17:52:18

@tomplus no coz, niektorzy czerpia inspiracje z bolu i problemow innych wink.gif

Napisany przez: phpion 26.06.2019, 22:53:51

Po paru latach milczenia na forum postanowiłem się wypowiedzieć, bo okazuje się, że nie jestem sam w swoim rozumowaniu.

Zauważyłem, że od paru lat (w zasadzie od ZF2 czy SF2) webdeveloperka idzie na siłę w kierunku bycia pro. Coś co parę lat temu można było zrobić dużo prościej aktualnie jest niepotrzebnie komplikowane, a wszystko to w imię pro. Jestem programistą, który (według mnie) swoje najlepsze zawodowe lata miał w okolicach 2010/2011. Wówczas faktycznie byłem zadowolony ze swoich projektów. Jestem typem purysty, który lubi mieć wszystko pod kontrolą, dlatego wszelkiej maści udogodnienia (typu chociażby Composer) na dzień dobry mnie odrzucają. Najlepiej programowało mi się w Kohanie. Prosty framework ale dający duże możliwości. Dlaczego duże? Bo to tylko narzędzie. Miałem swoje ulubione dodatkowe biblioteki, które dołączałem do projektów, miałem pod nie napisane proste moduły w Kohanie. Wiedziałem wszystko co i jak, nie było w tym żadnej magii. Obecnie króluje Symfony i Composer. Gdzie nie spojrzeć - Symfony i Composer. Żeby wrzucić projekt na serwer konieczny/bardzo zalecany jest dostęp do konsoli. Ja wolałem po prostu wgrać pliki na FTP, poustawiać dostępy i po temacie. Proste jak budowa cepa.

Czy projekt napisany w Kohanie jest mniej pro od projektu w Symfony? Według mnie nie można tak tego określać. Framework z założenia to tylko narzędzie, więc od samego programisty zależy jak go wykorzysta i co na nim zbuduje. Chcąc odnowić lakier w aucie jeden może zaopatrzyć się w najdroższą maszynę polerską i odstawić fuszerkę, a drugi za pomocą ręki i szmatki wyprowadzi lakier na błysk.

Mam wrażenie, że obecnie panuje trend, że im bardziej skomplikujemy sobie życie tym będzie bardziej pro. Nawalimy 5 klas, dowalimy 17 interfejsów - nooo, teraz jest pro. Sro a nie pro. W pracy pracujemy nad wewnętrznym projektem, który ma już ok. 10 lat. Częściowo bazuje na własnym frameworku pierwotnego twórcy, a w większości na ZF1. Około 2 lat temu do pracy przyszła "świeża krew", która przeforsowała wprowadzenie Symfony (tak, projekt działa na 3 frameworkach!). Jest pro? Według mnie nie. Jest bajzel. Pomijając już kwestię 3 frameworków to moim zdaniem, żeby móc powiedzieć że projekt jest pro trzeba pisać go w narzędziu, które się zna. Wtedy można prawidłowo i efektywnie z niego skorzystać. Widzę natomiast po sobie i po kolegach, że rzeczy w Symfony powstają na zasadzie "o, działa, nie dotykać". To co w przypadku chociażby ZF1 przerabialiśmy po parę razy żeby w końcu być zadowolonym z kodu (efekt działania taki sam) zostawiamy w Symfony na etapie "o, działa". Tu dodaj to, tam dopisz to, jeszcze tu, wygeneruj to, zrób tamto - jak dla mnie chore.

Męczy mnie całe to przekombinowanie, utrudnianie, na siłę udowadnianie, że PHP też może być pro. Chciałbym znowu wziąć framework i z niego korzystać. Czego nie znajdę w dokumentacji to znajdę w kodzie źródłowym nie musząc przebijać się przez 38 plików. Wszystko jednak idzie do przodu. Symfony ma bardzo dobry marketing i według mnie tym się przebija. Pozostałe frameworki próbują dorównać bo przecież liczy się bycie pro. Świeżak wchodząc w świat frameworków nie ma zbyt dużego wyboru - skupi się na tym, co jest popularne (czyli na Symfony, no ewentualnie Laravel bo w tym momencie cała reszta się już nie liczy). I będzie się bawił w tworzenie encji i repozytoriów, a w efekcie i tak będzie operował na tablicach, a jeśli już na obiektach to tylko dla zapisywania zmian w polach. Ale będzie pro bo pisze w Symfony.

Kosmiczna abstrakcja bazy danych? Mamy zapomnieć, że korzystamy z bazy? Ma to być transparentne? Nie zgodzę się. Korzystamy z danego typu bazy danych to wykorzystajmy maksymalnie jego możliwości. Dlaczego narzędzie ma nas ograniczać jedynie do tego, co jest "wspólne" dla różnych silników bazodanowych? Moja baza ma typ pola idealny pod moje potrzeby - chcę z niego skorzystać. Mogę przerzucić część logiki na samą bazę tworząc X triggerów na jedno zdarzenie - też chcę. Niby mogę ale lepiej nie - bo przenośność...

Nie twierdzę, że Symfony to jedno wielkie zło. Nie przepadam za tym frameworkiem ale wiem, że są magicy, którzy potrafią w tym czynić cuda. Bo się na tym znają. Tak jak ja (moim skromnym zdaniem) swego czasu w Kohanie. Zdaje się jednak, że cała brać PHP-owa idzie w kierunku tego co na topie, a to dalej nakręca koniunkturę.

Naprawdę liczę, że w końcu nastąpi powrót do korzeni i pojawi się prosty framework all-in-one. Taka nowsza Kohana czy ZF1. I w końcu projekt wraz z frameworkiem zajmie 3-5 MB, a nie kilkadziesiąt MB. Że znowu zaczniemy myśleć jak rozwiązać dany problem, a nie jak rozwiązać go w danym narzędziu. Że przestaniemy dostosowywać schemat bazy danych do ograniczeń biblioteki. Jeśli nie - trudno, żyć za coś trzeba. Ale sentyment pozostanie :)

Napisany przez: SmokAnalog 26.06.2019, 23:34:25

Najśmieszniejsze jest to, że znajomość frameworka już naprawdę nie czyni z nikogo profesjonalisty. Tak było może w 2013-2014 roku. Moja znajomość Laravela (który jest takim samym typem frameworka jak Symfony, czyli teoretycznie bazą do wszystkiego) jest moim zdaniem bardzo dobra, a i tak czuję się często jak leszcz.

Napisany przez: batman 27.06.2019, 06:51:51

Zespół, w którym pracuję pracuję, to rasowy devops. Oznacza to, że oprócz klepania głupot (bo deadline, do zmieniły się przepisy i trzeba się dostosować, itd.) jestem wystawiony na pokaźną dawkę wiedzy z zakresu ops. Jak wcześniej jarało mnie grzebanie we frontendzie (kiedyś byłem fullstackiem), tak teraz jara mnie dłubanie daleko za backendem smile.gif Obecnie pracuję nad projektem, gdzie mam styczność z takimi technologiami jak docker, kubernetes, terraform, ansible, aws. Na dokładkę jest python i skrypty zarządzające całym tym grajdołkiem, a wszystko okraszone grzebaniem w najgłębszych odmętach plików konfiguracyjnych. Jakby tego było mało w domu pracuję na prywatnym projektem, który składa się z serwera websocket, aplikacji slack i wiadomości typu pub-sub.
Dlaczego o tym piszę? Ponieważ, jeśli lubisz swoją pracę, zawsze znajdzie się coś ciekawego do zrobienia. Znajdź coś, co chciałbyś robić i to rób. Napisałeś, że spodobał Ci się Swift. Napisz apkę, opublikuj ją, opisz na blogu (lub w innym publicznym miejscu) wyzwania jakie Ciebie spotkały oraz co odkryłeś. Rozbuduj apkę o dodatkowe funkcjonalności, zapakuj reklamy by zarobić na opłaty. Na każdym etapie będziesz musiał nauczyć się czegoś nowego.

Napisany przez: SmokAnalog 27.06.2019, 09:45:35

Cytat(batman @ 27.06.2019, 07:51:51 ) *
Na każdym etapie będziesz musiał nauczyć się czegoś nowego.

Owszem, tylko stawianie tak sprawy to jest zamienianie problemu w postać zero-jedynkową i nie prowadzi do żadnych sensownych konkluzji. To, że osobnik A za każdym razem musi poświęcić 5 sekund na naukę nowych rzeczy nie jest tym samym problemem, co osobnik B zmuszony do poświęcenia trzech godzin. Ludzie często stosują ten zabieg retoryczny, by umniejszyć skalę problemu lub kogoś pocieszyć, podczas gdy to nie ma żadnej wartości praktycznej.

W czasach PHP4 też ciągle używało się nowych funkcji, bo język sam w sobie jest rozbudowany. Problemem jest ILOŚĆ tej nauki dzisiaj, a nie fakt, że ta nauka w ogóle jest potrzebna.

Napisany przez: batman 27.06.2019, 23:17:02

Cytat(SmokAnalog @ 27.06.2019, 09:45:35 ) *
Owszem, tylko stawianie tak sprawy to jest zamienianie problemu w postać zero-jedynkową i nie prowadzi do żadnych sensownych konkluzji. To, że osobnik A za każdym razem musi poświęcić 5 sekund na naukę nowych rzeczy nie jest tym samym problemem, co osobnik B zmuszony do poświęcenia trzech godzin. Ludzie często stosują ten zabieg retoryczny, by umniejszyć skalę problemu lub kogoś pocieszyć, podczas gdy to nie ma żadnej wartości praktycznej.

W czasach PHP4 też ciągle używało się nowych funkcji, bo język sam w sobie jest rozbudowany. Problemem jest ILOŚĆ tej nauki dzisiaj, a nie fakt, że ta nauka w ogóle jest potrzebna.

Nie chodziło mi o uczenie się nowych rzeczy dla samego uczenia się. Jeśli uważasz, że frontend idzie w złym kierunku, zmień obszar swoich zainteresowań na taki, który nie będzie dla Ciebie problematyczny, np. wspomniany Swift. Sama znajomość języka to nie wszystko, do tego dochodzi nauka Xcode, w przypadku aplikacji iOS będziesz musiał opanować storyboards, nie zapominajmy o testach, wersjach beta (TestFlight) oraz CocoaPods. Zanim zaczniesz publikować aplikacje w AppStore będziesz musiał nauczyć się jak to robić, a jeśli będziesz chciał zarabiać na tych aplikacjach, dochodzi kolejny element układanki - reklamy, subskrypcje, itp. Jak widzisz temat jest obszerny i pozwala na dalszy rozwój w kierunku, który nie składa się z nauki api kolejnej biblioteki.

Podsumowując:
Cytat
Wystarczy, że odpowiesz sobie na jedno zajebiście, ale to zajebiście ważne pytanie – co lubię w życiu robić. A potem zacznij to robić.

Napisany przez: SmokAnalog 27.06.2019, 23:22:43

Uważam, że frontend idzie w bardzo dobrym kierunku, tylko trochę okrężną drogą. Technologia przeglądarkowa powinna być bardziej elastyczna, a nie że kompilujemy trudne wymagania na stosunkowo proste języki, obchodząc przy tym wiele przeszkód świata webu.

Marzy mi się programowanie w pięknym języku (jak Swift), który byłby w miarę samowystarczalną dziedziną IT. Albo tworzenie czegoś bardzo kosmicznego, jak praca z blockchainem smile.gif Utknąłem trochę w tym webie, robię to już tak długo, że trudno mi się wydostać. Ale nie ukrywam, że web mnie fascynuje na maksa. Pracujemy w najbardziej odjechanym medium ze wszystkich, jesteśmy królami świata hehe.

Napisany przez: batman 28.06.2019, 00:39:08

Cytat
Utknąłem trochę w tym webie, robię to już tak długo, że trudno mi się wydostać.

Też czasami mam takie wrażenie. Dlatego za każdym razem gdy dopadają mnie takie myśli, zajmuję się czymś innym. Kiedyś bawiłem się w aplikacje mobilne, potem frontend, obecnie jest to devops. Z każdej takiej odskoczni wyciągam coś ciekawego co daje mi motywację do dalszej pracy, np. jakiś czas temu przerzuciłem się na pythona.

Napisany przez: mrc 28.06.2019, 08:05:53

Co do wypowiedzi phpion'a. Ja też pracowałem w Kohanie i pokochałem ten framework za jego prostotę. Działałem z kodem, gdzie klasy miały po 8k linijek, a metody po 500. O fuckup nietrudno. Dopiero kiedy zacząłem interesować się testowaniem automatycznym backendu to zrozumiałem, że prostota Kohany ma wiele drobnych zalet, ale również wady, które niepozwalają mi jako profesjonaliście na dalsze korzystanie z tego frameworka. Dziś jestem o wiele, wiele dalej. Wiem, co robię i że robię to dobrze. Mój kod jest testowalny, dzieli się na drobne kawałki, które łatwo jest wydzielić, otestować i zrefaktoryzować bez dotykania innych części kodu. Od pewnego czasu o błędach nie mówi mi klient, mimo że ciągle piszę w PHPie wink.gif

Napisany przez: SmokAnalog 28.06.2019, 08:59:28

Nie ma czegoś takiego jak doskonała testowalność kodu w dzisiejszych czasach. Języki są na to zbyt sztywne, zbyt dużo „dobrych praktyk” wykonuje się sztuczkami. Choćby taki dependency injection. Przecież w PHP tego nie ma, robimy to albo parametrami konstruktora lub metod (które przecież służą do czegoś innego), albo magią jak fasady w Laravelu.

Mam wrażenie, że ludzie trochę za bardzo dzisiaj są skupieni na stosowaniu tak zwanych dobrych praktyk, a stosując je często narażają projekt na dodatkowe błędy, bo niekiedy stosowanie tych praktyk bardzo komplikuje kod.

Napisany przez: mrc 28.06.2019, 09:24:42

100% testów nie da radę osiągnąć - zgadzam się. Całego świata nie otestujemy wink.gif Nie piszmy testów dla testów. Piszmy testy, które dają nam gwarancję, że nasza logika robi to, co powinna robić.

@SmokAnalog, sorry za offtop smile.gif

Napisany przez: sazian 28.06.2019, 20:44:34

@phpion
Ja bym jeszcze dodał że nie wolno się ze mnie śmiać tylko dlatego że zamiast pobierać bibliotekę composer która na 10 klas i 15 interfejsów, no i do tego zależy od 8 innych bililotek wolę napisać jedną funkcję która ma 10 linijek kodu i robi dokładnie to samo.

Napisany przez: Evinek 29.06.2019, 17:40:26

Cytat(sazian @ 28.06.2019, 21:44:34 ) *
@phpion
Ja bym jeszcze dodał że nie wolno się ze mnie śmiać tylko dlatego że zamiast pobierać bibliotekę composer która na 10 klas i 15 interfejsów, no i do tego zależy od 8 innych bililotek wolę napisać jedną funkcję która ma 10 linijek kodu i robi dokładnie to samo.


Ja właśnie tego nauczyłem się od szefa.
Jeśli chcemy coś prostego to napiszmy to samemu.
Spełnia zadanie - mamy wykonanie zadanie, idziemy z biznesem do przodu.
Co by było gdybyśmy skorzystali z zaawansowanej biblioteki?
Nauka biblioteki, implementacja biblioteki, ogarnięcie przypadków, które biblioteka w tym przypadku nie ogarnia, utrzymanie zależności (weź spróbuj zaktualizować inną bibliotekę, a wszystko się wysypie...), a potem za każdym razem wracaj do dokumentacji gdy chcesz zmienić czy poprawić jedną rzecz. Więcej czasu spędzamy na analizowaniu i czytaniu dokumentacji biblioteki niż samym rozwijaniu produktów.



Ja również zacząłem więcej pracować z mocnym backendem, tzn. docker, skrypty bash czy python. O wiele przyjemniejsza praca.
Najwięcej płaczu było gdy pracowało się z pakietami NPM. Tam to dopiero jest kosmos, a ile to cholerstwo waży...


Na początku mój świat programowania chciał być idealny. Ale nauczyłem się w pracy, że tak nie da rady, a po prostu trzeba iść do przodu - ale najważniejsze aby to było przyjemnością.
Dlatego właśnie trzeba nauczyć się rozdzielać te wszystkie aspekty i mądrze decydować by praca szła do przodu, ale też była z tego frajda - w tym rozwiązywanie problemów swoich, a nie innych osób (bibliotek). smile.gif

Napisany przez: SmokAnalog 29.06.2019, 17:43:09

I niech to, że ciężki backend jest dziś „przyjemny”, będzie najlepszym dowodem gdzie to wszystko zabrnęło.

Napisany przez: athabus 29.06.2019, 17:58:24

No to ja chyba jakiś dziwny jestem, bo mnie z kolei właśnie jara programowanie w oparciu o interfejsy, wysoki poziom abstrakcji, wyspecjalizowane do maksimum klasy, często z 1 metodą publiczną itp. Po pierwsze i najważniejsze przejście na taki styl pisania dało mi duża frajdę z programowania bo właśnie to "prosto do celu" bardzo mnie męczyło w PHP.
Po drugie wiele razu już zdarzyło mi się, dojść do momentu, gdzie nagle bardzo mocno zmieniały się założenia w jakimś projekcie, spodziewam się, że będzie sporo pracy, otwieram swój kod, a tam jedna klasa do wymiany i bang - działa. Wszystko właśnie dzięki tej abstrakcji i generalizacji.
Czy taki sposób pisania jest szybszy? Sam nie wiem - czasami czuję, że idzie spory overengineering i można byłoby coś napisać odrobinę szybciej, ale z drugiej strony potem mam większą satysfakcję wracając do swojego kodu i mogąc go refaktorować z łatwością.

Ogólnie mi bardzo odpowiada przenoszenie praktyk z Javy do PHP (oczywiście z rozsądkiem) - miałem to szczęście, że ktoś poświęcił mi wiele czasu aby otworzyć mi oczy na to podejście i zrozumieć o co naprawdę chodzi w OOP. Teraz wiele rzeczy jakoś samo mi się w głowie układa i widzę wszelkie zależności, buduje mi się taki big picture z lotu ptaka. W wielu obszarach brakuje mi jeszcze skilii, ale nad tym pracuje. Na przykład ostatnio trochę zerknąłem w testy i próbując napisać trochę testów do swoich starych klas zrozumiałem w praktyce wiele rzeczy, które wkładał mi do głowy mój "mentor", a które trochę olewałem "bo po co tak komplikować".

Druga sprawa to podoba mi się podejście Phpiona (poza tą prostotą i tęsknotą do Kohana ;-) ) i sam chyba też tak trochę mam. Trzeba mieć swoje "core skills", bo one nas żywią, ale warto też robić sporo skoków w bok - a to devops, a to frontend - dobra zajawka na coś jest zawsze na propsie i zapobiega wypaleniu. Ja teraz jestem na takim etapie, że doby mi nie starcza aby liznąć tych wszystkich obszarów, które chciałbym zgłębić.

Napisany przez: SmokAnalog 29.06.2019, 18:05:06

Nikt tu nie mówił o niechęci do złożonej struktury kodu, chyba że coś przeoczyłem?

Napisany przez: athabus 29.06.2019, 18:43:58

No jak tak to odebrałem - np. post Phpiona, czy posty o tęsknocie za starymi, dobrymi czasami. Może faktycznie trochę za dużo między wierszami czytam.


Napisany przez: phpion 30.06.2019, 22:45:10

Generalnie dobrze odczytałeś moje intencje. Może nie chodziło mi stricte o Kohanę, ale akurat to był framework na którym pracowałem w tych "lepszych czasach" więc siłą rzeczy skojarzenie jest dość silne. Chodzi mi o to, że wówczas czułem że panuję nad całym projektem. Dołączałem biblioteki PHP jakie chciałem, a nie pierdyliard dodatkowych zależności - i jakoś to działało. Dołączałem jQuery + pluginy, starałem się wszystko trzymać "w jednej kupie". Tak samo style - też jakiś porządek panował. Teraz korzystając z zewnętrznych rozwiązań jest w zasadzie wolna amerykanka. Wspomniałem, że jestem purystą - tak. I duperele mnie drażnią. Pamiętam jak korzystając z PostgreSQL i chcąc dodać nową kolumnę nie było opcji ustalenia jej położenia, a zawsze była dodawana na końcu. Już takie coś mnie drażniło. Kończyło się na tym, że tabelę usuwałem i tworzyłem na nowo w kolejności kolumn jaka mi odpowiadała. Dlatego drażni mnie, że aktualnie wykonuje się 1 polecenie, które zaciąga X pakietów - dla mnie to powoduje burdel. Rzadko również korzystałem z gotowych modułów bo zawsze coś mi nie pasowało. Mam tu na myśli całe moduły (strzelam: do obsługi ankiet), a nie biblioteki (typu generowanie PDF).

Uparłem się na krytykowanie Symfony bo ten framework wiedzie prym i wyznacza aktualne trendy, które mi osobiście nie do końca odpowiadają. Pracowałem na Symfony 1 i przyznam, że całkiem dobrze to wspominam. No może poza generatorem admina, który na pierwszy rzut oka robił wrażenie "wow", ale gdy przyszło do bardziej skomplikowanych spraw to się zaczynały schody. Potem to już zaczęło się dla mnie udziwnianie i przerost formy nad treścią.

Jeśli natomiast chodzi o Kohanę to zawsze będę jej bronił. Ok, może w porównaniu chociażby do ZF1 kod był wręcz laciki, ale kurde działał smile.gif I nie spotkałem frameworka, który miałby lepiej rozwiązany mechanizm walidacji danych, internacjonalizacji, kaskadowości plików (chyba żaden nie ma takiego jak Kohana - idealny pod SaaS) czy... (czekam na lincz) ORM. Tak, pod kątem ORM moim zdaniem/w moim odczuciu/dla mnie Kohana była wygodniejsza w użyciu niż Doctrine czy inny Propel.

Więc podsumowując: chciałbym by wróciły czasy gdzie więcej spada na barki programisty, a mniej jest magii. Więcej od niego zależy, a nie od tego jakie polecenia wykona.

Napisany przez: batman 3.07.2019, 01:49:44

Cytat(phpion @ 30.06.2019, 23:45:10 ) *
chciałbym by wróciły czasy gdzie więcej spada na barki programisty, a mniej jest magii. Więcej od niego zależy, a nie od tego jakie polecenia wykona.

Przesiądź się na django. Framework odwala za Ciebie nudną robotą, zostawiając Tobie to, co najlepsze - stworzenie logiki aplikacji. Ogólnie odnoszę wrażenie, że PHP na siłę chce być pro/enterprise. Aplikacje/frameworki obudowane są w coraz więcej warstw, jeśli chcesz zrobić coś o czym autor nie pomyślał, musisz przekopać cały projekt.

Napisany przez: vokiel 3.07.2019, 20:19:14

Cytat(phpion @ 30.06.2019, 23:45:10 ) *
Jeśli natomiast chodzi o Kohanę to zawsze będę jej bronił.


Kohana była kochana zakochany.gif Framework, który można było w kilka wieczorów poznać na wylot, widzieć dokładnie co i jak, gdzie się dzieje. Poprawić po swojemu nie ingerując w core - właśnie dzięki kaskadowości. Ciągle po godzinach rozwijam projekt, który zacząłem w 2011 r jeszcze w Kohana 3.0.9. I o ile teraz programowanie w Symfony mi nie przeszkadza, to jeszcze łapię się na tym, że nie do końca wiem co się stało, jaka magia się odpaliła. Na szczęście obecnie taki PhpStorm świetnie sobie radzi w debugowaniu (nawet szablonów Twiga).

Napisany przez: SmokAnalog 3.07.2019, 20:32:18

Co by nie mówić, Laravel też jest ko©hany smile.gif

Napisany przez: athabus 7.07.2019, 09:50:13

Tylko rodzi się pytanie, czy my musimy wiedzieć co się dzieje pod maską? Bo w sumie OOP powstało na bazie tego, że programista nie musi wiedzieć co się dzieje tylko ma korzystać z interfejsu i dana rzecz ma działać. Jak nie działa tak jak oczekuje tego programista, to powinny istnieć instrumenty umożliwiające mu zmianę tego działania bez ingerencji w core. Kod jest oczywiście przez to większy i bardziej skomplikowany, ale przypomnijcie sobie ile kiedyś trwało wyklepanie prostego CRUDA, a ile trwa dzisiaj z użyciem Symfony. Ja wiele lat temu bardzo zraziłem się do programowania przez to, że właśnie te trywialne rzeczy zajmowały tyle czasu.

Dzisiejsze programowanie jest na tyle złożone, że nikt tak na prawdę nie wie jak działa wszystko. Mamy teraz czasy osób, które muszą mieć ogólny przegląd pola + specjalizację w jakiejś dziedzinie.

Obecnie pracuję w Magento i bez przesady powiem, że w firmie nie ma ani jednej osoby, która zna ten system/framework na wylot. Myślę, że nawet w samym Adobe nie mają takiej osoby - i mówię tu tylko o części backendowej. Z takim stanem rzeczy się pogodziłem - wystarczy mi świadomość, że mam big picture systemu + jak potrzebuję się czegoś dowiedzieć to mam debugger (bo dokumentacji w przeciwieństwie do Symfony czy Laravela praktycznie nie ma).

PHP dopiero wchodzi w etap kodu enterprise, ale wydaje się (mi), że taka będzie tendencja. Od wersji 7 zaczęły się zmiany w tym kierunku - otrzymaliśmy jeden z najwydajniejszych języków skryptowych z kosmicznie (jak na język skryptowy) rozwiniętymi opcjami OOP, silnym typowaniem, trybem strict, gdyby wersja 8 postanowiła zerwać z kompatybilnością wsteczną w stosunku do części głupich rozwiązań to już w ogóle byłby kosmos.
Język się mocno profesjonalizuje, pojawia się ogromna ilość profesjonalnego kodu, Composer do zarządzania zależnościami itp.

Mini stronki / proste cms'y to już raczej przeszłość. Oczywiście tutaj PHP będzie dalej istniał, bo się do tego zastosowania nadaje, ale też będzie z tego segmentu wypierany przez inne technologie (np. RoR do prototypów aplikacji, Node do prostego backendu, bo wtedy jeden programista ogarnia front i backend itp). PHP moim zdaniem zacznie konkurować z Javą o klienta enterprise. Mnie osobiście to cieszy bo praca ciekawsza i $$$ więcej. Oczywiście nie stanie się to w rok czy dwa, ale taka będzie tendencja -> spadek % udziału w rynku + wzrost udziału w rynku enterprise.

Ogólnie moim zdaniem trzeba się pogodzić z brakiem 100% kontroli, swoją niewiedzą itp i przestawić się na pracę z klockami, ciągłą niepewnością itp. Dokładnie na takiej samej zasadzie jak kiedyś ludzie przechodzili z języków niskopoziomowych na wysokopoziomowe. Oczywiście są też alternatywy - np. nie iść w kod enterprise tylko szukać nisz, gdzie potrzebne jest inne podejście - pytanie jednak czy to będzie php i web ogółem.

Napisany przez: sazian 7.07.2019, 18:04:39

Cytat(athabus @ 7.07.2019, 10:50:13 ) *
Tylko rodzi się pytanie, czy my musimy wiedzieć co się dzieje pod maską? Bo w sumie OOP powstało na bazie tego, że programista nie musi wiedzieć co się dzieje tylko ma korzystać z interfejsu i dana rzecz ma działać.

Tylko widzisz są tacy zboczeńcy(w tym ja wink.gif ) którzy powiedzą "o jakie fajne ! A jak to działa ?".
Wiem że to może głupie ale lubię wiedzieć jak działa coś z czego korzystam.
Jasne są takie przypadki jak paypal express, imoje twisto czy logowanie przez fb/gmail gdzie po prostu pobieram i nie pytam co tam się dzieje. Skoro twórcy "zewnętrznych rozwiązań" byli tak mili że coś udostępniają to z tego korzystam zakładając że jest to zrobione dobrze.
Ale jeśli mają to być biblioteki/klasy do robienia cache, routingu, i18n, l10n, obsługi logów czy komunikacją http to lubię tak dla spokojności wiedzieć jak one działają.

To trochę tak jak pracując na froncie(jakkolwiek dziwnie by to nie brzmiało wink.gif ) zobaczysz coś nowego, fajnego na stronie i pierwsze co robisz to F12.
Ja mam tak samo z php, jak mam z czegoś skorzystać to pierwsze co robię ctrl+click i pokaż kotku co masz w środku.
A gdy już zobaczę i nie do końca rozumiem co się w tym kodzie dzieje to czuję się z tym źle i bardzo niechętnie z tego korzystam.

Jest głupie i pewnie bezsensowne, ale co poradzę że już tak mam wink.gif

Napisany przez: SmokAnalog 8.07.2019, 14:41:30

Moim zdaniem to jest jedna z różnic między CMS-em a frameworkiem. W CMS-ach też nie analizuję każdej funkcjonalności, ale już we frameworku owszem. Lubię wiedzieć jak jest zaimplementowana funkcjonalność, na której buduję swój kod. Analiza Laravela sprawia mi też przyjemność, bo nie muszę się łapać za głowę w rozczarowaniu, że coś brzydko zrobiono (a np. z WordPressem tak się często kończyło dłubanie w core).

Napisany przez: athabus 8.07.2019, 17:49:38

Ale Panowie oddzielmy kilka spraw. Po pierwsze nie ma nic złego w ciekawości i zajrzeniu jak coś działa, nawet jeśli działa i nie trzeba nic naprawiać. To całkiem zdrowy objaw. Jeśli natomiast ktoś chce mieć 100% wiedzy na temat jak działa wszystko to już nie jest zdrowe, chyba że to praca hobbystyczna a nie zarobkowa. W oprogramowaniu enterprisowym tak się nie da, bo po prostu kodu jest zbyt wiele. Nad tym kodem pracują tysiące ludzi, zmienia się praktycznie każdego dnia - w normalnej pracy klienckiej nie da się nadążać za tymi zmianami, a co dopiero mieć głębokie zrozumienia jak WSZYSTKO działa. Dla przykładu request w trybie developerskim ładuje około ~3.000 klas, drobna zmiana w konfiguracji kontenera dependencji może wywrócić całą tą logikę do góry nogami. Do tego dochodzą jeszcze typy wirtualne, konfiguracja, auto-generowany kod, różnego rodzaju varnishe, rabbity, zewnętrzne integracje, systemy typu mcom itp itd.

Ogólnie moim zdaniem w oprogramowaniu enterprise trzeba się po prostu pogodzić z tym, że odpowiadamy za małą cząstkę kodu - dlatego ten kod jest właśnie tak napisany jak jest - tj. w oparciu o SOLID. Póki działa to możesz go używać. Jak potrzebujesz rozszerzyć to zgodnie z OCP jest to tak zrobione, że możesz go rozszerzyć bez zmiany core itd. Idzie ogromy overengenering, kupa abstrakcji itp itd, ale jak klient chce gruszki na wierzbie, to się pytasz jakie mają być duże (i czy go stać ;-) ).

BTW co do różnicy framework vs CMS to w dużym oprogramowaniu to się zaciera. Na przykład znowu w Magento, które jest przecież CMS'em, masz też framework, który złożonością przypomina Symfony.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)