{"id":231415,"date":"2023-01-06T18:11:00","date_gmt":"2023-01-06T15:11:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=231415"},"modified":"2022-12-25T21:37:14","modified_gmt":"2022-12-25T18:37:14","slug":"naucz-sie-javascript-zapomnij-php","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/pl\/naucz-sie-javascript-zapomnij-php\/","title":{"rendered":"Naucz si\u0119 JavaScript, zapomnij PHP?"},"content":{"rendered":"\n<p>Zmieni\u0142 si\u0119 krajobraz WordPressa.<\/p>\n<p>Kilka lat temu wszyscy mieli\u015bmy za zadanie nauczy\u0107 si\u0119 <a href=\"https:\/\/www.youtube.com\/watch?v=KrZx4IY1IgU\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">j\u0119zyka JavaScript dog\u0142\u0119bnie<\/a> i s\u0142usznie. Wraz z pojawieniem si\u0119 <a href=\"https:\/\/github.com\/WordPress\/gutenberg\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Gutenberga<\/a> i projekt\u00f3w takich jak <a href=\"https:\/\/github.com\/Automattic\/wp-calypso\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Calypso<\/a> oczywiste jest, \u017ce JavaScript staje si\u0119 dominuj\u0105c\u0105 si\u0142\u0105 w WordPressie (nie wspominaj\u0105c o sieci jako ca\u0142o\u015bci), je\u015bli nie uwa\u017casz, \u017ce ju\u017c tak jest.<\/p>\n<p>A dla ka\u017cdego, kto przeczyta\u0142 <a href=\"https:\/\/blog.codinghorror.com\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Coding Horror<\/a> w ci\u0105gu ostatniej dekady, prawdopodobnie znasz prawo Atwooda:<\/p>\n<blockquote>\n<p>ka\u017cda aplikacja, kt\u00f3r\u0105 mo\u017cna napisa\u0107 w JavaScript, ostatecznie zostanie napisana w JavaScript.<\/p>\n<p><a href=\"https:\/\/blog.codinghorror.com\/the-principle-of-least-power\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Jeff Atwood<\/a><\/p>\n<\/blockquote>\n<p>Ale kiedy to si\u0119 sta\u0142o, wydaje si\u0119, \u017ce stworzy\u0142o to wyra\u017aniejszy podzia\u0142 mi\u0119dzy tym, co stanowi programist\u0119 front-end i programist\u0119 back-end w gospodarce WordPress.<\/p>\n<p>Osobi\u015bcie ciesz\u0119 si\u0119 z tego, poniewa\u017c jestem jeszcze bardziej ch\u0119tny do nauki, rozwoju i pracy nad back-endem w miar\u0119 rozwoju i zmian PHP. Ale to tylko ja i jest wi\u0119cej do zbadania.<\/p>\n<p>Kiedy s\u0142yszymy, \u017ce powinni\u015bmy nauczy\u0107 si\u0119 wi\u0119cej JavaScriptu, pojawia si\u0119 kilka pyta\u0144, kt\u00f3re moim zdaniem s\u0105 wa\u017cne:<\/p>\n<ul>\n<li>Czy my, jako wsp\u00f3\u0142tw\u00f3rcy i programi\u015bci tworz\u0105cy rzeczy dla i na tym projekcie, zbyt d\u0142ugo zaniedbywali\u015bmy JavaScript i otaczaj\u0105ce go technologie?<\/li>\n<li>Czy musimy przygotowa\u0107 si\u0119 na kolejn\u0105 epok\u0119, \u017ce tak powiem, w kt\u00f3rej wi\u0119kszo\u015b\u0107 rozwi\u0105za\u0144 jest pisana w JavaScript?<\/li>\n<li>Czy zak\u0142ada si\u0119, \u017ce w miar\u0119 rozwoju j\u0119zyka stale podnosimy nasze umiej\u0119tno\u015bci w zakresie PHP?<\/li>\n<li>Czy od samego pocz\u0105tku s\u0105 one w jaki\u015b spos\u00f3b skorelowane?<\/li>\n<\/ul>\n<p>Mo\u017ce zadawanie tych pyta\u0144 brzmi troch\u0119 \u017cmudnie, je\u015bli nie \u017cartobliwie, ale kiedy widzimy tak wiele napisanych w JavaScript, w tym <a href=\"https:\/\/nodejs.org\/en\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">narz\u0119dzi<\/a>, <a href=\"https:\/\/www.npmjs.com\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">zarz\u0105dzanie pakietami<\/a> i nie tylko, odzwierciedlamy <a href=\"https:\/\/getcomposer.org\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">to, co mamy w PHP od tak dawna<\/a>, wa\u017cne jest przynajmniej rozwa\u017ca\u0107.<\/p>\n<p>W ko\u0144cu pod pewnymi wzgl\u0119dami mo\u017ce to drastycznie wp\u0142yn\u0105\u0107 na trajektori\u0119 kariery.<\/p>\n<p>Kr\u00f3tko m\u00f3wi\u0105c, my\u015bl\u0119, \u017ce w gr\u0119 wchodzi kilka rzeczy, z kt\u00f3rych ka\u017cda spr\u00f3buj\u0119 tutaj wydestylowa\u0107.<\/p>\n<h3>Zaniedbany? TAk. Ale to nie wszystko.<\/h3>\n<p>My\u015bl\u0119, \u017ce my, podobnie jak ci z nas, kt\u00f3rzy zajmuj\u0105 si\u0119 WordPressem, zbyt d\u0142ugo zaniedbywali\u015bmy JavaScript. I cho\u0107 nie wszyscy z nas jeste\u015bmy in\u017cynierami front-endu, nie oznacza to, \u017ce nie powinni\u015bmy by\u0107 w stanie troch\u0119 nad tym popracowa\u0107.<\/p>\n<p>To powiedziawszy, uwa\u017cam r\u00f3wnie\u017c, \u017ce zbyt d\u0142ugo zaniedbywali\u015bmy zaktualizowane funkcje PHP (i to staje si\u0119 tak zm\u0119czone stwierdzenie, \u017ce prawie go nie w\u0142\u0105czy\u0142em).<\/p>\n<h3>Wzajemna wy\u0142\u0105czno\u015b\u0107?<\/h3>\n<p>Chocia\u017c my\u015bl\u0119, \u017ce wa\u017cne jest, aby przej\u015b\u0107 do nast\u0119pnej ery rozwoju, w tym wi\u0119kszej ilo\u015bci JavaScript, nie wyklucza si\u0119 to wzajemnie z PHP. Nie jestem przekonany, \u017ce PHP nie zostanie ca\u0142kowicie usuni\u0119te z WordPressa w przewidywalnej przysz\u0142o\u015bci.<\/p>\n<h3>Bezpieczne za\u0142o\u017cenia<\/h3>\n<p>Nie s\u0105dz\u0119, aby zak\u0142adano, \u017ce wi\u0119kszo\u015b\u0107 z nas pracuje nad popraw\u0105 naszych umiej\u0119tno\u015bci PHP; w przeciwnym razie, my\u015bl\u0119, \u017ce zobaczyliby\u015bmy szerszy zestaw zasob\u00f3w po\u015bwi\u0119conych stricte WordPressowi PHP (nie wspominaj\u0105c o wykorzystywaniu najnowszych funkcji j\u0119zyka).<\/p>\n<p>A kiedy m\u00f3wi\u0119 o takich zasobach, mam na my\u015bli zszywark\u0119 w stylu <a href=\"https:\/\/stitcher.io\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">WordPressa<\/a>.<\/p>\n<h3>Korelacja<\/h3>\n<p>My\u015bl\u0119, \u017ce s\u0105 one skorelowane, ale nie w spos\u00f3b, w jaki niekt\u00f3rzy mog\u0105 my\u015ble\u0107: my\u015bl\u0119, \u017ce niekt\u00f3rzy ludzie i agencje poradz\u0105 sobie, je\u015bli maj\u0105 skupi\u0107 si\u0119 na rozwi\u0105zaniach zorientowanych na JavaScript. To samo mo\u017cna powiedzie\u0107 o rozwi\u0105zaniach zaplecza.<\/p>\n<p>Ale je\u015bli chcesz zbudowa\u0107 pe\u0142n\u0105 aplikacj\u0119 lub rozwi\u0105zanie (lub co\u015b bez g\u0142owy), nie mo\u017cesz skupi\u0107 si\u0119 tylko na jednym obszarze.<\/p>\n<h2>Jaki jest m\u00f3j cel?<\/h2>\n<p>Chodzi mi o to, \u017ce: b\u0119d\u0105 rodzaje aplikacji, kt\u00f3re wymagaj\u0105 j\u0119zyk\u00f3w po stronie serwera, kt\u00f3re nie s\u0105 JavaScriptem, kt\u00f3re dzia\u0142aj\u0105 z funkcjami po stronie klienta napisanymi w JavaScript<\/p>\n<p>I chocia\u017c oczywiste jest, \u017ce rozwi\u0105zania po stronie serwera mo\u017cna napisa\u0107 w JavaScript, sie\u0107 nadal nie wydaje si\u0119 zmierza\u0107 w kierunku, kt\u00f3ry sprawia, \u017ce \u200b\u200bjest to jedyny cel.<\/p>\n<p>S\u0105 te\u017c <a href=\"https:\/\/laravel.com\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">inne projekty<\/a>, kt\u00f3re nabieraj\u0105 rozp\u0119du, kt\u00f3re to wspieraj\u0105.<\/p>\n<p>Po drugie, PHP wci\u0105\u017c ewoluuje na wiele sposob\u00f3w. To, czy funkcje dodawane do j\u0119zyka s\u0105 dobre, czy z\u0142e, nie jest po\u017cywk\u0105 dla tego postu. Zamiast tego chodzi o to, \u017ce PHP wci\u0105\u017c si\u0119 rozwija, zmienia, dojrzewa i oferuje wiele funkcji, kt\u00f3rych my \u2013 jako deweloperzy back-endu, chcieli\u015bmy od dawna. Dlaczego wi\u0119c nie staramy si\u0119, aby by\u0142y bardziej powszechne?<\/p>\n<ul>\n<li>Czy to dlatego, \u017ce wtyczki WordPress nie wymagaj\u0105 wspomnianych funkcji?<\/li>\n<li>Czy wspomniane funkcje nie poprawi\u0142yby bazy kodu jakiego\u015b komponentu WordPressa? (W wielu przypadkach tak.)<\/li>\n<li>Poniewa\u017c ekonomia si\u0119 zmieni\u0142a, a edytor blok\u00f3w sta\u0142 si\u0119 twarz\u0105 edytora (i ostatecznie tworzenia motyw\u00f3w), nie neguje to potrzeby wsparcia zaplecza.<\/li>\n<li>I tak dalej.<\/li>\n<\/ul>\n<p>Dlaczego jako segment bran\u017cy nie rzucamy sobie nawzajem wyzwania, aby uczy\u0107 si\u0119 nowych funkcji PHP tak samo jak JavaScript? J\u0119zyk ewoluuje szybciej ni\u017c kiedykolwiek wcze\u015bniej, obserwujemy wi\u0119kszy wzrost wydajno\u015bci, sposoby pisania bardziej \u0142atwego w utrzymaniu kodu oraz funkcje, kt\u00f3re mog\u0105 nie tylko ulepszy\u0107 tworzone przez nas narz\u0119dzia, ale tak\u017ce sam\u0105 baz\u0119 kodu WordPressa.<\/p>\n<h2>Znowu ucz si\u0119, ale nie zapomnij<\/h2>\n<p>Wiele z tego to troch\u0119 zadumy wok\u00f3\u0142 dw\u00f3ch podstawowych j\u0119zyk\u00f3w WordPressa. Kiedy m\u00f3wimy o WordPressie i jego j\u0119zykach, nie jest to wykluczaj\u0105ca si\u0119 sytuacja, w kt\u00f3rej musimy nauczy\u0107 si\u0119 JavaScript i zapomnie\u0107 o PHP.<\/p>\n<p>Zamiast tego ma pokaza\u0107, \u017ce chocia\u017c otrzymali\u015bmy zadanie nauki JavaScript i chocia\u017c JavaScript znacznie zmieni\u0142 spos\u00f3b dzia\u0142ania WordPressa, nie neguje potrzeby pracy po stronie serwera, a tym samym neguje potrzeb\u0119 kontynuowania nauki to.<\/p>\n<p>W piaskownicy WordPressa wci\u0105\u017c jest du\u017co miejsca dla obu. Je\u015bli ju\u017c, to nie pozw\u00f3lmy, aby nasze umiej\u0119tno\u015bci PHP s\u0142ab\u0142y przez ca\u0142y czas poprawiaj\u0105c nasze umiej\u0119tno\u015bci JavaScript.<\/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>Kiedy m\u00f3wimy o WordPressie i jego j\u0119zykach, nie jest to wykluczaj\u0105ca si\u0119 sytuacja, w kt\u00f3rej musimy nauczy\u0107 si\u0119 JavaScript i zapomnie\u0107 o PHP.<\/p>\n","protected":false},"author":1,"featured_media":223973,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[721,732,897,845,866],"tags":[1169],"class_list":["post-231415","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-deweloper","category-javascript-7","category-kod","category-samouczki","category-wordpress-7","tag-affiai-pl"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/posts\/231415","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=231415"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/posts\/231415\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/media\/223973"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/media?parent=231415"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/categories?post=231415"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/tags?post=231415"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}