Discover and read the best of Twitter Threads about #CleanCode

Most recents (20)

El otro día me preguntarón cómo se me ocurrían tantas ideas para escribir uno o dos hilos diarios y además la newsletter semanal

[ H I L O ] ⇩
Las ideas nacen por la exposición de unas ideas a otras. Las ideas no nacen aisladas.

Me exongo a idea sde otros.

Leo y escucho mucho contenido de calidad.

El gran mito de la creatividad es pensar que necesitamos iluminarnos en un momento eureka.
No va así y lo he aprendido no hace mucho.

La creatividad nace de exponerte a ideas de otros para que copulen con las tuyas.

De sus relaciones nacen nuevas ideas tan grandes como la de los principios SOLID que no son exclusivas del tito bob.

De otra forma es imposible.
Read 5 tweets
Cómo aprendí de un niño a explicar desarrollo de software de una forma diferente

[ H I L O ] ⇩
Los niños tienen mucho que enseñar a los adultos.

Mi hijo cuando tenía 3 años más o menos, me enseñó explicarle las cosas.

Si, así de sencillo y de complicado a la vez.
Los padres siempre estamos queríendo enseñar cosas a nuestros hijos pero sobre todo con el primero no sabemos como hacerlo bien.

Los 3 años es una edad en la que los niños empiezan a hacer muchas preguntas.

El principal problema es que no adecuamos el lenguaje a su vocabulario.
Read 10 tweets
El grifo de la creatividad en el diseño de software

[ H I L O ] ⇩
En el parque donde voy con los niños hay una fuente, y esa fuente tiene un problema.

Es el mismo problema que tiene la mayoría, y probablemente tú también, para escribir código con un buen diseño.

Si crees que no eres creativo, o que no escibes código con suficiente calidad ...
... atención a esto:

El agua llega a la fuente por un largo tubo que, aunque oculto, estaba muy cerca de la superficie.

El problema esta en que el sol, en el ardiente verano de Madrid, lo convertía en un tubo lleno de agua caliente.
Read 8 tweets
El otro día me preguntaron que roadmap recomendaría alguien que esta empezando o a alguien que quiere saber más allá de frameworks.

Comparto por aquí lo que recomendé por si le sirve a alguien más

[ H I L O ] ⇩
Clean Code creo que debería ser lo primero:
- Código legible, naming
- Code smells
- Ley de Demeter
- Acoplamiento, cohesion
- Tell don't ask
- KISS
- Design patterns

Libros recomendados
Código sostenible
buff.ly/3uLdRyZ

Clean code
buff.ly/3PokPDt
El siguiente paso sería testing:
- Tipos de test
- Dobles de test
- TDD, ATDD
- Clean code en testing

Libros recomendados:

Test Driven Development: By Example
buff.ly/3e3uscx

Growing Object-Oriented Software, Guided by Tests
buff.ly/3hp3cqL
Read 8 tweets
¿Qué es lo que la gente realmente exitosa hace que la mayoría no hace?

[ H I L O ] ⇩
Muchos nos deprimimos cuando perdemos la motivación.

Pensamos que la gente exitosa tiene una reserva inagotable de pasión.

Pero la gente exitosa siente la misma falta de motivación que el resto de los humanos.
La diferencia está en que ellos encuentran la manera de seguir adelante.

La maestría requiere práctica.

Pero cuanto más practicas algo, más aburrido y rutinario se vuelve.

Una vez que las ganancias iniciales se lográn, nuestro interés comienza a desvanecerse.
Read 10 tweets
El desarrollo de software se enseña mal, muy mal!

Te lo explico ⤵️
¿Te imaginas ir a clases de música y que te enseñen a tocar solo canciones ya existentes usando su partitura?

¿Sabrías identificar las partes de las que se compone una canción y por qué?

¿podrías componer una canción?, seguramente no

Porque te han explicado solo una solución.
Es lo que se hace hoy en día enseñando desarrollo de software.

Se aprende en base a la implementación concreta de una solución de una librería de moda.

Sin conocer el problema qué resuelve, principio que aplica y otras alternativas para solucionarlo.

