哪个更好-函数式编程还是面向对象?

Вы,вероятно,задаетенетотвопрос

Напрошлойнеделеяпопалавобластьдействияфункциональныхпрограммистов—всепотомучсое Вероятно,этотакжепервыйраз,когдаяполучаюписьманенавистиилюбви,публичноеосуждение,похвалыитвитызато,чтоимелоневинныенамеренияипроисхождение。 Каким-тообразоммнетакжеудалосьполучитьярлыкпуриста,междупрочим。

Нояврядлипурист。 Скорее,ячастоназываюсебягибриднымиадаптируемымспециалистомпорешениям – простопотому,чтореальныймирÇеготребованиямиипотребностямипостоянноменяются。

函数式编程有什么大不了的?

Чтохорошеговфункциональномпрограммировании? Функциональноепрограммирование—этопарадигмапрограммирования, Этовытекаетизматематическойидеи,согласнокоторойуравнениевозвращаетожидаемоеитолькото значение ,котороеэквивалентно y ,когда x включенвнего。

Функция—этоуравнение,длякотороголюбойx,которыйможетбытьвключенвуравнение,дастровно。 —«Рабочееопределение»функции。

Сточкизренияобслуживания,логическойиструктурнойточекзрения,функциональноепрограммированиепревосходно,когданетистории,скоторойприходитсяиметьдело。 Этоработаетособеннохорошо,когданетникакихграниц,илиэтиграницыужепредопределены。 Онпроцветаетвситуациях,когдасостояниенеявляетсяфактором,ивмалойстепенииливсен

Функциональнаямашинаожидаетопределенноговводадлясозданияопределенногоожидаемогорезультата。 西尔维斯特·麦克Monkey McBean

ВпоследнеевремяпопулярностьфункциональногопрограммированиявырослаблагодаряReact。 Библиотекахорошоработаетврамкахпарадигмыфункциональногопрограммирования,посколькуонапредоставляетсреду,вкоторойвамнетребуетсявручнуюотслеживатьсостояния。 Границытакжепредварительносозданыдлявасчерезидеюкомпонентов。

топротивоположноAngular 2+,版本为глетребуютсяклассы, 反应过来,однако,имеетпредопределеннуюобластьдействияссовершеннодругимподходомдляразмышленияоразделенииинтересов,чтоещебольшеспособствуетиспользованиюпарадигмыфункциональногопрограммирования。

Егосторонникиоченьлубятфункциональноепрограммирование,потомучтоимитироватьреальныепрооее。 Егоматематическиекорникорошоподходятдляситуаций, ИспользованиеООПвэтихситуацияхможетбытьнемногоизлишним,еслипростонеэффективным。

面向对象的思想有什么大不了的?

Чтотакогоособенноговобъектно-ориентированноммышлении? Когда-топарадигмыобъектно-ориентированногопрограммированиябылимаргинальнымспособомтыллени ОнприобрелпопулярностьблагодаряJavaиC ++,которыепревратилиидеюООПвто,чтомызнаемсегодня。

ОсновноепреимуществоООПзаключаетсяввозможностиинкапсулироватьданныеотпосторонних。 Инкапсуляция – этоспособностьскрыватьпеременныевклассеотвнешнегодоступа,чтоделаетегоотличнымвыборомпосоображениямбезопасности,нарядусутечкойданных,нежелательнымилислучайнымиспользованием。

Когдавыработаетевразныхграницах,ООП— Какрезультат,后端языкиприменяютэтупарадигмудляразработчиков。 Этопомогаетуправлятьидеямивбарьерах,и,внекоторомсмысле,ООП – этокакограждениевокругвашихметодовимодулей,которыенасамомделеявляютсяпростофункциями,носдополнительнымипреимуществами。

Объектно-ориентированныепрограммистылюбятООП,потомучтооннавязываетмодульность,разделяякоддоразумноусваиваемогоразмераипредлагаявозможностьобрабатыватьсостояния。 Методыстановятсяточкамидоступаксостояниюиобрабатываютэкземпляробъектапомеренеобходимои。

一切都有时间和地方

Естьвремяиместодлявсего。 Функциональноепрограммированиеиобъектно-ориентированноепрограммированиеявляютсядайствующимипа

Темнеменее,человекбудетпроцветатьиработатьлучшедляпроектанаосновесредыитребований,нониодноизрешенийнеработаетлучшевовсехситуациях。

Функциональноепрограммированиехорошоработает,когдасложностьпрограммногоприложениясдержиа。 Онопроцветаетвинтерфейснойчасти,потомучтоклиентскаячастьпростопредоставляетаанныедляоб。 Клиентскаячастьнезаботитсяоподдержаниисостоянийобъекта。 请使用JSON,вероятно,вероятно,Вседанныеужеимданы。

Объектно-ориентированноемышлениехорошоработаетнаклиенте,потомучтовбольшинствеслучаеввамнеобходимосоздатьчто-то,чтодастследующуюграницу。 Онодолжнобытьупаковано,обернутовлентепрежде,чемотправитьэтовнеизвестное。

最后的话

Влюбитьсявкод—значитвлюбитьсяврешениепроблемистатьчастьювечнопродолжающегосяразговора。

Обепарадигмыимеютсвоипроблемы,скоторымисталкиваютсяразработчики。 Функциональноепрограммированиепревращаетсявкодспагеттиврезультатебольшогоколичестваинъекцийзависимостей,аООПвкодлазаньиврезультатесозданияслишкоммногослойнойсистемы。

Новопрос,которыйвыдолжнызадать,заключаетсяневтом,чтолучше,автом,какаяпарадигмамышлениярешитвашуконкретнуюпроблемунаиболееэффективно。 Размеритиппроблемыопределяютсявами,разработчиком,以及неспомощьюфункциональнеенеетере Программныепарадигмысуществуютдлярешениявашихпроблем,以及其他国家。

Неважно,какойязыквыисикакиепарадигмыприменяете, Самойсложноститакженельзяизбежать—особеннокогдазадействованоболееодногочеловечесеккогомозо。 Бизнес-требованияменяются,маркетингвыдвигаеткакие-тодурацкиезадачи,

Выможететолькозамедлитьэто – ненавязываяединственнуюпарадигмуковсему – астроягибридноерешение,котороенаилучшимобразомрешаетвозникающиепроблемы。