0

Ответ на пост «Программисты свернули не туда»9

Фреймворки в разработке - это не просто инструменты, а своего рода универсальная основа, на которой строится весь проект.

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

Однако, за этой универсальностью стоит высокая требовательность к ресурсам. Ведь чем больше функциональность, тем больше ресурсов требуется для ее поддержки. Разумеется, это может вызывать определенные сложности, особенно в области веб-разработки.

Представь себе среднестатистический веб-сайт, построенный на таком фреймворке. Скорее всего, он использует лишь часть доступной функциональности. 30-50% где-то. Это не означает, что остальные возможности не важны или бесполезны. Просто в данном проекте нужна именно эти, использованные.

Более того, лишь единицы разработчиков занимаются оптимизацией загрузки компонентов во время инициализации.

0
Автор поста оценил этот комментарий

Отнюдь, во многих фреймворках это более чем контроллируемо, плюс более-менее общепринятые вещи (роутинг, работа с бд) в любом случае несёт в себе абстракции. Мы же не в index.php ходим в бд и рисуем хтмл, верно?


Спортивного интереса ради: свежеподнятый проект на symfony от index.php до моего метода с отдачей строки проходит только через Kernel и HttpKernel. Кошмарный оверхед, прям чувствую как бездумно мы греем воздух в датацентрах.


А касательно видео - его автор воюет куда-то не туда, уже не раз оно мне попадалось. Чистый код (как и вся "чистая" серия) - это про доступность разработки с точки зрения добавление функциональности, онбординга сотрудников и устойчивость к переписыванию системы. И его же пример отлично это демонстрирует, стоит только что-то докинуть и привет переписывание.


Плюс мои закомые плюсовики малость ругали его "чистый" вариант, типа местный ооп там больше тормозит. Всё хочу попробовать сделать аналог на голанге и сверить, но лапки не доходят

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

По поводу гибкости для расширения и изменения соглашусь. Но в том числе за это мы платим производительностью приложений.

Тут включается простая логика: за двадцать лет производительность вычислительных систем выросла на порядки; пропускная способность сетей в разы, а сайты тормозят всё больше и больше. Почему?

0
Автор поста оценил этот комментарий

Ну а тут у меня на руках свежий переезд, обложенный метриками по самое нехочу и прочими красотами, показывающий разницу в 0.5-1% производительности. Более чем достойная цна за имеющиеся возможности в плане архитектуры.


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


написанного легко заменяемой php-макакой

На тех проектах, где говняют в один файл, такими вопросами даже не задаются =)

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Вы, видимо, вполне вменяемые разработчики. Четь вам и хвала. Но таких на рынке дай бог если процентов пять-десять. Вот в этом комментарии #comment_310958308 я ссылаюсь на относительно недавнее видео, в котором автор подробно рассказывает о проблемах современного подхода к программированию.

В чем-то он конечно же перегибает. "Чистый код" вовсе не об идеальном коде, а об эффективной разработке. Т.е. получении приемлемого результата за минимум времени. Это именно то, что нужно бизнесу. Но чистый код не учитывает эффективность работы самого кода. Там же есть ссылка на статью на Хабре, где подробно разбираются некоторые принципы этого чистого кода и их критика.

Если интересно, почитайте на досуге.

1
Автор поста оценил этот комментарий

Не совсем. Если мы про пхп говорим, то там до ненужного функционала интерпретатор даже не притронется, лишь в самом старте прокешировав индекс символов. Соответственно, неиспользуемое даже в оперативку не попадёт, не говоря уж про процессорное время.


Плюс нужно понимать, что фреймворки - это такие каркасные системы, которые позволяют в удобной архитектуре накидывать свою функциональность, и бонусом предлагают что-то своё. Однако никто его юзать не заставляет, можно просто выкинуть и поставить своё. К примеру, у нас на symfony только роутер и orm для базы данных, всё остальное кастомное, под наши нужды.


А в компиляторных языках, в go, си и плюсах так точно, компилятор вольготно отбрасывает кучу ненужного, если не увидит в построенной иерархии зависимости использование какой-то части. Поэтому тут даже и не попадёт что-то неиспользуемое.