Se pierde la creatividad.
Read 6 tweets
¿Por qué mi newsletter no se puede ver en la web?

[HILO] ⇩
Mi amigo David, llevaba 3 años cogiendo una oferta de Movistar para clientes nuevos que incluye el pack de futbol con descuento.

¿Cómo es posible?

Muy sencillo en realidad.
Existe una oferta que para clientes nuevos. Tienen un descuento durante 3 o 6 meses, no recuerdo.

¿Qué hace cuando se acaba el periodo?

Se da de baja y se da de alta a los 3 o 5 días.
Read 9 tweets
¿Hasta donde apuntas en tu imaginación?

[ H I L O ] ⇩
Luis Piedrahita en un show preguntó a una joven sentada en la segunda fila del patio de butacas del Teatro Principal que compartiera en voz alta un sueño.

Por inalcanzable que fuera. La chica optó por un tópico: que le tocara la lotería, o mejor todavía, el Euromillón.
El monologuista le pidió que concretase más.

Que pronunciase una cantidad generosa, con la que ella considerara que ya no tendría que volver a trabajar en el resto de su vida.

La espectadora dijo 100 millones de euros.
Read 6 tweets
¿Eres desarrollador de software o eres cría de una gaviota?

AVISO: esto va a dejarte con cara de gaviota.

Te cuento ⤵️
Niko Tinbergen realizó un estudio sobre el comportamiento de las gaviotas cuya peculiaridad es un punto rojo en el pico.

Se percató de que las crías de éstas picoteaban el punto rojo de sus progenitores cada vez que estaban hambrientas.
Con este escenario, Niko creó un prototipo de pico fabricado de cartón.

Cuando puso el pico artificial en el nido, las crías de gaviota lo ignoraron. Después, colocó el mismo pico pero con un punto rojo de un tamaño similar al de las gaviotas adultas.
Read 11 tweets
Conoces el término invariante de #ddd?

Te lo explico ⤵️
Un invariante es una regla de negocio empresarial que siempre debe ser consistente.

Una invariante es una regla de negocio empresarial que siempre se tiene que cumplir, no se puede romper.
Las entidades deben validarse a sí mismas y si no se aseguran los invariantes deben fallar.
Read 6 tweets
Como nos gusta catalogar como buena o mala práctica muy rápidamente en este este sector.

Ahora parece que Trunk-Based Development es la solución divina y se habla de gitflow como si fuera el demonio.

Esta pelicula ya la he visto muchas veces, es una reposición.

Me explico ⤵️
Pasamos de catalogar de buena práctica a mala práctica solo porque es lo único que conocemos, se lo hemos escuchado a alguien o porque en mi contexto me va bien o me fue mal

Nos olvidamos de que son dos herramientas que pueden tener sus casos de uso y contextos donde aplican.
Es volver a caer en aprender en base a soluciones y no a problemas.

Igual de malo es usar gitflow como estándar en una empresa para todos los casos como lo es usar Trunk-Based Development siempre.
Read 8 tweets
¿Escribes código utilizando el sistema 1 de pensamiento o el sistema 2?

¿Sabes que relación tienen con #tdd?

Sigue leyendo ⤵️

#SoftwareDevelopement
Nuestro cerebro es increíble.

Lo que ocurre es que a veces estamos tan convencidos de sus capacidades y sus resultados que pasamos por alto las trampas que nos hace y los errores que nos lleva a cometer.

Conocerlas y comprenderlas es fundamental para tomar mejores decisiones.
El sistema 1 de pensamiento es implícito, es el encargado de dar respuestas rápidas.

Lo hace de manera rápida y frecuente.

Lo hace de manera emocional, estereotipada y hasta subconsciente.

Es útil en tareas automatizadas como andar o pestañear y puede hacerlas a la vez.
Read 10 tweets
Rescatando joyas de youtube mientras dure twitter

String Calculator kata by @ploeh

#tdd #Kata #RIPTwitter #TwitterTakeover #TwitterOFF
String Calculator kata with AutoFixture. Exercise 1
String Calculator kata with AutoFixture. Exercise 2
Read 10 tweets
Es dificil encontrar libros de testing que marquen la diferencia.

