czwartek, 31 stycznia 2008

Jakość produktów

Jeśli komuś się wydaje, że duże i prestiżowe firmy tworzą produkty wysokiej jakości to bardzo się myli. Mówię tutaj tylko o software, bo z innymi produktami nie mam styczności od strony produkcyjnej. Filozofia jest taka: po co optymalizować kod, skoro można wzmocnić serwer na którym ten soft będzie chodzić? Ponadto presja czasowa wywierana na pracownika skutkuje tym, że przy braku wprawy nie jest on w stanie zdążyć z optymalizacją. A jakość wizualna kodu? A co to? Potem czytam kod bez wcięć (jak można się w tym połapać), chaotyczny, z bezsensownymi nazwami zmiennych etc. Komentarze to też tragedia. Szczególnie gdy ktoś odkryje coś z reguły oczywistego i wpisuje to z capslockiem w komentarze, opatrzając całość toną wykrzykników. Przykład:
// WRN! WRN! WRN! WRN! WRN! WRN! WRN! WRN! WRN! WRN! WRN! WRN! WRN! WRN! WRN!
// tu jakieś bzdury
// WRN! WRN! WRN! WRN! WRN! WRN! WRN! WRN! WRN! WRN! WRN! WRN! WRN! WRN! WRN!
Pomijając fakt, że pewne języki są z natury zagmatwane (często robimy low-level) to umieszczanie tego typu wstawek wprowadza jeszcze większą dezinformację.
Nazwy zmiennych - a kij tam jakieś konwencje czy notacje. W tej kwestii można wyróżnić następujące grupy klepaczy:
- lubiący długie nazwy, np: howManyTimesIteratorShouldIterate
- lubiący krótkie nazwy, lecz nieznaczące: i
- lubiący nazwy niekrótkie i nieznaczące: hmtisi
- lubiący bezsens: bw8937
Sposób składania kodu: a co tam, jednolinijkowce to jest to. Nie ma to jak cała pętla w jednej linii, przynajmniej autor ma satysfakcję że poza nim nikt tego nie rozumie. Wiem że perlowcy mają takie zboczenie i często stosują jednolinijkowce, ale my w perlu nie pisajet. Zdzierżyłbym burdel w kodzie, gdyby robiony był on w programach których nie muszę później poprawiać. Nie ma nic gorszego, od sytuacji w której ja napiszę całą klasę (lub podprogram) - wcięcia, spójność nazw, pełna estetyka. A potem przychodzi taki H4X0R i wsadza mi swoje niechlujne kawałki kodu do funkcji. Aż mam ochotę zlecić takiemu poprawianie kodu wyjętego z obfuscatora.

środa, 23 stycznia 2008

Attractive work environment

Tym mianem określa się jeden z celów firmy - "by miejsce pracy było dla pracownika atrakcyjne". Oczywiście jest to bardzo atrakcyjny openspace, który z defincji atrakcyjny być nie może (przynajmniej dla deweloperów). Openspace mieści ok 50 osób, programiści pomieszani są z supportowcami oraz handlowcami - co sprowadza się do tego, że programiści siedzą cicho ze słuchawkami na uszach, a supportowcy i handlowcy ujadają ile się da przez telefon. Ale to jest jeszcze do przeżycia. Gorzej jak ktoś zacznie rżeć na całą salę. Mamy tutaj trzy takie ziółka, na szczęście nie siedzą razem bo to przecież jest wtedy samonakręcająca się spirala hiperboliczna. Co jakiś czas jest: IHAHAHAHA, IHAHAHAHAA, IHAHAHAAAA. No ileż można rżeć jak koń na całą salę? Albo laski opowiadające coś z przejęciem z volume=max, piskliwym głosikiem na najwyższym tonie. Cieszę się że lubię słuchać muzyki w pracy i mi ona nie przeszkadza, bo inaczej to bym pewnie już nosił gustowny kaftan i pomieszkiwał w pokoiku z gustownie miękką tapetą lecz bez nawet niegustownych klamek.
Powszechnie wiadomo, że deweloper powinien pracować w mniejszych pokojach z innymi tego typu osobnikami. I nie wolno mu przerywać podczas pracy umysłowej. Jeśli podczas obmyślania bardzo_ważnego_algorytmu podejdzie inny kmieciu, by zapytać czy w c++ indeks tablicy zaczyna się od 0 czy od 1 to oznacza to co najmniej 15 minut w plecy. Oczywiście, pytający uzyska odpowiedź, jednak powrót do poprzedniego toku myślenia nie jest prosty. Jest to spowodowane tym, że programista podczas pracy często przechwuje w swoim podręcznym mózgowym cache cały zbiór zmiennych tymczasowych oraz ścieżek rozwiązania danego problemu. Podczas przełączenia mózgu na inny wątek - wszystkie dane tymczasowe zostają usunięte.
CDN

niedziela, 20 stycznia 2008

g{mail|azeta}

Po świąteczno-sylwestrowo-other wydarzeniach pora na powrót do biznesu.
Ostatnio gazeta.pl trąbi na prawo i lewo o tym, że wprowadza nowy web interfejs do swojej poczty. Interfejs ten ma być interfejsem gmailowym. Niech mi to ktoś wytłumaczy (na pl.hum.tłumaczenia nie chcą mi wytłumaczyć) jeśli się mylę, ale:
- otrzymamy takie konto jak na gmail.com, ale o nazwie gazeta.pl
- otrzymamy takie konto jak na gmail.com, ale z reklamami doklejanymi do maili / mailami reklamowymi. No bo jak tu wierzyć, że nagle gazeta.pl zrezygnuje z reklamy mailowej?
- otrzymamy takie konto jak na gmail.com, ale o mniejszej pojemności

Powiedziałbym, że gazeta zrobiła piękny numer - przesunęła maintenance interfejsowy do google (nie wnikam w zapisy umowy), tak więc koszty utrzymania interfejsu web znacząco maleją (let's say). Natomiast użytkownik się cieszy, bo dostaje nowy super interfejs (wielu powie że najlepszy na świecie).
Jaka jest zaleta założenia konta na gazeta.pl, zamiast po prostu na gmail.com? Ja widze tylko taką zaletę, że konta na gazeta.pl dają w miarę sensowny dostęp do usenetu (nie, google akurat ma to słabo rozwiązane). Ale do usenetu mozna miec spam-konto na gazeta.pl, używane tylko jako login do pisania na grupy. Do tego - procentowo z usenetu korzysta niewiele osób. Tak więc - jesli nie usenet, to co?