Обновить
0
0.6
Дмитрий@TheJudge

Пользователь

Отправить сообщение

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

Вот как лично я понимают это "куча логики", в хорошем смысле, это когда у вас есть приложение которое занимается какими-нибудь налоговыми расчетами, и в которое заложены миллион правил (типа если тут так, то плюс процентик, а если тут эдак, то минус процентик). Ну или какая-нибудь поисково рекомендательная система. Или САПР. Но и там, обычно либо можно что-то типа конечного автомата написать, или какой-то минимальный DSL закинуть. Да кучи вариантов просто. Да и много их этих САПРов?

Просто так не принято. На каждый чих мы создаем какие-нибудь UserPasswordUpdateManager, с десяток файлов чтобы имя и пароль пользователя менять. Еще все это в разных местах физически. И желательно (шутка) чтобы это все на разных слоях обрабатывалось. Т.е. в клиенте мы делаем отдельный интерфейс для этого класса. И конечно, обложим все это тестами, да побольше. И вот вместо одной функции у вас уже 15 файлов, 10 классов, немного кода на SQL и штук 20 тестов.

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

Вот обычно такую "сложную бизнес-логику" я наблюдаю. Это да, реально сложно, плакать охота.

Так их аршином не измерить... Знавал я хороших фронтендеров, которые "во всяких этих серверах ваших" вообще ни бум-бум. Как-бы нельзя быть экспертом во всем. А тут все-же разные люди обитаются. Вон и по электронной части много постов в последнее время, интересно, читаю. Может они паяют как боги а в коде - "ну ни в зуб"? Но все-же нельзя им запретить на эту тему высказываться. Не по-людски.

Про "экспертность" все-же есть вопрос. Не вижу на Хабре надписи "вход только через Макс сеньорам со стажем не менее 20+ лет при предьявлении документов на докторскую степень". Ну сами понимаете, это уже как-то делает ресурс околоразвлекательным...

Ну какой-то бэкграунд у меня есть. Я все-же инженер-электрик. Поэтому законы Ома и Кирхгофа еще знаю. Но последние 25 лет вообще к этому делу не притрагивался. В плане каких-то МК за это время сильно все изменилось. Особенно всякие штуки типа разных МК, особенностей работы с ними и прочих разного типа устройств. Вот тут много интересностей и много подводных камней. Имитация.. Ну возможно да, имитация. Но я так, как развлечение (чтоб время было чем занять). Мне не на продажу хайэнд пилить...Пока мои потребности гораздо проще, типа электронного звонка с мелодиями на лимитированном по ресурсам МК. Интересно даже не столько решить задачу, сколько решать ))) Хорошо голову прочищает.

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

Суть в том что 99% всего что происходит там утыкается в самые простые алгоритмы. Там нет необходимости даже городить все эти абстракции.

А самая проблема знаете где начинается? Когда вы пытаетесь подогнать задачу под стэк. Возьмем, и создим большой, тяжелый сайт. Используем для этого, конечно!, Битрикс, и чтобы каждая фигулька на странице обрабатывалась через несколько слоев разного мусора.

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

Может даже поменяем фреймворк-другой на фронтэнде (точно! в нем все проблемы!).

А того что вы говорите - ну это 1% всех проектов. Там да, там есть необходимость все вот это делат. Но проблема весьма распространена гораздо шире.

Да ну и .... с ними. Вам что, жалко?

Мало того. Извините, вторым комментарием. Я вот электроникой (Adruino) только недавно стал увлекаться, до этого 30 лет программировал всякое разное. Ну и хожу, читаю что умные люди пишут. Ну и скажу я какую-нибудь дичь вдруг. Но я же не специально!!! Просто мне правда интересно, в лоб не всегда все гуглится, теории для понимания мне не хватает. И что теперь, баннить меня? Обидно...

