Вы,вероятно,задаетенетотвопрос
Напрошлойнеделеяпопалавобластьдействияфункциональныхпрограммистов—всепотомучсое Вероятно,этотакжепервыйраз,когдаяполучаюписьманенавистиилюбви,публичноеосуждение,похвалыитвитызато,чтоимелоневинныенамеренияипроисхождение。 Каким-тообразоммнетакжеудалосьполучитьярлыкпуриста,междупрочим。
Нояврядлипурист。 Скорее,ячастоназываюсебягибриднымиадаптируемымспециалистомпорешениям – простопотому,чтореальныймирÇеготребованиямиипотребностямипостоянноменяются。
函数式编程有什么大不了的?
Чтохорошеговфункциональномпрограммировании? Функциональноепрограммирование—этопарадигмапрограммирования, Этовытекаетизматематическойидеи,согласнокоторойуравнениевозвращаетожидаемоеитолькото значение ,котороеэквивалентно y ,когда x включенвнего。
Функция—этоуравнение,длякотороголюбойx,которыйможетбытьвключенвуравнение,дастровно。 —«Рабочееопределение»функции。
Сточкизренияобслуживания,логическойиструктурнойточекзрения,функциональноепрограммированиепревосходно,когданетистории,скоторойприходитсяиметьдело。 Этоработаетособеннохорошо,когданетникакихграниц,илиэтиграницыужепредопределены。 Онпроцветаетвситуациях,когдасостояниенеявляетсяфактором,ивмалойстепенииливсен

ВпоследнеевремяпопулярностьфункциональногопрограммированиявырослаблагодаряReact。 Библиотекахорошоработаетврамкахпарадигмыфункциональногопрограммирования,посколькуонапредоставляетсреду,вкоторойвамнетребуетсявручнуюотслеживатьсостояния。 Границытакжепредварительносозданыдлявасчерезидеюкомпонентов。
топротивоположноAngular 2+,版本为глетребуютсяклассы, 反应过来,однако,имеетпредопределеннуюобластьдействияссовершеннодругимподходомдляразмышленияоразделенииинтересов,чтоещебольшеспособствуетиспользованиюпарадигмыфункциональногопрограммирования。
Егосторонникиоченьлубятфункциональноепрограммирование,потомучтоимитироватьреальныепрооее。 Егоматематическиекорникорошоподходятдляситуаций, ИспользованиеООПвэтихситуацияхможетбытьнемногоизлишним,еслипростонеэффективным。
面向对象的思想有什么大不了的?
Чтотакогоособенноговобъектно-ориентированноммышлении? Когда-топарадигмыобъектно-ориентированногопрограммированиябылимаргинальнымспособомтыллени ОнприобрелпопулярностьблагодаряJavaиC ++,которыепревратилиидеюООПвто,чтомызнаемсегодня。
ОсновноепреимуществоООПзаключаетсяввозможностиинкапсулироватьданныеотпосторонних。 Инкапсуляция – этоспособностьскрыватьпеременныевклассеотвнешнегодоступа,чтоделаетегоотличнымвыборомпосоображениямбезопасности,нарядусутечкойданных,нежелательнымилислучайнымиспользованием。
Когдавыработаетевразныхграницах,ООП— Какрезультат,后端языкиприменяютэтупарадигмудляразработчиков。 Этопомогаетуправлятьидеямивбарьерах,и,внекоторомсмысле,ООП – этокакограждениевокругвашихметодовимодулей,которыенасамомделеявляютсяпростофункциями,носдополнительнымипреимуществами。
Объектно-ориентированныепрограммистылюбятООП,потомучтооннавязываетмодульность,разделяякоддоразумноусваиваемогоразмераипредлагаявозможностьобрабатыватьсостояния。 Методыстановятсяточкамидоступаксостояниюиобрабатываютэкземпляробъектапомеренеобходимои。
一切都有时间和地方
Естьвремяиместодлявсего。 Функциональноепрограммированиеиобъектно-ориентированноепрограммированиеявляютсядайствующимипа
Темнеменее,человекбудетпроцветатьиработатьлучшедляпроектанаосновесредыитребований,нониодноизрешенийнеработаетлучшевовсехситуациях。
Функциональноепрограммированиехорошоработает,когдасложностьпрограммногоприложениясдержиа。 Онопроцветаетвинтерфейснойчасти,потомучтоклиентскаячастьпростопредоставляетаанныедляоб。 Клиентскаячастьнезаботитсяоподдержаниисостоянийобъекта。 请使用JSON,вероятно,вероятно,Вседанныеужеимданы。
Объектно-ориентированноемышлениехорошоработаетнаклиенте,потомучтовбольшинствеслучаеввамнеобходимосоздатьчто-то,чтодастследующуюграницу。 Онодолжнобытьупаковано,обернутовлентепрежде,чемотправитьэтовнеизвестное。
最后的话
Влюбитьсявкод—значитвлюбитьсяврешениепроблемистатьчастьювечнопродолжающегосяразговора。
Обепарадигмыимеютсвоипроблемы,скоторымисталкиваютсяразработчики。 Функциональноепрограммированиепревращаетсявкодспагеттиврезультатебольшогоколичестваинъекцийзависимостей,аООПвкодлазаньиврезультатесозданияслишкоммногослойнойсистемы。
Новопрос,которыйвыдолжнызадать,заключаетсяневтом,чтолучше,автом,какаяпарадигмамышлениярешитвашуконкретнуюпроблемунаиболееэффективно。 Размеритиппроблемыопределяютсявами,разработчиком,以及неспомощьюфункциональнеенеетере Программныепарадигмысуществуютдлярешениявашихпроблем,以及其他国家。
Неважно,какойязыквыисикакиепарадигмыприменяете, Самойсложноститакженельзяизбежать—особеннокогдазадействованоболееодногочеловечесеккогомозо。 Бизнес-требованияменяются,маркетингвыдвигаеткакие-тодурацкиезадачи,
Выможететолькозамедлитьэто – ненавязываяединственнуюпарадигмуковсему – астроягибридноерешение,котороенаилучшимобразомрешаетвозникающиепроблемы。