{"id":1413,"date":"2021-11-04T23:24:46","date_gmt":"2021-11-04T23:24:46","guid":{"rendered":"https:\/\/kalkus.dev\/?p=1413"},"modified":"2023-08-24T23:15:58","modified_gmt":"2023-08-24T23:15:58","slug":"czytanie-kodu","status":"publish","type":"post","link":"https:\/\/kalkus.dev\/blog\/2021\/11\/04\/czytanie-kodu\/","title":{"rendered":"Czytanie kodu"},"content":{"rendered":"\n<p>Jako programi\u015bci robimy przede wszystkim dwie rzeczy: piszemy nowy kod i czytamy kod stary. Jest to rzecz tak oczywista, \u017ce nikt si\u0119 nad tym nie zastanawia. Mnie samemu wydawa\u0142o si\u0119 to bana\u0142em. Oczywi\u015bcie prawie zawsze, \u017ceby napisa\u0107 jaki\u015b nowy kod trzeba przeczyta\u0107 istniej\u0105cy. Cz\u0119sto nie trzeba nawet zbyt wiele dodawa\u0107, wystarczy zmiana kilku linijek, by wykona\u0107 zadanie.<\/p>\n\n\n\n<p>I tak w gruncie rzeczy wi\u0119cej tego kodu czytamy ni\u017c piszemy. Tymczasem od studi\u00f3w i kurs\u00f3w, przez konferencje, a\u017c po szkolenia \u2013 wszystko kr\u0119ci si\u0119 wok\u00f3\u0142 pisania. Czysty kod, nowe j\u0119zyki, nowe frameworki. Na rekrutacjach prosz\u0105 nas o napisanie jakiej\u015b funkcji, na meetupach pokazuj\u0105 jak \u0142adnie i sprawnie pisa\u0107 przy u\u017cyciu nowych narz\u0119dzi. I nikt &#8211; ale to naprawd\u0119 nikt! &#8211; nie skupia si\u0119 na tym, na czym sp\u0119dzamy wi\u0119kszo\u015b\u0107 czasu w pracy: na czytaniu kodu.<\/p>\n\n\n\n<p>Ile znacie narz\u0119dzi pomagaj\u0105cych w pisaniu? Formatery, lintery, wtyczki do refaktoryzacji, test runnery, podkre\u015blanie b\u0142\u0119d\u00f3w, podpowiadanie nazw metod \u2013 cuda wianki. A ile znacie narz\u0119dzi pomagaj\u0105cych w czytaniu? Kolorowanie sk\u0142adni i debugger? Co\u015b jeszcze?<\/p>\n\n\n\n<p>Powiem wi\u0119cej. Wymienicie cho\u0107by trzy ksi\u0105\u017cki, kt\u00f3re dotycz\u0105 czytania kodu?<\/p>\n\n\n\n<p>Ja znam tylko jedn\u0105 &#8211; <a href=\"https:\/\/helion.pl\/view\/178086\/prazav.htm\">Praca z zastanym kodem. Najlepsze techniki<\/a>, Michaela Feathersa. Co wi\u0119cej jest to ksi\u0105\u017cka raczej ma\u0142o popularna, cho\u0107 ceniona i polecana\u2026<\/p>\n\n\n\n<p>Oczywi\u015bcie nie\u0142atwe jest stworzenie takich narz\u0119dzi. Czytanie kodu to tak naprawd\u0119 nauka, to pr\u00f3ba zrozumienia pewnego modelu rzeczywisto\u015bci, kt\u00f3ry stworzy\u0142 inny programista. To \u017cmudny proces poznawania struktur danych i algorytm\u00f3w. Lecz mimo wszystko jest to esencja zawodu programisty. I prawie nikt si\u0119 nad t\u0105 kwesti\u0105 nie pochyla. <\/p>\n\n\n\n<p>Nienawidzimy brzydkiego kodu, uciekamy z pracy przed spaghetti, przed legacy, a jednocze\u015bnie w ka\u017cdym projekcie spotykam si\u0119 z debugowaniem przez console.log \/ printf \/ WriteLine i brakiem albo co najmniej niedoborem test\u00f3w jednostkowych. Jest to chyba nasz wsp\u00f3lny grzeszek, \u017ce tak ma\u0142o serca wk\u0142adamy w czytanie kodu\u2026<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Jako programi\u015bci robimy przede wszystkim dwie rzeczy: piszemy nowy kod i czytamy kod stary. Jest to rzecz tak oczywista, \u017ce nikt si\u0119 nad tym nie zastanawia. Mnie samemu wydawa\u0142o si\u0119 to bana\u0142em. Oczywi\u015bcie prawie zawsze, \u017ceby napisa\u0107 jaki\u015b nowy kod trzeba przeczyta\u0107 istniej\u0105cy. Cz\u0119sto nie trzeba nawet zbyt wiele dodawa\u0107, wystarczy zmiana kilku linijek, by [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":1415,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[204,7],"tags":[14,16,165,193,191],"_links":{"self":[{"href":"https:\/\/kalkus.dev\/blog\/wp-json\/wp\/v2\/posts\/1413"}],"collection":[{"href":"https:\/\/kalkus.dev\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/kalkus.dev\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/kalkus.dev\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/kalkus.dev\/blog\/wp-json\/wp\/v2\/comments?post=1413"}],"version-history":[{"count":2,"href":"https:\/\/kalkus.dev\/blog\/wp-json\/wp\/v2\/posts\/1413\/revisions"}],"predecessor-version":[{"id":1417,"href":"https:\/\/kalkus.dev\/blog\/wp-json\/wp\/v2\/posts\/1413\/revisions\/1417"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/kalkus.dev\/blog\/wp-json\/wp\/v2\/media\/1415"}],"wp:attachment":[{"href":"https:\/\/kalkus.dev\/blog\/wp-json\/wp\/v2\/media?parent=1413"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/kalkus.dev\/blog\/wp-json\/wp\/v2\/categories?post=1413"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kalkus.dev\/blog\/wp-json\/wp\/v2\/tags?post=1413"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}