All Projects → ainzzorl → goodcode

ainzzorl / goodcode

Licence: CC-BY-4.0 license
A curated collection of annotated code examples from prominent open-source projects

Programming Languages

HTML
75241 projects
ruby
36898 projects - #4 most used programming language
SCSS
7915 projects

Projects that are alternatives of or similar to goodcode

Go Pattern Examples
Examples of implement for awesome go patterns including usual design patterns, in easy understanding examples.
Stars: ✭ 65 (-64.67%)
Mutual labels:  patterns, examples, best-practices, design-patterns
go-design-pattern
go的设计模式实例
Stars: ✭ 45 (-75.54%)
Mutual labels:  patterns, examples, design-patterns
Sketchup Ruby Api Tutorials
SketchUp Ruby API Tutorials and Examples
Stars: ✭ 105 (-42.93%)
Mutual labels:  snippets, examples, tutorials
Node.js Design Patterns Third Edition
Node.js Design Patterns Third Edition, published by Packt
Stars: ✭ 239 (+29.89%)
Mutual labels:  patterns, examples, design-patterns
Nginx Admins Handbook
How to improve NGINX performance, security, and other important things.
Stars: ✭ 12,463 (+6673.37%)
Mutual labels:  snippets, best-practices
awesome.gl
棒棒哒攻略:Developer's Technical Documents, API References, Code Examples, Quick Starts, Programming minutebooks, and Tutorials. https://awesome.gl
Stars: ✭ 12 (-93.48%)
Mutual labels:  examples, tutorials
notes
My personal tutorials and notes.
Stars: ✭ 34 (-81.52%)
Mutual labels:  patterns, design-patterns
godot-practice-shaders
Some practice shaders in Godot
Stars: ✭ 79 (-57.07%)
Mutual labels:  examples, tutorials
FortranTip
Short instructional Fortran codes associated with Twitter @FortranTip
Stars: ✭ 39 (-78.8%)
Mutual labels:  snippets, tutorials
Java Design Patterns
Design patterns implemented in Java
Stars: ✭ 71,923 (+38988.59%)
Mutual labels:  snippets, design-patterns
design-patterns-cookbook
Design Patterns in simple words with examples on PHP
Stars: ✭ 26 (-85.87%)
Mutual labels:  examples, design-patterns
demos
Demonstrative scripts
Stars: ✭ 37 (-79.89%)
Mutual labels:  snippets, tutorials
java-design-patterns-web
Java Design Patterns website at https://java-design-patterns.com
Stars: ✭ 81 (-55.98%)
Mutual labels:  snippets, design-patterns
code-examples
Short code snippets written by our open source community!
Stars: ✭ 60 (-67.39%)
Mutual labels:  snippets, examples
GeoStatsTutorials
GeoStats.jl tutorials
Stars: ✭ 49 (-73.37%)
Mutual labels:  examples, tutorials
Manual Testing
This repository contains the General Test Cases for performing Manual Testing on the Web/Mobile application. It also has Test cases related to API Testing. Templates related to Test Plan and BugBash are also updated.
Stars: ✭ 134 (-27.17%)
Mutual labels:  examples, tutorials
gof design patterns
GoF Design Patterns implemented in modern C++.
Stars: ✭ 21 (-88.59%)
Mutual labels:  best-practices, design-patterns
haxeunity
Documentation about using Unity (c#) with Haxe
Stars: ✭ 16 (-91.3%)
Mutual labels:  examples, tutorials
Nodejs-Design-Pattern
Resumen de patrones de diseño extraídos de mi lectura del libro "Node.js Design Patterns de Mario Casciaro 1ra edición"
Stars: ✭ 45 (-75.54%)
Mutual labels:  patterns, design-patterns
Go Patterns
Curated list of Go design patterns, recipes and idioms
Stars: ✭ 17,827 (+9588.59%)
Mutual labels:  patterns, design-patterns

Learning from Open Source

When you ask someone how to get better at coding, the second most common response - right after writing more code - is to read other people's code and learn from it.

While it sounds very reasonable, it's hard to implement it in practice. So you find the source for your favorite software on GitHub and start reading it. Firstly, for any established and mature product, the codebase is probably huge, complex and very hard to get started with. It's unlikely that the design is documented anywhere. Even if the high-level architecture is documented, the structure of the codebase almost certainly isn't. It probably depends on some libraries and frameworks you've never heard of. Unfamiliar terms and creative code names are all over the place. Making sense of it can be a challenge even for seasoned professionals. And how do you even start exploring the code? Open a random source file?

It doesn't mean that you should not try to understand good open source projects. You should, and the experience can be very rewarding. Yet, it's not an easy way, and the learning curve will be steep.

Code Catalog offers a more straightforward way to learn from open-source projects by presenting a curated collection of annotated code examples that we find instructive. The examples are:

  • Taken from popular, established open-source projects.
  • Instructive. They solve general problems, similar to what other coders could be facing in their projects. They use patterns that you could apply one day.
  • Mostly self-contained. They can be understood with little knowledge of the surrounding context.
  • Small-ish. One example can be read in one sitting.
  • Non-trivial.
  • Good code! At least in our opinion.

Please note that the annotations are written by people who did not author the code they are describing. The article author's understanding of the code can be incomplete or even completely wrong. Your discretion is advised.

Articles

Read the articles on https://codecatalog.org. The sources are located under _articles.

Also see proposed examples.

FAQ

Who is this project for?

Software practitioners and intermediate+ learners of programming.

The reader is expected to be able to read non-trivial code in the language used by the example. Most examples expect little domain knowledge and provide context necessary to understand them.

What can I learn from this?

  • Style and best practices from prominent open-source projects.
  • Applications of common patterns.
  • Battle-tested solutions to typical problems.

Why so few examples?

You'd be surprised how much time and effort it takes to find examples meeting our criteria, understand and then explain them. If it was easy, this project would add no value.

We are working on adding more. See proposed examples.

Who writes these articles?

The founder of the project, Anton Emelyanov. Future content is expected to be crowd-sourced. Read more about contributing to the project.

We believe that the code speaks for itself, though. Our job is to find interesting examples, provide necessary context and point out certain details.

Why did you choose Example X from Project Y and not something else? It's not nearly the most interesting thing in Project Y.

Because we find that Example X satisfies the criteria above. But there's no reason why there can only be one example from Project Y. Please suggest adding another example.

Contributing

This project cannot succeed without volunteer effort. Your help in improving existing or adding new articles is very welcome. Read the contributing guide for details.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].