Techniki programowania
Czysta architektura. Struktura i design oprogramowania. Przewodnik dla profesjonalistów
Robert C. Martin
Pierwsze linie kodu powstawały pół wieku temu. Komputery, na które tworzono te programy, w bardzo niewielkim stopniu przypominały współczesne maszyny. Niezależnie od upływu lat, postępu technologii i powstawania wymyślnych narzędzi, języków programowania czy frameworków pewne zasady tworzenia kodu pozostają niezmienne. Są takie same jak w czasie, gdy Alan Turing pisał pierwszy kod maszynowy w 1946 roku. Respektowanie tych zasad to warunek, że uzyska się oprogramowanie o czystej architekturze, czyli poprawne strukturalnie, łatwe w utrzymaniu i rozwijaniu, a przede wszystkim działające zgodnie z oczekiwaniami. W tej książce w sposób jasny i bardzo interesujący przedstawiono uniwersalne zasady architektury oprogramowania wraz z szeregiem wskazówek dotyczących stosowania tych reguł w praktyce. Wyczerpująco zaprezentowano tu dostępne rozwiązania i wyjaśniono, dlaczego są one tak istotne dla sukcesu przedsięwzięcia. Publikacja jest wypełniona bardzo praktycznymi rozwiązaniami problemów, z którymi musi się mierzyć wielu programistów. Szczególnie cenne są uwagi dotyczące zapobiegania częstemu problemowi, jakim jest stopniowa utrata jakości kodu w miarę postępu projektu. Ta książka obowiązkowo powinna się znaleźć w podręcznej biblioteczce każdego architekta oprogramowania, analityka systemowego, projektanta i menedżera! Z książki dowiesz się: Do czego muszą dążyć architekci oprogramowania i w jaki sposób mogą osiągać te cele Jak brzmią najważniejsze zasady projektowania oprogramowania związane z adresowaniem funkcji, separacją komponentów i zarządzaniem danymi W jaki sposób paradygmaty oprogramowania wzmagają dyscyplinę pracy Co podczas tworzenia oprogramowania jest więcej, a co jest mniej ważne W jaki sposób implementować optymalne struktury dla sieci WWW, baz danych, konsoli i aplikacji osadzonych Czysta architektura - doskonały kod!
Czysty kod. Podręcznik dobrego programisty
Robert C. Martin
Poznaj najlepsze metody tworzenia doskonałego kodu Jak pisać dobry kod, a zły przekształcić w dobry? Jak formatować kod, aby osiągnąć maksymalną czytelność? Jak implementować pełną obsługę błędów bez zaśmiecania logiki kodu? O tym, ile problemów sprawia niedbale napisany kod, wie każdy programista. Nie wszyscy jednak wiedzą, jak napisać ten świetny, "czysty" kod i czym właściwie powinien się on charakteryzować. Co więcej - jak odróżnić dobry kod od złego? Odpowiedź na te pytania oraz sposoby tworzenia czystego, czytelnego kodu znajdziesz właśnie w tej książce. Podręcznik jest obowiązkową pozycją dla każdego, kto chce poznać techniki rzetelnego i efektywnego programowania. W książce Czysty kod. Podręcznik dobrego programisty szczegółowo omówione zostały zasady, wzorce i najlepsze praktyki pisania czystego kodu. Podręcznik zawiera także kilka analiz przypadków o coraz większej złożoności, z których każda jest doskonałym ćwiczeniem porządkowania zanieczyszczonego bądź nieudanego kodu. Z tego podręcznika dowiesz się m.in., jak tworzyć dobre nazwy, obiekty i funkcje, a także jak tworzyć testy jednostkowe i korzystać z programowania sterowanego testami. Nauczysz się przekształcać kod zawierający problemy w taki, który jest solidny i efektywny. Nazwy klas i metod Funkcje i listy argumentów Rozdzielanie poleceń i zapytań Stosowanie wyjątków Komentarze Formatowanie Obiekty i struktury danych Obsługa błędów Testy jednostkowe Klasy i systemy Współbieżność Oczyszczanie kodu Niech stworzony przez Ciebie kod imponuje czystością!
Kai Nacke
D is a programming language with C-like syntax and static typing. The vibe.d framework builds on powerful D concepts like template meta-programming and compile-time function execution to provide an easy-to-use environment for web applications. The combination of a feature-rich web programming framework with a language compiling to native code solves two common issues in web development today: it accelerates your development and it results in fast, native web applications. Learning the vibe.d framework before you start your application will help you to choose the right features to reach your goal.This book guides you through all aspects of web development with D and the vibe.d framework.Covering the popular operating systems today, this guide starts with the setup of your development system. From the first Hello World-style application you will move on to building static web pages with templates. The concise treatment of web forms will give you all the details about form handling and web security. Using the abstractions of the web framework you will learn how to easily validate user input. Next, you will add database access to your application, providing persistent storage for your data. Building on this foundation, you will expose your component and integrate other components via REST. Learning about the internals of vibe.d you will be able to use low-level techniques such as raw TCP access. The vibe.d concepts can also be used for GUI clients, which is the next topic that you will learn. vibe.d is supported by an active community, which adds new functionality. This comprehensive guide concludes with an overview of the most useful vibe.d extensions and where to find them. It also shows you how to integrate these extensions in your application.The concepts are always illustrated with source code, giving you an insight into how to apply them in your application.
Aendrew Rininsland , Michael Heydt, Pablo NAVARRO...
D3 has emerged as one of the leading platforms to develop beautiful, interactive visualizations over the web. We begin the course by setting up a strong foundation, then build on this foundation as we take you through the entire world of reimagining data using interactive, animated visualizations created in D3.js. In the first module, we cover the various features of D3.js to build a wide range of visualizations. We also focus on the entire process of representing data through visualizations. By the end of this module, you will be ready to use D3 to transform any data into a more engaging and sophisticated visualization.In the next module, you will learn to master the creation of graphical elements from data. Using practical examples provided, you will quickly get to grips with the features of D3.js and use this learning to create your own spectacular data visualizations with D3.js.Over the last leg of this course, you will get acquainted with how to integrate D3 with mapping libraries to provide reverse geocoding and interactive maps among many other advanced features of D3. This module culminates by showing you how to create enterprise-level dashboards to display real-time data.This Learning Path combines some of the best that Packt has to offer in one complete, curated package. It includes content from the following Packt products:? Learning D3.js Data Visualization, Second Edition by Andrew H. Rininsland? D3.js By Example by Michael Heydt? Mastering D3.js by Pablo Navarro Castillo
Dart: Scalable Application Development. Provides a solid foundation of libraries and tools
David Mitchell, Sergey Akopkokhyants, Ivo Balbaert
Designed to create next generation apps, Google’s Dart offers a much more robust framework and also supersedes JavaScript in several aspects. Familiar yet innovative, compact yet scalable, it blows away the accumulated JavaScript legacy limitations. Dart was designed for great tool-ability and developer productivity, allowing you to create better application faster than before. Google chose it for their billion dollar advertising business and you have its power for your projects too.The first module will introduce you the Dart language starting from its conception to its current form, and where it headed is through engaging substantial practical projects. You will be taken through building typical applications and exploring the exciting new technologies of HTML5.The second module will show you how to add internalization support to your web applications and how i18n and i10n access can be embedded into your code to design applications that can be localized easily. You will be shown how to organize client-to-server communication and how different HTML5 features can be used in Dart. Finally, this module will show you how you can store data locally, break the storage limit, and prevent security issues in your web application.The third module is a pragmatic guide that will increase your expertise in writing all kinds of applications, including web apps, scripts, and server-side apps. It provides rich insights on how to extend your Dart programming skills. Altogether, this course provides you the power to create powerful applications with Dart, without worrying about your knowledge leading to you having to make compromises to the end product!This Learning Path has been curated from three Packt products:Dart By Example By Davy MitchellMastering Dart By Sergey AkopkokhyantsDart Cookbook By Ivo Balbaert
Aleksejs Plotnikovs
Microsoft pioneered data innovation and investment ahead of many in the industry, setting a remarkable standard for data maturity. Written by a data leader with over 15 years of experience following Microsoft’s data journey, this book delves into every crucial aspect of this journey, including change management, aligning with business needs, enhancing data value, and cultivating a data-driven culture.This book emphasizes that success in a data-driven enterprise goes beyond relying solely on modern technology and highlights the importance of prioritizing genuine business needs to propel necessary modernizations through change management practices. You’ll see how data-driven innovation does not solely reside within central IT engineering teams but also among the data's business owners who rely on data daily for their operational needs. This guide empower these professionals with clean, easily discoverable, and business-ready data, marking a significant breakthrough in how data is perceived and utilized throughout an enterprise. You’ll also discover advanced techniques to nurture the value of data as unique intellectual property, and differentiate your organization with the power of data.Its storytelling approach and summary of essential insights at the end of each chapter make this book invaluable for business and data leaders to advocate for crucial data investments.
Data Wrangling with SQL. A hands-on guide to manipulating, wrangling, and engineering data using SQL
Raghav Kandarpa, Shivangi Saxena
The amount of data generated continues to grow rapidly, making it increasingly important for businesses to be able to wrangle this data and understand it quickly and efficiently. Although data wrangling can be challenging, with the right tools and techniques you can efficiently handle enormous amounts of unstructured data.The book starts by introducing you to the basics of SQL, focusing on the core principles and techniques of data wrangling. You’ll then explore advanced SQL concepts like aggregate functions, window functions, CTEs, and subqueries that are very popular in the business world. The next set of chapters will walk you through different functions within SQL query that cause delays in data transformation and help you figure out the difference between a good query and bad one. You’ll also learn how data wrangling and data science go hand in hand. The book is filled with datasets and practical examples to help you understand the concepts thoroughly, along with best practices to guide you at every stage of data wrangling.By the end of this book, you’ll be equipped with essential techniques and best practices for data wrangling, and will predominantly learn how to use clean and standardized data models to make informed decisions, helping businesses avoid costly mistakes.
Vaughn Vernon
DDD w pigułce Modelowanie oprogramowania jest kojarzone z pojęciem programowania dziedzinowego, w skrócie zwanego DDD. Jest to dość nowatorskie podejście do tworzenia architektury oprogramowania, a jego największą zaletą jest wysoka pewność uzyskiwania bardzo dobrych rezultatów. Programiści często błyskawicznie dostrzegają zalety DDD i korzyści płynące ze stosowania odpowiednich narzędzi, stąd technika ta cieszy się coraz większym uznaniem. Dopiero jednak pełne zrozumienie zasad stosowania wzorców projektowych DDD przez wszystkich zaangażowanych w projekt pozwala na osiągnięcie imponujących wyników przy projektowaniu skomplikowanych systemów oprogramowania. Ten zwięzły i czytelnie napisany podręcznik jest przeznaczony dla programistów, ekspertów dziedzinowych, menedżerów, analityków biznesowych, architektów informacji i testerów. Koncentruje się na praktycznej wiedzy niezbędnej do uzyskania pożądanych rezultatów. Wyjaśniono, jak segregować modele dziedzin za pomocą wzorca kontekstu ograniczonego, jak rozwinąć język wszechobecny, a także w jaki sposób zintegrować wiele kontekstów ograniczonych poprzez wykorzystanie relacji zespołowych i mechanizmów technicznych. Co najważniejsze, dowiesz się, jak podejście DDD działa w rzeczywistości i co zrobić, aby jak najszybciej cieszyć się jego zaletami. W książce przedstawiono następujące zagadnienia: wprowadzenie do DDD i zalety tego podejścia do projektowania projektowanie strategiczne DDD integrowanie istniejących systemów w ramach tworzenia nowych aplikacji modelowanie taktyczne - agregaty i zdarzenia dziedziny narzędzia do zarządzania projektami i przyśpieszania prac Narzędzia DDD - ciesz się udanym wdrożeniem!