А тврщ @sanovskiy просто набросил от души.

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

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

https://www.youtube.com/watch?v=tD5NrevFtbU

Можете ознакомиться.

Если с английским не очень, то можно почитать выжимку на Хабре. https://habr.com/ru/articles/760184/

Предпросмотр
YouTube22:41
показать ответы
0
Автор поста оценил этот комментарий

А есть точные замеры? На нашем проекте мы ушли от прямого использование pdo к доктрине, после сборки opcache производительность на том же уровнее. При том что шансов на ошибок сильно меньше и удобства гараздо больше.


Ну а где нужно прям реалтаймовая производительность, мы гошку заводим. И в среднем это 15% кода проекта, что показатель =)

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Замеры производились, но довольно давно. Больше десяти лет назад. С тех пор у меня как-тоне было повода возвращаться к ним. Но в целом, производительность качественного кода без фреймворков была выше качественного кода с фреймворками. Что ожидаемо и предсказуемо. Понятное дело, что если ты пилишь спагетти говнокод, то и производительность такого кода будет ниже даже, чем на фреймворке.

Суть в том, что себестоимость качественного кода, написанного вменяемым программистом без фреймворка очевидно будет в разы выше, чем кода, написанного легко заменяемой php-макакой. А для бизнеса это основной фактор.

показать ответы
0
DELETED
Автор поста оценил этот комментарий

30-50 используется, а остальные тоже грузят систему?

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Ах, ну да. Есть ещё одна причина.

Иллюстрация к комментарию
1
Автор поста оценил этот комментарий

Минимально. Если взять Laravel\Symfony и использовать только нужное, то оверхеда будет только чуть.

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Я вас умоляю. Вы в Симфони Доктрину будете использовать? Минус 10% производительности. И это только ORM.

показать ответы
0
DELETED
Автор поста оценил этот комментарий

Я понимаю, что библиотеки содержат избыточный функционал. При этом, или ты подключаешь библиотеку даже если тебе нужна только одна из её функций/подпрограмм. И эта библиотека грузится целиком в память сервера.


А процессорное время тоже расходуется впустую? И почему это сказывается на стороне клиента/пользователя?


Если что, моё познание в IT на уровне программ 80-90-х )

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Потому что на стороне клиента есть свои фреймворки. Очевидно же.

0
Автор поста оценил этот комментарий

Так и появляются новые технологии, если в компании есть потребности, которые не покрываются имеющимися инструментами, рождаются всякие Прометеусы и даже ЯП. Обычно это решения от бигтех контор, у которых есть потребности и крутые кадры

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Это правда. Но со временем эти технологии обрастают излишней универсальностью и начинают создавать проблемы с производительностью. И мы возвращаемся к тому, с чего начали.

0
Автор поста оценил этот комментарий

И через жопу реализация паттернов, которые фреймворк даёт. В итоге выйдет неподдерживаемое говно или конфетка, которая станет новым фреймворком.

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Зародышем фреймворка. Ибо задача фреймворка - универсализация и покрытие всех возможных кейсов. А в случае одного проекта будет решение, покрывающее нужды только этого проекта.

показать ответы
Автор поста оценил этот комментарий

я обычно ищу работы где не используют фреймворков. Как правило фреймворки обязывают тебя делать код в строго ограниченных рамках, за эти рамки нельзя выходить. Кому то это очень нравится, ссылаются на архитектуру кода, высокую поддержку кода, читаемость кода. Отдельно стоят CMS например WordPress или PrestaShop

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

В отсутствии фреймворков тоже есть свои недостатки. Например более долгое время вхождения в проект.

показать ответы
2
Автор поста оценил этот комментарий

есть кстати альтернатива - использовать не фреймворк, а только нужную библиотеку фреймворка и прикручивать к проекту. Иногда бывает что нужная тебе библиотека, требует другие библиотеки, другие библиотеки требуют третьи библиотеки и так далее.

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Именно это входит в оптимизацию, которой пренебрегают разрабы.

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества

Недвижимость и ремонт

Теги

Популярные авторы

Сообщества