Кейс : я работаю в компании, пишу приложение на Python, которое обрабатывает много данных в массивах. На данный момент я являюсь единственным разработчиком этой программы, но, вероятно, она будет использоваться / изменяться / расширяться в будущем (1-3 года) другим программистом, в данный момент мне неизвестным. Я, вероятно, не буду там напрямую помогать, но, возможно, окажу некоторую поддержку по электронной почте, если у меня будет время.
Итак, как разработчик, который изучил функциональное программирование (Haskell), я склонен решать, например, фильтрацию следующим образом:
filtered = filter(lambda item: included(item.time, dur), measures)
Остальная часть кода - ОО, это всего лишь несколько небольших случаев, когда я хочу решить это следующим образом, потому что, на мой взгляд, он намного проще и красивее.
Вопрос : сегодня нормально писать такой код?
- Как разработчик, который не написал / изучил FP, реагирует на такой код?
- Это читабельно?
- Изменяемые?
Должен ли я написать документацию, как объяснить ребенку, что делает строка?
# Filter out the items from measures for which included(item.time, dur) != True
Я спросил моего босса, и он просто сказал: «FP - это чёрная магия, но если она работает и является наиболее эффективным решением, то можно использовать её».
Каково ваше мнение по этому поводу? Как не-FP программист, как вы реагируете на код? Является ли код "googable", чтобы вы могли понять, что он делает? Я хотел бы получить отзыв об этом.
# Select the item's from measures for which included(item.time, dur) == True
избегание двойного отрицания всегда улучшает понимание.