{"id":7497,"date":"2020-07-27T14:16:39","date_gmt":"2020-07-27T12:16:39","guid":{"rendered":"https:\/\/infoshareacademy.com\/?p=7497"},"modified":"2021-06-18T12:56:44","modified_gmt":"2021-06-18T10:56:44","slug":"dobre-nawyki-programisty","status":"publish","type":"post","link":"https:\/\/infoshareacademy.com\/blog\/dobre-nawyki-programisty\/","title":{"rendered":"Dobre nawyki programisty &#8211; lepiej mie\u0107, ni\u017c nie mie\u0107"},"content":{"rendered":"<strong>Po co programi\u015bcie potrzebne s\u0105 dobre nawyki? Aby u\u0142atwi\u0107 sobie \u017cycie!\n\u201cDobre nawyki\u201d (programisty) to cz\u0119sto u\u017cywany slogan, kt\u00f3rym cz\u0119sto pos\u0142uguj\u0105 si\u0119 autorzy poradnik\u00f3w. R\u00f3wnie\u017c w naszej bran\u017cy maj\u0105 one niebagatelne znaczenie. Podstawowa r\u00f3\u017cnica mi\u0119dzy pocz\u0105tkuj\u0105cym a profesjonalnym programist\u0105 tkwi w\u0142a\u015bnie w ich przyzwyczajeniach. Nowicjusz poznaje zasady i nabywa umiej\u0119tno\u015bci. Zawodowiec zna i stosuje je odruchowo. Jak to wygl\u0105da w \u015bwiecie programist\u00f3w? Ten artyku\u0142 przybli\u017ca kilka nawyk\u00f3w dobrego developera.<\/strong>\n<h2 class=\"blog-h2\">Dobre nawyki programisty &#8211; 1: Trzymaj si\u0119 za\u0142o\u017ce\u0144<\/h2>\nNa pocz\u0105tek: konwencje. To poj\u0119cie fundamentalne, nie tylko w bran\u017cy IT. Przyk\u0142ady z r\u00f3\u017cnych dziedzin to cho\u0107by uk\u0142ad pism urz\u0119dowych, spos\u00f3b adresacji kopert czy \u015brednice \u015brub. Niekt\u00f3re nawet mog\u0105 ratowa\u0107 ludzkie \u017cycie, jak np. procedura mycia r\u0105k przez chirurg\u00f3w.\n\nKonwencje programistyczne to ustalone sposoby pisania kodu. Ale nie chodzi o sk\u0142adni\u0119 j\u0119zyk\u00f3w \u2013 to konieczno\u015b\u0107: nawiasy trzeba zamyka\u0107, a p\u0119tli while nie mo\u017cna tak po prostu nazwa\u0107 when. Mn\u00f3stwo jest natomiast zasad \u201cniekoniecznych\u201d, kt\u00f3rych przestrzeganie jest po prostu korzystne. S\u0105 to albo zalecenia przypisane do konkretnego j\u0119zyka, albo wewn\u0119trzne ustalenia w danej firmie. Poni\u017cej opisujemy kilka najpowszechniejszych przyk\u0142ad\u00f3w.\n<h2 class=\"blog-h2\">Dobre nawyki programisty &#8211; 2: Nazewnictwo<\/h2>\nO tym s\u0142yszy si\u0119 ju\u017c od pierwszych lekcji: nazwy powinny by\u0107 znacz\u0105ce. W jaki spos\u00f3b to osi\u0105gn\u0105\u0107 \u2013 to ju\u017c trudniejsza sprawa. Kilka og\u00f3lnych zalece\u0144 to:\n<ul>\n \t<li class=\"blog_li\"><strong>Unikaj niespecyficznych nazw<\/strong> typu a, b, c, x, func, variable. Powinny one faktycznie reprezentowa\u0107 to, czemu s\u0105 przypisane.<\/li>\n \t<li class=\"blog_li\">Funkcje powinno si\u0119 nazywa\u0107, u\u017cywaj\u0105c <strong>czasownik\u00f3w<\/strong>. Z za\u0142o\u017cenia maj\u0105 one wykonywa\u0107 okre\u015blone czynno\u015bci, a czasowniki s\u0142u\u017c\u0105 w\u0142a\u015bnie do przedstawiania tych\u017ce. Przyk\u0142ady: sort, evaluate, create, replace, build.<\/li>\n \t<li class=\"blog_li\">Nazwy zmiennych (obiekt\u00f3w) oraz klas to <strong>rzeczowniki<\/strong>. Reprezentuj\u0105 one co\u015b namacalnego lub jakie\u015b poj\u0119cie, jak cho\u0107by age, person, time, range<\/li>\n \t<li class=\"blog_li\">Nazwy plik\u00f3w (modu\u0142\u00f3w) powinny identyfikowa\u0107 zawarto\u015b\u0107. Cz\u0119sto w j\u0119zykach obiektowych zaleca si\u0119, aby w pliku znajdowa\u0142a si\u0119 tylko jedna klasa. Wtedy nazywa si\u0119 je tak samo. U\u0142atwia to nawigacj\u0119 w systemie plik\u00f3w.<\/li>\n \t<li class=\"blog_li\">Gdy w nazwie jest wiele s\u0142\u00f3w, warto trzyma\u0107 si\u0119 jednej konwencji ich \u0142\u0105czenia. Najcz\u0119\u015bciej stosuje si\u0119 jeden z tych trzech: <strong>lowerCamelCase, UpperCamelCase, snake_case.<\/strong><\/li>\n<\/ul>\nNiestety, \u0142atwo jest nabra\u0107 z\u0142ych nawyk\u00f3w. Przyk\u0142ady w internecie i w ksi\u0105\u017ckach cz\u0119sto zawieraj\u0105 nazwy typu <i>classA, func1, X, Y, method1<\/i>. Mo\u017ce to u pocz\u0105tkuj\u0105cych stworzy\u0107 mylne wra\u017cenie, \u017ce taka nomenklatura jest lepsza, skoro u\u017cywaj\u0105 go fachowcy. Tymczasem w codziennej pracy zaleca si\u0119 przestrzega\u0107 powy\u017cszych konwencji!\n<h2 class=\"blog-h2\">Dobre nawyki programisty &#8211; 3: Formatowanie<\/h2>\nDo\u015bwiadczeni developerzy mog\u0105 imponowa\u0107 m\u0142odszym kolegom szczeg\u00f3ln\u0105 umiej\u0119tno\u015bci\u0105: wystarczy rzut oka, a ju\u017c rozumiej\u0105, za co odpowiada dany fragment kodu. Jak oni to robi\u0105? To nieraz kwestia przestrzegania konkretnego formatowania. Cho\u0107 szczeg\u00f3\u0142y s\u0105 kwesti\u0105 sporn\u0105, co do jednego jest zgodno\u015b\u0107: grunt to porz\u0105dek. Na przyk\u0142ad:\n<ul>\n \t<li style=\"list-style-type: none;\">\n<ul>\n \t<li class=\"blog_li\"><strong>Jedna instrukcja na linijk\u0119.<\/strong> Popularne j\u0119zyki umo\u017cliwiaj\u0105 umieszczenie wielu wyra\u017ce\u0144 w jednej linii, np. rozdzielaj\u0105c je \u015brednikami. Jednak w 90% przypadk\u00f3w zmniejsza to czytelno\u015b\u0107.<\/li>\n \t<li class=\"blog_li\"><strong>Formatowanie blok\u00f3w.<\/strong> Bloki kodu zawsze s\u0105 jako\u015b ograniczone, np. nawiasami klamrowymi. Obok nich bardzo wa\u017cne jest u\u017cywanie <strong>wci\u0119\u0107<\/strong>, czyli tabulator\u00f3w. Otwarcie bloku mo\u017cna umie\u015bci\u0107 w poprzedniej linii lub w nowej:\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">fun1(){\n       instrukcje\n}\nfun2()\n{\n       instrukcje\n}\n<\/pre>\n<\/li>\n \t<li class=\"blog_li\"><strong>D\u0142ugo\u015b\u0107 linii.<\/strong> Przed laty ograniczeniem by\u0142a szeroko\u015b\u0107 monitora lub liczba znak\u00f3w akceptowana przez terminale. Obecnie zdroworozs\u0105dkowo ogranicza si\u0119 to do ok. 100-150 znak\u00f3w.<\/li>\n \t<li class=\"blog_li\"><strong>Stopie\u0144 zagnie\u017cd\u017cenia.<\/strong> Nie nale\u017cy umieszcza\u0107 bloku w bloku kilka razy, np:\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">if (warunek){\n  if(warunek){\n    while(warunek){\n      if(warunek){\n        instrukcje\n      }\n    }\n  }\n}\n<\/pre>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\nTaki kod mo\u017ce \u0142atwo rozrosn\u0105\u0107 si\u0119 do bardzo nieczytelnej postaci, wi\u0119c liczb\u0119 poziom\u00f3w ogranicza si\u0119 np. do 3.\n<ul>\n \t<li class=\"blog_li\"><strong>Odst\u0119py.<\/strong> We w\u0142a\u015bciwych miejscach warto postawi\u0107 \u201center\u201d \u2013 zazwyczaj zaraz poni\u017cej definicji funkcji lub klasy.<\/li>\n<\/ul>\n<div class=\"blog_box_highlight\" style=\"background-color: rgba(11,168,174,0.1); margin: 40px 0 40px 0; padding: 35px 0 35px 45px; border-left: 10px solid #0ba8ae;\"><span style=\"font-weight: 400; color: #10a8ae; font-size: 1.4em;\">Zainteresowali\u015bmy? <a href=\"https:\/\/infoshareacademy.com\/kursy\/dzienny-kurs-front-end-od-podstaw-zdalnie\/\">Sprawd\u017a zdalny dzienny kurs front-end od podstaw &gt;&gt;<\/a><\/span><\/div>\n<h2 class=\"blog-h2\">Dobre nawyki programisty &#8211; 4: Obj\u0119to\u015b\u0107 kodu<\/h2>\nNie chodzi tu o to, \u017ceby pisa\u0107 koniecznie mniej ni\u017c jakie\u015b sztywne za\u0142o\u017cenie. Rozwijane programy z czasem rozrastaj\u0105 si\u0119, wi\u0119c trzeba je inteligentnie dzieli\u0107. Konkretne sposoby zale\u017c\u0105 od u\u017cytego j\u0119zyka, ale maj\u0105 cech\u0119 wsp\u00f3ln\u0105: analizowany przez programist\u0119 kod musi mu si\u0119 \u201cmie\u015bci\u0107 w g\u0142owie\u201d. Trudno uwa\u017ca\u0107 si\u0119 za geniusza, kt\u00f3ry dok\u0142adnie pami\u0119ta setki linii. Lepiej wyodr\u0119bni\u0107 zawczasu fragment, kt\u00f3ry mo\u017ce sta\u0107 si\u0119 osobn\u0105 funkcj\u0105 lub klas\u0105. Wtedy mo\u017cna mie\u0107 przed oczami mniej tekstu jednocze\u015bnie, co po prostu poprawia czytelno\u015b\u0107. Istniej\u0105 zalecenia, aby funkcje by\u0142y kr\u00f3tsze ni\u017c pi\u0119\u0107 linijek! Co wi\u0119cej, aby nie by\u0142y one zbyt skomplikowane, powinny przyjmowa\u0107 niewiele argument\u00f3w, np. do trzech.\n<h2 class=\"blog-h2\">Dobre nawyki programisty &#8211; 5: Komentarze<\/h2>\nNawykiem powinno by\u0107 unikanie komentowania. Idealny kod w og\u00f3le tego nie wymaga, gdy\u017c sam w sobie jest przejrzysty i czytelny. Istniej\u0105 jednak dobre powody, aby miejscami u\u017cy\u0107 pewnych adnotacji:\n<ul>\n \t<li class=\"blog_li\"><strong>Wymogi prawne.<\/strong> Zdarza si\u0119, i\u017c przed opublikowaniem nale\u017cy w nag\u0142\u00f3wku ka\u017cdego pliku umie\u015bci\u0107 informacj\u0119 o autorze i licencji, na kt\u00f3rej mo\u017cna go u\u017cywa\u0107.<\/li>\n \t<li class=\"blog_li\"><strong>Obja\u015bnienia.<\/strong> Kiedy dany fragment mo\u017ce wzbudza\u0107 w\u0105tpliwo\u015bci, dobrze jest zwi\u0119\u017ale go opisa\u0107 dla czytelno\u015bci. Na przyk\u0142ad argumenty funkcji czasem musz\u0105 mie\u0107 odpowiedni format. Nieraz \u015bwiadczy to jednak o tym, \u017ce autor nie mia\u0142 czasu lub ochoty napisa\u0107 kodu czytelniej.<\/li>\n \t<li class=\"blog_li\"><strong>Ostrze\u017cenia.<\/strong> Czasami dana funkcjonalno\u015b\u0107 jest przestarza\u0142a lub jej zastosowanie jest ryzykowne (np. zajmuje du\u017co czasu). Wtedy komentarz mo\u017ce uprzedzi\u0107, \u017ce lepiej u\u017cy\u0107 funkcji szybszej albo nowszej. Kto\u015b m\u00f3g\u0142 te\u017c wyj\u0105tkowo skorzysta\u0107 z odradzanych zazwyczaj konstrukcji \u2013 wtedy warto poinformowa\u0107 o swoich zamiarach, aby nikt nic nieopatrznie nie zepsu\u0142.<\/li>\n \t<li class=\"blog_li\"><strong>Dodatkowe narz\u0119dzia.<\/strong> Istniej\u0105 programy (nieraz wbudowane w \u015brodowiska programistyczne), kt\u00f3re potrzebuj\u0105 specjalnych komentarzy do dzia\u0142ania. Np. automatyczne generatory dokumentacji mog\u0105 pobiera\u0107 opis danej klasy.<\/li>\n<\/ul>\n<h2 class=\"blog-h2\">Dobre nawyki programisty &#8211; 6: Pisz testy<\/h2>\nTo zaj\u0119cie zazwyczaj jest uwa\u017cane za osobny zaw\u00f3d, jednak ka\u017cdy programista te\u017c powinien pisa\u0107 testy. Pomi\u0144my tu dywagacje o przyczynach, sposobach, poziomach i metodykach tych praktyk \u2013 o tym pisano ca\u0142e ksi\u0105\u017cki. Warto wspomnie\u0107, \u017ce konkretne rodzaje test\u00f3w s\u0105 cz\u0119sto surowo wymagane. Mo\u017cna ustali\u0107 procentowe minimum pokrycia testami (tzw. code coverage). Ka\u017cdy profesjonalista rozumie, \u017ce dobrze jest przywykn\u0105\u0107 do sprawdzania samego siebie, r\u00f3wnie\u017c w prywatnych projektach. Niekiedy odradza si\u0119 pisanie test\u00f3w dla w\u0142asnych funkcjonalno\u015bci i w zespole pisze si\u0119 je dla siebie nawzajem. W ten spos\u00f3b wi\u0119ksza jest szansa, \u017ce b\u0119d\u0105 one s\u0142u\u017cy\u0107 spe\u0142nieniu wymaga\u0144 projektowych, a nie tylko stwierdza\u0107, \u017ce kod jako\u015b dzia\u0142a.\n<h2 class=\"blog-h2\">Dobre nawyki programisty &#8211; 7: Stosuj skr\u00f3ty klawiaturowe<\/h2>\nTo rada wr\u0119cz banalna, ale jak\u017ce przydatna. Regularne zapisywanie pracy przez odruchowe wciskanie ctrl+S niejednego uratowa\u0142o przed spor\u0105 strat\u0105 czasu, gdy nagle komputer si\u0119 zawiesi lub wysi\u0105dzie zasilanie. To oczywi\u015bcie minimum, gdy\u017c nawet proste edytory mog\u0105 mie\u0107 d\u0142ug\u0105 list\u0119 dost\u0119pnych skr\u00f3t\u00f3w. Kt\u00f3rych konkretnie kto u\u017cywa \u2013 to ju\u017c indywidualna kwestia, chodzi o u\u0142atwienie i przyspieszenie pracy. Cz\u0119sto korzysta si\u0119 z: szybkiego wyszukiwania tekstu, usuwania lub przesuwania linijek, przeskakiwania mi\u0119dzy plikami, uruchamiania test\u00f3w, debugowania.\n<h2 class=\"blog-h2\">Dobre nawyki prograisty &#8211; 8: Ca\u0142uj i susz!<\/h2>\nAkronimy KISS i DRY wyra\u017caj\u0105 pewne idee, a nie konkretne praktyki. Pierwszy znaczy Keep It Simple, Stupid! Po polsku BUZI \u2013 Bez Udziwnie\u0144 Zapisu, Idioto. Chodzi o to, aby upraszcza\u0107 jak to tylko mo\u017cliwe. Proste rozwi\u0105zania s\u0105 naj\u0142atwiejsze do p\u00f3\u017aniejszego utrzymania czy modyfikacji. Mo\u017cna je szybko zrozumie\u0107, bez mozolnej nauki danego systemu. W projektach IT liczy si\u0119 efektywno\u015b\u0107, a nie gust lub estetyka \u2013 warto wi\u0119c postawi\u0107 na minimalizm. Tymczasem developerom czasami wydaje si\u0119, \u017ce z\u0142o\u017cone pomys\u0142y s\u0105 skuteczniejsze. Czasem po prostu \u0142atwiej jest im nie upraszcza\u0107, porz\u0105dkowa\u0107 swojego kodu.\nDrugi skr\u00f3towiec to Don\u2019t Repeat Yourself \u2013 \u201cnie powtarzaj si\u0119\u201d. Najpro\u015bciej t\u0142umacz\u0105c, nale\u017cy:\n<ul>\n \t<li class=\"blog_li\"><strong>Nie kopiowa\u0107 kodu.<\/strong> Nieraz kusi, aby powieli\u0107 fragment, kt\u00f3ry ju\u017c raz si\u0119 sprawdzi\u0142 \u2013 czy nie najpro\u015bciej u\u017cy\u0107 ctrl+C, ctrl+V? Wcale nie! Je\u015bli si\u0119 tego nie kontroluje, po pewnym czasie mo\u017ce pojawi\u0107 si\u0119 mn\u00f3stwo kopii. A co b\u0119dzie, gdy oka\u017ce si\u0119, \u017ce trzeba co\u015b we wszystkich zmieni\u0107?<\/li>\n \t<li class=\"blog_li\"><strong>Nie powtarza\u0107 czynno\u015bci.<\/strong> Niejedn\u0105 operacj\u0119 wykonuje si\u0119 \u201cr\u0119cznie\u201d, np. wpisuj\u0105c skomplikowan\u0105 komend\u0119 kompilacji w terminalu lub tworz\u0105c klas\u0119\/modu\u0142 zawsze wed\u0142ug okre\u015blonej formatki. Cz\u0119sto mo\u017cna to zautomatyzowa\u0107 za pomoc\u0105 skrypt\u00f3w. W du\u017cych repozytoriach jest to wr\u0119cz niezb\u0119dne, aby nie traci\u0107 mn\u00f3stwa czasu na ci\u0105g\u0142e kontrolowanie jako\u015bci bazy kodu, nad kt\u00f3r\u0105 pracuje kilkadziesi\u0105t os\u00f3b naraz.<\/li>\n<\/ul>\n<h2 class=\"blog-h2\">I na koniec&#8230;<\/h2>\n&#8230;co\u015b innego: rusz si\u0119, developerze! Pisanie i czytanie kodu to nie jest ca\u0142e Twoje \u017cycie. Programowanie mo\u017ce by\u0107 wci\u0105gaj\u0105ce albo denerwuj\u0105ce, ale pami\u0119tajmy, \u017ce jeste\u015bmy tylko lud\u017ami. Nie bez powodu zasady BHP zalecaj\u0105 przerwy co godzin\u0119 podczas pracy z komputerem. Ka\u017cdy, najwi\u0119kszy nawet entuzjasta bran\u017cy IT bywa zm\u0119czony. Codzienne drobne rytua\u0142y poprawiaj\u0105 koncentracj\u0119 i humor: regularne picie wody mineralnej, zaparzenie dobrej kawy, przerwa na drugie \u015bniadanie. Dobrze jest te\u017c zadba\u0107 o tzw. przestrze\u0144 socjaln\u0105: miejsce, gdzie mo\u017cna pogada\u0107 z koleg\u0105 \u2013 nie tylko o pracy. Dzi\u0119ki temu umys\u0142 jest w stanie oderwa\u0107 si\u0119 od g\u0142\u00f3wkowania. Przekonaj si\u0119, \u017ce czasem wystarczy kilka minut odpoczynku, aby rozwi\u0105zanie uporczywego problemu \u0142atwiej przysz\u0142o do g\u0142owy!\n<div class=\"blog_box_highlight\" style=\"background-color: rgba(11,168,174,0.1); margin: 40px 0 40px 0; padding: 35px 0 35px 45px; border-left: 10px solid #0ba8ae;\"><span style=\"font-weight: 400; color: #10a8ae; font-size: 1.4em;\">A mo\u017ce chcesz si\u0119 uczy\u0107 innych j\u0119zyk\u00f3w programowania?\n<a href=\"https:\/\/infoshareacademy.com\/?s\">Oto aktualna oferta naszych kurs\u00f3w &gt;&gt;<\/a><\/span><\/div>\n<script type=\"text\/javascript\" src=\"https:\/\/app.getresponse.com\/view_webform_v2.js?u=SAZgM&amp;webforms_id=BecDY\" data-webform-id=\"BecDY\"><\/script>\n\n<!-- \/wp:post-content -->","protected":false},"excerpt":{"rendered":"<p>Po co programi\u015bcie potrzebne s\u0105 dobre nawyki? Aby u\u0142atwi\u0107 sobie \u017cycie! \u201cDobre nawyki\u201d (programisty) to cz\u0119sto u\u017cywany slogan, kt\u00f3rym cz\u0119sto pos\u0142uguj\u0105 si\u0119 autorzy poradnik\u00f3w. R\u00f3wnie\u017c w naszej bran\u017cy maj\u0105 one niebagatelne znaczenie. Podstawowa r\u00f3\u017cnica mi\u0119dzy pocz\u0105tkuj\u0105cym a profesjonalnym programist\u0105 tkwi w\u0142a\u015bnie w ich przyzwyczajeniach. Nowicjusz poznaje zasady i nabywa umiej\u0119tno\u015bci. Zawodowiec zna i stosuje je &hellip;<\/p>\n","protected":false},"author":3,"featured_media":9779,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[26,28,34,27],"tags":[],"class_list":["post-7497","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-artykul","category-kariera","category-poczatki-w-it","category-poradniki"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v20.7 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Dobre nawyki programisty - lepiej mie\u0107, ni\u017c nie mie\u0107<\/title>\n<meta name=\"description\" content=\"Dobre nawyki programisty - czym s\u0105 i jak je wdro\u017cy\u0107? Przeczytaj (i zastosuj w praktyce) kilka nawyk\u00f3w dobrego dewelopera!\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/infoshareacademy.com\/blog\/dobre-nawyki-programisty\/\" \/>\n<meta property=\"og:locale\" content=\"pl_PL\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Dobre nawyki programisty - lepiej mie\u0107, ni\u017c nie mie\u0107 | infoShare Academy\" \/>\n<meta property=\"og:description\" content=\"Dobre nawyki programisty - czym s\u0105 i jak je wdro\u017cy\u0107? Przeczytaj (i zastosuj w praktyce) kilka nawyk\u00f3w dobrego dewelopera!\" \/>\n<meta property=\"og:url\" content=\"https:\/\/infoshareacademy.com\/blog\/dobre-nawyki-programisty\/\" \/>\n<meta property=\"og:site_name\" content=\"infoShare Academy Blog\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/infoshareacademy\" \/>\n<meta property=\"article:published_time\" content=\"2020-07-27T12:16:39+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2021-06-18T10:56:44+00:00\" \/>\n<meta name=\"author\" content=\"stokarska\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/infoshareacademy.com\/blog\/wp-content\/uploads\/2020\/07\/blog_dobre_nawyki_FB.png\" \/>\n<meta name=\"twitter:label1\" content=\"Napisane przez\" \/>\n\t<meta name=\"twitter:data1\" content=\"stokarska\" \/>\n\t<meta name=\"twitter:label2\" content=\"Szacowany czas czytania\" \/>\n\t<meta name=\"twitter:data2\" content=\"8 minut\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/infoshareacademy.com\/blog\/dobre-nawyki-programisty\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/infoshareacademy.com\/blog\/dobre-nawyki-programisty\/\"},\"author\":{\"name\":\"stokarska\",\"@id\":\"https:\/\/infoshareacademy.com\/blog\/#\/schema\/person\/90eefec70f6918e70294f2aa5ed2f1cb\"},\"headline\":\"Dobre nawyki programisty &#8211; lepiej mie\u0107, ni\u017c nie mie\u0107\",\"datePublished\":\"2020-07-27T12:16:39+00:00\",\"dateModified\":\"2021-06-18T10:56:44+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/infoshareacademy.com\/blog\/dobre-nawyki-programisty\/\"},\"wordCount\":1636,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/infoshareacademy.com\/blog\/#organization\"},\"articleSection\":[\"Artyku\u0142\",\"Kariera w IT\",\"Pocz\u0105tki programowania\",\"Poradniki\"],\"inLanguage\":\"pl-PL\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/infoshareacademy.com\/blog\/dobre-nawyki-programisty\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/infoshareacademy.com\/blog\/dobre-nawyki-programisty\/\",\"url\":\"https:\/\/infoshareacademy.com\/blog\/dobre-nawyki-programisty\/\",\"name\":\"Dobre nawyki programisty - lepiej mie\u0107, ni\u017c nie mie\u0107\",\"isPartOf\":{\"@id\":\"https:\/\/infoshareacademy.com\/blog\/#website\"},\"datePublished\":\"2020-07-27T12:16:39+00:00\",\"dateModified\":\"2021-06-18T10:56:44+00:00\",\"description\":\"Dobre nawyki programisty - czym s\u0105 i jak je wdro\u017cy\u0107? Przeczytaj (i zastosuj w praktyce) kilka nawyk\u00f3w dobrego dewelopera!\",\"breadcrumb\":{\"@id\":\"https:\/\/infoshareacademy.com\/blog\/dobre-nawyki-programisty\/#breadcrumb\"},\"inLanguage\":\"pl-PL\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/infoshareacademy.com\/blog\/dobre-nawyki-programisty\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/infoshareacademy.com\/blog\/dobre-nawyki-programisty\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Strona g\u0142\u00f3wna\",\"item\":\"https:\/\/infoshareacademy.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Dobre nawyki programisty &#8211; lepiej mie\u0107, ni\u017c nie mie\u0107\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/infoshareacademy.com\/blog\/#website\",\"url\":\"https:\/\/infoshareacademy.com\/blog\/\",\"name\":\"infoShare Academy Blog\",\"description\":\"Strona o szkoleniach w IT\",\"publisher\":{\"@id\":\"https:\/\/infoshareacademy.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/infoshareacademy.com\/blog\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"pl-PL\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/infoshareacademy.com\/blog\/#organization\",\"name\":\"infoShare Academy\",\"url\":\"https:\/\/infoshareacademy.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pl-PL\",\"@id\":\"https:\/\/infoshareacademy.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/infoshareacademy.com\/blog\/wp-content\/uploads\/2022\/11\/infoShare-Academy-ver-white-with-background-1000x1000px.jpg\",\"contentUrl\":\"https:\/\/infoshareacademy.com\/blog\/wp-content\/uploads\/2022\/11\/infoShare-Academy-ver-white-with-background-1000x1000px.jpg\",\"width\":1000,\"height\":1000,\"caption\":\"infoShare Academy\"},\"image\":{\"@id\":\"https:\/\/infoshareacademy.com\/blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/infoshareacademy\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/infoshareacademy.com\/blog\/#\/schema\/person\/90eefec70f6918e70294f2aa5ed2f1cb\",\"name\":\"stokarska\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pl-PL\",\"@id\":\"https:\/\/infoshareacademy.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/?s=96&d=mm&r=g\",\"caption\":\"stokarska\"},\"url\":\"https:\/\/infoshareacademy.com\/blog\/author\/stokarska\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Dobre nawyki programisty - lepiej mie\u0107, ni\u017c nie mie\u0107","description":"Dobre nawyki programisty - czym s\u0105 i jak je wdro\u017cy\u0107? Przeczytaj (i zastosuj w praktyce) kilka nawyk\u00f3w dobrego dewelopera!","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:\/\/infoshareacademy.com\/blog\/dobre-nawyki-programisty\/","og_locale":"pl_PL","og_type":"article","og_title":"Dobre nawyki programisty - lepiej mie\u0107, ni\u017c nie mie\u0107 | infoShare Academy","og_description":"Dobre nawyki programisty - czym s\u0105 i jak je wdro\u017cy\u0107? Przeczytaj (i zastosuj w praktyce) kilka nawyk\u00f3w dobrego dewelopera!","og_url":"https:\/\/infoshareacademy.com\/blog\/dobre-nawyki-programisty\/","og_site_name":"infoShare Academy Blog","article_publisher":"https:\/\/www.facebook.com\/infoshareacademy","article_published_time":"2020-07-27T12:16:39+00:00","article_modified_time":"2021-06-18T10:56:44+00:00","author":"stokarska","twitter_card":"summary_large_image","twitter_image":"https:\/\/infoshareacademy.com\/blog\/wp-content\/uploads\/2020\/07\/blog_dobre_nawyki_FB.png","twitter_misc":{"Napisane przez":"stokarska","Szacowany czas czytania":"8 minut"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/infoshareacademy.com\/blog\/dobre-nawyki-programisty\/#article","isPartOf":{"@id":"https:\/\/infoshareacademy.com\/blog\/dobre-nawyki-programisty\/"},"author":{"name":"stokarska","@id":"https:\/\/infoshareacademy.com\/blog\/#\/schema\/person\/90eefec70f6918e70294f2aa5ed2f1cb"},"headline":"Dobre nawyki programisty &#8211; lepiej mie\u0107, ni\u017c nie mie\u0107","datePublished":"2020-07-27T12:16:39+00:00","dateModified":"2021-06-18T10:56:44+00:00","mainEntityOfPage":{"@id":"https:\/\/infoshareacademy.com\/blog\/dobre-nawyki-programisty\/"},"wordCount":1636,"commentCount":0,"publisher":{"@id":"https:\/\/infoshareacademy.com\/blog\/#organization"},"articleSection":["Artyku\u0142","Kariera w IT","Pocz\u0105tki programowania","Poradniki"],"inLanguage":"pl-PL","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/infoshareacademy.com\/blog\/dobre-nawyki-programisty\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/infoshareacademy.com\/blog\/dobre-nawyki-programisty\/","url":"https:\/\/infoshareacademy.com\/blog\/dobre-nawyki-programisty\/","name":"Dobre nawyki programisty - lepiej mie\u0107, ni\u017c nie mie\u0107","isPartOf":{"@id":"https:\/\/infoshareacademy.com\/blog\/#website"},"datePublished":"2020-07-27T12:16:39+00:00","dateModified":"2021-06-18T10:56:44+00:00","description":"Dobre nawyki programisty - czym s\u0105 i jak je wdro\u017cy\u0107? Przeczytaj (i zastosuj w praktyce) kilka nawyk\u00f3w dobrego dewelopera!","breadcrumb":{"@id":"https:\/\/infoshareacademy.com\/blog\/dobre-nawyki-programisty\/#breadcrumb"},"inLanguage":"pl-PL","potentialAction":[{"@type":"ReadAction","target":["https:\/\/infoshareacademy.com\/blog\/dobre-nawyki-programisty\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/infoshareacademy.com\/blog\/dobre-nawyki-programisty\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Strona g\u0142\u00f3wna","item":"https:\/\/infoshareacademy.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Dobre nawyki programisty &#8211; lepiej mie\u0107, ni\u017c nie mie\u0107"}]},{"@type":"WebSite","@id":"https:\/\/infoshareacademy.com\/blog\/#website","url":"https:\/\/infoshareacademy.com\/blog\/","name":"infoShare Academy Blog","description":"Strona o szkoleniach w IT","publisher":{"@id":"https:\/\/infoshareacademy.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/infoshareacademy.com\/blog\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"pl-PL"},{"@type":"Organization","@id":"https:\/\/infoshareacademy.com\/blog\/#organization","name":"infoShare Academy","url":"https:\/\/infoshareacademy.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"pl-PL","@id":"https:\/\/infoshareacademy.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/infoshareacademy.com\/blog\/wp-content\/uploads\/2022\/11\/infoShare-Academy-ver-white-with-background-1000x1000px.jpg","contentUrl":"https:\/\/infoshareacademy.com\/blog\/wp-content\/uploads\/2022\/11\/infoShare-Academy-ver-white-with-background-1000x1000px.jpg","width":1000,"height":1000,"caption":"infoShare Academy"},"image":{"@id":"https:\/\/infoshareacademy.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/infoshareacademy"]},{"@type":"Person","@id":"https:\/\/infoshareacademy.com\/blog\/#\/schema\/person\/90eefec70f6918e70294f2aa5ed2f1cb","name":"stokarska","image":{"@type":"ImageObject","inLanguage":"pl-PL","@id":"https:\/\/infoshareacademy.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/?s=96&d=mm&r=g","caption":"stokarska"},"url":"https:\/\/infoshareacademy.com\/blog\/author\/stokarska\/"}]}},"_links":{"self":[{"href":"https:\/\/infoshareacademy.com\/blog\/wp-json\/wp\/v2\/posts\/7497","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/infoshareacademy.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/infoshareacademy.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/infoshareacademy.com\/blog\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/infoshareacademy.com\/blog\/wp-json\/wp\/v2\/comments?post=7497"}],"version-history":[{"count":2,"href":"https:\/\/infoshareacademy.com\/blog\/wp-json\/wp\/v2\/posts\/7497\/revisions"}],"predecessor-version":[{"id":11149,"href":"https:\/\/infoshareacademy.com\/blog\/wp-json\/wp\/v2\/posts\/7497\/revisions\/11149"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/infoshareacademy.com\/blog\/wp-json\/wp\/v2\/media\/9779"}],"wp:attachment":[{"href":"https:\/\/infoshareacademy.com\/blog\/wp-json\/wp\/v2\/media?parent=7497"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/infoshareacademy.com\/blog\/wp-json\/wp\/v2\/categories?post=7497"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/infoshareacademy.com\/blog\/wp-json\/wp\/v2\/tags?post=7497"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}