brunogama / CrossCuttingConcerns

Material para a apresentação da palestra "Implementando Interesses Transversais - um papo sobre arquitetura, DI e Design Patterns em Swift/iOS" no TDC Future 2021

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Error in user YAML: (<unknown>): could not find expected ':' while scanning a simple key at line 2 column 1
---
title: Implementando Interesses Transversais - um papo sobre
arquitetura, DI e Design Patterns em Swift/iOS
author: Cícero Camargo (CODEMUS)
date: Nov 30th 2021
---

Vamos começar pelo código

Commit: 2d1706305c5ad44b6e96ae1154f684bd7d28c9f2.

O que são Interesses Transversais?

Interesses Transversais (ou Cross-cutting Concerns) são, basicamente, trechos de código que não implementam Interesses de Negócio.

Exemplos:

  • Tracking
  • Caching
  • Threading
  • Logging
  • Medição de Performance, etc.

Aspect Oriented Programming

Um conjunto de técnicas e ferramentas para implementar Aspectos (wrappers de Interesses Transversais).

A ideia é:

  1. Extrair os Interesses Transversais para módulos separados
  2. Integrá-los aos Interesses de Negócio por meio de Interceptação de chamadas;

É muito popular em Java, mas dá para fazer em Swift? Sim! Como?

  • Method Swizzling 😅 (Hello Firebase, Facebook, etc.)
  • Código bem fatorado 😎 (principalmente com o uso do Decorator Pattern)

Bora melhorar esse código?

  • Threading (Decorator)
  • Caching (Decorator)
  • Tracking (Command + Observer)

Valeu!

About

Material para a apresentação da palestra "Implementando Interesses Transversais - um papo sobre arquitetura, DI e Design Patterns em Swift/iOS" no TDC Future 2021


Languages

Language:Swift 100.0%