{"id":229964,"date":"2022-12-01T18:59:00","date_gmt":"2022-12-01T15:59:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=229964"},"modified":"2022-11-09T19:29:38","modified_gmt":"2022-11-09T16:29:38","slug":"wyslij-lub-zgin-choc-z-jakoscia-lub-bez","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/pl\/wyslij-lub-zgin-choc-z-jakoscia-lub-bez\/","title":{"rendered":"Wy\u015blij lub zgi\u0144 (cho\u0107 z jako\u015bci\u0105 lub bez?)"},"content":{"rendered":"\n<p>Jednym z pomys\u0142\u00f3w, kt\u00f3re mnie intryguj\u0105, jest mentalno\u015b\u0107 \u201ewy\u015blij to albo zgi\u0144&quot;. Je\u015bli chodzi o to, jak si\u0119 to nazywa, istniej\u0105 jej odmiany, ale idea stoj\u0105ca za t\u0105 fraz\u0105 jest prosta:<\/p>\n<p>Je\u015bli masz pomys\u0142, przeprowad\u017a go od pomys\u0142u do produktu tak szybko, jak to mo\u017cliwe.<\/p>\n<p>Jasne, pomys\u0142 dotarcia do koncepcji produktu mo\u017cna r\u00f3wnie\u017c nazwa\u0107 \u201ekoncepcj\u0105 na got\u00f3wk\u0119&#8221;, ale nigdy nie ma gwarancji, \u017ce wygenerujesz got\u00f3wk\u0119, prawda? Jest jednak gwarancja, \u017ce \u200b\u200buda si\u0119 z niego zrobi\u0107 namacalny produkt.<\/p>\n<p>A w kr\u0119gach programistycznych zawsze jest wiele rzeczy, kt\u00f3re dana osoba mo\u017ce argumentowa\u0107 za lub przeciw pomys\u0142owi. W mojej g\u0142owie dwa plusy i minusy, kt\u00f3re przychodz\u0105 mi od razu do g\u0142owy, to:<\/p>\n<ol>\n<li><strong>Zawodowiec<\/strong>. Szybkie wykonanie czego\u015b, co dzia\u0142a i [potencjalnie] generuje przychody.<\/li>\n<li><strong>Con<\/strong>. S\u0142aba architektura, konserwacja, skalowalno\u015b\u0107, testowalno\u015b\u0107 i tak dalej.<\/li>\n<\/ol>\n<p>Kr\u00f3tko m\u00f3wi\u0105c, mo\u017ce istnie\u0107 kompromis mi\u0119dzy tym, jak szybko mo\u017cna wys\u0142a\u0107 co\u015b na rynek, a architektur\u0105 projektu. Czasami jest, czasami nie. Og\u00f3lnie rzecz bior\u0105c, uwa\u017cam, \u017ce mo\u017cna bezpiecznie za\u0142o\u017cy\u0107 to pierwsze.<\/p>\n<p>Co wi\u0119cej, niekt\u00f3rzy mog\u0105 postrzega\u0107 to pierwsze jako \u0142atwe wyj\u015bcie, inni mog\u0105 postrzega\u0107 to drugie jako \u0107wiczenie w YAGNI lub, jeszcze pro\u015bciej, \u017ce problem mo\u017cna rozwi\u0105za\u0107, gdy tylko si\u0119 pojawi.<\/p>\n<p>Ale co to ma teraz wsp\u00f3lnego z czymkolwiek?<\/p>\n<h2>Wy\u015blij lub zgi\u0144?<\/h2>\n<p>Ca\u0142y pow\u00f3d, dla kt\u00f3rego po\u015bwi\u0119cam czas na pisanie o tym, jest taki, \u017ce jest to co\u015b, o czym ja i podejrzewam, \u017ce inni w naszej dziedzinie przynajmniej troch\u0119 si\u0119 zastanawiam. Wszystko to jest dobre, gdy m\u00f3wimy o tym w sensie abstrakcyjnym, ale spr\u00f3buj\u0119 powi\u0105za\u0107 to z czym\u015b bardziej realistycznym.<\/p>\n<h3>Pewnego razu\u2026<\/h3>\n<p>Kilka lat temu rozw\u00f3j front-endu polega\u0142 na zawijaniu tre\u015bci w elementy inline lub blokowe i stylizowaniu ich za pomoc\u0105 podstawowego CSS?<\/p>\n<p>Mieli\u015bmy zaawansowane narz\u0119dzia do pracy z naszym backendowym kodem, ale front-end by\u0142 stosunkowo prosty, pomijaj\u0105c by\u0107 mo\u017ce standardy kodowania narzucone przez firm\u0119 lub zesp\u00f3\u0142, z kt\u00f3rym wsp\u00f3\u0142pracowali\u015bmy.<\/p>\n<h3>Ale wtedy\u2026<\/h3>\n<p>Nasze urz\u0105dzenia rozwin\u0119\u0142y si\u0119 (co dla przypomnienia uwa\u017cam za dobr\u0105, a nawet naturaln\u0105 rzecz w technologii). Wraz ze wspomnianym post\u0119pem, mamy teraz narz\u0119dzia przeznaczone specjalnie do programowania front-end, kt\u00f3re s\u0105 tak samo zaawansowane pod pewnymi wzgl\u0119dami, jak te, kt\u00f3rych u\u017cywamy do oprogramowania zaplecza.<\/p>\n<p>Jasne, mamy takich, kt\u00f3rzy s\u0105 \u201epe\u0142nymi programistami&#8221;, ale z rado\u015bci\u0105 przyznaj\u0119, \u017ce o wiele wygodniej jest mi pracowa\u0107 po stronie serwera ni\u017c front-endu. Je\u015bli pracuj\u0119 na froncie, zwykle trzymam si\u0119 narz\u0119dzi, z kt\u00f3rymi jestem zaznajomiony i staram si\u0119 trzyma\u0107 barierek wyznaczonych przez pas, na kt\u00f3rym pracuj\u0119.<\/p>\n<p>Pomaga skoncentrowa\u0107 si\u0119 na rozwoju, szybko i sp\u00f3jnie we wszystkich projektach.<\/p>\n<h2>Ok, wi\u0119c po co?<\/h2>\n<p>Ta sekcja sama w sobie mo\u017ce by\u0107 d\u0142ugim postem, ale nie jestem zainteresowany posuwaniem si\u0119 tak daleko. Zamiast tego wezm\u0119 teraz jeden wycinek tego, jak dzia\u0142a programowanie front-end i zobacz\u0119, czy nie mog\u0119 go u\u017cy\u0107, aby wyja\u015bni\u0107 sw\u00f3j punkt widzenia.<\/p>\n<h3>Coraz bezczelny<\/h3>\n<p>We\u017amy na przyk\u0142ad to, czym sta\u0142 si\u0119 CSS. Mamy j\u0119zyki nad j\u0119zykami (takie jak <strong><a href=\"https:\/\/sass-lang.com\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Sass<\/a><\/strong>, kt\u00f3ry znajduje si\u0119 na szczycie lub dodaje do podstawowego CSS).<\/p>\n<p>Mamy te\u017c procesory, kt\u00f3re kompiluj\u0105, minimalizuj\u0105, szarpi\u0105 i uniemo\u017cliwiaj\u0105 nam zobaczenie naszej pracy, zanim pewne b\u0142\u0119dy i ostrze\u017cenia zostan\u0105 naprawione ze wzgl\u0119du na jako\u015b\u0107. (Nie uwa\u017cam tego za co\u015b z\u0142ego, ale pokazuje rosn\u0105cy poziom z\u0142o\u017cono\u015bci \u2013 a mo\u017ce dojrza\u0142o\u015bci \u2013 naszego oprzyrz\u0105dowania front-endowego).<\/p>\n<blockquote>\n<p>Rozw\u00f3j front-endu jest zbyt \u0142atwy, zr\u00f3bmy to bardziej z\u0142o\u017conym, aby\u015bmy mogli czu\u0107 si\u0119 m\u0105drzejsi w\u015br\u00f3d naszych wsp\u00f3\u0142pracownik\u00f3w, kt\u00f3rzy najwyra\u017aniej maj\u0105 do czynienia z bardziej \u201ekrytycznymi&#8221; aspektami biznesu. Pami\u0119taj, \u017ce to konkurs.<\/p>\n<\/blockquote>\n<p><strong><a href=\"https:\/\/medium.com\/@julienetienne\/unnecessarily-complicating-front-end-development-to-feel-like-a-smarter-person-5e555fe650ed\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Ten artyku\u0142<\/a><\/strong> ma humorystyczne podej\u015bcie do ca\u0142ej sprawy.<\/p>\n<h3>Rozs\u0105dny stopie\u0144 jako\u015bci<\/h3>\n<p>\u017beby by\u0142o jasne, nie m\u00f3wi\u0119, \u017ce to z\u0142a rzecz, ale m\u00f3wi\u0119, \u017ce rzeczy, kt\u00f3re kiedy\u015b by\u0142y zdegradowane po stronie serwera lub do j\u0119zyk\u00f3w skompilowanych, teraz rozci\u0105gaj\u0105 si\u0119 na ca\u0142y stos programistyczny aplikacji internetowej.<\/p>\n<p>Aby by\u0107 tak krystalicznie czystym, jak to tylko mo\u017cliwe: jestem za jako\u015bci\u0105. Wysy\u0142anie rzeczy bez jakiegokolwiek stopnia mo\u017ce by\u0107 postrzegane jako \u0107wiczenie z nieodpowiedzialno\u015bci.<\/p>\n<p>Ale wierz\u0119 r\u00f3wnie\u017c, \u017ce nale\u017cy zachowa\u0107 r\u00f3wnowag\u0119 mi\u0119dzy pisaniem najbardziej optymalnego, funkcjonalnego i wydajnego kodu mo\u017cliwego przy ograniczeniach czasowych i bud\u017cetowych.<\/p>\n<p>Nie wierz\u0119, \u017ce bez wzgl\u0119du na to, jak bardzo staramy si\u0119 to narzuca\u0107 sobie, \u017cyjemy w deweloperskiej utopii, w kt\u00f3rej mo\u017cemy optymalizowa\u0107, projektowa\u0107 i wdra\u017ca\u0107 nieskazitelne systemy w ka\u017cdym projekcie.<\/p>\n<p>Wydaje si\u0119 jednak, \u017ce starali\u015bmy si\u0119, aby go stworzy\u0107, czy\u017c nie?<\/p>\n<p>Ale czy w pewnym momencie nie warto zapyta\u0107, czy wszystkie narz\u0119dzia, kt\u00f3re tworzymy i wszystkie rzeczy, kt\u00f3re dodajemy do naszych projekt\u00f3w, usuwaj\u0105 to, co w pierwszej kolejno\u015bci wprowadzi\u0142o nas do bran\u017cy? To prawda, dla niekt\u00f3rych z nas jest to prawdopodobnie inne. Czy uczciwie jest zapyta\u0107, \u017ce posiadanie pomys\u0142u, napisanie kodu, kt\u00f3ry go urzeczywistni, i zobaczenie, jak rozwi\u0105zuje problem, jest tym, co sprowadzi\u0142o nas do owczarni?<\/p>\n<p>W tym momencie jednak wprowadzili\u015bmy tak wiele narz\u0119dzi, \u017ce uruchomienie \u015brodowiska programistycznego dla aplikacji internetowej dzia\u0142aj\u0105cej od bazy danych do przegl\u0105darki jest trudnym zadaniem.<\/p>\n<p>Tak wiele rzeczy musi si\u0119 wydarzy\u0107, zanim b\u0119dziemy faktycznie gotowi do pisania kodu, \u017ce samo podj\u0119cie pierwszych krok\u00f3w mo\u017ce sta\u0107 si\u0119 nu\u017c\u0105ce, a nawet nieco wyczerpuj\u0105ce.<\/p>\n<h2>Osobista, ostateczna opinia<\/h2>\n<p>Sk\u0142aniam si\u0119 ku egzekwowaniu silnych praktyk i narz\u0119dzi zorientowanych obiektowo w wielu projektach, nad kt\u00f3rymi pracuj\u0119 z moim zespo\u0142em i kt\u00f3re wysy\u0142am dla innych, poniewa\u017c wiem z do\u015bwiadczenia, \u017ce \u200b\u200bczas, pieni\u0105dze i dane mog\u0105 zosta\u0107 utracone z powodu \u201e t adresowany ze wszystkich stron.<\/p>\n<p>Nie oznacza to, \u017ce wysy\u0142ka czego\u015b szybko neguje to wszystko. Ale proces i organizacja kodu stoj\u0105cego za projektem to co\u015b, co bardzo trudno mi zignorowa\u0107 do tego stopnia, \u017ce \u200b\u200bwydaje mi si\u0119 prawie parali\u017cuj\u0105ce, gdy wysy\u0142am co\u015b, co nie zosta\u0142o przetestowane i zweryfikowane w najwy\u017cszym mo\u017cliwym stopniu (a nawet wtedy s\u0105 problemy).<\/p>\n<p>Z drugiej strony jest cz\u0119\u015b\u0107 mnie, kt\u00f3ra chce poeksperymentowa\u0107 z jednym lub dwoma pomys\u0142ami za mentalno\u015bci\u0105 \u201ewy\u015blij lub zgi\u0144&#8221;, po prostu zobacz, jak szybko mo\u017cna co\u015b zbudowa\u0107, wys\u0142a\u0107 i wygenerowa\u0107 dowolny rodzaj przychod\u00f3w, niezale\u017cnie od tego, jak nieskazitelne podstaw\u0105 kodu jest.<\/p>\n<p>I mo\u017ce spr\u00f3buj\u0119 tego z kilkoma nadchodz\u0105cymi projektami.<\/p>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">\u0179r\u00f3d\u0142o nagrywania:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/tommcfarlin.com\" class=\"external external_icon\">tommcfarlin.com<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Chocia\u017c uwa\u017cam, \u017ce pomys\u0142 \u201ewy\u015blij lub zgi\u0144\u201d jest intryguj\u0105cy, nadal zmagam si\u0119 z tym, jak wiele jest zbyt wiele w kwestii zapewnienia jako\u015bci.<\/p>\n","protected":false},"author":1,"featured_media":163522,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[721],"tags":[1169],"class_list":["post-229964","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-deweloper","tag-affiai-pl"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/posts\/229964","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/comments?post=229964"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/posts\/229964\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/media\/163522"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/media?parent=229964"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/categories?post=229964"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/tags?post=229964"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}