SlideShare uma empresa Scribd logo
1 de 24
AngularJS (nie) nadaje
się do dużych pojektów.
Rafał Filipek
keybase.io/rafalfilipek
+
=
galactic cannibalism
• Logiczny podział części aplikacji
• Łatwość developmentu
• Ograniczenie udziału programistów w sprawach UI
• Relatywnie niewysoki próg wejścia w projekt
• Nie chciałem “zwariować”
• Zmieniające się założenia biznesowe
• Zmieniający się UI
• Zmieniający się zestaw modułów
• Utrzymanie wydajności
• Estetyka kodu
Czego używamy?
• AngularJS
• CoffeeScript
• Jade
• Stylus
• Gulp / Make / Jake
• Karma / Protractor
A
MAILS
DRAFTS ABOOK
COMMONDEV
GALLERY
OPTIONS
SEARCH LABELS
APP
…
MAILS
DRAFTS
ABOOK
COMMON
DEV
GALLERY
OPTIONS
SEARCH
LABELS
APP
COMMON
APP
DEMO TIME
function cleanupLastView() {
if (previousEl) {
previousEl.remove();
previousEl = null;
}
//…
}
DEMO TIME
ngRepeat(collection).speed === ‘f-word slow’
DEMO TIME
“MARUDERZY”
Two way data binding
• DIY
https://gist.github.com/austinhyde/4321f22a476e1cb
ee65f
• ♥ formularze
• “ktoś”, “gdzieś”, “kiedyś” musi przekazać dane
DEMO TIME
Angular is hard to
learn.
Na koniec
Dziękuję

Mais conteúdo relacionado

Semelhante a AngularJS (nie) nadaje się do dużego projektu

Extjs & netzke
Extjs & netzkeExtjs & netzke
Extjs & netzke
GaldoMedia
 
AngularJS szkolenie wewnętrzne (into)
AngularJS szkolenie wewnętrzne (into)AngularJS szkolenie wewnętrzne (into)
AngularJS szkolenie wewnętrzne (into)
Marcin Baran
 
Kariera it Sopot
Kariera it SopotKariera it Sopot
Kariera it Sopot
neoteric-eu
 

Semelhante a AngularJS (nie) nadaje się do dużego projektu (20)

Produkcja aplikacji internetowych
Produkcja aplikacji internetowychProdukcja aplikacji internetowych
Produkcja aplikacji internetowych
 
JavaEE + OSGi
JavaEE + OSGiJavaEE + OSGi
JavaEE + OSGi
 
Extjs & netzke
Extjs & netzkeExtjs & netzke
Extjs & netzke
 
REvolution, czyli o bardziej obiektowym podejściu w Railsach
REvolution, czyli o bardziej obiektowym podejściu w RailsachREvolution, czyli o bardziej obiektowym podejściu w Railsach
REvolution, czyli o bardziej obiektowym podejściu w Railsach
 
university day 1
university day 1university day 1
university day 1
 
SPA i .Net Core
SPA i .Net CoreSPA i .Net Core
SPA i .Net Core
 
Spa i .net core
Spa i .net coreSpa i .net core
Spa i .net core
 
Testowanie rozwiązań serverless z LocalStack
Testowanie rozwiązań serverless z LocalStackTestowanie rozwiązań serverless z LocalStack
Testowanie rozwiązań serverless z LocalStack
 
Automatyzacja tworzenia frontendu z wykorzystaniem GraphQL
Automatyzacja tworzenia frontendu z wykorzystaniem GraphQLAutomatyzacja tworzenia frontendu z wykorzystaniem GraphQL
Automatyzacja tworzenia frontendu z wykorzystaniem GraphQL
 
Bohater UI bez front end developera ?
Bohater UI bez front end developera ?Bohater UI bez front end developera ?
Bohater UI bez front end developera ?
 
AngularJS szkolenie wewnętrzne (into)
AngularJS szkolenie wewnętrzne (into)AngularJS szkolenie wewnętrzne (into)
AngularJS szkolenie wewnętrzne (into)
 
Wzorce Repository, Unity of Work, Devexpress MVC w architekturze Asp.net MVC
Wzorce Repository, Unity of Work, Devexpress MVC  w architekturze Asp.net MVCWzorce Repository, Unity of Work, Devexpress MVC  w architekturze Asp.net MVC
Wzorce Repository, Unity of Work, Devexpress MVC w architekturze Asp.net MVC
 
Konrad Gadzina: Test-Driven Gamedev - testy automatyczne a tworzenie gier
Konrad Gadzina: Test-Driven Gamedev - testy automatyczne a tworzenie gierKonrad Gadzina: Test-Driven Gamedev - testy automatyczne a tworzenie gier
Konrad Gadzina: Test-Driven Gamedev - testy automatyczne a tworzenie gier
 
Prostota i mozliwosci symfony2
Prostota i mozliwosci symfony2Prostota i mozliwosci symfony2
Prostota i mozliwosci symfony2
 
Kariera it Sopot
Kariera it SopotKariera it Sopot
Kariera it Sopot
 
[PL] PRUG Luty 2022 - Service objecty to za mało - jak żyć z Railsami?
[PL] PRUG Luty 2022 - Service objecty to za mało - jak żyć z Railsami?[PL] PRUG Luty 2022 - Service objecty to za mało - jak żyć z Railsami?
[PL] PRUG Luty 2022 - Service objecty to za mało - jak żyć z Railsami?
 
Daj się wyręczyć - Joomla Day Polska 2014
Daj się wyręczyć - Joomla Day Polska 2014Daj się wyręczyć - Joomla Day Polska 2014
Daj się wyręczyć - Joomla Day Polska 2014
 
Podstawy programowania w Drupalu - Drupal idzie na studia - Jarosław Sobiecki
Podstawy programowania w Drupalu - Drupal idzie na studia - Jarosław SobieckiPodstawy programowania w Drupalu - Drupal idzie na studia - Jarosław Sobiecki
Podstawy programowania w Drupalu - Drupal idzie na studia - Jarosław Sobiecki
 
Ewolucja architektury Getresponse Api
Ewolucja architektury Getresponse ApiEwolucja architektury Getresponse Api
Ewolucja architektury Getresponse Api
 
OSGi, deklaratywnie
OSGi, deklaratywnieOSGi, deklaratywnie
OSGi, deklaratywnie
 

Mais de 3camp

Marcin Szeląg, InnovationNest, Startup Risk Model
Marcin Szeląg, InnovationNest, Startup Risk ModelMarcin Szeląg, InnovationNest, Startup Risk Model
Marcin Szeląg, InnovationNest, Startup Risk Model
3camp
 

Mais de 3camp (20)

Ochrona podatnych webaplikacji za pomocą wirtualnych poprawek
Ochrona podatnych webaplikacji za pomocą wirtualnych poprawekOchrona podatnych webaplikacji za pomocą wirtualnych poprawek
Ochrona podatnych webaplikacji za pomocą wirtualnych poprawek
 
HTTPS bez wymówek
HTTPS bez wymówekHTTPS bez wymówek
HTTPS bez wymówek
 
Jak udokumentować bazę danych
Jak udokumentować bazę danychJak udokumentować bazę danych
Jak udokumentować bazę danych
 
ORM - tuningujemy podejście do mapowania
ORM - tuningujemy podejście do mapowaniaORM - tuningujemy podejście do mapowania
ORM - tuningujemy podejście do mapowania
 
No pressure, no diamonds. Rzecz o łamaniu zasad w projektach.
No pressure, no diamonds. Rzecz o łamaniu zasad w projektach.No pressure, no diamonds. Rzecz o łamaniu zasad w projektach.
No pressure, no diamonds. Rzecz o łamaniu zasad w projektach.
 
W poszukiwaniu procesu doskonałego. Wdrożenie Scruma, Continuous Integrations...
W poszukiwaniu procesu doskonałego. Wdrożenie Scruma, Continuous Integrations...W poszukiwaniu procesu doskonałego. Wdrożenie Scruma, Continuous Integrations...
W poszukiwaniu procesu doskonałego. Wdrożenie Scruma, Continuous Integrations...
 
Wykorzystanie języka Kotlin do aplikacji na platformie Android
Wykorzystanie języka Kotlin do aplikacji na platformie AndroidWykorzystanie języka Kotlin do aplikacji na platformie Android
Wykorzystanie języka Kotlin do aplikacji na platformie Android
 
Learn you some rx for the greater good
Learn you some rx for the greater goodLearn you some rx for the greater good
Learn you some rx for the greater good
 
Google App Engine i Google Play Services w Twoich aplikacjach
Google App Engine i Google Play Services w Twoich aplikacjachGoogle App Engine i Google Play Services w Twoich aplikacjach
Google App Engine i Google Play Services w Twoich aplikacjach
 
Reakcja łańcuchowa, czyli React.js w praktyce
Reakcja łańcuchowa, czyli React.js w praktyceReakcja łańcuchowa, czyli React.js w praktyce
Reakcja łańcuchowa, czyli React.js w praktyce
 
Przemysław Bartkowiak - Sam ustalasz ile za to zapłacisz – czyli nowy wymiar ...
Przemysław Bartkowiak - Sam ustalasz ile za to zapłacisz – czyli nowy wymiar ...Przemysław Bartkowiak - Sam ustalasz ile za to zapłacisz – czyli nowy wymiar ...
Przemysław Bartkowiak - Sam ustalasz ile za to zapłacisz – czyli nowy wymiar ...
 
