{"id":230501,"date":"2022-12-14T18:19:00","date_gmt":"2022-12-14T15:19:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=230501"},"modified":"2022-12-07T11:35:05","modified_gmt":"2022-12-07T08:35:05","slug":"prosta-refaktoryzacja-kodu-opartego-na-wordpressie","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/pl\/prosta-refaktoryzacja-kodu-opartego-na-wordpressie\/","title":{"rendered":"Prosta refaktoryzacja kodu opartego na WordPressie"},"content":{"rendered":"\n<p>W 2011 roku du\u017co czyta\u0142em na temat pracy ze starszym kodem, jako\u015bci kodu i refaktoryzacji.<\/p>\n<p>Jest cytat <strong><a href=\"https:\/\/martinfowler.com\/bliki\/OpportunisticRefactoring.html\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Martina Fowlera<\/a><\/strong> (kt\u00f3ry dos\u0142ownie <strong><a href=\"https:\/\/martinfowler.com\/books\/refactoring.html\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">napisa\u0142 ksi\u0105\u017ck\u0119<\/a><\/strong> o refaktoryzacji) przypisywany <a href=\"https:\/\/twitter.com\/unclebobmartin\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">wujkowi Bobowi<\/a>, kt\u00f3ry utkwi\u0142 mi w pami\u0119ci \u2013 i jestem pewien, \u017ce wielu, wielu programist\u00f3w \u2013 od tego czasu:<\/p>\n<blockquote>\n<p>zawsze zostawiaj kod w lepszym stanie ni\u017c go znalaz\u0142e\u015b<\/p>\n<\/blockquote>\n<p>Rzecz w tym konkretnym pomy\u015ble jest taka, \u017ce \u200b\u200bmy\u015bl\u0119, \u017ce mo\u017ce brzmie\u0107 nieco bardziej idealistycznie, dop\u00f3ki naprawd\u0119 nie zaczniesz go praktykowa\u0107 we wszystkim, co robisz.<\/p>\n<p>Oznacza to, \u017ce je\u015bli we\u017amiesz to za dobr\u0105 monet\u0119, brzmi to tak, jakby za ka\u017cdym razem, gdy musisz pracowa\u0107 nad baz\u0105 kodu, musisz zostawi\u0107 ca\u0142\u0105 baz\u0119 kodu lepiej ni\u017c wtedy, gdy j\u0105 znalaz\u0142e\u015b. Ale im bardziej staram si\u0119 stosowa\u0107 t\u0119 zasad\u0119 w mojej codziennej pracy, tym bardziej praktyczny, czystszy i \u0142atwiejszy w utrzymaniu staje si\u0119 kod specyficzny dla WordPressa.<\/p>\n<p>Wi\u0119c je\u015bli chodzi o refaktoryzacj\u0119 kodu opartego na WordPressie, jak to wygl\u0105da?<\/p>\n<p>To nie b\u0119dzie d\u0142ugi post. Zamiast tego zamierzam po prostu podzieli\u0107 si\u0119 kilkoma punktami, kt\u00f3rymi si\u0119 kieruj\u0119, je\u015bli chodzi o prac\u0119 nad kodem, kt\u00f3ry napisa\u0142em wcze\u015bniej, z kt\u00f3rym spotykam si\u0119 od innych lub kt\u00f3ry pochodzi z bazy kodu, nad kt\u00f3r\u0105 pracowa\u0142em z innymi w po.<\/p>\n<p>W dowolnej kolejno\u015bci:<\/p>\n<ul>\n<li><strong>Nie b\u0105d\u017a idealist\u0105; B\u0105d\u017a praktyczny<\/strong>. Refaktoryzacja ca\u0142ej bazy kodu nie jest praktyk\u0105, zw\u0142aszcza je\u015bli baza kodu nie jest opakowana w testy jednostkowe. Sp\u00f3jrz na kod, nad kt\u00f3rym pracujesz, i zobacz, jakie drobne modyfikacje mo\u017cesz wprowadzi\u0107, aby go ulepszy\u0107.<\/li>\n<li><strong>Korzystaj z najnowszych standard\u00f3w<\/strong>. Nie musisz konfigurowa\u0107 zupe\u0142nie nowego \u015brodowiska programistycznego dla starszego kodu. Zamiast tego upewnij si\u0119, \u017ce masz dobre sniffery kodu. Je\u015bli przeszed\u0142e\u015b ze Standard\u00f3w Kodowania WordPressa na PSR, sp\u00f3jrz na ostrze\u017cenia lub uwagi, \u017ce sniffery rzucaj\u0105 i pr\u00f3buj\u0105 aktualizowa\u0107 kod tylko w tym pliku (lub zestawie plik\u00f3w).<\/li>\n<li><strong>Napisz funkcje pomocnicze<\/strong>. Je\u015bli Twoje funkcje s\u0105 zbyt d\u0142ugie, poszukaj sposob\u00f3w na u\u0142atwienie ich pracy. Najpierw zaktualizuj dowolne struktury kontrolne, takie jak p\u0119tle lub instrukcje warunkowe, a nast\u0119pnie napisz funkcje pomocnicze, aby by\u0142y \u0142atwiejsze do odczytania.<\/li>\n<li><strong>Dodaj testy (je\u015bli to mo\u017cliwe)<\/strong>. Je\u015bli masz ju\u017c wdro\u017con\u0105 platform\u0119 test\u00f3w jednostkowych, dodaj testy dla nowego kodu. Je\u015bli nie masz czasu lub ram, nie przejmuj si\u0119. O ile pragmatyczni programi\u015bci to g\u0142osz\u0105, nie zawsze jest czas na dodawanie test\u00f3w. (Nie chodzi o stwierdzenie, \u017ce nie s\u0105 one przydatne lub nie powinny by\u0107 uwzgl\u0119dniane, ale nie zawsze jest praktyczne w\u0142\u0105czenie ich w dowolnym momencie).<\/li>\n<\/ul>\n<p>Niekt\u00f3re z rzeczy, kt\u00f3re robi\u0142em w ostatnich projektach, obejmuj\u0105 r\u00f3wnie\u017c proste rzeczy:<\/p>\n<ul>\n<li>aktualizacja nazw zmiennych i funkcji zgodnie z PSR,<\/li>\n<li>zamiana tabulator\u00f3w na spacje,<\/li>\n<li>dodanie funkcji pomocniczych, aby warunki i p\u0119tle by\u0142y bardziej czytelne,<\/li>\n<li>podzia\u0142 klas na wy\u017cszy stopie\u0144 sp\u00f3jno\u015bci,<\/li>\n<li>poprawi\u0107 docblocki ka\u017cdej funkcji<\/li>\n<\/ul>\n<p>To tylko niekt\u00f3re przyk\u0142ady i wyra\u017anie nie jest to wyczerpuj\u0105ca lista. Ale nie o to chodzi. Zamiast tego chc\u0119 po prostu podzieli\u0107 si\u0119, w jaki spos\u00f3b mo\u017cna zastosowa\u0107 refaktoryzacj\u0119 kodu opartego na WordPressie, jednocze\u015bnie wykonuj\u0105c codzienn\u0105 prac\u0119 w \u0142atwy spos\u00f3b.<\/p>\n<p>Wszystkie powy\u017csze zmiany lub zalecenia to rzeczy, kt\u00f3re zwykle mo\u017cna zrobi\u0107 z pomoc\u0105 IDE, kilkoma skr\u00f3tami i mo\u017ce z p\u00f3\u0142 godziny dodatkowego czasu (i jestem liberalny z tymi szacunkami).<\/p>\n<p>Wi\u0119c nie, nie musisz przepisywa\u0107 ca\u0142ej bazy kodu. Nie wiem nawet, czy jest to praktyczny cel, do kt\u00f3rego nale\u017cy d\u0105\u017cy\u0107. Ale mo\u017cesz naprawi\u0107 jeden ma\u0142y element ca\u0142ego systemu, za kt\u00f3ry jeste\u015b odpowiedzialny?<\/p>\n<p>A dlaczego przynajmniej nie d\u0105\u017cy\u0107 do tego?<\/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>Im bardziej staram si\u0119 to stosowa\u0107 w codziennej pracy, tym lepszy staje si\u0119 m\u00f3j kod. Je\u015bli chodzi o refaktoryzacj\u0119 kodu opartego na WordPressie, jak to wygl\u0105da?<\/p>\n","protected":false},"author":1,"featured_media":235914,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[721,897,845,866],"tags":[1169],"class_list":["post-230501","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-deweloper","category-kod","category-samouczki","category-wordpress-7","tag-affiai-pl"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/posts\/230501","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=230501"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/posts\/230501\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/media\/235914"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/media?parent=230501"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/categories?post=230501"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/tags?post=230501"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}