Strona głównaUżytkownik

ucgosupl | użytkownik

ucgosupl
ucgosupl
827,24
2244 dni, 14 godzin, 27 minut temu
21 sierpnia, 2017
dotnetomaniak.pl

W dzisiejszym wpisie omawiam najbardziej znany przypadek błędu systemu safety-critical z branży medycznej prowadzący do ciężkich obrażeń i śmierci pacjentów. Został on wnikliwie przeanalizowany  teraz służy jako case study w różnego rodzaju materiałach o systemach safety. Therac-25 to urządzenie do radioterapii stosowane w latach 80-tych w jedenastu szpitalach w USA i Kanadzie. W latach 1985-87 odnotowano sześć przypadków podania pacjentowi stukrotnie większej dawki promieniowania niż ustawiona przez ...

Tagi: bug
Źródło: ucgosu.pl
Dziel się z innymi:
Therac-25, czyli błąd w sofcie medycznym powodujący śmierć pacjentów - ucgosu.pl

Inne 2244 dni, 19 godzin, 22 minuty temu ucgosupl 127 źrodło rozwiń

Dzisiaj opowieść o kolejnym znanym bugu, który miał ogromne konsekwencje. Podobnie jak w przypadku Therac-25, analiza katastrofy rakiety Ariane 5 przyczyniła się do poprawy procesów wytwarzania systemów safety-critical. We wtorek 4 czerwca 1996 roku odbył się dziewiczy lot Ariane 5 – nowej rakiety Europejskiej Agencji Kosmicznej, która była rozwijana przez ostatnie 10 lat, a budżet projektu wynosił 7 mld $. Rakieta miała wynieść na orbitę okołoziemską zespół sond do badania magnetosfery. Niestety pół ...

Tagi: bug
Źródło: ucgosu.pl
Dziel się z innymi:
Ariane 5 - int overflow, który wysadził w powietrze rakietę - ucgosu.pl

Inne 2244 dni, 19 godzin, 22 minuty temu ucgosupl 82 źrodło rozwiń

Wprowadzenie do Test Driven Development - wszystkie wpisyDlaczego zainteresowałem się TDD?Na czym polega TDDPiramida testów – do czego służą poszczególne poziomyZalety TDDWymówki, aby nie pisać unit testówJak pisać dobre unit testyMocki – radzenie sobie z zależnościami w testachMiary jakości unit testówAntywzorce unit testówKiedy nie stosować TDD W tym artykule odpowiemy sobie na pytanie jakie rodzaje testów powinniśmy wykonywać i w jakich proporcjach. Pomoże nam w tym piramida testów, czyli prosta graf...

Tagi: TDD
Źródło: ucgosu.pl
Dziel się z innymi:
Piramida testów - do czego służą poszczególne poziomy - ucgosu.pl

Sztuka programowania 2258 dni, 18 godzin, 59 minut temu ucgosupl 73 źrodło rozwiń

Ostatnio na portalu embedded.com zaczęła pojawiać się seria artykułów omawiających 10 najczęstszych problemów w projektach embedded napisana przez Jacka Gannsle. Pierwszym omówionym zagadnieniem były złudne oszczędności (link  tutaj). Czytając artykuł zgadzałem się praktycznie z każdym słowem, bo sam obserwuję to samo praktycznie od początku kariery zawodowej. Z resztą nie jest to coś specyficznego tylko dla systemów embedded, czy branży IT, Krótkowzroczne podejście do oszczędności jest chyba ogólnoświat...

Źródło: ucgosu.pl
Dziel się z innymi:
Czy na pewno stać Cię na oszczędności w projekcie? - ucgosu.pl

Inne 2269 dni, 19 godzin, 21 minut temu ucgosupl 68 źrodło rozwiń

O code review napisano już całkiem sporo. W internecie można znaleźć dokładne opisy jak powinny wyglądać, jakie dają efekty, czy ile kodu sprawdzać na raz. Dlatego nie będę dokładnie analizować tych aspektów. Zamiast tego krótko opiszę najważniejsze korzyści i kilka przydatnych technik na podstawie własnych doświadczeń. Z code review korzystałem już w wielu projektach i zawsze miało to pozytywny wpływ na jakość kodu. Moim zdaniem code review powinno być elementem każdego poważnego projektu. Jakie są n...

Tagi: Code review
Źródło: ucgosu.pl
Dziel się z innymi:
Code review - prosty sposób na poprawienie jakości kodu - ucgosu.pl

Sztuka programowania 2326 dni, 14 godzin, 33 minuty temu ucgosupl 124 źrodło rozwiń

Ostatnio czytałem książkę „Mit przedsiębiorczości”, która mówi, że każda firma od samego początku powinna mieć jasno określoną strukturę i dobrze zdefiniowane procesy. Skłoniło mnie to do refleksji jaki wpływ takie procesy mają na mnie jako pracownika. Jakie są zalety i wady pracy dla wielkiej korporacji oraz małego startupu. I jaki poziom strukturyzacji jest najlepszy dla mnie. Nie skupiam się tutaj na aspektach finansowych, czy multisportach, a jedynie na konsekwencjach strukturyzacji i jej wpływie na ...

Źródło: ucgosu.pl
Dziel się z innymi:
Wielka korporacja, czy mała firma? - ucgosu.pl

Inne 2328 dni, 18 godzin, 57 minut temu ucgosupl 178 źrodło rozwiń

Pisząc unit testy chcielibyśmy wiedzieć, czy robimy to wystarczająco dobrze i czy dodajemy w ten sposób wartość do projektu. Informacja ta jest potrzebna programistom, aby mogli doskonalić swój warsztat i ułatwiać pracę zespołowi. Korzystają z niej również managerowie planując zadania, skład zespołu itp. Najczęściej wykorzystywaną metryką jest tutaj test coverage, jednak niesie ona jedynie ograniczoną informację. Ważne są również miary empiryczne, które ciężko przedstawić w formie liczbowej. Na począt...

Źródło: ucgosu.pl
Dziel się z innymi:
Miary jakości unit testów - ucgosu.pl

Sztuka programowania 2377 dni, 16 godzin, 24 minuty temu ucgosupl 94 źrodło rozwiń

W zeszłym tygodniu cały świat mówił o Elonie Musku i o SpaceX, a wszystko za sprawą startu rakiety Falcon Heavy, który odbył się 6 lutego 2018. Największe wrażenie na wszystkich wywarło synchroniczne lądowanie dwóch bocznych rakiet. Przy okazji – wiecie, że SpaceX wcale nie wykonało takiego lądowania jako pierwsze? New Shepard firmy Blue Origin należącej do Jeffa Bezosa było wcześniej, tylko widocznie mają gorszy marketing. Dzięki studiowaniu automatyki mogłem od razu docenić kunszt inżynierów projektują...

Źródło: ucgosu.pl
Dziel się z innymi:
Lądowanie Falcon Heavy od strony technicznej - ucgosu.pl

Inne 2447 dni, 8 godzin, 47 minut temu ucgosupl 137 źrodło rozwiń

W dzisiejszym artykule omawiam tajemną sztukę estymowania czasu. Wiele osób ma do siebie pretensje, że nie potrafi poprawnie przewidzieć wymaganego czasu na zadanie i projekt. Prawdopodobnie zapominają oni jakie jest znaczenie słowa estymata. Aby rozjaśnić temat wychodzę od statystyki i pewnych faktów o estymatorach, a następnie formułuję wnioski dotyczące estymowania czasu.  Nie należy tego traktować jako żadne tezy naukowe, tylko zwykłe dostrzeżenie analogii. W dalszej części te pseudonaukowe rozważani...

Źródło: ucgosu.pl
Dziel się z innymi:
Estymowanie czasu - ucgosu.pl

Inne 2477 dni, 19 godzin, 56 minut temu ucgosupl 153 źrodło rozwiń

W praktykach Extreme Programming (XP) możemy przeczytać, że tydzień pracy programisty powinien wynosić 40 godzin. Możliwe są sporadyczne nadgodziny (kilka razy w roku), ale nigdy nie powinny występować przez dwa tygodnie pod rząd. Praktyka ta nosi nazwę Sustainable Pace, czyli zrównoważone tempo. Zgodnie z XP zespół powinien pracować w stałym tempie, które jest w stanie utrzymywać w nieskończoność. Nadgodziny są symptomem poważniejszych problemów z projektem i to nimi należy się zająć. Może się wydawać,...

Tagi: nadgodziny, XP
Źródło: ucgosu.pl
Dziel się z innymi:
Zrównoważone tempo i negatywne skutki nadgodzin - ucgosu.pl

