Skip to content

Instantly share code, notes, and snippets.

@CodeLikeAGirl29
Created December 13, 2022 08:46
Show Gist options
  • Select an option

  • Save CodeLikeAGirl29/d175db60032f018e3ef914bbb0fcab23 to your computer and use it in GitHub Desktop.

Select an option

Save CodeLikeAGirl29/d175db60032f018e3ef914bbb0fcab23 to your computer and use it in GitHub Desktop.

Frontend Developer

Company practices

  • You create pull requests with proper name and description πŸ“š
  • You squash merge your pull requests πŸ“š
  • You name your commits properly πŸ“š
  • You know how to create and reference issues
  • You know how to verify when a build check failed
  • You use Slack statuses in line with company policy (remote working, vacationing, in a meeting, etc)
  • You know how to create groups and channels
  • You know how to give praise and add talk topics to a 1:1 meeting
  • You can configure local email client

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 to incorporate them in React lifecycle πŸ“š
  • You know component's lifecycle and know how to use each of the phases. πŸ“š
  • You can use useState and useEffect hooks. πŸ“š
  • You know how hook dependency array works. πŸ“š

Application state management

  • You can describe full Redux flow πŸ“š
  • You know how to apply selector functions to useSelector hook. πŸ“š
  • You know how to dispatch actions from React component. πŸ“š
  • You can use one of the listed toolset libraries to create reducers, action types, and action creators more efficiently
  • You know how to create a reducer. πŸ“š
  • You know how to create an action creator πŸ“š
  • 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 πŸ“š
  • You know how to create a reducer that uses immer πŸ“š
  • You know how to convert immutable structure to regular JavaScript object
  • You know the difference between only changing state object and returning a changed state object

[Optional] Immutable.js

  • You know how to create an immutable structure πŸ“š
  • You know how to read data from the immutable structure
  • You know how to create a new data structure with modified state out of an existing one
  • You know how to use the store with immutable structures using redux-immutable πŸ“š
  • You know how to convert a json structure into immutable structure, and vice-versa
  • You know how to read data from the immutable structure
  • You know how to create a new data structure with modified state out of an existing one
  • You understand the difference between immutable.js and seamless-immutable πŸ“š
  • You know how to create a selector with createSelector function πŸ“š
  • You understand the concept of side effects πŸ“š
  • You know how to take a side effect and dispatch an action based on it πŸ“š
  • You know how to run asynchronous functions (e.g. fetch) after something dispatches an action

Apptension React Boilerplate

  • You know how to initialize a project using Apptension React template of create-react-app generator
  • You know how to run a linter
  • You know how to define a new Redux module (Reducer, Saga, Selector)
  • You know how to create a new route and its component

Styling

  • 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 can create a styled component for a primitive element πŸ“š
  • You can extend styles of an existing component πŸ“š

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 πŸ“š
  • You know how to divide a web page to rows and columns
  • You can position elements in a grid

[Optional] Sass

  • You understand the SCSS syntax and file extensions πŸ“š
  • You know how to create and use scss variables
  • 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 πŸ“š
  • You know how to compare native date objects

[Optional] react-datetime

  • You know how to format and display a date object using standard format strings

[Optional] moment.js

  • You know how to format and display a date object using standard format strings

[Optional] dayjs

  • You know how to format and display a date object using standard format strings

Routing

  • 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 use in order to render a needed component in a given occasion
  • You know how to use basic components - Link, NavLink πŸ“š

Animations

  • You know how write CSS animations - transitions, keyframes πŸ“š

Internationalization

  • You know and use React-intl components πŸ“š

Audio and Video

  • You know how to use standard HTML Audio and Video tags

Development Tools

  • You understand what webpack is used for and what problem it solves πŸ“š
  • You're able to use inline commands to add, install & remove packages πŸ“š
  • You understand the benefits of yarn.lock file πŸ“š
  • You're able to use inline commands to add, install & remove packages πŸ“š
  • You understand the benefits of package-lock.json file πŸ“š
  • You can generate a new app using create-react-app cli πŸ“š
  • You know how to describe component's prop types
  • You use redux-devtools to see the current state and play with the state change history πŸ“š

HTTP

  • You know what cookies are
  • You know what HTTP headers are
  • You know how to create an HTTP request using native fetch πŸ“š
  • You know how to set HTTP headers in a request
  • You know how to use axios to send HTTP request to an API endpoint πŸ“š
  • You know how to set HTTP headers in a request

Testing

  • You know how to test components and functions

Tools

  • 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 style values (geometry, colours, fonts, etc.) from a design project
  • You know how to extract image assets from a design project

[Optional] Invision

  • You know how to extract style values (geometry, colours, fonts, etc.) from a design project

[Optional] Adobe XD

  • 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

Browsers


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 πŸ‘‰ contact@flairs.ai

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment