Prelekcja wygłoszona podczas WordUp Warszawa #prawielato. Omówienie hostingów używanych przez polskich użytkowników i developerów Wordpressa na podstawie wyników ankiety z lutego 2015.
Spróbujemy odpowiedzieć na pytanie: Jaki framework będzie dla nas najlepszy? Opowiem dlaczego to pytanie jest takie ważne oraz o tym czego potrzebujemy by znaleźć na nie odpowiedz, która wcale nie jest taka trywialna.
This document provides an introduction to Flux, describing it as an architecture pattern for one-way data binding that is framework agnostic. It explains the key components of Flux including Stores, Actions, Dispatcher, Smart Components, and Dumb Components. Stores contain the application state, Actions are used to invoke state changes by passing arguments to the Dispatcher, and there is only one Dispatcher. Smart Components are aware of the Store and listen for changes, while Dumb Components only display data passed in via props. Examples of when to use Flux include for single page apps and complex UIs, while simpler components or static sites may not need it. Redux is recommended as a common Flux implementation.
Slides from a tutorial I gave at ETech 2006. Notes to accompany these slides can be found here: http://simonwillison.net/static/2006/js-reintroduction-notes.html
Reveal.js is an HTML presentation framework that allows users to create beautiful presentations using HTML. It has features like vertical slides, nested slides, Markdown support, different transition styles, themes, slide backgrounds, images, video, tables, quotes, and linking between slides. Presentations can be exported to PDF and custom states and events can be triggered on each slide. The framework is touch optimized and works on devices like mobile phones and tablets.
Prelekcja wygłoszona podczas WordUp Warszawa #prawielato. Omówienie hostingów używanych przez polskich użytkowników i developerów Wordpressa na podstawie wyników ankiety z lutego 2015.
Spróbujemy odpowiedzieć na pytanie: Jaki framework będzie dla nas najlepszy? Opowiem dlaczego to pytanie jest takie ważne oraz o tym czego potrzebujemy by znaleźć na nie odpowiedz, która wcale nie jest taka trywialna.
This document provides an introduction to Flux, describing it as an architecture pattern for one-way data binding that is framework agnostic. It explains the key components of Flux including Stores, Actions, Dispatcher, Smart Components, and Dumb Components. Stores contain the application state, Actions are used to invoke state changes by passing arguments to the Dispatcher, and there is only one Dispatcher. Smart Components are aware of the Store and listen for changes, while Dumb Components only display data passed in via props. Examples of when to use Flux include for single page apps and complex UIs, while simpler components or static sites may not need it. Redux is recommended as a common Flux implementation.
Slides from a tutorial I gave at ETech 2006. Notes to accompany these slides can be found here: http://simonwillison.net/static/2006/js-reintroduction-notes.html
Reveal.js is an HTML presentation framework that allows users to create beautiful presentations using HTML. It has features like vertical slides, nested slides, Markdown support, different transition styles, themes, slide backgrounds, images, video, tables, quotes, and linking between slides. Presentations can be exported to PDF and custom states and events can be triggered on each slide. The framework is touch optimized and works on devices like mobile phones and tablets.
O zagadnieniu:
Czy następuje taki moment w życiu programisty, kiedy może on stwierdzić, że jego warsztat jest już doskonały? Nie, jeżeli pracuje w technologiach internetowych. Ta dziedzina informatyki rozwija się w niesamowicie szybkim tempie, a stworzone wczoraj rozwiązania warto stosować już dziś!
Cel i korzyści spotkania:
Podczas spotkania słuchacze poznają aktualnie wykorzystywane technologie oraz kluczowe umiejętności w produkcji aplikacji internetowych, jak również metody programowania ekstremalnego i techniki zwinnego wytwarzania oprogramowania. Osobom, które dopiero zaczynają swoją przygodę z web development, zostanie przedstawiona propozycja działań, których sumienne podjęcie się gwarantuje odniesienie sukcesu zawodowego.
Kamil Płaczek: Izomorficzny? Uniwersalny? Bez względu na to, które z tych tajemniczych określeń wybierzemy na nasz kod, warto znać korzyści płynące z server-side renderingu i dostępne rozwiązania, które pomogą nam w realizacji tego zadania. Od poprawienia UX, przez skrócenie czasu ładowania strony, po lepsze SEO – przeanalizujemy jakie problemy współczesnych SPA może rozwiązać uniwersalny JavaScript (na przykładzie popularnych rozwiązań dla Reacta i Angulara).
Testowanie aplikacji mobilnych to kluczowy element i tmnichwyzwanie podczas procesu tworzenia oprogramowania. Proces testowania aplikacji może być jeszcze bardziej efektywny, jeżeli wzbogacimy go o automatyzację testów.
Jak zapewnić i utrzymać jakość aplikacji mobilnych na system iOS opowie Ewa Bielska i Tomasz Mnich. Przedstawią aplikację, która zostanie poddana testom za pomocą przykładowych narzędzi do automatyzacji.
Nie wiesz jak można zautomatyzować testy funkcjonalne aplikacji mobilnych lub nie jesteś przekonany którego narzędzia użyć? Ta prezentacja jest dla Ciebie.
Jak oszczędzać czas zespołu w środowisku mikroserwisów, czyli efektywny flow ...Mateusz Paprocki, PMP
Każdy zespół pracujący w środowisku mikroserwisów boryka się z podobnymi problemami: jak dbać o jakość kodu, organizować feature branche, testować zmiany, budować kolejne wersje aplikacji, zarządzać środowiskami, czy, finalnie, doprowadzić do automatycznych release’ów. W prezentacji przygotowanej przez trójmiejski software house Neoteric zobaczymy jedną z koncepcji rozwiązania problemów. Przygotujcie się na solidną dawkę Jenkinsa, Dockera, GitFlow oraz Sonara!
Marcin opowie w jaki sposób dostał się do Automattic pomimo małego doświadczenia z WordPressem i jego środowiskiem. Opisze także proces rekrutacji programistów oraz zdradzi, jak wygląda codzienna praca w tej firmie.
***
Marcin Bot podczas WordCamp Lublin 2017:
https://2017.lublin.wordcamp.org/session/od-zera-do-automattica/
Girls in It - Front-end & Back-end. Jak zacząćmonterail
“Girls in IT” to cykl spotkań dla kobiet, które mają na celu pokazać od kuchni jak wygląda praca w firmie technologicznej i pomóc im podjąć właściwą decyzję na temat kariery zawodowej.
W pierwszej części, przeznaczonej dla przyszłych Front-end Developerek, opowiemy na czym polega tworzenie strony internetowej i podzielimy się listą niezbędnych źródeł dla początkujących.
Druga część zawiera praktyczne informacje dotyczące Backend development'u. Przedstawimy specyfikę pracy na tym stanowisku, dobre praktyki, a także cenne wskazówki od naszych ekspertek.
https://www.youtube.com/watch?v=ww36brBuxU8
Prezentacja z konferencji Mobilization 2014.
Abstrakt:
Na rzeczywistych przykładach pokażę jak wygląda proces oceny bezpieczeństwa aplikacji mobilnych. Zobaczymy m.in. jak wykrywać słabości związane z przechowywaniem danych na urządzeniu, nieprawidłowości w transmisji, oraz najgroźniejsze - błędy w API po stronie serwera (np. błędy logiczne, kontroli dostępu, REST). Jednocześnie okaże się jakie techniki utrudniają ataki, jaki jest faktyczny wpływ na ryzyko poszczególnych podatności, oraz jakie zabezpieczenia warto zastosować w różnych aplikacjach.
Łebski Development czyli kiedy i dlaczego tworzyć oprogramowanie pod klucz i ...Wojciech Sznapka
- oprogramowanie dedykowane vs. produkty Open Source gotowe do użycia – w którym momencie te drugie przestają być wystarczające,
- jaką wartością jest indywidualne podejście do zagadnienia i gdzie każdy z udziałowców projektu otrzymuje największe korzyści,
- po co komu framework, skoro można wszystko samemu napisać najlepiej?
- Symfony2, jego historia, możliwości i usytuowanie na rynku,
- przykłady z życia codziennego, jak PHP i Symfony2 zwinnie daje radę w przeróżnych dziedzinach software developmentu.
Jak migrować kod legacy do Symfony? Tips & tricksXSolve
Masz do czynienia z legacy kodem i zastanawiasz się jak zacząć go przepisywać do Symfony? W tej prezentacji postaramy się podpowiedzieć, jak zacząć migrować kod starej aplikacji bez przerywania jej działania i konieczności przepisywania całości za jednym razem.
O zagadnieniu:
Czy następuje taki moment w życiu programisty, kiedy może on stwierdzić, że jego warsztat jest już doskonały? Nie, jeżeli pracuje w technologiach internetowych. Ta dziedzina informatyki rozwija się w niesamowicie szybkim tempie, a stworzone wczoraj rozwiązania warto stosować już dziś!
Cel i korzyści spotkania:
Podczas spotkania słuchacze poznają aktualnie wykorzystywane technologie oraz kluczowe umiejętności w produkcji aplikacji internetowych, jak również metody programowania ekstremalnego i techniki zwinnego wytwarzania oprogramowania. Osobom, które dopiero zaczynają swoją przygodę z web development, zostanie przedstawiona propozycja działań, których sumienne podjęcie się gwarantuje odniesienie sukcesu zawodowego.
Kamil Płaczek: Izomorficzny? Uniwersalny? Bez względu na to, które z tych tajemniczych określeń wybierzemy na nasz kod, warto znać korzyści płynące z server-side renderingu i dostępne rozwiązania, które pomogą nam w realizacji tego zadania. Od poprawienia UX, przez skrócenie czasu ładowania strony, po lepsze SEO – przeanalizujemy jakie problemy współczesnych SPA może rozwiązać uniwersalny JavaScript (na przykładzie popularnych rozwiązań dla Reacta i Angulara).
Testowanie aplikacji mobilnych to kluczowy element i tmnichwyzwanie podczas procesu tworzenia oprogramowania. Proces testowania aplikacji może być jeszcze bardziej efektywny, jeżeli wzbogacimy go o automatyzację testów.
Jak zapewnić i utrzymać jakość aplikacji mobilnych na system iOS opowie Ewa Bielska i Tomasz Mnich. Przedstawią aplikację, która zostanie poddana testom za pomocą przykładowych narzędzi do automatyzacji.
Nie wiesz jak można zautomatyzować testy funkcjonalne aplikacji mobilnych lub nie jesteś przekonany którego narzędzia użyć? Ta prezentacja jest dla Ciebie.
Jak oszczędzać czas zespołu w środowisku mikroserwisów, czyli efektywny flow ...Mateusz Paprocki, PMP
Każdy zespół pracujący w środowisku mikroserwisów boryka się z podobnymi problemami: jak dbać o jakość kodu, organizować feature branche, testować zmiany, budować kolejne wersje aplikacji, zarządzać środowiskami, czy, finalnie, doprowadzić do automatycznych release’ów. W prezentacji przygotowanej przez trójmiejski software house Neoteric zobaczymy jedną z koncepcji rozwiązania problemów. Przygotujcie się na solidną dawkę Jenkinsa, Dockera, GitFlow oraz Sonara!
Marcin opowie w jaki sposób dostał się do Automattic pomimo małego doświadczenia z WordPressem i jego środowiskiem. Opisze także proces rekrutacji programistów oraz zdradzi, jak wygląda codzienna praca w tej firmie.
***
Marcin Bot podczas WordCamp Lublin 2017:
https://2017.lublin.wordcamp.org/session/od-zera-do-automattica/
Girls in It - Front-end & Back-end. Jak zacząćmonterail
“Girls in IT” to cykl spotkań dla kobiet, które mają na celu pokazać od kuchni jak wygląda praca w firmie technologicznej i pomóc im podjąć właściwą decyzję na temat kariery zawodowej.
W pierwszej części, przeznaczonej dla przyszłych Front-end Developerek, opowiemy na czym polega tworzenie strony internetowej i podzielimy się listą niezbędnych źródeł dla początkujących.
Druga część zawiera praktyczne informacje dotyczące Backend development'u. Przedstawimy specyfikę pracy na tym stanowisku, dobre praktyki, a także cenne wskazówki od naszych ekspertek.
https://www.youtube.com/watch?v=ww36brBuxU8
Prezentacja z konferencji Mobilization 2014.
Abstrakt:
Na rzeczywistych przykładach pokażę jak wygląda proces oceny bezpieczeństwa aplikacji mobilnych. Zobaczymy m.in. jak wykrywać słabości związane z przechowywaniem danych na urządzeniu, nieprawidłowości w transmisji, oraz najgroźniejsze - błędy w API po stronie serwera (np. błędy logiczne, kontroli dostępu, REST). Jednocześnie okaże się jakie techniki utrudniają ataki, jaki jest faktyczny wpływ na ryzyko poszczególnych podatności, oraz jakie zabezpieczenia warto zastosować w różnych aplikacjach.
Łebski Development czyli kiedy i dlaczego tworzyć oprogramowanie pod klucz i ...Wojciech Sznapka
- oprogramowanie dedykowane vs. produkty Open Source gotowe do użycia – w którym momencie te drugie przestają być wystarczające,
- jaką wartością jest indywidualne podejście do zagadnienia i gdzie każdy z udziałowców projektu otrzymuje największe korzyści,
- po co komu framework, skoro można wszystko samemu napisać najlepiej?
- Symfony2, jego historia, możliwości i usytuowanie na rynku,
- przykłady z życia codziennego, jak PHP i Symfony2 zwinnie daje radę w przeróżnych dziedzinach software developmentu.
Jak migrować kod legacy do Symfony? Tips & tricksXSolve
Masz do czynienia z legacy kodem i zastanawiasz się jak zacząć go przepisywać do Symfony? W tej prezentacji postaramy się podpowiedzieć, jak zacząć migrować kod starej aplikacji bez przerywania jej działania i konieczności przepisywania całości za jednym razem.
2. • od 5 lat pracuję zdalnie dla startupu Folium
Partners
• tworzymy oprogramowanie dla wydawców audio/
ebooków
• “Software engineer” : JavaScript, PHP (Symfony
2), Android, OS X / iOS
• kontakt: @DzikowskiW
Wojciech Dzikowski
3. Agenda
1. Ewolucja JS
2. Założenia JavaScript i ES6
3. ES6 w praktyce (wybrane zagadnienia)
4. Pytania
4. Słowniczek
• JavaScript (JS) - wysokopoziomowy, dynamiczny, nietypowany
interpretowany język wywodzący się z przeglądarek internetowych,
implementacja ECMAScript
• ECMA International - stowarzyszenie, które powstało w 1961 roku,
by ustandaryzować systemy informatyczne w Europie. Członkami
ECMA są wpływowe firmy informatyczne i telekomunikacyjne m.in.
Mozilla, Google, Yahoo, Microsoft
• ECMAScript (ES)- specyfikacja obiektowego skryptowego języka
programowania, którego najbardziej znane implementacje to
JavaScript, JScript i ActionScript. Specyfikacja ta oznaczona jest
jako ECMA-262
• ES2015 (ES6) - najnowsza specyfikacja ECMAScript
6. Lata 90.
• 1995: W Netscape powstaje Mocha
• 1995: Mocha -> LiveScript -> JavaScript
• 1996: JavaScript trafia do ECMA
• 1997: ECMA-262 (ES1)
• 1998: ES2
• 1999: ES3 (regex, try/catch)
7. Lata 90.
• wojny przeglądarek IE vs Netscape
• DHTML i animacja wszystkiego
• walidacja formularzy
• zliczania odwiedzających (liczniki na stronach)
• kod optymalizowany pod poszczególne przeglądarki, mała
kompatybilność (IE vs Netscape)
9. 2005: AJAX
• Internet szerokopasmowy staje się powszechny
• wykorzystanie asynchronicznych zapytań do serwera (AJAX)
staje się popularne
• renesans JavaScript
• wysyp frameworków (ułatwiających zapytania AJAX i
modyfikacje DOM)
11. 2010-2015
• ewolucja frameworków, już nie tylko biblioteki do pracy
z DOM i AJAX
• menadżery pakietów JS: npm, bower
• rozwiązania do modularyzacji kodu (node.js,
CommonJS, AMD, Browserify)
• preprocesory JavaScript (Grunt, Gulp, Webpack,…)
12. Teraz
• 2015: ECMAScript 2015 (wiele nowości)
• od 2015 roku nowa specyfikacja wychodzi co roku,
dlatego też zmiana notacji
• połowa 2016: ES2016 (żadnych większych zmian)
14. JavaScript - zalety
• prosta składnia
• zaprojektowanie funkcji jako pełnoprawnych obiektów
• niezależny od żadnej firmy
• jedyny natywny język przeglądarek internetowych
• szybki rozwój języka i ekosystemu
• duża i aktywna społeczność
• wiele pomocnych narzędzi, bibliotek i frameworków
17. JavaScript - wady
• unikalna konstrukcja i zachowania prowadzą do
nieporozumień (np. obiekty i prototypy, zamiast
klas i instancji, nieznaczące zakresy blokowe,
hoisting, +, typeof null === ‘object’)
18. JavaScript - wady
• brak jednoznacznych wytycznych i standardów
tworzenia czystego kodu (co framework to inna
filozofia, złe podejście może mieć skutki na lata)
• bardzo szybki rozwój utrudnia tworzenie dużych
aplikacji utrzymywanych długi czas, przy wyborze
złych narzędzi
19. Założenia ES6
• rozwiązanie (części) problemów poprzedników
• kompatybilność wsteczna (kod ES5 jest
kompatybilny z ES6)
• nowoczesna składnia
• lepsze wsparcie dużych aplikacji
• dodana funkcjonalność do biblioteki
standardowej
20. ES6 - stan na dzisiaj
kangax.github.io/compat-table
49. ES6: Promise (obietnica)
• obiekt trzymający stan wywołania asynchronicznej funkcji (oczekujący,
spełniony, odrzucony)
• poprawia wcześniejszy problem z listenerami, wywołując funkcję callback
nawet jeśli funkcja asynchroniczna zakończyła wcześniej działanie
• pozwala na zwracanie obiektów (Promise) niezależnie od tego kiedy
skończy działanie funkcja asynchroniczna (lepsza czytelność kodu)
• “obiecuje”, że przekaże wynik lub błąd wywołania asynchronicznej funkcji
• korzysta z wzorca Obserwator do rozgłaszania wyniku zainteresowanym
• serializuje zagnieżdżone funkcje asynchroniczne, poprawiając czytelność
kodu
54. Moduły (ES5)
• IIFE (Immediately Invoked Function Expression)
• nie zaśmieca zakresu globalnego
55. Moduły (ES6)
• wykorzystaj narzędzia typu Browserify / Webpack,
• natywne moduły w przeglądarkach w trakcie
implementacji
56. Podsumowanie
• let/const
• template strings
• nowe sposoby deklarowania obiektów
• klasy
• map, filter, reduce (ES5)
• arrow functions
• for … of
• Promises
• Moduły
57. Pozostałe zagadnienia ES6
• Proxy
• Iteratory
• Generatory
• Symbol
• Map/Set, WeakMap/WeakSet
• rozszerzone standardowe API (Number, Math, Array)
58. Podsumowanie
• korzystaj z transpilatorów (Babel) aby korzystać z
ES6 w każdej przeglądarce
• ucz się zagadnień ES6 krok po kroku, nie trzeba od
razu znać wszystkiego
• większość nowości to tzw. syntactic sugar, ale
często bardzo przydatny, korzystaj z rozwagą
• ES6 jest teraźniejszością, warto go znać