Dobre praktyki programowania odbierają smak życia
Pamiętasz jak napisałeś pierwszy Hello World? Ja jestem młody i pamiętam. Myślałem, że mogę góry przenosić tworzyć kolejne systemy operacyjne, tworzyć gry konkurujące z Quake 3 lub nawet lepiej. Byłem potężny, mogłem 'próbować’ stworzyć wszystko. Następnie odwiedza się parę blogasków programistycznych i innych stron poświęconych programowaniu, i dowiaduje się, że istnieje coś takiego jak:
- Wzorce projektowe
- Testy jednostkowe
- Testy integracyjne
- Programowanie komponentowe
- Style nazewnicze
- Wstrzykiwanie zależności
- Hasło: SOLID
- Hasło: DRY
- Hasło: KISS
- Hasło: YAGNI
- Anty Wzorce
- Książka Clean Code (którą każdy musi przeczytać)
- Książka Code Complete(którą każdy musi przeczytać)
- Obsługa błędów i wyjątków
- Zarządzanie pamięcią (cache)
- Współbieżność
- Programowanie asynchroniczne
- Pisanie dokumentacji, lub nie
- Agile manifest
- Reactive manifest
- Pair programming
- Extreme Programming
- i jeszcze więcej
- i jeszcze więcej
Najgorzej, że człowiek idzie do takiej pracy w korpo i każą mu przestrzegać tego wszystkiego naraz. W rezultacie produkujemy dobrej jakości kod, który w założeniu ma się trzymać w kupie przez przynajmniej X lat zanim, jakiś wrzód w projekcie nie urośnie do tak dużych rozmiarów, aby przepisać tą całą platformę od nowa.
Codziennie trzeba się trzymać wielu reguł programowania. Programista jest związany zasadami panującymi w projekcie (bardzo często dla jego własnego dobra).
Łatwo zapomnieć jak to było „wesoło programować bez myślenia o jutrze”. Radość z widocznych postępów, które możesz komuś pokazać zastąpiła ilość przechodzących testów na zielono.
Trzymanie się w wzorców z pracy, hamuje nas. Powiedzmy, że przy przy bardzo dobrych wiatrach programista w domu ma 2 godziny na tworzenie swojego małego projektu. Każda minuta się liczy. Tutaj walczymy z innym potworem niż w naszym korpo – walczymy z naszą motywacją. Nic dziwnego, jeżeli po 2 godzinach nie dostarczymy niczego wizualnie atrakcyjnego to nie chce nam się wrócić do projektu następnego dnia.
Dlatego przypisaniu gry The Ship Game podczas trwania konkursu Daj się Poznać 2017r oświadczam, że nie obchodzi mnie jakość kodu. Po pierwsze zabawa. Pet Projects nie mogą być traktowane jako praca, bo to nie zdrowe dla umysłu.
Chciałem użyć goto
jako swego rodzaju podpis pod treścią tego posta, ale grę piszę w TypeScript a tam goto
nie ma 🙂