Znacie taką javascriptową wisienkę jak pipeline operator? Ja sama wpadłam na tę konstrukcję całkiem niedawno! Jeszcze tydzień temu myślałam, że szczytem kunsztu designerskiego w kodzie JS są funkcje strzałki. A tymczasem patrzę i widzę takie coś (źródło):
const square = (n) => n * n;
const increment = (n) => n + 1;
// without pipeline operator
square(increment(square(2))); // 25
// with pipeline operator
2 |> square |> increment |> square; // 25
Wow! Buzia sama się uśmiecha na ten widok! Nie wiem jak Wy sądzicie, ale na moje taka konstrukcja niesamowicie przyspieszy kodowanie takich zagnieżdżonych funkcji.
A właśnie. Zagnieżdżone funkcje. One mają swoją nazwę w JS, mianowicie pipe functions. Więcej o nich przeczytacie np. TUTAJ.
Warto wspomnieć, że ten operator to wcale nie jest świeża sprawa. Od dawna znany jest w innych językach programowania. Również od lat próbuje się go przemycić do Javascriptu. Miał wejść do ES7, a tu 2 wiosny minęły i nic. Wydaje się jednak, że już niedługo nasz pipeline operator wyjdzie z javascriptowych podziemi. Na razie leży w drafcie (szczegółu TU i TU). Mimo to Babel oferuje plugin, dzięki któremu możecie skorzystać z owego dobrodziejstwa już dziś.
Jeden z moich najulubieńszych javascriptowych youtuberów nagrał świetny filmik o operatorze pipeline oraz generalnie o programowaniu funkcyjnym. Gorąco polecam Wam na niego zerknąć.
Co sądzicie o tej konstrukcji? Bajer czy błogosławieństwo? Piszcie w komentarzach!