{"id":59517,"date":"2022-12-07T11:01:06","date_gmt":"2022-12-07T10:01:06","guid":{"rendered":"https:\/\/codecool.com\/?p=59517"},"modified":"2022-12-07T11:01:06","modified_gmt":"2022-12-07T10:01:06","slug":"jaki-powinien-byc-dobry-kod","status":"publish","type":"post","link":"https:\/\/codecool.com\/pl\/jaki-powinien-byc-dobry-kod\/","title":{"rendered":"Jaki powinien by\u0107 dobry kod?"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-post\" data-elementor-id=\"59517\" class=\"elementor elementor-59517\" data-elementor-post-type=\"post\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-e27b7ff elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"e27b7ff\" data-element_type=\"section\" data-settings=\"{&quot;jet_parallax_layout_list&quot;:[]}\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-4651bbb\" data-id=\"4651bbb\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-0ae62ef elementor-widget elementor-widget-text-editor\" data-id=\"0ae62ef\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><span style=\"font-weight: 400;\">Wielu wyobra\u017ca sobie, \u017ce praca programisty polega na pisaniu kodu. Ot\u00f3\u017c niekoniecznie. Programista przez zdecydowan\u0105 wi\u0119kszo\u015b\u0107 czasu <strong>czyta napisany ju\u017c kod i go debuguje<\/strong>, czyli szuka b\u0142\u0119d\u00f3w, a nast\u0119pnie pr\u00f3buje je wyeliminowa\u0107. Prawda ta jest tak znana, \u017ce \u015brodowisko programistyczne cz\u0119sto nawi\u0105zuje do s\u0142\u00f3w Christophera Thompson\u2019a, kt\u00f3ry powiedzia\u0142 kiedy\u015b, \u017ce \u201eczasami bardziej op\u0142aca si\u0119 zosta\u0107 w \u0142\u00f3\u017cku w poniedzia\u0142ek ni\u017c sp\u0119dzi\u0107 reszt\u0119 tygodnia, debuguj\u0105c poniedzia\u0142kowy kod\u201d. Jak zatem powinien wygl\u0105da\u0107 dobry kod? I dlaczego napisanie go zgodnie z dobrymi praktykami, jest tak istotne?\u00a0<\/span><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-d47490b elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"d47490b\" data-element_type=\"section\" data-settings=\"{&quot;jet_parallax_layout_list&quot;:[]}\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-ab358cc\" data-id=\"ab358cc\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-fcc7130 elementor-widget elementor-widget-image\" data-id=\"fcc7130\" data-element_type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img fetchpriority=\"high\" decoding=\"async\" width=\"800\" height=\"534\" src=\"https:\/\/codecool.com\/wp-content\/uploads\/2021\/10\/shutterstock_1504251113-1024x683.jpg\" class=\"attachment-large size-large wp-image-57331\" alt=\"coding career success\" srcset=\"https:\/\/codecool.com\/wp-content\/uploads\/2021\/10\/shutterstock_1504251113-1024x683.jpg 1024w, https:\/\/codecool.com\/wp-content\/uploads\/2021\/10\/shutterstock_1504251113-300x200.jpg 300w, https:\/\/codecool.com\/wp-content\/uploads\/2021\/10\/shutterstock_1504251113-768x512.jpg 768w, https:\/\/codecool.com\/wp-content\/uploads\/2021\/10\/shutterstock_1504251113-1536x1024.jpg 1536w, https:\/\/codecool.com\/wp-content\/uploads\/2021\/10\/shutterstock_1504251113-2048x1365.jpg 2048w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-496fc85 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"496fc85\" data-element_type=\"section\" data-settings=\"{&quot;jet_parallax_layout_list&quot;:[]}\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-31a73ae\" data-id=\"31a73ae\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-47d0204 elementor-toc--minimized-on-tablet elementor-widget elementor-widget-table-of-contents\" data-id=\"47d0204\" data-element_type=\"widget\" data-settings=\"{&quot;headings_by_tags&quot;:[&quot;h2&quot;],&quot;exclude_headings_by_selector&quot;:[],&quot;marker_view&quot;:&quot;numbers&quot;,&quot;no_headings_message&quot;:&quot;No headings were found on this page.&quot;,&quot;minimize_box&quot;:&quot;yes&quot;,&quot;minimized_on&quot;:&quot;tablet&quot;,&quot;hierarchical_view&quot;:&quot;yes&quot;,&quot;min_height&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;min_height_tablet&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;min_height_mobile&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]}}\" data-widget_type=\"table-of-contents.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-toc__header\">\n\t\t\t\t\t\t<h4 class=\"elementor-toc__header-title\">\n\t\t\t\tSpis tre\u015bci\t\t\t<\/h4>\n\t\t\t\t\t\t\t\t\t\t<div class=\"elementor-toc__toggle-button elementor-toc__toggle-button--expand\" role=\"button\" tabindex=\"0\" aria-controls=\"elementor-toc__47d0204\" aria-expanded=\"true\" aria-label=\"Open table of contents\"><i aria-hidden=\"true\" class=\"fas fa-chevron-down\"><\/i><\/div>\n\t\t\t\t<div class=\"elementor-toc__toggle-button elementor-toc__toggle-button--collapse\" role=\"button\" tabindex=\"0\" aria-controls=\"elementor-toc__47d0204\" aria-expanded=\"true\" aria-label=\"Close table of contents\"><i aria-hidden=\"true\" class=\"fas fa-chevron-up\"><\/i><\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<div id=\"elementor-toc__47d0204\" class=\"elementor-toc__body\">\n\t\t\t<div class=\"elementor-toc__spinner-container\">\n\t\t\t\t<i class=\"elementor-toc__spinner eicon-animation-spin eicon-loading\" aria-hidden=\"true\"><\/i>\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-5c2bace elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"5c2bace\" data-element_type=\"section\" data-settings=\"{&quot;jet_parallax_layout_list&quot;:[]}\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-6c70e9f\" data-id=\"6c70e9f\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-055710f elementor-widget elementor-widget-text-editor\" data-id=\"055710f\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<h2><span style=\"font-weight: 400;\">Dlaczego dobre praktyki programowania s\u0105 tak wa\u017cne?<\/span><\/h2><p><span style=\"font-weight: 400;\">J\u0119zyk norweski pozwala na sprawn\u0105 komunikacj\u0119, gdy odwiedzisz Oslo lub zawitasz do Bergen. J\u0119zyk migowy przyda si\u0119 natomiast, gdy spotkasz na swojej drodze osob\u0119 nies\u0142ysz\u0105c\u0105. Jak natomiast dogada\u0107 si\u0119 z maszyn\u0105, by odpowiednio reagowa\u0142a na Twoje komunikaty?<\/span><\/p><p><span style=\"font-weight: 400;\">Niezb\u0119dne s\u0105 do tego j\u0119zyki programowania, takie jak Java, JavaScript, Python, czy C#, za pomoc\u0105 kt\u00f3rych napiszesz <\/span><b>dobry kod<\/b><span style=\"font-weight: 400;\">. R\u00f3\u017cnica polega na tym, \u017ce o ile cz\u0142owiek wybaczy Ci niew\u0142a\u015bciw\u0105 odmian\u0119 czasownika, to maszyna nie jest ju\u017c tak wyrozumia\u0142a.<\/span><\/p><p><span style=\"font-weight: 400;\"> Je\u015bli chcesz, aby aplikacja dzia\u0142a\u0142a dok\u0142adnie tak, jak sobie to wyobra\u017casz, musisz przekaza\u0107 jej bezb\u0142\u0119dne polecenie. Nie jest to takie \u0142atwe, dlatego to w\u0142a\u015bnie debugowanie zabiera tak du\u017co czasu. Tworz\u0105c kod, pami\u0119taj, \u017ce musi by\u0107 on r\u00f3wnie\u017c zrozumia\u0142y dla cz\u0142owieka, kt\u00f3ry w przysz\u0142o\u015bci b\u0119dzie go usprawnia\u0107 i na nim pracowa\u0107. Warto zatem pisa\u0107 kod zgodnie z tym, co m\u00f3wi\u0105 <\/span><b>zasady dobrego programowania.<\/b><\/p><p><b> <\/b><span style=\"font-weight: 400;\">To w\u0142a\u015bnie zgodnie z nimi nasza <\/span><a href=\"https:\/\/codecool.com\/pl\/\" target=\"_blank\" rel=\"noopener\"><span style=\"font-weight: 400;\">szko\u0142a programowania<\/span><\/a><span style=\"font-weight: 400;\"> kszta\u0142ci Codecoolers\u00f3w, dzi\u0119ki czemu s\u0105 oni tak po\u017c\u0105dan\u0105 grup\u0105 specjalist\u00f3w na rynku pracy.<\/span><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-cacee64 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"cacee64\" data-element_type=\"section\" data-settings=\"{&quot;jet_parallax_layout_list&quot;:[]}\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-44ca66f\" data-id=\"44ca66f\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-2f06dc7 elementor-widget elementor-widget-text-editor\" data-id=\"2f06dc7\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<h2><span style=\"font-weight: 400;\">Czym jest czysty kod?<\/span><\/h2><p><span style=\"font-weight: 400;\">Cho\u0107 zasady dobrego programowania bywaj\u0105 r\u00f3\u017cne, to w ka\u017cdym zestawieniu kr\u00f3luje tak zwany czysty kod (ang. clean code). Jest on czytelny, uporz\u0105dkowany, zrozumia\u0142y dla ka\u017cdego programisty, prosty oraz oczywi\u015bcie w pe\u0142ni funkcjonalny i dzia\u0142aj\u0105cy.<\/span><\/p><p><span style=\"font-weight: 400;\"> M\u00f3wi si\u0119 bowiem, \u017ce napisanie dzia\u0142aj\u0105cego kodu to dopiero po\u0142owa sukcesu. Pe\u0142en sukces jest natomiast wtedy, gdy powstaje <strong>kod dobrej jako\u015bci<\/strong>. Je\u015bli natomiast umieszczono w nim niezrozumia\u0142e nazwy zmiennych lub ukryte zachowania metod, ka\u017cda pr\u00f3ba wprowadzenia w nim zmian, grozi lawin\u0105, w wyniku kt\u00f3rej spadnie funkcjonalno\u015b\u0107 ca\u0142ej aplikacji. <\/span><\/p><p><span style=\"font-weight: 400;\">Pami\u0119taj, \u017ce nawet je\u015bli co\u015b jest zrozumia\u0142e dla Ciebie teraz, mo\u017ce okaza\u0107 si\u0119 czarn\u0105 magi\u0105, gdy wr\u00f3cisz do tego za jaki\u015b czas. Wielu do\u015bwiadczonych programist\u00f3w wspomina moment, w kt\u00f3rym przysz\u0142o im po raz pierwszy zmierzy\u0107 si\u0119 z kodem, kt\u00f3ry stworzyli na pocz\u0105tku swojej kariery. Wtedy zale\u017ca\u0142o im jedynie na tym, by kod dzia\u0142a\u0142, nie dbali o to, by by\u0142 czytelny i napisany w zgodzie z tym, co m\u00f3wi\u0105 <strong>dobre praktyki tworzenia oprogramowania<\/strong>. <\/span><\/p><p><span style=\"font-weight: 400;\">Zrozumienie brudnego kodu jest czasoch\u0142onne, a poprawianie go potrafi by\u0107 niezwykle frustruj\u0105ce. Nie dopu\u015b\u0107 zatem do tego, by programi\u015bci za\u0142amywali r\u0119ce, gdy przyjdzie im pracowa\u0107 na napisanym przez Ciebie kodzie. <\/span><\/p><p><span style=\"font-weight: 400;\">Je\u015bli dopiero zaczynasz programowa\u0107, zadbaj o to, by <\/span><a href=\"https:\/\/codecool.com\/pl\/blog\/nauka-programowania-od-zera\/\" target=\"_blank\" rel=\"noopener\"><span style=\"font-weight: 400;\">nauka programowania od zera<\/span><\/a><span style=\"font-weight: 400;\"> prowadzona by\u0142a pod okiem profesjonalist\u00f3w, kt\u00f3rzy ju\u017c od pocz\u0105tku zaszczepi\u0105 w Tobie odpowiednie zasady pisania kodu, dzi\u0119ki czemu b\u0119dzie on prosty i zrozumia\u0142y. <\/span><\/p><p><span style=\"font-weight: 400;\">Czytelny kod mo\u017cna bowiem rozpozna\u0107 po tym, \u017ce nie wymaga komentarzy. Gdy na niego patrzysz, doskonale rozumiesz, za co odpowiadaj\u0105 poszczeg\u00f3lne elementy.\u00a0<\/span><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-23584ed elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"23584ed\" data-element_type=\"section\" data-settings=\"{&quot;jet_parallax_layout_list&quot;:[]}\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-b8af4ac\" data-id=\"b8af4ac\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-c7f44f7 elementor-widget elementor-widget-image\" data-id=\"c7f44f7\" data-element_type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" width=\"800\" height=\"525\" src=\"https:\/\/codecool.com\/wp-content\/uploads\/2022\/09\/cc_uni_5-1024x672.jpg\" class=\"attachment-large size-large wp-image-50386\" alt=\"Programmieren leernen\" srcset=\"https:\/\/codecool.com\/wp-content\/uploads\/2022\/09\/cc_uni_5-1024x672.jpg 1024w, https:\/\/codecool.com\/wp-content\/uploads\/2022\/09\/cc_uni_5-300x197.jpg 300w, https:\/\/codecool.com\/wp-content\/uploads\/2022\/09\/cc_uni_5-768x504.jpg 768w, https:\/\/codecool.com\/wp-content\/uploads\/2022\/09\/cc_uni_5-1536x1009.jpg 1536w, https:\/\/codecool.com\/wp-content\/uploads\/2022\/09\/cc_uni_5-2048x1345.jpg 2048w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-c979a05 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"c979a05\" data-element_type=\"section\" data-settings=\"{&quot;jet_parallax_layout_list&quot;:[]}\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-d8a12b1\" data-id=\"d8a12b1\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-65d2103 elementor-widget elementor-widget-text-editor\" data-id=\"65d2103\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<h2><span style=\"font-weight: 400;\">Leniwy programista na wag\u0119 z\u0142ota<\/span><\/h2><p><span style=\"font-weight: 400;\">Cho\u0107 brzmi to jak paradoks, to w bran\u017cy programistycznej szczeg\u00f3lnie cenni s\u0105 leniwi pracownicy. Nie chodzi tu jednak o to, by pisa\u0107 kody niechlujnie, maj\u0105c nadziej\u0119, \u017ce jako\u015b b\u0119d\u0105 funkcjonowa\u0107.<\/span><\/p><p><span style=\"font-weight: 400;\"> Ceniony, leniwy programista to taki, kt\u00f3ry kombinuje jak tu stworzy\u0107 dzia\u0142aj\u0105cy kod, ale si\u0119 zbytnio nie narobi\u0107. Takie podej\u015bcie pozwala opracowa\u0107 skrajnie prosty kod, kt\u00f3ry z \u0142atwo\u015bci\u0105 zrozumie maszyna, jak i przysz\u0142y programista, kt\u00f3remu przyjdzie usprawnia\u0107 dzia\u0142anie aplikacji lub witryny.\u00a0<\/span><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-e1c00ce elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"e1c00ce\" data-element_type=\"section\" data-settings=\"{&quot;jet_parallax_layout_list&quot;:[]}\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-66cce70\" data-id=\"66cce70\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-87a4c42 elementor-widget elementor-widget-text-editor\" data-id=\"87a4c42\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<h2><span style=\"font-weight: 400;\">B\u0105d\u017a programist\u0105 z zasadami<\/span><\/h2><p><span style=\"font-weight: 400;\">Je\u015bli chcesz pisa\u0107 czysty kod, podstaw\u0105 s\u0105 <strong>zasady SOLID<\/strong>, kt\u00f3re opracowa\u0142 ameryka\u0144ski programista Robert Martin. O ich znajomo\u015b\u0107 pytaj\u0105 przede wszystkim pracodawcy, kt\u00f3rzy zatrudniaj\u0105 programist\u00f3w z niewielkim do\u015bwiadczeniem, pozwala im to stwierdzi\u0107, czy jeste\u015b godnym uwagi kandydatem. <\/span><\/p><p><span style=\"font-weight: 400;\"><strong>SOLID<\/strong> to pi\u0119\u0107 zasad, kt\u00f3rych przestrzeganie gwarantuje, \u017ce napiszesz dobry kod, kt\u00f3ry b\u0119dzie zrozumia\u0142y i \u0142atwy do przysz\u0142ej rozbudowy. Poznasz je i zastosujesz w praktyce r\u00f3wnie\u017c podczas prowadzonego w naszej szkole kursu programowania. <\/span><\/p><p><span style=\"font-weight: 400;\">W Codecool silnie stawiamy bowiem na praktyczne kszta\u0142cenie, dzi\u0119ki kt\u00f3remu ka\u017cdy absolwent naszego intensywnego kursu jest odpowiednio przygotowany do tego, by podj\u0105\u0107 pierwsz\u0105 prac\u0119 w zespole programistycznym u najlepszych pracodawc\u00f3w. Sprawd\u017a, czego dotycz\u0105 zasady SOLID i jak wp\u0142ywaj\u0105 na jako\u015b\u0107 kodu.<\/span><\/p><h3><span style=\"font-weight: 400;\">S &#8211; single responsibility principle<\/span><\/h3><p><span style=\"font-weight: 400;\">Single responsibility principle, czyli zasada pojedynczej odpowiedzialno\u015bci dotyczy klas \u2013 ka\u017cda z nich ma by\u0107 odpowiedzialna za jedn\u0105 rzecz. Co prawda w wyniku wprowadzenia tej zasady klas b\u0119dzie bardzo wiele, ale dzi\u0119ki temu s\u0105 one znacznie prostsze w modyfikacji, ni\u017c gdyby by\u0142o ich mniej, a ka\u017cda klasa skupia\u0142aby mn\u00f3stwo funkcji w setkach linijek kodu \u2013 tak rozbudowan\u0105 klas\u0119 nazywa si\u0119 szwajcarskim scyzorykiem, kt\u00f3ry jest jednocze\u015bnie do wszystkiego i do niczego.<\/span><\/p><h3><span style=\"font-weight: 400;\">O &#8211; open\/closed<\/span><\/h3><p><span style=\"font-weight: 400;\">Zasad\u0119 otwarty\/zamkni\u0119ty nale\u017cy rozumie\u0107 w nast\u0119puj\u0105cy spos\u00f3b. Dobry kod musi by\u0107 otwarty na przysz\u0142\u0105 rozbudow\u0119, na przyk\u0142ad na dodanie innych funkcji, ale bez konieczno\u015bci modyfikacji klasy (jest zatem otwarty na rozbudow\u0119, ale zamkni\u0119ty na modyfikacje). Dlaczego to takie wa\u017cne?<\/span><\/p><p><span style=\"font-weight: 400;\"> Je\u015bli rozbudowa klasy b\u0119dzie wymaga\u0142a wprowadzenia zmian w dotychczas napisanym kodzie, istnieje ogromne ryzyko, \u017ce wyst\u0105pi\u0105 katastrofalne awarie systemu.\u00a0\u00a0<\/span><\/p><h3><span style=\"font-weight: 400;\">L &#8211; Liskov substitution<\/span><\/h3><p><span style=\"font-weight: 400;\">Liskov substitution, czyli zasada podstawiania Liskov dotyczy mechanizmu dziedziczenia. Zgodnie z t\u0105 zasad\u0105 klasy pochodne nie powinny nadpisywa\u0107 metod wykorzystanych w klasach bazowych. Stosowanie tej zasady pozwala na alternatywn\u0105 implementacj\u0119 jakiej\u015b funkcji bez konieczno\u015bci zmiany kodu. \u0141\u0105czy si\u0119 to zatem z poprzedni\u0105 zasad\u0105 Open\/closed.<\/span><\/p><h3><span style=\"font-weight: 400;\">I &#8211; interface segregation<\/span><\/h3><p><span style=\"font-weight: 400;\">Zasada Interface Segregation, jak sama nazwa wskazuje, nakazuje rozdziela\u0107 interfejs klasy. Dzi\u0119ki temu nie zostanie on utworzony z metodami, kt\u00f3rych dana klasa nie wykorzystuje. Istotne jest r\u00f3wnie\u017c odpowiednie jego zdefiniowanie. <\/span><\/p><p><span style=\"font-weight: 400;\">Je\u015bli zignorujesz zasad\u0119 segregacji interfejs\u00f3w, mo\u017ce doj\u015b\u0107 do sytuacji, w kt\u00f3rej dana klasa nie implementuje metody interfejsu, kt\u00f3ry zosta\u0142 poddany rozbudowie.\u00a0<\/span><\/p><h3><span style=\"font-weight: 400;\">D &#8211; dependency inversion<\/span><\/h3><p><span style=\"font-weight: 400;\">To, \u017ce zasada odwracania zale\u017cno\u015bci jest ostatnia, nie oznacza wcale, \u017ce jest mniej istotna. Wr\u0119cz przeciwnie \u2013 m\u00f3wi ona o tym, by u\u017cywa\u0107 interfejsu polimorficznego. <\/span><\/p><p><span style=\"font-weight: 400;\">Pisz\u0105c kod, zadbaj o to, by wysokopoziomowe klasy nie zale\u017ca\u0142y od detali, kt\u00f3re definiuj\u0105 niskopoziomowe klasy. Zamiast uzale\u017cnia\u0107 je od danego typu, po\u0142\u0105cz je z og\u00f3ln\u0105 abstrakcj\u0105. Klasy, kt\u00f3re zawieraj\u0105 logik\u0119 biznesow\u0105, nie powinny bowiem zale\u017ce\u0107 od klasy niskiego poziomu, kt\u00f3rych znaczenie nie jest przecie\u017c tak du\u017ce.<\/span><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-aefd139 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"aefd139\" data-element_type=\"section\" data-settings=\"{&quot;jet_parallax_layout_list&quot;:[]}\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-af89a8e\" data-id=\"af89a8e\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-14c87c2 elementor-widget elementor-widget-text-editor\" data-id=\"14c87c2\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<h2><span style=\"font-weight: 400;\">Prezent dla programisty na r\u00f3\u017cne okazje<\/span><\/h2><p><span style=\"font-weight: 400;\">Mamy dla Ciebie r\u00f3wnie\u017c kilka praktycznych wskaz\u00f3wek, kt\u00f3re pomog\u0105 Ci wybra\u0107 przydatne i niedrogie <strong>gad\u017cety dla programisty<\/strong>. Bazuj\u0105c na wieloletnim do\u015bwiadczeniu, gwarantujemy, \u017ce nic nie ko\u0144czy si\u0119 tak szybko, jak przygotowana kawa lub herbata. Wyposa\u017c zatem blisk\u0105 Ci osob\u0119 w tematyczny kubek o pojemno\u015bci minimum 500 ml &#8211;\u00a0 na pewno przyda si\u0119 podczas wielogodzinnego szukania b\u0142\u0119d\u00f3w w kodzie! <\/span><\/p><p><span style=\"font-weight: 400;\">\u015awietnie sprawdzi si\u0119 r\u00f3wnie\u017c <strong>bran\u017cowa ksi\u0105\u017cka<\/strong>, <strong>wyg\u0142uszaj\u0105ce s\u0142uchawki<\/strong> lub <strong>specjalistyczna podk\u0142adka pod nadgarstek<\/strong> (sprawdzi si\u0119 ona nie tylko na \u015bwi\u0119ta, ale r\u00f3wnie\u017c jako prezent dla informatyka na urodziny, imieniny rocznic\u0119 lub na Dzie\u0144 Programisty, kt\u00f3ry wypada 13 wrze\u015bnia.\u00a0<\/span><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-7117462 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"7117462\" data-element_type=\"section\" data-settings=\"{&quot;jet_parallax_layout_list&quot;:[]}\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-d13e55b\" data-id=\"d13e55b\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-09275be elementor-widget elementor-widget-text-editor\" data-id=\"09275be\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><span style=\"font-weight: 400;\">Na pocz\u0105tku przygody z kodowaniem mo\u017cesz uzna\u0107, \u017ce pr\u00f3by stworzenia czystego kodu, jedynie utrudniaj\u0105 i spowalniaj\u0105 <\/span><b>programowanie. Dobre praktyki<\/b><span style=\"font-weight: 400;\"> to jednak \u015bwi\u0119to\u015b\u0107 dla ka\u017cdego programisty, kt\u00f3ry chce odnie\u015b\u0107 sukces. Ju\u017c teraz zapisz si\u0119 do Codecool, aby pod okiem profesjonalist\u00f3w opanowa\u0107 pisanie czystego kodu, kt\u00f3ry b\u0119dzie zrozumia\u0142y, prosty, a jednocze\u015bnie otwarty na rozbudow\u0119.<\/span><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Wielu wyobra\u017ca sobie, \u017ce praca programisty polega na pisaniu kodu. Ot\u00f3\u017c niekoniecznie. Programista przez zdecydowan\u0105 wi\u0119kszo\u015b\u0107 czasu czyta napisany ju\u017c kod i go debuguje, czyli szuka b\u0142\u0119d\u00f3w, a nast\u0119pnie pr\u00f3buje je wyeliminowa\u0107. Prawda ta jest tak znana, \u017ce \u015brodowisko programistyczne cz\u0119sto nawi\u0105zuje do s\u0142\u00f3w Christophera Thompson\u2019a, kt\u00f3ry powiedzia\u0142 kiedy\u015b, \u017ce \u201eczasami bardziej op\u0142aca si\u0119 zosta\u0107 [&hellip;]<\/p>\n","protected":false},"author":28,"featured_media":57331,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[336],"tags":[],"class_list":["post-59517","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-wiedza-pl"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v24.4 (Yoast SEO v24.4) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Jaki powinien by\u0107 dobry kod? - Codecool<\/title>\n<meta name=\"description\" content=\"Poznaj dobre praktyki tworzenia oprogramowania!\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/codecool.com\/pl\/jaki-powinien-byc-dobry-kod\/\" \/>\n<meta property=\"og:locale\" content=\"pl_PL\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Jaki powinien by\u0107 dobry kod?\" \/>\n<meta property=\"og:description\" content=\"Poznaj dobre praktyki tworzenia oprogramowania!\" \/>\n<meta property=\"og:url\" content=\"https:\/\/codecool.com\/pl\/jaki-powinien-byc-dobry-kod\/\" \/>\n<meta property=\"og:site_name\" content=\"Codecool\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/CodecoolOfficial\/\" \/>\n<meta property=\"article:published_time\" content=\"2022-12-07T10:01:06+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/codecool.com\/wp-content\/uploads\/2021\/10\/shutterstock_1504251113-scaled.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"2560\" \/>\n\t<meta property=\"og:image:height\" content=\"1707\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"kateryna\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@Codecool_global\" \/>\n<meta name=\"twitter:site\" content=\"@Codecool_global\" \/>\n<meta name=\"twitter:label1\" content=\"Napisane przez\" \/>\n\t<meta name=\"twitter:data1\" content=\"kateryna\" \/>\n\t<meta name=\"twitter:label2\" content=\"Szacowany czas czytania\" \/>\n\t<meta name=\"twitter:data2\" content=\"7 minut\" \/>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Jaki powinien by\u0107 dobry kod? - Codecool","description":"Poznaj dobre praktyki tworzenia oprogramowania!","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/codecool.com\/pl\/jaki-powinien-byc-dobry-kod\/","og_locale":"pl_PL","og_type":"article","og_title":"Jaki powinien by\u0107 dobry kod?","og_description":"Poznaj dobre praktyki tworzenia oprogramowania!","og_url":"https:\/\/codecool.com\/pl\/jaki-powinien-byc-dobry-kod\/","og_site_name":"Codecool","article_publisher":"https:\/\/www.facebook.com\/CodecoolOfficial\/","article_published_time":"2022-12-07T10:01:06+00:00","og_image":[{"width":2560,"height":1707,"url":"https:\/\/codecool.com\/wp-content\/uploads\/2021\/10\/shutterstock_1504251113-scaled.jpg","type":"image\/jpeg"}],"author":"kateryna","twitter_card":"summary_large_image","twitter_creator":"@Codecool_global","twitter_site":"@Codecool_global","twitter_misc":{"Napisane przez":"kateryna","Szacowany czas czytania":"7 minut"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/codecool.com\/pl\/jaki-powinien-byc-dobry-kod\/#article","isPartOf":{"@id":"https:\/\/codecool.com\/pl\/jaki-powinien-byc-dobry-kod\/"},"author":{"name":"kateryna","@id":"https:\/\/codecool.com\/pl\/#\/schema\/person\/ac94889a62d52d8da846307a12697135"},"headline":"Jaki powinien by\u0107 dobry kod?","datePublished":"2022-12-07T10:01:06+00:00","mainEntityOfPage":{"@id":"https:\/\/codecool.com\/pl\/jaki-powinien-byc-dobry-kod\/"},"wordCount":1383,"publisher":{"@id":"https:\/\/codecool.com\/pl\/#organization"},"image":{"@id":"https:\/\/codecool.com\/pl\/jaki-powinien-byc-dobry-kod\/#primaryimage"},"thumbnailUrl":"https:\/\/codecool.com\/wp-content\/uploads\/2021\/10\/shutterstock_1504251113-scaled.jpg","articleSection":["Wiedza"],"inLanguage":"pl-PL"},{"@type":"WebPage","@id":"https:\/\/codecool.com\/pl\/jaki-powinien-byc-dobry-kod\/","url":"https:\/\/codecool.com\/pl\/jaki-powinien-byc-dobry-kod\/","name":"Jaki powinien by\u0107 dobry kod? - Codecool","isPartOf":{"@id":"https:\/\/codecool.com\/pl\/#website"},"primaryImageOfPage":{"@id":"https:\/\/codecool.com\/pl\/jaki-powinien-byc-dobry-kod\/#primaryimage"},"image":{"@id":"https:\/\/codecool.com\/pl\/jaki-powinien-byc-dobry-kod\/#primaryimage"},"thumbnailUrl":"https:\/\/codecool.com\/wp-content\/uploads\/2021\/10\/shutterstock_1504251113-scaled.jpg","datePublished":"2022-12-07T10:01:06+00:00","description":"Poznaj dobre praktyki tworzenia oprogramowania!","breadcrumb":{"@id":"https:\/\/codecool.com\/pl\/jaki-powinien-byc-dobry-kod\/#breadcrumb"},"inLanguage":"pl-PL","potentialAction":[{"@type":"ReadAction","target":["https:\/\/codecool.com\/pl\/jaki-powinien-byc-dobry-kod\/"]}]},{"@type":"ImageObject","inLanguage":"pl-PL","@id":"https:\/\/codecool.com\/pl\/jaki-powinien-byc-dobry-kod\/#primaryimage","url":"https:\/\/codecool.com\/wp-content\/uploads\/2021\/10\/shutterstock_1504251113-scaled.jpg","contentUrl":"https:\/\/codecool.com\/wp-content\/uploads\/2021\/10\/shutterstock_1504251113-scaled.jpg","width":2560,"height":1707,"caption":"coding career success"},{"@type":"BreadcrumbList","@id":"https:\/\/codecool.com\/pl\/jaki-powinien-byc-dobry-kod\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/codecool.com\/pl\/"},{"@type":"ListItem","position":2,"name":"Jaki powinien by\u0107 dobry kod?"}]},{"@type":"WebSite","@id":"https:\/\/codecool.com\/pl\/#website","url":"https:\/\/codecool.com\/pl\/","name":"Codecool","description":"Next gen coding school &amp; career hub","publisher":{"@id":"https:\/\/codecool.com\/pl\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/codecool.com\/pl\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"pl-PL"},{"@type":"Organization","@id":"https:\/\/codecool.com\/pl\/#organization","name":"Codecool","alternateName":"Codecool","url":"https:\/\/codecool.com\/pl\/","logo":{"@type":"ImageObject","inLanguage":"pl-PL","@id":"https:\/\/codecool.com\/pl\/#\/schema\/logo\/image\/","url":"https:\/\/codecool.com\/wp-content\/uploads\/2023\/09\/Codecool-logo-app.svg","contentUrl":"https:\/\/codecool.com\/wp-content\/uploads\/2023\/09\/Codecool-logo-app.svg","width":1,"height":1,"caption":"Codecool"},"image":{"@id":"https:\/\/codecool.com\/pl\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/CodecoolOfficial\/","https:\/\/x.com\/Codecool_global","https:\/\/www.instagram.com\/codecool_official\/","https:\/\/www.linkedin.com\/school\/codecool\/"]},{"@type":"Person","@id":"https:\/\/codecool.com\/pl\/#\/schema\/person\/ac94889a62d52d8da846307a12697135","name":"kateryna","image":{"@type":"ImageObject","inLanguage":"pl-PL","@id":"https:\/\/codecool.com\/pl\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/2a9a781fc1745bf04cbf40701351af664487612000ee03ed8a85c20a22c1f29b?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/2a9a781fc1745bf04cbf40701351af664487612000ee03ed8a85c20a22c1f29b?s=96&d=mm&r=g","caption":"kateryna"}}]}},"_links":{"self":[{"href":"https:\/\/codecool.com\/pl\/wp-json\/wp\/v2\/posts\/59517","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/codecool.com\/pl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/codecool.com\/pl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/codecool.com\/pl\/wp-json\/wp\/v2\/users\/28"}],"replies":[{"embeddable":true,"href":"https:\/\/codecool.com\/pl\/wp-json\/wp\/v2\/comments?post=59517"}],"version-history":[{"count":5,"href":"https:\/\/codecool.com\/pl\/wp-json\/wp\/v2\/posts\/59517\/revisions"}],"predecessor-version":[{"id":59526,"href":"https:\/\/codecool.com\/pl\/wp-json\/wp\/v2\/posts\/59517\/revisions\/59526"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/codecool.com\/pl\/wp-json\/wp\/v2\/media\/57331"}],"wp:attachment":[{"href":"https:\/\/codecool.com\/pl\/wp-json\/wp\/v2\/media?parent=59517"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/codecool.com\/pl\/wp-json\/wp\/v2\/categories?post=59517"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/codecool.com\/pl\/wp-json\/wp\/v2\/tags?post=59517"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}