-
Path: news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!newsfeed2.atman.pl!newsfeed.
atman.pl!.POSTED!not-for-mail
From: Sebastian Biały <h...@p...onet.pl>
Newsgroups: pl.misc.elektronika
Subject: Re: PICowanie
Date: Fri, 11 Oct 2013 17:56:54 +0200
Organization: ATMAN - ATM S.A.
Lines: 125
Message-ID: <l3974a$g1$1@node2.news.atman.pl>
References: <e...@g...com>
<5254fb82$0$21838$65785112@news.neostrada.pl>
<f...@g...com>
<l34br2$8d0$1@node1.news.atman.pl>
<a...@n...neostrada.pl>
<l35dk5$950$1@node1.news.atman.pl> <l35rdb$bid$1@mx1.internetia.pl>
<l36gv3$epe$1@node1.news.atman.pl> <l36qhe$fnn$1@mx1.internetia.pl>
<l36rtk$lsf$1@node2.news.atman.pl> <l3799j$v30$1@mx1.internetia.pl>
<a...@n...neostrada.pl>
<l38io6$2ld$1@mx1.internetia.pl>
NNTP-Posting-Host: 193.0.194.227
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-Trace: node2.news.atman.pl 1381507018 513 193.0.194.227 (11 Oct 2013 15:56:58 GMT)
X-Complaints-To: u...@a...pl
NNTP-Posting-Date: Fri, 11 Oct 2013 15:56:58 +0000 (UTC)
User-Agent: Mozilla/5.0 (Windows NT 6.0; rv:17.0) Gecko/20130801 Thunderbird/17.0.8
In-Reply-To: <l38io6$2ld$1@mx1.internetia.pl>
Xref: news-archive.icm.edu.pl pl.misc.elektronika:653124
[ ukryj nagłówki ]On 2013-10-11 11:59, Sylwester Łazar wrote:
> Nawyk dokumentowania kodu mam już od 15 roku życia.
Ja od 12-go, mając w ręku ZX Spectrum - Z80, przez 6502, 8051, 680x0,
8086, arm, mips. Znam(łem) assemblery wszystkich i we wszystkich
pisałem. I obecnie programuje ogromna aplikację w C++ na duzym systemie
i w wolnych chwilach roluje bity na GPIO AVRka. Skażenie asm nie
przeszkodziło mi znajdywać zalety zarówno programowania
wysokopoziomowego jak i asm, dosuje obie techniki, wliczając to takie
ciekawoski jak programowanie deklaratywne czy constrains a nawet
ostatnio kawalek w prawie-prologu się trafił (na uC :). Używam wielu
narzedzi, a nie tylko młotka asm, bo problemy mam różne więc i narzędzia
też.
> Jednak wyrobienie sobie takiego nawyku przez kilkanaście lat pracy,
> powoduje, że teraz to idzie szybko.
Mam znajomego ktory niezwykle szybko kopie doły łopatą. Do tego stopnia
ze konkuruje z minikoparkami. Czy jesteś pewny że kopanie łopatą ma
jednak przyszłość? Bo ja tak, sprawdza mi się w ogródku.
> Wiadomym jest, że jak stukasz w klawiaturę wpisując ~destruktory w C++,
> czy inne konstrukcje, nie dodając żadnych komentarzy zawsze będzie to
> szybsze,
> niż rysowanie algorytmu, dokładanie opisu słownego po polsku czy angielsku,
> kopiowanie tekstu, czy tworzenie historii zmian.
Szybsze będzie tworzenie unit testów, abstrakcji oraz czytelnego kodu
które pozwolą w pełni przetestować kod zamiast pisania komentarzy które
po miesiącu nie mają nic wspólnego z rzeczywistością bo nie istnieje
żadnej przymus aby były synchronicznie zmieniane z kodem. W "zespole"
jednoosobowym bywają z tym problemy. Wobraź sobie jak to wygląda w
zespole N>1.
> a) przyjemność zabrania się za analizę kodu przedstawionego na kolorowym
> algorytmie,
Ja mam przyjemnośc nie analizowania kodu tylko stwierdzenia jakie
warunki brzegowe ma realizować widząc testy. Implementacja ma tylko tyle
na znaczeniu że musi mieć założoną złożoność bądź restryckje czasowe.
> b) poprawianie, czy adaptacja kodu nie zabiera już tyle czasu, a wręcz
> przyspiesza.
Refaktoring kodu przyspiesza kiedy masz testy.
> c) uruchamianie jest już formalnością i czasem jest tak, że rysujesz/piszesz
> program 3 dni,
> a samo uruchamianie z oscyloskopem czy analizatorem stanów - kilka godzin.
Patrz, zupełnie jak przetestowany kod in virto.
> Gdy znajdziemy błąd, często pada od razu po spojrzeniu w dokumentację
> zdania:
> " No tak... śmieszny błąd"
Albo jak padnie unit test to patrzymy w kod i naprawiamy.
> Dzieje się tak, gdyż poświęcając dużo czasu na przygotowanie kodu, zanim
> zacznie się pisać słowa w dowolnym języku programowania, już wcześniej
> korygujemy wiele błędów natury logicznej, składni, nazwy, czy zwykłych
> pomyłek.
Dzieie się tak gdy przygotujesz sobie test suide na długo przed
napisaniem pierwszego słowa kluczowego algorytmu.
> Po wpisaniu kodu - jest on już niemal pewny.
Ba, przetestowany kod jest nie tylko pewny, ale i *przetestowany*.
> Zmiany zwyczajowo dokonują się poprzez poprawę kilkunastu znaków w kodzie.
> A w większości pewnie w komentarzach i historii zmian.
Która to historia znajduje się w systemie kontroli wersji który bez
watpienia używasz.
> Samo wpisanie daty 2013103 to już 7 znaków :-)
Tym bardziej że zbędne.
> Odpowiadając na Twoje zapytanie - tak kod jest zawsze rozwojowy.
> I tak miało być w założeniu.
Nie wątpie że łopata można kopać dziury różnych kształtów.
> W związku z tym czasem podrzucam żonie mój algorytm sprzed nastu lat na
> 8051,
> a żona przerabia go na PIC32 zmieniając (bardzo optymalnie zresztą) kod.
Zupełnie jak kompilator pawie każdego języka.
> Uczę tej pracy też dzieci, więc już trójka z mojej całej piątki opanowała
> rysowanie algorytmów,
> choć są dopiero na poziomie <liceum.
3 łopaty kopią szybciej niż jedna :P
Odkryłeś kwadratowe koło i je pielęgnujesz piłując pieczołowicie rogi aż
wyjdzie romb. Bez wątpienia warsztat masz znakomity, znajomość asm w
jednym palcu, ale czy na pewno widziałeś jak wygląda warsztat
przeciętnego programisty poza twoim domem? Wiesz ile i jakich narzędzi
używa, jak pracuje w zespole bądź samotnie, ile twoich problemów
rozwiązano w latach 70-tych i gdzie obecnie znajdują się jezyki
programowania? Programiści embedded to czesto skansen osobliwości i
rozwiązań poroblemów które albo nie istnieją albo zostały rozwiązane
dziesięciolecia temu. Nie dalej jak miesiac temu trafilem na mistrza
ktory programuje 8051 w edytorze hex pod dosem znając na pamięc kod
*maszynowy*. Nie dalej jak wczoraj musiałem zmagaś się z
systemverilogiem w którym ktoś intensywnie wymyśla nowe "lepsze"
programowanie obiektowe ignorując to co wiemy od smalltalka.
Nie zrozum mnie źle: szanuje Twoją pracę i wiedzę. Ale proszę, dla dobra
ludzkosci, nie przedstawiaja jej jako wzorca dla kogokolwiek. Jesli Ci
pasuje to ok, jesli sprawia radość to tym lepiej.
Koniecznie obejrzyj to:
http://vimeo.com/71278954
Od 4:00 jest pouczający kawałek na temat "assembler jest najfajniejszy
do wszystkiego".
Tak, ten film to rodzaj żartu, ale czy nie ciekawy? Polecam dla
wszystkich aby to obejrzeć do końca.
Następne wpisy z tego wątku
- 11.10.13 18:01 Sebastian Biały
- 11.10.13 18:03 Sebastian Biały
- 11.10.13 18:04 Piotrek
- 11.10.13 18:18 Piotrek
- 11.10.13 18:45 Sylwester Łazar
- 11.10.13 18:55 Marek
- 11.10.13 18:59 Sylwester Łazar
- 11.10.13 19:06 Sebastian Biały
- 11.10.13 19:09 Sylwester Łazar
- 11.10.13 19:14 Sylwester Łazar
- 11.10.13 19:13 Sebastian Biały
- 11.10.13 23:19 Marek Borowski
- 11.10.13 23:37 Marek Borowski
- 11.10.13 23:50 Marek Borowski
- 12.10.13 01:10 Michał Lankosz
Najnowsze wątki z tej grupy
- DS1813-10 się psuje
- Taki tam szkolny problem...
- LIR2032 a ML2032
- SmartWatch Multimetr bezprzewodowy
- olej psuje?
- Internet w lesie - Starlink
- Opis produktu z Aliexpress
- No proszę, a śmialiście się z hindusów.
- Zewnętrzne napięcie referencyjne LM385 1,2V -> 100mV dla ICL7106, Metex M-3800
- karta parkingowa
- Wl/Wyl (On/Off) bialy/niebieski
- I3C
- Pytanie o transformator do dzwonka
- międzymordzie USB 3.2 jako 2.0
- elektronicy powinni pomysleć o karierze elektryka
Najnowsze wątki
- 2024-11-25 Karty przedpłacone (podarunkowe) Google Play - pytanie do korzystających
- 2024-11-26 wina Tóska
- 2024-11-26 Rewolucja/Rewelacja!
- 2024-11-25 grupa ożyła ;)
- 2024-11-24 Być jak Clint
- 2024-11-24 Rura kanalizacja konceptu Franke = problem
- 2024-11-25 Wrocław => Lead Java EE Developer <=
- 2024-11-25 Warszawa => Business Development Manager - Network and Network Securit
- 2024-11-25 Kraków => Programista Full Stack (.Net Core) <=
- 2024-11-25 Lublin => Senior PHP Developer <=
- 2024-11-25 Karlino => Konsultant wewnętrzny SAP (FI/CO) <=
- 2024-11-25 Warszawa => ECM Specialist / Consultant <=
- 2024-11-25 Katowice => Regionalny Kierownik Sprzedaży (OZE) <=
- 2024-11-25 Warszawa => Senior Frontend Developer (React + React Native) <=
- 2024-11-25 Lublin => Inżynier Serwisu Sprzętu Medycznego <=