Inne 2496 dni, 20 godzin, 22 minuty temu ucgosupl 126 źrodło rozwiń

W dniach 14-15 listopada byłem na konferencji code::dive we Wrocławiu. Jest ona głównie poświęcona C++, ale dodatkowymi tematami miały być Rust, Go, Embedded, IoT, Security, czy Python. Wstęp jest darmowy, ale liczba miejsc jest ograniczona. Swoje zgłoszenie wysłałem dosyć późno i byłem pewny, że się nie załapie. Jednak w ostatniej chwili zwolniły się jakieś miejsca i dostałem swoją wejściówkę. Mogłem więc wybrać ciekawsze pozycje w agendzie i wyruszyć w drogę. Konferencja trwała 2 dni, każdego dnia m...

Tagi: konferencja
Źródło: ucgosu.pl
Dziel się z innymi:
Relacja z code::dive - ucgosu.pl

Inne 2527 dni, 18 godzin, 45 minut temu ucgosupl 40 źrodło rozwiń

W internecie można spotkać głosy, że programiści nie wykonują odpowiedzialnych zadań i nie ma żadnych regulacji, których muszą przestrzegać. Bo co złego może się stać, jeśli strona nie będzie działać, albo komputer wywali bluescreena. W końcu świat się od tego nie zawali. Być może jest to prawdą w 99% projektów programistycznych. Jednak tam, gdzie na szali jest ludzkie życie, bardzo restrykcyjne regulacje obowiązują już od dawna. Wiem o czym mówię, ponieważ przez ostatnie dwa lata pracowałem przy systemi...

Źródło: ucgosu.pl
Dziel się z innymi:
Kiedy od softu zależy ludzkie życie - o systemach bezpieczeństwa - ucgosu.pl

Sztuka programowania 2549 dni, 15 godzin, 30 minut temu ucgosupl 127 źrodło rozwiń

Testowanie kodu, który nie wykorzystuje zewnętrznych zależności jest stosunkowo proste. W większości przypadków testowany moduł współpracuje jednak z innymi elementami systemu.  Stawia to przed testami dwa wyzwania – po pierwsze powinny poprawnie działać, a po drugie sprawdzać poprawność tej współpracy. Nie jest to zadanie proste, a zewnętrzne zależności są jednym z głównych czynników utrudniających testowanie. Aby radzić sobie z zależnościami posługujemy się mockami, czyli dublerami zastępującymi zal...

Tagi: TDD
Źródło: ucgosu.pl
Dziel się z innymi:
Mocki - radzenie sobie z zależnościami w testach - ucgosu.pl

Sztuka programowania 2589 dni, 19 godzin, 52 minuty temu ucgosupl 139 źrodło rozwiń

W ostatnim wpisie przybliżyłem zestaw dobrych praktyk w pisaniu unit testów. Dzisiaj będę kontynuować ten temat z trochę innej perspektywy i opowiem o antywzorcach. Dzięki charakterystycznym nazwom, piętnującym konkretne złe praktyki, antywzorce zostają w pamięci i mamy je przed oczami pisząc podejrzany kod. Podejście do testów Pierwsza grupa wzorców nie wiąże się z pisaniem konkretnych testów, tylko raczej z nastawieniem, jakie nam towarzyszy podczas pisania i wynikającymi z tego zachowaniami.Obywatel...

Tagi: TDD
Źródło: ucgosu.pl
Dziel się z innymi:
Antywzorce unit testów - ucgosu.pl

Sztuka programowania 2604 dni, 21 godzin, 5 minut temu ucgosupl 293 źrodło rozwiń

Często unit testy nie są przez programistów traktowane jak prawdziwy kod. Są dla nich jedynie narzędziem do osiągnięcia określonego celu – sprawdzenia poprawności implementacji. Przez to testy stają się trudne w utrzymaniu albo wykonują się zbyt długo. Przez co uniemożliwiają pracę zgodnie z TDD i nie mają wartości dokumentacyjnej. Istnieją jednak proste zasady tłumaczące, jak powinny wyglądać dobrze napisane testy. Pisząc kod powinniśmy trzymać się zasad SOLID, czyli kod powinien być solidny, a dodat...

Tagi: TDD
Źródło: ucgosu.pl
Dziel się z innymi:
Jak pisać dobre unit testy - ucgosu.pl

