Yii2 - атака хейтеров и что делать дальше?

Не относящиеся к фреймворку и программированию вопросы
Nex-Otaku
Сообщения: 774
Зарегистрирован: 2016.07.09, 21:07

Re: Yii2 - атака хейтеров и что делать дальше?

Сообщение Nex-Otaku » 2018.03.18, 01:37

Ну а по мне, это не "констатация", а банальная грязная ругань в адрес оппонента, за неимением аргументов. Причём кроме Васи никто до этого не опускается.

Аватара пользователя
rugabarbo
Сообщения: 1056
Зарегистрирован: 2015.06.21, 16:21
Контактная информация:

Re: Yii2 - атака хейтеров и что делать дальше?

Сообщение rugabarbo » 2018.03.18, 05:54

Самый большой Code First проект, который я видел в Open Source – это Фабрикатор: https://phacility.com/phabricator
Исходники есть на гитхабе: https://github.com/phacility/phabricator

Я его использовал в бою как self-hosted более 3-х лет вместо гитхаба, знаю внутреннее устройство.

Он даёт отличное понимание применимости Code First, потому что предметная область в нём достаточно сложная: тысячи сущностей, обширная бизнес-логика, большое API, объёмные консольные утилиты со своей логикой – при этом у самого Фабрикатора отличная масштабируемость и перфоманс.

Code First – это боль во многих смыслах: долго, дорого, многословно, овер-инжиниринг многих вещей неизбежен. Но есть целый класс разработок, которые без Code First не будут развиваться, потому что станут негибкими. Тот же Фабрикатор без Code First сложно представить – там внутри сотни бизнес-кейсов, множество всяких политик (безопасности, доступа, оповещений и проч). UUID-ы, JOIN-ы, constraints и прочее – всё происходит на уровне кода.

Он развивается благодаря тому, что разработчики пишут прежде всего код, продумывают и тестят бизнес-логику в отвязке от базы, а уже потом маппят в базу результат. Фичи запиливаются в таком режиме очень быстро. Я видел, как ведущий разработчик Фабрикатора запиливает за сутки десятки новых фич – продуктивность просто сумасшедшая.

sm-vasya
Сообщения: 191
Зарегистрирован: 2015.03.04, 01:12

Re: Yii2 - атака хейтеров и что делать дальше?

Сообщение sm-vasya » 2018.03.18, 11:37

Nex-Otaku писал(а):
2018.03.18, 01:37
Ну а по мне, это не "констатация", а банальная грязная ругань в адрес оппонента, за неимением аргументов. Причём кроме Васи никто до этого не опускается.
то что есть перебор с моей стороны я согласен, за что извиняюсь у всех читателей. но вот хронологию вы "немножко" спутали а аргументы не приняли. не очень понимаю зачем в разговор эта упрямая труженица стала вставлять посты не имеющие к предмету разговора никакого отношения. вот мне и пришлось опытным путем выяснить что только опустившившись до такого же уровня можно общаться с данным субъектом.
Последний раз редактировалось sm-vasya 2018.03.18, 15:42, всего редактировалось 1 раз.

sm-vasya
Сообщения: 191
Зарегистрирован: 2015.03.04, 01:12

Re: Yii2 - атака хейтеров и что делать дальше?

Сообщение sm-vasya » 2018.03.18, 12:40

rugabarbo писал(а):
2018.03.18, 05:54
Code First – это боль во многих смыслах: долго, дорого, многословно, овер-инжиниринг многих вещей неизбежен. Но есть целый класс разработок, которые без Code First не будут развиваться, потому что станут негибкими. Тот же Фабрикатор без Code First сложно представить – там внутри сотни бизнес-кейсов, множество всяких политик (безопасности, доступа, оповещений и проч). UUID-ы, JOIN-ы, constraints и прочее – всё происходит на уровне кода.
если мы говорим про классы - то будьте добры определите эти классы :) как мне отнести приложение к одному из классов
rugabarbo писал(а):
2018.03.18, 05:54
Он развивается благодаря тому, что разработчики пишут прежде всего код, продумывают и тестят бизнес-логику в отвязке от базы, а уже потом маппят в базу результат. Фичи запиливаются в таком режиме очень быстро. Я видел, как ведущий разработчик Фабрикатора запиливает за сутки десятки новых фич – продуктивность просто сумасшедшая.
он развивается не благодаря коде фест, а благодаря тому что есть мотивация его развивать

из всех аргументов которые я пока услышал - это только то что :
1. БД не нужно проектировать
2. коде фест позволяет сконцентрироваться на бизнес разработке и быстро разрабатывать

===

1. у меня например проектирование БД не занимает много времени, я заранее прикидываю отношения нагрузок на таблицы и запросы, строю индексы. изменения в бд происходят очень редко, и обычно это чтото типа "а давайте еще один параметр добавим". поэтому пункт №1 - идет в топку. изменений архитектуры (т.е. например было один ко многим - стало много ко многим) у меня не бывает, тут я заранее все продумываю.

2. бизнес логика и в том и в другом случае пишется на РНР. собственно разницы тут быть не может. разница может быть только на начальном этапе когда нету вообще никаких собственных сред. производительность увеличивается когда похожие функции группируешь в 1 месте. вот вопрос про экшен который я задал - как раз один из них. у меня есть куча нужных мне типовых екшенов, на них построено куча типовых контроллеров, модулей. разработка множества вещей для меня занимает не больше часа (подключил в конфиге новый модуль, прописал настройки там же, отнаследовался от класса и заполнил абстрактную функцию) и в основном это только фронт-разработка - верстка, js и тд. но это же не имеет отношения к коде фест и РНР, правда :) ?

на всякий случай https://github.com/phacility/phabricato ... rc/js/core - казалось бы и где тут бизнес логика и коде фест :)

итого.

сравнивать быстроту - вещь не благодарная и субъективная. криворукий на коде фест будет разрабатывать вашу бизнес логику дольше чем средний на дб фест.

как я уже писал - у меня есть множество знакомых "бизнесменов" которые считают что конструктор лендингов и вордпресс - это единственное что нужно "бизнесмену" а все программисты идиоты, потому что тратят кучу времени и денег. ВАС эти "бизнесмены" тоже будут считать идиотом, потому что они рассуждают более высокими сущностями и не могут а потому не желают разбираться в мелочах. и эту иерархию можно еще продолжить. поэтому - ВАМ нравится коде фест - пожалуйста, используйте, но как правильно было отмечено, не надо мазать дб фест черной краской а коде фест белой только потому что у вас на нем (на коде фест) получается быстрее (или вам так удобней) и именно поэтому вы видели что есть проект который на коде фест быстрее (потому что быстрый проект на дб фест вы уже не заметите в силу субъективности)

noLogicOnlyWar
Сообщения: 70
Зарегистрирован: 2017.07.04, 20:53

Re: Yii2 - атака хейтеров и что делать дальше?

Сообщение noLogicOnlyWar » 2018.03.18, 13:25

из всех аргументов которые я пока услышал - это только то что :
1. БД не нужно проектировать
2. коде фест позволяет сконцентрироваться на бизнес разработке и быстро разрабатывать
Code first не значит что о базе вообще не задумываются. Взять Вернона, он проектирует с оглядкой на базу. Сурогатный ключ или рекомендации делать небольшие аггрегаты (когда узким горлышком становится загрузка коллекций из базы), это все протечки знаний о базе данных. Code first в моем понимании это мыслить и проектировать в терминах предметной области, да сначала код, но делать вид что мы вообще не знаем что там у нас за хранилище - очевидно приведет к проблемам.

соответсвенно
1) нужно, как и всегда
2) разрабатывать медленно, расширять быстрее и проще.
сравнивать быстроту - вещь не благодарная и субъективная. криворукий на коде фест будет разрабатывать вашу бизнес логику дольше чем средний на дб фест.
Дб ферст всегда будет быстрее, ибо базы что для одного что для другого подхода могут быть абсолютно одинаковыми а код в code first всегда будет содержать некоторый оверхед. Другое дело что не обязательно это будет значительный оверхед.
множество знакомых "бизнесменов" которые считают что конструктор лендингов и вордпресс - это единственное что нужно "бизнесмену" а все программисты идиоты
nuff said. Сомневаюсь что программист работающий на ваших знакомых задумывается: "хм, а тут code first применить или все же db first".

sm-vasya
Сообщения: 191
Зарегистрирован: 2015.03.04, 01:12

Re: Yii2 - атака хейтеров и что делать дальше?

Сообщение sm-vasya » 2018.03.18, 14:28

noLogicOnlyWar писал(а):
2018.03.18, 13:25
множество знакомых "бизнесменов" которые считают что конструктор лендингов и вордпресс - это единственное что нужно "бизнесмену" а все программисты идиоты
nuff said. Сомневаюсь что программист работающий на ваших знакомых задумывается: "хм, а тут code first применить или все же db first".
е-мае... мне вот почему то кажется что большинство тут сидящих умнее чем хабалка-професионалка и способны мыслить не только технично-буквально, собственно это не про программистов, а илюстрация того что чем человек "выше" как он думает "мыслит" тем больше он не видит того что творится на более "низких" уровнях. в данном случае "бизнесмен" уверен что он "выше", мыслит "бизнесом" и тд. а все что ниже - ненужная мышиная возня. но обычно из за своей тупости такие "бизнесмены" далеко не уходят. потому что как вы правильно написали - чем выше уровень разработки - тем больше накладных расходов, которые выливаются в конечном счете в потерю денег (более мощные сервера, потеря клиентов и тд) , т.е. тут некоторые особо одаренные писали что коде фест это более высокий уровень разработки, а я говорю что "бизнесмен" - это еще более высокий уровень разработки и он так же как и "высокоуровневые разработчики срут на низкоуровневых" - срет на программистов вообще, а "инвестор" срет на "бизнесменов"

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

я тут выше спрашивал что такое професиональный инструмент (но девочка почему то перешла на личности и стала нести чушь про професионалов)

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

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

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

в строительстве (и других областях) тоже есть "бизнесмены" которые не слышат что им говорят профессионалы, и покупают китайское Г а потом удивляются рентабельности бизнеса
noLogicOnlyWar писал(а):
2018.03.18, 13:25
разрабатывать медленно, расширять быстрее и проще.
это субъективно. я за хорошую архитектуру базы и за хорошую архитектуру ПО. когда архитектура есть - ее поддерживать проще. это не зависит от языка, парадигмы и тд.

Аватара пользователя
rugabarbo
Сообщения: 1056
Зарегистрирован: 2015.06.21, 16:21
Контактная информация:

Re: Yii2 - атака хейтеров и что делать дальше?

Сообщение rugabarbo » 2018.03.18, 14:56

Попробуйте ещё раз осознать сложность разработки того же Фабрикатора. Зайдите в список приложений Фабрикатора: https://github.com/phacility/phabricato ... plications

Он включает в себя:
* весь функционал гитхаба (issues, workboards, хранение репозиториев, labels, projects, ревью/аудиты кода и прочее) – они конкуренты
* свой встроенный CI-инструментарий
* командную работу над дизайн-макетами (вот пример: https://secure.phabricator.com/M1455 – всё прямо в браузере)
* гибкую оповещалку (herald)
* встроенные чаты, блоги, конференции, форумы, вики, QA, календари
* множество прочих встроенных приложений (биллинг, донат, счётчики, учёт времени работы над задачей и проч)
* гибкие политики безопасности и разграничения доступов
* конфигурацию на тысячи вхождений

Каковы должны быть скилы DBA, чтобы под такую богатую доменную модель спроектировать БД без ошибок с первого раза?

sm-vasya
Сообщения: 191
Зарегистрирован: 2015.03.04, 01:12

Re: Yii2 - атака хейтеров и что делать дальше?

Сообщение sm-vasya » 2018.03.18, 15:07

rugabarbo писал(а):
2018.03.18, 14:56
Каковы должны быть скилы DBA, чтобы под такую богатую доменную модель спроектировать БД без ошибок с первого раза?
хорошо что истеричка со своим "все ржут" отпала, и не наводит грязный шум в конструктив.

во первых - я согласен, профи есть профи.
во вторых. я уверен на 100% что и в фабрикаторе все что реализовано сейчас - не было заранее продумано. все было как то поступательно: давай сделаем гит хранилище и чат, а потом еще календарь. и компаньоны - да, классная идея. окей, тогда давайте примем такой план: сначала сделаем гит ханилище. потом добавим чат. потом календарь. так вот с БД я не вижу необходимости на этапе "сделаем гит хранилище" проектировать "календарь", особенно если между ними слабая связь (к примеру, без привязки к фабрикатору). но иметь ввиду это можно нужно.

Аватара пользователя
rugabarbo
Сообщения: 1056
Зарегистрирован: 2015.06.21, 16:21
Контактная информация:

Re: Yii2 - атака хейтеров и что делать дальше?

Сообщение rugabarbo » 2018.03.18, 15:18

Code First позволяет в разработках уровня Фабрикатора изначально сосредоточиться только на сущностях домена и бизнес-логике. Объекты при необходимости прототипируются с фейковым наполнением прямо в памяти. А уже такая второстепенная деталь как хранение данных продумывается после реализации очередного куска домена.

Не знаю, как ещё объяснить. Думаю, нужно просто попробовать запилить какую-нибудь фичу в Фабрикатор, чтобы понять количество внутренних взаимосвязей объектов. Если начинать делать фичи для него с проектирования БД, то над задачей можно залипнуть на многие недели. Code First позволяет сразу писать сложную логику, не отвлекаясь на малозначимый вопрос хранения данных.

Хранение данных для Code First – всего лишь деталь, дополнительная часть, но не основа. Именно поэтому её держат в голове при разработке домена, но не опираются на неё, не делают её ключевой при построении приложения.

sm-vasya
Сообщения: 191
Зарегистрирован: 2015.03.04, 01:12

Re: Yii2 - атака хейтеров и что делать дальше?

Сообщение sm-vasya » 2018.03.18, 15:38

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

а что касается фабрикатора. то для меня лично наличие такого огромного функционала скорее надостаток чем достоинство. объясню.

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

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

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

из этого следует что разработка чата и календаря будет вестить в принципе не зависимо, и разработчики смогут более качественно проработать функционал и детали.

и конечно же никаких "прицепов"

банально, но тот же слек не хуже чата в фабрикаторе, ведь правда :) ?

