Skip to content

Instantly share code, notes, and snippets.

View luque's full-sized avatar

Rafael Luque luque

  • http://www.osoco.es
  • Madrid, Spain
View GitHub Profile
@luque
luque / ES y CQRS desde las trincheras
Last active July 12, 2017 11:57
Event Sourcing y CQRS desde las trincheras
Event sourcing es una aproximación distinta de la tradicional (salvo en algunos sectores) al concepto de persistencia
de una aplicación, que aunque ni mucho menos nueva, está empezando a considerarse cada vez con más frecuencia como una
opción interesante en algunos contextos.
Tanto event sourcing como CQRS (Command-Query Responsibility Segregation) constituyen un potente paradigma de arquitectura
del que se puede sacar un gran partido, pero que como todo, no está exento de trampas a evitar y detalles a tener en cuenta
si se quiere aplicar con éxito.
En OSOCO hemos aplicado en profundidad la arquitectura ES/CQRS en nuestro último proyecto y hemos tenido la ocasión de
aprender en nuestras propias carnes algunas lecciones valiosas cometiendo numerosos errores por el camino.
@luque
luque / join-osoco-ux-designer
Last active May 27, 2017 06:15
Diseñadores UX en OSOCO
Diseñadores UX en OSOCO
=======================
En OSOCO estamos buscando diseñadores de experiencia de usuario (UX) para unirse a nuestro equipo y colaborar en nuestros próximos proyectos. Buscamos profesionales con diferentes niveles de experiencia y conocimiento.
Los seleccionados participarán en proyectos relacionados con Internet (comercio electrónico, redes sociales, aplicaciones móviles) basados en tecnologías open source y en servicios de cloud computing como Amazon Web Services (AWS).
Los seleccionados se integrarán en equipos de profesionales altamente cualificados, que emplean metodologías ágiles (XP/SCRUM) para autoorganizarse y poder realizar entregas frecuentes de software que funciona y responde a las necesidades de nuestros clientes.
* ¿Qué ofrecemos?
@luque
luque / join-osoco-developers
Last active May 27, 2017 06:12
Desarrolladores en OSOCO
Desarrolladores de Software en OSOCO
====================================
En OSOCO estamos buscando ingenieros de software para unirse a nuestro equipo y colaborar en nuestros próximos proyectos. Buscamos profesionales con diferentes niveles de experiencia y conocimiento --- seniors, juniors e incluso sin experiencia --- en cualquiera de las siguientes áreas de desarrollo:
* Desarrollo de software backend.
* Desarrollo de software frontend.
* Desarrollo de aplicaciones móviles.
Los seleccionados participarán en proyectos relacionados con Internet (comercio electrónico, redes sociales, aplicaciones móviles) basados en tecnologías open source y en servicios de cloud computing como Amazon Web Services (AWS).
@luque
luque / POODR book review notes
Created April 22, 2017 15:48
POODR book review notes
Practical Object-Oriented Design in Ruby
=========================================
by Sandi Metz
@luque
luque / Notes about Redux
Last active July 27, 2016 23:57
Notes about Redux
= Flux Architecture =
Flux is the application architecture that Facebook uses for building client-side web applications.
It complements React's composable view components by utilizing a unidirectional data flow.
It's more of a pattern rather than a formal framework..
== Overview ==
@luque
luque / Notes on Exploring CQRS and Event Sourcing
Created June 16, 2016 21:01
Notes on Exploring CQRS and Event Sourcing
Journey 1. Our Domain
----------------------------------------------------------------------
* Overview of the system
* Nonfunctional requirements
** Scalability:
Although cloud platforms such as Azure enable you to scale applications by adding (or removing) role instances, you must still design your application to be scalable. By splitting responsibility for the application's read and write operations into separate objects, the CQRS pattern allows Contoso to split those operations into separate Azure roles that can scale independently of each other. This recognizes the fact that for many applications, the number of read operations vastly exceeds the number of write operations. This gives Contoso the opportunity to scale the conference management system more efficiently, and make better use of the Azure role instances it uses.
@luque
luque / Notes on Understanding 4 Rules of Simple Design
Last active June 3, 2016 07:43
Notes on Understanding 4 Rules of Simple Design
Understanding the 4 Rules of Simple Design
==========================================
by Corey Haines.
# Highlighted Quotes
- If you simply follow Kent Beck's rules of simple design, then you'll see how every good design principle you've ever heard of reduces to some cobinations of "remove duplication" and "improve names".
- There are many levels of design decisions, ranging from the large up-front thinking to the almost continuous decisions made around things such as naming variables and extracting methods --> low-level design.
@luque
luque / gist:4fdb10e386a45f513ff910e5f8d0ac3b
Created April 1, 2016 13:33
Tool-oriented programming
Tool-oriented programming
(My current view on how programming should look)
1. Everyone should be able to program her own computer fluently, to create her own software (because of a whole lot of reasons: from increase in productivity and self-sustainability to better general education and creative thinking, more freedom and cooperation, etc). For this we need to “change programming — turn it from a difficult and obscure art into something that's understandable by [normal] people” (http://worrydream.com/LearnableProgramming/).
2. When talking about programming technology from its user’s point of view, the “programming language” part of it is typically overemphasized: equally important parts are IDE (with various code and data visualization and manipulation tools), and the way how you program, and perhaps also social infrastructure of this technology (how you interact with its community to learn from them and to solve problems). When trying to reinvent the programming with the user in mind, we should consider
@luque
luque / gist:c5fefb2745d850a2420d27eaf14e0399
Created April 1, 2016 13:26
Why Programming Languages Are Broken and How We Can Fix Them
From http://arstechnica.com/gadgets/2015/10/hp-and-sandisk-join-forces-to-finally-bring-memristor-like-tech-to-market/
(This is a draft. Corrections are welcome.)
In the term “programming language” the word “language” is probably very misleading, causing a lot of trouble when people apply to it what is specific to human languages. Examples are: 1) trying to understand what other human meant by reading her code; 2) the idea that in order to collaborate we must agree on which specific programming language we will use.
Human language (like English) is a medium for conveying meaning between humans; we use it in daily life to communicate interactively and understand each other.
Computer language is a medium for giving to computer a set of precise instructions by the programmer. This communication between programmer and computer is quite specific and unlike communication between humans: it goes one way (computer does not speak this language, it only listens to it), and it is unintelligently precise: computer wil
@luque
luque / fosdem-2016-references
Created February 4, 2016 17:21
Fosdem 2016 References
* https://fosdem.org/2016/schedule/event/midpointidm/
* https://fosdem.org/2016/schedule/event/arguman/
* https://fosdem.org/2016/schedule/event/brainduino/
* http://icedtea.classpath.org/wiki/Thermostat
* https://fosdem.org/2016/schedule/event/hystrix/
* https://fosdem.org/2016/schedule/event/jigsaw2016/
* https://fosdem.org/2016/schedule/event/hardening_config_management/
* https://fosdem.org/2016/schedule/event/geo_openjourney/
* https://fosdem.org/2016/schedule/event/literate_devops_for_configuration_management/