Angular and Fabric8 Scale your development team usingScale your development team using Angular and...

24
Scale your development team using Angular and Fabric8 Pete Muir Technical Director Joshua Wilson Senior Software Engineer

Transcript of Angular and Fabric8 Scale your development team usingScale your development team using Angular and...

Page 1: Angular and Fabric8 Scale your development team usingScale your development team using Angular and Fabric8 Pete Muir Technical Director Joshua Wilson Senior Software Engineer

Scale your development team using Angular and Fabric8

Pete MuirTechnical Director

Joshua WilsonSenior Software Engineer

Page 2: Angular and Fabric8 Scale your development team usingScale your development team using Angular and Fabric8 Pete Muir Technical Director Joshua Wilson Senior Software Engineer

The challenge• <Globally distributed team> TODO find picture

Page 3: Angular and Fabric8 Scale your development team usingScale your development team using Angular and Fabric8 Pete Muir Technical Director Joshua Wilson Senior Software Engineer

The challenge

Diverse team - mix of skills and experience

Page 4: Angular and Fabric8 Scale your development team usingScale your development team using Angular and Fabric8 Pete Muir Technical Director Joshua Wilson Senior Software Engineer

The challenge• <Single pane of glass from multiple disparate systems>

Page 5: Angular and Fabric8 Scale your development team usingScale your development team using Angular and Fabric8 Pete Muir Technical Director Joshua Wilson Senior Software Engineer

The challenge

Page 6: Angular and Fabric8 Scale your development team usingScale your development team using Angular and Fabric8 Pete Muir Technical Director Joshua Wilson Senior Software Engineer
Page 7: Angular and Fabric8 Scale your development team usingScale your development team using Angular and Fabric8 Pete Muir Technical Director Joshua Wilson Senior Software Engineer
Page 8: Angular and Fabric8 Scale your development team usingScale your development team using Angular and Fabric8 Pete Muir Technical Director Joshua Wilson Senior Software Engineer

The challenge• Extensible

Page 9: Angular and Fabric8 Scale your development team usingScale your development team using Angular and Fabric8 Pete Muir Technical Director Joshua Wilson Senior Software Engineer
Page 10: Angular and Fabric8 Scale your development team usingScale your development team using Angular and Fabric8 Pete Muir Technical Director Joshua Wilson Senior Software Engineer

Angular – Components@Component({ selector: 'fb8-app', styleUrls: ['./app.component.scss'], templateUrl: './app.component.html'})export class AppComponent {

Page 11: Angular and Fabric8 Scale your development team usingScale your development team using Angular and Fabric8 Pete Muir Technical Director Joshua Wilson Senior Software Engineer

Angular - Injection● app.module.tsimport { AuthenticationService } from 'ngx-login-client'; @NgModule({ providers: [ AuthenticationService ]})export class AppModule { }

● codebases.service.ts@Injectable()export class CodebasesService { constructor( private auth: AuthenticationService) { if (this.auth.getToken() != null) { this.headers.set('Authorization', 'Bearer ' + this.auth.getToken()); } }}

Page 12: Angular and Fabric8 Scale your development team usingScale your development team using Angular and Fabric8 Pete Muir Technical Director Joshua Wilson Senior Software Engineer

Angular - Routing● app-routing.module.tsexport const routes: Routes = [ { path: '_home', loadChildren: './home/home.module#HomeModule' }]@NgModule({ imports: [RouterModule.forRoot(routes, { enableTracing: true })], exports: [RouterModule]})export class AppRoutingModule { }

Page 13: Angular and Fabric8 Scale your development team usingScale your development team using Angular and Fabric8 Pete Muir Technical Director Joshua Wilson Senior Software Engineer

Angular – JiT vs AoT

Page 14: Angular and Fabric8 Scale your development team usingScale your development team using Angular and Fabric8 Pete Muir Technical Director Joshua Wilson Senior Software Engineer

Webpack – resource-centric

Page 15: Angular and Fabric8 Scale your development team usingScale your development team using Angular and Fabric8 Pete Muir Technical Director Joshua Wilson Senior Software Engineer

Webpack – Bundles & Chunking

Page 16: Angular and Fabric8 Scale your development team usingScale your development team using Angular and Fabric8 Pete Muir Technical Director Joshua Wilson Senior Software Engineer

Typescriptprivate _context: Context;get context(): Context { if (this.router.url === '/_home') { return this._defaultContext; } else { return this._context; }}

Page 17: Angular and Fabric8 Scale your development team usingScale your development team using Angular and Fabric8 Pete Muir Technical Director Joshua Wilson Senior Software Engineer

RXJS – subscribing to eventsrouter.events.subscribe((val) => { if (val instanceof NavigationEnd) { this.broadcaster.broadcast('navigate', { url: val.url } as Navigation); this.updateMenus(); }});

Page 18: Angular and Fabric8 Scale your development team usingScale your development team using Angular and Fabric8 Pete Muir Technical Director Joshua Wilson Senior Software Engineer

RXJS – operators● map - http://jsbin.com/detozumale/1/edit?js,console ● filter - http://jsbin.com/qihagaxuso/1/edit?js,console ● withLatestFrom - http://rxmarbles.com/#withLatestFrom

Page 19: Angular and Fabric8 Scale your development team usingScale your development team using Angular and Fabric8 Pete Muir Technical Director Joshua Wilson Senior Software Engineer

RXJS - Replaying● http://jsbin.com/bekoxoqeke/1/edit?js,console

Page 20: Angular and Fabric8 Scale your development team usingScale your development team using Angular and Fabric8 Pete Muir Technical Director Joshua Wilson Senior Software Engineer

Fabric8 – Web of dependencies

Page 21: Angular and Fabric8 Scale your development team usingScale your development team using Angular and Fabric8 Pete Muir Technical Director Joshua Wilson Senior Software Engineer

Fabric8 - Releases

Page 22: Angular and Fabric8 Scale your development team usingScale your development team using Angular and Fabric8 Pete Muir Technical Director Joshua Wilson Senior Software Engineer

Fabric8 – per PR builds

Page 23: Angular and Fabric8 Scale your development team usingScale your development team using Angular and Fabric8 Pete Muir Technical Director Joshua Wilson Senior Software Engineer

What did we learn?• Angular moves fast - need a way to track it better

• RXJS produces unusable stack traces – need a way to add sanity

• Integrate early, integrate often

• PRs are good

• Testing this is hard

Page 24: Angular and Fabric8 Scale your development team usingScale your development team using Angular and Fabric8 Pete Muir Technical Director Joshua Wilson Senior Software Engineer

THANK YOUplus.google.com/+RedHat

linkedin.com/company/red-hat

youtube.com/user/RedHatVideos

facebook.com/redhatinc

twitter.com/RedHatNews