Знаете. А вообще легче что-то публиковать просто, не из-за того чтобы поставили лайки местные авторитеты. А вот просто. Просто мнение. Кому-то будет полезно - хорошо, нет - ну и черт с ним. Я думают лучше жить по этому принципу. Не пинать никого за то что он высказался. Т.е. все-таки дадим школьнику тоже шанс, вдруг, совершенно случано у него какая-то там здравая мысль, а его просто загнобили? Непродуктивно. Гораздо правильное следовать тактике "не нравиться - просто пройти мимо, пригнорируй, побереги нервишки". И всем жить станет веселее. Это же Хабр, а не завод где этот школьник может ковейр важный поломать. А так, пуст развлекается, развивается..

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

Да "чтобы было". Нужно же поддерживать свой статус технологической элиты. Вопросы типа "а нахрена, если можно в 10 раз проще, компактнее и быстрее?" не приветсвуются. Представьте что сейчас Яндекс заявляет что пишет все на PHP? Да засмеют, просто никто не будет воспринимать в серьез, даже если все будет работать нормально и стабильно. Вроде как компания для умственно отсталых. Как отбирать в этом случае людей? А тут можно нагородить трехэтажные вундервафли с кучей заумных аббривеатур, которые делают все то-же самое, но уже заметно так повышают уровень того кто придет туда работать. Потому-что не каждый разберется в этих вундервафлях, это надо просто дофига времени на это убить. Правда ты уже не можешь хорошо в Computer Science, потому-что не до этого, нужно учить каждый год новый фреймворк, тут, понимаешь, не до алгоритмов. Правда писать они на этих вундервафлях будут все-тот же самый код, тут со времен Кнута мало что поменялось, никаких особо новинок нету, но зато теперь в этом коде сам черт ногу сломит, хотя там выборка, сортировка и поик, ничего нового. Достижение, однако.

Да мы больше про новые стэки, которые очень модны нынче в крупных компаниях, в которых писать на PHP или чем-то вообще маленьком - просто дурной тон. Как там говорят: "Ты находишься в зоне комфорта и это плохо, нужно сломать все и преодолевать проблемы через боль. Если ты преодолеваешь проблемы без боли - значит плохо преодолеваешь, недостаточно мотивирован". Вот и все дела. Один раз я пришел на собес, мне там начали эту всю херню разгонять, реши такую задачу, реши сякую, а вот если вот это, а вот если то. Хотя некоторые из них решались на голом SQL на стороне сервера и я об этом сказал, что лучше "не надо городить огород". Но, понимаете, так решать нельзя, понимаете, тут недостаточно стэков в решении. Недостаточно боли...

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

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

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

Современные "технологии" полагаются на целую пирамиду сущеностей и зависимостей. А зависимости от версии версии то обновятся (вдруг) совершенно непредсказуемым образом, то отвалятся, то перестанут работать (а документации то и нету, в код особо не залезешь, а если залезешь и даже что-то там пофиксишь, то возможно потом что-то другое отвалится) и вот теперь уже так конструкция которую ты выстраиваешь перестает делать то что тебе нужно. Причем каждый компонент не узкоспециализированн, а включает в себя все, что нужно и что не нужно. Нужны 2 функции. Писать самому? Неее... подключаем библиотеку на 50 мб, в которой эти функции есть.... И в результате ты борешься с этой всей хреновиной из "продвинутых технологий", а не пишешь код.

Отдельные курсы и целые профессии для того чтобы всем этим управлять. Уже не смешно.

Согласен. "Верстай все взад"...

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

Ну это и понятно. И это не говоря о производительности. Просто достаточно развернуть стэк вызовов. 20 вызовов чтобы в конце выполнить функцию, которая выполняется быстрее чем эта фигня из вызовов? Это сейчас нормальное явление. Мы греем воздух процессорами, которые 90% времени могут ничего не делать, только переходы, и не всегда даже условные.

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

Благодарю за статью! Как по заказу. Как-раз недавно прикупил несколько МК, голову ломал как к ним подступится.

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

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

1

Информация

В рейтинге
2 235-й
Откуда
Россия
Дата рождения
Зарегистрирован
Активность

Специализация

Фулстек разработчик, Архитектор программного обеспечения
Ведущий
Python
JavaScript
HTML
React
PHP
Разработка программного обеспечения