Fall : Ich arbeite in einer Firma und schreibe eine Anwendung in Python, die viele Daten in Arrays verarbeitet. Ich bin der einzige Entwickler dieses Programms im Moment, aber es wird wahrscheinlich in Zukunft (1-3 Jahre) von einem anderen Programmierer verwendet / modifiziert / erweitert, der mir derzeit unbekannt ist. Ich werde wahrscheinlich nicht direkt da sein, um zu helfen, aber vielleicht per E-Mail Unterstützung geben, wenn ich Zeit dafür habe.
Als Entwickler, der funktionales Programmieren (Haskell) gelernt hat, neige ich dazu, beispielsweise folgende Filter zu lösen:
filtered = filter(lambda item: included(item.time, dur), measures)
Der Rest des Codes ist OO, es sind nur einige kleine Fälle, in denen ich ihn so lösen möchte, weil er meiner Meinung nach viel einfacher und schöner ist.
Frage : Ist es heute in Ordnung, Code wie diesen zu schreiben?
- Wie reagiert ein Entwickler, der FP nicht geschrieben / gelernt hat, auf Code wie diesen?
- Ist es lesbar
- Modifizierbar?
Soll ich einem Kind in einer Dokumentation erklären, was die Zeile bewirkt?
# Filter out the items from measures for which included(item.time, dur) != True
Ich habe meinen Chef gefragt, und er sagt nur: "FP ist schwarze Magie, aber wenn es funktioniert und die effizienteste Lösung ist, ist es in Ordnung, es zu verwenden."
Wie ist Ihre Meinung dazu? Wie reagieren Sie als Nicht-FP-Programmierer auf den Code? Ist der Code "googbar", damit Sie verstehen können, was er bewirkt? Ich würde mich über Feedback freuen.
# Select the item's from measures for which included(item.time, dur) == True
Wenn Sie ein doppeltes Negativ vermeiden, wird das Verständnis immer verbessert.