Caso : estoy trabajando en una empresa, escribiendo una aplicación en Python que maneja una gran cantidad de datos en matrices. Soy el único desarrollador de este programa en este momento, pero probablemente será utilizado / modificado / extendido en el futuro (1-3 años) por algún otro programador, en este momento desconocido para mí. Probablemente no estaré allí directamente para ayudarlo, pero tal vez brinde algún soporte por correo electrónico si tengo tiempo para hacerlo.
Entonces, como desarrollador que ha aprendido programación funcional (Haskell), tiendo a resolver, por ejemplo, filtrar así:
filtered = filter(lambda item: included(item.time, dur), measures)
El resto del código es OO, solo son algunos casos pequeños donde quiero resolverlo así, porque es mucho más simple y más hermoso según yo.
Pregunta : ¿Está bien hoy escribir código como este?
- ¿Cómo reacciona un desarrollador que no ha escrito / aprendido FP al código como este?
- ¿Es legible?
- Modificable?
¿Debo escribir documentación como explicarle a un niño lo que hace la línea?
# Filter out the items from measures for which included(item.time, dur) != True
Le pregunté a mi jefe, y él simplemente dice "FP es magia negra, pero si funciona y es la solución más eficiente, entonces está bien usarla".
¿Qué opinas de esto? Como programador que no es FP, ¿cómo reaccionas al código? ¿Es el código "googable" para que pueda entender lo que hace? Me encantaría recibir comentarios sobre esto.
# Select the item's from measures for which included(item.time, dur) == True
evitar un doble negativo siempre mejora la comprensión.