Solo comparto libros que de verdad me he leído.

Te comparto los 3 mejores libros sobre testing que me he leído.

[HILO] ⇩
Test Driven Development: By Example de @KentBeck
amzn.to/3T4ppHI
Growing Object-Oriented Software, Guided by Tests
amzn.to/3V8aONg
Read 5 tweets
0⃣ Clean Code Series: Variables📒🧑‍💻

It's a guide to producing readable, reusable, and refactorable software in #php #ruby #javascript #python #java, etc. - Software engineering principles, from Robert C. Martin's book "Clean Code"

(code: github.com/jupeter/clean-…)

Thread (9)🧵👇 Image
1⃣ Clean Code Series: Variables📒 🧑‍💻

☑️ Use meaningful and pronounceable variable names Image
2⃣ Clean Code Series: Variables📒 🧑‍💻

☑️ Use the same vocabulary for the same type of variable Image
Read 12 tweets
What is the Principle of Mutual Oblivion (POMO) and why is it important?

It's a software engineering principle that states that components or routines at the same level of abstraction should be unaware and independent of each other.

#90DaysOfProse
... with this pattern, functional units are designed with no knowledge of the outside world. The inputs and outputs are without any bias to the sender or receiver. They also shouldn't know the responsibilities of one another. #90DaysOfProse
Talk is cheap, show me the code...

... an example of co-routines that know too much.

buildSchema knows more than it should, thereby causing to change for more than one reason. Any changes to the schema deployment logic will mean that buildSchema has to be changed too.
Read 6 tweets
5 tips that will improve the design and quality of your #software:

1. Write shorter functions (methods) that do just one thing ("single responsibility principle").

2. Decrease the number of decision points (aka "cyclomatic complexity") per unit (function, method, etc).
...
...
3. Avoid duplication at all cost!

4. Keep your interfaces small (e.g. the number of arguments a function or class receives).

5. Separate concerns by making your code more modular.
What have all these tips in common?

They lead to more robust and moldable software:

1. Components become more loosely coupled and are therefor easier to reuse, test and extend (support new use cases).
...
Read 5 tweets
eae rapaziada, beleza? 🤙
quer aprender o que o #unclebob dizia sobre funções na série #cleancode? 🔥

Segue o fio! 🧶👇

#software #SoftwareEngineering #100DaysOfCode #functions #javascript
1. Uma função deve ser pequena.

2. Uma função deve ser menor ainda.

3. Várias funções pequenas e bem nomeadas economizarão seu tempo e de todo seu time porque elas funcionarão como pequenas placas ao longo do seu projeto, ajudando todos a navegar no código.
4. Classes estão escondidas dentro de grandes funções e se você quer quebrar seu software em classes apropriadamente deixe suas funções pequenas.
Read 12 tweets
2. Comunique sua intenção:
Se você tiver que colocar um comentário acima da sua variável pra explicar para que ela serve ou se você precisa vasculhar outros trechos de código para entender para que serve aquela variável/método então você escolheu um nome ruim.
3. Evite desinformação:
Certifique-se de que um nome diga o que significa e significa o que diz.
4. Crie nomes que as pessoas possam pronunciar:
Outras pessoas falarão sobre seu código no futuro ou até falar com você sobre seu código então escolha nomes que as pessoas possam pronunciar.
Read 12 tweets
Good code and resistance to change:

Thread: ⤵️

#cleancode #programming #coding
One way or another ever since we started writing code, some rules have been imposed on us.
Whether that's "indent your code properly", or "name your variables correctly", these rules changed the mindset of today's developers away from the "write - compile - done" flow.
Read 12 tweets

Related hashtags

Did Thread Reader help you today?

Support us! We are indie developers!


This site is made by just two indie developers on a laptop doing marketing, support and development! Read more about the story.

Become a Premium Member ($3.00/month or $30.00/year) and get exclusive features!

Become Premium

Too expensive? Make a small donation by buying us coffee ($5) or help with server cost ($10)

Donate via Paypal Become our Patreon

Thank you for your support!