Każdy inżynier oprogramowania zna teoretyczne podstawy testowania. O tym, że sumienne przeprowadzenie testów ma podstawowe znaczenie dla jakości gotowego produktu, nie trzeba nikogo przekonywać. A jednak wciąż zbyt często okazuje się, że zaplanowanie, napisanie i przeprowadzenie testów jednostkowych w praktyce nie jest łatwym zadaniem. Co gorsza, niewłaściwe testy psują kod, mnożą błędy i zabierają mnóstwo cennego czasu i pieniędzy. Okazuje się, że dla uzyskania maksymalnej j...
Systemy informatyczne oparte na chmurze stały się atrakcyjną alternatywą dla standardowej infrastruktury. Wymusiły jednak radykalne zmiany w praktykach tworzenia, wdrażania i utrzymywania aplikacji. Dziś uwaga profesjonalistów skupiona jest na Kubernetes, który w ciągu zaledwie kilku lat stał się faktycznym standardem wdrażania natywnej chmury. Aby tworzone aplikacje funkcjonowały wydajnie, bezawaryjnie i niezawodnie, warto wdrożyć i stosować wzorce i najlepsze praktyki. Koni...
Komputery kwantowe nie są już tylko urządzeniami teoretycznymi. Nie są też futurystycznym monstrum, obcą maszyną, która zamieni całe istniejące oprogramowanie w jakąś jego niezrozumiałą alternatywę. Komputery kwantowe (QPU) staną się raczej radykalnym rozszerzeniem możliwości współczesnej informatyki, które pozwoli nam rozwiązać problemy dotychczas nierozwiązywalne. Istnieją ważne zadania, z którymi QPU potrafią sobie świetnie poradzić, a których rozwiązanie byłoby niemożliwe...
JavaScript jest niezwykle uniwersalnym językiem programowania. Idealnie sprawdza się na przykład w projektowaniu wszelkiego rodzaju aplikacji internetowych - od działających pod przeglądarkami, przez te pisane na urządzenia mobilne, po aplikacje, które obsługują smart TV i inne inteligentne urządzenia domowe. W związku z tym wokół JavaScriptu powstał cały ekosystem narzędzi wspomagających i rozszerzających możliwości tego języka. Wystarczy wspomnieć platformę programistyczną ...
Sztuczna inteligencja i uczenie maszynowe rozwijają się z niezwykłą dynamiką i znajdują coraz więcej różnorodnych zastosowań w niemal wszystkich branżach. Ten spektakularny postęp jest silnie związany z osiągnięciami w świecie sprzętu i oprogramowania. Obecnie do uczenia maszynowego używa się wielu języków programowania, takich jak R, C, C++, Fortran i Go, jednak najpopularniejszym wyborem okazał się Python wraz z jego specjalistycznymi bibliotekami. Znajomość tych bibliotek ...
JavaScript ma długą i ciekawą historię. Obecnie to jeden z najpopularniejszych języków programowania. Jego zalety to nowoczesność, wszechstronność, elastyczność i wydajność. Jest przy tym idealny dla początkujących użytkowników: można się go łatwo nauczyć i równocześnie od razu przyzwyczaić się do stosowania dobrych praktyk i pisania czystego, ładnego kodu. Mimo to uzyskanie prawdziwej biegłości wymaga pracy i ćwiczeń. Jest to jednak wysiłek, który warto podjąć, gdyż JavaScri...
Ozobot to niewielki, ale bardzo sprytny robot, którego pokochały dzieci oraz docenili rodzice i nauczyciele informatyki. Ten edukacyjny automat, dwukrotny zdobywca polskiego tytułu Zabawki Roku oraz laureat robotycznych konkursów w USA, ma misję. Każdego chętnego, który ukończył piąty rok życia, gotów jest zabrać w podróż pełną radosnego rysowania, ciekawych problemów do rozwiązania i pracy zespołowej. Ozobot, bawiąc, uczy programowania. Dzieci bowiem komunikują się z nim za ...
Termin wirtualizacja od jakiegoś czasu jest bardzo modny. Oznacza abstrakcję zasobów obliczeniowych opartą na innych zasobach, jednak specjaliści IT słowo to kojarzą z abstrakcją sprzętu (serwerów), czyli oddzieleniem systemu operacyjnego od sprzętu, na którym jest uruchomiony. Dzięki temu na jednym fizycznym serwerze można jednocześnie uruchamiać wiele systemów operacyjnych. W takiej właśnie technologii działa rodzina produktów VMware vSphere. Tego rodzaju wirtualizacja przy...
Kubernetes jest czymś więcej niż platformą do orkiestracji kontenerów. W ciągu zaledwie kilku lat stał się najpopularniejszym i najbogatszym narzędziem do tworzenia, wdrażania i utrzymywania aplikacji w chmurze. Tak radykalna zmiana sposobu funkcjonowania systemów informatycznych wymaga przemodelowania podejścia i stylu pracy zespołów programistycznych. Jeśli jednak wypróbujesz Kubernetesa, przekonasz się, że bardzo upraszcza on tworzenie, wdrażanie i utrzymywanie systemów ro...
SolidWorks to jeden z najpopularniejszych na świecie programów do trójwymiarowego, parametrycznego projektowania CAD. Stosunkowo niewysoka cena, wygodny interfejs, duże możliwości i szereg dodatkowych narzędzi wspomagających prace inżynierskie sprawiły, że środowisko to szybko zyskało uznanie rzeszy użytkowników. Program ten można opanować we względnie krótkim czasie i bez większych problemów, lecz sama znajomość narzędzia z nikogo nie uczyniła jeszcze inżyniera. Aby projekty...
Express i Node stały się kluczowymi narzędziami do tworzenia dynamicznych, wielostronicowych i hybrydowych aplikacji internetowych. Dzięki nim można dowolnie kształtować architekturę swojej aplikacji. Projektowanie za pomocą Node jest bardzo atrakcyjnym rozwiązaniem dla programistów, którzy doceniają dostępność i elastyczność języka JavaScript. W rzeczy samej, JavaScript ewoluował z techniki prostego ozdabiania stron internetowych, aby stać się dojrzałym, wszechstronnym, pełn...
Java to nowoczesny, współbieżny, obiektowy język programowania, który zdobył uznanie tysięcy programistów na całym świecie. Ogromne możliwości, niezależność od platformy, niezawodność i bezpieczeństwo, a także łatwość tworzenia i przejrzystość kodu powodują, że Java od lat cieszy się niesłabnącą popularnością, na programistów posługujących się tym językiem zaś czekają setki atrakcyjnych ofert pracy. Java znajduje zastosowanie w najróżniejszych dziedzinach i branżach, co spraw...
Serwery Windows królują w przestrzeni centrów danych. Nawet po przeniesieniu zasobów do chmury Azure dane są nadal zarządzane przez Windows Server: właśnie ten system operacyjny stanowi podstawę platformy Azure! Windows Server 2019 może obsłużyć nawet najpoważniejsze zadania w środowisku chmury. Microsoft konsekwentnie zmniejsza rozmiar platformy obliczeniowej w serwerach i tworzy nowe sposoby komunikacji z nimi. Także technologia kontenerów bardzo się rozwinęła: Server 2019 ...
W niezwykle dynamicznie rozwijającej się branży IT sukces projektu zapewnić mogą jedynie jego wysoka jakość i niskie koszty realizacji oraz odpowiednio krótki czas dostarczenia go klientowi. Coraz trudniej to osiągnąć w tradycyjny sposób, dlatego firmy zmuszone są stosować nowoczesne modele współpracy i metodyki zarządzania. Aby zapewnić konkurencyjność swoich usług, muszą zlecać wykonanie zadań pracownikom i zespołom znajdującym się w innej lokalizacji, innym kraju, a nierza...
C++ to bez wątpienia jeden z najpopularniejszych i najpotężniejszych języków programowania. Znajduje zastosowanie w tworzeniu systemów operacyjnych, sterowników przemysłowych, bibliotek, gier komputerowych, najrozmaitszych aplikacji desktopowych, programów bazodanowych i oprogramowania serwerowego - słowem, wszędzie tam, gdzie liczy się wydajność i niskie zużycie zasobów. Co więcej, napisane w nim programy są przenośne, dzięki czemu można je kompilować pod różne platformy spr...
Platforma Amazon Web Services jest uważana za największą i najdojrzalszą chmurę obliczeniową. Oferuje ponad setkę gotowych usług, praktycznie niewyczerpywalne zasoby mocy obliczeniowej, nieograniczone bezpieczne magazynowanie oraz pierwszorzędne możliwości automatyzacji. Jest przy tym nieustannie unowocześniana i udostępnia coraz to nowsze możliwości. Pozwala na tworzenie i utrzymanie aplikacji w elastyczny i niezawodny sposób. Dla wielu organizacji decyzja o migracji infrast...
Mimo że w 2018 roku Kubernetes zyskał reputację standardowego narzędzia do zarządzania kontenerami, wciąż należy traktować tę technologię jako znajdującą się w dość wczesnej fazie rozwoju. Możliwości tej platformy z czasem rosną i stają się coraz ciekawsze. Standardowym działaniem jest uruchamianie klastrów w Kubernetesie, jednak o wiele bardziej interesujące wydaje się samodzielne rozszerzanie tej platformy o własne kontrolery i rozbudowa API Kubernetesa w celu dostosowania ...
Kubernetes jest platformą do orkiestracji kontenerów. Projekt ten należy dziś do najpopularniejszych i najbogatszych narzędzi w swojej klasie, stanowi także podstawę dla wielu innych platform, znanych jako systemy typu PaaS. Dzięki nim Kubernetes zyskał możliwość tworzenia aplikacji, jednak tego rodzaju narzędzia wymagają od programistów i architektów zastosowania odpowiednich wzorców projektowych. Opisują one schematy rozwiązywania problemów na różnych poziomach dokładności,...
Język Go, zwany także golangiem, został opracowany w firmie Google i zaprezentowany światu w 2009 roku. Zaprojektowano go pod kątem wydajności przetwarzania sieciowego i wieloprocesorowego. Autorzy chcieli, aby łączył łatwość pisania aplikacji z wydajnością języków kompilowanych. Podobnie jak JavaScript czy Python, Go jest językiem, który można szybko zrozumieć, a dzięki temu bezzwłocznie zacząć tworzyć funkcjonalny kod. Niemniej, aby zyskać uznanie potencjalnego pracodawcy i...
Spójrzmy prawdzie w oczy: większość ludzi nie lubi matematyki. Co dziwne, nie jest ona również ulubioną dziedziną wiedzy wielu osób zawodowo parających się informatyką. Niejedną z nich w prawdziwy popłoch wpędza konieczność posłużenia się choćby najbardziej niewinnie wyglądającą funkcją matematyczną, nie wspominając o przeprowadzeniu bardziej skomplikowanych obliczeń statystycznych, wykreśleniu przebiegu funkcji czy implementowaniu działań na macierzach.Niepotrzebnie, bo mate...
Mimo upływu lat Java wciąż pozostaje jednym z najważniejszych języków programowania, konsekwentnie wybieranym przez profesjonalnych deweloperów. Jest równocześnie nowoczesna i dojrzała. Twórcy Javy od początku jej istnienia stawiali na elastyczność i stale dostosowywali ten język do zmieniających się warunków pracy programistów. Od pierwszego wydania Java zapewnia narzędzia do programowania rozwiązań internetowych, jest więc naturalnym wyborem programistów tworzących aplikacj...
Wzorce projektowe są bardzo przydatnym narzędziem w przyborniku programisty. Pozwalają na szybkie opracowanie złożonych zagadnień, ale można je również potraktować jako wstęp do ciekawego i inspirującego dochodzenia, jak rozwiązać konkretny problem na wiele różnych sposobów, na różnych poziomach zaawansowania technicznego i z zastosowaniem różnego rodzaju kompromisów. Takie próby jednak często prowadzą do nadinżynierii lub powstawania zbyt skomplikowanych struktur i mechanizm...
PHP to interpretowany skryptowy język programowania zaprojektowany do generowania stron internetowych i budowania aplikacji webowych w czasie rzeczywistym; obecnie wykorzystywany przez niemal 80 procent stron działających w sieci. Jego zalety zostały docenione przez takie firmy jak Google, Facebook, Yahoo! czy Wikipedia, a więc przez prawdziwe giganty internetu, z których usług korzystają codziennie miliony użytkowników. O popularności PHP świadczy również liczba interesujący...
JavaScript jest dziś jednym z ulubionych języków programowania projektantów profesjonalnych aplikacji internetowych. Deweloperzy mogą korzystać z kilku znakomitych technologii do tworzenia front-endu i back-endu aplikacji. Największy potencjał mają Node.js, MongoDB, Backbone.js, Parse.com, Heroku i MS Azure. Są wciąż unowocześniane, a każda kolejna wersja dostarcza innowacyjnych rozwiązań. Mimo to wyszukiwanie informacji potrzebnych programiście w danej chwili bywa problemem:...