A few guidelines that I assembled during my career that keep me focused and help me move forward.
- You must have a quick and comfortable dev env that allows you to stay focused
- A solid foundation, that you control all of it’s aspects
- a robust & simple as possible build process both for dev and prod
- full control over your packages & manually update them when needed
- utilize as less 3rd party packages as possible, as they might change with every update, and thus you are in less control.
- don’t necessarily chase the cutting edge – it’s ok to not use the latest alpha release, as it quite often introduces unexpected behaviors.
- build your own global components like dropdowns, buttons, popups, etc. it is usually a one time effort that pays well in the long run.
- Strive for organized & standardized code, with self explaining clear structure that will allow easy onboarding for new and returning devs in your team
- write small & self contained components
- have a clear folder and file structure
- use linters for forcing strict coding conventions
- Customization of components has to be easy, with easy APIs
- for css use SASS, it allows you to easily structure css, use variables for colors and sizes. mixins & extend for repeated css declarations
- use importable config files & ENV variables to easily customize your app without digging in the code
- Always think about performance – it’s too easy to fall into the trap of “I will do it later”. it will be hard to get back to it – plan your performance early
- use image sprites, and always have the source files in hand. optimize your image assets, save for web & utilize various optimization tools
- be aware of the browser limitations like maximum number of simultaneous http connections
- master the browser loading times. what should be loaded in the head, at the bottom of the body, prefetch and lazy loading
- CSS & Design matters. you should never neglect it. eventually it’s the face of the product, and if it’s broken – the user doesn’t care about the fancy complex stuff you craft in the backbone of your app.
- Make sure to test it in variety of the browsers you support
- Make clear style guidelines, and make sure to follow them
- The designer is not always right. talk about quirks you find. usually after you have a solid css structure, your code dictates the small design cues, like consistent paddings & margins, color palettes and more…
- Alway keep learning. technologies change every day, be ahead of it. but also know when to make a pause, not every buzzword is the future.