Przejdź do treści

Kategoria: JavaScript

21 artykułów oznaczonych „JavaScript".

Gdy kod sam się dubluje – sprzątanie pod osłoną testów

PythonDjangoJavaScript

W dużym projekcie nie da się pamiętać, że gdzieś już jest funkcja licząca to samo – więc pisze się ją drugi i trzeci raz. To nie lenistwo, to koszt pamięci. Problem w tym, że kopie z czasem się rozchodzą: ta sama najlepsza próba ucznia potrafiła być inna na ekranie i w PDF-ie, a w aplikacji mobilnej ten sam egzamin pokazywał czas raz jako 12:05, raz jako 12 min 5 s. Ta sama choroba złapała niezależnie backend Django i aplikację w React Native. O tym, dlaczego duplikacja to fabryka takich rozjazdów, i jak posprzątać ją bezpiecznie: najpierw dopisać testy, potem scalać, a zielona suita ma świecić tak samo przed i po.

Czytaj dalej →

Jak wyrzuciłem Bootstrap z produkcyjnej aplikacji Django, szablon po szablonie

Front-endCSSJavaScript

Studium przypadku z zawodowe.edu.pl: platforma ruszyła na początku 2025 na Bootstrapie 5, po roku miałem w planach jego usunięcie, po półtora – było zrobione. Nie przez wielki przepis, tylko szablon po szablonie, z bezpiecznym przełącznikiem i testami pilnującymi, żeby Bootstrap nie wrócił tylnymi drzwiami. Co go zastąpiło: details, dialog, :has(), natywne selecty i garść vanilla JS.

Czytaj dalej →

Dlaczego nie od razu framework – czasem platformą jest sama przeglądarka

Front-endJavaScriptWeb Components

Nowy projekt i pierwsza decyzja: React czy Vue? Dla wielu to już nie decyzja, tylko odruch – zaczyna się od frameworka, zanim wiadomo, czy jest potrzebny. Kiedy framework naprawdę się broni (duży współdzielony stan, zespół, ekosystem), a kiedy wystarczy sama platforma: Web Components, moduły ES, Intl, View Transitions. Na przykładzie tego bloga – statyku prawie bez JavaScriptu.

Czytaj dalej →

Dlaczego coraz częściej piszę CSS tam, gdzie kiedyś był JavaScript

Front-endCSSJavaScript

Rozwijane menu, zakładki, akordeon, tooltip, sticky nagłówek, płynne przewijanie, pozycjonowanie dymka względem przycisku – to wszystko pisaliśmy odruchowo w JavaScripcie, bo CSS tego nie potrafił. Dziś potrafi. Przegląd rzeczy przeniesionych ze skryptu do arkusza stylów: :has(), popover, details, scroll-snap, position: sticky, container queries – z przykładami before/after i uczciwym rozdziałem o granicach.

Czytaj dalej →

Dlaczego nowe projekty zaczynam bez jQuery – i dlaczego to nie jest atak na jQuery

Front-endJavaScripthtml/css

Nie piszę o was, piszę o sobie sprzed lat. Kiedy pojawiło się PHP, trzymałem się CGI i Perla tak długo, że na PHP spojrzałem dopiero koło wydania czwartego. Ten sam odruch – nauczyłem się czegoś raz i tak będę pisał dalej – dziś każe ludziom zaczynać nowe projekty od jQuery. Przegląd tego, po co naprawdę braliśmy tę bibliotekę i co z tego jest już w gołej przeglądarce, z uczciwym rozdziałem o tym, kiedy jQuery wciąż ma sens.

Czytaj dalej →

Jak sortuje twój język: TimSort, Powersort, pdqsort i reszta

algorytmyPythonJavaScript

Ostatnia część cyklu o sortowaniu: co naprawdę dzieje się po wywołaniu sorted() w Pythonie, Arrays.sort w Javie, std::sort w C++, sort() w PHP i JavaScripcie oraz sort_unstable w Ruście. Powersort od CPythona 3.11, dual-pivot quicksort dla typów prostych, stabilność wymuszona specyfikacją, sortowanie zewnętrzne, quickselect zamiast sortowania i klasyczne pułapki: sortowanie liczb jak napisów oraz niespójny komparator.

Czytaj dalej →

Dlaczego godzina ma 60 minut, a doba 24 godziny

matematykaPythonJavaScript

W kieszeni nosisz babiloński kalkulator sprzed czterech tysięcy lat. Skąd wziął się system sześćdziesiątkowy i liczenie na paliczkach, czemu 60 i 12 wygrywają z 10 liczbą dzielników, jak Egipcjanie podzielili noc na 12 godzin, skąd pochodzą słowa minuta i sekunda – i dlaczego rewolucyjna Francja przegrała z 10-godzinną dobą, choć jej dziesiętny czas przeżył w uniksowym timestampie.

Czytaj dalej →

Cyfry kontrolne – jak PESEL, NIP, IBAN i numer karty łapią literówki

matematykaJavaScriptPython

Ostatnia cyfra PESEL-u, NIP-u, numeru karty płatniczej i dwie cyfry w IBAN-ie nie są losowe – to sumy kontrolne oparte na arytmetyce modularnej. Jakie błędy człowiek robi najczęściej, dlaczego wagi i moduł pierwszy łapią przestawione cyfry, algorytm Luhna w 15 linijkach oraz implementacje walidacji PESEL, NIP i IBAN w Pythonie, PHP i JavaScript.

Czytaj dalej →

Od dni do sekund – uniksowy timestamp, problem roku 2038 i strefy czasowe

JavaScriptPythonLinux

Trzecia część cyklu o czasie: komputery nie liczą dat, tylko sekundy od 1970 roku. Skąd się bierze problem roku 2038 (i kogo naprawdę dotknie), czym są sekundy przestępne i dlaczego znikną do 2035, oraz czemu strefy czasowe to baza danych IANA, a nie matematyka – z dniami, które nie istnieją, i godzinami, które zdarzają się dwa razy.

Czytaj dalej →

Platforma webowa dogoniła biblioteki – co możesz dziś usunąć z projektu

Front-endCSSJavaScript

jQuery, lodash, moment, Popper, jQuery UI datepicker – całe pokolenie bibliotek łatało dziury w przeglądarce. Dziś tych dziur już nie ma: CSS, HTML i natywny JavaScript przejęły to, co latami doklejaliśmy zależnościami, a miejscami CSS wyprzedził JavaScript. Przegląd z konkretnymi przykładami before/after i aktualnym stanem Baseline.

Czytaj dalej →

Zamiana Liczb: Od Dziesiętnego do Binarnego

phpJavaScriptPython

Zamiana liczb dziesiętnych na binarne – z częścią całkowitą i (rzadko porządnie tłumaczoną) częścią ułamkową. Algorytm mnożenia przez 2, kiedy ułamek jest skończony, a kiedy nieskończony, wykrywanie okresu oraz implementacje w Pythonie, JavaScript, PHP i C++. Plus most do niedokładności liczb zmiennoprzecinkowych.

Czytaj dalej →

Kalendarz w czystym JavaScript – bez jQuery

Front-endJavaScriptWeb Components

Ten sam kalendarz miesięczny co w serii z jQuery, ale bez żadnych zależności: Web Component, natywne API DOM, Intl do nazw miesięcy i dni oraz fetch zamiast AJAX-a. Pokazuję, że w 2026 jQuery jest po prostu zbędne.

Czytaj dalej →

← Wszystkie wpisy