Холиварим на тему 'ООП vs ФП' ★ Комментирую комменты

preview_player
Показать описание
Аргументированное объяснение, почему объектно-ориентированное программирование более интересно в бизнес-задачах, чем функциональное. Краткий экскурс в историю веб-разработки. PHP как ООП-инструмент и средство для говнокодинга. Перспективы Питона. Небольшое сравнение фронтенд-фреймворков: Ангуляр vs Реакт. Размышления над потоком сознания функциональщика.

=== КРАТКОЕ СОДЕРЖАНИЕ ===
0:00 Вступление
1:00 Комментарий функциональщика
2:03 Экскурс в историю прикладного программирования
2:35 Схема производственного цикла
3:06 Роль PHP в начале 2000-х годов
3:58 Перспективы Питона как языка говнокодеров
4:43 Чем может порадовать функциональное программирование
4:50 Беглое сравнение Angular vs React
6:08 Продолжаем разбирать комментарии
8:30 Нельзя взять и сразу понять?
9:16 Заключение

=== КОПИРАЙТЫ ===

МУЗЫКА
Лицензия Creative Commons Attribution 4.0 на использование трека You So Zany

ЗВУКОВЫЕ ЭФФЕКТЫ

#ООП #ФП #angular #react #php #python
Рекомендации по теме
Комментарии
Автор

По рекламе ооп: ооп поднялось сперва благодаря хайпонувшему C with classes (далее С++), позднее на массовой рекламе Java, и db-oriented подхода на заре века. Это позволило захватить нишу ращработки для enterprise

jameskim
Автор

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

АрчибальдЧудов
Автор

Если кому интересно, что это за кейс, с которым React по умолчанию справился бы лучше, чем Angular...
Это таблица с биржевыми индексами, обновляемыми в real-time. Каждая ячейка представляла собой ангуляровский компонент, который норовил перерисоваться гораздо чаще, чем происходило реальное изменение котировок. В итоге сделали detach и обновляли ячейки вручную, плюс вынесли всю общую для ячеек информацию в статические свойства и методы.
Я понимаю, что тут можно искусственно придумать десяток-другой похожих задач, где ангуляр без дополнительных настроек будет сливать реакту, но в действительности это был всего лишь единичный случай. Все остальные потенциально проблемные места подчищались и подчищаются грамотным UI/UX.

MasterLid
Автор

Если звёзды зажигают значит это кому-нибудь нужно. Спасибо!

mitruslatovous
Автор

Спасибо за полезные видео, хотелось бы побольше таких каналов как у Вас. Буду признателен, если подскажите аналогичные источники.

midinka
Автор

Добрый день, благодарю за видео. Согласен про низкое качество кода вне зависимости от языка, именно это с моей точки зрения является основной проблемой в решении бизнес задач. Я занимаюсь версткой довольно долго и последнее время вижу что мне этого мало. Некоторые фронтенд задачи начал делать с помощью фреймворков или на чистом js, понял что мне это интереснее. Да, я стал зарабатывать на этом деньги больше чем просто верстальщик, но при это понимаю, что я тот же говнокодер). Буду благодарен за совет как правильно стоит освоить новую профессию (возможно вы посоветуете курсы или книги для самостоятельного изучения). Скорее тут для меня не так важно какой язык (склоняюсь к javascript) или фреймворк изучать, как важно само понимание как правильно строить архитектуру приложений.

maksymbibko
Автор

Я не проф. разраб. Идею ООП знал еще 20 лет назад, но не погружался. Тут недавно окунулся, поднял несколько достаточно больших (для одного новичка) проектов на C#. По мере погружения в ООП, первоначальное очарование идеи - чуть ли не прямой трансляции объектов реального мира в архитектуру кода, сменялось недоумением от бесконечно нарастающей сложности конструкций и концепций. Паттерны, типа сиглтона. Нет ну серьезно, надо городить что-то ради единственности порождения? В голове начинает крутиться один вопрос - неужели по-другому никак нельзя? Все это выглядит, как бесконечные костыли, к неправильно поставленной и решаемой задаче. ФП сложнее, и в голову заходит тяжелее. Но идея иммутабельности выглядит концептуально верной, по сравнению с императивной парадигмой, основанной не бесчисленном количество переменных. Лично мне кажется, в ФП - это парадигма будущего, и в итоге к ней и придут. В общем, перехожу на F#, который, кстати, по сути обертка над C#. Учу и удивляюсь, "а что, так можно было?"

iGynLoD
Автор

На мой взгляд в видео не совсем корректное сравнение реакта и ангуляра. Ангуляр это фреймворк, который предоставляет уже готовые решения, а реакт - библиотека, в которой у разработчика больше свободы в выборе архитектурных подходов и либ(хотя бОльшая часть приложений это cвязка React + Redux). Этим и обусловлена необходимость тратить больше времени на разработку каких-то фич. Плюс разработчик знающий реакт может без особых проблем писать мобильные приложения на нейтиве. Из-за такой гибкости и зп у реакт разрабов выше

AleksandrBagrintsev
Автор

Ну, наговнокодить сложно на расте, тк чтобы написать что-то рабочее на нем, надо иметь уже хоть какой-то опыт

shalidor
Автор

Мне кажется ООП избыточен в о фронт приложениях! Ну все приводят примеры с машинами робатами и тп! Ну и много ли задачь где это надо во фронте с этим наследыванием? Ну если надо можно и класс написать не кто не против ну по мне так кажется что избычточность сорее вредна! А если не использовать наследование и просто писать через классы тт в чем преимущество?

yomayo-fc
Автор

Три главных слова ООП и правда не требуют ни классов ни даже объектов

// инкапсуляиция
const Counter = () => {
// n инкапсулировано
let n = 0
return () => n++
}
const c = Counter()
console.log(c(), c(), c())
// 1 2 3

// полиморфизм
const Sum = (a, b) => a + b
const Mult = (a, b) => a * b
const ops = [Sum, Mult]
// интерфейс один, аргументы одни и те же, а поведение разное
console.log(...ops.map(f => f(2, 3)))
// 5 6

// наследование
const Super = (b, f) => () => f(b)
const Foo = () => console.log("foo")
const SuperFoo = Super(Foo, (base) => {
base()
console.log("bar")
})
SuperFoo()
// foo
// bar

zeOnni
Автор

Объектно-ориентированный php ранних версий.. Ухахахахухуху

jameskim