Thursday, March 16, 2017

Swift 3 Object-Oriented Programming - Second Edition - New book

Object-oriented programming, also known as OOP, is a required skill in absolutely any modern software developer job. It makes a lot of sense because object-oriented programming allows you to maximize code reuse and minimize maintenance costs. However, learning object-oriented programming is challenging because it includes too many abstract concepts that require real-life examples to be easy to understand. In addition, object-oriented code that doesn’t follow best practices can easily become a maintenance nightmare.

Swift is a multi-paradigm programming language and one of its most important paradigms is OOP. If you want to create great applications and apps for Mac, iPhone, iPad, Apple TV, and Apple Watch (macOS, iOS, tvOS and watchOS operating systems) you need to master OOP in Swift 3. However, Swift 3 is not limited to Apple platforms and you can take advantage of your Swift 3 knowledge to develop applications that target other platforms and use it for server-side code. In addition, as Swift also grabs nice features found in functional programming languages, it is convenient to know how to mix OOP code with functional programming code.

This book will allow you to develop high-quality reusable object-oriented code in Swift 3. You will learn the object-oriented programming principles and how Swift implements them. You will learn how to capture objects from real-world elements and create object-oriented code that represents them. You will understand Swift’s approach towards object-oriented code. You will maximize code reuse and reduce maintenance costs. Your code will be easy to understand and it will work with representations of real-life elements.

Swift 3 Object-Oriented Programming is organized in the following eight chapters:

Chapter 1, Objects from the real-word to the Playground, in this chapter we will learn the principles of object-oriented paradigms. We will understand how real-world objects can become part of fundamental elements in the code. We will translate elements into the different components of the object-oriented paradigm supported in Swift 3: classes, protocols, properties, methods and instances. We will run examples in Xcode 8, the Swift REPL and a Web-based Swift 3 sandbox.

Chapter 2, Structures, Classes and Instances, in this chapter, we will start generating blueprints to create objects. We will learn about an object’s life cycle and we will work with many examples to understand how object initializers and deinitializers work.

Chapter 3, Encapsulation of Data with Properties, in this chapter, we will start organizing data in the blueprints that generate objects. We will understand the different members of a class and how its different members are reflected in members of the instances generated from a class. We will learn the difference between mutable and immutable classes.

Chapter 4, Inheritance, Abstraction and Specialization, in this chapter, we will start creating a hierarchy of blueprints that generate objects. We will take advantage of inheritance and many related features to specialize behavior.

Chapter 5, Contract Programming with Protocols, in this chapter, we will understand how Swift works with protocols in combination with classes. We will declare and combine multiple blueprints to generate a single instance. We will declare protocols with different types of requirements, and then we will create classes that conform to these protocols.

Chapter 6, Maximization of Code Reuse with Generic Code, in this chapter, we will learn how to maximize code reuse by writing code capable of working with objects of different types, that is, instances of classes that conform to specific protocols or whose class hierarchy includes specific superclasses. We will work with protocols and generics.

Chapter 7, Object-Oriented Programming and Functional Programming, in this chapter, we will learn how to refactor existing code to take full advantage of object-oriented code. We will prepare the code for future requirements, reduce maintenance cost, and maximize code reuse. We will also work with many functional programming features included in Swift 3, combined with object-oriented programming.

Chapter 8, Protection and Organization of Code, in this chapter, we will put together all the pieces of the object-oriented puzzle. We will take advantage of extensions to add features to types, classes and protocols to which we don’t have access to the source code. We will make sure that the code exposes only the things that it has to expose and we will learn how everything we learned about object-oriented programming is useful in any kind of apps we might create.

You can read more information about the book by clicking on the book's cover:

 Swift 3 Object-Oriented Programming


Building RESTful Python Web Services with Django, Flask and Tornado - New book

REST (short for Representational State Transfer) is the architectural style that is driving modern Web development and mobile apps. In fact, developing and interacting with RESTful Web Services is a required skill in any modern software development job. Sometimes, you have to interact with an existing API and in other cases, you have to design a RESTful API from scratch and make it work with JSON (short for JavaScript Object Notation).

Python is one of the most popular programming languages. Python 3.5 is the most moden version of Python. It is open source, multiplatform and you can use it to develop any kind of application, from Web sites to extremely complex scientific computing applications. There is always a Python package that makes things easier for you to avoid reinventing the wheel and solve the problems faster. The most important and popular Cloud computing providers make it easy to work with Python and its related Web frameworks. Thus, Python is an ideal choice for developing RESTful Web Services. The book covers all the things you need to know to select the most appropriate Python Web framework and develop a RESTful API from scratch.

You will work with the three most popular Python Web frameworks that make it easy to develop RESTful Web Services or Web APIs: Django, Flask and Tornado. Each Web framework has its advantages and tradeoffs. You will work with examples that represent appropriate cases for each of these Web frameworks, in combination with additional Python packages that will simplify the most common tasks. You will learn to use different tools to test and develop high-quality, consistent and scalable RESTful Web Services. You will alsway take advantage of object-oriented programming, also known as OOP, to maximize code reuse and minimize maintenance costs.
You will always write unit tests and improve test coverage for all of the RESTful Web Services that you will develop throughout the book. You won’t just run the sample code but you will also make sure that you write tests for your RESTful API.

This book will allow you to learn how to take advantage of many packages that will simplify the most common tasks related to RESTful Web Services. You will be able to start creating your own RESTful APIs for any domain in any of the covered Web frameworks in Python 3.5 or greater.

Building RESTful Python Web Services is organized in the following ten chapters:

Chapter 1, Developing RESTful APIs with Django
Chapter 2, Working with class based views and hyperlinked APIs in Django
Chapter 3, Improving and adding authentication to an API with Django
Chapter 4, Throttling, Filtering, Testing and Deploying an API with Django
Chapter 5, Developing RESTful APIs with Flask
Chapter 6, Working with Models, SQLAlchemy, and Hyperlinked APIs in Flask
Chapter 7, Improving and Adding Authentication to an API with Flask
Chapter 8, Testing and Deploying an API with Flask
Chapter 9, Developing RESTful APIs with Tornado
Chapter 10, Working with Asynchronous Code, Testing and Deploying an API with Tornado

You can read more information about the book by clicking on the book's cover:

Building RESTful Python Web APIs