duyenho / bananas

hosted at

Home Page:https://bananas.gitbook.io/project/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

description
In no particular order...

Resources

Architecture

Stuff

  • The twelve factor app is a methodology used for building software as a service.
  • A great page describing 7 really good rules to follow when writing git commit messages.
  • I use draw.io to draw diagrams to communicate architecture and other things to the team.
  • A great collection of resources turned into handbook for the front-end developer.
  • Read up on the difference between using mock and stub objects for testing. I believe the important difference between the two is that mocks verify behaviours and stubs verify state.
  • Great page on pair programming. Explains the benefits, styles, and research.
  • Technical decisions can be made through an Interested Parties Review (IPR). A document outlining the problem, possible solutions and their pros and cons. Interested parties are pinged and a decision is recorded on the document.
  • There's a good book written by Robert C. Martin on what is clean code. A summary of that book can be found here.
  • A great list of computer science topics to get into your brain. Teach yourself computer science
  • My personal notes on the differences between continuous integration, continuous delivery and continuous deployment.
  • HTTP/1.1 Method definitions - GET, POST, PUT, DELETE, etc. and HTTP/1.1 Status code definitions
  • Do you really know CORS
  • Learn, build & test Regex
  • Grow your technical skills with Google

Distributed systems

Machine learning

Big Data

Apache

React

  • React is a javascript library for building interfaces for single page applications. The React official docs is amazing and a great place to start to learn all things React. They also offer a tutorial that you can follow along with which I highly recommend if you are new to React.
  • Alternatives to learning React are
  • Common things/libraries that we use that you could focus your learning on
    • React lifecycle methods can be quite useful so it's good to know about them
    • For state management use redux. Such good documentation on this library.
    • To connect your redux store with react there's a really simple library called react-redux. This library comes with two api's connect and Provider. I really like this further explanation on react-redux's connect.
    • Forms. Building react forms is easy, but if you want to connect them to your redux store, use redux form.
    • For routing between pages in your app read up on using the react router.
  • Add redux dev tools to your chrome extensions to view react redux state in your browser, which can make testing things easier.
  • We write most of our css code in react using the library styled-components
  • We use create-react-app to speed up the delivery of our single page apps. It creates all the things we need to get started very quickly. It makes a lot of assumptions and hides all the configuration files. This is great for simple client side apps, but not so great if you want server side rendering.
  • Sinon is a great library for testing - when you need stubs/spies/mock/fakes.
  • If your react app was bootstrapped by create-react-app, you'll find it comes with Jest out of the box. Jest is a test runner.
  • Enzyme is a JavaScript Testing utility for React that makes it easier to assert, manipulate, and traverse your React Components' output.

Javascript

  • Top 10 features you should know about ES6
  • Sooner or later you're gonna hit a javascript thing known as a Promise.
  • Babel is a JavaScript transpiler. What that means is that we can take ES6/ES2015 code and make it work on all browsers, even ones that may not support it. Essentially Babel takes the ES6 JavaScript code and compiles it into ES5 code. Although all of the code is transpiled, there are still some things like Promises and new methods that aren't recognised. A polyfill such as babel polyfill will help with that.
  • To make all our javascript code adhere to some styling standards we use eslint. Get it for your IDE.

Docker

Node

  • Node is built well to handle asynchronous JavaScript code to perform many asynchronous activities such as reading and writing to the file system, handling connections to database servers, or handling requests as a web server. We build a lot of our backends-for-frontends (BFFs / Companions) with Node.
  • Here's a good document on what is node.

Package managers

Versioning

  • Making a change to one of our libraries? Learn about semantic versioning
  • A great standard on how to manage a changelog. Probably good to implement on libraries so the team knows what changes they're pulling in.

Testing

Git

What's in the news

Security, Encryption & Cryptography

Other