PROGRAMOWANIE

Thread.join()

Jeśli chcemy aby aktualny wątek poczekał na inny wątek zanim ten zakończy swoją robotę można do tego celu wykorzystać metodę Thread.join. Prosty przykład użycia Dzięki wywołaniu w powyższym kodzie metody join mamy pewność, że wątek wywołujący (w tym wypadku metoda main) poczeka na wątek przechowywany w referencji thread. Bez tego nie mamy tej gwarancji (w …

Thread.join() Czytaj dalej »

O komentarzach w kodzie

Zebrałem tutaj kilka ciekawych spostrzeżeń znalezionych w odmętach Internetu. Zapraszam do zajrzenia 🙂 O dążeniu do doskonałości Każdy komentarz w programie jest jak przeprosiny dla czytelnika. „Przepraszam, że mój kod jest tak nieprzejrzysty, że nie można go zrozumieć patrząc na niego”. Musimy po prostu zaakceptować fakt, że nie jesteśmy doskonali, ale starać się być doskonałymi …

O komentarzach w kodzie Czytaj dalej »

Idea fail-fast

Idea fail-fast mówi o tym, że najlepiej żeby system/program/cokolwiek wywaliło się jak najszybciej. No to lecimy z przykładami 🙂 Metoda/obiekt – programowanie obiektowe Tutaj idea fail-fast będzie polegała na jak najszybszej weryfikacji otrzymywanych parametrów. Metoda Klasa Kosztowne obliczenia Załóżmy, że mamy system, który na pewnym etapie wykonuje obliczenia które są bardzo kosztowne (na przykład uczenie …

Idea fail-fast Czytaj dalej »

Jak zmienić kodowanie znaków tekstu? I czy zawsze jest to możliwe?

Aby zmienić kodowanie z jednego na drugie należy najpierw odczytać tekst przy pomocy kodowania źródłowego i później zapisać z kodowaniem docelowym. Czyli trzeba zamienić numerki z jednego kodowania na odpowiedniki z drugiego kodowania (bo na końcu znaki są zapisywane za pomocą liczb). Tyle teorii. Krok po kroku Załóżmy, że mamy następujący tekst: I załóżmy, że …

Jak zmienić kodowanie znaków tekstu? I czy zawsze jest to możliwe? Czytaj dalej »

Poziomy abstrakcji w kodzie

Dobre zarządzanie poziomami abstrakcji kodu sprawia, że kod jest łatwiejszy do zrozumienia i w wielu przypadkach do utrzymania. Lecz nie jest to łatwe zadanie 🙂 Jak sobie pomóc? Opowiadanie o kodzie Jednym ze sposób jest opowiadanie o swoim kodzie. Rzeczy na najwyższym poziomie abstrakcji powinniśmy być w stanie wytłumaczyć osobom kompletnie nietechnicznym – znającym tylko …

Poziomy abstrakcji w kodzie Czytaj dalej »

Język YAML

Jest to minimalistyczny język pozwalający przechowywać/przesyłać dane opierając się w dużej mierze na idei wcięć. Podwójna spacja służy do grupowania elementów. Minimalistyczny Porównując język YAML do języka JSON można łatwo zauważyć jego minimalizm (po lewej YAML, po prawej JSON): Idea wcięć Język YAML posługuje się wcięciami aby definiować kolejne zagnieżdżenia: Kolekcje Oczywiście nie mogło zabraknąć …

Język YAML Czytaj dalej »

Instrumentacja kodu

Instrumentacja kodu – to głównie „badanie” wydajności aplikacji. A składają się na to dwa elementy:1. Logowanie zdarzeń aplikacji, takich jak: start i koniec wykonywania metod, błędy aplikacji czy ważnych zdarzeń w aplikacji.2. Profilowanie aplikacji – sprawdzanie czasu wykonania czy zużycia zasobów (pamięci, dysku i innych) Prosta instrumentacja Załóżmy, że mamy do zinstrumentowania następujący kod: Najprostszym …

Instrumentacja kodu Czytaj dalej »

BOM – czyli jak odczytywać dokument tekstowy

BOM (Byte Order Mark) są to znaki poprzedzające dokument, dzięki którym programy go odczytujące mogą odczytać różne informacje. Po co to komu? Przykładowo wysyłając pliki za pomocą protokołu HTTP mamy możliwość określenia typu za pomocą nagłówka Content-Type. Innym razem możemy uzgodnić z adresatem w jaki sposób powinien odczytywać dokument. Aczkolwiek czasami pojawiają się sytuacje, gdy …

BOM – czyli jak odczytywać dokument tekstowy Czytaj dalej »

Strażnicy typów [Type Guards]

Idea strażników typu jest prosta – przed użyciem argumentu chcemy sprawdzić czy jego typ jest poprawny: Wsparcie w różnych językach Wsparcie dla tego typu sprawdzeń jest dostępne w wielu języka, lecz wydaje się, że jest najszerzej wspierane w JavaScript z racji tego, że w JavaScript nie ma natywnego wsparcia dla typów. JavaScript Sprawdzanie typów prostych …

Strażnicy typów [Type Guards] Czytaj dalej »

ASCII, ANSI, UTF-8… – o kodowaniu znaków

Jak komputer przechowuje znaki? Warto na początku przypomnieć, że komputer przechowuje wszystkie dane jako bity (zero lub jeden). I tak w dużej mierze działa kodowanie znaków – danemu znaku przypada jakaś liczba: Znak Reprezentacja binarna … … A 01000001 B 01000010 C 01000011 D 01000100 … … Fragment tabeli ASCII Pierwszy standard kodowania – ASCII …

ASCII, ANSI, UTF-8… – o kodowaniu znaków Czytaj dalej »