|
|
Books > Computing & IT > Computer programming > Object-oriented programming (OOP)
Test your Python programming skills by solving real-world problems
Key Features Access built-in documentation tools and improve your
code. Discover how to make the best use of decorator and generator
functions Enhance speed and improve concurrency by conjuring tricks
from the PyPy project Book DescriptionThis book covers the
unexplored secrets of Python, delve into its depths, and uncover
its mysteries. You'll unearth secrets related to the implementation
of the standard library, by looking at how modules actually work.
You'll understand the implementation of collections, decimals, and
fraction modules. If you haven't used decorators, coroutines, and
generator functions much before, as you make your way through the
recipes, you'll learn what you've been missing out on. We'll cover
internal special methods in detail, so you understand what they are
and how they can be used to improve the engineering decisions you
make. Next, you'll explore the CPython interpreter, which is a
treasure trove of secret hacks that not many programmers are aware
of. We'll take you through the depths of the PyPy project, where
you'll come across several exciting ways that you can improve speed
and concurrency. Finally, we'll take time to explore the PEPs of
the latest versions to discover some interesting hacks. What you
will learn Know the differences between .py and .pyc files Explore
the different ways to install and upgrade Python packages
Understand the working of the PyPI module that enhances built-in
decorators See how coroutines are different from generators and how
they can simulate multithreading Grasp how the decimal module
improves floating point numbers and their operations Standardize
sub interpreters to improve concurrency Discover Python's built-in
docstring analyzer Who this book is forWhether you've been working
with Python for a few years or you're a seasoned programmer, you'll
have a lot of new tricks to walk away with.
Design and develop high-performance, reusable, and maintainable
applications using traditional and modern Julia patterns with this
comprehensive guide Key Features Explore useful design patterns
along with object-oriented programming in Julia 1.0 Implement
macros and metaprogramming techniques to make your code faster,
concise, and efficient Develop the skills necessary to implement
design patterns for creating robust and maintainable applications
Book DescriptionDesign patterns are fundamental techniques for
developing reusable and maintainable code. They provide a set of
proven solutions that allow developers to solve problems in
software development quickly. This book will demonstrate how to
leverage design patterns with real-world applications. Starting
with an overview of design patterns and best practices in
application design, you'll learn about some of the most fundamental
Julia features such as modules, data types, functions/interfaces,
and metaprogramming. You'll then get to grips with the modern Julia
design patterns for building large-scale applications with a focus
on performance, reusability, robustness, and maintainability. The
book also covers anti-patterns and how to avoid common mistakes and
pitfalls in development. You'll see how traditional object-oriented
patterns can be implemented differently and more effectively in
Julia. Finally, you'll explore various use cases and examples, such
as how expert Julia developers use design patterns in their open
source packages. By the end of this Julia programming book, you'll
have learned methods to improve software design, extensibility, and
reusability, and be able to use design patterns efficiently to
overcome common challenges in software development. What you will
learn Master the Julia language features that are key to developing
large-scale software applications Discover design patterns to
improve overall application architecture and design Develop
reusable programs that are modular, extendable, performant, and
easy to maintain Weigh up the pros and cons of using different
design patterns for use cases Explore methods for transitioning
from object-oriented programming to using equivalent or more
advanced Julia techniques Who this book is forThis book is for
beginner to intermediate-level Julia programmers who want to
enhance their skills in designing and developing large-scale
applications.
Design and architect real-world scalable C++ applications by
exploring advanced techniques in low-level programming,
object-oriented programming (OOP), the Standard Template Library
(STL), metaprogramming, and concurrency Key Features Design
professional-grade, maintainable apps by learning advanced concepts
such as functional programming, templates, and networking Apply
design patterns and best practices to solve real-world problems
Improve the performance of your projects by designing concurrent
data structures and algorithms Book DescriptionC++ has evolved over
the years and the latest release - C++20 - is now available. Since
C++11, C++ has been constantly enhancing the language feature set.
With the new version, you'll explore an array of features such as
concepts, modules, ranges, and coroutines. This book will be your
guide to learning the intricacies of the language, techniques, C++
tools, and the new features introduced in C++20, while also helping
you apply these when building modern and resilient software. You'll
start by exploring the latest features of C++, and then move on to
advanced techniques such as multithreading, concurrency, debugging,
monitoring, and high-performance programming. The book will delve
into object-oriented programming principles and the C++ Standard
Template Library, and even show you how to create custom templates.
After this, you'll learn about different approaches such as
test-driven development (TDD), behavior-driven development (BDD),
and domain-driven design (DDD), before taking a look at the coding
best practices and design patterns essential for building
professional-grade applications. Toward the end of the book, you
will gain useful insights into the recent C++ advancements in AI
and machine learning. By the end of this C++ programming book,
you'll have gained expertise in real-world application development,
including the process of designing complex software. What you will
learn Understand memory management and low-level programming in C++
to write secure and stable applications Discover the latest C++20
features such as modules, concepts, ranges, and coroutines
Understand debugging and testing techniques and reduce issues in
your programs Design and implement GUI applications using Qt5 Use
multithreading and concurrency to make your programs run faster
Develop high-end games by using the object-oriented capabilities of
C++ Explore AI and machine learning concepts with C++ Who this book
is forThis C++ book is for experienced C++ developers who are
looking to take their knowledge to the next level and perfect their
skills in building professional-grade applications.
Exploit various design patterns to master the art of solving
problems using Python Key Features Master the application design
using the core design patterns and latest features of Python 3.7
Learn tricks to solve common design and architectural challenges
Choose the right plan to improve your programs and increase their
productivity Book DescriptionPython is an object-oriented scripting
language that is used in a wide range of categories. In software
engineering, a design pattern is an elected solution for solving
software design problems. Although they have been around for a
while, design patterns remain one of the top topics in software
engineering, and are a ready source for software developers to
solve the problems they face on a regular basis. This book takes
you through a variety of design patterns and explains them with
real-world examples. You will get to grips with low-level details
and concepts that show you how to write Python code, without
focusing on common solutions as enabled in Java and C++. You'll
also fnd sections on corrections, best practices, system
architecture, and its designing aspects. This book will help you
learn the core concepts of design patterns and the way they can be
used to resolve software design problems. You'll focus on most of
the Gang of Four (GoF) design patterns, which are used to solve
everyday problems, and take your skills to the next level with
reactive and functional patterns that help you build resilient,
scalable, and robust applications. By the end of the book, you'll
be able to effciently address commonly faced problems and develop
applications, and also be comfortable working on scalable and
maintainable projects of any size. What you will learn Explore
Factory Method and Abstract Factory for object creation Clone
objects using the Prototype pattern Make incompatible interfaces
compatible using the Adapter pattern Secure an interface using the
Proxy pattern Choose an algorithm dynamically using the Strategy
pattern Keep the logic decoupled from the UI using the MVC pattern
Leverage the Observer pattern to understand reactive programming
Explore patterns for cloud-native, microservices, and serverless
architectures Who this book is forThis book is for intermediate
Python developers. Prior knowledge of design patterns is not
required to enjoy this book.
Learn to create high-performance, error-free programs by
understanding the core principles and techniques behind programming
in C++ Key Features Gain a solid understanding of the syntax and
anatomy of C++ Implement best practices when building
high-performance C++ programs Prepare for real-world development
tasks by tackling engaging activities Book DescriptionC++ is the
backbone of many games, GUI-based applications, and operating
systems. Learning C++ effectively is more than a matter of simply
reading through theory, as the real challenge is understanding the
fundamentals in depth and being able to use them in the real world.
If you're looking to learn C++ programming efficiently, this
Workshop is a comprehensive guide that covers all the core features
of C++ and how to apply them. It will help you take the next big
step toward writing efficient, reliable C++ programs. The C++
Workshop begins by explaining the basic structure of a C++
application, showing you how to write and run your first program to
understand data types, operators, variables and the flow of control
structures. You'll also see how to make smarter decisions when it
comes to using storage space by declaring dynamic variables during
program runtime. Moving ahead, you'll use object-oriented
programming (OOP) techniques such as inheritance, polymorphism, and
class hierarchies to make your code structure organized and
efficient. Finally, you'll use the C++ standard library?s built-in
functions and templates to speed up different programming tasks. By
the end of this C++ book, you will have the knowledge and skills to
confidently tackle your own ambitious projects and advance your
career as a C++ developer. What you will learn Understand how a C++
program is written, executed, and compiled Efficiently work with
the essential C++ data types and variables Build your own C++
applications by writing clear and error-free code Grasp the core
principles behind object-oriented programming Simplify your code by
using templates and the standard library Debug logical errors and
handle exceptions in your program Who this book is forThis Workshop
is for anyone who is new to C++ who wants to build a strong
foundation for C++ game programming or application development.
Basic prior knowledge of data structures and OOP concepts, as well
as experience in any other programming language, will help you
grasp the concepts covered in this book more easily.
C# 7.1 and .NET Core 2.0 - Modern Cross-Platform Development, Third
Edition is a practical guide to creating powerful cross-platform
applications with C# 7 and .NET Core 2.0. About This Book * Build
modern, cross-platform applications with .NET Core 2.0 * Get up to
speed with C#, and up to date with all the latest features of C#
7.1 * Start creating professional web applications with ASP.NET
Core 2.0 Who This Book Is For This book is targeted towards readers
who have some prior programming experience or have a science,
technology, engineering, or mathematics (STEM) background, and want
to gain a solid foundation with C# and to be introduced to the
types of applications they could build and will work cross-platform
on Windows, Linux, and macOS. What You Will Learn * Build
cross-platform applications using C# 7.1 and .NET Core 2.0 *
Explore ASP.NET Core 2.0 and learn how to create professional
websites, services, and applications * Improve your application's
performance using multitasking * Use Entity Framework Core and LINQ
to query and manipulate data * Master object-oriented programming
with C# to increase code reuse and efficiency * Familiarize
yourself with cross-device app development using the Universal
Windows Platform * Protect and manage your files and data with
encryption, streams, and serialization * Get started with mobile
app development using Xamarin.Forms * Preview the nullable
reference type feature of C# 8 In Detail C# 7.1 and .NET Core 2.0 -
Modern Cross-Platform Development, Third Edition, is a practical
guide to creating powerful cross-platform applications with C# 7.1
and .NET Core 2.0. It gives readers of any experience level a solid
foundation in C# and .NET. The first part of the book runs you
through the basics of C#, as well as debugging functions and
object-oriented programming, before taking a quick tour through the
latest features of C# 7.1 such as default literals, tuples,
inferred tuple names, pattern matching, out variables, and more.
After quickly taking you through C# and how .NET works, this book
dives into the .NET Standard 2.0 class libraries, covering topics
such as packaging and deploying your own libraries, and using
common libraries for working with collections, performance,
monitoring, serialization, files, databases, and encryption. The
final section of the book demonstrates the major types of
application that you can build and deploy cross-device and
cross-platform. In this section, you'll learn about websites, web
applications, web services, Universal Windows Platform (UWP) apps,
and mobile apps. By the end of the book, you'll be armed with all
the knowledge you need to build modern, cross-platform applications
using C# and .NET. Style and approach This book takes a
step-by-step approach and is filled with exciting projects and
fascinating theory. It uses three high-impact sections to equip you
with all the tools you'll need to build modern, cross-platform
applications using C# and .NET Core 2.0.
A comprehensive guide to get started with Java and gain insights
into major concepts such as object-oriented, functional, and
reactive programming Key Features Strengthen your knowledge of
important programming concepts and the latest features in Java
Explore core programming topics including GUI programming,
concurrency, and error handling Learn the idioms and best practices
for writing high-quality Java code Book DescriptionJava is one of
the preferred languages among developers, used in everything right
from smartphones, and game consoles to even supercomputers, and its
new features simply add to the richness of the language. This book
on Java programming begins by helping you learn how to install the
Java Development Kit. You will then focus on understanding
object-oriented programming (OOP), with exclusive insights into
concepts like abstraction, encapsulation, inheritance, and
polymorphism, which will help you when programming for real-world
apps. Next, you'll cover fundamental programming structures of Java
such as data structures and algorithms that will serve as the
building blocks for your apps. You will also delve into core
programming topics that will assist you with error handling,
debugging, and testing your apps. As you progress, you'll move on
to advanced topics such as Java libraries, database management, and
network programming, which will hone your skills in building
professional-grade apps. Further on, you'll understand how to
create a graphic user interface using JavaFX and learn to build
scalable apps by taking advantage of reactive and functional
programming. By the end of this book, you'll not only be well
versed with Java 10, 11, and 12, but also gain a perspective into
the future of this language and software development in general.
What you will learn Learn and apply object-oriented principles Gain
insights into data structures and understand how they are used in
Java Explore multithreaded, asynchronous, functional, and reactive
programming Add a user-friendly graphic interface to your
application Find out what streams are and how they can help in data
processing Discover the importance of microservices and use them to
make your apps robust and scalable Explore Java design patterns and
best practices to solve everyday problems Learn techniques and
idioms for writing high-quality Java code Who this book is
forStudents, software developers, or anyone looking to learn new
skills or even a language will find this book useful. Although this
book is for beginners, professional programmers can benefit from it
too. Previous knowledge of Java or any programming language is not
required.
Harness the power of Python objects and data structures to
implement algorithms for analyzing your data and efficiently
extracting information Key Features Turn your designs into working
software by learning the Python syntax Write robust code with a
solid understanding of Python data structures Understand when to
use the functional or the OOP approach Book DescriptionThis
Learning Path helps you get comfortable with the world of Python.
It starts with a thorough and practical introduction to Python.
You'll quickly start writing programs, building websites, and
working with data by harnessing Python's renowned data science
libraries. With the power of linked lists, binary searches, and
sorting algorithms, you'll easily create complex data structures,
such as graphs, stacks, and queues. After understanding cooperative
inheritance, you'll expertly raise, handle, and manipulate
exceptions. You will effortlessly integrate the object-oriented and
not-so-object-oriented aspects of Python, and create maintainable
applications using higher level design patterns. Once you've
covered core topics, you'll understand the joy of unit testing and
just how easy it is to create unit tests. By the end of this
Learning Path, you will have built components that are easy to
understand, debug, and can be used across different applications.
This Learning Path includes content from the following Packt
products: Learn Python Programming - Second Edition by Fabrizio
Romano Python Data Structures and Algorithms by Benjamin Baka
Python 3 Object-Oriented Programming by Dusty Phillips What you
will learn Use data structures and control flow to write code Use
functions to bundle together a sequence of instructions Implement
objects in Python by creating classes and defining methods Design
public interfaces using abstraction, encapsulation and information
hiding Raise, define, and manipulate exceptions using special error
objects Create bulletproof and reliable software by writing unit
tests Learn the common programming patterns and algorithms used in
Python Who this book is forIf you are relatively new to coding and
want to write scripts or programs to accomplish tasks using Python,
or if you are an object-oriented programmer for other languages and
seeking a leg up in the world of Python, then this Learning Path is
for you. Though not essential, it will help you to have basic
knowledge of programming and OOP.
Get the most out of the popular Java libraries and tools to perform
efficient data analysis About This Book * Get your basics right for
data analysis with Java and make sense of your data through
effective visualizations. * Use various Java APIs and tools such as
Rapidminer and WEKA for effective data analysis and machine
learning. * This is your companion to understanding and
implementing a solid data analysis solution using Java Who This
Book Is For If you are a student or Java developer or a budding
data scientist who wishes to learn the fundamentals of data
analysis and learn to perform data analysis with Java, this book is
for you. Some familiarity with elementary statistics and relational
databases will be helpful but is not mandatory, to get the most out
of this book. A firm understanding of Java is required. What You
Will Learn * Develop Java programs that analyze data sets of nearly
any size, including text * Implement important machine learning
algorithms such as regression, classification, and clustering *
Interface with and apply standard open source Java libraries and
APIs to analyze and visualize data * Process data from both
relational and non-relational databases and from time-series data *
Employ Java tools to visualize data in various forms * Understand
multimedia data analysis algorithms and implement them in Java. In
Detail Data analysis is a process of inspecting, cleansing,
transforming, and modeling data with the aim of discovering useful
information. Java is one of the most popular languages to perform
your data analysis tasks. This book will help you learn the tools
and techniques in Java to conduct data analysis without any hassle.
After getting a quick overview of what data science is and the
steps involved in the process, you'll learn the statistical data
analysis techniques and implement them using the popular Java APIs
and libraries. Through practical examples, you will also learn the
machine learning concepts such as classification and regression. In
the process, you'll familiarize yourself with tools such as
Rapidminer and WEKA and see how these Java-based tools can be used
effectively for analysis. You will also learn how to analyze text
and other types of multimedia. Learn to work with relational,
NoSQL, and time-series data. This book will also show you how you
can utilize different Java-based libraries to create insightful and
easy to understand plots and graphs. By the end of this book, you
will have a solid understanding of the various data analysis
techniques, and how to implement them using Java. Style and
approach The book takes a very comprehensive approach to enhance
your understanding of data analysis. Sufficient real-world examples
and use cases are included to help you grasp the concepts quickly
and apply them easily in your day-to-day work. Packed with clear,
easy-to-follow examples, this book will turn you into an ace data
analyst in no time.
Tackle the trickiest of problems in Go programming with this
practical guide Key Features Develop applications for different
domains using modern programming techniques Tackle common problems
when it comes to parallelism, concurrency, and reactive programming
in Go Work with ready-to-execute code based on the latest version
of Go Book DescriptionGo (or Golang) is a statically typed
programming language developed at Google. Known for its vast
standard library, it also provides features such as garbage
collection, type safety, dynamic-typing capabilities, and
additional built-in types. This book will serve as a reference
while implementing Go features to build your own applications. This
Go cookbook helps you put into practice the advanced concepts and
libraries that Golang offers. The recipes in the book follow best
practices such as documentation, testing, and vendoring with Go
modules, as well as performing clean abstractions using interfaces.
You'll learn how code works and the common pitfalls to watch out
for. The book covers basic type and error handling, and then moves
on to explore applications, such as websites, command-line tools,
and filesystems, that interact with users. You'll even get to grips
with parallelism, distributed systems, and performance tuning. By
the end of the book, you'll be able to use open source code and
concepts in Go programming to build enterprise-class applications
without any hassle. What you will learn Work with third-party Go
projects and modify them for your use Write Go code using modern
best practices Manage your dependencies with the new Go module
system Solve common problems encountered when dealing with backend
systems or DevOps Explore the Go standard library and its uses
Test, profile, and fine-tune Go applications Who this book is forIf
you're a web developer, programmer, or enterprise developer looking
for quick solutions to common and not-so-common problems in Go
programming, this book is for you. Basic knowledge of the Go
language is assumed.
Explore C# and the .NET Core framework to create applications and
optimize them with ASP.NET Core 2 Key Features Get to grips with
multi-threaded, concurrent, and asynchronous programming in C# and
.NET Core Develop modern, cross-platform applications with .NET
Core 2.0 and C# 7.0 Create efficient web applications with ASP.NET
Core 2. Book DescriptionC# is a widely used programming language,
thanks to its easy learning curve, versatility, and support for
modern paradigms. The language is used to create desktop apps,
background services, web apps, and mobile apps. .NET Core is open
source and compatible with Mac OS and Linux. There is no limit to
what you can achieve with C# and .NET Core. This Learning Path
begins with the basics of C# and object-oriented programming (OOP)
and explores features of C#, such as tuples, pattern matching, and
out variables. You will understand.NET Standard 2.0 class libraries
and ASP.NET Core 2.0, and create professional websites, services,
and applications. You will become familiar with mobile app
development using Xamarin.Forms and learn to develop
high-performing applications by writing optimized code with various
profiling techniques. By the end of C# 7 and .NET: Designing Modern
Cross-platform Applications, you will have all the knowledge
required to build modern, cross-platform apps using C# and .NET.
This Learning Path includes content from the following Packt
products: C# 7.1 and .NET Core 2.0 - Modern Cross-Platform
Development - Third Edition by Mark J. Price C# 7 and .NET Core 2.0
High Performance by Ovais Mehboob Ahmed Khan What you will learn
Explore ASP.NET Core to create professional web applications Master
OOP with C# to increase code reusability and efficiency Protect
your data using encryption and hashing Measure application
performance using BenchmarkDotNet Use design techniques to increase
your application's performance Learn memory management techniques
in .NET Core Understand tools and techniques to monitor application
performance Who this book is forThis Learning Path is designed for
developers who want to gain a solid foundation in C# and .NET Core,
and want to build cross-platform applications. To gain maximum
benefit from this Learning Path, you must have basic knowledge of
C#.
Master the principles to make applications robust, scalable and
responsive About This Book * Implement concurrent applications
using the Java 9 Concurrency API and its new components * Improve
the performance of your applications and process more data at the
same time, taking advantage of all of your resources * Construct
real-world examples related to machine learning, data mining,
natural language processing, and more Who This Book Is For This
book is for competent Java developers who have basic understanding
of concurrency, but knowledge of effective implementation of
concurrent programs or usage of streams for making processes more
efficient is not required What You Will Learn * Master the
principles that every concurrent application must follow * See how
to parallelize a sequential algorithm to obtain better performance
without data inconsistencies and deadlocks * Get the most from the
Java Concurrency API components * Separate the thread management
from the rest of the application with the Executor component *
Execute phased-based tasks in an efficient way with the Phaser
components * Solve problems using a parallelized version of the
divide and conquer paradigm with the Fork / Join framework * Find
out how to use parallel Streams and Reactive Streams * Implement
the "map and reduce" and "map and collect" programming models *
Control the concurrent data structures and synchronization
mechanisms provided by the Java Concurrency API * Implement
efficient solutions for some actual problems such as data mining,
machine learning, and more In Detail Concurrency programming allows
several large tasks to be divided into smaller sub-tasks, which are
further processed as individual tasks that run in parallel. Java 9
includes a comprehensive API with lots of ready-to-use components
for easily implementing powerful concurrency applications, but with
high flexibility so you can adapt these components to your needs.
The book starts with a full description of the design principles of
concurrent applications and explains how to parallelize a
sequential algorithm. You will then be introduced to Threads and
Runnables, which are an integral part of Java 9's concurrency API.
You will see how to use all the components of the Java concurrency
API, from the basics to the most advanced techniques, and will
implement them in powerful real-world concurrency applications. The
book ends with a detailed description of the tools and techniques
you can use to test a concurrent Java application, along with a
brief insight into other concurrency mechanisms in JVM. Style and
approach This is a complete guide that implements real-world
examples of algorithms related to machine learning, data mining,
and natural language processing in client/server environments. All
the examples are explained using a step-by-step approach.
Explore various dependency injection methods in Go such as monkey
patching, constructor injection, and method injection Key Features
Learn to evaluate Code UX and make it better Explore SOLID
principles and understand how they relate to dependency injection
Use Google's wire framework to simplify dependence management Book
DescriptionHands-On Dependency Injection in Go takes you on a
journey, teaching you about refactoring existing code to adopt
dependency injection (DI) using various methods available in Go. Of
the six methods introduced in this book, some are conventional,
such as constructor or method injection, and some unconventional,
such as just-in-time or config injection. Each method is explained
in detail, focusing on their strengths and weaknesses, and is
followed with a step-by-step example of how to apply it. With
plenty of examples, you will learn how to leverage DI to transform
code into something simple and flexible. You will also discover how
to generate and leverage the dependency graph to spot and eliminate
issues. Throughout the book, you will learn to leverage DI in
combination with test stubs and mocks to test otherwise tricky or
impossible scenarios. Hands-On Dependency Injection in Go takes a
pragmatic approach and focuses heavily on the code, user
experience, and how to achieve long-term benefits through
incremental changes. By the end of this book, you will have
produced clean code that's easy to test. What you will learn
Understand the benefits of DI Explore SOLID design principles and
how they relate to Go Analyze various dependency injection patterns
available in Go Leverage DI to produce high-quality, loosely
coupled Go code Refactor existing Go code to adopt DI Discover
tools to improve your code's testability and test coverage Generate
and interpret Go dependency graphs Who this book is forHands-On
Dependency Injection in Go is for programmers with a few year s
experience in any language and a basic understanding of Go. If you
wish to produce clean, loosely coupled code that is inherently
easier to test, this book is for you.
|
|