-
-
Notifications
You must be signed in to change notification settings - Fork 27k
01. How to contribute
Narendra Pathai edited this page Mar 21, 2016
·
63 revisions
To work on a new pattern you need to do the following steps:
- If there is no issue for the new pattern yet, raise new issue. Comment on the issue that you are working on it so that others don't start work on the same thing.
- Fork the repository.
- Create a new folder for the pattern. The rough structure of the new folder would be as follows:
-
etc
(every resource related to the pattern, like diagrams) -
src
(the source code of the pattern) -
index.md
(the description of the pattern) -
pom.xml
(the Maven project file)
-
- Implement the code changes in your fork. Remember to add sufficient comments documenting the implementation. Reference the issue id e.g. #52 in your commit messages.
- Format the code according to Google Java Style Guide
- Eclipse configuration
- IntelliJ configuration
- The build fails if the code is not properly formatted (see coding conventions)
- The build also fails if static analysis finds violations
- Create a simple class diagram from your example code using ObjectAid UML Explorer for Eclipse and put it inside the
etc
folder. - Add description of the pattern in
index.md
and link to the class diagram. (Attention, all internal links must be relative to the pattern subdirectory, otherwise the links don't link properly on the website) - Create a pull request.
Structure of the index.md
file
--- # this is so called 'Yaml Front Matter', read up on it here: http://jekyllrb.com/docs/frontmatter/
layout: pattern # layout must allways be pattern
title: Best Pattern Ever # the properly formatted title
folder: best-pattern-ever # the folder name in which this pattern lies
permalink: /patterns/best-pattern-ever/ # the permalink to the pattern, to keep this uniform please stick to /patterns/FOLDER/
# both categories and tags are Yaml Lists
# you can either just pick one or write a list with '-'s
# usable categories and tags are listed here: https://github.com/iluwatar/java-design-patterns/blob/gh-pages/_config.yml
categories: creational # categories of the pattern
tags: # tags of the pattern
- best
- ever
- awesome
---
## Intent
Makes your code awesome

## Applicability
Use the Best Pattern Ever pattern when
* you want to be the best
* you need to ...
## Real world examples
* [Nowhere](http://no.where.com)
To add a new category or tag you need to edit the _data/categories.yml
or _data/tags.yml
file of the gh-pages
branch.
In there you should find a yaml list that can be extended.
To work on one of the non-pattern issues you need to do the following steps:
- Check that the issue has
help wanted
badge - Comment on the issue that you are working on it
- Fork the repository.
- Implement the code changes in your fork. Remember to add sufficient comments documenting the implementation. Reference the issue id e.g. #52 in your commit messages.
- Create a pull request.
For inspiration check out the following sources:
- there is a good list of design patterns at Wikipedia
- Martin Fowler's Catalog of Patterns of Enterprise Application Architecture
- pattern language for microservices
- Microsoft's Cloud Design Patterns
Links to patterns applied in real world applications are welcome. The links
should be added to the corresponding section of the index.md
.
To create a new blog entry you should follow the following steps:
- Check that the topic you want to write about isnt allready covered by a previous blogpost
- Fork the repository.
- Create a markup file file in the /_posts/ folder of the gh-pages branch
- Name it in the following convention: YEAR-MONTH-DAY-title.MARKUP
Where YEAR is a four-digit number, MONTH and DAY are both two-digit numbers, and MARKUP is the file extension representing the format used in the file. (Examples are below) - Write your blogpost (Structure is explained below)
- Create a pull request.
Examples of valid post filenames:
2011-12-31-new-years-eve-is-awesome.md
2012-09-12-how-to-write-a-blog.textile
Structure of a blogpost:
--- # this is so called 'Yaml Front Matter', read up on it here: http://jekyllrb.com/docs/frontmatter/
layout: post # layout must allways be post
title: Best Pattern Ever # the properly formatted title
author: shortname # the authors shortname from the /_data/people.yml See older blogposts for reference
excerpt_separator: <!--more--> # optional, if you want to customize what is shown as an excerpt. Read up on it here: http://jekyllrb.com/docs/posts/#post-excerpts
---
Bla Bla Bla # the content of your blogpost
More info on writing a blogpost can be found on the official website