jueves, 19 de diciembre de 2019

learning resources

freeCodeCamp videos
learncodeacademy videos

Patterns And Principles:
- http://principles-wiki.net/
- David Gómez - Midiendo la calidad de código
- No Tiene Nombre 31 - Algunas experiencias y opiniones sobre Domain Driven Design
- Alfredo Casado - OOP & Connascence

eXtreme Programming:
 - https://github.com/xpeppers/starway-to-orione
- Eduardo Ferro - Agilidad Hacia la entrega continua ¿Qué te lo impide?
- Luis Rovirosa - Desarrollando a velocidad de crucero

Reactjs:
- https://developer.microsoft.com/en-us/fabric#/components
- https://www.edx.org/course/react-router-and-redux

Achitecture
 - .NET Application Architecture - Reference Apps
 - Serverless apps Architecture with Azure Functions
 - Starting poing for Clean Architecture
 - Robert C. Martin - Clean Architecture

Craftmanship:
- Eduardo Ferro - Simplicidad para desarrolladores
- Modesto San Juan - TDD mi cuaderno de recetas
- Be SOLID my Tests - Mavi Jiménez
- S.O.L.I.D Python - Eduardo Ferro
- Carlos Bastos - Empezando por el principio (de diseño)
- Xavi Gost - Refactoring a Patrones, kata Mars Rovers
- Xavi Gost - Refactoring a Patrones, kata Gilded Rose
- Xavi Gost - Refactoring a Patrones, Kata Bowling
- Xavi Gost - Kata Potter
- Xavi Gost - Test Doubles
- Xavi Gost - SOLID

Non Tech:
- Katia Aresti - Entrevistas al borde de un ataque de nervios

Health
- Ergonomics Expert Explains How to Set Up Your Desk
- Prácticas saludables en la vida del programador
- Máximo Rendimiento Personal para Ingenieros

sábado, 23 de noviembre de 2019

Devil´s advocate technique

This is, in a nutshell, the Devil's Advocate technique. The intent isn't to break the software by sneaking in defects, but to explore how effectively the test suite detects bugs. In the current (simplified) example, the effectiveness of the test suite isn't impressive.
                                   source: https://blog.ploeh.dk/2019/10/07/devils-advocate/

viernes, 8 de noviembre de 2019

Some notes about Pluralsigth course: Encapsulation and SOLID by Mark Seemann

 - CQS for getting code simpler
 - More reading then writing code
 - Hide information (not public setters)
 - Not invalid states
 - Fail Fats
 - Never return null
 - SOLID, for making code more maintainable
rigidity: design difficult to change, easy to break
viscosity: no needed complexity, overkill design (simplicity)
 - Developers have  a tendency  to attempt  to solve specific problems with general solutions by Greg Young
 - Instead of being general code should be specific. by Greg Young
 - Following the SRP, each concrete class is very specific
 - Abstraction is the elimination of the irrelevant and the amplification of the essential by Robert C. Martin
 - Start with concrete behavior and discover abstractions as commonality emerges by rules of three
 - Favor composition over inheritance for example by strategy, decorator, ... patterns.
 - Don´t override inherited base class methods (Liskov Substitution Principle)
 - Implements all methods of inherited interface, don´t remove features from inherited class throwing NotSupportedException (Liskov Substitution Principle)
 - Prefer a tons of small, concrete, trial, simple and granular classes with a low level of abstraction, than a few classes with a lots of code.
 - Client should not depend on method that they do not use (Interface segregation principal)
 - Small interface with one operation.

martes, 1 de octubre de 2019

Aprendiendo algunas cosas sobre la refactorización

Ayer ví la charla que dio Yodra López en la AdaLoversConf

He anotado algunas cosas que me han gustado:
- Tener en cuenta que la aplicación legada es la que más aporta al negocio, aunque no siempre sea la mejor técnicamente hablando.
- Custodiar el valor que nos entregan.
- Pequeñas refactorizaciones cotidianas: mejorar el nombrado, extraer métodos, cuidar los parámetros a métodos.
- Ponerse en la piel del cliente, porque el dinero nos tiene que doler también a nosotros.
- Explicando la técnica de cambios paralelos como técnica para hacer una refactorización.

El repositorio de código del que parte el ejemplo: https://github.com/lean-mind/ultimate-refactoring-java

Hace poco leyendo el blog de Carlos Blé me encontré con este artículo que me ha gustado mucho y voy a intentar añadirlo en flujo de escribir código.

lunes, 15 de julio de 2019

Very simple file watcher

#!/bin/bash

chsum1=""

while [[ true ]]
do
    chsum2=`find koans/ -type f -exec md5sum {} \;`
    if [[ $chsum1 != $chsum2 ]] ; then
    printf "\033c" #clear screen       
        groovy AllKoans.groovy #command
        chsum1=$chsum2
    fi
    sleep 2
done

miércoles, 26 de junio de 2019

jueves, 13 de junio de 2019

documental sobre la informática en castellano

codigo linux: https://www.youtube.com/watch?v=CcOJIGgK-CQ
microsoft y apple: https://www.youtube.com/watch?v=bqErOWL0IQg
los primeros hackers: https://www.youtube.com/watch?v=bqErOWL0IQg
los inicios de la computación: https://www.youtube.com/watch?v=7eOKcLnm0Xo
la edad de oro del software español: https://www.youtube.com/watch?v=rwnukEgHiP4
Como IBM terminó usando MS-DOS en lugar de CP/M (1995): https://www.youtube.com/watch?v=k5C_xzG5N70
La historia de Microsoft visto desde el punto de vista de IBM y El sistema operativo QDOS: https://www.youtube.com/watch?v=j2OPK5gGTWI

Quote about software development

the “single responsibility” principle is a very effective heuristic for breaking up complexity, and developers shouldn’t be shy about creating new types

source: growing object oriented software guided by tests, pag. 126

jueves, 23 de mayo de 2019

online learning resources

https://www.coursera.org/
https://www.khanacademy.org/
https://www.udacity.com/
https://www.udemy.com/
https://www.udemy.com/
https://alison.com/
http://online.stanford.edu/courses
http://ocw.mit.edu/courses/
http://online-learning.harvard.edu/
https://www.edx.org/school/uc-berkeleyx
https://www.gutenberg.org/
http://www.textbookrevolution.org/index.php/Main_Page
https://open.umn.edu/opentextbooks/
http://collegeopentextbooks.org/
http://moocse.com/
https://www.coursebuffet.com/
https://coursefinder.io/
https://www.skillshare.com/
http://www.craftsy.com/clp/tv-home-1
https://www.busuu.com/
http://ureddit.com/
http://www.openculture.com/
http://mooc.es/
https://miriadax.net/home
http://formaciononline.eu/
https://iedra.uned.es/
http://unimooc.com/
http://ocw.uoc.edu/cooperacion/
https://openlibra.com/
https://www.class-central.com/
https://sharingacademy.com
https://teachlr.com
https://www.edx.org/es
https://redhoop.com/
https://www.mooc-list.com/
http://moocse.com/

jueves, 25 de abril de 2019