Techniki programowania
Pragmatyczny programista. Od czeladnika do mistrza. Wydanie II
David Thomas, Andrew Hunt
Wydanie jubileuszowe z okazji 20. rocznicy pierwszej edycji Programiści dysponują coraz lepszym, szybszym i wszechstronniejszym sprzętem. Pojawiają się nowe języki programowania i nowe paradygmaty tworzenia architektury oprogramowania. Są jednak rzeczy, które w świecie programowania pozostają stałe i niezmienne. Wciąż proces stawania się programistą wymaga od adeptów tego rzemiosła sporego wysiłku. Akt kodowania to za mało. Trzeba zmienić sposób myślenia, nawyki, zachowania i oczekiwania. Konieczne jest świadome dążenie do stosowania dobrych praktyk. Jeśli pilnuje się jakości swojej pracy i nieustannie pamięta, co i po co się robi, można w końcu stać się pragmatycznym programistą. W drugim wydaniu tego kultowego przewodnika wskazówki techniczne harmonijnie łączą się z aspektami filozofii pragmatycznego programisty. Książka została zaktualizowana i gruntownie przejrzana, aby teraz, dwadzieścia lat po pierwszym wydaniu, ponownie pokazać, co to znaczy być nowoczesnym, pragmatycznym programistą. Poruszono tu tematy osobistej odpowiedzialności i rozwoju zawodowego, komunikacji i poznawania prawdziwych wymagań, nowoczesnych technik architektonicznych oraz coraz ważniejszych kwestii zachowania bezpieczeństwa i prywatności. Książka składa się z krótkich rozdziałów, które tworzą szeroki kontekst, dzięki czemu zyskasz wiedzę o najlepszych podejściach, unikniesz głównych pułapek, a co najważniejsze — rozwiniesz nawyki i postawy, które staną się fundamentem Twojego sukcesu zawodowego. Dowiedz się, jak: pisać kod dynamiczny, elastyczny i łatwy do dostosowywania unikać pułapek związanych z powielaniem wiedzy chronić oprogramowanie przed lukami w zabezpieczeniach budować zespoły pragmatycznych programistów skutecznie testować wziąć odpowiedzialność za swoją pracę i karierę Dbaj o swoje rzemiosło i myśl o tym, co robisz!
K. Siva Prasad Reddy, Siva Prasad Reddy...
PrimeFaces is a lightweight UI component framework for JSF based applications. PrimeFaces is very easy to use because it comes as a single JAR file and requires no mandatory XML configuration. It provides more than 100 UI Components and an in-built AJAX support. It also provides theme support for UI components with more than 30 themes out-of-the-box. With PrimeFaces, developers can create rich user interfaces very easily.PrimeFaces Beginners Guide is a practical, hands-on guide that provides you with clear step-by-step exercises,that will help you to learn and explore the features of PrimeFaces.PrimeFaces Beginners Guide starts by showing you how to install PrimeFaces, create sample forms, and perform validations and then looks at various commonly used PrimeFaces utility components. Next, you will look into various basic text input components like form controls, Calendar, AutoComplete, and Rich Text Editor. Then you will learn about advanced UI components such as DataTables, panels, menus,and charts. Throughout the chapters we will be building a sample web application using PrimeFaces progressively that will give you a hands-on experience on using PrimeFaces effectively.You will learn how to create complex layouts using accordion panels, tab views, sophisticated menu navigations, breadcrumbs and much more. You will also learn how to display data using DataTable with pagination, filters, and lazy loading, and how to export data to Excel or PDF features. You will learn how to represent data in various formats like trees, charts, and TagCloud. You will also learn how to build an application supporting multiple themes.With this PrimeFaces Beginner's Guide , you will learn how to use PrimeFaces easily and effectively.
Dale Green
Procedural generation is a growing trend in game development. It allows developers to create games that are bigger and more dynamic, giving the games a higher level of replayability. Procedural generation isn’t just one technique, it’s a collection of techniques and approaches that are used together to create dynamic systems and objects. C++ is the industry-standard programming language to write computer games. It’s at the heart of most engines, and is incredibly powerful. SFML is an easy-to-use, cross-platform, and open-source multimedia library. Access to computer hardware is broken into succinct modules, making it a great choice if you want to develop cross-platform games with ease.Using C++ and SFML technologies, this book will guide you through the techniques and approaches used to generate content procedurally within game development. Throughout the course of this book, we’ll look at examples of these technologies, starting with setting up a roguelike project using the C++ template. We’ll then move on to using RNG with C++ data types and randomly scattering objects within a game map. We will create simple console examples to implement in a real game by creating unique and randomised game items, dynamic sprites, and effects, and procedurally generating game events. Then we will walk you through generating random game maps. At the end, we will have a retrospective look at the project. By the end of the book, not only will you have a solid understanding of procedural generation, but you’ll also have a working roguelike game that you will have extended using the examples provided.
Nikolaus Gradwohl
Processing makes it convenient for developers, artists, and designers to create their own projects easily and efficiently. Processing offers you a platform for expressing your ideas and engaging audiences in new ways. This book teaches you everything you need to know to explore new frontiers in animation and interactivity with the help of Processing.Processing 2: Creative Coding Hotshot' will present you with nine exciting projects that will take you beyond the basics and show you how you can make your programs see, hear, and even feel! With these projects, you will also learn how to build your own hardware controllers and integrate devices such as a Kinect senor board in your Processing sketches.Processing is an exciting programming environment for programmers and visual artists alike that makes it easier to create interactive programs.Through nine complete projects, Processing 2: Creative Coding Hotshot' will help you explore the exciting possibilities that this open source language provides. The topics we will cover range from creating robot - actors performing Shakespeare's Romeo and Juliet, to generating objects for 3D printing, and you will learn how to run your processing sketches nearly anywhere from a desktop computer to a browser or a mobile device.
Processing 2: Creative Programming Cookbook
Jan Vantomme, Processing
Processing is probably the best known creative coding environment that helps you bridge the gap between programming and art. It enables designers, artists, architects, students and many others to explore graphics programming and computational art in an easy way, thus helping you boost your creativity.Processing 2: Creative Programming Cookbook will guide you to explore and experience the open source Processing language and environment, helping you discover advanced features and exciting possibilities with this programming environment like never before. You'll learn the basics of 2D and 3D graphics programming, and then quickly move up to advanced topics such as audio and video visualization, computer vision, and much more with this comprehensive guide.Since its birth in 2001, Processing has grown a lot. What started out as a project by Ben Fry and Casey Reas has now become a widely used graphics programming language.Processing 2 has a lot of new and exciting features. This cookbook will guide you to explore the completely new and cool graphics engine and video library. Using the recipes in this cookbook, you will be able to build interactive art for desktop computers, Internet, and even Android devices! You don't even have to use a keyboard or mouse to interact with the art you make. The book's next-gen technologies will teach you how to design interactions with a webcam or a microphone! Isn't that amazing?Processing 2: Creative Programming Cookbook will guide you to explore the Processing language and environment using practical and useful recipes.
Professional CSS3. Harness the power of CSS3 to design stunning, modern websites
Piotr Sikora
CSS is the preferred technology to design modern web pages. Although CSS is often perceived as a simple language, applying modern styles to web pages with CSS and maintaining the code for larger websites can be quite tricky.We will take you right from understanding CSS to designing high-quality web pages in CSS3. We'll quickly take you through CSS3's features, and show you how to resolve common issues so you can build your basic framework. Finally, you will learn about code architecture and CSS methodologies used in scalable apps and you'll explore the various new features of CSS3, such as FlexBox, to help you create the most modern layout methodologies. By the end of the book, you will be a master at creating pure CSS web pages and will know sophisticated web design techniques, giving you an edge over other web designers.
Programming Fundamentals Using MATLAB. Master the Basics and Beyond of MATLAB Programming
Mercury Learning and Information, Michael Weeks
This book introduces MATLAB syntax and environment, ideal for beginners with no programming background. The first four chapters cover basic programming concepts, computing terminology, MATLAB syntax, control structures, operators, arrays, and matrices. Next, the book explores grouping data, working with files, creating images, building graphical user interfaces, experimenting with sound, and debugging. The final chapters present case studies on using MATLAB with tools like Arduino, Linux, Git, and Mex, essential for basic programming knowledge.Understanding MATLAB is crucial for data analysis and technical computing. This book transitions readers from basics to advanced topics, blending theoretical knowledge with practical applications. Companion files with code and four-color figures enhance learning, making this an essential resource for mastering MATLAB.
Marije Brummel, Natalie Karolak, Christopher D. Studebaker,...
Business Central opens a world of endless possibilities for custom business logic and functionality through extensions and customizations. For beginners in the AL language, navigating the vast landscape can feel overwhelming. It’s challenging to know where to start and what’s essential to learn. This updated edition offers a concise and well-organized guide, featuring hands-on exercises to support a successful learning journey.You’ll get to grips with the basics of Business Central and how to create your first Visual Studio Code project with the AL language. As you learn about the table data structure, simple and complex data types, relationships, validation, and data flow, you’ll be able to add and extend tables to your project. Progressively, you'll uncover the intricacies of user interfaces with pages, create advanced Excel report layouts, and harness the power of data queries. Immersing yourself in the AL language syntax, you’ll start with variables, methods, procedures, and statements. You'll explore advanced topics to create business logic such as FlowFields, filtering, CRUD methods, interactions between object types, and different API interfaces that can be created using the AL language.By the end of this book, you’ll be equipped to build fully featured, robust extensions and custom capabilities for Business Central.
Yehuda Zadik, Eliahou Orr
The CodeIgniter Model-View-Controller framework provides genius simplicity, flexibility, and efficient resource usage, boosting performance and reusability.Programming with CodeIgniter MVC reviews the unique features of CodeIgniter using simple, easy-to-follow, and practical examples.Programming with CodeIgniter MVC provides a simple step-by-step guide to efficiently utilizingthe CodeIgniter MVC framework for developing web applications. This book is packed with engaging examples to understand the usage of controllers, libraries, and (Codeigniter) CI Models. This book commences with a quick discussion of the CodeIgniter Integration with external plugins such as Flickr API, Google Maps and more will be reviewed with clear usage examples. It will then cover CI naming convention rules, mandatory and optional configurations, and usage within a CI project. It will also cover user defined configurations.By the end of this book, you will not only understand user-defined libraries in a CI framework, but also their services, role, usage, and scope with the help of an example-based approach. The book also covers helpers, models, and views, as well as their usage.Using this book, youwill soonbe able to develop feature-rich web applications using the CodeIgniter MVC framework. Programming with CodeIgniter MVC is a one-stop solution to developing solutions with CodeIgniter MVC.
Programowanie dla początkujących w 24 godziny. Wydanie IV
Greg Perry, Dean Miller
Warto nauczyć się programowania! Poza stworzeniem sobie możliwości znalezienia ciekawej i dobrze płatnej pracy czy pasjonującego hobby umiejętność programowania bywa niezwykle przydatna w rozwiązywaniu różnych problemów. Paleta języków programowania i narzędzi programistycznych jest niezwykle szeroka i praktycznie każdy znajdzie coś dla siebie. Zanim to jednak nastąpi, trzeba zdobyć trochę wiedzy i umiejętności. Ale bez obaw! W nauce programowania najtrudniejszy bywa pierwszy krok, jednak ta książka sprawi, że wykonasz go bez trudu i dumnie wkroczysz w świat kodowania! To kolejne wydanie lubianego samouczka, dzięki któremu w ramach 24 godzinnych lekcji przyswoisz solidne podstawy programowania. Zrozumiesz, jak działają programy, i nauczysz się reguł stosowanych przez profesjonalistów przy ich projektowaniu. Dowiesz się, jak wygląda świat programistów i na czym dokładnie polega programowanie w korporacjach. Znajdziesz tutaj także wprowadzenie do kilku najpopularniejszych języków programowania, co pozwoli na ich porównanie i ułatwi wybór języka do dalszej nauki. Każdy z 24 rozdziałów zawiera materiał, który można opanować w ciągu godziny. Naukę ułatwiają instrukcje krok po kroku, quizy, ćwiczenia i praktyczne przykłady. Dzięki tej książce zdobędziesz najlepsze podstawy, aby stać się dobrym programistą. Przygotujesz się też do świadomego kształtowania swojej dalszej ścieżki zawodowej! W książce między innymi: przygotowanie narzędzi do pracy - sprzęt i oprogramowanie podstawowe aspekty programowania i projektowania programów algorytmy, interaktywność, zmienne, funkcje debugowanie kodu programowanie obiektowe i korzystanie z baz danych planowanie kariery programisty Zacznij programować. Najlepiej od razu!
Programowanie funkcyjne. Krok po kroku
Joshua Backfield
Zmień swoje podejście do programowania! Języki funkcyjne zdobywają wśród programistów coraz większą popularność. Jak bezboleśnie zmienić sposób myślenia na funkcyjny? Ułatwi Ci to niniejsza książka, w całości poświęcona temu podejściu do programowania. Poznaj podstawy teoretyczne programowania funkcyjnego, a następnie zacznij zgłębiać tajniki typów funkcyjnych, rekurencji oraz zmiennych niepodlegających modyfikacji. Z kolejnych rozdziałów dowiedz się, czym są ewaluacja rygorystyczna i nierygorystyczna. Zobacz też, jak wykonać dopasowanie do wzorca. Co jeszcze znajdziesz w tej książce? Wprowadzenie do języka Scala, przedstawienie języka Groovy oraz opis technik funkcyjnego programowania obiektowego to tylko niektóre z poruszanych w niej tematów. Jeżeli chcesz zmienić sposób programowania na funkcyjny, to doskonała pozycja dla Ciebie! Dowiesz się, czemu obecne sprawnie działające aplikacje lepiej funkcjonują z kodem funkcyjnym. Przejdziesz od wzorców stylu imperatywnego do kodu funkcyjnego w kilku podstawowych krokach. Przyspieszysz z językami Groovy i Scala dzięki przykładom. Zrozumiesz, w jaki sposób typy funkcyjne są przekazywane do innych funkcji i zwracane z nich. Przekonwertujesz istniejące metody na funkcje czyste, a pętle na metody rekurencyjne. Przejdziesz od zmiennych mutowalnych do niemutowalnych. Uzyskasz praktyczne doświadczenie w zakresie stosowania instrukcji oraz ewaluacji nierygorystycznej. Będziesz stosował programowanie funkcyjne z elementami programowania obiektowego. Przekonaj się, jak podejście funkcyjne może ułatwić Ci życie!
Zed A. Shaw
Istnieje bardzo wiele nowoczesnych języków programowania, które pozwalają na szybkie wdrożenie i pracę. Takim językiem na pewno nie jest C. Niektóre jego cechy bardzo utrudniają tworzenie bezpiecznego i bezawaryjnego kodu. Warto więc dogłębnie poznać C — przy bardzo prostej składni i niewielkich wymaganiach sprzętowych ma potężne możliwości! Niniejsza książka jest bardzo dobrym podręcznikiem dla początkujących programistów. Nauczysz się C, wykonując 52 sprytnie skonstruowane zadania zilustrowane kodem i specjalnie opracowanymi klipami wideo. Duży nacisk został położony na dogłębną analizę tworzonego kodu — autor zmusza Czytelnika do zrozumienia znaczenia każdej linii programu, do koncentracji i dokładności. Zachęca też do praktykowania tzw. programowania defensywnego, dzięki któremu możliwe jest podniesienie jakości i bezpieczeństwa tworzonego oprogramowania. Wartościowym elementem książki są wskazówki, jak zepsuć napisany kod, a następnie go zabezpieczyć. Bardzo ułatwia to unikanie wielu poważnych, często spotykanych błędów. Najistotniejsze zagadnienia poruszone w książce: Podstawowa składnia C Konfiguracja środowiska programistycznego, kompilacja kodu, pliki Makefile i linkery Kontrola przebiegu działania programu, alokacja pamięci Operacje wejścia-wyjścia i pliki, stosy i kolejki Usuwanie błędów, programowanie defensywne i automatyczne testowanie Eliminacja błędu przepełnienia stosu, niedozwolonego dostępu do pamięci itd. Hakowanie własnego kodu utworzonego w C Zrozum C, programuj starannie — dobrze działać może tylko dobry kod!
Programowanie w języku Go. Koncepcje i przykłady. Wydanie II
Mat Ryer
Go jest nowoczesnym językiem programowania rozwijanym przez firmę Google. Ostatnie zmiany sprawiły, że stał się on komfortowym narzędziem do tworzenia wydajnych aplikacji. Programiści Go mogą korzystać z wciąż rosnącego zbioru pakietów dostępnych jako open source, dzięki czemu tworzą i wdrażają oprogramowanie o znakomitej jakości. Taki kod od pierwszego dnia działa dobrze, a przy tym imponuje skalowalnością. Wbudowane mechanizmy Go, takie jak współbieżność, zapewniają możliwość uzyskiwania fantastycznych wyników nawet na najprostszym sprzęcie. Niniejsza książka stanowi znakomite wprowadzenie do programowania w Go. Przyda się zarówno początkującym, jak i zaawansowanym programistom. Podstawą prezentowanych tu projektów są skalowalność, wydajność działania oraz wysoka dostępność. Poza opisem języka przedstawiono tu sporo istotnych koncepcji architektury oprogramowania. Wykorzystano aspekty filozofii wykorzystywanej przez „zwinnych” programistów. Opisano zasady tworzenia aplikacji korzystających z Google App Engine, pisania i korzystania z mikrousług czy też tworzenia obrazów Dockera. Wiedza zdobyta dzięki tej książce ułatwi każdemu stosowanie rozwiązań najwyższej klasy. Najważniejsze zagadnienia: aplikacje internetowe korzystające z pakietu NET/HTTP programy obsługiwane z poziomu wiersza poleceń systemy rozproszone i elastyczne dane usługi typu RESTful programistyczne korzystanie z magazynu Google Cloud Datastore dobre praktyki przygotowywania aplikacji w Go Język Go. Idź i programuj! Mat Ryer — programuje od szóstego roku życia. Swoje pierwsze eksperymenty przeprowadzał wraz z ojcem w języku BASIC, a następnie w językach AmigaBASIC i AMOS. Jego kariera zawodowa od początku była związana z programowaniem. Używał wielu różnych języków, aż w końcu zwrócił uwagę na rozwijany przez Google język Go. Ryer od lat używa języka Go do tworzenia przeróżnych produktów, usług i projektów typu open source. Jest gorącym orędownikiem tego rozwiązania. Pisze o Go artykuły, a podczas różnych wykładów i konferencji zachęca programistów, by go wypróbowali.
Programuj tak, aby nie naprawiać. Planowanie projektów i systemów
Juval Löwy
Tworzenie oprogramowania, zwłaszcza dużych i złożonych aplikacji, bywa problemem. Często objawy złego planowania projektu nie mają wiele wspólnego z uwarunkowaniami technicznymi: wysoki poziom stresu, duża rotacja pracowników, wypalenie zawodowe, brak zaufania, niska samoocena, a nawet różnego rodzaju dolegliwości fizyczne. Przyczyny tego stanu rzeczy są podobne: określane w nierealny sposób koszty, terminy i wymagania. Później okazuje się, że wewnętrznej złożoności systemu nikt nie rozumie, nad koniecznymi ciągłymi zmianami nikt nie panuje, a wytworzone oprogramowanie jest niemal niemożliwe do utrzymania. Jak widać, problem jest wielowymiarowy. Wielowymiarowe musi więc też być narzędzie, które umożliwi jego rozwiązanie. W tym praktycznym przewodniku uniwersalne zasady projektowania zostały dostosowane do specyfiki wytwarzania oprogramowania. Znalazł się tu zbiór najważniejszych zasad inżynierii oprogramowania, jak również wyczerpujący zestaw narzędzi i technik do stosowania w projektach programistycznych. Ich zastosowanie sprawi, że gotowy system będzie łatwy do utrzymania, rozszerzalny, nie będzie zbyt kosztowny, a jego wykonanie będzie realne pod względem czasu i ryzyka. Koncepcje opisane w książce stanowią doskonały punkt wyjścia, gdyż pozwalają sporządzić dobry projekt systemu oprogramowania oraz dobry plan budowy tego systemu. Dopiero to umożliwi ukończenie pracy w wyznaczonym terminie i bez przekroczenia założonego budżetu, a wytworzony produkt będzie łatwy w utrzymaniu, możliwy do rozszerzania oraz wielokrotnego użycia. W książce między innymi: koncepcja projektowania systemu i planowania projektu dekompozycja systemu, jego struktura i łączenie komponentów narzędzia i techniki potrzebne w planowaniu i projektowaniu mierzenie i wyliczanie ryzyka projektu i jego wariantów zaawansowane techniki projektowania systemów o wysokiej złożoności Mistrz w projektowaniu oprogramowania rozważa bardzo niewiele opcji!
Projektowanie systemów rozproszonych. Wzorce i paradygmaty dla skalowalnych, niezawodnych usług
Brendan Burns
Nowoczesne oprogramowanie musi sprostać wyśrubowanym kryteriom: ma cechować się określoną niezawodnością i skalowalnością, a przy tym powinno korzystać z technologii chmury. Naturalnie powinien to być dobrze zaprojektowany system rozproszony. Dziś standardem jest korzystanie z aplikacji na wielu urządzeniach w różnych lokalizacjach. Niestety, mimo powszechności systemów rozproszonych ich projektowanie nader często przypomina coś w rodzaju czarnej magii, dostępnej dla nielicznych wtajemniczonych. W efekcie architektura każdego systemu jest unikatowa. Ta książka jest praktycznym przewodnikiem dla projektantów systemów rozproszonych. Zaprezentowano tu kolekcję powtarzalnych wzorców oraz zalecanych praktyk programistycznych, dzięki którym rozwijanie niezawodnych systemów rozproszonych stanie się bardziej przystępne i wydajne. Poza podstawowymi wzorcami systemów rozproszonych przedstawiono tu również techniki tworzenia skonteneryzowanych komponentów wielokrotnego użytku. Znalazło się tu także omówienie zagadnień rozwoju kontenerów i orkiestratorów kontenerów, które zasadniczo zmieniły sposób budowania systemów rozproszonych. Książka ta jest lekturą obowiązkową dla każdego projektanta aplikacji, który chce efektywnie budować niezawodne aplikacje rozproszone! Najważniejsze zagadnienia: wprowadzenie do systemów rozproszonych znaczenie wzorców i komponentów wielokrotnego użytku jednowęzłowe wzorce Przyczepa, Adapter i Ambasador wielowęzłowe wzorce dla replikowania, skalowania i wybierania węzłów głównych wzorce wsadowego przetwarzania danych na dużą skalę Twórz systemy rozproszone: skalowalne, elastyczne, niezawodne!