SlideShare ist ein Scribd-Unternehmen logo
1 von 43
Downloaden Sie, um offline zu lesen
Angular – stań się kanciastym
Agenda
Hack Your Career
• Wstęp do programowania w chmurze przy użyciu
Kubernetes'a
Wykłady - AEiI
(14:00 – 15:30, s.428)
Warszaty – SAP Hybris
(17:00 – 18:30, s. Death Valley)
10.04
19.04 • Tworzenie testowalnej aplikacji, czyli TDD w praktyce
25.04• Bots everywhere
10.05 • Angular – stań się kanciastym
23.05
30.05
05.06
• Troubleshooting przy pomocy Spring AOP
• Ghost in the shell
• DevOps - czyli jak przestałem klikać i pokochałem
automatyzację
https://fb.com/Hack.your.Career Zarejestruj się na wydarzenie
Top ecommerce,
marketing, billing
Najlepszy Pracodawca
2017 w rankingu AON
Jedno z 20 centrów
SAP’s Labs Network
> 350 pracowników
Development: Go, Java,
Cloud Native solutions
Slajd o prowadzących
• Edyta Sporysz
Ÿ Web developer with two years of experience
focused mainly on AngularJS and Angular
frameworks.
• Dariusz Jagieło
• Backend dev becoming full stack after
5 years of working in Java world.
• Ivijan Hađija
• Enthusiastic web developer with a passion
for JavaScript related technologies.
Co to jest Angular?
Angular = MVC?
Czy jest nam potrzebny?
• Dlaczego Angular, a nie czysty Javascript
lub jQuery?
• Boom JavaScript SPA Frameworków…
• Zalety TypeScript-a
TypeScript
Angular framework - a hero to make your life EASIER
Historia Angulara
Dawno, dawno temu….
Prawie 10 lat temu!
• Misko Hevery (developer @Google)
Przełomowe wersje w rozwoju Angular:
• AngularJs 1.x ->
AngularJs 1.5.x ->
Angular 2 ->
Angular 4 ->
Angular 5 ->
Angular ??
Angular teraz
• TypeScript-based open-source
front-end web-application platform
• jest rozwijany przez Google i
społeczność deweloperów
• kompletne przepisanie w v2
• Stackoverflow statystyki 2018
• https://insights.stackoverflow.com/survey/2018
• #technology-frameworks-libraries-and-tools
angular-cli
Zalety angular-cli
• Project generation
• Code generator for:
• components, directives, classes, modules, services, etc.
• Build generation
• Unit test runner
• End-to-end test runner
• Easy local development
• Linting
• CSS pre-processor support
• JIT/AOT compilation
• ng new
• ng init
• ng generate
• ng build (--prod)
• ng test
• ng e2e
• ng serve
angular-cli demo
• Przykład tworzenia aplikacji/komponentu/serwisu
• Dokumentacja: https://github.com/angular/angular-cli/wiki/generate
Aplikacja demo
Angular – The Big Picture
@NgModule
Wprowadzenie do komponentów, dyrektyw i formularzy
• Przykład komponentu i jego szablonu
• Przykład dyrektyw
• Przepływ danych między klasą komponentu i jego szablonem
• Przykład prostego formularza
• Komunikacja między komponentami
Komponent i szablon - DEMO
Dyrektywy
• Komponenty – dyrektywa z szablonem
• Dyrektywy atrybutu – dyrektywy zmieniające zachowanie/wygląd elementu,
komponentu, innej dyrektywy, np.: ngClass, ngStyle, ngModel
• Dyrektywy strukturalne – dyrektywy dodające/usuwające elementy
DOM, poprzedzane symbolem "*", np.: *ngIf, *ngFor
<a *ngFor="let weatherItem of weatherItems" >
<app-weather-item [weatherItem]="weatherItem"></app-weather-item>
</a>
Bindowanie danych – komunikacja między komponentem i
szablonem
Bindowanie danych – DEMO
Budowa formularzy – template driven forms
<form (ngSubmit)="add()">
<label for="city">City</label>
<input type="text" name="city" id="city" (input)="onSearchLocation(input.value)"
required #input [(ngModel)]="cityName">
<button type="submit" [disabled]="weatherItem == null">Add</button>
</form>
Budowa formularzy – stylowanie formularza w zależności od
stanu elementu
Angular automatycznie dołącza klasy css do elementu formularza w zależności od jego stanu, np.:
• .ng-valid
• .ng-invalid
• .ng-pristine
• .ng-dirty
• .ng-touched
• .ng-untouched
Komunikacja komponentów
• Dekoratory @Input oraz @Output
• Dekorator @ViewChild
• Serwis
Komunikacja komponentów - DEMO
Przerwa na kawę ;)
SPA – Single page application
SPA - Problemy
• URL do konkretnego widoku aplikacji
• Nawigacja przez guziki/hiperłącza
• Nawigacja przeglądarki – wstecz/w przód
Routing w aplikacji demo
Routing i nawigacja
Routing i nawigacja - konfiguracja
1. RouterModule - ng generate module app-routing --flat --module=app
2. Stworzenie Routes
3. Konfiguracja RouterModule.forRoot(routes)
4. <router-outlet></router-outlet>
Routing i nawigacja
Kod + demo
Serwisy – po co?
• Komponenty nie powinny zajmować się pobieraniem i zapisywaniem danych
• Wydzielenie wspólnej funkcjonalności
• Komponenty powinny być najprostsze jak to możliwe
• Usunięcie zależności, ukrycie szczegółów implementacyjnych
• Bo Angular Style Guide tak mówi https://angular.io/guide/styleguide#05-15 J
• Jak dodać serwis? à Angular CLI – ng g service my-service
Programowanie reaktywne
• ReactiveX à RxJS
• Połączenie najlepszych idei z:
o Observable, czyli wzorca Producent
o Wzorca Iterator
o Programowania funkcyjnego
Komunikacja HTTP
• Http(Angular < v4) à HttpClient (XHR przeglądarki)
• Testowalność (HttpTestingModule)
• Typowane żądania
• Interceptory żądań i odpowiedzi
• Odpowiedź jako strumień (Observable)
Demo (kod + aplikacja)
Źródła
• https://angular.io
• https://frontendmasters.com
• https://danielmiessler.com/study/mvc/
• https://blog.codewithdan.com/2017/08/26/5-key-benefits-of-angular-and-typescript/
• http://reactivex.io/
QUIZ
Kogo szukamy?
Profesjonalistów
• Cloud Software Engineer
(Cloud Native Solutions, Go, NodeJS)
• Cloud Service Engineering
(Automation and orchestration tools, python, shall)
• Java Engineer and Developer
(Java, Spring Core, Boot and Cloud, Web Services)
https://goo.gl/sN3Jyf
Aplikuj tutaj
Studentów
• Hack Team
(3 months internship, 2 teams realizing dedicated projects)
• Cloud Software Engineer - intern
(Cloud Native Solutions, Go, NodeJS)
• Technical Account Support - intern
(Manage, escalate and drive resolution of customers’ support)
• QA Analyst - intern
(Automated, Exploratory tests)
• DevOps Engineer
(Bash, Groovy, Python, Ruby, Go)
Networking session J
Opcja 1
• Zapraszamy na zwiedzanie biura
Opcja 2
• Q&A z naszymi prowadzącymi
Opcja 3
• Speed Interviews
Thank You

Weitere ähnliche Inhalte

Ähnlich wie HYC - Angular stań się kanciastym

Ähnlich wie HYC - Angular stań się kanciastym (20)

Jaki framework wybrać
Jaki framework wybraćJaki framework wybrać
Jaki framework wybrać
 
OSGi, deklaratywnie
OSGi, deklaratywnieOSGi, deklaratywnie
OSGi, deklaratywnie
 
Architektura SOA - wstęp
Architektura SOA - wstępArchitektura SOA - wstęp
Architektura SOA - wstęp
 
Scenariusze Azure
Scenariusze AzureScenariusze Azure
Scenariusze Azure
 
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
 
Tech cafe Microservices
Tech cafe MicroservicesTech cafe Microservices
Tech cafe Microservices
 
Produkcja aplikacji internetowych
Produkcja aplikacji internetowychProdukcja aplikacji internetowych
Produkcja aplikacji internetowych
 
university day 1
university day 1university day 1
university day 1
 
Encje w drupalu - DrupalCamp Wroclaw 2015
Encje w drupalu - DrupalCamp Wroclaw 2015Encje w drupalu - DrupalCamp Wroclaw 2015
Encje w drupalu - DrupalCamp Wroclaw 2015
 
Marek Sokołowski @ "Usługi PaaS oraz IaaS - przegląd dostępnego osprzętu i am...
Marek Sokołowski @ "Usługi PaaS oraz IaaS - przegląd dostępnego osprzętu i am...Marek Sokołowski @ "Usługi PaaS oraz IaaS - przegląd dostępnego osprzętu i am...
Marek Sokołowski @ "Usługi PaaS oraz IaaS - przegląd dostępnego osprzętu i am...
 
Spa i .net core
Spa i .net coreSpa i .net core
Spa i .net core
 
Modelowanie i weryfikacja w programie MATLAB i Simulink
Modelowanie i weryfikacja w programie MATLAB i SimulinkModelowanie i weryfikacja w programie MATLAB i Simulink
Modelowanie i weryfikacja w programie MATLAB i Simulink
 
Architektura aplikacji android
Architektura aplikacji androidArchitektura aplikacji android
Architektura aplikacji android
 
Prostota i mozliwosci symfony2
Prostota i mozliwosci symfony2Prostota i mozliwosci symfony2
Prostota i mozliwosci symfony2
 
Elitmind @ 113. Spotkanie Data Community, Warszawa - Business Intelligence w ...
Elitmind @ 113. Spotkanie Data Community, Warszawa - Business Intelligence w ...Elitmind @ 113. Spotkanie Data Community, Warszawa - Business Intelligence w ...
Elitmind @ 113. Spotkanie Data Community, Warszawa - Business Intelligence w ...
 
[PL] Zarządzanie procesami biznesowymi z wykorzystaniem platformy SharePoint
[PL] Zarządzanie procesami biznesowymi z wykorzystaniem platformy SharePoint[PL] Zarządzanie procesami biznesowymi z wykorzystaniem platformy SharePoint
[PL] Zarządzanie procesami biznesowymi z wykorzystaniem platformy SharePoint
 
Programowanie Równolegle - Parallel Extensions
Programowanie Równolegle - Parallel ExtensionsProgramowanie Równolegle - Parallel Extensions
Programowanie Równolegle - Parallel Extensions
 
Co nowego w ASP.NET MVC 4?
Co nowego w ASP.NET MVC 4?Co nowego w ASP.NET MVC 4?
Co nowego w ASP.NET MVC 4?
 
JavaScript, Moduły
JavaScript, ModułyJavaScript, Moduły
JavaScript, Moduły
 
Budowanie rozwiązań serverless w chmurze Azure
Budowanie rozwiązań serverless w chmurze AzureBudowanie rozwiązań serverless w chmurze Azure
Budowanie rozwiązań serverless w chmurze Azure
 

HYC - Angular stań się kanciastym

  • 1. Angular – stań się kanciastym
  • 3. Hack Your Career • Wstęp do programowania w chmurze przy użyciu Kubernetes'a Wykłady - AEiI (14:00 – 15:30, s.428) Warszaty – SAP Hybris (17:00 – 18:30, s. Death Valley) 10.04 19.04 • Tworzenie testowalnej aplikacji, czyli TDD w praktyce 25.04• Bots everywhere 10.05 • Angular – stań się kanciastym 23.05 30.05 05.06 • Troubleshooting przy pomocy Spring AOP • Ghost in the shell • DevOps - czyli jak przestałem klikać i pokochałem automatyzację https://fb.com/Hack.your.Career Zarejestruj się na wydarzenie
  • 4. Top ecommerce, marketing, billing Najlepszy Pracodawca 2017 w rankingu AON Jedno z 20 centrów SAP’s Labs Network > 350 pracowników Development: Go, Java, Cloud Native solutions
  • 5. Slajd o prowadzących • Edyta Sporysz Ÿ Web developer with two years of experience focused mainly on AngularJS and Angular frameworks. • Dariusz Jagieło • Backend dev becoming full stack after 5 years of working in Java world. • Ivijan Hađija • Enthusiastic web developer with a passion for JavaScript related technologies.
  • 6. Co to jest Angular?
  • 8. Czy jest nam potrzebny? • Dlaczego Angular, a nie czysty Javascript lub jQuery? • Boom JavaScript SPA Frameworków… • Zalety TypeScript-a
  • 10. Angular framework - a hero to make your life EASIER
  • 11. Historia Angulara Dawno, dawno temu…. Prawie 10 lat temu! • Misko Hevery (developer @Google) Przełomowe wersje w rozwoju Angular: • AngularJs 1.x -> AngularJs 1.5.x -> Angular 2 -> Angular 4 -> Angular 5 -> Angular ??
  • 12. Angular teraz • TypeScript-based open-source front-end web-application platform • jest rozwijany przez Google i społeczność deweloperów • kompletne przepisanie w v2 • Stackoverflow statystyki 2018 • https://insights.stackoverflow.com/survey/2018 • #technology-frameworks-libraries-and-tools
  • 14. Zalety angular-cli • Project generation • Code generator for: • components, directives, classes, modules, services, etc. • Build generation • Unit test runner • End-to-end test runner • Easy local development • Linting • CSS pre-processor support • JIT/AOT compilation • ng new • ng init • ng generate • ng build (--prod) • ng test • ng e2e • ng serve
  • 15. angular-cli demo • Przykład tworzenia aplikacji/komponentu/serwisu • Dokumentacja: https://github.com/angular/angular-cli/wiki/generate
  • 17. Angular – The Big Picture
  • 19. Wprowadzenie do komponentów, dyrektyw i formularzy • Przykład komponentu i jego szablonu • Przykład dyrektyw • Przepływ danych między klasą komponentu i jego szablonem • Przykład prostego formularza • Komunikacja między komponentami
  • 21. Dyrektywy • Komponenty – dyrektywa z szablonem • Dyrektywy atrybutu – dyrektywy zmieniające zachowanie/wygląd elementu, komponentu, innej dyrektywy, np.: ngClass, ngStyle, ngModel • Dyrektywy strukturalne – dyrektywy dodające/usuwające elementy DOM, poprzedzane symbolem "*", np.: *ngIf, *ngFor <a *ngFor="let weatherItem of weatherItems" > <app-weather-item [weatherItem]="weatherItem"></app-weather-item> </a>
  • 22. Bindowanie danych – komunikacja między komponentem i szablonem
  • 24. Budowa formularzy – template driven forms <form (ngSubmit)="add()"> <label for="city">City</label> <input type="text" name="city" id="city" (input)="onSearchLocation(input.value)" required #input [(ngModel)]="cityName"> <button type="submit" [disabled]="weatherItem == null">Add</button> </form>
  • 25. Budowa formularzy – stylowanie formularza w zależności od stanu elementu Angular automatycznie dołącza klasy css do elementu formularza w zależności od jego stanu, np.: • .ng-valid • .ng-invalid • .ng-pristine • .ng-dirty • .ng-touched • .ng-untouched
  • 26. Komunikacja komponentów • Dekoratory @Input oraz @Output • Dekorator @ViewChild • Serwis
  • 29. SPA – Single page application
  • 30. SPA - Problemy • URL do konkretnego widoku aplikacji • Nawigacja przez guziki/hiperłącza • Nawigacja przeglądarki – wstecz/w przód
  • 33. Routing i nawigacja - konfiguracja 1. RouterModule - ng generate module app-routing --flat --module=app 2. Stworzenie Routes 3. Konfiguracja RouterModule.forRoot(routes) 4. <router-outlet></router-outlet>
  • 35. Serwisy – po co? • Komponenty nie powinny zajmować się pobieraniem i zapisywaniem danych • Wydzielenie wspólnej funkcjonalności • Komponenty powinny być najprostsze jak to możliwe • Usunięcie zależności, ukrycie szczegółów implementacyjnych • Bo Angular Style Guide tak mówi https://angular.io/guide/styleguide#05-15 J • Jak dodać serwis? à Angular CLI – ng g service my-service
  • 36. Programowanie reaktywne • ReactiveX à RxJS • Połączenie najlepszych idei z: o Observable, czyli wzorca Producent o Wzorca Iterator o Programowania funkcyjnego
  • 37. Komunikacja HTTP • Http(Angular < v4) à HttpClient (XHR przeglądarki) • Testowalność (HttpTestingModule) • Typowane żądania • Interceptory żądań i odpowiedzi • Odpowiedź jako strumień (Observable)
  • 38. Demo (kod + aplikacja)
  • 39. Źródła • https://angular.io • https://frontendmasters.com • https://danielmiessler.com/study/mvc/ • https://blog.codewithdan.com/2017/08/26/5-key-benefits-of-angular-and-typescript/ • http://reactivex.io/
  • 40. QUIZ
  • 41. Kogo szukamy? Profesjonalistów • Cloud Software Engineer (Cloud Native Solutions, Go, NodeJS) • Cloud Service Engineering (Automation and orchestration tools, python, shall) • Java Engineer and Developer (Java, Spring Core, Boot and Cloud, Web Services) https://goo.gl/sN3Jyf Aplikuj tutaj Studentów • Hack Team (3 months internship, 2 teams realizing dedicated projects) • Cloud Software Engineer - intern (Cloud Native Solutions, Go, NodeJS) • Technical Account Support - intern (Manage, escalate and drive resolution of customers’ support) • QA Analyst - intern (Automated, Exploratory tests) • DevOps Engineer (Bash, Groovy, Python, Ruby, Go)
  • 42. Networking session J Opcja 1 • Zapraszamy na zwiedzanie biura Opcja 2 • Q&A z naszymi prowadzącymi Opcja 3 • Speed Interviews