Moje uwagi na temat programowania

Tak sobie pomyślałem, że powinienem napisać kilka słów dotyczących moich doświadczeń na temat programowania. Ponieważ programuje ponad połowę życia wydaje mi się, że jestem dość kompetentny.

Chciałbym przekazać w jakiś sposób informację dotyczącą trudności jaka spotyka programistę pragnącego wyprodukować kod bezbłędny. Tak "kod bezbłędny".

Ale może od początku...

Moją największą troską podczas tworzenia oprogramowania jest produkowanie kodu bezbłędnego. Z racji projektu w którym aktualnie współuczestniczę wiem, że jest to to własność bardzo istotna.

Wyprodukowanie czegoś bezbłędnego jest rzeczą bardzo trudną. Problem jest tak złożony i wielowątkowy, dotyka tak wielu sfer i sposobów interpretacji, że ciężko jest mi określić nawet samą definicję słowa bezbłędny.

Ale stawmy opór temu problemowi...

Bezbłędne oprogramowanie to oprogramowanie idealne pod wieloma kryteriami.

Jednym z kryteriów jest "mechaniczne piękno kodu". Jest to cecha bardzo trudna do przedstawienia dla osób nieprogramujących, ale mimo to postaram się to opisać. Kod piękny to kod estetyczny, kod którego czytanie sprawia niekłamaną radość, kod który jest klarowny i bezpośredni. Kod który przemawia bezpośrednio bez uciekania się do tajemniczych konstrukcji, zawikłanej wewnętrznej interpretacji zmiennych. Kod bezpośredni smakuje jak porządna potrawa, można go użyć jak drabiny, młotka, liny lub innej prostej funkcjonalnej rzeczy. Kod piękny to nie reklama telewizyjna, to po prostu kawał porządnej pracy na której można polegać.

Kolejnym kryterium jest piękno logiki. Nie wiem czy potrafię to opisać, ale wiedzę to na tyle rzadko, że nie jestem w stanie wyciągnąć cech wspólnych. Piękny w sposób "logiczny" kod jest bardzo rzadki. Mało osób potrafi napisać coś w sposób wyjątkowy. W sposób ekonomiczny, niezawikłany, ale jednocześnie na tyle trudny, że trudność zrozumienia kodu rekompensowała radość z jego czytania. Taki kod jest bardzo rzadki.

Kolejnym kryterium jest estetyka. Prawdę powiedziawszy jest to coś co wogóle nie wpływa na jakość kodu. Jest to po prostu porządek w jakim ułożone są komentarze. Porządek pisania kodu, sposób wcinania i kończenia linii. Jest to bardzo subiektywne w jaki sposób należy kod oceniać pod tym względem. Wiem natomiast, że wraz z wiekiem doceniam tą stronę kodu. Nie wyobrażam sobie, żeby ktoś przesadził z estetyką. Nadmiar komentarzy, czy też wysiłek skierowany w stronę ułatwienia odbioru przekazu nie wydają mi się czymś co może być przesadzone.

Kolejnym kryterium jest... wiek (sic!). Tak wiek. Im kod jest starszy tym lepiej. Wiem, że może to zabrzmieć trochę idiotycznie, ale mam głębokie przeświadczenie, że kod który nie został zmodyfikowany przez rok, a jest paskudny, niedopracowany, ograniczony jest wielokrotnie bardziej wartościowy niż kod, który został napisany przez wybitnego programistę, ale kilka dni wcześniej.
Chcę jedynie powiedzieć, że "po owocach ich poznacie" :). Jeśli coś przez rok nie wykazało wystarczających błędów by to zmienić, należy to cenić.
Dlatego też, zawsze należy się zastanowić, czy "to jest ten dzień" na zmianę kodu, który służy nam bezbłędnie od "wielu lat".

cdn...

0 komentarze:

Prześlij komentarz

 
Tomasz Kulig