Аватара пользователя
rugabarbo
Сообщения: 1056
Зарегистрирован: 2015.06.21, 16:21
Контактная информация:

Re: Yii2 - атака хейтеров и что делать дальше?

Сообщение rugabarbo » 2018.03.18, 15:55

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

Это можно сравнить с менеджментом на крупных предприятиях. Зачастую он сложен и неповоротлив, под основателем сидит совет директоров, а под директорами множество менеджеров среднего звена. Ну взять тот же Яндекс, да? https://habrahabr.ru/post/342012/ – почему по-твоему с годами выкристаллизовался такой подход, в котором крупные компании обзаводятся казалось бы "столь неповоротливой" иерархией управления? Потому что нет других способов управлять сложной операционной деятельностью таких компаний. Либо ты строишь иерархию управления, либо компания теряет возможность справляться со своими объёмами и сложностью задач. При этом там все прекрасно понимают, что оверхед иерархии управления очень высокий.

Так и в Code First. Он даёт большой оверхед на старте, но позволяет стабильно справляться разработчикам со сложными задачами в долгосрочной перспективе. DB First при сложном домене неизбежно заводит разработку в тупик.

Это при разработке очередного интернет-магазина мы можем с тобой говорить "нравится" или "не нравится". Выбирать такой подход или другой. А для реально сложных предметных областей Code First – это не вопрос предпочтений. Это уже вопрос выживания проекта на длинном забеге.

urichalex
Сообщения: 582
Зарегистрирован: 2015.08.07, 11:03

Re: Yii2 - атака хейтеров и что делать дальше?

Сообщение urichalex » 2018.03.18, 16:48

Вот нравится вам кормить этого троля. Столько слов, столько говна... Специалист... Хороший специалист никогда не будет высмеивать других специалистов, тем более такими словами как тут
З.Ы. А что такое incoice? это из какого языка?

sm-vasya
Сообщения: 191
Зарегистрирован: 2015.03.04, 01:12

Re: Yii2 - атака хейтеров и что делать дальше?

Сообщение sm-vasya » 2018.03.18, 16:49

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

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

sm-vasya
Сообщения: 191
Зарегистрирован: 2015.03.04, 01:12

Re: Yii2 - атака хейтеров и что делать дальше?

Сообщение sm-vasya » 2018.03.18, 16:59

urichalex писал(а):
2018.03.18, 16:48
Вот нравится вам кормить этого троля. Столько слов, столько говна... Специалист... Хороший специалист никогда не будет высмеивать других специалистов, тем более такими словами как тут
я с вами совершенно согласен. я уже ответил на этот вопрос - посмотрите хронологию. я совершенно конструктивно начинал все диалоги, более того я всегда предварял шуткой типа "мои лыжи не едут"

и действительно умный человек отреагирует на шутку улыбкой, а дибил - подсознательным "о да он на самом деле дибил, ща я его еще и как нибудь назову". так люди и проверяются :)

urichalex писал(а):
2018.03.18, 16:48
З.Ы. А что такое incoice? это из какого языка?
молодец. возьми с полки пирожок.

sm-vasya
Сообщения: 191
Зарегистрирован: 2015.03.04, 01:12

Re: Yii2 - атака хейтеров и что делать дальше?

Сообщение sm-vasya » 2018.03.18, 21:36

