Upgrade to Pro — share decks privately, control downloads, hide ads and more …

One weird trick that will make your development life easier forever

One weird trick that will make your development life easier forever

Talk Held at the Cocoaheads Berlin October 2015 Meeting

Code at https://github.com/zalando/ModularDemo

Oliver Eikemeier

October 21, 2015
Tweet

More Decks by Oliver Eikemeier

Other Decks in Programming

Transcript

  1. One weird trick that will make your development life easier

    forever Product owners hate him. 1 — © Zalando SE, 2015
  2. Building Blocks, Part 1 → The Dependency Inversion Principle1 1

    Robert C. Martin ‘96, objectmentor.com/resources/articles/dip.pdf 5 — © Zalando SE, 2015
  3. The Dependency Inversion Principle High level modules should not depend

    upon low level modules. Both should depend upon abstractions.2 2 Abstractions: Interfaces, Protocols 6 — © Zalando SE, 2015
  4. The Dependency Inversion Principle Abstractions should not depend upon details.3

    Details should depend upon abstractions. 3 Details: Implementation details 7 — © Zalando SE, 2015
  5. Building Blocks, Part 2 → Inversion of Control4 4 Martin

    Fowler ‘04, martinfowler.com/articles/injection.html 8 — © Zalando SE, 2015
  6. Inversion of Control Just Declare Static Dependencies, Leave Object Graph

    Composition to the Framework 9 — © Zalando SE, 2015
  7. Case Study We use a Service Locator as an IoC

    container → But Address the Common Problems of a Service Locator 10 — © Zalando SE, 2015
  8. Inversion of Control → No Need for Mocking → Decorators

    for AOP-Style Cross-Cutting Concerns → Configuration Changes in Deployed Apps → Feature Flags 12 — © Zalando SE, 2015
  9. Is It Any Good? Yes. Proven: Used Over the Last

    Two Years First Application: Monolithic Objective-C Legacy App 15 — © Zalando SE, 2015
  10. Is It Any Good? Yes. Makes Development Fast, Modules Testable

    Plays Well with Continuous Integration 16 — © Zalando SE, 2015
  11. Hipster service In object-oriented programming, the use of interfaces as

    an architectural pattern to construct modules is known as protocol-oriented programming. 17 — © Zalando SE, 2015
  12. Hipster service Microservices is a software architecture style in which

    complex applications are composed of small, independent modules communicating with each other. These services are small, highly decoupled and focus on doing a small task, facilitating a modular approach to system-building. 18 — © Zalando SE, 2015
  13. Thank You! Questions?5 5 Even though “Déjà Vu” is French

    for “already seen”, it actually is used to describe the strange feeling you get when you're in a situation, and feel like you've been in the exact same situation before, but really haven't. 20 — © Zalando SE, 2015