Nauka programowania #5 W jaki sposób czytać i rozumieć cudzy kod?

Prawdopodobnie nie jest to najlepsze rozwiązanie jeżeli chodzi o bardzo duże projekty, ale jeżeli właśnie zaczynacie swoją przygodę z programowaniem, to może być to świetny sposób, aby lepiej zrozumieć cudzy kod.

Była to praktyka, którą stosowałem na początku mojej drogi z nauką programowania. Ale jest to też praktyka, którą stosuje teraz jeżeli właśnie się uczę nowej technologii.

Jeżeli się właśnie uczysz czegoś nowego i nie ogarniasz zbytnio składni to radzę poszukać projektów na GitHubie lub z innych źródeł do 100 linijek. W przypadku, gdy czujesz się w danym języku pewniej, to można zacząć z projektami posiadającymi 1000-2000 linijek.

Na początek zaczniemy od tych prostych projektów.

Przy 100-200 linijkach jeżeli rozumiesz zasady OOP to nie powinno być problemu. Jeżeli projekt posiada wiele funkcji  i jest dobrze ponazywany to wystarczy zrozumieć jego logikę. Ale co jeżeli projekt jest słabo napisany i ciężko się go czyta?

Wtedy należy spróbować mojej metody. A jak ona działa?

Od końca kasujemy kolejne funkcje i sprawdzamy na którym etapie program się “wysypie”. Jeżeli nasz program mówi nam, że brakuje danej funkcji, to albo zostawiamy ją pustą, albo usunęliśmy funkcję w złej kolejności.

I teraz gdy mamy kod zmniejszony do tych kilku linijek, próbujemy dopisywać kolejne linijki (te które wcześniej usunęliśmy) i patrzymy jak zachowuje się nasz program. Co się zmienia w konsoli, jak zmienia się nasz program w przeglądarce etc.

Jeżeli program jest podzielony na kilka klas i plików to oczywiście mamy łatwiej. Jednak z doświadczenia wiem, że wiele projektów to programy na 500-1000 linijek. W tym przypadku robimy to samo co powyżej. Jednak zasada ta w większych projektach działa lepiej, bo większe projekty z natury mają lepszą strukturę. Ale i potrafią być czasem zakręcone.

 

 

 

2 thoughts to “Nauka programowania #5 W jaki sposób czytać i rozumieć cudzy kod?”

    1. A co to znaczy słabo napisany kod? 🙂

      Z reguły te na GitHubie z dużą ilością gwiazdek i popularne z dużą ilością commitów są w mojej opinii całkiem dobrze napisane 😀

Leave a Reply

Your email address will not be published. Required fields are marked *