🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.programming
Article #217010

Re: Web development

#217010
From: Maciej Sobczak
Date: Thu, 21 May 2020 19:03
70 lines
6842 bytes
> Owszem, jest tych braków coraz mniej, ale są, a po drugie nie w każdej
> przeglądarce wszystko dsziała identycznie, dlatego stosuje się tzw.
> polyfille i biblioteki ujednolicające interfejs, podam dwa przykłady:
> https://underscorejs.org/
> https://github.com/axios/axios

Pojedyncze biblioteki są bezpieczniejszym rozwiązaniem, niż framework, który z natury narzuca więcej. Ja nie mam problemu z bibliotekami.

> Niemniej, gdy znasz np. Bootstrapa to czytając HTMLa z użytymi klasami BS
> od razu wiesz jak to się zachowa, a gdy masz zamknięte wynalazki to musisz
> szukać źródeł i ryć.

Ale ja nie chcę mieć zamkniętych wynalazków, skoro ustaliliśmy, że ostatnio (i z biegiem czasu) wszystko co potrzeba, jest w standardzie.

> No... albo tak albo nie... a na końcu okazuje się, że pod presją czasu,
> product managera lub czegokolwiek ten wasz framework to potworek o dwunastu
> głowach i sześciu ogonach, którego tak naprawdę nikt już nie ogarnia. A
> dokumentacja? ...eee... no nie pisaliśmy, bo każdy znał na 100% ;-)

Jest takie ryzyko. Ale ja widzę, że to samo dzieje się z zewnętrznymi frameworkami. Gdy autorzy już ich nie ogarniają, to powstaje nowy framework. Jeszcze fajniejszy. I pozbawiony wad poprzedniego frameworka!

To nie jest tak, że zewnętrzne rozwiązania się nigdy nie degradują. Degradują się a nawet z tego powodu wychodzą z użycia. ActiveX? Applety? Flash? To są oczywiste archaizmy, ale świat frameworków niebezpiecznie przyśpieszył i do tej grupy dołączają frameworki, które jeszcze niedawno były cool.

> Zależy o jakim poziomie mówisz, bo ten z samego dołu developer to klepacz
> kodu, nie zna i nie musi znać dziedziny, on ma zadanka w tablicy agilowej i
> koduje.

Ja pracowałem w miejscach, gdzie jednak "ten z samego dołu" musiał wiedzieć, co koduje. Bo by bez tej wiedzy po prostu nie zakodował. I ta wiedza jest zwykle trudniejsza, niż znajomość frameworka.

> > Od kiedy pisanie dokumentacji jest złe? :-)
> 
> Kto twierdzi, że złe? Jest kosztowne.

Policzmy. Nie za bardzo mam na czym liczyć poza moim projektem YAMI4, ale skoro go mam, to policzmy. Lubię pisać "prozę" i nigdy nie słyszałem zarzutu, że moja dokumentacja ma jakieś braki, więc uważam, że to właściwy przykład. Otóż w tym projekcie dokumentację robi Doxygen z odpowiednich komentarzy w kodzie, których jest... 5%, jeśli liczyć ilość linii. To jest wartość obiektywna, którą potrafię zmierzyć - ale jest jeszcze odczucie subiektywne, że ta część dokumentacyjna się zmienia najrzadziej (np. tam się nie robi optymalizacji, nie poprawia algorytmów, nie debuguje, itd.), więc wysiłek w relacji do całości jest pewnie rząd, jeśli nie dwa, wielkości mniejszy.

I to jest ten "koszt". Czyli żaden koszt.
Prawdziwym kosztem jest ten właściwy kod a nie dokumentacja. I tylko ten właściwy kod może być motywacją do tego, żeby go nie pisać i postawić na istniejący framework.

> > Z pierdylionem rzeczy, których nie potrzebuję, ale które muszę zintegrować, i zapłacić za nie pamięcią, pasmem, itp.
> 
> Jeśli wybierzesz nieodpowiedni framework to tak.

Słusznie. A skąd mam wiedzieć, czy jest odpowiedni?
Zwykle wygląda to tak, że tworząc zespół do kodu, którego jeszcze nie ma, zatrudniam pierwszego jednorożca, który wybiera framework. Potem on odchodzi z zespołu (albo awansuje - na jedno wychodzi) a reszta się męczy z konsekwencjami jego wyborów z wczesnego etapu projektu.

Więc skąd mam wiedzieć, że mój pierwszy zatrudniony jednorożec wybierze odpowiedni framework?

> To powiedz mi czym się różni znalezienie programisty do dobrego,
> udokumentowanego i przetestowanego frameworka, który dziś już nie jest w
> pierwszej piątce od znalezienia programisty do autorskiego, zamkniętego i
> dużo mniej dopracowanego frameworka pisanego w firmie?

Tym, że w drugim przypadku zatrudniam programistę do standardowego stacku, bo z jego punktu widzenia właśnie to zobaczy w firmie. A to, że część kodu w projekcie zostanie wydzielona przez refaktoryzację do osobnego bytu (i czy w ogóle to nastąpi), to jest szczegół, który w ogóle nie musi przeszkadzać w rekrutacji.

Natomiast w pierwszym przypadku muszę napisać w ofercie pracy, że szukam programisty do frameworka X. I tym ogłoszeniem od razu zniechęcam tych, którzy tego frameworka nie znają. Czyli ograniczam target, a przez to zwiększam koszt.

> >> Oraz olbrzymią bazę społecznościową,
> > 
> > Ale sfragmentowaną bardziej (a przez to mniej dostępną), niż bazę społecznościową bardziej podstawowego stosu.
> > I przy bardziej podstawowym stosie mogę tej bazy społecznościowej potrzebować mniej.
> 
> Nawet mocno pofragmentowana jest o kilka rzędów większa niż Twój zespół i
> wszyscy znajomi programiści.

Nie, bo moja docelowa społeczność to standardowy stack. Ta społeczność jest zawsze największa. Ja nigdy nie zapytam na grupie dyskusyjnej, czy ktoś wie, jak się coś robi w moim własnym frameworku. Natomiast w przypadku cudzego frameworku już bym może musiał pytać.

Czyli dalej nie wiemy, co się bardziej opłaca.

-- 
Maciej Sobczak * http://www.inspirel.com
Technical Details
Message-ID: <e2a552ad-819e-4197-aed3-d330b84aa9c0@googlegroups.com>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!2.eu.feeder.erje.net!feeder.erje.net!news.uzoreto.com!tr1.eu1.usenetexpress.com!feeder.usenetexpress.com!tr3.iad1.usenetexpress.com!border1.nntp.dca1.giganews.com!nntp.giganews.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
References: <2ee1f3e1-980c-4d1a-aecc-2cadeb08b91a@googlegroups.com> <20200519113017.4d559ff4@mateusz> <3c0d45ed-2c20-4431-b007-1b4a13c78574@googlegroups.com> <1q7o2oicjcgwk.dlg@tyczka.com> <3b428b31-f46f-443d-89d1-15e881876f58@googlegroups.com> <1kr2f4mpb5ycy.dlg@tyczka.com>

Show Full Headers
Complete Article Headers
X-Received: by 2002:a0c:ea89:: with SMTP id d9mr147772qvp.241.1590087790520; Thu, 21 May 2020 12:03:10 -0700 (PDT)
X-Received: by 2002:ac8:c0d:: with SMTP id k13mr12368094qti.136.1590087790192; Thu, 21 May 2020 12:03:10 -0700 (PDT)
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!2.eu.feeder.erje.net!feeder.erje.net!news.uzoreto.com!tr1.eu1.usenetexpress.com!feeder.usenetexpress.com!tr3.iad1.usenetexpress.com!border1.nntp.dca1.giganews.com!nntp.giganews.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: pl.comp.programming
Date: Thu, 21 May 2020 12:03:09 -0700 (PDT)
In-Reply-To: <1kr2f4mpb5ycy.dlg@tyczka.com>
Complaints-To: groups-abuse@google.com
Injection-Info: google-groups.googlegroups.com; posting-host=213.108.152.51; posting-account=bMuEOQoAAACUUr_ghL3RBIi5neBZ5w_S
NNTP-Posting-Host: 213.108.152.51
References: <2ee1f3e1-980c-4d1a-aecc-2cadeb08b91a@googlegroups.com> <20200519113017.4d559ff4@mateusz> <3c0d45ed-2c20-4431-b007-1b4a13c78574@googlegroups.com> <1q7o2oicjcgwk.dlg@tyczka.com> <3b428b31-f46f-443d-89d1-15e881876f58@googlegroups.com> <1kr2f4mpb5ycy.dlg@tyczka.com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <e2a552ad-819e-4197-aed3-d330b84aa9c0@googlegroups.com>
Subject: Re: Web development
From: Maciej Sobczak <see.my.homepage@gmail.com>
Injection-Date: Thu, 21 May 2020 19:03:10 +0000
Lines: 134
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit