Code Like a Pro
Software Development in Python
Dane Hillard
  • MEAP began January 2019
  • Publication in Fall 2019 (estimated)
  • ISBN 9781617296086
  • 425 pages (estimated)
  • printed in black & white
Professional developers know the many benefits of writing application code that’s clean, well-organized, and easy to maintain. By learning and following established patterns and best practices, you can take your code and your career to a new level. With Code Like a Pro: Software Development in Python, you’ll learn to design professional-level, clean, easily-maintainable software at scale using the incredibly popular programming language, Python. You’ll find easy-to-grok examples that use psuedocode and Python to introduce software development best practices, along with dozens of instantly-useful techniques that will help you code like a pro.
Table of Contents detailed table of contents

Part 1: Why it all matters

1 The bigger picture

1.1 Python is an enterprise language

1.1.1 The times they are a-changin'

1.1.2 What I like about Python

1.2 Python is a teaching language

1.3 Design is a process

1.3.1 The user experience

1.3.2 You’ve been here before

1.4 Design enables better software

1.4.1 Considerations in software design

1.4.2 Organically-grown software

1.5 When to invest in design

1.6 New beginnings

1.7 Design is democratic

1.7.1 Presence of mind

1.8 Summary

Part 2: Foundations of design

2 Separation of concerns

2.1 Namespacing

2.1.1 Namespaces and the import statement

2.1.2 The many masks of importing

2.1.3 Namespaces prevent collisions

2.2 The hierarchy of separation in Python

2.2.1 Functions

2.2.2 Classes

2.2.3 Modules

2.2.4 Packages

2.3 Summary

3 Abstraction and Encapsulation

3.1 What is abstraction?

3.1.1 The "black box"

3.1.2 Abstraction is like an onion

3.1.3 Abstraction is a simplifier

3.1.4 Decomposition enables abstraction

3.2 Encapsulation

3.2.1 Expectations of privacy in Python

3.3 Try it out

3.3.1 Refactoring

3.4 Programming styles are an abstraction, too!

3.4.1 Procedural programming

3.4.2 Functional programming

3.4.3 Declarative programming

3.5 Typing, inheritance, and polymorphism

3.6 Recognizing the wrong abstraction

3.6.1 Square pegs in round holes

3.6.2 Clever gets the cleaver

3.7 Summary

4 Designing for high performance

4.1 Hurtling through time and space

4.1.1 Complexity is a little…​complex

4.1.2 Time complexity

4.1.3 Space complexity

4.2 Performance and data types

4.2.1 Data types for constant time

4.2.2 Data types for linear time

4.2.3 Space complexity of operations on data types

4.3 Make it work, make it right, make it fast

4.3.1 Making it work

4.3.2 Making it right

4.3.3 Making it fast

4.4 Tools

4.4.1 timeit

4.4.2 CPU profiling

4.5 Try it out

4.6 Summary

5 Testing your software

Part 3: Nailing down large systems

6 Revisiting separation of concerns

7 Extensibility and flexibility

8 The rules (and exceptions) of inheritance

9 Keeping things lightweight

10 Achieving loose coupling

Part 3: What’s Next?

11 Circling back

12 Where to go from here

Appendixes

Appendix A: Installing Python

A.1 What version of Python should I use?

A.2 The "system" Python

A.3 Installing other versions of Python

A.4 Verifying the installation

About the Technology

No matter what language you choose, your applications need to be understandable and easily maintainable by yourself and other team members. To hit this mark, you need to follow industry-standard best practices for coding style, application design, and development process. That’s exactly what you’ll learn in Code Like a Pro! The code examples in this book use Python, which is both a great development language and a fantastic teaching tool.

About the book

Code Like a Pro: Software Development in Python teaches you to design and write software that’s easy to understand, maintain, and scale. Using practical Python-based examples, experienced developer Dane Hillard introduces design concepts that lay the foundation for designing, building, and maintaining software that‘s good for the long haul. You’ll learn established guidelines for clean coding style and explore techniques to address design considerations like speed, integrity, security, and extensibility.

As you progress, you’ll delve into application design concepts like isolation, encapsulation, and abstract behaviors. You’ll discover techniques for identifying data and behaviors that should be grouped or isolated, separating data and behaviors effectively, understanding the basics of loose coupling, and refactoring code into independent, focused classes. Helpful examples throughout get you coding as you learn, driving your new skills home. By the end of this straightforward, accessible tutorial, you’ll be writing software like a pro!

What's inside

  • Organizing large Python projects
  • Leveraging abstraction for clean code
  • Writing flexible, reusable code
  • Inheritance and composition
  • Considerations for testing and performance

About the reader

Readers should be familiar with the basics of Python or another OO language like Ruby, Java, or C#.

About the author

Dane Hillard has spent the majority of professional software development career building web applications using Python. He’s passionate about introducing professional software development techniques to the many data scientists, business pros, and other self-taught programmers working with Python.

Manning Early Access Program (MEAP) Read chapters as they are written, get the finished eBook as soon as it’s ready, and receive the pBook long before it's in bookstores.
MEAP combo $49.99 pBook + eBook + liveBook
MEAP eBook $39.99 pdf + ePub + kindle + liveBook

placing your order...

Don't refresh or navigate away from the page.

FREE domestic shipping on three or more pBooks