-
Data: 2011-10-10 18:08:00
Temat: [OT] Re: Dlaczego w branży rozrywkowej najsłabiej płacą?
Od: Edek <e...@g...com> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]On 10/10/2011 05:57 AM, Andrzej Jarzabek wrote:
> On 09/10/2011 19:52, Wojciech Jaczewski wrote:
>> Andrzej Jarzabek wrote:
>>
>>> Nie omówić. Wypytać. Oczywiście będzie to obarczone jakimś tam błędem,
>>> ale raczej niewielkim.
>>
>> Zaintrygowała mnie ta odpowiedź.
>>
>> Uważam, że mi od jakiegoś czasu udaje się tworzyć nie-wywalające się
>> programy - oczywiście przy pierwszych uruchomieniach czasem się i wywalą,
>> ale po poprawieniu działają już dobrze. Dużo trudniej jest doprowadzić do
>> tego, aby każdy szczegół działał zgodnie z wymaganiami, niż do tego aby
>> program się nie wywalał.
>
> 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.
>
>> Jednak jedyne co mógłbym powiedzieć o "technice", jak to robię jest:
>> robić
>> najprościej jak się da i realizować wyłącznie tę funkcjonalność, która
>> jest
>> wymagana. Taka odpowiedź miałaby jednak taką wadę, że do takiej
>> odpowiedzi
>> każdy, niezależnie od doświadczenia i umiejętności, mógłby przygotować
>> się w
>> minutę, a jednocześnie: to co jeden uważa za program prosty, dla drugiego
>> może być programem bałaganiarskim.
>
> No ale jeśli kandydat powie coś takiego na rozmowie, to oczywistym jest
> kolejne pytanie, co konkretnie robi, żeby jego kod był prosty. Zeby
> podał jakieś konkretne przykłady ze swojej praktyki na przykład, albo
> odpowiedział na pytanie - jeśli funkcja ma realizować skomplikowaną
> działalność, jak ją napisać, żeby była prosta. Dwie do pięciu minut na
> odpowiedź dużo ci powie.
Dodam:
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,
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.
>
>> Jeśli możesz, to przedstaw, jakie wg Ciebie techniki się wykorzystuje
>> podczas robienia nie-wywalających się programów (wystarczy mi odnośnik do
>> jakiegoś tekstu). Powinny spełniać następujące kryteria:
>> - pomagać w osiągnięciu celu
>> - być czasochłonne w nauczeniu się (bo gdyby dało się jej nauczyć w
>> dzień-
>> dwa, to nie byłoby sensu selekcjonować kandydatów wg kryterium znajomości
>> tej techniki).
>> - ma być trudno o nich opowiadać, jeśli samemu nie umie się ich
>> wykorzystać.
>
> 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. 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ść.
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
ma garbage collection to unikanie leaków, jeżeli jest też,
testy, czytelność kodu, enkapsulacja, dzielenie problemu na mniejsze,
dbałość o odpowiednie sygnalizowanie błędów (nie BSOD ani "Exception:
Error Occured"), złożoność algorytmiczna (żeby test z 10 elementami
nie zajął 1/1000 tego co ze 100 elementami), komentowanie kodu,
nie robienie różnego rodzaju głupot (wbrew pozorom pewien problem
czasami, nie mówię o błędach), wzorce projektowe, o ile ktoś wie
jak ich używać (swoją drogą w C++ mówi się raczej o idioms),
RTFM jeżeli używa się funkcji systemowych i/lub bibliotek,
jak ktoś się bierze się za wątki, to musi mieć wyobraźnię
i znać zasady, umiejętność korzystania z języka w tym
z kompilatora i innych narzędzi, również
w celu unikania błędów - każdy język ma swoją specyfikę, na
przykład jeżeli chodzi o nie zainicjalizowane zmienne, type
safety, ostrzeżenia kompilatora, na czym można polegać,
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ć.
Do tego każda dziedzina, w tym język, ma swoją specyfikę,
o którą można zapytać.
>
> W ogóle to można jeszcze zwrócić uwagę na istotny aspekt całej sprawy: w
> pisaniu programów, które się nie wywalają, samo to, że napiszesz program
> i on się nie wywala to jest tylko wierzchołek góry lodowej. Bardzo
> istotne jest również to, żeby program napisany przez ciebie nie wywalił
> się jak inny programista zacznie wprowadzać w nim zmiany, być może długo
> po tym i być może nie mając do ciebie dostępu i nie mogąc cię spytać
> dlaczego jest tak a nie inaczej. Oczywiście nie da się napisać programu
> tak, żeby inny programista nie mógł wprowadzić do niego błędów, ale też
> 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 ;)
Edek
Następne wpisy z tego wątku
- 10.10.11 19:59 Waldek M.
- 10.10.11 20:42 Edek
- 10.10.11 20:52 Edek
- 11.10.11 03:13 Andrzej Jarzabek
- 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
Najnowsze wątki z tej grupy
- Can you activate BMW 48V 10Ah Li-Ion battery, connecting to CAN-USB laptop interface ?
- We Wrocławiu ruszyła Odra 5, pierwszy w Polsce komputer kwantowy z nadprzewodzącymi kubitami
- Ada-Europe - AEiC 2025 early registration deadline imminent
- John Carmack twierdzi, że gdyby gry były optymalizowane, to wystarczyły by stare kompy
- Ada-Europe Int.Conf. Reliable Software Technologies, AEiC 2025
- Linuks od wer. 6.15 przestanie wspierać procesory 486 i będzie wymagać min. Pentium
- ,,Polski przemysł jest w stanie agonalnym" - podkreślił dobitnie, wskazując na brak zamówień.
- Rewolucja w debugowaniu!!! SI analizuje zrzuty pamięci systemu M$ Windows!!!
- Brednie w wiki - hasło Dehomag
- Perfidne ataki krakerów z KRLD na skrypciarzy JS i Pajton
- Instytut IDEAS może zacząć działać: "Ma to być unikalny w europejskiej skali ośrodek badań nad sztuczną inteligencją."
- Instytut IDEAS może zacząć działać: "Ma to być unikalny w europejskiej skali ośrodek badań nad sztuczną inteligencją."
- Instytut IDEAS może zacząć działać: "Ma to być unikalny w europejskiej skali ośrodek badań nad sztuczną inteligencją."
- U nas propagują modę na SI, a w Chinach naukowcy SI po kolei umierają w wieku 40-50lat
- C++. Podróż Po Języku - komentarz
Najnowsze wątki
- 2025-07-03 ROG
- 2025-07-03 OZE dały Polsce więcej prądu niż elektrownie węglowe
- 2025-07-03 Dlaczego nikt nie powiadamia służb!
- 2025-07-02 Jaka ładowarka sieciowa do Iphona?
- 2025-07-02 ,,The Plot to Get RFK" (,,Spisek, by pozbyć się RFK")
- 2025-07-02 Rozkaz 17-2025: O Zaprzestaniu Zaciągania Kredytów
- 2025-07-02 Rozkaz 16-2025: 2025-06-19 Apelacja Do Wyroku Sądu Rej. w Sprawie IVRNs 295-23
- 2025-07-02 Rozkaz 17-2025: O Zaprzestaniu Zaciągania Kredytów
- 2025-07-02 Inżynierowie... inżynierzy...
- 2025-07-02 Can you activate BMW 48V 10Ah Li-Ion battery, connecting to CAN-USB laptop interface ?
- 2025-07-02 Kto potrafi sprawdzić aku BMW 48V 10Ah Li-Ion do mini hybrydy, czy sprawny ?
- 2025-07-02 Warszawa => Senior IT Recruitment Consultant <=
- 2025-07-02 Gdańsk => Konsultant wdrożeniowy (systemy controlingowe) <=
- 2025-07-02 Warszawa => IT Hardware Specialist - Wsparcie i Konfiguracja <=
- 2025-07-02 Warszawa => Inżynier oprogramowania .Net <=