Caso : estou trabalhando em uma empresa, escrevendo um aplicativo em Python que lida com muitos dados em matrizes. Eu sou o único desenvolvedor deste programa no momento, mas provavelmente será usado / modificado / estendido no futuro (1-3 anos) por algum outro programador, neste momento desconhecido para mim. Provavelmente não estarei lá diretamente para ajudar, mas talvez dê algum suporte por e-mail se tiver tempo para isso.
Então, como desenvolvedor que aprendeu programação funcional (Haskell), eu tendem a resolver, por exemplo, filtrar assim:
filtered = filter(lambda item: included(item.time, dur), measures)
O restante do código é OO, são apenas alguns casos pequenos em que eu quero resolvê-lo assim, porque é muito mais simples e mais bonito para mim.
Pergunta : Hoje está bom escrever código como este?
- Como um desenvolvedor que não escreveu / aprendeu FP reage a códigos como este?
- É legível?
- Modificável?
Devo escrever uma documentação como explicar a uma criança o que a linha faz?
# Filter out the items from measures for which included(item.time, dur) != True
Perguntei ao meu chefe e ele apenas disse "FP é magia negra, mas se funcionar e for a solução mais eficiente, não há problema em usá-lo".
Qual a sua opinião sobre isso? Como programador não-FP, como você reage ao código? O código é "googable" para que você possa entender o que ele faz? Eu adoraria comentários sobre isso.
# Select the item's from measures for which included(item.time, dur) == True
evitar um duplo negativo sempre melhora a compreensão.