Skip to content

Technology choices

Translations/copy

Localize
– exports to multiple file formats (csv, json, …)
– does not allow nested translations
Weblate
Webgebaseerde voortdurende vertaling

i18n (React-intl vs React-intl-universal vs LinguiJS vs i18next)(redct-i18n-best-libraries)

CSS

jss vs styled components css libraries compared
– material ui library also uses it
– can exist next to basic css

Code quality

Static typing (flow) vs dynamic typing
– types are known at compile time (before the program runs)
– errors that will be identified very early
– no explicit type coercion

import vs require
– asynchronous
– es6
– selective loading

React

useReducer vs Redux
– Use useState for basic and simple/small size applications.
– Use useState + useReducer + useContext for advanced/medium size applications.
– Use useState/useReducer + Redux for complex/large size applications.
cfr Redux-vs-useReducer

{…state} vs Immutable vs normalizr
– normalizr and immutable demand atypical js/redux behavior
– …state is easy to implement and gives a lot of freedom . Only careful with nested object where each nested object needs to be copied separately. Try to keep a flat store so that only the lowest bottom components need to rerender on a nested change.

Stateless components vs Pure Components

– Pure Components gives a considerable increase in performance because it reduces the number of render operation. When to use
– when needing the lifecycle methods of Component
– when needing state
– Stateless Components are easy and fast to implement. They are good for very small UI view where re-render cost won’t matter that much. They provide cleaner code and less number of files to deal with.

Node

Express vs Koa, Hapi, Connect, Http
– Express is based on Connect which is based on http but better
– Koa en Hapi are base on express
– Express allows web sockets, streaming, declarative routing (regex , patterns ,..) , …
– Express has good documentation, has a lot of documentation
– Express is great for testing, …
– Express is database agnostic

Hot reloading vs nodemon
– Both reload when changes are applied to the code
– Hot reloading keeps state, while nodemon erases it

Databases

MongoDb vs Mysql
– Mongodb is document-based , while Mysql is made of tabels
– Mongodb has no fixed architecture, while Mysql needs to define the data types in advance
– Mongodb is better to grow/expand when the data is complex or not yet know in advance

Pretender
– A mock server library with a nice routing DSL
Packagephobia
– calculates the size of a npm package

IDE

Visual studio code vs Webstorm
– VSC is open source, free and has many plugins while Webstorm is expensive

Testing

Ranorex,
jest, Enzyme,
Puppeteer: Headless Chrome
Playwright: end to end testing
Nightmare.js

Metrics

Kibana,

Prometheus

Setup

Docker, Tilt, Ranker, Rancher Desktop,

Minikube: local kubernetes setup

Published inJSReactUncategorized

Be First to Comment

Leave a Reply

Your email address will not be published. Required fields are marked *