В сложных веб-приложениях низкоуровневые детали JavaScript-кода могут затруднить анализ программы и повлиять на работоспособность системы в целом. Функциональное программирование (ФП) как стиль написания кода способствует слабо связанным отношениям между отдельными компонентами приложений и позволяет составить общее представление о проекте, упростить его разработку, общение с заказчиками и сопровождение. В этой книге поясняются методики усовершенствования веб-приложений, влияющие в том числе на их расширяемость, модульность, повторное использование и тестируемость, а также производительность. В удобной для чтения форме на конкретных примерах и доходчивых пояснениях демонстрируется, как пользоваться методиками ФП на практике. Начинающие осваивать ФП по достоинству оценят немало удачных примеров сравнения ФП с императивным и с объектно-ориентированным программированием, что позволяет лучше понять особенности функционального проектирования. Прочитав эту книгу, читатель научится осмысливать свои проекты функционально, а возможно, дорастет и до понимания монад! Основные темы книги. Применение ценных методик ФП на практике и там, где это наиболее целесообразно. Отделение логики системы от подробностей ее реализации. Обработка ошибок, тестирование и отладка прикладного кода в стиле ФП. Демонстрация и обсуждение всех примеров кода на JavaScript, написанных по стандарту ES6 (ES 2015). Книга адресована разработчикам, твердо усвоившим основы программирования на JavaScript и обладающим достаточным опытом проектирования веб-приложений. Об авторе. Луис Атенсио - инженер-разработчик и архитектор приложений масштаба предприятия на языках Java, PHP и JavaScript. Отзывы о книге. "Эта книга коренным образом изменила мои представления о написании кода на JavaScript". Эндрю Мередит, компания Intrinsitech Corporation"Удобный справочник с практическими примерами". Эми Тенг, компания Dell"Теперь именно так нужно писать код на JavaScript". Уильям Е. Уиллер, компания West Corporation"Прочитав эту книгу, я переосмыслил свой подход к написанию кода и даже сумел перестроить свое мышление на применение более совершенных приемов и методик". Тэннер Слейтон, корпорация Microsoft. В этой книге рассматриваются решения самых разных задач средствами функционального программирования на JavaScript, включая обработку коллекций, AJAX-запросов, обращений к базе данных, событий и пр. На конкретных примерах в ней поясняются основные понятия ФП, в том числе декомпозиция и композиция, чистые функции, связывание функций в цепочку, конвейеры функций, карринг, функторы, монады, отложенное вычисление и прочие. Усвоив теоретические основы функционального программирования, а также примеры программ, демонстрирующие практическое применение методик ФП, читатель научится мыслить функционально и, приобретя некоторую практику, станет делать это интуитивно. Книга адресована разработчикам, твердо усвоившим основы программирования на JavaScript и обладающим достаточным опытом проектирования веб-приложений.
V slozhnykh veb-prilozhenijakh nizkourovnevye detali JavaScript-koda mogut zatrudnit analiz programmy i povlijat na rabotosposobnost sistemy v tselom. Funktsionalnoe programmirovanie (FP) kak stil napisanija koda sposobstvuet slabo svjazannym otnoshenijam mezhdu otdelnymi komponentami prilozhenij i pozvoljaet sostavit obschee predstavlenie o proekte, uprostit ego razrabotku, obschenie s zakazchikami i soprovozhdenie. V etoj knige pojasnjajutsja metodiki usovershenstvovanija veb-prilozhenij, vlijajuschie v tom chisle na ikh rasshirjaemost, modulnost, povtornoe ispolzovanie i testiruemost, a takzhe proizvoditelnost. V udobnoj dlja chtenija forme na konkretnykh primerakh i dokhodchivykh pojasnenijakh demonstriruetsja, kak polzovatsja metodikami FP na praktike. Nachinajuschie osvaivat FP po dostoinstvu otsenjat nemalo udachnykh primerov sravnenija FP s imperativnym i s obektno-orientirovannym programmirovaniem, chto pozvoljaet luchshe ponjat osobennosti funktsionalnogo proektirovanija. Prochitav etu knigu, chitatel nauchitsja osmyslivat svoi proekty funktsionalno, a vozmozhno, dorastet i do ponimanija monad! Osnovnye temy knigi. Primenenie tsennykh metodik FP na praktike i tam, gde eto naibolee tselesoobrazno. Otdelenie logiki sistemy ot podrobnostej ee realizatsii. Obrabotka oshibok, testirovanie i otladka prikladnogo koda v stile FP. Demonstratsija i obsuzhdenie vsekh primerov koda na JavaScript, napisannykh po standartu ES6 (ES 2015). Kniga adresovana razrabotchikam, tverdo usvoivshim osnovy programmirovanija na JavaScript i obladajuschim dostatochnym opytom proektirovanija veb-prilozhenij. Ob avtore. Luis Atensio - inzhener-razrabotchik i arkhitektor prilozhenij masshtaba predprijatija na jazykakh Java, PHP i JavaScript. Otzyvy o knige. "Eta kniga korennym obrazom izmenila moi predstavlenija o napisanii koda na JavaScript". Endrju Meredit, kompanija Intrinsitech Corporation"Udobnyj spravochnik s prakticheskimi primerami". Emi Teng, kompanija Dell"Teper imenno tak nuzhno pisat kod na JavaScript". Uiljam E. Uiller, kompanija West Corporation"Prochitav etu knigu, ja pereosmyslil svoj podkhod k napisaniju koda i dazhe sumel perestroit svoe myshlenie na primenenie bolee sovershennykh priemov i metodik". Tenner Slejton, korporatsija Microsoft. V etoj knige rassmatrivajutsja reshenija samykh raznykh zadach sredstvami funktsionalnogo programmirovanija na JavaScript, vkljuchaja obrabotku kollektsij, AJAX-zaprosov, obraschenij k baze dannykh, sobytij i pr. Na konkretnykh primerakh v nej pojasnjajutsja osnovnye ponjatija FP, v tom chisle dekompozitsija i kompozitsija, chistye funktsii, svjazyvanie funktsij v tsepochku, konvejery funktsij, karring, funktory, monady, otlozhennoe vychislenie i prochie. Usvoiv teoreticheskie osnovy funktsionalnogo programmirovanija, a takzhe primery programm, demonstrirujuschie prakticheskoe primenenie metodik FP, chitatel nauchitsja myslit funktsionalno i, priobretja nekotoruju praktiku, stanet delat eto intuitivno. Kniga adresovana razrabotchikam, tverdo usvoivshim osnovy programmirovanija na JavaScript i obladajuschim dostatochnym opytom proektirovanija veb-prilozhenij.