REKLAMA

Programista 2/2024 (112) – marzec/kwiecień 2024 – Jak robić dobry code review – SPIS TREŚCI

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.

BIBLIOTEKI I NARZEDZIA

std::format: nowoczesne i bezpieczne formatowanie napisów w języku C++ (>>więcej o tym artykule<<)

Czy pisząc program w języku C++/ miałeś/aś kiedyś dylemat, jakiej biblioteki użyć do formatowania tekstu? Czy spoglądałeś/aś zazdrośnie na inne języki programowania oferujące bardziej nowoczesne narzędzia służące do realizacji tego zadania? W niniejszym artykule znajdziesz opis mechanizmu std::format, który stanowi bardzo ciekawą alternatywę dla nieco przestarzałych, standardowych rozwiązań służących do formatowania tekstu w C++: biblioteki Iostreams oraz funkcji printf().

Rafał Kocisz

JĘZYKI PROGRAMOWANIA

Generyki w Go

Przez ponad 10 lat od chwili powstania język Go nie wspierał bezpośrednio paradygmatu programowania generycznego [1]. Nie powstrzymało to nikogo od pisania dobrego, produkcyjnego kodu i nie przeszkadzało w powstaniu takich użytecznych i powszechnie stosowanych narzędzi, jak (napisane w całości w Go) Docker, Kubernetes, Terraform, Vault, Consul, Podman, age czy SOPS. Generyki pojawiły się dopiero w wersji 1.18 języka i spotkały się z mieszanymi reakcjami społeczności – od „dlaczego tak późno?” do „dlaczego w ogóle?” Artykuł, skierowany do obecnych i przyszłych programistów Go, omawia, jak zrealizowano wsparcie dla generyków w tym języku, pokazując typowe przypadki użycia, problemy i pułapki, z którymi można się spotkać w codziennej praktyce developerskiej.

Maciej Norberciak

INŻYNIERIA OPROGRAMOWANIA

Jak robić dobry code review (>>więcej o tym artykule<<)

Robienie dobrych code review to umiejętność, którą warto opanować. W artykule omówimy, jakie są zalety i wady tego procesu i w jakich projektach warto go stosować. Zastanowimy się, jakie podejście warto przyjąć, robiąc review kodu, w jaki sposób najlepiej to robić, na jakich aspektach kodu możemy się skupić i wreszcie – w jakiej formie pisać komentarze z naszymi uwagami do kodu, aby służyły one dla dobra projektu, a cały ten proces był okazją do owocnej komunikacji między członkami zespołu, a nie źródłem konfliktów.

Adam Sawicki

Jak zaprojektować opartego na AI chatbota dla użytkownika, który nie wie, czego szukać?

Jak pomóc osobie, która nie wie, czego szuka? Z pomocą przychodzi sztuczna inteligencja, która pozwala „czytać między wierszami i synonimami”. Na przykładzie chatbota MindMatch, pomagającego znaleźć odpowiedniego psychoterapeutę i styl terapii, pokazujemy, jak można wykorzystać AI do chatbotów pełniących rolę wyszukiwarek dla niepewnych swoich potrzeb użytkowników.

Zofia Smoleń

TESTOWANIE I ZARZĄDZANIA JAKOŚCIĄ

Klucz do sukcesu testów funkcjonalnych, czyli o danych testowych

Mogłoby się wydawać, że przygotowanie danych do testów funkcjonalnych to banalna sprawa. Przecież jedyne, co musimy zrobić, to zasilić bazę danych odpowiednimi rekordami, prawda? W tym artykule opowiem o tym, dlaczego nie zawsze będzie to proste zadanie oraz jakie techniki pozwolą na zachowanie możliwie wysokiej spójności danych testowych.

Szymon Milewski

BEZPIECZEŃSTWO

Sztuka emulacji malware – czyli jak dogadać się z botnetem (>>więcej o tym artykule<<)

Tytuł artykułu może budzić zrozumiałe wątpliwości czytelnika. Po co emulować malware? Czy nie wystarczy, że uruchamia się on na naszych komputerach? W dodatku po co to właściwie robić? I co można w ten sposób uzyskać? W tym artykule skoncentrujemy się na odpowiedziach na te pytania, a także zarysujemy szkic systemu, który będzie w stanie automatyzować te działania w większej skali.

Jarosław Jedynak

Jak pisać bezpieczne programy?

Prawdopodobnie spotkaliście się z wyciekiem danych lub włamaniem do systemu komputerowego. Być może nie zdarzyło się to bezpośrednio w projektach, nad którymi pracujecie, ale chociażby w jednej ze znanych wam firm. Jeśli nie macie najmniejszego pojęcia o tym, w jaki sposób dochodzi do tego rodzaju wycieków, ten artykuł jest zdecydowanie dla was! Dowiecie się w nim na konkretnych przykładach, w jaki sposób pisać programy, aby nie otwierać niepotrzebnie furtek do ataku na waszą aplikację. Zacznijmy od tego, co moim zdaniem jest najważniejsze podczas pisania aplikacji, czyli…

Dawid Pilarski

Z ARCHOWUM CVE

Podniesienie uprawnień dzięki Visual Studio

W serii „Z archiwum CVE” prezentujemy ciekawe, a czasami wręcz legendarne podatności i tłumaczymy, w jaki sposób atakujący może wykorzystać niedopatrzenia i błędy w oprogramowaniu lub konfiguracji, aby osiągnąć niezamierzony przez autora stan wyjściowy programu lub całego systemu. Do tej pory królowały głównie podatności występujące w systemach z rodziny GNU/Linux oraz Unix. Często były to błędy z dość długą historią. W ostatnim numerze omówiony został przykład innego, sławnego edytora – VIM Tym razem postaram się przybliżyć czytelnikowi podatność skatalogowaną pod numerem CVE-2024-20656, która została naprawiona przez Microsoft na początku roku 2024. Umożliwia ona podniesienie uprawnień użytkownika do NT AUTHORITY\SYSTEM poprzez wykorzystanie jednej z usług pomocniczych w środowisku developerskim Microsoft Visual Studio.

foxtrot_charlie