REvolution, czyli o bardziej obiektowym podejciu w RailsachThe Software House
油
Prezentacja z meetupu Uszanowanko Programowanko #3 http://www.uszanowanko.pl/rubyonrails
REvolution - czyli o bardziej obiektowym podejciu w rozwizaniach kolejowych
Framework Ruby on Rails pozwala na szybkie i stosunkowo atwe tworzenie aplikacji webowych w jzyku Ruby. Mo甜na powiedzie, 甜e podejcie zwane The Rails Way w wielu przypadkach zdao sw坦j egzamin. Szybko jednak okazao si, 甜e to podejcie nie sprawdza si w przypadku bardziej zo甜onych system坦w. Logika biznesowa w kontrolerach, wypasione modele, logika w szablonach og坦lnie m坦wic chaos. Potrzebna bya (r)ewolucja...
Autor: Tomek Jasiulek
Om坦wienie podstawowych wzorc坦w projektowych oraz zasad architektonicznych na przykadzie aplikacji ASP.NET, ale w wikszoci niezale甜nych od stosowanej technologii. Najwa甜niejsze zao甜enia domain-driven design, SOLID principles, itp.
Co nowego w VS 2013 dla programist坦w ASP.NET?Bartlomiej Zass
油
Sesja z konferencji Microsoft Technology Summit 2013 na temat nowoci, kt坦re pojawiy si w ASP.NET 4.5.1 oraz Visual Studio 2013 dla web deweloper坦w. Poruszane zagadnienia to m.in.: zmiany w IDE / Web Essentials, Web Forms, ASP.NET MVC 5, OWIN, SignalR, Web API 2
Prezentacja opisuje r坦甜ne techniki optymalizacji aplikacji ASP.NET. Omawiane s role poszczeg坦lnych warstw wpywajcych na wydajno - od optymalizacji kodu po stronie klienta (techniki stosowane na poziomie kodu HTML i JavaScript) przez r坦甜ne poziomy stosowania cache, wybrane ustawienia konfiguracyjne IIS a甜 po same techniki optymalizacji na poziomie kodu ASP.NET.
Prezentacja z pierwszego spotkania grupy GDG Rzesz坦w kt坦re odbyo si 9 marca 2016. Zapiski procesu poznawania generatora i mechanizm坦w pracy z Angular2.
REvolution, czyli o bardziej obiektowym podejciu w RailsachThe Software House
油
Prezentacja z meetupu Uszanowanko Programowanko #3 http://www.uszanowanko.pl/rubyonrails
REvolution - czyli o bardziej obiektowym podejciu w rozwizaniach kolejowych
Framework Ruby on Rails pozwala na szybkie i stosunkowo atwe tworzenie aplikacji webowych w jzyku Ruby. Mo甜na powiedzie, 甜e podejcie zwane The Rails Way w wielu przypadkach zdao sw坦j egzamin. Szybko jednak okazao si, 甜e to podejcie nie sprawdza si w przypadku bardziej zo甜onych system坦w. Logika biznesowa w kontrolerach, wypasione modele, logika w szablonach og坦lnie m坦wic chaos. Potrzebna bya (r)ewolucja...
Autor: Tomek Jasiulek
Om坦wienie podstawowych wzorc坦w projektowych oraz zasad architektonicznych na przykadzie aplikacji ASP.NET, ale w wikszoci niezale甜nych od stosowanej technologii. Najwa甜niejsze zao甜enia domain-driven design, SOLID principles, itp.
Co nowego w VS 2013 dla programist坦w ASP.NET?Bartlomiej Zass
油
Sesja z konferencji Microsoft Technology Summit 2013 na temat nowoci, kt坦re pojawiy si w ASP.NET 4.5.1 oraz Visual Studio 2013 dla web deweloper坦w. Poruszane zagadnienia to m.in.: zmiany w IDE / Web Essentials, Web Forms, ASP.NET MVC 5, OWIN, SignalR, Web API 2
Prezentacja opisuje r坦甜ne techniki optymalizacji aplikacji ASP.NET. Omawiane s role poszczeg坦lnych warstw wpywajcych na wydajno - od optymalizacji kodu po stronie klienta (techniki stosowane na poziomie kodu HTML i JavaScript) przez r坦甜ne poziomy stosowania cache, wybrane ustawienia konfiguracyjne IIS a甜 po same techniki optymalizacji na poziomie kodu ASP.NET.
Prezentacja z pierwszego spotkania grupy GDG Rzesz坦w kt坦re odbyo si 9 marca 2016. Zapiski procesu poznawania generatora i mechanizm坦w pracy z Angular2.
Symfony jest z jednej strony kompleksowym frameworkiem, z drugiej zbiorem samodzielnych i niezale甜nych komponent坦w. Jest atwy do nauki i jednoczenie szeroko konfigurowalny. Sprawdza si zar坦wno dla maych jak i du甜ych projekt坦w. Prac z nim cechuje szybkie tworzenie aplikacji.
Webpack - Czym jest webpack i dlaczego chcesz go u甜ywa? - wersja kr坦tkaMarcin Gajda
油
鰻温姻噛糸噛庄温 takie jak Grunt i Gulp s coraz czciej wypierane z u甜ycia przez swojego nastpce, webpacka. Wynika to z prostego powodu w kwestii pakowania asset坦w rozwizuje on domylnie wiele problem坦w, z kt坦rymi tamte narzdzia radz sobie gorzej. Ta prezentacja omawia te zagadnienia i pokazuje jak skonfigurowa webpacka od zera.
O koncepcie Venia Storefront w Magento opowiada podczas 6. edycji Meetupu Piotr Makowski - Senior Frontend Developer i Certyfikowany Magento Frontend Developer z VIRTUA
Language: Polish
Rok 2015 przynosi spore zmiany w rodowisku .NET. Cakiem nowy ASP.NET, .NET Core, C# 6.0 czy Entity Framework 7 to tylko niekt坦re z nowoci, kt坦rych mo甜emy spodziewa w tym roku. Na wykadzie chciabym opowiedzie o nowych mo甜liwociach czekajcych na .netowc坦w w poowie roku.
Wprowadzenie do technologi Big Data i Apache HadoopSages
油
The document introduces concepts related to Big Data technology including volume, variety, and velocity of data. It discusses Hadoop architecture including HDFS, MapReduce, YARN, and the Hadoop ecosystem. Examples are provided of common Big Data problems and how they can be solved using Hadoop frameworks like Pig, Hive, and Ambari.
Vert.x v3 - high performance polyglot application toolkitSages
油
Vert.x is a polyglot application toolkit for building reactive applications on the JVM. It is designed for developing asynchronous and event-driven applications with non-blocking code using a lightweight and fast thread pool. Vert.x allows building distributed applications by deploying Verticles across multiple nodes that communicate via a distributed event bus.
Wprowadzenie do technologii Big Data / Intro to Big Data EcosystemSages
油
Introduction to Hadoop Map Reduce, Pig, Hive and Ambari technologies.
Workshop deck prepared and presented on September 5th 2015 by Radosaw Stankiewicz.
During that the day participants had also the possibility to go through prepared tutorials and test their analysis on real cluster.
Codepot - Pig i Hive: szybkie wprowadzenie / Pig and Hive crash courseSages
油
Szybkie wprowadzenie do technologii Pig i Hive z ekosystemu Hadoop. Prezentacja wykonana w ramach warsztat坦w Codepot w dniu 29.08.2015. Prezentacja wykonana przez Radosawa Stankiewicza oraz Bartomieja Tartanusa.
Introduction to Hadoop Map Reduce, Pig, Hive and HBase technologies.
Workshop deck prepared and presented on May 30th 2015 by Radosaw Stankiewicz.
During that day participants had also possibility to go through prepared tutorials and test their analysis on real cluster.
3. Prowadzcy szkolenie
Tomasz Sukowski
Trener IT
FrontEnd Engineer
Cel i plan szkolenia
Obowizki bie甜ce
Pytania, dyskusje, potrzeby
Elastyczno zagadnie
5. "Node Package Manager"
system zarzdzania zale甜nociami dla油server-side js i client-side js
zale甜noci opisywane z dokadnoci do油wersji w油pliku package.json
(nowy projekt tworzymy poleceniem npm init)
npm install
- instaluje pakiety, kt坦rych jeszcze nie ma w projekcie
npm update
- sprawdza, czy istniej nowsze wersje pakiet坦w i instaluje
npm install nazwa-pakietu --save lub --save-dev
- instaluje pakiet, dodaje go do package.json
przydatne skr坦ty:
npm init -y , npm i -S , npm i -D
9. ES2015 - narzdzia
Kod ECMAScript 2015 mo甜emy transpilowa
dla油starszych przegldarek
Do wyboru: Traceur, TypeScript, Babel
Warto:
szybki rozw坦j js, wicej mo甜liwoci ju甜 dzi, mniej
boilerplate code, ...
Transpilers are here to stay
10. ES2015 - arrow functions
// Domylnie - zwraca wyra甜enie
var odds = myArr.map(v => v + 1);
var nums = myArr.map((v, i) => v + i);
var pairs = myArr.map(v => ({even: v, odd: v + 1}));
// Deklaracje umieszczamy w klamrach
nums.forEach(v => {
if (v % 5 === 0) fives.push(v);
});
// Leksykalne this
var bob = {
_name: "Bob",
_friends: [],
printFriends() {
this._friends.forEach(f =>
console.log(this._name + " knows " + f));
}
}
11. ES2015 - klasy
class Student extends Person {
constructor(name, age, major) {
super(name, age);
this.major = major;
}
greet(greeting) {
console.log(greeting, this.name);
}
get year() {
return (new Date()).getFullYear() - this.age;
}
set age(age) {
this.age = parseInt(age);
}
static defaultAge() {
return 18;
}
12. ES2015 - let, const
function f() {
let x;
{
// let i const maj zasig blokowy
const x = "sneaky";
// const nie mo甜e zmieni referencji
x = "foo";
}
// bd, nie mo甜na ponownie zdefiniowa
let x = "inner";
}
13. ES2015 - moduy
// lib/math.js
export function sum(x, y) {
return x + y;
}
export var pi = 3.141593;
export default var name = "Math module";
// app.js
import * as math from "lib/math";
alert("2 = " + math.sum(math.pi, math.pi));
// otherApp.js
import name from "lib/math";
import {sum, pi} from "lib/math";
alert("2 = " + sum(pi, pi));
15. TypeScript
Superset ECMAScrtipt 2015
z elementami ES2016 i 2017
oraz z silnym typowaniem
Konieczna jest transpilacja (do ES2015, ES5 lub ES3)
Bdy w typach wyapywane na etapie kompilacji i przez IDE
Instalacja: npm i -g typescript
Kompilacja: tsc my-app.ts
Linting: npm i -D tslint
16. TypeScript: u甜ycie z bibliotekami js
Mo甜emy korzysta z zewntrznych bibliotek bez potrzeby
ich mody鍖kacji
Potrzebujemy de鍖nicji ich interfejs坦w
Przechowujemy je w plikach *.d.ts
Publikowane pliki de鍖nicji dla popularnych bibliotek
instalujemy za pomoc npm
17. TypeScript: typy
typ: przykadowe wartoci:
boolean true, false
number liczby, Infinity, NaN
string znaki, cigi znak坦w
[] tablice innych typ坦w, np. number[], boolean[]
{} obiekt
undefined nie zde鍖niowany
18. TypeScript: typy
typ: przykadowe wartoci:
enum wylistowanie, np. { Admin, Publisher, User }
any dowolny typ
void nic
-
w przypadku braku okrelenia typu,
TypeScript油mo甜e si go "domyli" (type inference)
19. TypeScript: klasy
class Person {
dateOfBirth: number; // publiczna wasno
private verified: boolean; // prywatna wasno
constructor(
name: string, // definicja parametru
public city: string, // i publicznej wasnoci
age?: number // parametr opcjonalny
) {
/* ... */
}
}
22. @NgModule
Narzdzie do organizacji struktury aplikacji
Zawieraj powizane ze sob komponenty, dyrektywy i pipes
Wszystkie podstawowe funkcjonalnoci Angulara s zawarte
w油moduach (FormsModule, HttpModule, RouterModule)
Mog by lazy- lub eager loaded
Aplikacja zawiera jeden g坦wny modu, kt坦ry su甜y do jej
wystartowania (bootstrap) i importuje pozostae moduy
Deklarujemy jako klas z dekoratorem @NgModule
23. @NgModule
interface NgModule {
providers : Provider[]
lista usug dostpnych w danym module
declarations : Array<Type<any>|any[]>
lista komponent坦w, dyrektyw i pipes dostpnych w danym module
exports : Array<Type<any>|any[]>
lista komponent坦w, dyrektyw i pipes, kt坦re modu udostpnia na zewntrz
imports : Array<Type<any>|ModuleWithProviders|any[]>
lista innych modu坦w, kt坦re eksportuj potrzne nam rzeczy
bootstrap : Array<Type<any>|any[]>
root component moduu - g坦wny komponent g坦wnego moduu
}
24. Bootstrapping the app
import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { platformBrowserDynamic }
from '@angular/platform-browser-dynamic';
@NgModule({
imports: [ BrowserModule ]
})
export class AppModule { }
const platform = platformBrowserDynamic();
platform.bootstrapModule(AppModule);
30. Komponent: komunikacja w obie strony
<input [ngModel]="name" (ngModelChange)="name=$event">
// Skr坦cony zapis:
<input [(ngModel)]="name">
Poczenie komunikacji "z" i "do"
Wykorzystujemy do tego dyrektyw ngModel
[(ngModel)]
31. U甜ywanie komponent坦w
Aby m坦c wykorzysta komponent w szablonie innego
komponentu, nale甜y doda go do listy u甜ywanych dyrektyw
a w celu u甜ycia w innych moduach - wyeksportowa
@NgModule({
declarations: [
TodoInputComponent,
TodoListComponent,
TodoComponent
],
imports: [ ],
exports: [ TodoComponent ]
})
class MySharedModule {}
33. @Directive
Dyrektywa mody鍖kuje DOM* zmieniajc jego wygld
lub油zachowanie
W Angular wyr坦甜niamy 3 rodzaje dyrektyw:
1. Komponenty - dyrektywy z szablonami
2. Dyrektywy atrybutowe - zmieniaj zachowanie
komponentu/elementu ale nie wpywaj na jego szablon
3. Dyrektywy strukturalne - zmieniaj zachowanie
komponentu/elementu przez mody鍖kacj jego szablonu
36. Dyrektywy strukturalne
<div *ngFor="let item of todoList; let i = index"> ... </div>
Wbudowane dyrektywy strukturalne:
<div *ngIf="completed"> </div>
<div [ngSwitch]="item.status">
<p *ngSwitchCase="'completed'"> Completed <p>
<p *ngSwitchCase="'in-progress'"> Working on it <p>
<p *ngSwitchDefault="'in-progress'"> Working on it <p>
</div>
dostpne wartoci: index, first, last, even, odd
38. Wstrzykiwanie zale甜noci
Klas rozszerzon dekoratorem (np. @Injectable)
@Injectable()
class TodosService {
constructor() {}
}
class TodoItemComponent {
constructor(ts: TodosService) {} // skr坦cony zapis
// constructor(@Inject(TodosService) ts) {} // peen zapis
}
i油zarejestrowan jako provider
mo甜emy wstrzykn do konstruktor坦w innych klas
@NgModule({
providers: [
TodoService,
39. Wstrzykiwanie zale甜noci - Singletons?
Domylnie mechanizm DI zwraca singletony
Mo甜emy jednak utworzy wicej iniektor坦w
Uzyskujc, analogicznie jak w przypadku komponent坦w, struktur
drzewiast
@Component({
providers: [Todos]
})
Komponent, kt坦ry ma zde鍖niowane w ten spos坦b usugi,
nie油bdzie油szuka ich instancji wy甜ej w drzewie komponent坦w,
tylko powoa nowe
41. Routing: definicja
Routing (dostpny z '@angular/router') dostarczamy do aplikacji
jako ModuleWithProviders
Przekazujemy do niego tablic Route De鍖nition Object
export const routing: ModuleWithProviders =
RouterModule.forRoot(appRoutes);
const appRoutes = [
{path: '', component: HomePageComponent},
{path: 'users/:id', component: UserProfileComponent}
]
gdzie tablica zawiera elementy opisane interfejsem Route
42. Routing: wywietlanie
Komponent pasujcy do aktualnej cie甜ki zostanie zaadowany
wewntrz komponentu RouterOutlet
Za generowanie adresu na potrzeby linku odpowiada dyrektywa
router-link
@Component({
selector: 'main-app',
template: `<main>
<a [routerLink]="['/Contact']"
routerLinkActive="active">Contact</a>
<div style="border: 1px solid black">
<router-outlet></router-outlet>
</div>
</main>`})
43. Angular 4 Style Guide
Zestaw wskaz坦wek dotyczcych sposobu pisania aplikacji
w油Angular 4
Styleguide dla AngularJS by rozwijany przez spoeczno i
dostpny na GitHubie
Styleguide dla Angular 4 jest mocniej wspierany przez tw坦rc坦w
frameworka i dostpny w ramach o鍖cjalnej dokumentacji
(https://angular.io/docs/ts/latest/guide/style-guide.html)
Wikszo uwag to sugestie, warto przeanalizowa, czy
odpowiadaj naszym potrzebom
44.
Zapoznaj si z ofert szkoleniow
Podczas naszych szkole:
- pracujemy w grupach 4-8 osobowych
- program mo甜e by dostosowany do oczekiwa grupy
- rozwizujemy i odpowiadamy na indywidualne pytania uczestnik坦w
- mamy du甜o wicej czasu :)
Chcesz wiedzie wicej?
45.
I odbierz na nie zni甜k w wysokoci 35%
Angular 2 - budowanie nowoczesnych i wydajnych aplikacji
przegldarkowych
Budowanie wydajnych i nowoczesnych aplikacji webowych w
oparciu o React, Flux i powizane technologie
Efektywne tworzenie aplikacji webowych z wykorzystaniem
AngularJS, HTML5 i JavaScript
Wybierz jedno z poni甜szych szkole