{"id":145,"date":"2017-03-03T18:54:02","date_gmt":"2017-03-03T17:54:02","guid":{"rendered":"http:\/\/ekhart.pl\/?p=145"},"modified":"2017-03-03T18:54:25","modified_gmt":"2017-03-03T17:54:25","slug":"tajemnica-rockstar-developera","status":"publish","type":"post","link":"https:\/\/ekhart.pl\/index.php\/2017\/03\/03\/tajemnica-rockstar-developera\/","title":{"rendered":"Tajemnica rockstar developera"},"content":{"rendered":"<p>Gdzie pope\u0142ni\u0142em b\u0142\u0105d? Jak to mo\u017cliwe, \u017ce kolega obok pisze SZYBCIEJ <strong>lepszy<\/strong>\u00a0kod? W czym niby jest on lepszy, skoro obaj mamy podobne do\u015bwiadczenie? Je\u015bli zawsze si\u0119 nad tym zastanawia\u0142e\u015b to zdradz\u0119 Ci pewien sekret, kt\u00f3ry ostatnio sobie uzmys\u0142owi\u0142em.<!--more--><\/p>\n<p>Nie robi\u0107 za du\u017co zmian na raz podczas pracy. Tajemnic\u0105 ka\u017cdego superproduktywnego <a href=\"http:\/\/www.ybrikman.com\/writing\/2013\/09\/29\/the-10x-developer-is-not-myth\/\">10x developera<\/a> jest szybki feedback loop. Rozumiem przez to, aby jak najcz\u0119\u015bciej testowa\u0107 nasz napisany przed chwil\u0105 kod. Wyrobienie sobie nawyku, aby po napisaniu kawa\u0142ka od razu go testowa\u0107. W ten spos\u00f3b znacznie przyspieszamy sobie drog\u0119 do odnalezienia b\u0142\u0119d\u00f3w, kt\u00f3re w mi\u0119dzyczasie mo\u017ce przypadkiem wprowadzili\u015bmy. Nie musimy wertowa\u0107 sterty diff&#8217;\u00f3w i doszukiwa\u0107 si\u0119, kt\u00f3ra linijka wyci\u0119\u0142a nam numer. Ludzki umys\u0142 posiada ograniczony kontekst. St\u0105d takie podej\u015bcie jest naturalnym wsparciem naszych s\u0142abo\u015bci.<\/p>\n<p>Je\u015bli p\u0119tla kod &#8211; test jest zbyt d\u0142uga, naszym g\u0142\u00f3wnym celem powinno by\u0107 na samym pocz\u0105tku maksymalne jego skr\u00f3cenie. W ten spos\u00f3b zaoszcz\u0119dzimy mn\u00f3stwo czasu, czekania, kt\u00f3re mogliby\u015bmy spo\u017cytkowa\u0107 bardziej produktywnie. Zbyt d\u0142ugi feedback loop sprawia, \u017ce b\u0119dziemy zwleka\u0107 z testowaniem do ostatniego momentu. Czas na odnalezienie \u017ar\u00f3d\u0142a problemu w wydawa\u0142oby si\u0119 jasnym kodzie, kt\u00f3ry przecie\u017c przed chwil\u0105 napisali\u015bmy b\u0119dzie si\u0119 tylko wyd\u0142u\u017ca\u0142.<\/p>\n<p>Wed\u0142ug mnie w\u0142a\u015bnie to jest celem podej\u015bcia <a href=\"https:\/\/en.wikipedia.org\/wiki\/Test-driven_development\">TDD<\/a>. Nawet nie samo pisanie test\u00f3w przed tworzeniem kodu jest tutaj najwa\u017cniejsze. Najistotniejsze jest to, aby\u015bmy stali si\u0119 zdecydowanie bardziej produktywni. Aby nasz kod ju\u017c od pocz\u0105tku by\u0142 wolny od oczywistych b\u0142\u0119d\u00f3w.<\/p>\n<p>Naturalnym rozwini\u0119ciem skracania feedback loopa jest <a href=\"https:\/\/en.wikipedia.org\/wiki\/Live_coding\">live coding<\/a> &#8211; czyli natychmiastowa wizualizacja efekt\u00f3w zmiany naszego kodu. I tutaj \u015bwietnie sprawdza si\u0119 Lisp, ze swoj\u0105 dynamiczn\u0105 natur\u0105, dzi\u0119ki kt\u00f3rej kod aplikacja jest w stanie modyfikowa\u0107 sw\u00f3j w\u0142asny kod.<\/p>\n<p>Kolejny plus &#8211; mniejsze commity. A mniejsze commity = lepsze code review. Ave, faster feedback loop!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Gdzie pope\u0142ni\u0142em b\u0142\u0105d? Jak to mo\u017cliwe, \u017ce kolega obok pisze SZYBCIEJ lepszy\u00a0kod? W czym niby jest on lepszy, skoro obaj mamy podobne do\u015bwiadczenie? Je\u015bli zawsze si\u0119 nad tym zastanawia\u0142e\u015b to zdradz\u0119 Ci pewien sekret, kt\u00f3ry ostatnio sobie uzmys\u0142owi\u0142em.<\/p>\n","protected":false},"author":1,"featured_media":149,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":true,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","enabled":false}}},"categories":[3,10],"tags":[],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"https:\/\/i0.wp.com\/ekhart.pl\/wp-content\/uploads\/2017\/03\/feedback-loop-v2.jpg?fit=2100%2C1000&ssl=1","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p8oxcO-2l","jetpack-related-posts":[],"jetpack_likes_enabled":true,"_links":{"self":[{"href":"https:\/\/ekhart.pl\/index.php\/wp-json\/wp\/v2\/posts\/145"}],"collection":[{"href":"https:\/\/ekhart.pl\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/ekhart.pl\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/ekhart.pl\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/ekhart.pl\/index.php\/wp-json\/wp\/v2\/comments?post=145"}],"version-history":[{"count":3,"href":"https:\/\/ekhart.pl\/index.php\/wp-json\/wp\/v2\/posts\/145\/revisions"}],"predecessor-version":[{"id":150,"href":"https:\/\/ekhart.pl\/index.php\/wp-json\/wp\/v2\/posts\/145\/revisions\/150"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/ekhart.pl\/index.php\/wp-json\/wp\/v2\/media\/149"}],"wp:attachment":[{"href":"https:\/\/ekhart.pl\/index.php\/wp-json\/wp\/v2\/media?parent=145"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ekhart.pl\/index.php\/wp-json\/wp\/v2\/categories?post=145"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ekhart.pl\/index.php\/wp-json\/wp\/v2\/tags?post=145"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}