Refaktoryzacja ma na celu ulepszanie istniejącego kodu. Poprawia jego strukturę, czytelność i wydajność. Prowadzona poprawnie, cechuje się zdyscyplinowaniem metody, systematycznością i konsekwencją w działaniu, a także ciągłym minimalizowaniem ryzyka wprowadzenia błędów. Niemniej refaktoryzacja jest ryzykowna. Polega na wprowadzaniu zmian do działającego kodu, co może doprowadzić do powstania trudno wykrywalnych błędów. Ryzyko wzrasta, jeśli refaktoryzacja jest ...
Scala jest językiem programowania ogólnego przeznaczenia, który łączy cechy języków funkcyjnych i obiektowych. Jego twórcy postawili sobie za cel skalowalność napisanych w nim aplikacji - stąd wzięła się nazwa Scala. Scala jest oparta na wirtualnej maszynie Javy, umożliwia programowanie funkcyjne i oferuje bogaty wybór typów. Dzięki tym cechom można tworzyć kod mniej podatny na występowanie błędów w trakcie działania programu. ...
Zostań profesjonalnym producentem gier komputerowych_x005F_x000D_ _x005F_x000D_ _x005F_x000D_ Poznaj fazy tworzenia gry komputerowej_x005F_x000D_ Dowiedz się, kto jest kim w procesie produkcji_x005F_x000D_ Naucz się przygotowywać odpowiednią dokumentację_x005F_x000D_ _x005F_x000D_ _x005F_x000D_ Tworzenie gier komputerowych, podobnie jak produkcja każdego innego rodzaju oprogramowania, to złożony, wieloetapowy proces wymagający zaangażowania szeregu różnych specjalis...
Od struktur sterujących po obiekty Java jest rozbudowanym, elastycznym i wszechstronnym, a przy tym dojrzałym językiem programowania. Pozwala na tworzenie kodu dla prawie wszystkich rodzajów komputerów, również tych sterujących pracą najbardziej wyspecjalizowanych urządzeń. Można go używać do pisania dużych systemów, małych programów, aplikacji mobilnych i aplikacji WWW. Jest znakomitym wyborem dla osób, które postanowiły zwią...
Język JavaScript, początkowo wykorzystywany tylko do sterowania pracą przeglądarek internetowych, dzięki współpracy z Node.js znacząco rozszerzył swoje możliwości. To środowisko uruchomieniowe zbudowano na bazie silnika V8. Udostępnia biblioteki obsługujące procesy wejścia-wyjścia wraz z komunikacją sieciową. Umożliwia posługiwanie się JavaScriptem poza przeglądarką internetową. W ten sposób uruchamia się skrypty powłoki, zarządza usługami backendowymi i wykonuj...
Programowanie systemowe zwykle nie interesuje twórców aplikacji. Niemniej warunkiem jej poprawnego działania jest właśnie kod systemowy. Programowanie systemowe zapewnia między innymi działanie systemu operacyjnego, sterowników, systemu plików, kodeków, a także zarządzanie pamięcią czy obsługę sieci. Jako że dotyczy wykorzystania zasobów, każdy szczegół, każdy bajt pamięci operacyjnej i każdy cykl procesora ma znaczenie. Rust -...
Jeśli sądzisz, że elektronika to dziedzina nieprzyjazna i wyjątkowo trudna do zrozumienia - jesteś w błędzie! Pokonaj uprzedzenia i spróbuj zapoznać się z nią w praktyczny sposób, łącząc różne elementy, tworząc własne płytki i własnoręcznie je programując. Prędko się przekonasz, że trudno o bardziej interesujące i wciągające hobby. Pasja ta ma zresztą praktyczne odniesienie do rzeczywistości - za pomocą stosunkowo niedrogich elementów i narzędzi mo...
Uczenie maszynowe jest wyjątkowo fascynującą dziedziną inżynierii. Coraz częściej spotykamy się z praktycznym wykorzystaniem tego rodzaju innowacyjnych technologii. Samouczące algorytmy maszynowe pozwalają na uzyskiwanie wiedzy z ogromnych ilości danych. Dla osoby planującej rozwój kariery osiągnięcie biegłości w rozwiązywaniu problemów uczenia maszynowego jest nadzwyczaj atrakcyjną ścieżką. Użycie do tego celu Pythona pozwala dodatkowo skorzystać z bardzo przys...
Opanuj sieci - w praktyce!_x005F_x000D_ _x005F_x000D_ _x005F_x000D_ Poznaj tajniki połączeń sieciowych_x005F_x000D_ Skonfiguruj sieć lokalną i dostęp do Internetu_x005F_x000D_ Zaimplementuj VoIP oraz zastosuj technologię VPN_x005F_x000D_ Kontroluj i monitoruj dom za pośrednictwem sieci_x005F_x000D_ _x005F_x000D_ _x005F_x000D_ Fale radiowe, światłowody, kable - sieci oplatają świat. Dziś komputer bez połączenia z Internetem stanowi właściwie tylko kosztowny kawałek elektro...
Dobry webdeveloper to wszechstronny webdeveloper. Nie może poprzestawać na znajomości jednego języka i umiejętności korzystania z jednej, konkretnej technologii. Co więcej, rozpowszechnianie się jednostronicowych aplikacji internetowych (ang. Single Page Application, SPA) zaciera wyraźną do niedawna różnicę między pracą programisty back-endu a obowiązkami programisty front-endu. Programiści back-endu muszą dziś poznawać narzędzia do niedawna uznawane za typowe w przybo...
Gwałtowny rozwój i upowszechnienie technologii sieciowych sprawiły, że dziś praktycznie każdy codziennie korzysta z sieci, i to nie tylko za pomocą komputera czy telefonu. Do internetu można podłączyć również lodówki, kamery monitoringu, pralki czy telewizory. Urządzenia w sieci komputerowej komunikują się ze sobą według ustalonych protokołów, które, choć publicznie eksponowane, nie są przez użytkowników rozpoznane tak dobrze jak komp...
Podstawy Swifta, Xcode i Cocoa Język Swift poznaliśmy w 2014 roku. Został on opracowany przez Apple specjalnie dla platormy iOS z uwzględnieniem takich założeń, jak przejrzystość, bezpieczeństwo, prostota, łatwość stosowania, zorientowanie obiektowe. Kod w tym języku sam zarządza pamięcią i zapewnia ścisłą kontrolę typów. Swift od początku wzbudził ogromne zainteresowanie programistów, którzy prędko docenili jego zalety. Dziś jest uważany za łatwe do opa...
Adobe Lightroom, ukochane narzędzie pracy fotografów, ma wielki potencjał i daje ogromne możliwości. Niekiedy jednak ich bogactwo sprawia, że trudno ruszyć z miejsca. Potrzebne w danej chwili funkcje są... no właśnie, nie wiadomo gdzie. Czas upływa, efektów brak, a przeszukiwanie kolejnych menu i podmenu wywołuje jedynie frustrację i zniechęcenie. Brzmi znajomo? Jeśli tak, to masz w ręku właściwą książkę - drugie, uzupełnione wydanie praktycznego poradnika dla ...
GIMP 2.10 - zaproszenie do graficznej zabawy! Program graficzny GIMP od lat uważany jest za doskonałe narzędzie do obróbki zdjęć. Co więcej, jest to program darmowy. Jeśli nie chcesz płacić grubej forsy za Adobe Photoshopa, a zależy Ci na cyfrowym retuszu Twoich fotografii i tworzeniu własnych grafik rastrowych, nie znajdziesz nic lepszego. Wersja 2.10 zaspokoi wszystkie Twoje wymagania i pozwoli Ci osiągnąć efekty, o jakich nawet nie śniłeś. Wystarczy tylko opanować ...
W skrócie uczenie maszynowe polega na wyodrębnianiu informacji z surowych danych i budowie modelu, który służy do przetwarzania kolejnych surowych danych. Technologia ta od kilku lat intensywnie się rozwija, a w miarę wzrostu jej możliwości rosną również zainteresowanie i oczekiwania architektów i użytkowników. Niektórzy widzą w głębokim uczeniu poważne zagrożenie, jednak obietnice, jakie daje ten rodzaj sztucznej inteligencji, są fas...
C# jest jednym z lepiej dopracowanych języków programowania. Cechują go dojrzałość, prostota, nowoczesność i bezpieczeństwo. Został od podstaw zaprojektowany jako obiektowy. Stanowi integralną część platformy Microsoft .NET Framework. Jest ulubionym narzędziem profesjonalnych programistów, którym zależy na pisaniu kodu bezpiecznego, przejrzystego, wydajnego i prostego w konserwacji. W wersji 7.0 tego języka pojawiły się nowe usprawnienia, dzięki któ...
W świecie programistów aplikacji panuje kult wydajności: najważniejsze są szybkość i efektywność działania kodu. Dostrajanie elementów dużych aplikacji staje się wirtuozerią: wymaga eliminowania wąskich gardeł, optymalizacji kodu, pilnowania każdego bitu pamięci. Niewielkie braki w rozwiązaniach w przypadku rozbudowanych systemów przeradzają się w wielkie problemy. Dla programisty oznacza to, że jeśli chce pracować na prawdziwie profesjonalnym poziomie, m...
Poznaj nowoczesną metodykę wytwarzania oprogramowania w C# Jak stosować w praktyce zasady zwinnego wytwarzania oprogramowania? W jaki sposób wykorzystywać w projekcie diagramy UML? Jak korzystać z wzorców projektowych? W związku ze stale rosnącymi oczekiwaniami użytkowników oprogramowania produkcja systemów informatycznych wymaga dziś korzystania z usystematyzowanych metod zarządzania. Projekt informatyczny, przy którym nie używa się ...
Kali Linux jest dystrybucją BackTrack systemu Linux służącą do zaawansowanego badania zabezpieczeń systemów teleinformatycznych, również poprzez testy penetracyjne. Naturalnie, praca pentestera wiąże się również z przeprowadzaniem rozpoznania, skanowaniem w poszukiwaniu słabych stron zabezpieczeń, wykorzystywaniem exploitów, omijaniem zabezpieczeń i późniejszą eksploracją skompromitowanych systemów. W ten sposób diagnozuje się ...
Dobry programista powinien tworzyć udane aplikacje, pisać poprawny kod i znać kilka uznanych języków programowania. Jeśli spełnia te kryteria, na pewno zdobędzie pracę marzeń. Przynajmniej tak sądzi wiele osób, które postanowiły rozpocząć karierę w tym zawodzie. Prawda jest jednak taka, że udana kariera musi zostać przemyślana i zaplanowana, a poza wiedzą techniczną koniecznie trzeba rozwijać w sobie tak zwane kompetencje miękkie. W ten sposób możn...
Informatyczna rewolucja dosięgła również systemy bazodanowe. Przez długi czas administrator bazy danych interesował się głównie wewnętrznymi mechanizmami bazy, optymalizacją zapytań czy analizą podsystemów składowania danych. Z kolei oprogramowaniem stron, infrastrukturą czy usługami sieciowymi zajmowali się zupełnie inni ludzie, pracujący w odmienny sposób. Nowe technologie wymuszają jednak zmianę sposobu pracy i myślenia. Trzeba położyć nacisk na...
C# to nowoczesny język programowania, który został od podstaw zaprojektowany jako obiektowy. Ta dojrzała technologia jest często wybierana przez twórców oprogramowania, również tego służącego do pokonywania zabezpieczeń systemów. Dzięki temu, że platforma .NET jest oprogramowaniem open source, w C# można pisać kod, który bez problemu będzie działał w każdym systemie operacyjnym. Co prawda język ten jest prosty i łatwy do nauczenia się...
Twórz doskonałe GUI z wykorzystaniem JavaFX! Przykłady zgodne z Java 10! Naucz się wykorzystywać w praktyce platformę JavaFX Dowiedz się, jak osiągać konkretne efekty Poznaj rozwiązania najczęstszych problemów JavaFX to platforma umożliwiająca proste tworzenie atrakcyjnych interfejsów użytkownika dla aplikacji budowanych w języku Java. Wsparcie wzorca projektowego MVC, obsługa XML-a oraz formatowanie kontrolek za pomocą arkuszy stylów CSS -...
Debugging Teams. Przez współpracę do lepszej produktywności Programiści i inżynierowie oprogramowania spędzają mnóstwo czasu na zgłębianiu tajników algorytmów, kodu czy technik budowy aplikacji. Bardzo mało uwagi poświęcają jednak takim zagadnieniom, jak komunikacja, skuteczna praca w zespole czy prowadzenie wspólnych projektów. Tymczasem programowanie jest jednym z zadań, które realizuje się w grupie. Oznacza to, że spos&oacu...