Exploring Great Software Design
With chapters selected by Marco Faella
  • October 2020
  • ISBN 9781617298783
  • 103 pages
What sets great software apart are qualities like speed, security, maintainability, and elegance. Great software is born at the intersection of well-honed programming skills and time-tested, universally accepted techniques and practices. This free mini ebook will lead you there!

About the book

Exploring Great Software Design is a collection of chapters from three Manning books chosen by author, teacher, and expert programmer Marco Faella. First, you'll zoom in on the importance of code readability for easy maintenance and troubleshooting. Next, you'll discover three different styles of unit testing and how to choose the one that will benefit your application the most. Last but not least, you'll learn why, if you want to write truly great software, you need to bake security into your software design from the very beginning. This free—but value-packed!—primer will set you firmly on the path to great software design.
Table of Contents detailed table of contents


Part 1: Coding aloud: Readability

Coding aloud: Readability

7.1 Points of view on readability

7.1.1 Corporate coding style guides

7.1.2 Readability ingredients

7.2 Structural readability features

7.2.1 Control flow statements

7.2.2 Expressions and local variables

7.3 Exterior readability features


7.3.2 Naming things

7.3.3 White space and indentation

7.4 Readable containers [Readable]

7.4.1 Documenting the class header with Javadoc

7.4.2 Cleaning connectTo

7.4.3 Cleaning addWater

7.5 Final thoughts on readability

7.6 And now for something completely different

7.8 Applying what you learned

7.7 Real-world use cases

Part 2: Styles of unit testing

Styles of unit testing

6.1 The three styles of unit testing

6.1.1 Defining the output-based style

6.1.2 Defining the state-based style

6.1.3 Defining the communication-based style

6.2 Comparing the three styles of unit testing

6.2.1 Comparing the styles using the metrics of protection against regressions and feedback speed

6.2.2 Comparing the styles using the metric of resistance to refactoring

6.2.3 Comparing the styles using the metric of maintainability

6.2.4 Comparing the styles: The results

6.3 Understanding functional architecture

6.3.1 What is functional programming?

6.3.2 What is functional architecture?

6.3.3 Comparing functional and hexagonal architectures

6.4 Transitioning to functional architecture and output- based testing

6.4.1 Introducing an audit system

6.4.2 Using mocks to decouple tests from the filesystem

6.4.3 Refactoring toward functional architecture

6.4.4 Looking forward to further developments

6.5 Understanding the drawbacks of functional architecture

6.5.1 Applicability of functional architecture

6.5.2 Performance drawbacks

6.5.3 Increase in the code base size


Part 3: Why design matters for security

Why design matters for security

1.1 Security is a concern, not a feature

1.1.1 The robbery of Öst-Götha Bank, 1854

1.1.2 Security features and concerns

1.1.3 Categorizing security concerns: CIA-T

1.2 Defining design

1.3 The traditional approach to software security and its shortcomings

1.3.1 Explicitly thinking about security

1.3.2 Everyone is a security expert

1.3.3 Knowing all and the unknowable

1.4 Driving security through design

1.4.1 Making the user secure by design

1.4.2 The advantages of the design approach

1.4.3 Staying eclectic

1.5 Dealing with strings, XML, and a billion laughs

1.5.1 Extensible Markup Language (XML)

1.5.2 Internal XML entities in a nutshell

1.5.3 The Billion Laughs attack

1.5.4 Configuring the XML parser

1.5.5 Applying a design mindset

1.5.6 Applying operational constraints

1.5.7 Achieving security in depth


What's inside

  • "Coding aloud: Readability" – Chapter 7 from Seriously Good Software by Marco Faella
  • "Styles of unit testing" – Chapter 6 from Unit Testing Principles, Practices, and Patterns by Vladimir Khorikov
  • "Why design matters for security" – Chapter 1 from Secure by Design by Dan Bergh Johnsson, Daniel Deogun, and Daniel Sawano

About the author

Marco Faella teaches advanced programming at a major Italian university. His published work includes peer-reviewed research articles, a Java certification manual, and a video course. He's also the author of Manning's Seriously Good Software.

placing your order...

Don't refresh or navigate away from the page.
eBook $0.00 PDF only + liveBook
Check your email for instructions on downloading Exploring Great Software Design (eBook) or read it now
continue shopping
go to cart

Prices displayed in rupees will be charged in USD when you check out.
customers also reading

This book

FREE domestic shipping on three or more pBooks