Over a million developers have joined DZone.
{{announcement.body}}
{{announcement.title}}

Twelve Important Design Patterns

DZone's Guide to

Twelve Important Design Patterns

Designing software for today's world can and should involve numerous well-established patterns. Do you employ them?

· DevOps Zone
Free Resource

The Nexus Suite is uniquely architected for a DevOps native world and creates value early in the development pipeline, provides precise contextual controls at every phase, and accelerates DevOps innovation with automation you can trust. Read how in this ebook.

Read this:  http://12factor.net/

Then. After reading it. Read it again to be sure you've got it. It's dense with best practices. Now that you've read it, make yourself a Quality Engineering checklist.
  1.  I. Codebase: One codebase tracked in revision control, many deploys

  2. Dependencies: Explicitly declare and isolate dependencies

  3. Config: Store config in the environment

  4. Backing services: Treat backing services as attached resources

  5. Build, release, run: Strictly separate build and run stages

  6. Processes: Execute the app as one or more stateless processes

  7. Port binding: Export services via port binding

  8. Concurrency: Scale out via the process model

  9. Disposability: Maximize robustness with fast startup and graceful shutdown

  10. Dev/prod parity: Keep development, staging, and production as similar as possible

  11. Logs: Treat logs as event streams

  12. Admin processes: Run admin/management tasks as one-off processes

If your app doesn't follow all of these patterns, you've got technical debt to work off. Start by posting the debt remediation stories in Jira (or whatever you're using.)

I've got config issues left, right, and center. Numerous assumptions include the URL's for RESTful services on which my RESTful services rely: this is not good.

Some of these things, however, are a done deed in the Python/Flask world with no real thinking required.

  • Build, release, run — done
  • Processes — done
  • Port binding — done
  • Disposability — done

Other things require some care. And the config is something that I've really got to fix.

The DevOps Zone is brought to you in partnership with Sonatype Nexus.  See how the Nexus platform infuses precise open source component intelligence into the DevOps pipeline early, everywhere, and at scale. Read how in this ebook

Topics:
engineering ,checklist ,design patterns ,list

Published at DZone with permission of Steven Lott, DZone MVB. See the original article here.

Opinions expressed by DZone contributors are their own.

THE DZONE NEWSLETTER

Dev Resources & Solutions Straight to Your Inbox

Thanks for subscribing!

Awesome! Check your inbox to verify your email so you can start receiving the latest in tech news and resources.

X

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}