#!/bin/bash | |
# git-cleanup-repo | |
# | |
# Author: Rob Miller <[email protected]> | |
# Adapted from the original by Yorick Sijsling | |
git checkout master &> /dev/null | |
# Make sure we're working with the most up-to-date version of master. | |
git fetch |
The evolutionary path is: monolithic backend-web-framework-based repo -> multi repos with shared infra -> monorepo contains shared infra
The tool support is becoming matured (Yarn Workspace, VSCode's Multi Root Workspaces)
[monorepo]/
├── universal-js-app project for product A/
│ ├── node_modules/
│ ├── common/
A collection of links to the excellent "Composing Software" series of medium stories by Eric Elliott.
You should have the following completed on your computer before the workshop:
- Install the AWS CLI.
- Have Node.js installed on your system. (Recommended: Use nvm.)
- Install
yarn
withbrew install yarn
.
- Install
- Create an AWS account. (This will require a valid credit card.)
- Create a Travis CI account. (This should be as simple as logging in via GitHub).
I have been working in JavaScript area for over five years, and in those years I have come across various different problems and implemented solutions for them. I have also studied JavaScript extensively and used many of open source libraries. My aim with this gist is to share my knowledge with you. In this gist I will be sharing many different useful resources which I have used and studied over the years.
- Design system
- Front-end libraries
- General purpose libraries
- Back-end libraries
- Unit test cases libraries
(I'm enjoying doing these raw, barely edited writeups; I hope they're useful to you too)
This is my own writeup on feature flags; for a deep dive I'd recommend something like Martin Fowler's article (https://martinfowler.com/articles/feature-toggles.html).
So. Feature flags. The basic idea that you'll store configuration/values on a database/service somewhere, and by changing those values, you can change the user experience/features for a user on the fly.
Let's say that you're building a new feature, called 'new-button' which changes the color of buttons, which is currently red, to blue. Then you'd change code that looks like this -
// One of my new favorite React Hook patternms is to create handler | |
// functions for a custom hook using `React.useMemo` instead of | |
// `React.useCallback`, like so: | |
function useBool(initialState = false) { | |
const [state, setState] = React.useState(initialState) | |
// Instead of individual React.useCallbacks gathered into an object | |
// Let's memoize the whole object. Then, we can destructure the | |
// methods we need in our consuming component. |