Przejdź do treści
Logo

kuling.pl

  • Główna
  • Arkdisk
  • Forum
  • Kontakt

Jesteś tutaj

Start » Blogi » Blog użytkownika Kuling

Moje uwagi na temat programowania

published by Kuling on ndz., 2007-12-16 21:42

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...

Kategorie: 
Visual Studio 2003
C++
Visual Studio 2005
Programowanie
  • Blog
  • 253 odsłony

Odpowiedz

Zawartość pola nie będzie udostępniana publicznie.

WIęcej informacji o formatach tekstu

Uproszczony HTML

  • Możesz użyć w tekście znaczników BBCode. Adresy zostaną automatycznie zamienione na linki.
  • Dozwolone znaczniki HTML: <a> <p> <span> <div> <h1> <h2> <h3> <h4> <h5> <h6> <img> <map> <area> <hr> <br> <br /> <ul> <ol> <li> <dl> <dt> <dd> <table> <tr> <td> <em> <b> <u> <i> <strong> <font> <del> <ins> <sub> <sup> <quote> <blockquote> <pre> <address> <code> <cite> <embed> <object> <param> <strike> <caption>
  • Adresy internetowe są automatycznie zamieniane w odnośniki, które można kliknąć.

Plain text

  • Możesz użyć w tekście znaczników BBCode. Adresy zostaną automatycznie zamienione na linki.
  • Znaczniki HTML niedozwolone.
  • Adresy internetowe są automatycznie zamieniane w odnośniki, które można kliknąć.
  • Znaki końca linii i akapitu dodawane są automatycznie.

Archiwum

  • luty 2012 (1)
  • Styczeń 2012 (7)
  • Grudzień 2011 (2)
  • Listopad 2011 (2)
  • Październik 2011 (2)
  • Wrzesień 2011 (3)
  • Sierpień 2011 (2)
  • Lipiec 2011 (3)
  • Czerwiec 2011 (1)
  • Kwiecień 2011 (4)
  • luty 2011 (1)
  • Styczeń 2011 (2)
  • Listopad 2010 (6)
  • Październik 2010 (5)
  • Sierpień 2010 (10)
  • Lipiec 2010 (3)
  • Czerwiec 2010 (2)
  • Maj 2010 (1)
  • Kwiecień 2010 (2)
  • luty 2010 (4)
  • Styczeń 2010 (5)
  • Grudzień 2009 (5)
  • Listopad 2009 (1)
  • Październik 2009 (4)
  • Wrzesień 2009 (6)
  • Sierpień 2009 (11)
  • Lipiec 2009 (23)
  • Czerwiec 2009 (14)
  • Maj 2009 (23)
  • Kwiecień 2009 (22)
  • Marzec 2009 (14)
  • luty 2009 (20)
  • Styczeń 2009 (14)
  • Grudzień 2008 (17)
  • Listopad 2008 (12)
  • Październik 2008 (10)
  • Wrzesień 2008 (4)
  • Lipiec 2008 (2)
  • Czerwiec 2008 (5)
  • Maj 2008 (5)
  • Kwiecień 2008 (9)
  • Marzec 2008 (9)
  • luty 2008 (30)
  • Styczeń 2008 (22)
  • Grudzień 2007 (15)
  • Listopad 2007 (19)
  • Październik 2007 (10)
  • Wrzesień 2007 (22)
  • Sierpień 2007 (21)
  • Lipiec 2007 (29)
  • Czerwiec 2007 (53)
  • Maj 2007 (61)
  • Kwiecień 2007 (14)
  • Marzec 2007 (5)
  • luty 2007 (4)
  • Styczeń 2007 (16)
  • Grudzień 2006 (69)
  • Listopad 2006 (15)
  • Wrzesień 2006 (25)
  • Sierpień 2006 (20)
  • Lipiec 2006 (10)
  • Czerwiec 2006 (10)
  • Maj 2006 (35)
  • Kwiecień 2006 (5)
  • Marzec 2006 (15)
  • luty 2006 (5)
  • Grudzień 2005 (10)
  • Listopad 2005 (15)
  • Sierpień 2005 (10)
  • Lipiec 2005 (20)
  • Czerwiec 2005 (30)
  • Maj 2005 (30)
  • Kwiecień 2005 (34)
  • Marzec 2005 (14)
  • luty 2005 (10)
  • Grudzień 2004 (30)
  • Listopad 2004 (48)
  • Październik 2004 (25)
  • Sierpień 2004 (18)
  • Lipiec 2004 (30)

Kategorie

  • Angielski (1)
    • FCE (0)
  • Dom (4)
    • Akwarium (3)
    • Kot (2)
  • Gry (11)
    • Counter Strike (8)
  • Informatyka (15)
    • Hardware (15)
      • Mój komputer (14)
    • Linux (0)
    • Programowanie (173)
      • C++ (134)
        • Concurrency (66)
        • Exceptions (14)
        • Templates (21)
      • Narzędzia (10)
        • Visual Studio 2003 (21)
        • Visual Studio 2005 (45)
        • Visual Studio 2008 (33)
        • Visual Studio 2010 (13)
      • PHP (9)
    • Windows (18)
  • Internet (10)
    • Drupal (18)
    • Linki (29)
  • Miejsca (2)
    • Poznań (3)
    • Sieradz (1)
    • Wrocław (12)
    • Zgorzelec (0)
  • Pieniądze (122)
    • Giełda (47)
    • Inwestowanie (66)
    • Mieszkanie (69)
  • Rodzina (14)
    • Magda (1)
  • Rozrywka (66)

Logowanie

  • Utwórz nowe konto
  • Prześlij nowe hasło
Theme provided by Danetsoft under GPL license from Danang Probo Sayekti