Programista 2/2025 (117) – marzec/kwiecień 2025 – Czy „Czysty Kod” wytrzymał próbę czasu? – SPIS TREŚCI

programistamag.pl 1 tydzień temu

Zapraszamy do zamówienia magazynu w >>prenumeracie<<. Miesięcznik jest dostępny w formie papierowej, PDF, EPUB i MOBI oraz AZW3. Do prenumeraty papierowej zawsze dołączamy wydania elektroniczne.

PROGRAMOWANIE ROZWIĄZAŃ SERWEROWYCH

Własny model AI na VPS

Pojawienie się takich modeli językowych jak Llama, DeepSeek oraz Bielik spowodowało, iż możemy używać LLMów tak jak innego systemu Open Source. Jak w takim razie skonfigurować swój własny model GenAI na serwerze? W tym artykule przejdziemy przez wszystkie niezbędne kroki, używając do tego przede wszystkim Pythona. Napiszemy prostą aplikację webową serwującą odpowiedzi z modelu w FastAPI. Prawie identyczne kroki są aplikowalne do klasycznych modeli uczenia maszynowego, z tą różnicą, iż musimy je wcześniej wytrenować sami.

Szymon Molińśki

Jak działa Internet – TCP i NAT

Witajcie w ostatnim artykule z serii „Jak działa Internet”! Zapoznaliśmy się w niej z różnymi zagadnieniami dotyczącymi Internetu – od najniższych warstw modelu OSI oraz adresowania IP i MAC po protokoły DNS i HTTP. Od czasu do czasu zdarza się jednak, iż musimy przyjrzeć się warstwie „sklejającej” omówione dotąd mechanizmy. Dlatego w tym artykule poznamy podstawowe zagadnienia związane z protokołami TCP i UDP oraz zapoznamy się z procesem NAT.

Dawid Pilarski

INŻYNIERIA OPROGRAMOWANIA

Clean Code considered harmful
Powinniśmy przestać zalecać niedoświadczonym programistom czytanie Clean Code

Prawie dokładnie sześć lat temu na łamach „Programisty” pojawił się mój artykuł „Jak clean jest Clean Code”, w którym polemizowałem z niektórymi postulatami wysuniętymi przez Roberta C. Martina. Upłynęło jednak trochę czasu, napisałem kilkadziesiąt, a może i kilkaset tysięcy linii kodu i moja niechęć wobec skrajnego – w niektórych przypadkach – podejścia Wujka Boba do pisania kodu jeszcze bardziej się wzmogła. Ściślej, stoję w tej chwili na stanowisku, iż duża część proponowanych przez niego reguł jest nie tyle kontrowersyjna albo irytująco restrykcyjna, ale wręcz szkodliwa i iż nie powinniśmy ich stosować ani tym bardziej proponować czeladnikom programistycznego fachu. Co ciekawe, nie jestem wcale z moją opinią odosobniony.

Wojciech Sura

Samodzielna automatyzacja wdrożeń dla ASP.Net

Współczesnym standardem w zakresie wdrożenia systemu jest wykorzystanie narzędzi do CI/CD takich jak Jenkins czy Azure DevOps. I o ile tylko okoliczności na to pozwolą, z narzędzi takich zdecydowanie warto skorzystać, ponieważ skutecznie automatyzują one proces dostarczania aplikacji do miejsca, z którego będzie ona serwowana użytkownikom. W rzadkich przypadkach może się jednak zdarzyć, iż użycie tych narzędzi nie jest możliwe – warto wówczas pokusić się o samodzielną automatyzację wdrożenia: w niniejszym artykule pokażę, jak stosunkowo łatwo można to zrobić.

Wojciech Sura

Z ARCHIWUM CVE

CVE-2023-38545: Libcurl i proxy

HTTP to bezsprzecznie fundament współczesnej komunikacji w sieci. Każdego dnia niezliczone żądania przesyłane przez nasze przeglądarki umożliwiają błyskawiczne ładowanie ulubionych stron, otwierając przed nami nieograniczony dostęp do informacji. Czasami aby zapewnić sobie anonimowość, bądź dostęp do pewnych zasobów, korzystamy z serwerów pośredniczących (ang. proxy). W niniejszym artykule przyjrzymy się oraz odtworzymy błąd w bibliotece libcurl i implementacji protokołu SOCKS.

Mariusz Zaborski

PLANETA IT

Pair programming – czy to działa?

Programowanie parami (ang. pair programming) polega na tym, iż para developerów pracuje nad rozwiązaniem tego samego problemu programistycznego na jednym komputerze. Idea ta, spopularyzowana w latach 90. ubiegłego wieku, cieszy się dużą popularnością, ale jednocześnie wzbudza spore kontrowersje. Z jednej strony mamy za sobą 30 lat badań empirycznych i metaanaliz, które pokazują, iż duety programistów pracują pod każdym względem lepiej od solistów, zużywając przy tym tylko nieco więcej osobogodzin. Z drugiej strony, krytycy wskazują na problem złudzenia publikacyjnego oraz wyższy całkowity koszt produkcji. Czy więc programowanie w parach jest opłacalne dla organizacji? Niniejszy artykuł jest próbą odpowiedzi na to pytanie.

Maciej Norberciak

MEGA65 – wskrzeszenie następcy wielkiej legendy

Commodore C64, legenda 8-bitowych komputerów osobistych, nie doczekał się swojej kolejnej wersji, swoistego następcy. Nastąpił przeskok generacyjny i palmę pierwszeństwa przejęły konstrukcje 16/32-bitowe. Pomimo tego prototyp Commodore 65 był w fazie przygotowań, dopracowywano szczegóły, wydawano kolejne wersje, by tuż przed oczekiwaną premierą skasować cały projekt.

Robert Jaremczak

Idź do oryginalnego materiału