Skip to content

Instantly share code, notes, and snippets.

View vrogueon's full-sized avatar
:shipit:
Rust | Go | Js

Rodríguez Díaz de León Víctor vrogueon

:shipit:
Rust | Go | Js
View GitHub Profile
@vrogueon
vrogueon / dataclass.ts
Created July 26, 2022 22:32
Data Class Code Smell
// Data Class
class Address {
public street: string;
public city: string;
public state: string;
public zip: string;
public coordinates: Array<number>;
constructor(street: string, city: string, state: string, zip: string, coordinates: Array<number>) {
@vrogueon
vrogueon / refused_bequest.js
Created July 7, 2022 22:52
Refused Bequest
/*********************************************************************/
abstract class Animal {
public abstract caminar(): any;
public abstract maullar(): any;
public abstract ladrar(): any;
}
class Gato extends Animal {
public caminar() {
@vrogueon
vrogueon / observer.ts
Created April 8, 2022 22:39
Observer Pattern TS
interface IPublisher {
subscribe(observer: Observer): void
unsubscribe(observer: Observer): void
notify(news: String): void
}
interface IObserver {
update(news: string): void
}
// Crear una clase builder para un request http
// (Puede incluir URL, headers, body, timeout, etc…)
'use strict';
class httpBuilder {
url = function(url) {
this.url = url;
return this;
}
headers = function(headers) {
@vrogueon
vrogueon / decorator.ts
Created March 9, 2022 00:26
Decorator Pattern example in TS
interface IPrice {
calculate(input: number): number;
}
class BasePrice implements IPrice {
calculate(input: number): number {
return input;
}
}
@vrogueon
vrogueon / prototype.ts
Created February 19, 2022 00:13
Prototype Pattern
class ConnectionPrototype {
constructor(proto){
this.proto = proto;
return this.clone();
}
clone(){
let connection = new Connection(
this.proto.driver,
this.proto.server,
@vrogueon
vrogueon / js
Last active February 8, 2022 15:44
state machine
const paymentsStates = {
id: 'payments',
initial: 'inicial',
states: {
inicial: {
on: {
// Aquí se añaden 2 opciones en la transición, en la primera el
// camino exitoso y la occondición, en la segunda el camino al error
TRANSITION:
[
const pokemons = [
{
"id": 3,
"name": "Venusaur",
"type": ["Grass", "Poison"],
"base": {
"HP": 80,
"Attack": 82,
"Defense": 83,
}