Випадок : я працюю в компанії, пишу заявку в Python, яка обробляє безліч даних у масивах. Я є єдиним розробником цієї програми на даний момент, але вона, ймовірно, буде використана / модифікована / розширена в майбутньому (1-3 роки) деяким іншим програмістом, на даний момент невідомим мені. Я, мабуть, не буду там безпосередньо, щоб допомогти, але, можливо, надам деяку підтримку електронною поштою, якщо у мене буде час на це.
Отже, як розробник, який вивчив функціональне програмування (Haskell), я схильний вирішувати, наприклад, фільтрацію так:
filtered = filter(lambda item: included(item.time, dur), measures)
Решта коду - OO, це просто деякі невеликі випадки, коли я хочу його вирішити так, бо, на мою думку, це набагато простіше і красивіше.
Питання : Чи добре сьогодні писати такий код?
- Як розробник, який не написав / не вивчив 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
уникнення подвійного негативу завжди покращує розуміння.