Inne - Programowanie
Nauka algorytmów. Poradnik pisania lepszego kodu
George Heineman
Doskonałe opanowanie dowolnego języka programowania nie wystarczy do tego, aby stać się świetnym programistą czy deweloperem. Konieczne jest również zdobycie praktycznej wiedzy dotyczącej algorytmów. Oznacza to, że aby pisać lepszy kod, podczas rozwiązywania rzeczywistych problemów trzeba umieć korzystać z algorytmów, włączając w to ich budowanie, modyfikację i implementację. Niezależnie od tego, jaką dziedziną informatyki się zajmujesz, biegłość w posługiwaniu się algorytmami w wymierny sposób ułatwi Ci pracę i poprawi jej rezultaty. Ta książka jest przystępnym wprowadzeniem do wiedzy o algorytmach wraz z przykładami implementacji napisanymi w Pythonie. Oprócz praktycznego omówienia algorytmów znalazło się tu wyjaśnienie takich pojęć jak klasy złożoności czy analiza asymptotyczna. Dokładnie omówiono także najważniejsze algorytmy, w tym różne sposoby haszowania, sortowania czy przeszukiwania. Tam, gdzie to niezbędne, wprowadzono struktury danych języka Python. Z poradnika programiści i testerzy dowiedzą się, w jaki sposób wykorzystywać algorytmy do pomysłowego rozwiązywania problemów obliczeniowych. Zrozumienie treści ułatwiają ciekawe materiały wizualne i ćwiczenia utrwalające, które pozwolą na przetestowanie zdobytej wiedzy w praktyce. W książce między innymi: podstawowe algorytmy wykorzystywane w inżynierii oprogramowania standardowe strategie wydajnego rozwiązywania problemów ocena złożoności czasowej kodu z wykorzystaniem notacji dużego O praktyczne stosowanie algorytmów z wykorzystaniem bibliotek i struktury danych Pythona główne zasady działania ważnych algorytmów
Nauka programowania dla początkujących: podejście graficzne
Diana Domańska, Krzysztof Gdawiec
„Niniejsza książka jest łagodnym wprowadzeniem w świat programowania. Okazuje się, że nie musimy być geniuszami komputerowymi, aby nauczyć się programować. Większość ludzi ma ograniczone pojęcie o budowie i działaniu samochodu czy motocykla, ale nie powstrzymuje ich to przed tym, aby zasiąść za kółkiem i jechać. Nie musimy znać od podstaw budowy i zasad działania komputerów, aby móc ich używać. Podobnie jest z programowaniem. W dzisiejszych czasach mamy do dyspozycji wiele różnych języków programowania. Naukę możemy zacząć od każdego z nich, ale w przypadku jednych języków będzie to proces prostszy, a w przypadku innych – trudniejszy. Jak mówi chińskie przysłowie: „Jeden obraz wart więcej niż tysiąc słów” – dlatego do nauki programowania wykorzystamy język, który nastawiony jest na tworzenie obrazów. Tym językiem jest Processing. Jest on dialektem języka Java, najpopularniejszego języka programowania (październik 2016) według rankingu TIOBE1. Został zaprojektowany z myślą o artystach, dzięki czemu jest bardzo prosty do nauki. Najlepszym sposobem nauki programowania jest pisanie, pisanie i jeszcze raz pisanie programów. Samo przeczytanie książki nie sprawi, drogi Czytelniku, że posiądziesz umiejętność programowania. Dlatego w trakcie lektury powinieneś przepisywać przykładowe programy, modyfikować je oraz używać ich jako zachęty do pisania własnych programów. Jeśli postąpisz według tych rad, to po przeczytaniu tej książki z pewnością będziesz wiedzieć wiele o procesie programowania. Co prawda po ukończeniu lektury nie będziesz guru programowania, ale nauczysz się podstaw programowania komputerów i posiądziesz wiedzę, która umożliwi Ci pójście różnymi ścieżkami. Może nawet w przyszłości zostaniesz zawodowym programistą, czego Ci życzymy. Książka została przewidziana dla osób, które nigdy wcześniej nie miały styczności z programowaniem. Z tego powodu wiele pojęć jest omawianych w bardzo szczegółowy sposób. Osobom, które już mają doświadczenie w programowaniu, może się to wydać nudne, ale i dla nich znajdzie się coś w tej książce: będą miały okazję zaznajomić się z podstawami języka Processing. Od Czytelnika nie wymagamy znajomości żadnych zaawansowanych narzędzi. Jedynymi wymaganiami są znajomość elementów szkolnej matematyki i chęć nauczenia się programowania. Pomimo że nauka programowania w książce odbywa się w języku Processing, to nabyta wiedza pozwoli na łatwe przejście do nauki programowania w innych językach, takich jak C, C++, C# czy Java”. (– ze Wstępu)
Nauka programowania opartego na testach. Jak pisać przejrzysty kod w kilku językach programowania
Saleem Siddiqui
Od oprogramowania wymaga się solidności i poprawności, a równocześnie oczekuje wydajnego działania i skalowalności. Jako programista odpowiadasz za zapewnienie aplikacjom tych właśnie cech. Niezależnie od tego, jakiego języka programowania używasz, praca zgodnie z paradygmatem TDD umożliwi Ci otrzymanie testowalnego kodu o wysokiej jakości. Choć te korzyści przeważają nad niedogodnościami podejścia TDD, wielu programistów narzeka na czasochłonność, pracochłonność i sprawiającą problemy implementację programowania opartego na testach. To przewodnik dla programistów, którzy chcą stosować podejście TDD w swojej codziennej praktyce. Pokazuje, jak korzystać z programowania sterowanego testami podczas pracy w trzech różnych językach: Go, JavaScripcie i Pythonie. Dzięki tej książce zrozumiesz, w jaki sposób zastosować klasyczny paradygmat "dziel i zwyciężaj" do budowania testów jednostkowych i w efekcie radzić sobie nawet z bardzo rozbudowaną architekturą oprogramowania. Liczne przykłady o stopniowo rosnącym poziomie zaawansowania pozwolą Ci płynnie nabierać wprawy i pewności w tworzeniu testów jednostkowych, a także ich używaniu. Szybko się przekonasz, że wprowadzenie TDD do codziennej praktyki kodowania jest bardzo opłacalną decyzją: kod będzie czysty, zrozumiały, elegancki i prosty w utrzymaniu! W książce między innymi: działanie TDD w różnych językach, frameworkach testowych i koncepcjach domenowych TDD a ciągła integracja konfiguracja środowiska ciągłej integracji refaktoryzacja i przeprojektowywanie przy użyciu TDD testy jednostkowe w JavaScripcie jak TDD ułatwia pisanie czystego kodu w Go, JavaScripcie i Pythonie TDD: napisz kod, któremu można zaufać!
Nauka programowania. Rusz głową!
Eric Freeman
Przewodnik po kodowaniu i myśleniu komputacyjnym Programista to bardzo szczególny typ specjalisty. Jeśli uważasz, że myśli w inny sposób niż tak zwani normalni ludzie, to masz rację. Dobra wiadomość jest taka, że i Ty możesz się nauczyć myślenia komputacyjnego - umiejętności, która się przydaje niezależnie od charakteru rozwiązywanego problemu, środowiska czy języka programowania. Tylko w ten sposób można od początku nauki programowania pisać przejrzysty, uporządkowany, znakomity kod, zgodny z najlepszymi praktykami wypracowanymi przez mistrzów. Innymi słowy: pracować jak profesjonalny programista. Ta książka jest niezwykłym podręcznikiem programowania. Być może wygląda nieco dziwacznie, ale prędko się przekonasz, że to podręcznik jest wyjątkowo skuteczny: w końcu jego formuła została opracowana na podstawie najlepszych osiągnięć neurologii i kognitywistyki. W ten sposób Twój mózg się zaangażuje i błyskawicznie przyswoi sobie zasady programowania w Pythonie. Autor wykorzystał oczywistą prawdę, że najszybciej uczymy się wtedy, gdy uwzględnimy specyfikę działania własnego mózgu! Najpierw więc się zainteresujesz, potem zaangażujesz, wreszcie przygotujesz sobie warsztat pracy, czyli zainstalujesz Pythona. Później zaczniesz ćwiczyć myślenie komputacyjne i oczywiście napiszesz swój pierwszy program. A dalej będzie coraz ciekawiej... W tej książce między innymi: Istotne koncepcje programistyczne Zasady programowania w Pythonie Funkcje i rekurencja Programowanie obiektowe Tworzenie API dla aplikacji internetowych Widgety i zdarzenia Neurony płoną. Emocje szaleją. Tak napiszesz kod godny mistrza!
Fiqri Ismail
The .NET Standard is a standard that represents a set of APIs that all .NET platforms have to implement, making it easy for developers to access and use one common library for their development needs. This book begins with a quick refresher, helping you understand the mechanics of the new standard and offering insight into how it works. You’ll explore the core library concepts, such as working with collections, configurations, I/O, security, and multithreading. You’ll explore the iOS and Android libraries of Xamarin and we’ll guide you through creating a .NET Standard 2.0 library, which you’ll use with both Android and iOS applications. In the final chapters, you’ll learn the various debugging and diagnostics tools to deliver quality libraries and create a NuGet package of the .NET Standard 2.0 library. By the end of this book, you’ll be able to expand your current workflow to various .NET flavors and have the essential skills to create a .NET Standard 2.0 library from scratch to package and deliver it to the world.
Peter Ries
NetSuite consultants face increasingly complex challenges in multi-currency configurations, financial automation, and third-party integrations that become maintenance nightmares. Add evolving client expectations and rapidly advancing platform capabilities, and many consultants find themselves struggling to deliver the transformative results their clients demand.This comprehensive guide provides the up-to-date roadmap you need to master NetSuite implementation and customization, turning these persistent challenges into competitive advantages.In this updated edition, author Peter Ries, an Oracle NetSuite Consulting Technical Director, expands on the latest advancements, including AI-enabled features, SuiteAnalytics, mobile apps, and new integration options. You'll gain access to proven consulting strategies, ERP optimization best practices, and practical guidance for configuring NetSuite to meet complex business requirements. Through real-world scenarios and actionable case studies, you’ll learn how to navigate common pitfalls and implement scalable solutions that drive long-term success.By the end of this book, you’ll be fully prepared to streamline NetSuite implementations and deliver high-impact consulting services confidently. It’s designed to maximize your career potential, no matter your level of experience.
Next.js Quick Start Guide. Server-side rendering done right
Kirill Konshin
Next.js is a powerful addition to the ever-growing and dynamic JavaScript world. Built on top of React, Webpack, and Babel, it is a minimalistic framework for server-rendered universal JavaScript applications. This book will show you the best practices for building sites using Next. js, enabling you to build SEO-friendly and superfast websites.This book will guide you from building a simple single page app to a scalable and reliable client-server infrastructure. You will explore code sharing between client and server, universal modules, and server-side rendering.The book will take you through the core Next.js concepts that everyone is talking about – hot reloading, code splitting, routing, server rendering, transpilation, CSS isolation, and more. You will learn ways of implementing them in order to create your own universal JavaScript application. You will walk through the building and deployment stages of your applications with the JSON API,customizing the confguration, error handling,data fetching, deploying to production, and authentication.
Martin Bjerretoft Fjordvald, Clement Nedelcu
Nginx is a lightweight HTTP server designed for high-traffic websites, with network scalability as the primary objective. With the advent of high-speed internet access, short loading times and fast transfer rates have become a necessity.This book is a detailed guide to setting up Nginx in ways that correspond to actual production situations: as a standalone server, as a reverse proxy, interacting with applications via FastCGI, and more. In addition, this complete direct reference will be indispensable at all stages of the configuration and maintenance processes. This book mainly targets the most recent version of Nginx (1.13.2) and focuses on all the new additions and improvements, such as support for HTTP/2, improved dynamic modules, security enhancements, and support for multiple SSL certificates. This book is the perfect companion for both Nginx beginners and experienced administrators. For beginners, it will take you through the complete process of setting up this lightweight HTTP server on your system and configuring its various modules so that it does exactly what you need quickly and securely. For more experienced administrators, this book provides different approaches that can help you make the most of your current infrastructure. Nginx can be employed in many situations, whether you are looking to construct an entirely new web-serving architecture or simply want to integrate an efficient tool to optimize your site loading speeds.
NHibernate 4.x Cookbook. Click here to enter text. - Second Edition
Gunnar Liljas, Alexander Zaytsev, Jason Dentler
NHibernate is a mature, flexible, scalable, and feature-complete open source project for data access. Although it sounds like an easy task to build and maintain database applications, it can be challenging to get beyond the basics and develop applications that meet your needs perfectly. NHibernate allows you to use plain SQL and stored procedures less and keep focus on your application logic instead. Learning the best practices for a NHibernate-based application will help you avoid problems and ensure that your project is a success. The book will take you from the absolute basics of NHibernate through to its most advanced features, showing you how to take full advantage of each concept to quickly create amazing database applications. You will learn several techniques for each of the four core NHibernate tasks—configuration, mapping, session and transaction management, and querying—and which techniques fit best with various types of applications. In short, you will be able to build an application using NHibernate by the end of the book. You will also learn how to best implement enterprise application architecture patterns using NHibernate, leading to clean, easy-to-understand code and increased productivity. In addition to new features, you will learn creative ways to extend the NHibernate core, as well as gaining techniques to work with the NHibernate search, shards, spatial, envers, and validation projects.
Tom Hombergs
Wyobraź sobie sytuację: chcesz napisać oprogramowanie, które nie tylko spełni oczekiwania klienta, ale również będzie przykładem eleganckiej i czystej architektury. Na drodze do tego celu z pewnością napotkasz przeszkody, takie jak nierealny termin czy niedziałające API zewnętrznego dostawcy. Nie będzie wyjścia, czas zmusi Cię do pójścia na skróty i Twoja architektura wkrótce straci swoją elegancką strukturę. Aby tego uniknąć, musisz przejąć kontrolę nad architekturą. Dzięki tej książce zorientujesz się, że utrzymanie kontroli nad architekturą w dużej mierze zależy od zastosowanego stylu architektonicznego. Zrozumiesz też wady konwencjonalnej architektury warstwowej i zapoznasz się z zaletami stylów koncentrujących się na dziedzinie, takich jak architektura heksagonalna. Dowiesz się także, jak można ją wyrazić w kodzie źródłowym. Poznasz szczegóły różnych strategii mapowania między warstwami architektury heksagonalnej, a ponadto prześledzisz, jak różne elementy architekturalne łączą się w jedną aplikację. Bazując na stylu architektury heksagonalnej, nauczysz się tworzyć intuicyjne w późniejszej obsłudze technicznej aplikacje internetowe. Szybko się przekonasz, że wiedza zdobyta w trakcie lektury pozwoli Ci na tworzenie wysokojakościowych aplikacji, które przetrwają próbę czasu. Najciekawsze zagadnienia: niedoskonałości związane z architekturą warstwową egzekwowanie granic architektury wpływ stosowania skrótów na debet techniczny korzystanie z poszczególnych stylów architekturalnych struktura kodu a architektura testy sprawdzające wszystkie elementy architektury Jeśli chcesz mieć łatwe życie, nie zostawaj architektem. Zaha Hadid, architektka
Niebieski lis. Polecenia procesorów Arm i inżynieria wsteczna
Maria Markstedter
Procesory ARM są coraz popularniejsze w urządzeniach mobilnych, laptopach i serwerach. Rosnąca popularność czyni je interesującymi dla badaczy bezpieczeństwa. Specjaliści z tej branży często używają technik inżynierii wstecznej podczas badania plików binarnych. W tym celu konieczne jest zapoznanie się z poleceniami asemblera ARM. Książkę szczególnie docenią analitycy bezpieczeństwa, którzy chcą się zapoznać z zestawem poleceń ARM i zdobyć wiedzę umożliwiającą im efektywne korzystanie z technik inżynierii wstecznej. Poza zestawem potrzebnych poleceń znalazło się w niej mnóstwo przydatnych informacji. Znajdziesz tu przegląd podstawowych zagadnień związanych z systemem operacyjnym, wyjaśnienie, czym są polecenia asemblera i na czym polega proces kompilacji pliku, a także opis mechanizmów działania poleceń służących do przetwarzania danych, dostępu do pamięci i kontroli przepływu sterowania. W kolejnych rozdziałach zapoznasz się z przeglądem technik inżynierii wstecznej, takich jak analiza statyczna i dynamiczna, jak również z kompleksowym omówieniem złośliwego oprogramowania, które może ją utrudniać. W książce: wprowadzenie do architektury ARM zestawy poleceń: A64, A32 i T32, a także format plików ELF przegląd wzorców przepływu sterowania w procesorach ARM narzędzia inżynierii wstecznej proces dezasemblowania i debugowania plików binarnych ARM w systemie Linux typowe narzędzia do dezasemblowania i debugowania plików binarnych ARM Poznaj moc inżynierii wstecznej!
David Farley
Inżynieria oprogramowania polega na stosowaniu empirycznego podejścia do szukania wydajnych i ekonomicznie uzasadnionych rozwiązań podczas tworzenia oprogramowania. Dziedzina ta ma na celu organizowanie optymalnego procesu tworzenia aplikacji ? od koncepcji, poprzez kodowanie, wdrażanie, utrzymywanie, po wycofywanie. Uzyskanie biegłości w tym obszarze nie jest łatwe: rozwój oprogramowania wymaga zrozumienia filozofii inżynierii i stosowania określonych zasad. Tę książkę docenią programiści, menedżerowie, inżynierowie i liderzy techniczni. Znajdziesz w niej cenne informacje o filozofii inżynierii oprogramowania, jak również o postępach w sposobie myślenia na jej temat. Na tej bazie oparto zestaw zasad ułatwiających skuteczne radzenie sobie z dwoma podstawowymi procesami inżynierii oprogramowania: uczenia się i eksploracji oraz radzenia sobie ze złożonością. W ten sposób dowiesz się, jak usprawnić wszystkie aspekty swojej pracy, a także jak stosować sprawdzone podejścia prowadzące do sukcesu z uwzględnieniem uwarunkowań ekonomicznych. Dzięki tej przełomowej publikacji nauczysz się technik rozwiązywania problemów z wykorzystaniem zarówno obecnych, jak i przyszłych technologii. W efekcie będziesz szybciej tworzyć lepsze oprogramowanie, i to w bardziej przyjemny i satysfakcjonujący sposób. Poznaj i stosuj zasady nowoczesnej inżynierii oprogramowania: określaj jasne cele i sensownie wybieraj narzędzia organizuj pracę i systemy tak, aby móc oceniać ciągłe postępy zachowuj kontrolę nawet po zwiększeniu złożoności systemu utrzymuj dyscyplinę z zachowaniem właściwej elastyczności ucz się z historii i doświadczenia naucz się oceniać nowe idee rozwoju oprogramowania Przekonaj się, jak dzisiaj najlepsi praktycy projektują oprogramowanie!
OAuth 2.0 Cookbook. Protect your web applications using Spring Security
Adolfo Eloy Nascimento
OAuth 2.0 is a standard protocol for authorization and focuses on client development simplicity while providing specific authorization flows for web applications, desktop applications, mobile phones, and so on. This book also provides useful recipes for solving real-life problems using Spring Security and creating Android applications.The book starts by presenting you how to interact with some public OAuth 2.0 protected APIs such as Facebook, LinkedIn and Google. You will also be able to implement your own OAuth 2.0 provider with Spring Security OAuth2. Next, the book will cover practical scenarios regarding some important OAuth 2.0 profiles such as Dynamic Client Registration, Token Introspection and how to revoke issued access tokens. You will then be introduced to the usage of JWT, OpenID Connect, and how to safely implement native mobile OAuth 2.0 Clients.By the end of this book, you will be able to ensure that both the server and client are protected against common vulnerabilities.
Ved Antani, Stoyan STEFANOV
JavaScript is an object-oriented programming language that is used for website development. Web pages developed today currently follow a paradigm that has three clearly distinguishable parts: content (HTML), presentation (CSS), and behavior (JavaScript). JavaScript is one important pillar in this paradigm, and is responsible for the running of the web pages.This book will take your JavaScript skills to a new level of sophistication and get you prepared for your journey through professional web development. Updated for ES6, this book covers everything you will need to unleash the power of object-oriented programming in JavaScript while building professional web applications. The book begins with the basics of object-oriented programming in JavaScript and then gradually progresses to cover functions, objects, and prototypes, and how these concepts can be used to make your programs cleaner, more maintainable, faster, and compatible with other programs/libraries. By the end of the book, you will have learned how to incorporate object-oriented programming in your web development workflow to build professional JavaScript applications.
Aleksander Bies
Object-Oriented Programming is a textbook that will enable any reader, regardless of their level, to understand the basic principles of structured and object-oriented programming. A beginner will have the opportunity to learn almost from scratch, and an advanced programmer will be able to consolidate, practice, and significantly expand his or her knowledge. In the book, the author has gathered a large amount of basic programming concepts, explaining the concept of data, its types and more complex structures, i.e. collections, along with the ways of referring to them through names and pointers. He discussed conditional statements, iteration, functions, objects and classes, as well as inheritance, polymorphism and access rules. An additional advantage of the content discussed is the questions and exercises with answers and the source codes of all programs with the possibility of downloading them directly to the computer. The author of the book is Aleksander Bies, a teacher of programming, a graduate of Computer Science and Applied Computer Science at the Faculty of Science and Technology of the University of Silesia, a doctoral candidate in the field of artificial intelligence methods in complex systems. He is the co-author of a machine learning model that won 2nd place in the international Orange Datahack with Energy competition. Translations: Joanna Margowniczny an English teacher at Primary School No. 13 in Jaworzno and ZDZ in Sosnowiec, International IT ESSENTIALS instructor, OKE examiner.
Od monolitu do mikrousług. Ewolucyjne wzorce przekształcania systemów monolitycznych
Sam Newman
Mikrousługi są relatywnie świeżą koncepcją w świecie systemów IT, mimo to coraz więcej organizacji decyduje się na wdrażanie opartej na nich architektury. Uznaje się, że zapewnia ona wówczas lepszą skalowalność, łatwość łączenia poszczególnych niezależnych elementów, a przede wszystkim możliwość szybszej reakcji na zmiany i skuteczniejsze wdrażanie nowych funkcjonalności. Zanim jednak organizacja da się skusić tymi obietnicami, powinna gruntownie przeanalizować swoją sytuację i decyzję o ewentualnej migracji systemu oprzeć na racjonalnych przesłankach. Konieczne jest również opracowanie planu takiego przejścia, zwłaszcza jeśli nie można sobie pozwolić na dłuższe przestoje w działalności. To wyczerpujący poradnik dla inżynierów, którzy stoją przed wyzwaniem przekształcenia monolitycznego systemu w architekturę opartą na mikrousługach bez przerywania funkcjonowania firmy. Książka jest przeznaczona dla organizacji, które muszą płynnie zmienić istniejący system, a nie zbudować go od nowa. Zawiera wiele cennych wskazówek odnoszących się do celowości samej migracji oraz przedstawia liczne scenariusze i strategie przekształcania: od etapu planowania aż po dekompozycję aplikacji i baz danych. Znalazł się tu zestaw sprawdzonych wzorców i technik wraz z omówieniem sytuacji, w jakich można je bezpiecznie zastosować. Nie zabrakło ważnych szczegółów związanych z wzorcami refaktoryzacji architektury czy problematyki naruszeń integralności w wyniku podziału baz danych. W tej książce między innymi: podstawowe koncepcje związane z mikrousługami ocena przydatności mikrousług w konkretnych sytuacjach planowanie wdrażania architektury opartej na mikrousługach wzorce migracji, dekompozycja aplikacji i inne zagadnienia techniczne wykrywanie i rozwiązywanie problemów związanych z mikrousługami Dążysz do sukcesu? Obierz kurs na mikrousługi!