Download presentation
Presentation is loading. Please wait.
Published bySteven Dixon Modified over 8 years ago
1
350 parts
2
i-bank functional structure ▪technical modules – authentication – auditing – user profile – OTP functionality – e-mail notifications – push notifications – etc ▪business modules – deposits – cards – loans – bill payments – investments – transaction files – etc
3
i-bank code structure ▪15 technical modules ▪35 business modules ▪350 projects ▪240k lines
4
ALM planning defining designing building deployment testing
5
modular design business area designing building deployment testing designing building deployment testing designing building deployment testing planning defining planning defining planning defining
6
modular design customer component (c# project) product component (c# project) order component (c# project) day #1 designing building deployment testing designing building deployment testing designing building deployment testing
7
modular design customer component (c# project) product component (c# project) order component (c# project) day #2 designing building deployment testing designing building deployment testing designing building deployment testing
8
circular reference customer component (c# project) product component (c# project) order component (c# project) day #3 designing building deployment testing designing building deployment testing designing building deployment testing
9
modular design customer component (c# project) product component (c# project) order component (c# project) day #4 designing building deployment testing designing building deployment testing designing building deployment testing
10
modular design customerproductorder component (c# project) day #5 designing building deployment testing
11
dependency resolution customer component (c# project) product component (c# project) order component (c# project)
12
modular design component implementation component interface component (folder) component publishing component implementation component interface component (folder) component publishing component implementation component interface component (folder) component publishing c# projects customer productorder implementation projects web service dependency rdbms dependency
13
component interface data contractsservice interfaces very simple reusable methods classes vs interfaces
14
invalid paths component implementation c# projects component interface component (folder) component publishing customer component (folder) component implementation component interface component publishing product component implementation component interface component (folder) component publishing order
15
valid paths c# projects component implementation component interface component (folder) component publishing customer component implementation component interface component (folder) component publishing order component implementation component interface component (folder) component publishing product
16
modular design component implementation component interface component (folder) component publishing customer component implementation component interface component (folder) component publishing product component implementation component interface component (folder) component publishing order nuget packages
17
interfaceimplementation c# decoupling tools extension methods
18
type mapping c# decoupling toolsextension methods
19
dependency propagation component (c# project) unit component (c# project) unit component (c# project) unit component (c# project) unit component (c# project) unit application high level libraries low level libraries configuration db connection logging c# decoupling tools dependency injection
20
dependency resolution component (c# project) unit component (c# project) unit component (c# project) unit component (c# project) unit component (c# project) unit application high level libraries low level libraries configuration factory abstract factory static factory service locator c# decoupling tools dependency injection
21
controller constructor c# decoupling tools dependency injection
22
simple injector configuration c# decoupling tools dependency injection
23
1 st upload (Sept 2014) ▪255k lines ▪30% Duplicated Code (49k lines, 9.5k units) ▪11k C# lines 61+ LOC ▪2k C# lines McCabe 26+ ▪1k C# lines > 4 Parameters
24
1 st upload (Sept 2014) ▪255k lines ▪30% Duplicated Code (49k lines, 9.5k units) ▪11k C# lines 61+ LOC ▪2k C# lines McCabe 26+ ▪1k C# lines > 4 Parameters
25
unit & module guidelines ▪short units of code – up to 15 lines ▪simple units of code – up to 4 branch points ▪write code once ▪small unit interface ▪separate concerns in modules – small modules refactoring techniques extract method extract object unit: method, function module: file, class, function
26
module guidelines ▪loosely coupled components – small module interface ▪balanced number & size of top level components ▪small codebase
27
technology & tools ▪ TypeScript ▪ npm, bower, gulp, tsd, … ▪ internal package repository (Nexus) ▪ build automation (TFS) ▪ maintainability tools (SonarLint) ▪ maintainability monitoring (SIG, SonarQube)
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.