"Any fool can write code that a computer can understand. Good programmers write code that humans can understand." — Martin Fowler
Well, you just arrived in a company to work with Elixir, but wait, there are a lot of resources needed, behind coding! And the most important of all, is to learn to code for your team. People will need to read your code, typing is essential to leave your brain CPU resources focus on coding, instead of hunting letters, code-style, architecture, HTTP, git, linux, and much more.
But the most important issue: you take some vacations, and your co-workers will open and read/mantain your code... oho... what happens now ? can they understand something ? can they compile ? can they change some part of the code with safety, or they become afraid of touching it ? It's all about coding for others, and once you understand that well, for sure your approach in coding will be the correct one, and your code will be a real aggregated value for your company.
An excelent reference for Elixir is in Elixir School. I added in this repo a lot of info on how to write code for you team, enjoy.
- introduction - some theory to start
- why-elixir - good reasons to adopt
- working-in-a-team - what is the approach on learning how to code for people
- functional-programming - introduction and basic principles for functional programming
- quick-reference - amazing quick reference.
- specs - type specifications for your functions.
- error-handling - many good strategies
- with - pipelines using {:ok, res} and {:error, message} pattern matchings
- pipes - many options on how to use them
- debugging - local and remote debugging techniques
- monitoring - metrics collection, application monitoring, tracing and profiling, and exception monitoring.
- documentation - writing documentation
- pattern-matching - big advantages !
- TODO: boilerplate - essential dependencies: ex_doc, dialyzer, sentry, docker, etc...
- TODO: http://www.jeramysingleton.com/phoenix-templates-are-just-functions/
- conn - http data structure
- controllers - design patterns in controllers
- plug - building components to http calls
- multi - multi with examples on cross
- migrations - migrations cheat sheet
- git - code repository to share code with a team
- overview - it's all is about communication
- postgres - Tutorials, tips, etc...
- typing - finger positions and links
- http - hyper text transfer protocol introduction
- curl - making http requests from the command line
- rest - basic and advanced concepts on building a REST API
- TODO: docker - building containers
- TODO: kubernetes - sending your app to the cloud
- calc - simple calculations, using a datastructure to store every step
- ninety-nine - different solutions for the 99-functional-problems