Mirek Wąsowicz - Segment jednego, dokąd zmierza marketing online?
Mirek Wąsowicz - Segment jednego, dokąd zmierza marketing online?Mirek Wąsowicz - Segment jednego, dokąd zmierza marketing online?
Mirek Wąsowicz - Segment jednego, dokąd zmierza marketing online?
 
Artur Senk, OKE Poland, Big Data na zakupach
Artur Senk, OKE Poland, Big Data na zakupachArtur Senk, OKE Poland, Big Data na zakupach
Artur Senk, OKE Poland, Big Data na zakupach
 
Piotr Macuk, Konfeo.com, Programista i biznes – plusy i minusy własnej działa...
Piotr Macuk, Konfeo.com, Programista i biznes – plusy i minusy własnej działa...Piotr Macuk, Konfeo.com, Programista i biznes – plusy i minusy własnej działa...
Piotr Macuk, Konfeo.com, Programista i biznes – plusy i minusy własnej działa...
 
Marcin Maj, Kainos - QA – wartko, zmiennie i interdyscyplinarnie
Marcin Maj, Kainos - QA – wartko, zmiennie i interdyscyplinarnieMarcin Maj, Kainos - QA – wartko, zmiennie i interdyscyplinarnie
Marcin Maj, Kainos - QA – wartko, zmiennie i interdyscyplinarnie
 
Jak przesiąść się na rower na dwóch kółkach? Od trzyosobowego startupu do spó...
Jak przesiąść się na rower na dwóch kółkach? Od trzyosobowego startupu do spó...Jak przesiąść się na rower na dwóch kółkach? Od trzyosobowego startupu do spó...
Jak przesiąść się na rower na dwóch kółkach? Od trzyosobowego startupu do spó...
 
Łukasz Brzeziński - Jak zarabiać z Wikingami? Czyli monetyzacja portalu inter...
Łukasz Brzeziński - Jak zarabiać z Wikingami? Czyli monetyzacja portalu inter...Łukasz Brzeziński - Jak zarabiać z Wikingami? Czyli monetyzacja portalu inter...
Łukasz Brzeziński - Jak zarabiać z Wikingami? Czyli monetyzacja portalu inter...
 
Marcin Szeląg, InnovationNest, Startup Risk Model
Marcin Szeląg, InnovationNest, Startup Risk ModelMarcin Szeląg, InnovationNest, Startup Risk Model
Marcin Szeląg, InnovationNest, Startup Risk Model
 
JSON, REST API
JSON, REST APIJSON, REST API
JSON, REST API
 
Ostatnia faza produktu: co się dzieję kiedy programista zakończył swoje zadanie
Ostatnia faza produktu: co się dzieję kiedy programista zakończył swoje zadanieOstatnia faza produktu: co się dzieję kiedy programista zakończył swoje zadanie
Ostatnia faza produktu: co się dzieję kiedy programista zakończył swoje zadanie
 

AngularJS (nie) nadaje się do dużego projektu

Notas do Editor

  1. Połączenie 2 firm. Nowa firma. Nowe projekty. Nowa jakość. Nowa poczta. Backend
  2. Dalej mówię o tym jak to wygląda w części frontend. o2, wp. Co chciałem uzyskać.
  3. Dlaczego Angular? W wp.pl - GWT, jQuery W o2.pl - Backbone, prototype
  4. Dlaczego powiedziałem, że nie chcę zwariować? Biznes wie, że nie ma “bo to stare i nikt tego nie ruszy” Chcemy testować rzeczy Wszyscy mają pomysły
  5. CoffeeScript. hoisting, ES6, flow, atScript Jade: słaby kompilator, wolny. Gulp / Make / Jake: nie ma rozwiązania idealnego Karam / Protractor: jak wywalilismy browserify to jest okej ;)
  6. Dlaczego podział aplikacji jest ważny. Dlaczego w końcu skończy się z takim podziałem.
  7. Widoki są rerenderowane cały czas. Cache jest na szablon, dane ale nie wygenerowany html. Feel jest słaby przy skomplikowanych widokach.
  8. Powidzieć o czasie.
  9. Czasami ilość danych które trzeba wyrenderować jest za duża dla Angulara. Jak wygląda to w praktyce. Co można na to poradzić? Karol Jastrzębowski z GoldenLine
  10. No server side rendering without obscure hacks. Google does not use Angular in production for their flag apps like Gmail or Gplus. Vendor lock. And because Google does not use Angular in production, they can kill Angular anytime.