Sztuka programowania 2606 dni, 19 godzin, 39 minut temu ucgosupl 161 źrodło rozwiń

W poprzednich częściach cyklu skupiałem się na korzyściach płynących z TDD. Jeżeli ta metoda wejdzie nam w krew, te korzyści zachęcą nas, abyśmy pisali w ten sposób zawsze i wszędzie. Motywują nas do tego również eksperci mówiący, że każda linia kodu powinna być przetestowana. Okazuje się jednak, że nie zawsze testowanie wszystkiego na siłę jest dobrym rozwiązaniem. W tym artykule opiszę sytuacje, kiedy nie opłaca się używać TDD. Programując czasem natrafiamy na problemy, co do których nie mamy z góry...

Tagi: TDD
Źródło: ucgosu.pl
Dziel się z innymi:
Kiedy nie stosować TDD - ucgosu.pl

Sztuka programowania 2610 dni, 21 godzin, 59 minut temu ucgosupl 190 źrodło rozwiń

Próbując wprowadzić TDD w projekcie najczęściej spotkamy się z oporem. Argumenty przeciwko tej technice ze strony developerów i osób decyzyjnych, które nie miały z nią do czynienia często się powtarzają. Postanowiłem więc w tym wpisie zebrać te argumenty i je omówić. Krytyka TDD ze strony osób mających doświadczenie w temacie zwykle przybiera inną formę i jest to temat na osobny wpis. Brak czasu to podstawowy argument przeciwko pisaniu testów. Jest bardzo często używany przez managerów oraz przez niek...

Tagi: TDD
Źródło: ucgosu.pl
Dziel się z innymi:
Wymówki, aby nie pisać unit testów - ucgosu.pl

Sztuka programowania 2614 dni, 21 godzin, 51 minut temu ucgosupl 239 źrodło rozwiń

Przestawienie się na Test Driven Development z pisania metodą tradycyjną nie jest łatwym zadaniem. Szczególnie na początku musimy walczyć ze starymi nawykami, a kiedy napotykamy trudności, naturalnym rozwiązaniem jest stosowanie metod, które znamy i rozumiemy. Poza tym początkowo TDD może nam się wydawać nieintuicyjne, a wkład pracy wydaje się większy. Jak to zwykle bywa w takich przypadkach, kluczem jest wytrwałość. Każda umiejętność wymaga czasu, aby ją dobrze opanować. Kiedy już nam się to uda, zauważ...

Tagi: TDD
Źródło: ucgosu.pl
Dziel się z innymi:
Zalety TDD - ucgosu.pl

Sztuka programowania 2618 dni, 19 godzin, 52 minuty temu ucgosupl 93 źrodło rozwiń

W poprzedniej części cyklu o TDD opisałem dlaczego sposób wytwarzania oprogramowania, który praktykowałem na początku się nie sprawdzał i co mnie skłoniło do zainteresowania się Test Driven Development. Dzisiaj opiszę jak wygląda praca zgodnie z TDD. Jak to często bywa w przypadku praktyk zwinnych zasady teoretyczne są dosyć proste, a kluczem do sukcesu jest dyscyplina. Na początku musimy sobie wyjaśnić jedną bardzo ważną kwestię. TDD to nie synonim do pisania testów jednostkowych. Owszem, unit testy ...

Tagi: TDD
Źródło: ucgosu.pl
Dziel się z innymi:
Na czym polega TDD - ucgosu.pl

Sztuka programowania 2625 dni, 21 godzin, 49 minut temu ucgosupl 144 źrodło rozwiń

Kiedy uczyłem się programować, pisałem metodą code and fix. Czyli najpierw pisałem jakiś fragment kodu – mogła to być jedna funkcja, moduł albo nawet cały program. Następnie uruchamiałem go i ręcznie sprawdzałem czy działa, przechodziłem kod debuggerem sprawdzając wartości zmiennych i przepływ sterowania. Następnie poprawiałem znalezione błędy, dodawałem funkcjonalności i znowu sprawdzałem. Na pewno każdy programista zaczynał w ten sposób. W miarę jak moje umiejętności rosły i pisałem trudniejsze progra...

Tagi: TDD
Źródło: ucgosu.pl
Dziel się z innymi:
Dlaczego zainteresowałem się TDD? - ucgosu.pl

Sztuka programowania 2629 dni, 19 godzin, 17 minut temu ucgosupl 198 źrodło rozwiń