Przypadek : Pracuję w firmie, pisząc aplikację w języku Python, która obsługuje wiele danych w tablicach. Obecnie jestem jedynym programistą tego programu, ale prawdopodobnie będzie on używany / modyfikowany / rozszerzany w przyszłości (1-3 lata) przez innego programistę, w tej chwili mi nieznanego. Prawdopodobnie nie będę tam bezpośrednio, aby pomóc, ale może udzielę wsparcia przez e-mail, jeśli mam na to czas.
Tak więc, jako programista, który nauczył się programowania funkcjonalnego (Haskell), mam tendencję do rozwiązywania, na przykład, filtrowania w następujący sposób:
filtered = filter(lambda item: included(item.time, dur), measures)
Reszta kodu to OO, to tylko niektóre małe przypadki, w których chcę go rozwiązać w ten sposób, ponieważ według mnie jest znacznie prostszy i piękniejszy.
Pytanie : Czy pisanie takiego kodu dzisiaj jest w porządku?
- Jak programista, który nie napisał / nie nauczył się FP, reaguje na taki kod?
- Czy to jest czytelne?
- Modyfikowalny?
Czy powinienem napisać dokumentację, taką jak wyjaśnienie dziecku, co robi linia?
# Filter out the items from measures for which included(item.time, dur) != True
Zapytałem mojego szefa, a on po prostu powiedział: „FP to czarna magia, ale jeśli działa i jest najbardziej wydajnym rozwiązaniem, to można z niej korzystać”.
Jaka jest twoja opinia na ten temat? Jako programista inny niż FP, jak reagujesz na kod? Czy kod jest „googable”, abyś mógł zrozumieć, co robi? Chciałbym poznać opinie na ten temat.
# Select the item's from measures for which included(item.time, dur) == True
unikanie podwójnego negatywu zawsze poprawia zrozumienie.