rugabarbo писал(а):
2018.03.18, 15:55
Это можно сравнить с менеджментом на крупных предприятиях. Зачастую он сложен и неповоротлив, под основателем сидит совет директоров, а под директорами множество менеджеров среднего звена. Ну взять тот же Яндекс, да? https://habrahabr.ru/post/342012/ – почему по-твоему с годами выкристаллизовался такой подход, в котором крупные компании обзаводятся казалось бы "столь неповоротливой" иерархией управления? Потому что нет других способов управлять сложной операционной деятельностью таких компаний. Либо ты строишь иерархию управления, либо компания теряет возможность справляться со своими объёмами и сложностью задач. При этом там все прекрасно понимают, что оверхед иерархии управления очень высокий.

Так и в Code First. Он даёт большой оверхед на старте, но позволяет стабильно справляться разработчикам со сложными задачами в долгосрочной перспективе. DB First при сложном домене неизбежно заводит разработку в тупик.

Это при разработке очередного интернет-магазина мы можем с тобой говорить "нравится" или "не нравится". Выбирать такой подход или другой. А для реально сложных предметных областей Code First – это не вопрос предпочтений. Это уже вопрос выживания проекта на длинном забеге.
спасибо большое за статью, я не любитель статей школьников, но в пределах статистической погрешности (1-2%) там бывает что почитать - без этого никуда, прочитал с большим интересом этого безусловно уважаемого человека, но нового ничего не нашел :) я собственно тоже к таким выводам прихожу постоянно. у меня сейчас есть один большой проект на легаси и с коде фест :) я уже несколько раз задумывался о смене/апгрейде - это фактически написать почти с нуля. радует только одно - я не программист и не чикрыжу его :) то о чемы вы говорите - у меня уже наступило :)

собственно чуть выше я и написал - пока вы сейчас говорите про то что коде фест - это круто и современно и на 100 лет вперед, то (вангую) лет через 5 будет "апп фест", потом будет "нейро фест" потом "бизнес фест", "турбо-мега-бизнес фест" - это рутина :)

Аватара пользователя
rugabarbo
Сообщения: 1056
Зарегистрирован: 2015.06.21, 16:21
Контактная информация:

Re: Yii2 - атака хейтеров и что делать дальше?

Сообщение rugabarbo » 2018.03.18, 22:04

Возможно. В сфере IT всё меняется очень быстро.

sm-vasya
Сообщения: 191
Зарегистрирован: 2015.03.04, 01:12

Re: Yii2 - атака хейтеров и что делать дальше?

Сообщение sm-vasya » 2018.03.19, 00:53

rugabarbo писал(а):
2018.03.18, 22:04
Возможно. В сфере IT всё меняется очень быстро.
гигантского разрыва в технологии нет, но недостатки в конкретной я указал. менять одно на другое смысла не вижу, я некоторые модули написал давно, переделываю мало - они обеспечивают большинство моих потребностей и будут обеспечивать еще долго. как я уже писал - для меня программирование сейчас - это в конфиге собрать, навести тюнинг. гораздо быстрей чем у вас с вашей полировкой кода :)

будет что то принципиально новое - задумаюсь может и сменю. когда то вот так вот перешел на юии :) - увидел колосальные возможности архитектуры - за что хочу сказать разработчикам огромную благодарность

Аватара пользователя
rugabarbo
Сообщения: 1056
Зарегистрирован: 2015.06.21, 16:21
Контактная информация:

Re: Yii2 - атака хейтеров и что делать дальше?

Сообщение rugabarbo » 2018.03.19, 01:56

У каждого подхода свои cons/pros. Код, созданный в NASA и код сайта-визитки служат разным целям, поэтому и стоимость у них разительно разная. Хотя есть попытки и стандарты NASA обсудить/заюзать "в миру" в качестве "хороших": https://habrahabr.ru/company/hexlet/blog/303160/
Последний раз редактировалось rugabarbo 2018.03.19, 02:13, всего редактировалось 1 раз.

Аватара пользователя
rugabarbo
Сообщения: 1056
Зарегистрирован: 2015.06.21, 16:21
Контактная информация:

Re: Yii2 - атака хейтеров и что делать дальше?

Сообщение rugabarbo » 2018.03.19, 02:01

Так и с Code/Db First. Один понимает pros и осознанно берёт подход на вооружение, учтя все/многие cons. Второй - просто с пеной у рта будет доказывать, что подход "хороший".

Вторых следует избегать в проф практике. И работать с первыми: https://habrahabr.ru/company/mbaconsult/blog/299302/

Ответить