SlideShare una empresa de Scribd logo
1 de 67
Descargar para leer sin conexión
Robert Goik
A więc chcesz zostać frontend
developerem?
Subiektywny poradnik frontend developera
The Handbook
Current edition
Easy start
Get In Touch
My React App
Let’s start
Git
basic
Readme
Writeme, maintainme
My React App
Hello from CDN
index.html
index.js
My React App
Hello from CDN
Package manager
and more
Node
My React App
Zero con
fi
g Webpack
Simple React App
Zero con
fi
g Webpack
src/index.js
Simple React App
Build
Simple React App
The App
dist/index.html
Because we are lazy
and e
ffi
cient
Essential tools
Before we start
Essential tools
Prettier for formatting
.prettierrc
https://prettier.io/
Essential tools
linters for catching bugs
.eslintrc.js
https://eslint.org/
Also very helpful
Husky improves your commits
https://typicode.github.io/husky/#/
My React App
Prettier, eslint, husky
My React App
for real
Semantic versioning
Publisher
1 . 0 . 0
breaking
change
new
feature
bug
fi
x
Major Minor Patch
Semantic versioning
User
patch releases minor releases
major releases
1.0 1.0.x ~1.0.1 1 1.x ^1.0.1
* x
Semantic versioning
Install
Package manager
The horror! The horror!
Semantic versioning
Real world issue
nconf - tags
fi
rst page
nconf - tags
last page
nvm
nevermind node version manager
https://github.com/nvm-sh/nvm
https://github.com/coreybutler/nvm-windows
nvm
The Trinity
HTML
most popular programming language :)
CSS
My React App
CSS
webpack.con
fi
g.js
My React App
CSS
src/index.css
src/index.js
My React App
CSS Modules
webpack.con
fi
g.js
My React App
CSS Modules
src/index.module.css
src/index.js
My React App
CSS Modules
JavaScript
Babel
source
fi
le
Back in the day
JavaScript
Babel
Babel
JavaScript => TypeScript
TypeScript
TypeScript
source
fi
le
TypeScript
TypeScript
Compiled
My React App
try Babel
babel.con
fi
g.json
My React App
catch
webpack.con
fi
g.js
My React App
JSX…
fi
nally!
Clean Code
Robert C. Martin
https://www.slideshare.net/slideshow/embed_code/
key/EqGmgLPLAo7dlN
Od frontu do backend

dwa oblicza SOLIDnego kodu
by Bożena Pietrzak & Marcin Gajda
Clean JavaScript Code
https://github.com/ryanmcdermott/clean-code-javascript
Clean Code - examples
Use searchable names
Clean Code - examples
Avoid side e
ff
ects
Readable code
my short story
The Zen of Python
Deploy to S3
IAM
Github actions
http://uszanowanko-frontend.s3-website-eu-west-1.amazonaws.com/
The Code
https://github.com/roberuto/my-react-app
There is more…
Micro frontends - how not to ;)
my broken app
http://core-aws-mf.s3-website-eu-west-1.amazonaws.com/
https://gitlab.com/robert.goik/primary-videos
State of frontend
https://tsh.io/state-of-frontend/
THANK YOU

Más contenido relacionado

Similar a A w więc chcesz zostać frontend developerem?

Kivy na Androidzie
Kivy na AndroidzieKivy na Androidzie
Kivy na AndroidzieDaftcode
 
Extjs & netzke
Extjs & netzkeExtjs & netzke
Extjs & netzkeGaldoMedia
 
Activiti - BPMN 2.0 nadchodzi
Activiti - BPMN 2.0 nadchodziActiviti - BPMN 2.0 nadchodzi
Activiti - BPMN 2.0 nadchodziMaciek Próchniak
 
Nie takie bloki straszne… czyli wstęp do Gutenberga
Nie takie bloki straszne… czyli wstęp do GutenbergaNie takie bloki straszne… czyli wstęp do Gutenberga
Nie takie bloki straszne… czyli wstęp do GutenbergaKrzysztof Grabania
 
Tomasz Głogosz: SharePoint Framework - nowa jakość w client-side development
Tomasz Głogosz: SharePoint Framework - nowa jakość w client-side developmentTomasz Głogosz: SharePoint Framework - nowa jakość w client-side development
Tomasz Głogosz: SharePoint Framework - nowa jakość w client-side developmentSharePoint Saturday Warsaw
 
Jak zarabiać na testowaniu oprogramowania(konferencja MeeTTech Piła 27.07.2016)
Jak zarabiać na testowaniu oprogramowania(konferencja MeeTTech Piła 27.07.2016)Jak zarabiać na testowaniu oprogramowania(konferencja MeeTTech Piła 27.07.2016)
Jak zarabiać na testowaniu oprogramowania(konferencja MeeTTech Piła 27.07.2016)Dariusz Kacban
 
Darmowy edytor wideo online - Twórz filmy z profesjonalnymi efektami wizualnymi
Darmowy edytor wideo online - Twórz filmy z profesjonalnymi efektami wizualnymiDarmowy edytor wideo online - Twórz filmy z profesjonalnymi efektami wizualnymi
Darmowy edytor wideo online - Twórz filmy z profesjonalnymi efektami wizualnymiplvideoeditor
 
Tworzenie niezależnego środowiska do developmentu aplikacji frontendowej
Tworzenie niezależnego środowiska do developmentu aplikacji frontendowejTworzenie niezależnego środowiska do developmentu aplikacji frontendowej
Tworzenie niezależnego środowiska do developmentu aplikacji frontendowejTomasz Borowski
 
Girls in It - Front-end & Back-end. Jak zacząć
Girls in It - Front-end & Back-end. Jak zacząćGirls in It - Front-end & Back-end. Jak zacząć
Girls in It - Front-end & Back-end. Jak zacząćmonterail
 
Visual C++ 2005 Express Edition. Tworzenie aplikacji dla Windows
Visual C++ 2005 Express Edition. Tworzenie aplikacji dla WindowsVisual C++ 2005 Express Edition. Tworzenie aplikacji dla Windows
Visual C++ 2005 Express Edition. Tworzenie aplikacji dla WindowsWydawnictwo Helion
 
PLNOG 5: Janusz Dziemidowicz - OpenSocial w nk.pl
PLNOG 5: Janusz Dziemidowicz - OpenSocial w nk.pl PLNOG 5: Janusz Dziemidowicz - OpenSocial w nk.pl
PLNOG 5: Janusz Dziemidowicz - OpenSocial w nk.pl PROIDEA
 
Pyconpl2008 - Pogodzić Google App Engine z Django
Pyconpl2008 - Pogodzić Google App Engine z DjangoPyconpl2008 - Pogodzić Google App Engine z Django
Pyconpl2008 - Pogodzić Google App Engine z DjangoRafal Jonca
 
Dictionary of Programming (Coding)
Dictionary of Programming (Coding)Dictionary of Programming (Coding)
Dictionary of Programming (Coding)KasiaSpisak1
 
4Developers 2018: Sagi na frontendzie - czyli jak ułatwić sobie pracę ze skom...
4Developers 2018: Sagi na frontendzie - czyli jak ułatwić sobie pracę ze skom...4Developers 2018: Sagi na frontendzie - czyli jak ułatwić sobie pracę ze skom...
4Developers 2018: Sagi na frontendzie - czyli jak ułatwić sobie pracę ze skom...PROIDEA
 
J2EE. Vademecum profesjonalisty. Wydanie II
J2EE. Vademecum profesjonalisty. Wydanie IIJ2EE. Vademecum profesjonalisty. Wydanie II
J2EE. Vademecum profesjonalisty. Wydanie IIWydawnictwo Helion
 
Zastosowanie buildout przy wdrażaniu projektów opartych o framework Django
Zastosowanie buildout przy wdrażaniu projektów opartych o framework DjangoZastosowanie buildout przy wdrażaniu projektów opartych o framework Django
Zastosowanie buildout przy wdrażaniu projektów opartych o framework DjangoDominik Szopa
 
Git jest git
Git jest gitGit jest git
Git jest gitrodzyn
 

Similar a A w więc chcesz zostać frontend developerem? (20)

Kivy na Androidzie
Kivy na AndroidzieKivy na Androidzie
Kivy na Androidzie
 
Extjs & netzke
Extjs & netzkeExtjs & netzke
Extjs & netzke
 
Activiti - BPMN 2.0 nadchodzi
Activiti - BPMN 2.0 nadchodziActiviti - BPMN 2.0 nadchodzi
Activiti - BPMN 2.0 nadchodzi
 
Nie takie bloki straszne… czyli wstęp do Gutenberga
Nie takie bloki straszne… czyli wstęp do GutenbergaNie takie bloki straszne… czyli wstęp do Gutenberga
Nie takie bloki straszne… czyli wstęp do Gutenberga
 
Tomasz Głogosz: SharePoint Framework - nowa jakość w client-side development
Tomasz Głogosz: SharePoint Framework - nowa jakość w client-side developmentTomasz Głogosz: SharePoint Framework - nowa jakość w client-side development
Tomasz Głogosz: SharePoint Framework - nowa jakość w client-side development
 
Jak zarabiać na testowaniu oprogramowania(konferencja MeeTTech Piła 27.07.2016)
Jak zarabiać na testowaniu oprogramowania(konferencja MeeTTech Piła 27.07.2016)Jak zarabiać na testowaniu oprogramowania(konferencja MeeTTech Piła 27.07.2016)
Jak zarabiać na testowaniu oprogramowania(konferencja MeeTTech Piła 27.07.2016)
 
Behat
BehatBehat
Behat
 
Darmowy edytor wideo online - Twórz filmy z profesjonalnymi efektami wizualnymi
Darmowy edytor wideo online - Twórz filmy z profesjonalnymi efektami wizualnymiDarmowy edytor wideo online - Twórz filmy z profesjonalnymi efektami wizualnymi
Darmowy edytor wideo online - Twórz filmy z profesjonalnymi efektami wizualnymi
 
Tworzenie niezależnego środowiska do developmentu aplikacji frontendowej
Tworzenie niezależnego środowiska do developmentu aplikacji frontendowejTworzenie niezależnego środowiska do developmentu aplikacji frontendowej
Tworzenie niezależnego środowiska do developmentu aplikacji frontendowej
 
Od zera do Automattica
Od zera do AutomatticaOd zera do Automattica
Od zera do Automattica
 
Girls in It - Front-end & Back-end. Jak zacząć
Girls in It - Front-end & Back-end. Jak zacząćGirls in It - Front-end & Back-end. Jak zacząć
Girls in It - Front-end & Back-end. Jak zacząć
 
Visual C++ 2005 Express Edition. Tworzenie aplikacji dla Windows
Visual C++ 2005 Express Edition. Tworzenie aplikacji dla WindowsVisual C++ 2005 Express Edition. Tworzenie aplikacji dla Windows
Visual C++ 2005 Express Edition. Tworzenie aplikacji dla Windows
 
PLNOG 5: Janusz Dziemidowicz - OpenSocial w nk.pl
PLNOG 5: Janusz Dziemidowicz - OpenSocial w nk.pl PLNOG 5: Janusz Dziemidowicz - OpenSocial w nk.pl
PLNOG 5: Janusz Dziemidowicz - OpenSocial w nk.pl
 
Pyconpl2008 - Pogodzić Google App Engine z Django
Pyconpl2008 - Pogodzić Google App Engine z DjangoPyconpl2008 - Pogodzić Google App Engine z Django
Pyconpl2008 - Pogodzić Google App Engine z Django
 
Dictionary of Programming (Coding)
Dictionary of Programming (Coding)Dictionary of Programming (Coding)
Dictionary of Programming (Coding)
 
4Developers 2018: Sagi na frontendzie - czyli jak ułatwić sobie pracę ze skom...
4Developers 2018: Sagi na frontendzie - czyli jak ułatwić sobie pracę ze skom...4Developers 2018: Sagi na frontendzie - czyli jak ułatwić sobie pracę ze skom...
4Developers 2018: Sagi na frontendzie - czyli jak ułatwić sobie pracę ze skom...
 
J2EE. Vademecum profesjonalisty. Wydanie II
J2EE. Vademecum profesjonalisty. Wydanie IIJ2EE. Vademecum profesjonalisty. Wydanie II
J2EE. Vademecum profesjonalisty. Wydanie II
 
university day 1
university day 1university day 1
university day 1
 
Zastosowanie buildout przy wdrażaniu projektów opartych o framework Django
Zastosowanie buildout przy wdrażaniu projektów opartych o framework DjangoZastosowanie buildout przy wdrażaniu projektów opartych o framework Django
Zastosowanie buildout przy wdrażaniu projektów opartych o framework Django
 
Git jest git
Git jest gitGit jest git
Git jest git
 

Más de The Software House

Jak kraść miliony, czyli o błędach bezpieczeństwa, które mogą spotkać również...
Jak kraść miliony, czyli o błędach bezpieczeństwa, które mogą spotkać również...Jak kraść miliony, czyli o błędach bezpieczeństwa, które mogą spotkać również...
Jak kraść miliony, czyli o błędach bezpieczeństwa, które mogą spotkać również...The Software House
 
Jak efektywnie podejść do certyfikacji w AWS?
Jak efektywnie podejść do certyfikacji w AWS?Jak efektywnie podejść do certyfikacji w AWS?
Jak efektywnie podejść do certyfikacji w AWS?The Software House
 
O co chodzi z tą dostępnością cyfrową?
O co chodzi z tą dostępnością cyfrową?O co chodzi z tą dostępnością cyfrową?
O co chodzi z tą dostępnością cyfrową?The Software House
 
Chat tekstowy z użyciem Amazon Chime
Chat tekstowy z użyciem Amazon ChimeChat tekstowy z użyciem Amazon Chime
Chat tekstowy z użyciem Amazon ChimeThe Software House
 
Jak nie zwariować z architekturą Serverless?
Jak nie zwariować z architekturą Serverless?Jak nie zwariować z architekturą Serverless?
Jak nie zwariować z architekturą Serverless?The Software House
 
Analiza semantyczna artykułów prasowych w 5 sprintów z użyciem AWS
Analiza semantyczna artykułów prasowych w 5 sprintów z użyciem AWSAnaliza semantyczna artykułów prasowych w 5 sprintów z użyciem AWS
Analiza semantyczna artykułów prasowych w 5 sprintów z użyciem AWSThe Software House
 
Typowanie nominalne w TypeScript
Typowanie nominalne w TypeScriptTypowanie nominalne w TypeScript
Typowanie nominalne w TypeScriptThe Software House
 
Automatyzacja tworzenia frontendu z wykorzystaniem GraphQL
Automatyzacja tworzenia frontendu z wykorzystaniem GraphQLAutomatyzacja tworzenia frontendu z wykorzystaniem GraphQL
Automatyzacja tworzenia frontendu z wykorzystaniem GraphQLThe Software House
 
Serverless Compose vs hurtownia danych
Serverless Compose vs hurtownia danychServerless Compose vs hurtownia danych
Serverless Compose vs hurtownia danychThe Software House
 
Testy API: połączenie z bazą danych czy implementacja w pamięci
Testy API: połączenie z bazą danych czy implementacja w pamięciTesty API: połączenie z bazą danych czy implementacja w pamięci
Testy API: połączenie z bazą danych czy implementacja w pamięciThe Software House
 
Jak skutecznie read model. Case study
Jak skutecznie read model. Case studyJak skutecznie read model. Case study
Jak skutecznie read model. Case studyThe Software House
 
Firestore czyli ognista baza od giganta z Doliny Krzemowej
Firestore czyli ognista baza od giganta z Doliny KrzemowejFirestore czyli ognista baza od giganta z Doliny Krzemowej
Firestore czyli ognista baza od giganta z Doliny KrzemowejThe Software House
 
Jak utrzymać stado Lambd w ryzach
Jak utrzymać stado Lambd w ryzachJak utrzymać stado Lambd w ryzach
Jak utrzymać stado Lambd w ryzachThe Software House
 
O łączeniu Storyblok i Next.js
O łączeniu Storyblok i Next.jsO łączeniu Storyblok i Next.js
O łączeniu Storyblok i Next.jsThe Software House
 
Amazon Step Functions. Sposób na implementację procesów w chmurze
Amazon Step Functions. Sposób na implementację procesów w chmurzeAmazon Step Functions. Sposób na implementację procesów w chmurze
Amazon Step Functions. Sposób na implementację procesów w chmurzeThe Software House
 
Co QA może i czego nie powinien się bać?
Co QA może i czego nie powinien się bać?Co QA może i czego nie powinien się bać?
Co QA może i czego nie powinien się bać?The Software House
 
Zmigrujmy 30 tys. użytkowników ze starego systemu. Co może pójść nie tak?
Zmigrujmy 30 tys. użytkowników ze starego systemu. Co może pójść nie tak?Zmigrujmy 30 tys. użytkowników ze starego systemu. Co może pójść nie tak?
Zmigrujmy 30 tys. użytkowników ze starego systemu. Co może pójść nie tak?The Software House
 

Más de The Software House (20)

Jak kraść miliony, czyli o błędach bezpieczeństwa, które mogą spotkać również...
Jak kraść miliony, czyli o błędach bezpieczeństwa, które mogą spotkać również...Jak kraść miliony, czyli o błędach bezpieczeństwa, które mogą spotkać również...
Jak kraść miliony, czyli o błędach bezpieczeństwa, które mogą spotkać również...
 
Uszanowanko Podsumowanko
Uszanowanko PodsumowankoUszanowanko Podsumowanko
Uszanowanko Podsumowanko
 
Jak efektywnie podejść do certyfikacji w AWS?
Jak efektywnie podejść do certyfikacji w AWS?Jak efektywnie podejść do certyfikacji w AWS?
Jak efektywnie podejść do certyfikacji w AWS?
 
O co chodzi z tą dostępnością cyfrową?
O co chodzi z tą dostępnością cyfrową?O co chodzi z tą dostępnością cyfrową?
O co chodzi z tą dostępnością cyfrową?
 
Chat tekstowy z użyciem Amazon Chime
Chat tekstowy z użyciem Amazon ChimeChat tekstowy z użyciem Amazon Chime
Chat tekstowy z użyciem Amazon Chime
 
Migracje danych serverless
Migracje danych serverlessMigracje danych serverless
Migracje danych serverless
 
Jak nie zwariować z architekturą Serverless?
Jak nie zwariować z architekturą Serverless?Jak nie zwariować z architekturą Serverless?
Jak nie zwariować z architekturą Serverless?
 
Analiza semantyczna artykułów prasowych w 5 sprintów z użyciem AWS
Analiza semantyczna artykułów prasowych w 5 sprintów z użyciem AWSAnaliza semantyczna artykułów prasowych w 5 sprintów z użyciem AWS
Analiza semantyczna artykułów prasowych w 5 sprintów z użyciem AWS
 
Typowanie nominalne w TypeScript
Typowanie nominalne w TypeScriptTypowanie nominalne w TypeScript
Typowanie nominalne w TypeScript
 
Automatyzacja tworzenia frontendu z wykorzystaniem GraphQL
Automatyzacja tworzenia frontendu z wykorzystaniem GraphQLAutomatyzacja tworzenia frontendu z wykorzystaniem GraphQL
Automatyzacja tworzenia frontendu z wykorzystaniem GraphQL
 
Serverless Compose vs hurtownia danych
Serverless Compose vs hurtownia danychServerless Compose vs hurtownia danych
Serverless Compose vs hurtownia danych
 
Testy API: połączenie z bazą danych czy implementacja w pamięci
Testy API: połączenie z bazą danych czy implementacja w pamięciTesty API: połączenie z bazą danych czy implementacja w pamięci
Testy API: połączenie z bazą danych czy implementacja w pamięci
 
Jak skutecznie read model. Case study
Jak skutecznie read model. Case studyJak skutecznie read model. Case study
Jak skutecznie read model. Case study
 
Firestore czyli ognista baza od giganta z Doliny Krzemowej
Firestore czyli ognista baza od giganta z Doliny KrzemowejFirestore czyli ognista baza od giganta z Doliny Krzemowej
Firestore czyli ognista baza od giganta z Doliny Krzemowej
 
Jak utrzymać stado Lambd w ryzach
Jak utrzymać stado Lambd w ryzachJak utrzymać stado Lambd w ryzach
Jak utrzymać stado Lambd w ryzach
 
Jak poskromić AWS?
Jak poskromić AWS?Jak poskromić AWS?
Jak poskromić AWS?
 
O łączeniu Storyblok i Next.js
O łączeniu Storyblok i Next.jsO łączeniu Storyblok i Next.js
O łączeniu Storyblok i Next.js
 
Amazon Step Functions. Sposób na implementację procesów w chmurze
Amazon Step Functions. Sposób na implementację procesów w chmurzeAmazon Step Functions. Sposób na implementację procesów w chmurze
Amazon Step Functions. Sposób na implementację procesów w chmurze
 
Co QA może i czego nie powinien się bać?
Co QA może i czego nie powinien się bać?Co QA może i czego nie powinien się bać?
Co QA może i czego nie powinien się bać?
 
Zmigrujmy 30 tys. użytkowników ze starego systemu. Co może pójść nie tak?
Zmigrujmy 30 tys. użytkowników ze starego systemu. Co może pójść nie tak?Zmigrujmy 30 tys. użytkowników ze starego systemu. Co może pójść nie tak?
Zmigrujmy 30 tys. użytkowników ze starego systemu. Co może pójść nie tak?
 

A w więc chcesz zostać frontend developerem?