Path: csiph.com!aioe.org!.POSTED.nyPK7k8oeDafdNpooDsxZQ.user.gioia.aioe.org!not-for-mail From: Mateusz Viste Newsgroups: pl.comp.programming Subject: Re: Web development Date: Tue, 19 May 2020 23:01:28 +0200 Organization: . . . Lines: 87 Message-ID: <20200519230128.50900fd8@mateusz> References: <2ee1f3e1-980c-4d1a-aecc-2cadeb08b91a@googlegroups.com> <20200519113017.4d559ff4@mateusz> <3c0d45ed-2c20-4431-b007-1b4a13c78574@googlegroups.com> NNTP-Posting-Host: nyPK7k8oeDafdNpooDsxZQ.user.gioia.aioe.org Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable X-Complaints-To: abuse@aioe.org X-Notice: Filtered by postfilter v. 0.9.2 Xref: csiph.com pl.comp.programming:33954 2020-05-19 o 13:32 -0700, Maciej Sobczak napisa=C5=82: > > Do powa=C5=BCnych rzeczy? Nie. =20 >=20 > A dlaczego? Bo w og=C3=B3le nie robi=C5=82e=C5=9B "powa=C5=BCnych rzeczy"= , czy te powa=C5=BCne > koniecznie robi=C5=82e=C5=9B/robi=C5=82by=C5=9B z frameworkami? Nie jestem web deweloperem, ale zdarza=C5=82o mi si=C4=99 zarz=C4=85dza=C4= =87 takimi projektami - w praktyce zawsze ko=C5=84czy=C5=82o si=C4=99 na jakim= =C5=9B Symfony, CakePHP czy innym NodeJS. > To jest pytanie o granice stosowalno=C5=9Bci tego pomys=C5=82u - tzn. > nie-frameworkowego web-developmentu. Granica - w moim skromnym mniemaniu - jest tylko jedna: koszt. > Ale wtedy kolejnym pytaniem by=C5=82oby, czy w takim projekcie warto mie= =C4=87 > w=C5=82asne rozwi=C4=85zanie, naturalnie dopasowane do projektu, w ramach > kt=C3=B3rego powsta=C5=82o, czy te=C5=BC obce, do kt=C3=B3rego trzeba od = poczatku naci=C4=85ga=C4=87 > projekt. Z (mojej) praktyki raczej wynika, =C5=BCe jest wr=C4=99cz odwrotnie - przy = jakim=C5=9B in-house potworku szybko okazuje si=C4=99, =C5=BCe ten potworek nie umie te= go albo tamtego (bo w pocz=C4=85tkowych specyfikacjach tego nie by=C5=82o), i = trzeba struga=C4=87 go na bie=C5=BC=C4=85co, dodawa=C4=87 wyj=C4=85tki, itd. Natom= iast gotowiec ma ten etap z regu=C5=82y ju=C5=BC za sob=C4=85. Korzystaj=C4=85 z niego rzesze pr= ogramist=C3=B3w w bardzo wielu projektach i dzi=C4=99ki inkrementalnym ulepszeniom daje rad= =C4=99, jednocze=C5=9Bnie zapewniaj=C4=85c sp=C3=B3jne API, przemy=C5=9Blane nazwy klas/funkcji/zmiennych, itp. > Czyli: bierzemy HTML+CSS+JS (bo powiedzmy, =C5=BCe si=C4=99 uzupe=C5=82ni= aj=C4=85 i > =C5=BCadnego z tych trzech nie mo=C5=BCe zabrakn=C4=85=C4=87) i... tylko = tyle, > przynajmniej po stronie klienckiej. Czy jest granica stosowalno=C5=9Bci > tego podej=C5=9Bcia i dlaczego jest w=C5=82a=C5=9Bnie tam? Koszt. Dlaczego? Bo wymy=C5=9Blanie ko=C5=82a na nowo kosztuje. Je=C5=9Bli = robisz to w ramach hobby to spoko - ale w biznesowym =C5=9Bwiecie ma=C5=82o kt=C3=B3ry = klient (z tych kt=C3=B3rych znam przynajmniej) zgodzi si=C4=99 op=C5=82aca=C4=87 t= akie przedsi=C4=99wzi=C4=99cie. Bo frontend ma dzia=C5=82a=C4=87, by=C4=87 gotow= y na wczoraj, i ma by=C4=87 tanio (tj. taniej ni=C5=BC konkurencja, przy tych samych wymagania= ch). > Eksperyment si=C4=99 nie uda=C5=82? Czy uda=C5=82 si=C4=99, ale dostarczy= =C5=82 argument=C3=B3w > przeciw? Uda=C5=82 si=C4=99 w sensie, =C5=BCe zapewni=C5=82 mi rozrywk=C4=99 na kilk= a wieczor=C3=B3w. Argument przeciw jest taki, =C5=BCe kompilowanie dziada za ka=C5=BCdym razem kiedy chc=C4=99 go wgra=C4=87 na now=C4=85 platform=C4=99 (+instalacja gcc = +ew. walki z linkerem) jest po drugim razie... nu=C5=BC=C4=85ce. Plik PHP natomiast wyst= arczy wrzuci=C4=87 i po prostu dzia=C5=82a. Do tego C nie proponuje wielu "oczywistych" (w =C5=9Bwiecie web) usprawnie=C5=84, kt=C3=B3re w PHP s=C4= =85 niejako od zawsze - i wraca leitmotiv odkrywania ko=C5=82a na nowo (tak g=C5=82upie rz= eczy jak np. "odczytaj warto=C5=9B=C4=87 pola z formularza"). No i PHP jednak du= =C5=BCo potrafi wybaczy=C4=87, a w C jedna liter=C3=B3wka potrafi zako=C5=84czy=C4= =87 si=C4=99 core dumpem. W trakcie pracy du=C5=BCo =C5=82atwiej zlokalizowa=C4=87 problem z = log=C3=B3w php ani=C5=BCeli analizowa=C4=87 wypis z gdb. W ko=C5=84cu po co=C5=9B te techn= ologie "webowe" kto=C5=9B wymy=C5=9Bli=C5=82. :) Mateusz