{"id":21,"date":"2021-04-14T08:03:00","date_gmt":"2021-04-14T08:03:00","guid":{"rendered":"https:\/\/webdevs.blog\/pl\/?p=21"},"modified":"2026-02-20T07:28:27","modified_gmt":"2026-02-20T07:28:27","slug":"komentarze-w-kodzie-czy-i-w-jaki-sposob-je-pisac","status":"publish","type":"post","link":"https:\/\/webdevs.blog\/pl\/komentarze-w-kodzie-czy-i-w-jaki-sposob-je-pisac\/","title":{"rendered":"Komentarze w kodzie &#8211; Czy i w jaki spos\u00f3b je pisa\u0107?"},"content":{"rendered":"\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1600\" height=\"1067\" src=\"https:\/\/webdevs.blog\/pl\/wp-content\/uploads\/sites\/2\/2021\/04\/jak-i-czy-pisac-komentarze-w-kodzie.jpg\" alt=\"\" class=\"wp-image-22\" srcset=\"https:\/\/webdevs.blog\/pl\/wp-content\/uploads\/sites\/2\/2021\/04\/jak-i-czy-pisac-komentarze-w-kodzie.jpg 1600w, https:\/\/webdevs.blog\/pl\/wp-content\/uploads\/sites\/2\/2021\/04\/jak-i-czy-pisac-komentarze-w-kodzie-300x200.jpg 300w, https:\/\/webdevs.blog\/pl\/wp-content\/uploads\/sites\/2\/2021\/04\/jak-i-czy-pisac-komentarze-w-kodzie-1024x683.jpg 1024w, https:\/\/webdevs.blog\/pl\/wp-content\/uploads\/sites\/2\/2021\/04\/jak-i-czy-pisac-komentarze-w-kodzie-768x512.jpg 768w, https:\/\/webdevs.blog\/pl\/wp-content\/uploads\/sites\/2\/2021\/04\/jak-i-czy-pisac-komentarze-w-kodzie-1536x1024.jpg 1536w\" sizes=\"auto, (max-width: 1600px) 100vw, 1600px\" \/><\/figure>\n\n\n\n<div class=\"wp-block-group is-layout-flow wp-block-group-is-layout-flow\">\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p><em>Prawid\u0142owe zastosowanie komentarzy jest kompensowaniem naszych b\u0142\u0119d\u00f3w przy tworzeniu kodu. (\u2026) Obecno\u015b\u0107 komentarzy zawsze sygnalizuje nieporadno\u015b\u0107 programisty. Musimy z nich korzysta\u0107, poniewa\u017c nie zawsze wiemy jak wyrazi\u0107 nasze intencje bez ich u\u017cycia, ale ich obecno\u015b\u0107 nie jest powodem do \u015bwi\u0119towania.<\/em><\/p>\n<cite>Robert C. Martin &#8211; Czysty kod<\/cite><\/blockquote>\n<\/div>\n\n\n\n<p>Kr\u00f3tki cytat z jednej najbardziej popularnych ksi\u0105\u017cek traktuj\u0105cych o praktykach tworzenia dobrego oprogramowania, w du\u017cym stopniu odzwierciedla problem jakim jest prze\u0142adowanie kodu komentarzami. Wykorzystujemy je aby uzasadni\u0107 pewnego rodzaju lenistwo, brak czasu, albo po prostu ch\u0119\u0107 pisania du\u017cej ilo\u015bci kodu, kt\u00f3ra w ostateczno\u015bci okazuje si\u0119 z\u0142udnym sukcesem.<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-1\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\"><span class=\"hljs-comment\">\/\/ Checking if the employee should get the bonus<\/span>\n<span class=\"hljs-keyword\">if<\/span> ($employee-&gt;age &gt; <span class=\"hljs-number\">65<\/span> &amp;&amp; $employee-&gt;status === <span class=\"hljs-string\">'active'<\/span>) {}<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-1\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-2\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\"><span class=\"hljs-keyword\">if<\/span> ($employee-&gt;isEligibleForBonus()) {}<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-2\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Analizuj\u0105c powy\u017cszy przyk\u0142ad, mo\u017cemy zauwa\u017cy\u0107, \u017ce kod wyglada zdecydowanie schludniej je\u015bli zamiast niejasnego warunku wykorzystamy czyteln\u0105 funkcj\u0119, kt\u00f3rej sama nazwa zniweluje potrzeb\u0119 t\u0142umaczenia o co chodzi.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-css-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">B\u0142\u0119dne Komentarze<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Paplanina<\/h3>\n\n\n\n<p>Nie wyja\u015bniaj rzeczy, kt\u00f3re s\u0105 ju\u017c jasne.<\/p>\n\n\n\n<h6 class=\"wp-block-heading\">Niepoprawnie<\/h6>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-3\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\"><span class=\"hljs-comment\">\/**\n * <span class=\"hljs-doctag\">@var<\/span> Product Product object;\n *\/<\/span>\n<span class=\"hljs-keyword\">private<\/span> Product $product;\n\n<span class=\"hljs-comment\">\/**\n * Function returns the price that is loaded from the product object bla bla bla.\n *\/<\/span>\n<span class=\"hljs-keyword\">public<\/span> <span class=\"hljs-function\"><span class=\"hljs-keyword\">function<\/span> <span class=\"hljs-title\">getProductPrice<\/span><span class=\"hljs-params\">()<\/span> <\/span>{\n    <span class=\"hljs-keyword\">return<\/span> <span class=\"hljs-keyword\">$this<\/span>-&gt;product-&gt;getPrice();\n}<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-3\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h6 class=\"wp-block-heading\">Poprawnie<\/h6>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-4\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\"><span class=\"hljs-keyword\">private<\/span> Product $product;\n\n<span class=\"hljs-keyword\">public<\/span> <span class=\"hljs-function\"><span class=\"hljs-keyword\">function<\/span> <span class=\"hljs-title\">getProductPrice<\/span><span class=\"hljs-params\">()<\/span>: <span class=\"hljs-title\">int<\/span> <\/span>{\n    <span class=\"hljs-keyword\">return<\/span> <span class=\"hljs-keyword\">$this<\/span>-&gt;product-&gt;getPrice();\n}<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-4\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h3 class=\"wp-block-heading\">Doc Blocks<\/h3>\n\n\n\n<p>Nie umieszczaj niepotrzebnych informacji w komentarzach blokowych.<\/p>\n\n\n\n<p>Poni\u017cszy przyk\u0142ad kalkuluje finaln\u0105 cen\u0119, kt\u00f3ra jest wynikiem mno\u017cenia buforu oraz wska\u017anika ryzyka. Ale co dok\u0142adnie jest \u017ale?<\/p>\n\n\n\n<h6 class=\"wp-block-heading\">Niepoprawnie<\/h6>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-5\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\"><span class=\"hljs-comment\">\/**\n * Function returns the final price.\n * <span class=\"hljs-doctag\">@param<\/span> int $a Total price.\n * <span class=\"hljs-doctag\">@param<\/span> int $b Buffer miltiplier.\n * <span class=\"hljs-doctag\">@param<\/span> int $c Risk miltiplier.\n * <span class=\"hljs-doctag\">@return<\/span> int Final price.\n *\/<\/span>\n<span class=\"hljs-keyword\">public<\/span> <span class=\"hljs-function\"><span class=\"hljs-keyword\">function<\/span> <span class=\"hljs-title\">getPrice<\/span><span class=\"hljs-params\">($a, $b, $c)<\/span> <\/span>{\n    <span class=\"hljs-keyword\">return<\/span> $a * $b * $c;\n}<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-5\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<div class=\"wp-block-group is-layout-flow wp-block-group-is-layout-flow\">\n<p>1. Nale\u017cy wyja\u015bni\u0107 znaczenie argument\u00f3w funkcji, poniewa\u017c s\u0105 domy\u015blnie niezrozumia\u0142e. <br>2. Nazwa funkcji informuje o tym, \u017ce zwracana jest *jaka\u015b* cena, a dok\u0142adne wyja\u015bnienie czym ona jest znajduje si\u0119 w komentarzu. <br>3. Informujemy o typach komentarzu blokowym maj\u0105c mo\u017cliwo\u015b\u0107 wykorzystania typ\u00f3w argument\u00f3w.<\/p>\n\n\n\n<h6 class=\"wp-block-heading\">Poprawnie<\/h6>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-6\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\"><span class=\"hljs-keyword\">public<\/span> <span class=\"hljs-function\"><span class=\"hljs-keyword\">function<\/span> <span class=\"hljs-title\">getFinalPrice<\/span><span class=\"hljs-params\">(int $totalPrice, int $bufferMultiplier, int $riskMultiplier)<\/span>: <span class=\"hljs-title\">int<\/span> <\/span>{\n  <span class=\"hljs-keyword\">return<\/span> $totalPrice * $bufferMultiplier * $riskMultiplier;\n}<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-6\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre><\/div>\n\n\n\n<p>1. Poprawne nazewnictwo argument\u00f3w jednoznacznie wyja\u015bni\u0142o ich znaczenie. <br>2. Dok\u0142adna nazwa funkcji zniwelowa\u0142a potrzeb\u0119 wyja\u015bnienia dzia\u0142ania poprzez komentarz. <br>3. Wykorzystanie typ\u00f3w r\u00f3wnie\u017c wyeliminowa\u0142o potrzeb\u0119 pozostawienia komentarza.<\/p>\n\n\n\n<p>Punkt 3 zale\u017cy od projektu, ale wymaganie te musi by\u0107 spe\u0142nione je\u015bli mamy mo\u017cliwo\u015b\u0107 pracy z j\u0119zykiem wspieraj\u0105cym typy i nie przejmujemy si\u0119 systemami automatycznie generuj\u0105cymi dokumentacje.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Author<\/h3>\n\n\n\n<p>Nie informuj o autorze w komentarzu blokowym.<\/p>\n\n\n\n<h6 class=\"wp-block-heading\"><strong>Niepoprawnie<\/strong><\/h6>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-7\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\"><span class=\"hljs-comment\">\/**\n * <span class=\"hljs-doctag\">@author<\/span> PH\n *\/<\/span>\n<span class=\"hljs-class\"><span class=\"hljs-keyword\">class<\/span> <span class=\"hljs-title\">Product<\/span> <\/span>{\n    <span class=\"hljs-comment\">\/**\n    * <span class=\"hljs-doctag\">@author<\/span> PH\n    *\/<\/span>\n    <span class=\"hljs-keyword\">public<\/span> <span class=\"hljs-function\"><span class=\"hljs-keyword\">function<\/span> <span class=\"hljs-title\">getPrice<\/span><span class=\"hljs-params\">()<\/span> <\/span>{}\n\n    <span class=\"hljs-comment\">\/**\n    * <span class=\"hljs-doctag\">@author<\/span> PH\n    *\/<\/span>\n    <span class=\"hljs-keyword\">public<\/span> <span class=\"hljs-function\"><span class=\"hljs-keyword\">function<\/span> <span class=\"hljs-title\">getName<\/span><span class=\"hljs-params\">()<\/span> <\/span>{}\n}<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-7\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h6 class=\"wp-block-heading\">Poprawnie<\/h6>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-8\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\"><span class=\"hljs-class\"><span class=\"hljs-keyword\">class<\/span> <span class=\"hljs-title\">Product<\/span> <\/span>{\n    <span class=\"hljs-keyword\">public<\/span> <span class=\"hljs-function\"><span class=\"hljs-keyword\">function<\/span> <span class=\"hljs-title\">getPrice<\/span><span class=\"hljs-params\">()<\/span> <\/span>{}\n\n    <span class=\"hljs-keyword\">public<\/span> <span class=\"hljs-function\"><span class=\"hljs-keyword\">function<\/span> <span class=\"hljs-title\">getName<\/span><span class=\"hljs-params\">()<\/span> <\/span>{}\n}<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-8\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Jak w takim wypadku pozna\u0107 autora?<\/p>\n\n\n\n<p>1. Wykorzystaj GitLens &#8211; https:\/\/marketplace.visualstudio.com\/items?itemName=eamodio.gitlens <br>2. Wykorzystaj git blame &#8211; https:\/\/gitbetter.substack.com\/p\/how-to-use-git-blame-effectively. <br>3. Wykorzystaj github.com \/ bitbucket.com aby sprawdzi\u0107 kto edytowa\u0142 plik.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Notatki<\/h3>\n\n\n\n<p>Nie pozostawiaj w kodzie niepotrzebnych adnotacji.<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-9\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\"><span class=\"hljs-comment\">\/\/ Done by Andrew<\/span>\n$test = <span class=\"hljs-string\">''<\/span>;<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-9\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h3 class=\"wp-block-heading\">Kod<\/h3>\n\n\n\n<p>Nie pozostawiaj niepotrzebnego kodu.<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-10\" data-shcb-language-name=\"JSON \/ JSON with Comments\" data-shcb-language-slug=\"json\"><span><code class=\"hljs language-json\"><span class=\"hljs-comment\">\/\/ public function getPrice($a, $b, $c) {<\/span>\n<span class=\"hljs-comment\">\/\/     return $a * $b * $c;<\/span>\n<span class=\"hljs-comment\">\/\/ }<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-10\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JSON \/ JSON with Comments<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">json<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h2 class=\"wp-block-heading\">Komentarze akceptowalne<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">TODO<\/h3>\n\n\n\n<p>Czasami dobrym pomys\u0142em jest umieszczenie komentarzy <code>@todo<\/code> w celu poinformowania o zamierzeniach, albo wa\u017cnych elementach, kt\u00f3re zostan\u0105 zmienione w przysz\u0142o\u015bci.<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-11\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\"><span class=\"hljs-comment\">\/**\n * <span class=\"hljs-doctag\">@todo<\/span> Remove when XY will be ready.\n *\/<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-11\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h3 class=\"wp-block-heading\">Konsekwencje<\/h3>\n\n\n\n<p>Je\u015bli kod tego wymaga, umie\u015b\u0107 informacje o konsekwencjach w celu ostrze\u017cenia innego dewelopera.<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-12\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\"><span class=\"hljs-comment\">\/**\n * This function will burn your machine.\n *\/<\/span>\n<span class=\"hljs-keyword\">public<\/span> <span class=\"hljs-function\"><span class=\"hljs-keyword\">function<\/span> <span class=\"hljs-title\">importData<\/span><span class=\"hljs-params\">()<\/span>: <span class=\"hljs-title\">void<\/span> <\/span>{}<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-12\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h3 class=\"wp-block-heading\">Wyja\u015bnienia<\/h3>\n\n\n\n<p>Je\u015bli sytuacja tego wymaga &#8211; np. przez brak bud\u017cetu &#8211; umie\u015b\u0107 komentarz wyja\u015bniaj\u0105cy istnienie danego rozwi\u0105zania.<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-13\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\"><span class=\"hljs-comment\">\/**\n * Function fixes the problem with FacetWP and Postfinance plugin.\n *\n * Symptoms:    The FacetWP plugin doesn\u2019t work correctly when the Access plugin is also active. For example, if you add a custom\n *              search and try to filter by taxonomy, the FacetWP filter is ignored and a full list of posts is rendered. The issue\n *              is actually caused by the FacetWP plugin, which is running the init filter before everything else.\n *\n *              If you use FacetWP while Access is active basically all FacetWP\u2019s AJAX-based features like search results and pagination will fail.\n *\n * Workaround:  FacetWP modifies the Main Query with additional parameters and runs another WP_Query instance to show search results.\n *              Here is a short explanation of what happens:\n *\n *              - When Toolset Access tries to check\/set permissions for the Custom Post Types, it runs the toolset_access_get_current_page_id\n *                function that, in turn, runs the url_to_postid WordPress core function.\n *              - That url_to_postid function runs another WP_Query that replaces the result from the FacetWP\u2019s query and completely breaks the\n *                results from FacetWP.\n *\n *              This happens because of the late priority of Access and the early priority of FacetWP.\n *\n * Fix:         Theme tells the plugin that the payment page is the one with `woo_postfinancecw` slug.\n *\n * <span class=\"hljs-doctag\">@filter<\/span> woocommerce_postfinancecw_is_plugin_page\n * <span class=\"hljs-doctag\">@see<\/span> https:\/\/toolset.com\/errata\/compatibility-issue-between-facetwp-and-access-plugins\/\n *\/<\/span>\n<span class=\"hljs-keyword\">public<\/span> <span class=\"hljs-function\"><span class=\"hljs-keyword\">function<\/span> <span class=\"hljs-title\">fixFilters<\/span><span class=\"hljs-params\">()<\/span>: <span class=\"hljs-title\">bool<\/span>\n<\/span>{\n  <span class=\"hljs-keyword\">global<\/span> $wp;\n  <span class=\"hljs-keyword\">return<\/span> <span class=\"hljs-string\">'woo_postfinancecw'<\/span> === $wp-&gt;request;\n}<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-13\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Nie znaczy to, \u017ce powiniene\u015b umieszcza\u0107 takie komentarze w ka\u017cdym jednym miejscu w kodzie, kt\u00f3re wydaje si\u0119 skomplikowane. Zawsze powiniene\u015b podchodzi\u0107 do tego tematu ostro\u017cnie wcze\u015bnie potwierdzaj\u0105c, \u017ce nie zostaje Ci nic innego.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-css-opacity\"\/>\n\n\n\n<p>Kilka regu\u0142 wystarczy, aby znacznie odchodzi\u0107 kod. Najwa\u017cniejsze w tym wszystkim jest to, aby rozumnie podchodzi\u0107 do wykorzystania komentarzy.<\/p>\n\n\n\n<p>Za ka\u017cdym razem gdy napisa\u0142e\u015b komentarz, przeczytaj go jeszcze raz krok po kroku czytaj\u0105c r\u00f3wnie\u017c kod. W wielu przypadkach w tym tek\u015bcie wy\u0142oni\u0105 si\u0119 od razu nazwy funkcji, na kt\u00f3re z pewno\u015bci\u0105 mo\u017cna rozbi\u0107 skomentowan\u0105 funkcj\u0119.<\/p>\n\n\n","protected":false},"excerpt":{"rendered":"<p>Prawid\u0142owe zastosowanie komentarzy jest kompensowaniem naszych b\u0142\u0119d\u00f3w przy tworzeniu kodu. (\u2026) Obecno\u015b\u0107 komentarzy zawsze sygnalizuje nieporadno\u015b\u0107 programisty. Musimy z nich korzysta\u0107, poniewa\u017c nie zawsze wiemy jak wyrazi\u0107 nasze intencje bez ich u\u017cycia, ale ich obecno\u015b\u0107 nie jest powodem do \u015bwi\u0119towania. Kr\u00f3tki cytat z jednej najbardziej popularnych ksi\u0105\u017cek traktuj\u0105cych o praktykach tworzenia dobrego oprogramowania, w du\u017cym [&hellip;]<\/p>\n","protected":false},"author":6,"featured_media":22,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3],"tags":[30,31],"class_list":["post-21","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-dobre-praktyki","tag-code-comments","tag-doc-blocks"],"_links":{"self":[{"href":"https:\/\/webdevs.blog\/pl\/wp-json\/wp\/v2\/posts\/21","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/webdevs.blog\/pl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/webdevs.blog\/pl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/webdevs.blog\/pl\/wp-json\/wp\/v2\/users\/6"}],"replies":[{"embeddable":true,"href":"https:\/\/webdevs.blog\/pl\/wp-json\/wp\/v2\/comments?post=21"}],"version-history":[{"count":4,"href":"https:\/\/webdevs.blog\/pl\/wp-json\/wp\/v2\/posts\/21\/revisions"}],"predecessor-version":[{"id":717,"href":"https:\/\/webdevs.blog\/pl\/wp-json\/wp\/v2\/posts\/21\/revisions\/717"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/webdevs.blog\/pl\/wp-json\/wp\/v2\/media\/22"}],"wp:attachment":[{"href":"https:\/\/webdevs.blog\/pl\/wp-json\/wp\/v2\/media?parent=21"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/webdevs.blog\/pl\/wp-json\/wp\/v2\/categories?post=21"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/webdevs.blog\/pl\/wp-json\/wp\/v2\/tags?post=21"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}