Skip to content

EthanEFung/roast-my-go-oodp

Repository files navigation

Roast My Code - Object Oriented Design Patterns - Go

This is a personal project made to fail in public. As primarily a Typescript developer, I have a personal goal of writing elegant Go, as well as understanding the Object Oriented Design Patterns of the famous Gang of Four book.

What better way to gain experience then to write bad code and ask for feedback.

Having heavy influence by the terrific website Refactoring Guru, I've written a series of example mini applications that "demonstrate how to implement" the object oriented design patterns in Go, but they can use some improvements. As I am writing this readme, I don't know what about these design patterns are good, or how they compare to idiomatic Go patterns.

To clarify what I'm looking for is constructive feedback. Please abide by this project's Code of Conduct, and give context and an explanation of your contribution. What makes a joke great is that it's simultaneously true and surprising. Same can be said about your contributions to this discussion. The best code roast is one that has a great argument or point anyone can understand.

How to help (How to roast)

The easiest way to start is to browse the files of the "Roast of the Week" (one of the directories in this project), and find a problem that falls into one of the following categories.

  1. Tell me why an example misrepresents the object oriented pattern.
  2. Tell me why a pattern over complicates something trivial in Go.
  3. Call out the ambiguity of an example.

If you simply have a critique, I would suggest navigating to the issues tab, and creating a new issue. Give me a decent title along side of the your feedback, when I read the issue, I'll be labelling it.

If you have a code improvement, you could also make a pull request. Fork this repository, make your change on your forked copy and submit a pull requests via the pull requests tab.

Bear in mind, the issue or pull request is not limited to the roast of the week. Any directory in this project is fair game to critique.

Thanks for your help!

Roast of the Week

Adapter Pattern

About

Bad Object Oriented Design Pattern Examples in Go

Resources

License

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages