-
Data: 2011-10-11 03:13:46
Temat: Re: [OT] Re: Dlaczego w branży rozrywkowej najsłabiej płacą?
Od: Andrzej Jarzabek <a...@g...com> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]On 10/10/2011 19:08, Edek wrote:
> On 10/10/2011 05:57 AM, Andrzej Jarzabek wrote:
>>
>> Zgodzę się, że to jest trudniejszy problem, ale to nie jest tylko
>> kwestia umiejętności programisty. Zresztą samo "wywalanie się" to był
>> skrót myślowy, możemy sobie rozszerzyć czy dodefionować pojęcie na
>> nieprawidłowe działanie programu wynikające z błędu programistycznego, w
>> przeciwieństwie do błędnego czy niedostatecznego sformułowania lub nie
>> do końca zrozumienia wymagań.
>
> Skrajne podejście do sprawy: pisanie kodu to spełnienie wszystkich
> ograniczeń, z czego jednym z ograniczeń są wymagania. To eksperyment
> myślowy, ale też prawda.
Mówiliśmy o tym, co należy do kompetencji programisty. Programista nie
musi i zwykle nie będzie znał wszystkich wymagań, a w praktyce raczej
rzadko się zdarza, żeby była specyfikacja wymagań, która jest kompletna,
bezbłędna i jednoznaczna. Oczywiście sztka robienia programu tak, żeby
był zgodny ze wszytkimi wymaganiami jest też istotna, ale rola
programisty w tym wszystkim zależy od różnych rzeczy, na przykład od
procesu, poza tym jest to proces iteracyjny, gdzie w danej kolejnej
iteracji zazwyczaj się pisze program mniej lub bardziej nie spełniający
wymagań itd. itd., to jest temat rzeka.
Ja akurat pisałem o aspekcie niezawodności, bo on jest ściśle związany z
umiejętnościami programisty, a z drugiej mowa o dziedzinach, gdzie
często niezawodność ma duże znaczenie.
> Podziwiam ludzi, którzy mówią o prostocie i zawsze się zastanawiam,
> czy rozumieją. Każdy problem ma wiele błędnych ale prostych rozwiązań,
> w wielu dziedzinach przybliżony wynik nie spełnia wymagań. W zasadzie
> zgodnie z zasadą prostoty nie powinien istnieć skomplikowany kod,
Każde rozwiązanie ma też wiele sposobów wyrażenia, które mogą być
prostsze lub mniej proste (w zasadzie jeśli w tym kontekście ma być
jakieś przeciwieństwo prostego, to raczej lepiej niż "skomplikowane"
wyraża o co chodzi określenie "zagmatwane").
> a z empirycznych, moich przynajmniej, doświadczeń ze światem kod
> skomplikowany istnieje i ma się dobrze, a co najważniejsze działa
> i swięcie wierzę w to, że autorzy co jak co ale uprościli go ile
> się da i dalej się nie da.
>
> Dla mnie każdy, kto zaczyna od tekstu keep it simple jest lekko
> podejrzany. Co nie znaczy, że do wielu zadań się nie nadaje i że
> ja sam komplikuję sprawy bez powodu.
Powiem tak: pisanie kodu robiącego skomplikowane rzeczy tak, żeby był
prosty jest trudne i jest jedną z najważniejszych umiejętności
programisty. Niestety również jest to rzecz, którą ciężko sprawdzić u
kandydata na rozmowie.
Poza tym rzeczywiście samo pojęcie "prostoty" jest problematyczne -
czasem lepszy projekt wymaga np. dodatkowych klas, interfejsów, relacji
czy czego tam i intuicyjnie wcale nie można określić go jako "prostszy".
>> Jest sporo takich technik, i o ile jest kilka w miarę uniwersalnych
>> (abstrakcja, czytelność, w tym ograniczenie długości funkcji, code
>> reuse, unit testing), to sporo jest zależnych od technologii (MT, OO,
>> exception safety, konkretny język programowania). Co do tekstu, no to
>> jest sporo książek traktujących o tych tematach, od ogólnych typu "Code
>> Complete" Steve'a McConnella, "Refactoring" Martina Fowlera et al. Jeśli
>> chodzi o C++ to np. "Effective C++" Scotta Meyersa itd.
>
> ...ale i tak wszystkie to gówno, jeżeli ktoś tylko przeczytał te
> książki.
Zgadza się. Co więcej, można nie przeczytać wcale tych książek, a
wszystkie te rzeczy mieć opanowane. Ale przedpiśca chciał mieć namiary
na teksty, to ma.
A jeśli chodzi o sedno sprawy, to chociaż tych książek nie da się
przeczytać w pół dnia, to wydaje mi się, że nie będzie strasznie
problematyczne wyczajenie na rozmowie kwalifikacyjnej, czy ktoś te
książki "tylko przeczytał", czy zna problemy z praktyki.
I: jeśli ktoś jest programistą z jakąkolwiek praktyką, ale bez
znajomości dobrych praktyk, ale dla dostania pracy przeczyta wszystkie
te książki i przygotuje się do odpowiadania tak, jakby stosował je w
praktyce, to potencjalnie jest bardzo dobrym programistą i cennym
pracownikiem.
> Znam sporo osób, które przynajmniej jedną z powyższych
> zasad dość świadomie olewają, a to co piszą jest łatwe w rozszerzaniu,
> debugowaniu, utrzymaniu itd. Jest coś ze słowa "Art" w Programming,
> chyba nie chodzi o kreatywność.
Czemu nie, nikt nie twierdzi przecież, że wszystkie praktyki i techniki
powinny być zawsze i wszędzie stosowane.
> Techiniki, jest ich dużo: exception safety,
> w tym nie zostawianie otwartych plików, sprawdzanie różnych
> rzeczy w kodzie (inwarianty, proste null checki), jeżeli nie
Też w tym temacie: kiedy stosować assert.
> [...] komentowanie kodu,
A właśnie: spotkałem się z opinią, do której się przychylam, że jeśli w
kodzie potrzeba wielu komentarzy, to wskazuje to na problem z jego
strukturą, że raczej należy starać się pisać kod tak, żeby komentarz nie
był potrzebny.
> a na czym nie itd. itp., nie wiem czy cześciej nie jest problemem
> to, że ludzie padają na sprawach banalnych, niż na braku znajomości
> wyrafinowanych reguł, a o drobiazgi "wolno" pytać.
Ale też często padnięcie na sprawie banalnej jest wynikiem nie
zastosowania wcześniej wyrafinowanej reguły.
>> prawdopodobieństwo wprowadzenia później błędów jest mocno uzależnione od
>> jakości pierwotnego kodu. Niby jest to oczywiste, ale myślę, że niejeden
>> profesor kenobi by się przejechał na tym punkcie jak nic.
>
> W konkursach nie to jest najważniejsze ;)
Racja. W konkursach jest najważniejsze, żeby wypić litr piwa w sześć sekund.
Następne wpisy z tego wątku
- 11.10.11 03:31 Andrzej Jarzabek
- 11.10.11 11:44 Wojciech Jaczewski
- 11.10.11 15:15 Andrzej Jarzabek
- 11.10.11 19:30 Wojciech Jaczewski
- 11.10.11 19:51 Waldek M.
- 11.10.11 21:48 Edek
- 11.10.11 22:50 Edek
- 12.10.11 07:21 Andrzej Jarzabek
- 12.10.11 12:55 Andrzej Jarzabek
- 12.10.11 22:51 Wojciech Jaczewski
- 12.10.11 23:03 Wojciech Jaczewski
- 13.10.11 00:31 Andrzej Jarzabek
- 13.10.11 00:39 Andrzej Jarzabek
- 13.10.11 09:10 Wojciech Jaczewski
- 13.10.11 09:58 Wojciech Jaczewski
Najnowsze wątki z tej grupy
- 7. Raport Totaliztyczny: Sprawa Qt Group wer. 424
- TCL - problem z escape ostatniego \ w nawiasach {}
- Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- testy-wyd-sort - Podsumowanie
- Tworzenie Programów Nieuprzywilejowanych Opartych Na Wtyczkach
- Do czego nadaje się QDockWidget z bibl. Qt?
- Bibl. Qt jest sztucznie ograniczona - jest nieprzydatna do celów komercyjnych
- Co sciaga kretynow
- AEiC 2024 - Ada-Europe conference - Deadlines Approaching
- Jakie są dobre zasady programowania programów opartych na wtyczkach?
- sprawdzanie słów kluczowych dot. zła
- Re: W czym sie teraz pisze programy??
- Re: (PDF) Surgical Pathology of Non-neoplastic Gastrointestinal Diseases by Lizhi Zhang
- CfC 28th Ada-Europe Int. Conf. Reliable Software Technologies
- Młodzi programiści i tajna policja
Najnowsze wątki
- 2024-12-03 Tymoteusz Sz.
- 2024-12-03 Re: Prezydent ułaskawia: Prezydent USA Biden (D) ułaskawia syna własnego
- 2024-12-03 Re: Tani dodatkowy sim do smartwacha
- 2024-12-03 Wróblewo => Analityk finansowy <=
- 2024-12-03 Praktyczny test GPS...
- 2024-12-02 Tak się sprzedają elektryczne woldzwageny ;-)
- 2024-12-02 Akumulator do Hyundai
- 2024-12-02 Olsztyn => Sales Specialist <=
- 2024-12-02 Poznań => Technical Artist <=
- 2024-12-02 Bieruń => Regionalny Kierownik Sprzedaży (OZE) <=
- 2024-12-02 Kraków => Business Development Manager - Dział Sieci i Bezpieczeńst
- 2024-12-02 Chrzanów => Team Lead / Tribe Lead FrontEnd <=
- 2024-12-02 Białystok => Delphi Programmer <=
- 2024-12-02 Poznań => Dyspozytor Międzynarodowy <=
- 2024-12-02 Szczecin => Key Account Manager (ERP) <=