Patternite Logo

About Patternite

Wikipedia defines a design pattern as a "general, reuasble solution to a commonly occurring problem in software design", and we use the same definition here. Broadly, Patternite is a unified resource for crowd-sourced software design patterns. A succinct overview of what Patternite is, and importantly, what it isn't, can be seen below.

What Patternite is

  • A resource to find design patterns that solve common problems in software development
  • A tool to write up these patterns, and get feedback from the Patternite community
  • A place to give writers feedback about their patterns

What Patternite is not

  • A question and answer site
  • A place for long-form blogging
  • A place for opinion pieces about software development or otherwise
  • A scratchpad for rough or untested ideas

Contributing patterns

We welcome contributions from anyone, whether you're an engineer, student, hobbyist or otherwise, and irrespective of your level of experience - we just ask that you familiarize yourself with the following section before contributing. Any suggestions on improving the contribution workflow are welcomed, and you can reach us through the

contact page

.

Key things to keep in mind

  • Application is critical - patterns should solve problems, not exist for their own sake
  • Patterns which solve specific problems are best, but more general patterns are fine too
  • Patterns should be stripped down to only the necessary code, and remain focused on solving the problem

More in-depth guidelines for writing each section of the pattern are found below.

Title


  • The title should always specify the problem being solved. For example, "Using Python decorators" is a bad title, whereas "Timing functions using Python decorators" is far more informative.
  • Keep the title on the shorter side, if possible

Short description


  • The short description is a one to two sentence summary of the pattern and how it relates to the problem
  • Mention the major frameworks/libraries/packages used in the pattern, if applicable

Pattern


  • The code for the design pattern goes here
  • Use comments as necessary, but try to make the pattern as simple, stripped down, and self-explanatory as possible
  • If you want to include anti-patterns to demonstrate how your pattern compares, put the anti-patterns after your pattern, not before

Long description


  • The long description is a place to provide more detailed explanations of the design pattern
  • You can provide brief background information on the problem and the techniques used in your pattern to solve the problem
  • You can reference line numbers in the pattern code by putting a # before the line number (i.e. line 4 can be referenced as #4). In the future, we will add a line tagging feature which uses this syntax.
  • Links to resources (such as documentation, blog posts, etc.) for further reading go here

Patternite © 2021

Patternite Logo