Skip to content

Instantly share code, notes, and snippets.

View gbrennon's full-sized avatar
🏠
Working from home

Glauber Brennon gbrennon

🏠
Working from home
  • São Paulo/SP - Brazil
  • 04:58 (UTC -03:00)
View GitHub Profile

Dependency Injection - Principles, Practices and Patterns

Book by Mark Seemann and Steven van Deursen

This document serves as a distilled summary of the book, tailored for a Node.js and TypeScript context.

Note

At the end of this summary, you will find section How We Do DI at Tactile which outlines our approach to Dependency Injection together with Clean Code and Unit Testing.

The book explores the core concepts of dependency injection, emphasising its role in promoting loose coupling, testability, and adherence to SOLID principles. It covers foundational DI patterns, anti-patterns, and advanced practices like Pure DI, lifetime management and Cross-Cutting Concerns with Aspect Oriented Programming.

@gbrennon
gbrennon / Effective Scala Case Class Patterns.md
Created February 27, 2022 16:26 — forked from chaotic3quilibrium/Effective Scala Case Class Patterns.md
Article: Effective Scala Case Class Patterns - The guide I wished I had read years ago when starting my Scala journey

Effective Scala Case Class Patterns

Version: 2022.02.25a

Available As

@gbrennon
gbrennon / domain_events_example.py
Created February 26, 2021 01:13 — forked from objarni/domain event class in Python
Simplistic Domain Events Python
# coding: utf-8
import unittest
# Unit tests for kata 'domevent'
''' Synchronous domain events in pure Python.
#- triggering an event
#- registering a callback
#- triggering an event with 1 handler
#- triggering an event with 2 handlers
@gbrennon
gbrennon / django_signals_slugify.py
Created August 1, 2018 14:22 — forked from matheusho/django_signals_slugify.py
Django : Generate unique slug
# import signals and slugify
from django.db.models import signals
from django.template.defaultfilters import slugify
# function for use in pre_save
def yourmodel_pre_save(signal, instance, sender, **kwargs):
if not instance.slug:
slug = slugify(instance.attribute) # change the attibute to the field that would be used as a slug
new_slug = slug
@gbrennon
gbrennon / fields.py
Created June 28, 2018 23:56 — forked from yprez/fields.py
Django rest framework - Base64 image field
import base64
from django.core.files.base import ContentFile
from rest_framework import serializers
class Base64ImageField(serializers.ImageField):
def from_native(self, data):
if isinstance(data, basestring) and data.startswith('data:image'):
# base64 encoded image - decode
@gbrennon
gbrennon / Ionic gulp
Created December 29, 2016 15:32 — forked from netsensei/Ionic gulp
Extends Ionics' default Gulp.js with a scripts & bower-files task. Moves app/ source outside the www folder.
var gulp = require('gulp');
var concat = require('gulp-concat');
var sass = require('gulp-sass');
var minifyCss = require('gulp-minify-css');
var rename = require('gulp-rename');
var gulpBowerFiles = require('gulp-bower-files');
var paths = {
sass: ['./scss/**/*.scss'],
scripts: ['./app/**/*.js', './app/*.js']
worker_processes 10;
events {
worker_connections 1024;
}
http {
include /etc/nginx/mime.types;
gzip on;