Sustainable Software Development Patterns and Best Practices with C++ 17
Write maintainable, extensible, and durable software with modern C++. This book is a must for every developer, software architect, or team leader who is interested in good C++ code, and thus also wants to save development costs. If you want to teach yourself about writing clean C++, Clean C++ is exactly more » what you need. It is written to help C++ developers of all skill levels and shows by example how to write understandable, flexible, maintainable, and efficient C++ code. Even if you are a seasoned C++ developer, there are nuggets and data points in this book that you will find useful in your work.
If you don't take care with your code, you can produce a large, messy, and unmaintainable beast in any programming language. However, C++ projects in particular are prone to be messy and tend to slip into bad habits. Lots of C++ code that is written today looks as if it was written in the 1980s.
It seems that C++ developers have been forgotten by those who preach Software Craftsmanship and Clean Code principles. The Web is full of bad, but apparently very fast and highly optimized C++ code examples, with cruel syntax that completely ignores elementary principles of good design and well-written code. This book will explain how to avoid this scenario and how to get the most out of your C++ code. You'll find your coding becomes more efficient and, importantly, more fun.
What You'll Learn
* Gain sound principles and rules for clean coding in C++
* Carry out test driven development (TDD)
* Discover C++ design patterns and idioms
* Apply these design patterns
Who This Book Is For
Any C++ developer and software engineer with an interest in producing better code. « less
* Focus on coding with the new, improved, and powerful tools of VS 2017
* Master improved debugging and unit testing support capabilities
* Accelerate cloud development with the built-in Azure tools
Visual Studio 2017 is the all-new IDE released by Microsoft for developers, more » targeting Microsoft and other platforms to build stunning Windows and web apps. Learning how to effectively use this technology can enhance your productivity while simplifying your most common tasks, allowing you more time to focus on your project. With this book, you will learn not only what VS2017 offers, but also what it takes to put it to work for your projects.
Visual Studio 2017 is packed with improvements that increase productivity, and this book will get you started with the new features introduced in Visual Studio 2017 IDE and C# 7.0. Next, you will learn to use XAML tools to build classic WPF apps, and UWP tools to build apps targeting Windows 10. Later, you will learn about .NET Core and then explore NuGet, the package manager for the Microsoft development platform. Then, you will familiarize yourself with the debugging and live unit testing techniques that comes with the IDE. Finally, you'll adapt Microsoft's implementation of cloud computing with Azure, and the Visual Studio integration with Source Control repositories.
WHAT YOU WILL LEARN
* Learn what's new in the Visual Studio 2017 IDE, C# 7.0, and how it will help developers to improve their productivity
* Learn the workloads and components of the new installation wizard and how to use the online and offline installer
* Build stunning Windows apps using Windows Presentation Foundation (WPF) and Universal Windows Platform (UWP) tools
* Get familiar with .NET Core and learn how to build apps targeting this new framework
* Explore everything about NuGet packages
* Debug and test your applications using Visual Studio 2017
* Accelerate cloud development with Microsoft Azure
* Integrate Visual Studio with most popular source control repositories, such as TFS and GitHub
ABOUT THE AUTHOR
Kunal Chowdhury has been a Microsoft MVP (Most Valuable Professional) since 2010, starting with Silverlight to Windows app development. He is also a renowned public speaker, active blogger (by passion), and a software engineer (senior/technical lead) by profession. Over the years, he has acquired profound knowledge on various Microsoft products and helped developers throughout the world with his deep knowledge and experience.
As a technical buff, Kunal has in-depth knowledge of OOPs, C#, XAML, .NET, WPF, UWP, Visual Studio, Windows 10 and Microsoft Azure. He is also proficient in entire Software Development Life Cycle (SDLC) and Scrum methodology. He has written many articles, tips & tricks on his technical blog (kunal-chowdhury) for developers and consumers.
You can contact Kunal via email at email@example.com. You can also follow him on Twitter at @kunal2383 and become a part of his major fans on social media channels for the updates that he shares over there.
TABLE OF CONTENTS
1. What’s new in Visual Studio 2017 IDE?
2. What's new in C# 7.0?
3. Building applications for Windows using XAML Tools
4. Building applications for Windows 10 using UWP Tools
5. Building application with .NET Core
6. Managing NuGet packages
7. Debugging applications with Visual Studio 2017
8. Testing applications with Visual Studio 2017
9. Accelerate cloud development with Windows Azure
10. Working with source controls « less
Application Development Strategies for Performance Optimization, Concurrency, Testability, and Code Brevity
Bring the power of functional programming to your PHP applications. From performance optimizations to concurrency, improved testability to code brevity, functional programming has a host of benefits when compared to traditional imperative programming.
Part one of Pro Functional PHP Programming takes more » you through the basics of functional programming, outlining the key concepts and how they translate into standard PHP functions and code. Part two takes this theory and shows you the strategies for implementing it to solve real problems in your new or existing PHP applications.
Functional programming is popular in languages such as Lisp, Scheme and Clojure, but PHP also contains all you need to write functional code. This book will show you how to take advantage of functional programming in your own projects, utilizing the PHP programming language that you already know.
What You'll Learn
* Discover functional programming in PHP
* Work with functional programming functions
* Design strategies for high-performance applications
* Manage business logic with functions
* Use functional programming in object-oriented and procedural applications
* Employ helper libraries in your application
* Process big data with functional PHP
Who This Book Is For
Programmers and web developers with experience of PHP who are looking to get more out of their PHP coding and be able to do more with PHP. « less
* Children can express their creativity while learning through interactive Swift Playgrounds
* Empower children to think critically about problems
* Learning programming basics can help children gain confidence in problem solving
* Help children put their imagination into action building more » their first iOS app
This book starts at the beginning by introducing programming through easy to use examples with the Swift Playgrounds app. Kids are regularly encouraged to explore and play with new concepts to support knowledge acquisition and retention – these newly learned skills can then be used to express their own unique ideas. Children will be shown how to create their first iOS application and build their very own movie night application.
WHAT YOU WILL LEARN
* Basic programming and coding fundamentals
* Write code using the fun and interactive Swift Playgrounds app
* Make animations, including creating your own starry night
* Utilise functions by making pizza in code
* Create an interactive toy bin
* Learn how to use control flow statements to further enhance your toy bin
* Build a simple movie night app working with tableviews and arrays
ABOUT THE AUTHOR
Since Swift was announced at WWDC, Steffen D. Sommer has had a passionate interest in the programming language. He's currently working as a lead Vapor developer at a company called Nodes in Copenhagen, where he focuses on developing backend systems using Swift.
In his spare time, he helps organize the local iOS meet up, visits iOS conferences around the world, and explores the different aspects of and use cases for Swift, such as putting Swift on the server and doing functional programming in Swift. You can also find him contributing to open source projects on GitHub or blogging on his personal website.
Jim Campagno is an iOS developer and teacher living in New York City. He's currently working as an iOS instructor at the Flatiron School, helping beginners of Swift and iOS become iOS developers.
Jim has a deep desire and high level of creativity that he brings to teaching. He created the Swift online course offered at Flatiron School, which includes in-depth readings along with test-driven labs, challenging the student to write code in Swift. Jim also runs an active YouTube channel, putting out in-depth content and helping students understand everything in iOS and Swift—from the basics to complex topics.
Most importantly, Jim ensures that the content he creates is accessible, fun, and interactive. He enjoys putting together a story behind every topic to make it more enjoyable for the reader.
TABLE OF CONTENTS
1. What is Programming?
2. Getting Set Up
3. Say Hello
4. Favorite Things
6. Making Pizza
7. Toy Bin
8. Smarter Toy Bin
9. Making Some Friends
10. Pokemon Battle
11. Simon Says
12. Starry Night
13. Space Pizza Delivery
14. Movie Night - iOS App « less
WANT TO LEARN JAVA?
Then,Murach's Beginning Java with Eclipse is for you! Its goal is to ease the steep learning curve and it uses the Eclipse IDE to make you productive as quickly as possible. In fact, you'll grow from beginner to entry-level professional!
* Section 1 guides you through more » the core concepts and coding you need to create simple object-oriented applications. By the end of this section, you'll be using Eclipse to code, test, and debug 3-tier Java applications that use classes from the java SE 8 API as well as your own classes.
* Then, sections 2, 3, and 4 let you build out your core Java and OOP skills. Here, you'll find chapters that expand on skills that were presented in section 1 or that teach you new skills. That includes working with features that are new in Java 8, like lambda expressions and the new date/time API.
* At that point, you'll have all the Java prerequisites you need to start learning web or Android programming. Or, you can go on to section 5 to start developing desktop applications for business with a Swing interface and a MySQL database.
Along the way, the sample applications will show you how to apply your skills in the real world. And the chapter exercises will give you valuable hands-on experience programming (the solutions to these exercises are posted at our website, so you can check your work). « less
A pragmatic guide for developing your own games with Python
ABOUT THIS BOOK
* Strengthen your fundamentals of game programming with Python language
* Seven hands-on games to create 2D and 3D games rapidly from scratch
* Illustrative guide to explore the different GUI libraries for building your games
WHO THIS BOOK IS FOR
If you have ever wanted to create more » casual games in Python and you would like to explore various GUI technologies that this language offers, this is the book for you. This title is intended for beginners to Python with little or no knowledge of game development, and it covers step by step how to build seven different games, from the well-known Space Invaders to a classical 3D platformer.
WHAT YOU WILL LEARN
* Take advantage of Python's clean syntax to build games quickly
* Discover distinct frameworks for developing graphical applications
* Implement non-player characters (NPCs) with autonomous and seemingly intelligent behaviors
* Design and code some popular games like Pong and tower defense
* Compose maps and levels for your sprite-based games in an easy manner
* Modularize and apply object-oriented principles during the design of your games
* Exploit libraries like Chimpunk2D, cocos2d, and Tkinter
* Create natural user interfaces (NUIs), using a camera and computer vision algorithms to interpret the player's real-world actions
With a growing interest in learning to program, game development is an appealing topic for getting started with coding. From geometry to basic Artificial Intelligence algorithms, there are plenty of concepts that can be applied in almost every game. Python is a widely used general-purpose, high-level programming language. It provides constructs intended to enable clear programs on both a small and large scale. It is the third most popular language whose grammatical syntax is not predominantly based on C. Python is also very easy to code and is also highly flexible, which is exactly what is required for game development. The user-friendliness of this language allows beginners to code games without too much effort or training. Python also works with very little code and in most cases uses the “use cases” approach, reserving lengthy explicit coding for outliers and exceptions, making game development an achievable feat.
Python Game Programming by Example enables readers to develop cool and popular games in Python without having in-depth programming knowledge of Python. The book includes seven hands-on projects developed with several well-known Python packages, as well as a comprehensive explanation about the theory and design of each game.
It will teach readers about the techniques of game design and coding of some popular games like Pong and tower defense. Thereafter, it will allow readers to add levels of complexities to make the games more fun and realistic using 3D.
At the end of the book, you will have added several GUI libraries like Chimpunk2D, cocos2d, and Tkinter in your tool belt, as well as a handful of recipes and algorithms for developing games with Python.
STYLE AND APPROACH
This book is an example-based guide that will teach you to build games using Python. This book follows a step-by-step approach as it is aimed at beginners who would like to get started with basic game development. By the end of this book you will be competent game developers with good knowledge of programming in Python. « less
Build engaging interactive applications, games, and simulations using Java and Greenfoot
ABOUT THIS BOOK
* Apply a wide variety of game design and programming animation techniques to create immersive interactive applications that use state-of-the-art controllers and input devices
* Quickly learn key concepts in animation, physics, and artificial intelligence to jump-start your journey more » into creative computing
* Gain a deep understanding of interactive development by working systematically from concept to design with several engaging example applications
WHO THIS BOOK IS FOR
This book is for coding students and Java programmers of all levels interested in building engaging, interactive applications with Greenfoot. Familiarity with the very basics of Greenfoot is assumed.
WHAT YOU WILL LEARN
* Use various methods of animation to breathe life into all aspects of a game or simulation
* Evaluate the different methods of collision detection and choose the right method for the task at hand
* Design and implement scrolling and mapped environments
* Incorporate simple techniques to give the illusion of intelligence to actors in Greenfoot scenarios
* Create user-friendly and intuitive user interfaces
* Heighten the user's experience by providing gamepad support for your Greenfoot scenarios
The worlds of computers and art are merging in new and complex ways. Greenfoot is designed to ease the transition into this immerging field, allowing for the easy development of two-dimensional graphical applications, such as simulations and interactive games.
This book provides you with the knowledge and processes necessary to create engaging interactive applications in Greenfoot. It systematically covers essential technologies and algorithms used in creative programming, such as collision detection, easing, and particle effects. You will not only learn to use best practices, but also learn about how these practices were developed and how to augment them to suit your individual needs. After learning the ins and outs of designing and implementing interactive applications, you will see how to interface gamepad controllers to provide an unparalleled immersive experience.
The book will take you through the advanced, creative, and engaging functions of Greenfoot while teaching object-orientated Java. « less
Build a game in one crazy weekend and survive to tell the tale!
* Enthusiastic and light-hearted, glimpse the excitement and frantic creativity of game jams.
* Motivating, encouraging and infectious, it is sure to help you reach the finish line.
* Follow this handbook from brainstorming an idea, over bitter obstacles and on to the sweet finish line: a complete, more » playable, fun game.
* Each stage of game jams is described with task lists and anecdotes relating common experiences, the trials and the tribulations of past game jam champions and losers.
* Packed with interviews, tips, tricks and wise words from Ludum Dare and Global Game Jam organisers among other well-known game jammers.
Game jams are fun. They are a creative, exciting, social experience. The goal of a game jam is to design a video game, either alone or in teams, as fast as is humanly possible; usually in a single weekend.
The Game Jam Survival Guide, written to help you have more fun and achieve greater results at your next game jam by building a successful game without burning out, leads readers through each 12-hour phase of a 48-hour weekend game jam.
Weekend warriors: dominate your next game jam! If you follow the system shared in this book, you will be able to build an amazing game that you're proud of and will entertain players, all in just one crazy 48-hour game jam weekend … and survive to tell the tale!.
Embrace the best practices and techniques of past game jam winners and avoid common pitfalls along the way to the finish line. You too can survive a 48-hour game development marathon with your mind intact and an amazing game to show off to friends and family!
With The Game Jam Survival Guide you will learn the secret techniques that master game jammers use to create winning entries. It starts by showing you great ways to brainstorm and design a game based on a theme. It then moves on to highlight the best tools and techniques to finish a game in a weekend of coding. Anecdotes and advice from past winners and losers combined with humorous words of encouragement are sure to help you on your way. The author presents a list of game jams around the world, online communities worth checking out, fantastic game engines, and art resources. Finally, learn how to monetize your game by gaining sponsorship from big gaming websites. It's the fun way to make your own video game in one weekend!
What you will learn from this book
* Preparing for the jam: conquer the theme, pick design aids, prototype quickly, choose the right tools for the job, and cut the right corners.
* Bombastic brainstorming: power up your idea generator and run with a theme, gain more votes and please the masses.
* Building a game jam entry: pick your weapons, follow your plan, cut the bells-n-whistles, scramble over "the wall", submit a game on time, and with a little luck, attain fame and fortune.
* Why Mike "PoV" Kasprzak (Ludum Dare administrator) thinks game jams are a good introduction to the realities of the game industry.
* The reasons why Dr. Mike Reddy (organizer of the Global Game Jam) thinks designing on paper is essential.
* The best ways to find creative inspiration and develop an idea to fit a theme according to Eric McQuiggan (founding member of The Dirty Rectangles) and Chevy Ray Johnston (author of the FlashPunk engine).
* What Foaad Khosmood (director of the Global Game Jam) suggests you do to ensure you finish before the deadline.
* The worst way to prepare according to Pekka "pekuja" Kujansuu and the best way according to Phil Hassey (Ludum Dare administrators)
* What one piece of advice Jason P. Kaplan (founder of the Game Prototype Challenge) would give to newcomers.
The Game Jam Survival Guide is an insider view of game jams packed full of expert advice; leading with tips and tricks on how to build a great game with just 48 hours; but clearly defining what should be avoided at all costs during Game Jam mayhem. The reader is led through each half-day phase; from the beginning of your quest in hours 1-12 to breaking through "the wall" on day two and finally reaching the finishing line in hours 37-48.
Who this book is written for
Although the book is intended for beginners and experts alike, the reader will already know how to program (in any language). He or she will love games and want to learn how to best make their own game in a wild and crazy 48-hour period. « less