Skip to content

Latest commit

 

History

History
296 lines (178 loc) · 15.1 KB

Frontend Developer.md

File metadata and controls

296 lines (178 loc) · 15.1 KB

Frontend Developer

Company practices

Security

Keeper Security

  • You know how to share secret values with other employees. 📚

Onetimesecret

  • You know how to share secret values externally 📚

Git

  • You create pull requests with proper name and description 📚
  • You squash merge your pull requests 📚
  • You review PRs carefully and leave your comments 📚
  • You know how to configure rules in a repository for merging to specific branches (master, develop)
  • You interact with a repository using SSH 📚
  • You name your commits properly 📚

BitBucket

  • You know how to reference a Jira ticket in your commit

React

React is an open-source JavaScript library for building user interfaces. It is maintained by Facebook and a community of individual developers and companies. React can be used as a base in the development of single-page or mobile applications.

  • You know how to write a function component. 📚
  • You know the difference between function and class components. 📚
  • You know how to define and modify local component's state. 📚
  • You know what Virtual DOM is and how React uses it to render components. 📚
  • You know how to use element events and how incorporate them in React lifecycle 📚

Hooks

  • You can use useState and useEffect hooks. 📚
  • You know how hook dependency array works. 📚

Application state management

Redux

  • You can describe full Redux flow 📚
  • You know how to define a new Redux module (Reducer, Saga, Selector) 📚

react-redux

  • You know how to apply selector functions to useSelector hook. 📚
  • You know how to dispatch actions from React component. 📚

Redux toolset

redux-toolkit
  • You know how to create a reducer. 📚
  • You know how to create an action creator 📚

Immutable data structures

  • You understand benefits of using immutable data structures in Redux applications 📚
  • You know how to use at least one of the libraries that provide immutable data structures in redux state 📚

immer

  • You know how to create a reducer that uses immer 📚

Selectors

reselect

  • You know how to create a selector with createSelector function 📚

Side effects

  • You understand the concept of side effects 📚

redux-saga

  • You know how to take a side effect and dispatch an action based on it 📚
  • You know how to select data from Redux state using selector functions inside sagas. 📚

Styling

CSS

  • You know how to write CSS rules 📚
  • You know how to apply basic styles to elements (colour, size, position, etc)
  • You know how to display and properly scale images 📚
  • You know how to center an element horizontally and vertically 📚
  • You know how to use media queries
  • You know how to add and use webfonts 📚

CSS in JS

styled-components
  • You can apply global styles 📚
  • You can create a styled component for a primitive element 📚
  • You can extend styles of an existing component 📚
  • You can implement media queries 📚

Flexbox

You can learn how to style HTML elements with flexbox by reading this awesome guide https://css-tricks.com/snippets/css/a-guide-to-flexbox/

  • You know how to use column and row layouts 📚
  • You know how to align children elements 📚
  • You know how to stretch child element to the size of its parent 📚
  • You can properly use flex-basis and flex-wrap 📚

UI Kits

  • You understand basics of at least one of the UI Kit libraries 📚

Date & Time

  • You know how to create a Date object for a specific date 📚

date-fns

  • You know how to create a date-fns date object for specific date 📚
  • You know how to format and display a date object using standard format strings 📚

Routing

react-router

  • You can create a simple route structure using Switch and Route 📚
  • You know how to add parameters to a route, and make them required or optional 📚
  • You know how to match exactly the route needed 📚
  • You know how to render 404 pages 📚
  • You know how to interact with browser history via the history API 📚
  • You know how to use basic router hooks (useHistory, useLocation, useParams, useRouteMatch) 📚

react-router-dom

  • You know how to use basic components - Link, NavLink 📚

Animations

CSS Animations

  • You know how write CSS animations - transitions, keyframes 📚

Internationalization

react-Intl

  • You know and use React-intl components 📚
  • You know how to create messages files using defineMessage api 📚

Development Tools

Build tools

Webpack

  • You understand how webpack works 📚
  • You understand what webpack plugins are and you can add and configure when needed 📚

Package managers

Yarn

  • You're able to use inline commands to add, install & remove packages 📚
  • You understand the benefits of yarn.lock file 📚
  • You know how to run package.json scripts 📚

NPM

  • You're able to use inline commands to add, install & remove packages 📚
  • You understand the benefits of package-lock.json file 📚
  • You know how to run package.json scripts 📚

Generators

create-react-app

  • You can generate a new app using create-react-app cli 📚

plop.js

  • You can create components using plop command line tool 📚

React

prop-types

  • You know how to describe component's prop types

redux-devtools

  • You use redux-devtools to see the current state and play with the state change history 📚

Linters

eslint

  • You can run eslint and fix the warnings and errors 📚

prettier

  • You can run prettier and auto-correct errors 📚

Functional programming

  • You know the key concepts of functional programming: pure functions, same input -> same output, no side-effects 📚

ramda

  • You know how to curry a function 📚
  • You know how to compose a function from other functions
  • You know how to pipe functions to produce a step by step processing sequence
  • You can use basic functions such as map, mapValues, find, sort, sortBy, concat, equals, cond, ifElse 📚

HTTP

Requests

Axios

  • You know how to use axios to send HTTP request to an API endpoint 📚
  • You know how to handle errors returned in HTTP response 📚
  • You can configure axios to have a predefined base url for making requests

fetch

  • You know how to create an HTTP request using native fetch 📚
  • You know how to handle errors returned in HTTP response 📚

Fonts

  • You know how to load custom webfonts available in Google Fonts 📚

Tools

Design

Figma

  • You know how to extract style values (geometry, colours, fonts, etc.) from a design project 📚
  • You know how to extract image assets from a design project
  • You know how to extract vector icon asset from a project

Contribution

We are very open to contributions to extend or change the requirements based on your gut and experience. To contribute you can use a pull request which will be later validated by our technical team and added to the main docs.

If you will spot any issues please add them in the Issues section.

Credits

This page is maintained by the 🔹 Flairs.ai and 🇵🇱 Apptension teams.

If you would like to create a dedicated Developer Handbook for your company, you can e-mail us 👉 [email protected]

License

MIT License

© 2020 Flairs Sp. z o.o.

Built and maintained by Flairs and Apptension.

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.