Предыдущий тред был тут: >>3283119 (OP)
Старые треды тут https://2ch.hk/pr/arch/ (М) (искать по слову php), а также на архиваче и в гугле по словам по словам "клуб изучающих PHP".
С чего начать - основы PHP
Наши уроки по PHP собраны по адресу http://codedokode.github.io/phpbook . Это учебник для изучающих с нуля. Там есть задачи, их нужно решать. Но если этот учебник тебе не нравится, можно читать любой другой. Или официальный справочник ( https://www.php.net/manual/ru/langref.php ). Или все сразу.
Если что-то непонятно, запости код и попроси подсказку или поищи задачу в архиве тредов.
Какой редактор использовать
Простые задачки можно решать в онлайн-песочницах вроде https://onlinephp.io/ , https://paiza.io/en/projects/new?language=php , https://www.programiz.com/php/online-compiler/ , но для программ посложнее лучше установить редактор. Есть (дорогая) IDE PhpStorm, есть бесплатный Netbeans и VSCode, условно-бесплатный Sublime Text. Чтобы в последних получить автодополнение для PHP, нужно установить и настроить PHP language server.
Вот инструкции по установке PHP на компьютер: https://github.com/codedokode/pasta/blob/master/soft/php-install.md
Гайд по командной строке: https://github.com/codedokode/pasta/blob/master/soft/cli.md
Что изучать дальше
Зная лишь основы PHP, сайт ты не сделаешь и работу не найдешь. Обычно от начинающего требуют чуть-чуть больше:
PHP, ООП, основы HTTP, HTML/CSS (основы верстки), JS, SQL, PDO, MVC, git, composer, какой-нибудь фреймворк (Laravel или Symfony), основы автоматического тестирования, основы linux, английский.
Вот неофициальный роадмап (карта того, что можно изучать): https://miro.com/app/board/o9J_lbUUBBQ=/
По многим из этих тем у нас есть уроки или задачки:
- для понимания, что такое веб-сервер, прочти урок https://github.com/codedokode/pasta/blob/master/soft/web-server.md
- для понимая MVC, работы с БД и формами, реши задачу про студентов, в ней много полезных советов: https://github.com/codedokode/pasta/blob/master/student-list.md
- далее есть более сложная задача сделать файлообменник на микрофреймворке Slim: https://gist.github.com/codedokode/9424217
- задача, близкая по сложности к реальным задачам на Laravel/Symfony: https://gist.github.com/codedokode/8733007
- после нее можно изучать автоматизированное тестирование https://gist.github.com/codedokode/a455bde7d0748c0a351a
- если ты все решил, переходи к Symfony или Laravel
- почитать про паттерны можно тут https://designpatternsphp.readthedocs.io/ru/latest/ (если ты не изучил ни одного фреймворка, то это будет рановато). Если хочешь увидеть примеры использования паттернов в реальном коде - ковыряй исходники Симфони, например Symfony Forms. Ну и скажем честно, начинающему без опыта, который не видел сложный код, паттерны понять будет сложно.
- для улучшения английского можно читать news.ycombinator.com - там много статей на тему IT.
Также, у нас есть задачи которые позволят тебе изучить или подтянуть до нормального уровня знания JS/HTML/CSS/SQL. Решай их параллельно с задачами выше.
- задачи на HTML/CSS: https://github.com/codedokode/pasta/blob/master/html/html.md
- хороший учебник по JS: https://learn.javascript.ru/
- задачи на JS: https://gist.github.com/codedokode/ce30e7a036f18f416ae0
- задача на SPA (сложно): https://github.com/codedokode/pasta/blob/master/js/spa.md
- проверялка решений на JS: http://dkab.github.io/jasmine-tests/
- задачки на SQL: https://www.sql-ex.ru/ (нужна регистрация), https://sql-academy.org/ru/trainer и немного наших задачек: https://github.com/codedokode/pasta/blob/master/db/databases.md
Что еще почитать
- Мануал по PHP — http://www.php.net/manual/ru/langref.php
- https://phptherightway.com/
- Книга: Профессиональное программирование на PHP Джордж Шлосснейгл
- Книга: Мэтт Зандстра — PHP: Объекты, шаблоны, методики программирования
- Про Git: https://git-scm.com/book/ru/v2
- Задачи на алгоритмы: https://codeforces.com/problemset
Дополнительно
- скачать учебник: зайди на https://github.com/codedokode/phpbook, нажми зеленую кнопку Code -> Download ZIP, распакуй на рабочий стол и открой index.html
- что будут спрашивать на собеседовании, если 0 опыта - будут гонять по теории, по официальному мануалу PHP, давать дурацкие задачки на переворачивание строк, гонять по SQL (транзакции, внешние ключи, напиши запрос), по JS (как сделать анимацию при нажатии кнопки), ну погугли, не ленись
- сколько времени надо изучать все это? - все зависит от тебя, в районе 10-15 месяцев
>почитать про паттерны можно тут
Мне надо про паттерны работу написать, с фреймворками еще не работал, но знаю ООП неплохо. Получится?
Может получится, а может и не получится. Дерзай!
Пхп ето кал, если есть возможность залететь на другие стеки, то дерзай, а пхп только в последнюю очередь рассматривай
>яндексы вообще не учат на пыхеров
Так это как раз хорошо! Значит, меньше вкатунов с говнокурсов, меньше алгоритмического дроча, требований вышки, зарплат по 40к на старте и вот этого всего. К слову, говнокурсы яши (а с ними и скуфбоксов etc) нигде не котируются - яндекс сам своим хрюшам спускает инструкции отсеивать выпукников собственных курсов, потому что прекрасно понимает что торгует калом и прост прогревает лохов на бабки.
Это ты еще битрикс не видел!
Там вообще по 0 откликов на каждую вакансию, самое то для вкатуна 👍
>яндекс сам своим хрюшам спускает инструкции отсеивать выпукников собственных курсов, потому что прекрасно понимает что торгует калом и прост прогревает лохов на бабки.
Неужели нет человека внутри яндекс который сольет эти инструкции в сеть и разошлет вкатунцам отдавшим 150к за обучение🤣🤣🤣😂😂
>Подскажите, этот ваш ПХП вообще что-то актуальное или уже нет?
Он будет актуален ещё лет 20 как минимум. В мире есть куча консервативных людей, которые как выучили jquery, php, mysql двадцать лет назад, они так и будут лет 20 его использовать, до 2044 года. И лично я не считаю пхп ужасным языком. Проблема не в языке. Проблема в мудаках-программистах и мудаках-заказчиках. Кто заказывает проекты на пхп? Мелкий бизнес в основном, каждый второй говномагазин в интернете написан на пхп. И разные далёкие от айти люди. Типа логических компаний, перевозчики, депутаты, государственные органы, косметологи, и прочее. Будет ли технологическая компания, которая прям живёт и дышит айти разрабатывать проекты на пхп? Да конечно же нет! Пхп нахуй не нужен яндексу, гуглу, амазону и т.д. Потому что он медленный и сфера его применения ограничена одним вебом. Стоит ли пхп учить на перспективу? Конечно же нет. Перспективы у языка нет никакой.
Лол, если на этот кал требуют два года опыта, то на остальные стеки даже смотреть смысла нет. Вкат в айти всё. Нужно вкатываться в рабочие профессии типа заводчан или сварщиков
100% помощь, а не 100% трудоустройство. Инфоцыгане любят такие тонкие моменты где можно развести гоя
>почему тогда у них на глагне написано что 100% помощь с трудоустройством после окончания курса у яндекса?
Это просто маркетинговое наебалово. "Помощь" можно трактовать как угодно. Можно сказать вы подписались на наш список рассылки с вакансиями - это мы помогаем вам. Тоже самое, вкатываетесь или вернём вам деньги. Я могу статистически посчитать, допустим один из 5 не вкатывается. Ага, значит я могу повысить стоимость на 20% и я ничего не теряю, если верну этому чуваку деньги.
В любом случае, надо читать договор и мелкий шрифт. Наплести они могут что угодно.
>Ага, значит я могу повысить стоимость на 20% и я ничего не теряю, если верну этому чуваку деньги.
Всё проще - требуем от вкатуна 10 письменных отказов, приносит - возвращаем деньги. Интересно, был ли хоть один прецедент возврата бабок за говнокурсы.
Каждый залетающий в айти и этот раздел думающий что после курсов будет комо то нужен. Так вот, такого не было никогда, владельцы курсов просто продают лопаты во время местной залотой лихорадки, им вск равно на качество продукта. Привыкайте воспринимать курсы просто как интро к каком-то иеструменту, в любом случае будете 90% времени гуглить и учиться со стронних источников и доков, если конешно хотите в айти попасть.
Нет, обязательно чтобы указано было что с яндекса тоже не берут
Норм парни не кодят на пыхе из-под винды. Хотя когда я работал на битриксе, там опытные челы его использовали, потому что надо логиниться в учетки заказчика, а там свои впн настроены и клиенты ток под винду. Лучше потрать пару дней и попердолься с vagrant homestead.
>и норм парни вручную все настраивают
Норм парни докером пользуются, лол. Как раз вручную настраивать это через опенсервер, потому что "не автоматически"
В одной маленькой конторе использовали вагрант, ковырялись в конфигах сервера и работали с консолью, затем успешно мигрировали на докер. А вот в других "крупных" компаниях использовали open server. Причем даже было такое, что у одного опенсервер на апаче, а у другуг на нджинксе.
>я говнокодер
Ты лишаешь себя опыта работы с линуксом
Ну я с заделом на будущее. Пока просто не особо пазл складывается, хотя вроде знаю какая технология для чего, например редис, бд, ларавел, апачи, пхп, реббитмк, а как все это вместе сделать сложить и почему именно линукс понимания нет. Я так сказать неуспешный студент и вписался в проект один. Поэтому выбрал что то попроще по типу опенсервер где все уже есть
>и почему именно линукс понимания нет
Хостинги на линуксе (если это не для .NET насколько я помню). Но пока нет доступа к терминалу, можно не заморачиваться наверное.
А че там накатывать то? Я просто скачал докер, ткнул галку с wsl, всё запускает работает, как я понимаю используя всл сразу.
Или ты предлагаешь прям взять всл, туда скачать образ линукса и уже на Линуксе запускать докер? Тогда наверное проще виртуалку поставить
>и почему именно линукс понимания нет
Потому что Windows Server в целом не очень. Для маленьких сайтиков он слишком сложный и обладает кучей корпоративных функций. Для больших сервисов он недостаточно свободы дает.
У него ниша это только "энтерпрайз .NET". То есть вы не айтишная компания, например крупная авиакомпания. И у вас есть собственное мега-приложение на .NET которое вы используете для автоматизации работы компании.
Вот тут виндосервер еще +- норм. Но опять же, не в российских реалиях.
>100% помощь
Максимум разберут типичные вопросы с собесов и помогут с оформлением резюме, всё. По блату никого никуда не протолкнут.
>>24498
Всё так. Сам пробовал курс по питухону, это пиздец, никто вообще не понимал чё к чему, все повторяли какой то код за преподом как обезьянки, потом он по минимуму пытался объяснить что это всё значит и переходил к следующей теме. Тупо чел сидит на зп и ему срать какого качества кадры выпустятся с курса, задаёт алгоритмические задачи при том что алгоритмам даже не учит, они вообще не упоминаются на курсе, то есть он даже не вдупляет чему вообще учил и какого уровня знаний ожидать от людей. Пара дней уделяется ООП, столько же SQL, и сразу по программе приступаешь к Джанге с кашей в голове. Мм найс. Может в яндексе всё получше, учитывая что там годовая программа, хз.
>владельцы курсов просто продают лопаты во время местной залотой лихорадки
По-моему и золотая жила уже иссякла.
До сих пор яростно пиарят курсы. Каждое видео открою - там реклама ебаного курса
>Норм парни не кодят на пыхе из-под винды.
Сейчас 2024 год на дворе, в win10 есть ядро линукса из коробки, wsl называется.
Он ломается блядь, сука, вы в КАЖДОМ треде про это говорите нахуй. Вам лень по ссылкам в шапке и по гуглу метнуться?
Ты вообще знаешь что такое wsl? Редактор запускаешь из под винды, а кодовая база находится в wsl. И пхпшторм не нужен когда есть vscode.
Ну чёт слышал, попробовать надо.
Если только вкатываешься то опенсервер норм.
В тот момент, когда ты поймёшь, что пердолинг с виндой в попытках завести очередную хуйню начинает занимать слишком много времени, спокойно перекатишься на Линукс. Убунта казуальнее некуда.
Для более-менее серьёзной разработки Линукс необходим. Винда слишком херово работает под веб парашу.
И это говорит тебе убеждённый хейтер красноглазой недосистемы.
> В тот момент, когда ты поймёшь, что пердолинг с виндой в попытках завести очередную хуйню начинает занимать слишком много времени, спокойно перекатишься на Линукс
АХАХАХАХААХАХАХАХА
Даже спермоблядь, макакающая на мразотном быдлокодерском ПЕХОПЕ, признаёт, что виндус говно, спешите видеть.
Это к репетитору
Ну надо кароч нормально так сесть, с пивасом и кальмарами. И нормально так прочитать доку за вечер. Ну и все кароч.
https://github.com/casshh87/uppu.ru
Потом переделаю
А что с ним не так?
1) Есть еще какие-нибудь ресуры, где помогают реализовать свой pet проект?
2) Какие самые понятные ресуры для полного понимая MVC и SOLID, чтобы хватало на проекты и собеседования?
3) Есть какой-нибудь понятный курс для изучения алгоритмов (желательно с применением PHP)?
4) Как быстро освоить книгу Чистый код Душного Боба?
5) Какие курсы или ресуры посоветуете для изучения английского
1-4 - подписка на Хекслет за 4к в месяц, лучше по пыхе ничего нет, там как раз разбираются все эти штуки + книга ACWA Book Adel F.
5 - хз это в /fl/
Первое что бросается в глаза: используется композер, прописан автолоад, но какого-то хуя везде все равно include и require. Разберись как работает автозагрузка наконец.
Второе это классика: вся хуйня со всей хуйней. Вот есть у тебя файл file.php Там внутри внезапно нихуя не file, а FileHandler что бы это не значило. Который делает кучу какой-то хуйни, рисует какие-то теги, за каким-то хуем лезет в базу и поет и танцет и кофе варит. А самое главное там в конце файла прописан какой-то код, который дропает все приложение и чем-то срет в буфер вывода.
Ну тебя самого то не смущает что при подключении файла с названием file у тебя приложение работу завершает? Я уж не говорю про file_list в котром уже какой-то свой хэндлер и внезапно появляется класс File. Какого хуя FIle не в file, а в file_list - загадка.
Выглядит типичный говнокод на пхп пятнадцатилетней давности. Это даже не процедурное программирование, а какое-то полускриптовое, я хуй его знаю. То что там какие-то классы используются погоды не делает, они все равно хранятся в каких-то глобальных переменных, а вместо функций используется подключение файлов.
1. Надо изучить как пишутся ооп приложения на пхп, как работает автолоадинг, как пишутся и используются классы итд.
2. Надо разобраться как пишутся сайты. Как создать конфиг, что такое роутинг, про Index.php итд.
3. Надо наконец узнать что такое MVC и привести в минимальный порядок кодовую базу.
Дальше еще пунктов до тысячи. Но начать нужно с этих трех.
>1) Есть еще какие-нибудь ресуры, где помогают реализовать свой pet проект?
>2) Какие самые понятные ресуры для полного понимая MVC и SOLID, чтобы хватало на проекты и собеседования?
>3) Есть какой-нибудь понятный курс для изучения алгоритмов (желательно с применением PHP)?
>4) Как быстро освоить книгу Чистый код Душного Боба?
Не, братан, ниче больше нет во всем интернете. Все сами тыкаем вслепую.
Выглядит страшно такая конструкция с геттерами и сеттерами. Мне нубу с публичными атрибутами такого не понять.
языку почти 30
UTF в язык так и не добавили
basedir() так и не может не обосраться на директории с русским названием
Пасиб за подробный ответ, будем изучать
Типа загружается файл -> хешируется, на выходе сохраняется в папки и вложенные папки (чтобы ФС не охуевала от количества) -> uploads/dfdf/dfdf/vbvbcv.jpg
У нас название тримится по три символа и создаются подпапки по на abc/def/ghi/abcdefghi.txt
Рандомное название + md5? Или прям хеш самого файла вычисляете типа crc?
Так же сама генерация в цикле типа while (true), типа если файл там такой есть, то по новой имя придумываем?
>Рандомное название + md5
Да, именно так.
>типа если файл там такой есть
Теоритически такое может случиться. Но за 5 лет еще не случалось. Может это заслуга генератора случайной строки во фреймворке.
https://scrutinizer-ci.com/g/yiisoft/yii2/code-structure/master/operation/yii%5Cbase%5CSecurity%3A%3AgenerateRandomString
Ну вот как я тебе написал - я так уже делал с while(true) if file_exists ... работает. У md5 коллизии же, перезапишет какой-нить файл и все
>>29994
Ну если ты планируешь там держать больше 10к файлов, то наверное и стоит замарочиться. Я бы архивиро архивированием.
>Я бы архивиро архивированием.
Чиво?
Это контент файлы для сайта, или пользователей. Тут явно архив не подойдет, т.к. нужно отдавать все
>>29985
Так коллизии именно то что и нужно.
Берется хэш от содержимого файла. Это и будет его название.
Потом этот файл ищется в структуре, обычно это двойная вложенность по первым буквам /ab/cd, но если планируются миллионы файлов то можно сделать тройную.
Если файл с таким названием уже есть, то сравниваем тело файлов и в 99.999% случаев это дубль.
Какой нахуй цикл? Мы тыкаем в то место где должен храниться новый файл и проверяем занято ли оно.
>Какой нахуй цикл? Мы тыкаем в то место где должен храниться новый файл и проверяем занято ли оно.
Это прикол? Ты проверяешь - он есть. Далее пересоздаешь - такой тоже есть. Твои действия без цикла? 10 раз if else бужешь писать, если есть то пересоздать имя?
Мой же вариант - цикл, сохранили -> break; или повторно создаем имя которого нет в папке
Бля, ты рофлишь? Если это один и тот же файл, та каким хуем он два раза будет в твоем хранилище? Хэш берется ОТ ТЕЛА ФАЙЛА БЛЯДЬ, он не случайный.
Он не-модный, но актуальный кто бы там чего не говорил.
>В мире есть куча консервативных людей, которые как выучили jquery, php, mysql двадцать лет назад, они так и будут лет 20 его использовать, до 2044 года.
Дело даже не в этом, дело в том, что создано дохуя легаси которое надо поддерживать и развивать. Да и инструментарий стал настолько хорош, что на пыхе современной с совреенными фрейворками тупо быстро и удобно разрабатывать проекты типовые. Берешь условный Laravel и поехали.
>Выглядит типичный говнокод на пхп пятнадцатилетней давности
То ощущение когда я вижу код худшего качества, который был написал американцем менее 10 лет назад для крупной компании кек.
>>30247
Да нет, просто так существует жизнь вне айти-компаний. Это хэлскер и образование, у них айти тема это просто инструмент, работает и слава богу. Васян пришел считай нубом к ним, делал у них считай всё что надо, опыта не было, скиллов не было, хуяк-хуяк и клепал, а хуле работает, задачу выполняет. Зашквары там конечно были, вроде плэйнтекст паролей в БД и т.п., но в целом почему нет. У меня конечно глаза на лоб немного вылезли, поэтому мы им по чуть-чуть переписывали самый зашквар и более нормальные подходы внедряли.
У меня одного ощущение что ебаные исключения - это говно и ненужный рак?
Серьезно, по факту это сраный goto хуй знает куда.
Если ты (или библиотека которой ты пользуешься) пробрасываешь исключения грамотно, то есть свой тип исключения на каждую возможную проблему - у тебя уродуется код, половина логики переезжает в блоки catch. Если же исключения кидаются хуй знает как (99.9% всех библиотек), то и обработать их ты нормально не можешь, и все что тебе остается - оборачивать код на самом верхнем уровне просто для того, что бы отдавать клиенту не 500 ошибку, а 400.
Проанализировал свой опыт.
Сколько раз у нас были проблемы от того, что мы не перехватывали исключения, а прямо и открыто хуярили юзеру 500 ошибку в ебало?
Да на самом деле нисколько, лол. Дело кончается визгами менеджеров и оперативным фиксом проблемы.
А вот попытки ОБРАБАТЫВАТЬ исключения рано или поздно кончаются тем, что ты проблему скрываешь, но не решаешь. И вот в таких случаях всплывают уже косяки такого уровня, при которых тимлида ебут, а разрабов пиздят арматурой.
Годтир решения - на одном из проектов мы перешли на пробрасывание по методам дтошек, которые содержали в себе статус операций, массив ошибок если есть, массив соообщений если есть. И это было супер пиздато. Ловкой исключений занимались только там, где были уверены что это необходимо и мы этой ловлей делали что-то полезное и нужное,.а не заметали проблему под плинтус.
Мы вообще про разные подходы говорим, ты свое думаешь, я свое. Надо изначально было писать - для чего. А не додумывать что вот у него так как у меня. - это правило нужно внедрять всем программерам чтобы не плодить лишние разговоры и недопонимание.
Мой вариант просто сохранять файлы, если удаляешь пост, то все удаляется без лишнего кода и напряга что затронет что-то другое.
Твой вариант файл строредж для хостинга, чтобы экономить место на диске, но дрочить процессор. Вычисления хеша файлов очень долгая операция. Если есть 7zip архив, сам проверь, там в контекстном меню будет вычисления crc32 + будет хуево если популярный сервис куда дохуя че заливается и нужно думать как все делать асинхронно для обработки, очереди подключать, логику разруливания мол если Вася удалит пост, то общий файл не удалять.
>Мы вообще про разные подходы говорим
Ну если ты называешь подходом "насрать хуйней", то да. Я говорю как сделать нормально.
>Мой вариант просто
У нас разные понимания о простом. Чтобы сделать все по уму нужно написать небольшую либу из нескольких классов. Это для программиста минимальные усилия, делается за пару часов. Я хуй знаю куда еще проще. Запихнуть это все в одну функцию, которую вклячить где-нибудь прямо в шаблоне посреди хтмл?
>Твой вариант файл строредж для хостинга, чтобы экономить место на диске, но дрочить процессор. Вычисления хеша файлов очень долгая операция.
Ну и нахуя ты начал кукоретизировать если нихуя в теме не шаришь? Вычисление хеша будет твоей самой меньшей проблемой при большом потоке файлов и нагрузке.
Короче как всегда. Написать нормальный код это сложна. А маняфантазировать про то как оно "если популярный сервис" легко.
>"насрать хуйней
Аргументы
>Я говорю как сделать нормально.
Аргументы
Ты же думаешь что ты обладаешь авторитетом и твои слова теперь нужно воспринимать на веру?
>кукоризироваться
>не шаришь
>маняфантазии
Очередной петух ЧСВ-шный, который в реальности смотрит всегда в пол, прячет глаза и боится людей в реале, чтобы по ебалу не получить ненароком, сейчас же, сидя в безопасности расписывает тему на 10 постов с целью самоутвердиться хоть где. Вместо того чтобы написать верный путь в качестве одного ответа, он плодит посты как хуесос и выебывается наслаждаясь что гандона вынужденно терпят - Да пошел ты нахуй чмошник.
Адеватный люди либо не отвечают, либо отвечают сразу и не сосут внимания на 10 постов попутно говоря что ты хуесос. Это как ученик приходит учится водить машину, а инструктор вместо того чтобы показать как - хуесосит его. Так вот нахуй иди потомок гнилозубых крестьян, шариков ебаный.
Бля, будет бизнес, с русскими работать не буду. А то как же свое ВЕЛИЧИЕ не продемонстрировать, не самоутвердится за счет другого, нахуй иди пидорас
Ебать там насрано в башке.
С такими вводными надо не в пхп вкатываться, а на прием к психологу.
С пассажа про крестьян, бизнес и величие прогиграл.
А Логи что пишут? Вообще связку пхп-апачи-БД можно и вручную запустить спокойно
Вот такую штуку заметил, теперь надо поискать что за сервер уже работает, хотя вроде никаких не ставил и не запускал.
Всё анон, разобрался, оказывается какойто апач и правда уже был в системе и работал, теперь всё норм, решил проблему с ксампом, спасибо!
Поясни вкатуну. Типа что жс можно и на бек сайд использовать?
>поделиться ссылкой
>годноту найти сложно
У тебя уже с логикой траблы. Ну и вкатываться сейчас бесполезно
Хуйня.
Когда работал на прошлом проекте, при создании сущности было нахуеверчено несколько обработчиков, которые ходили в сторонние сервисы и что-то писали в базу. Заебался это говно отлаживать. Какие нормальные юзкейсы есть?
А причем тут симфони? Как событийная модель связана с фреймворком?
Событийная модель нужна чтобы избегать прямых вызовов. Чтобы не было кода типа: сделай это, потом вот это, потом вот это, а потом еще то. Потому что это излишняя централизация, точка пересечения всего на свете и генератор багов.
Событие это результат выполнения чего-то. Доменное событие - это результат выполнения метода доменной модели. Системное событие - это резултат обращения к методу апи или контроллеру. refreshCart() -> CartRefreshed, createOrder() -> OrderCreated.
Юзкейсов для этого миллион. По сути весь CQRS, всё DDD и микросервисы так работают. В статью не уместится объяснение как это правильно организовывать и почему. Это надо серию лекций проводить. Объяснять что такое юнит оф ворк, про два эвент лупа итд.
Тут скорее вопрос какие такие проблемы с отладкой? Включил дебаггер, поставил брейкпоинт в нужном обработчике, дернул апишку через постман или форму в браузере отправил. Ну или в нужных обработчиках логи подрубил и все. Какие проблемы?
>Когда оправдано использование событий
Почти никогда
>Какие нормальные юзкейсы есть
Когда лень думать над потоком выполнения данных -- пукнул в кафку и забыл
Таненбаума еще прочитай и в опенсорс коммиты.
>И надо ли перед этим паттерны проектирования знать
Это для продвинутых, ты все равно нихуя не поймешь если прочитаешь про них
>Нужно ли попробовать свой фреймворк создать перед работой с другими?
А зачем? На работе ты все равно будешь работать только с ларкой или симфонией. Как работает mvc надо знать, в вакухаа часто встречается такое требование, но с этим разберешься по ходу изучения существующего фреймворка.
>>36179
Я лично понял, уделив пару недель чтобы вникнуть. Они напрямую из изучения ооп вытекают как и солид, и грасп, эти темы неотрывны друг от друга. Не понимаю, как можно обходить эти темы при вкате. Это же маст хэв.
>из изучения ооп вытекают
>грасп
>Я лично понял, уделив пару недель
И сразу ясно что ты нихуя не понял.
Грасп это сборник паттернов аля GoF. Только крайне неудачный. Навыдумано куча не прижившихся теминов для уже устоявшихся вещей. Перепутанны паттерны с принципами. Все это полито хуевым слогом автора и хуевыми же переводами из девяностых. Интерес это представляет чисто археологический. И уж совершенно точно ниоткуда не вытекает и никуда не втекает.
>Грасп это сборник паттернов аля GoF.
Грасп это не "шаблоны" буквально, просто так назвали, а скорее "принципы", - это слово больше подходит, - такие как солид - как разделять ответсвенность между классами при проектировании. В нем хотябы эти 2 высокое единство и низкое зацепление напрямую проистекают из приинципа единой ответсвенности и инверсии зависимостей.
Паттерны банды четырех, у меня сложилось впечатление, практически все solid'ные [по крайней мере из примеров на рефакторинг гуру], это действительно "паттерны", а не это грубое слово "шаблоны": фабрики, адаптеры, это все добро ты пишешь и без знания как они именуются, но знать бы хорошо. Кроме банды 4х еще есть другие такие как Спецификация, null object, текучий интерфейс.
>И уж совершенно точно ниоткуда не вытекает и никуда не втекает.
Как же - вся эта ооп хуйня взаимо переплетена, логикой и здравым смыслом, даже многослойная архитектура, ddd, например, то что зависимость слоев должна быть внутрь.
Это помогает писать понятный хорошо поддерживаемый код.
Разве я где-то ошибся, не нужно это знать вкатуну? Просто в вакансиях вижу часто, значит есть причина, по которой это туда записывают.
>Грасп это не "шаблоны" буквально, просто так назвали, а скорее "принципы"
Пчел. Хватит гадать и фантазировать. У этой хуйни есть конкретный автор - Крейг Ларман. У него есть конкретная книга. Книга хуевая. Че ты тут раскумариваешь вилами по воде?
>Паттерны банды четырех, у меня сложилось впечатление, практически все solid'ные
Опять, нахуя с умным видом че-то из пальца рассусоливать? Год выпуска книги 1994. А значит она основана на опыте ДО 1994 года. Никакими солидами еще лет десять вонять не будет.
>Как же - вся эта ооп хуйня взаимо переплетена
>даже многослойная архитектура, ddd, например, то что зависимость слоев должна быть внутрь
Просто чушь написана. Внутрь чего блядь? Снаружи чего? Ты просто определение "слоя" можешь сформулировать?
>Это помогает писать понятный хорошо поддерживаемый код.
Формальные доказательства этому какие-нибудь есть? Вот и думай.
>Разве я где-то ошибся, не нужно это знать вкатуну? Просто в вакансиях вижу часто, значит есть причина, по которой это туда записывают.
Потому что хотят сеньора по цене вкатуна. А получают человека, который начитался всего подряд и следующие десять лет будет эту информацию в башке систематизировать, производя километры говнокода. В лучшем случае разумеется. В худшем будет просто срать говном и в бороду не дуть.
>Хватит гадать и фантазировать. У этой хуйни есть конкретный автор - Крейг Ларман.
Я чё, ебич книги читать? Лучше тикток короткие статьи посмотрю, видосы в ютубе, да чат гопоту подрочу. Меньше времени и мозговых усилий.
> Год выпуска книги 1994.
Я их везде вижу, эти билдеры, адаптеры, фабрики. Что ты имеешь ввиду?
>А значит она основана на опыте ДО 1994 года.
И что с того? Законы гравитации открыты Ньютоном в 1666 году.
>Внутрь чего блядь? Снаружи чего?
Зависимости классов в каждом слое должны быть направлены внутрь.
- Слой представления или слой интерфейса (слой UI, UIL, пользовательский интерфе́йс, уровень представления в многоуровневой архитектуре)
- Слой приложения (сервисный слой, сервисный уровень)
- Слой бизнес-логики или доменный слой (слой предметной области, BLL, доменный слой)
- Слой доступа к данным или слой инфраструктуры (слой хранения данных, DAL, слой инфраструктуры; логирование, сетевые взаимодействия и другие сервисы, требующиеся для поддержания конкретного слоя бизнес-логики).
Слой это логический уровень, который выполняет строго определённые функции и изолирован от других слоёв, чтобы обеспечить модульность, читаемость и переиспользуемость кода.
Каждый слой отвечает только за свои задачи и общается с другими через четко определенные интерфейсы.
Зависимости должны быть направлены внутрь и это согласуется DIP.
По уровню вложенности центральный слой - бизнес-логики(домейнс). Он же одновременно самый абстрактный (абстракция ооп), автономный и не зависит ни от чего.
Слой инфраструктуры зависит от слоя приложения и бизнес логики(доменного слоя)
Слой приложения от слоя бизнес логики.
Слой презентации/интерфейса самый внешний. Презентация обращается к Application Layer, он обращается к слою бизнес логики, имплементацию которого мы делаем в слое инфраструктуры. Связываем короче с фреймворком и библиотеками.
Эта вся архитектура опирается на ооп принципы, солид, грасп и прочую хуйню, вероятно о которой я еще не знаю. Оно все взаимосвязано, понимаешь?
>Формальные доказательства этому какие-нибудь есть?
Например, если меняется технология базы данных (например, с MySQL на PostgreSQL), изменения вносятся только в Infrastructure Layer, не затрагивая доменную логику. Проект с разделением слоёв требует меньше времени на адаптацию, так как центральные модули во внутренних слоях остаются неизменными.
Модульность, переиспользуемость, расширяемость, меньше времени на адаптацию посторонних. В случае говнокода, все наоборот. Разумные люди все эти принципы вывели!
> следующие десять лет будет эту информацию в башке систематизировать
Я всё систематизировал, успокойся, братишка. Просто выделил место и время чтобы вникнуть. Может еще расписать именно какие классы в каком слое писать, какие классы фреймворка соотвествуют слоям? Мне не лень, правда интересно.
>Хватит гадать и фантазировать. У этой хуйни есть конкретный автор - Крейг Ларман.
Я чё, ебич книги читать? Лучше тикток короткие статьи посмотрю, видосы в ютубе, да чат гопоту подрочу. Меньше времени и мозговых усилий.
> Год выпуска книги 1994.
Я их везде вижу, эти билдеры, адаптеры, фабрики. Что ты имеешь ввиду?
>А значит она основана на опыте ДО 1994 года.
И что с того? Законы гравитации открыты Ньютоном в 1666 году.
>Внутрь чего блядь? Снаружи чего?
Зависимости классов в каждом слое должны быть направлены внутрь.
- Слой представления или слой интерфейса (слой UI, UIL, пользовательский интерфе́йс, уровень представления в многоуровневой архитектуре)
- Слой приложения (сервисный слой, сервисный уровень)
- Слой бизнес-логики или доменный слой (слой предметной области, BLL, доменный слой)
- Слой доступа к данным или слой инфраструктуры (слой хранения данных, DAL, слой инфраструктуры; логирование, сетевые взаимодействия и другие сервисы, требующиеся для поддержания конкретного слоя бизнес-логики).
Слой это логический уровень, который выполняет строго определённые функции и изолирован от других слоёв, чтобы обеспечить модульность, читаемость и переиспользуемость кода.
Каждый слой отвечает только за свои задачи и общается с другими через четко определенные интерфейсы.
Зависимости должны быть направлены внутрь и это согласуется DIP.
По уровню вложенности центральный слой - бизнес-логики(домейнс). Он же одновременно самый абстрактный (абстракция ооп), автономный и не зависит ни от чего.
Слой инфраструктуры зависит от слоя приложения и бизнес логики(доменного слоя)
Слой приложения от слоя бизнес логики.
Слой презентации/интерфейса самый внешний. Презентация обращается к Application Layer, он обращается к слою бизнес логики, имплементацию которого мы делаем в слое инфраструктуры. Связываем короче с фреймворком и библиотеками.
Эта вся архитектура опирается на ооп принципы, солид, грасп и прочую хуйню, вероятно о которой я еще не знаю. Оно все взаимосвязано, понимаешь?
>Формальные доказательства этому какие-нибудь есть?
Например, если меняется технология базы данных (например, с MySQL на PostgreSQL), изменения вносятся только в Infrastructure Layer, не затрагивая доменную логику. Проект с разделением слоёв требует меньше времени на адаптацию, так как центральные модули во внутренних слоях остаются неизменными.
Модульность, переиспользуемость, расширяемость, меньше времени на адаптацию посторонних. В случае говнокода, все наоборот. Разумные люди все эти принципы вывели!
> следующие десять лет будет эту информацию в башке систематизировать
Я всё систематизировал, успокойся, братишка. Просто выделил место и время чтобы вникнуть. Может еще расписать именно какие классы в каком слое писать, какие классы фреймворка соотвествуют слоям? Мне не лень, правда интересно.
>Слой это логический уровень, который выполняет строго определённые функции и изолирован от других слоёв, чтобы обеспечить модульность, читаемость и переиспользуемость кода.
Водянистая мокрая вода с точки зрения банальной эрудиции.
Где у слоя верх, а где низ? Вот я добавляю в мое приложение слой "похуйструктуры", куда у него внутрь смотрит, а куда наружа?
>Зависимости должны быть направлены внутрь и это согласуется DIP
Вот есть сервис "календарь" и сервис "часы". Кто от кого зависит и кто направлен внутрь?
>В случае говнокода, все наоборот.
Ну я тебя и спросил: есть этому какие-то доказательства кроме "траст ми бро"? Пикрелейтед тоже умные люди писали, модульно и понятно с первого взгляда, а если че-то надо поменять... кайф.
>Я всё систематизировал, успокойся, братишка.
Оно и видно. Хуйню несешь с вдохновением, СИСТЕМНО.
>Может еще расписать именно какие классы в каком слое писать, какие классы фреймворка соотвествуют слоям?
Кароч квадратные классы пиши в верхнем слое, чтобы с крыши не скатились. А круглые в нижнем, чтобы пружинило.
Ты че-то такое хотел увидеть? Ты как вообще классы друг от друга отличешь? Что значит "какой" класс? Че в нем особенного?
>модульно и понятно с первого взгляда, а если че-то надо поменять...
Вот поэтому надо читать ТАНЕНБАУМА полностью.
Главное не забыть ISBN на удачу три раза перечитать и описание.
>Где у слоя верх, а где низ?
Верх - ближе к клиенту. Низ - ближе к фреймворку, внешним библиотекам, базе данных.
Они в разных местах по разному называются, я пишу их через слэш чтобы было понятно что это одно и то же.
Слой интерфейса/презентации самый верхний, тут контроллеры, artisan команды, вьюхи.
Слой инфраструктуры - самый нижний. Тут происходит реализация интерфейсов, наследование, композиция из верхних слоев чтобы связать абстракцию с реализацией.
Критерий отделения - ответственность. Если у тебя модель элоквент инжектится в контроллер напрямую, то тут слои смешиваются. То же самое касательно отдельно взятых классов.
Ответственности:
- Слой интерфейса/презентации отвечает за взаимодействие с пользователем, не более.
- Слой приложения(application) чисто координирует классы из слоя бизнесс-логики/доменной логики. Не более.
- Слой бизнесс-логики/доменный слой -
> Вот я добавляю в мое приложение слой "похуйструктуры"
Полагаю, ты можешь условно нарезать лишь существующие 4 слоя на подслои. Потому что они исчерпывают вопрос полностью. На пике 1, например, бизнес слой это слой application + domain слой, а persistence и database это слой инфраструктуры. Я хз по какому критерию они здесь нарезаны.
>Вот есть сервис "календарь" и сервис "часы". Кто от кого зависит и кто направлен внутрь?
В слое бизнес логики у тебя абстрактный календарь. Его можно бесконечно делить на подсущности (по необходимости), а можно сделать эти подсущности/Value Objects просто полями сущности. Например таймстемп класс может быть поделен еще на value object'ы здесь - дата, время, секунды, etc.
Что описывает слой доменов/бизнес-логики конкретно? Он выполняет конкретную работу. Слой доменов не знает о внешнем мире. Если конкретно понятие "доменный", а не бизнесс-логики, то он выполняет атомарные операции над классами-сущностями домена, которые тоже лежат в в слое доменов. И бизнесс-правила - как они должны обрабатываться, не зависимо от фреймворк-специфичной хуйни. И эти классы, что выполняют конкретную работу в более абстрактном доменном слое "связываются" с фреймворком, внешними библиотеками через слой инфраструктуры (реализация интерфейсов, наследование, композиция), понял?
Слой приложения более верхний к пользователю собирает в себе эти атомарные операции в сценарии/экшины и координирует.
Слой интерфейса чисто взывает эти сценарии. Отсюда правило что контроллеры должны быть "тонкими."
Вернемся к календарю. Роадмап как проходит процесс через слои.
Слой интерфейсов:
Ты нажимаешь кнопку "назначить встречу", это отправляется реквестом, оборачивается фреймворком в объект форм реквест.
Слой приложения:
Далее вызывается событие/сценарий/экшин/похуй "НазначитьВстречу". В него импортируются классы из слоя бизнесс-логики/доменного. Эти классы атомарны, здесь они все связываются по "идеи" того что происходит, круд операции, рассылка, синхронизация между календарями.
Слой домена/бизнес логики
Здесь переводится из человеческого языка и понятий (Ubiquitous Language) в классы.
Слой инфраструктуры:
Классы домена/БЛ абстрактны, здесь они связываются через сервис провайдер с их реализациями. Реализации тоже здесь.
Напомню, что структура папок !== архитектуре.
>Оно и видно. Хуйню несешь с вдохновением, СИСТЕМНО.
Я так и не понял твой доеб. Все объясняю как я понял.
>Ты че-то такое хотел увидеть? Ты как вообще классы друг от друга отличешь? Что значит "какой" класс? Че в нем особенного?
Неясен вопрос. Может быть переменнная, может быть массив, может быть трейт, ватэвер.
>Где у слоя верх, а где низ?
Верх - ближе к клиенту. Низ - ближе к фреймворку, внешним библиотекам, базе данных.
Они в разных местах по разному называются, я пишу их через слэш чтобы было понятно что это одно и то же.
Слой интерфейса/презентации самый верхний, тут контроллеры, artisan команды, вьюхи.
Слой инфраструктуры - самый нижний. Тут происходит реализация интерфейсов, наследование, композиция из верхних слоев чтобы связать абстракцию с реализацией.
Критерий отделения - ответственность. Если у тебя модель элоквент инжектится в контроллер напрямую, то тут слои смешиваются. То же самое касательно отдельно взятых классов.
Ответственности:
- Слой интерфейса/презентации отвечает за взаимодействие с пользователем, не более.
- Слой приложения(application) чисто координирует классы из слоя бизнесс-логики/доменной логики. Не более.
- Слой бизнесс-логики/доменный слой -
> Вот я добавляю в мое приложение слой "похуйструктуры"
Полагаю, ты можешь условно нарезать лишь существующие 4 слоя на подслои. Потому что они исчерпывают вопрос полностью. На пике 1, например, бизнес слой это слой application + domain слой, а persistence и database это слой инфраструктуры. Я хз по какому критерию они здесь нарезаны.
>Вот есть сервис "календарь" и сервис "часы". Кто от кого зависит и кто направлен внутрь?
В слое бизнес логики у тебя абстрактный календарь. Его можно бесконечно делить на подсущности (по необходимости), а можно сделать эти подсущности/Value Objects просто полями сущности. Например таймстемп класс может быть поделен еще на value object'ы здесь - дата, время, секунды, etc.
Что описывает слой доменов/бизнес-логики конкретно? Он выполняет конкретную работу. Слой доменов не знает о внешнем мире. Если конкретно понятие "доменный", а не бизнесс-логики, то он выполняет атомарные операции над классами-сущностями домена, которые тоже лежат в в слое доменов. И бизнесс-правила - как они должны обрабатываться, не зависимо от фреймворк-специфичной хуйни. И эти классы, что выполняют конкретную работу в более абстрактном доменном слое "связываются" с фреймворком, внешними библиотеками через слой инфраструктуры (реализация интерфейсов, наследование, композиция), понял?
Слой приложения более верхний к пользователю собирает в себе эти атомарные операции в сценарии/экшины и координирует.
Слой интерфейса чисто взывает эти сценарии. Отсюда правило что контроллеры должны быть "тонкими."
Вернемся к календарю. Роадмап как проходит процесс через слои.
Слой интерфейсов:
Ты нажимаешь кнопку "назначить встречу", это отправляется реквестом, оборачивается фреймворком в объект форм реквест.
Слой приложения:
Далее вызывается событие/сценарий/экшин/похуй "НазначитьВстречу". В него импортируются классы из слоя бизнесс-логики/доменного. Эти классы атомарны, здесь они все связываются по "идеи" того что происходит, круд операции, рассылка, синхронизация между календарями.
Слой домена/бизнес логики
Здесь переводится из человеческого языка и понятий (Ubiquitous Language) в классы.
Слой инфраструктуры:
Классы домена/БЛ абстрактны, здесь они связываются через сервис провайдер с их реализациями. Реализации тоже здесь.
Напомню, что структура папок !== архитектуре.
>Оно и видно. Хуйню несешь с вдохновением, СИСТЕМНО.
Я так и не понял твой доеб. Все объясняю как я понял.
>Ты че-то такое хотел увидеть? Ты как вообще классы друг от друга отличешь? Что значит "какой" класс? Че в нем особенного?
Неясен вопрос. Может быть переменнная, может быть массив, может быть трейт, ватэвер.
> - Слой бизнесс-логики/доменный слой -
Недописал здесь, но дописал дальше по тексту:
>Здесь переводится из человеческого языка и понятий (Ubiquitous Language) в классы.
> А что может быть креатором, который в граспе? Сервис, репозиторий или активрекорд/елоквент?
Все верно. Отличие от фабрики из GoF - в том, что оно хранит в себе создаваемые объекты, чисто фабрика занимается только генерацией.
>Потому что они исчерпывают вопрос полностью.
Ну так хули ты тогда тут воду льешь? Верх, низ, ебало умное делаешь. Заучил как дядя сказал и все. Какая разница где там верх, а где наружа, если это ригидная не изменяемая структура, котрую нужно просто принимать целиком как должное, просто потому что?
>Налил какой-то воды про сущности хуючности
>Начал про календарь, закончил тем что контроллеры долджны быть тонкие.
Пчел. Чтобы вычислить правильное время нужно знать какое сегодня число. А чтобы узнать какое сегодня число нужно знать время. Кто от кого зависит? Кто куда направлен? Ты в двух сервисах запутался? Меньше некуда, вопрос предельно простой.
>Неясен вопрос. Может быть переменнная, может быть массив, может быть трейт, ватэвер
Это твой вопрос не ясен. Ты спросил "какие классы в каком слое?". Это бессмыслица. Что блядь значит какие? Они что в разных "слоях" разные что-ли? В одном трейты, а в другом "переменные"? А в третьем что круглые блядь? Класс - это структура языка. Ты же не пишешь в одном обзаце предложениями, а в другом сказуемыми. Не пишешь же? Вопрос риторический. Не надо его сводить к слоям и высирать жпт пасту на страницу.
Короче эта дискуссия утомляет. Напоминает анекдот про студента на экзамене по зоологии, который выучил только про блох и ебет мозги преподу.
>это ригидная не изменяемая структура
Нет, почему? Можно сливать слои вместе, если не нужна высокая абстракция, можно разделять эти слои на подслои.
>нужно просто принимать целиком как должное, просто потому что
Не обязательно. Тогда не будет всех преимуществ solid и многослойной архитектуры.
>Чтобы вычислить правильное время нужно знать какое сегодня число. А чтобы узнать какое сегодня число нужно знать время.
Запросы и команды это 2 разных экшена, относится к слою приложения, из принципа CQR. Я описал команду "назначить встречу". Описать как происходит получение времени (запрос)? То же самое, только возвращаются данные.
>Кто от кого зависит? Кто куда направлен?
Зависят - слои. Абстрактные от реализаций. Конкретное выражение - в классах. Как выражается - DIP. Как связываются - через наследование, композицию, агрегацию, сервис-контейнеры.
>Ты спросил "какие классы в каком слое?" Это бессмыслица. Что блядь значит какие? Они что в разных "слоях" разные что-ли?
Конечно.
>Класс - это структура языка.
Ну ок. Ты не поверишь, но функциями тоже допустимо реализовать многослойность.
>Напоминает анекдот про студента на экзамене по зоологии, который выучил только про блох и ебет мозги преподу.
Ну так а что я не учёл, может скажешь мне? Будь няшкой. Я буду благодарен, потому что только начал изучать всё вышеперечисленное. Возможно у меня в голове на самом деле каша и/или пробелы в компетенции и знаниям. Со стороны виднее. А возможно что ты просто доёбываешься до ответов, спор ради спока, ибо я под твоими вопросами не улавливаю объеденяющего ничего.
Ты бака или няша?
>Нет, почему?
Может потому что ты так и не смог найти место новому слою в этой структуре?
>Тогда не будет всех преимуществ solid и многослойной архитектуры.
И хуй стоять не будет, и деньги из дома уйдут.
>из принципа CQR
Все бля смешал. Пиздец просто. Без DDD и CQRS не разобраться какой из двух сервисов от какого зависит. Но ответа так и нет. Через пару постов выяснится что надо коллайдер строить чтобы это вычислить.
>Зависят - слои. Абстрактные от реализаций.
До этого угарали над абстрактными фабриками интерфейсов. Щас будем угорать над абстрактными слоями. Слой календаря и слой часов. Абстракный. Как выражается - DIP. Как связываются - через наследование, композицию, агрегацию, сервис-контейнеры. В народе — колхозник. В магазине — продавец. В экономике, так сказать, необходим. ШИЗОФАЗИЯ.
>Они что в разных "слоях" разные что-ли?
>Конечно.
В одном классе методы курсивом написаны, а во втором задом наперед?
>Ну так а что я не учёл, может скажешь мне? Будь няшкой. Я буду благодарен, потому что только начал изучать всё вышеперечисленное.
Код забыл написать.
Забить башку хуйней - забил. А написать реальный код, чтобы увидеть как этот мусор с реальной жизнью соотносится - забыл.
Давай включим счетчик дебила.
>Может потому что ты так и не смог найти место новому слою в этой структуре?
Ты дебил, потому что я уже говорил, что их можно только на подслои поделить условно и их делят кто по какому критерию хочет. Как ты более конкретно ниже инфраструктуры опустишься, шизик? Что это за слой будет, приведи пример? Это физически и логически невозможно. Или выше слоя интерфейса? Чтение мыслей пользователя? Нейролинк? Это будет тот же слой интерфейса. Поделить существующие слои - да. Разделить по каком-то другом критерию ответственности - да, но это будет за рамками сабжа, о котором сейчс речь. Поэтому здесь вывод очевиден - ты дебил.
>Все бля смешал.
Ты дебил, потому что я несколько раз говорил, что эти все принципы взаимосвязаны. Что тебе еще не ясно? Ну можешь вместо запросов и команд назвать блять как хочешь, сервис, не пользуйся CQRS. Но суть его от этого не поменяется. Вывод здесь - ты дебил, потому что игнорируешь факт что все взаимосвязано. Аргументов против не услышал.
>ШИЗОФАЗИЯ
Да-да, держи в курсе.
>В одном классе методы курсивом написаны, а во втором задом наперед?
Чё сказать то хотел?
>>37006
> Ну так а что я не учёл, может скажешь мне?
На вопрос ты не ответил, значит я не ошибся, ты дебил, критикующий ради критики. Спор ради спора. С твоей стороны аргументов нет, только >пук. Я аргументы привел, почему все эти принципы взаимосвязаны и почему их нужно использовать.
> А написать реальный код, чтобы увидеть как этот мусор с реальной жизнью соотносится - забыл.
Говнокодера порвало. Какой у тебя стаж говнокода? Дебил, ты проигнорировал аргумент про говнокод.
Итого, ты заработал очков дебила: 4. В следующий раз уже постарайся!
Смысла продолжать не вижу, пользы от тебя и разговора с тобой никакой, пошел нахуй.
Ну в общем какой итог беседы?
0) Что такое слой? Ответа нет. Налито воды что стой это кароч классы. Почему один класс в одном слое, а другой в другом? Ответа нет. Как глядя на класс определеить в каком он слое? Ответа нет.
1) Как определить куда добавить новый слой? Ответа нет. Есть какая-то залупа про подслои. Но даже рассказать что мы отслаиваем: низ вернего или верх нижнего ты не в состоянии.
2) Как определить какой из двух сервисов от какого зависит? Ответа нет. Есть охуительные истории про то как все взаимосвязано (ноу щит шерлок, это в вопросе написано) и на кой-то хуй приплетено CQRS.
3) Выдан тезис что в разных слоях классы написаны по разному. Объяснений нет. Ну по разному епты. Как по разному и что это вообще означает ответа нет.
Ну и разумеется именно меня порвало. И разумеется именно я не смог внятно ответить на вопросы. И именно я в бессильной злобе послал собеседника нахуй.
>Что такое слой?
Я тебе ответил здесь:
(>>36491)
>Слой это логический уровень, который выполняет строго определённые функции и изолирован от других слоёв, чтобы обеспечить модульность, читаемость и переиспользуемость кода.
-----
>Как глядя на класс определеить в каком он слое?
Ответил здесь:
(>>36911)
>Критерий отделения - ответственность.
-----
>Как определить какой из двух сервисов от какого зависит?
Ответил здесь:
(>>36911)
>И эти классы, что выполняют конкретную работу в более абстрактном доменном слое "связываются" с фреймворком, внешними библиотеками через слой инфраструктуры (реализация интерфейсов, наследование, композиция), понял?
И здесь:
(>>37006)
>Зависят - слои. Абстрактные от реализаций. Конкретное выражение - в классах. Как выражается - DIP. Как связываются - через наследование, композицию, агрегацию, сервис-контейнеры.
-----
>Выдан тезис что в разных слоях классы написаны по разному.
Глупый вопрос, ибо ответ очевиден и вытекает из вопроса про разделение слоёв. Или не очевиден? Дебилы просто мыслят квадратными, круглыми, курсивными классами, отсюда и желание приводить подобные аналогии, правильно понимаю?
-----
>И разумеется именно я не смог внятно ответить на вопросы.
Какие вопросы, такие и ответы.
-----
>Налито воды что
>И именно я в бессильной злобе послал собеседника нахуй
В текст нужно вникать, для начала, тогда не будет вопросов про воду и как один ответ связан с другим. Не удивляйся, почему ты послан нахуй.
>Что такое слой?
Я тебе ответил здесь:
(>>36491)
>Слой это логический уровень, который выполняет строго определённые функции и изолирован от других слоёв, чтобы обеспечить модульность, читаемость и переиспользуемость кода.
-----
>Как глядя на класс определеить в каком он слое?
Ответил здесь:
(>>36911)
>Критерий отделения - ответственность.
-----
>Как определить какой из двух сервисов от какого зависит?
Ответил здесь:
(>>36911)
>И эти классы, что выполняют конкретную работу в более абстрактном доменном слое "связываются" с фреймворком, внешними библиотеками через слой инфраструктуры (реализация интерфейсов, наследование, композиция), понял?
И здесь:
(>>37006)
>Зависят - слои. Абстрактные от реализаций. Конкретное выражение - в классах. Как выражается - DIP. Как связываются - через наследование, композицию, агрегацию, сервис-контейнеры.
-----
>Выдан тезис что в разных слоях классы написаны по разному.
Глупый вопрос, ибо ответ очевиден и вытекает из вопроса про разделение слоёв. Или не очевиден? Дебилы просто мыслят квадратными, круглыми, курсивными классами, отсюда и желание приводить подобные аналогии, правильно понимаю?
-----
>И разумеется именно я не смог внятно ответить на вопросы.
Какие вопросы, такие и ответы.
-----
>Налито воды что
>И именно я в бессильной злобе послал собеседника нахуй
В текст нужно вникать, для начала, тогда не будет вопросов про воду и как один ответ связан с другим. Не удивляйся, почему ты послан нахуй.
Вот, точно про тебя описано, слово в слово ситуация итт. Без обид, братишка.
https://ru.m.wikipedia.org/wiki/%D0%94%D0%B5%D0%B1%D0%B8%D0%BB%D1%8C%D0%BD%D0%BE%D1%81%D1%82%D1%8C
>При нерезко выраженной дебильности ребёнок может ничем внешне не отличаться от сверстников. Сохраняются механическаяпамятьиэмоционально-волевая сфера. Внимание очень трудно привлечь и фиксировать. Запоминание замедленно и непрочно. У них преобладает конкретно-описательный тип мышления, в то время как способность кабстрагированиюпочти отсутствует. Тем не менее они могут формировать простейшие обобщения. Для них составляет трудность охватывание ситуации целиком, и обычно они улавливают только внешнюю сторону событий. Сложно воспринимают логические связи между предметами, понятия «пространство», «время» ит.д. Часто встречаются нарушения речи (отстаёт в развитии, искажение звуков, нарушения грамматического строя речи, скудныйсловарный запас). Хотя может быть и достаточно большой словарный запас, но речь при этом всё равно бедна и однообразна. Обычно не могут пересказать прочитанное, услышанное. Однако некоторым дебилам при задержке общего психического развития и малой продуктивностимышлениясвойственна частичнаяодарённость(вплоть досиндрома саванта): отличная механическая память (без осмысления повторяемого), способность производить в уме сложныеарифметические операции, умениерисовать,абсолютный слухи др.При более тяжёлой степени олигофрении (имбецильности) одарённость также встречается.Эмоциипреобладают актуальные на данный момент. Действия не целенаправленны, импульсивны, развитнегативизм.
>Слой это логический уровень, который выполняет строго определённые функции и изолирован от других слоёв
Сепульки.
Ты просто подменил термин. Слой - это логический уровень, а логический уровень - это слой. Слой - это когда слой отделен от других слоев. Слой - это когда слои.
Чел, это софистика. Причем топорная. Никакой ценности такое определение не несет. Из него нет никаких формальных следстий. Высрешь таке на собесе - отлетишь обратно в пицценосцы мгновенно.
Ну давай разберем по частям тобою написанное.
>Ты просто подменил термин.
>Чел, это софистика.
>Слой - это логический уровень, а логический уровень - это слой. Слой - это когда слой отделен от других слоев. Слой - это когда слои.
Нет, я дал определение, а не выразил тождество терминов. Моё определение включает существенное понятие логический уровень. А также второстепенные, которые ты не заметил, они выводятся легко из предложения дальше после "логический уровень:
>чтобы обеспечить модульность, читаемость и переиспользуемость кода.
-----
>Логика. Учебник для средней школы. 1954 г.
>Определение понятия есть такое логическое действие,
в процессе которого раскрывается содержание понятия.
>Каждый предмет имеет бесконечное число признаков, и пытаться указать все признаки предмета невозможно.
>Определение содержит в себе лишь такие признаки, которые, являясь существенными, отграничивают понятие от других понятий.
То есть, определение это множество понятий. Смотри пикрил.
А понятие это смысловая единица в этом множестве.
>Понятие — это мысль, которая отображает общие и существенные признаки предметов>Например, в понятии «комета» отображены следующие признаки комет: 1) светило, 2) состоит из крайне разреженных газов, 3) при приближении к Солнцу постепенно выбрасывает светящийся хвост.
>Все три перечисленных признака являются общими и существенными для комет
>термин
>софистика
https://ru.wikipedia.org/wiki/%D0%A2%D0%B5%D1%80%D0%BC%D0%B8%D0%BD
>Те́рмин (от лат. terminus «предел, граница») — слово или словосочетание, являющееся названием строго определённого понятия какой-нибудь области науки, техники, искусства и так далее.
Нет противоречия, я дал строго конкретный термин и далее в предложении второстепенные в рамках определения, а не выразил тождество понятий.
-----
>Из него нет никаких формальных следстий.
Следствие это вывод из множества понятий.
>Никакой ценности такое определение не несет.
Для тебя не несёт, ты же говнокодер. Пруфы что ты говнокодер:
(>>36179)
>Это для продвинутых, ты все равно нихуя не поймешь если прочитаешь про них
(>>36363)
>Интерес это представляет чисто археологический.
>Перепутанны паттерны с принципами.
Это при том, что эти граспы, солиды везде используются, считаются best practice. Но говнокодер будет упираться до последнего. Без учёта того, что там перепутано, потому что термины отражают смысл предназначения этих принципов.
-----
Примеры хорошо спроектированной архитектуры, следующей граспам, солидам и прочему, я приводить не буду. Почему не буду? Ты говнокодер, занимаешь пассивно-агрессивную позицию ко всему хорошему. Ценности от разговора с тобой - ноль, ну разве что посмеяться с клоунизма. К тому же легко, проходишь тест на дебильность. Но я знаю, почему ты так трясёшься перед моим превосходством: я посмотрел тиктоки о всему сабжу, почитал статьи и понял смысл и назначение всего этого добра за минимальное время. А ты видимо читал оригинальные книги, въебал времени и не осилил из-за дебильности (тест на которую ты прошёл выше) и остался в позиции говнокодера.
Пруфы, что ты не осилил:
(>>36363)
>Все это полито хуевым слогом автора и хуевыми же переводами из девяностых.
>Опять, нахуя с умным видом че-то из пальца рассусоливать?
(>>36477)
>Опять, нахуя с умным видом че-то из пальца рассусоливать?
(>>36179)
>Это для продвинутых, ты все равно нихуя не поймешь если прочитаешь про них
С учётом всего этого, делаем заключение, что я умнее тебя, поэтому ты трясёшься и приебываешься, пытаясь хоть где-то самоутвердить свою ничтожную глупость.
Возвращайся, когда сможешь в анализ и осилишь то, в чём ты обосрался в этой нити.
Вот этот самый учебник логики. Почитай на досуге и не позорься больше.
https://techlibrary.ru/b1/2j1j1o1p1d1r1a1e1p1c_2z.2v.,_2s1u1i2d1n1j1o_2h.3c._2t1p1d1j1l1a._1954.pdf
Ну давай разберем по частям тобою написанное.
>Ты просто подменил термин.
>Чел, это софистика.
>Слой - это логический уровень, а логический уровень - это слой. Слой - это когда слой отделен от других слоев. Слой - это когда слои.
Нет, я дал определение, а не выразил тождество терминов. Моё определение включает существенное понятие логический уровень. А также второстепенные, которые ты не заметил, они выводятся легко из предложения дальше после "логический уровень:
>чтобы обеспечить модульность, читаемость и переиспользуемость кода.
-----
>Логика. Учебник для средней школы. 1954 г.
>Определение понятия есть такое логическое действие,
в процессе которого раскрывается содержание понятия.
>Каждый предмет имеет бесконечное число признаков, и пытаться указать все признаки предмета невозможно.
>Определение содержит в себе лишь такие признаки, которые, являясь существенными, отграничивают понятие от других понятий.
То есть, определение это множество понятий. Смотри пикрил.
А понятие это смысловая единица в этом множестве.
>Понятие — это мысль, которая отображает общие и существенные признаки предметов>Например, в понятии «комета» отображены следующие признаки комет: 1) светило, 2) состоит из крайне разреженных газов, 3) при приближении к Солнцу постепенно выбрасывает светящийся хвост.
>Все три перечисленных признака являются общими и существенными для комет
>термин
>софистика
https://ru.wikipedia.org/wiki/%D0%A2%D0%B5%D1%80%D0%BC%D0%B8%D0%BD
>Те́рмин (от лат. terminus «предел, граница») — слово или словосочетание, являющееся названием строго определённого понятия какой-нибудь области науки, техники, искусства и так далее.
Нет противоречия, я дал строго конкретный термин и далее в предложении второстепенные в рамках определения, а не выразил тождество понятий.
-----
>Из него нет никаких формальных следстий.
Следствие это вывод из множества понятий.
>Никакой ценности такое определение не несет.
Для тебя не несёт, ты же говнокодер. Пруфы что ты говнокодер:
(>>36179)
>Это для продвинутых, ты все равно нихуя не поймешь если прочитаешь про них
(>>36363)
>Интерес это представляет чисто археологический.
>Перепутанны паттерны с принципами.
Это при том, что эти граспы, солиды везде используются, считаются best practice. Но говнокодер будет упираться до последнего. Без учёта того, что там перепутано, потому что термины отражают смысл предназначения этих принципов.
-----
Примеры хорошо спроектированной архитектуры, следующей граспам, солидам и прочему, я приводить не буду. Почему не буду? Ты говнокодер, занимаешь пассивно-агрессивную позицию ко всему хорошему. Ценности от разговора с тобой - ноль, ну разве что посмеяться с клоунизма. К тому же легко, проходишь тест на дебильность. Но я знаю, почему ты так трясёшься перед моим превосходством: я посмотрел тиктоки о всему сабжу, почитал статьи и понял смысл и назначение всего этого добра за минимальное время. А ты видимо читал оригинальные книги, въебал времени и не осилил из-за дебильности (тест на которую ты прошёл выше) и остался в позиции говнокодера.
Пруфы, что ты не осилил:
(>>36363)
>Все это полито хуевым слогом автора и хуевыми же переводами из девяностых.
>Опять, нахуя с умным видом че-то из пальца рассусоливать?
(>>36477)
>Опять, нахуя с умным видом че-то из пальца рассусоливать?
(>>36179)
>Это для продвинутых, ты все равно нихуя не поймешь если прочитаешь про них
С учётом всего этого, делаем заключение, что я умнее тебя, поэтому ты трясёшься и приебываешься, пытаясь хоть где-то самоутвердить свою ничтожную глупость.
Возвращайся, когда сможешь в анализ и осилишь то, в чём ты обосрался в этой нити.
Вот этот самый учебник логики. Почитай на досуге и не позорься больше.
https://techlibrary.ru/b1/2j1j1o1p1d1r1a1e1p1c_2z.2v.,_2s1u1i2d1n1j1o_2h.3c._2t1p1d1j1l1a._1954.pdf
Забыл пикрил присобачить.
Зависит от задачи, типовая шаблонизация заруливает почти любой не-вебапп проект. Хотя бы потому что серверный рендеринг, потому что проще кешировать и в целом меньше работы.
Читаю книгу 'Чистый код' Роберта Мартина и там в третьей главе о функциях используют понятие уровни абстракции. И я не могу нормально понять что это за уровни или как тут помогут TO-абзацы?
Я это понимаю так, что есть какое-то общее название функции, которое олицетворяет бизнес-логику, — это один уровень абстракции, а те операции, которые уже непосредственно выполняют действия, которые позволяют выполнить бизнес-логику (допустим запрос в БД или модификация строки), — это другой уровень.
Но потом в книге приводят пример из пика.
Далее в книге пишут, что эта функция
>совершенно очевидно выполняет более одной операции
А мне это вообще не очевидно, ведь тут подразумевается, что в методе несколько уровней абстракции, но почему?
Я из-за этой главы не могу дальше книгу прочитать, поэтому прошу, объясните, пожалуйста, по простому, что это за уровни абстракции, как их выделять?
> Читаю книгу 'Чистый код' Роберта Мартина
дропай этот кал, блять, и не забивай себе мозг хуйнёй. Иди билди тудулист
Как на нём вообще работают?
Делают на нём API если да то вообще как?
Есть ли там роутинг как на laravel где пишешь глагол или дальше уже там путь и callback или функцию?
Ну а кто тебе виноват что ты читаешь уебищный перевод от каких-то пидарасов? Сто раз говорено - читай в оригинале.
Я чет запутался, тут под thing означает вещей? Или так еще действительно можно назвать функции?
Ты не запутался, ты обосрался.
В переводе написано, что оно выполняет больше одной операции, в оригинале написано, что оно выполняет больше одной вещи, в чем разница?
Где ты там увидел "выполняет", дебс? Тут из контекста очевидно что имеется ввиду не прямо сейчас блядь выполняет, а в потенциале делает разную хуйню. И общий интерфейс это наебка.
Пиздец, еще англискому вас кретинов учить. Давайте лучше дальше занюхивайте этот уебищный перевод. Будем считать чтоя нихуя не видел. Проехали.
>читаю клин код
>не додумался забилдить хотя бы один рил симпл проджект
брух... джаст стоп
>Аноны, накидайте годных материалов по Битриксу.
Нету, лол. Смотри в депрессию не скатись когда начнешь вкатываться в битрикс
Начинаю читать первую главу книги 2003 года про apache
Не один ты запутался. Я вот не читал книжку, но очень хочется узнать про "there is more than one reason to change", это он к свитчу придрался?
https://qntm.org/clean
Речь о направлении зависимостей в коде.
Ты когда добавляешь в Employee новый type обязан знать что на это завязан какой-то код и его тоже нужно поменять.
В свою очередь функция вычисления оплаты должна меняться потому что кому-то за каким-то только ему известным хуем понадобилось что-то поменять в Employee.
Все эти ваши "нипанимаю" от того что вы нихуя не пишете код, а тем более не пишете код в команде. Не согласовываете изменения и не переписываете друг за другом.
>Ты когда добавляешь в Employee новый type
Ты пиешь про "fourth, it violates OCP". А он в "third, it violates SRP" что-то другие имел виду похоже.
>обязан знать
Так в тестах же исключение будет, что там знать?
Причина "меняться" у калькулятора зарплаты - изменился расчет зарплаты. А в этом коде вычисление зависит от совершенно другой структуры. Получается что причин "меняться" уже две: поменялся расчет зарплаты или поменялаясь структура Employee.
Ты до двух считать умеешь?
>поменялся расчет зарплаты
Этот момент изменяет только кподфункцию расчета. Сам calculatePay при этом не изменяется.
>поменялаясь структура Employee
если подфункциям claculate* требуется класс Employee, то расчет зарплаты изначально зависит от структуры, иначе бы он в родительскую функцию просто EmployeeTypeEnum передавал, а подфункции были бы без аргументов вообще.
По этой логие гораздо справидливее было бы придираться к "подфункциям", CalculateHourlyPay(e) например. ВОт он действительно и от стркутуры класса зависит и от изменения расчета выплаты. Что такого плохо сделал calculatePay(Employee e) не вижу вообще.
Для нового типа нужно написать новый case в switch. Это троллинг тупостью? Да даже если не троллинг, то объяснять что-то такому тупорезу - мартышкин труд.
Нахуй я на это тупое говно байчусь каждый раз?
Просто ты не можешь объяснить что автор имел в виду, когда писал, "очевидно, что функция делает больше одной вещи" и "она нарушает прицип единой ответственности". На эти оба пункта ты третий раз приводишь пример из его четвертого замечания "он нарушает принцип открытости/закрытости". Потому что это единственный пункт, который он разжевал. У тебя чувство на уровне инстинкта, что так писать не нужно, а доводов в пользу этих 2 пунктов нет. Поэтому ты скорее всего просто создашь 3 класса Invoice-ов c единым интерфейсом calculate?
Вот я привык создавать отдельно класс модели, отдельно репозитории моделей, отдельно сервисы под бизнес логику с этими моделями (если нужно), отдельно контроллеры
Открыл ларавель и гайды, так мне там предлагают в модель засовывать бизнес логику и вызывать в контроллере. Что за хуйня?
Хотя нашел бест практикс ларавель на гитхабе
Видимо репозитории тут не в почете
А сервисы норм
На завод
Сначала ставь в систему: php, mysql, apache/nginx.
Поставив и запустив первый домен у себя будет некоторое понимание как это работает. Сделаешь пару проектов, поиграешься с версиями и можешь пробовать docker compose.
Я, работая на аутсорсе, обычно всякие проекты на cms ставлю на системную mysql + php + nginx. А вот проекты на фреймворках - или сразу в докере, или встройка php + бд(sql/no sql) под проект в контейнере.
к сожалению уже не прокатывает, им дешевле скипнуть
Благодарю
События придуманы (как мне кажется) для того, чтобы можно было расширять функционал фреймворка. То есть, например, ты хочешь писать в лог каждый запрос - ты вешаешь обработчик на событие kernel.request, или же это может делать сторонняя библиотека.
Если ты пишешь свой код, то в нем генерировать события особо смысла нет, так как ты можешь вызвать нужные функции напрямую и это будет проще.
Судя по тексту, твое недовольство вызывают не исключения, а необходимость их ловить и обрабатывать. Ну так просто не лови их.
Без исключений писали до их изобретения, приходится if писать после каждой функции.
> у тебя уродуется код, половина логики переезжает в блоки catch.
Исключения вбрасываются в исключительных ситуациях, и их, как правило, не обрабатывают специально.
> что ты проблему скрываешь
Ты же сам понимаешь, что это неправильно.
> на одном из проектов мы перешли на пробрасывание по методам дтошек, которые содержали в себе статус операций, массив ошибок если есть, массив соообщений если есть.
Ну это просто возврат в прошлое, где ты после каждой функции пишешь if и раздуваешь код.
> а не заметали проблему под плинтус.
Так с исключениями ты ничего не заметаешь - при исключении программа падает с 503 ошибокой, а подробности исключения пишутся в лог. Не понимаю, чем твой вариант лучше.
>Ну так просто не лови их.
Ты вообще не понял о чем он.
Он использует исключения как возврат негативного результата. Как с валидацией, например: ты не можешь просто упасть с 503 если мыло с пробелом заполнено, тебе нужно показать пользователю что не так, причем желательно сразу для нескольких проверок, а не по одной за раз.
Или другой вариант. Ты что-то у себя поменял, а перед фиксацией результата делаешь веб запрос. А газзл отвалился с исключением, например ConnectException. Ты не можешь просто пропустить это исключение и класть с ним все приложение, у тебя свои дела, свой флоу. Че-то надо откатить, а может сохранить чтобы потом опять попробовать. Пользователю че-то надо показать.
Короче хорошим тоном при использовании сторонней библиотеки считается ловить её исключения, и как минимум оборачивать их в свои.
>Ну это просто возврат в прошлое, где ты после каждой функции пишешь if и раздуваешь код.
Так эту проверку невозможно избежать в принципе. Если тебе нужно что-то сделать если что-то не получилось, то у тебя будет условный оператор или try.
Самое пиздатое решение этой проблемы - монада Maybe. Оно тоже не избавляет от условного оператора, пушо это невозможно. Но зато позволяет этот условный оператор передвинуть выше по цепочке вызовов, каждый из которых возвращает maybe. В пхп что-то похожее недавно добавили ?-> если значение не null, то вызов выполнится: $user?->getAddress()?->getHouse()
Звучит так, будто ты не mvc пытаешься понять, а как работает какой-то конкретный фреймворк.
Помню на андроид давно курс платный проходил, там прям ахуенно рассказано было и очень легко, правда БД была локальная прям в программе, то есть не настоящая. А что щас смотрю тоже не понятно, либо теория либо реализация без обьяснений на фреймворке
>Я понял что там идет разделение логики от отображения, но вот техническую часть не могу вкурить...
Ну так что тебе еще не понятно? Контроллер - просто собрание обработчиков эндпоинтов, модель - абстракция, через которую ты лезешь в БД, вьюха это шаблон без логики для вставки готовых обработанных данных.
Весь интерес у тебя в обработчиках контроллера происходит, вот там про ооп надо думать.
Как сказать заплатил, там чисто косарь был символически как поддержка. А андроид нахуй надо у нас в городе 2(!) вакансии и то на мидла. На пхп их 110
И сколько из этих пхп вакансий являются битриксом?
Вот бы был сайт, где бы были прописаны пхп функции, что они возвращают и какие исключения выбрасывают.
>Весь интерес у тебя в обработчиках контроллера происходит, вот там про ооп надо думать.
А можно пример как думать об ооп в "обработчиках контроллера"?
>техническую часть
Во первых в шапке про студентов есть описание mvc, техническая часть в том что вся логика твоего приложения это модель. Набор кода в виде классов и функций который делает все расчеты и обращается к базе данных. Один или много файлов похуй, моделью будет папка с набором папок. Контроллер это просто вызов метода этой модели что бы вызывать их напрямую из модели, что бы было "отдельно". Ну а отображение очевидно фронтенд - html код с шаблонами.
В laravel при обучении мне показалось что работы больше с контроллерами чем с моделью, ну видимо потому что пример был простенький, я не писал банковское приложение.
Еще я видел книгу по ларавелю которую тут как то кидали, там было сказано что MVC в современных фреймворках невозможно нормально реализовать и все равно придется насрать гору логики например в контроллеры. Потому что у тебя не 3 файла, и все усложняется.
Поэтому предлагаю забить хуй на MVC и не ебать себе мозги.
Почитай главу про mvc в книге php в подлиннике 8 котерова, там полный пример mvc разделения с роутером. Или глянь курс Лаврика по ООП, лежит на рутрекере, в нем пример разработки простого mvc фреймворка с нуля.
xhprof
Да я. Пишу хуйню с умным видом. Вкатуны не понимают что в моих постах просто тарабарщина из терминов. А если кто более сведущий спросит че я блядь вообще несу, то я его просто шлю нахуй и продолжаю городить бессмысленную хуйню.
Шизло не осилило эти термины и как они взаимосвязаны и обвиняет в этом всех окружающих. Это надо просто видеть. Спокидзе, это не последнее, что ты не поймешь в своей жизни
>не осилил
>сложно
>ни нужно
>как это связано? бред
"обработчики контроллера" это вообще не термин. Это шиза которую ты просто выдумал на ходу. То что ты имеешь ввиду называется Action.
Про ооп написана полная хуйня.
Причем тут вообще "думать" или не думать? У тебя все приложение это иерархия объектов. Я выше по треду уже скидывал скриншот. Пикрелейтед как выглядит ооп приложение. Это не вопрос "думанья" или какого-то выбора. Твой код будет внутри метода объекта. Без вариантов.
Когда читаешь высеры такого кукоретического долбоеба от кринжа можно сдохнуть. Физически больно эту хуйню видеть. Нет бы сука взять сесть вечерком и написать код. Ну просто блядь статью на вики запостить если зудит. Нет нахуй, надо свою шизофрению вывалить. И ведь сука двух слов связать не может, контроллеры эти в глаза блядь не видел, но срееееет паскуда.
>это вообще не термин.
Я буду называть обработчики запроса, методы контроллера, как мне нравятся, а на твое мнение срал. Вопросы какие-то еще?
>>40302
>Причем тут вообще "думать" или не думать?
У тебя пример с фреймворком приведённый, тут за тебя уже подумали и решили. А твоё самостоятельное "думать в рамках ооп" начинается именно с обработчиков контроллеров, как сделать их тонкими. Я не знаю, почему ты решил высраться и усложнить вопрос ввиду того, что у анона простой вопрос, как работает mvc. Почему?
Какое отношение "тонкость" контроллеров к ооп имеет? Типа толстые контролееры перестают объектами быть? Может речь идет про ПРОЕКТИРОВАНИЕ или АРХИТЕКТУРУ, а не про ооп?
>усложнить вопрос
Рашн мазафакер, ду ю спик ит? Ты же блядь двух слов связать не можешь. Чем отличается вопрос от ответа знаешь?
>Почему?
Потому что твой ответ это бессмысленный высер шизоида, который не то что сам mvc не реализовывал, а вообще ни одного контроллера в жини не написал.
Так не хочется этим аналом пользоваться...
Фреймворк на 70% это его орм. Если не нравятся элоквент, лучше другой фреймворк выбери.
>Какое отношение "тонкость" контроллеров к ооп имеет?
Прямое: контроллер mvc это controller из граспа, он занимается чисто координацией и делегированием, что не должно нарушаться согласно SRP из солида, это значит, что контроллеры должны быть тонкими и заниматься только своей ответсвенностбю.GRASP и SOLID это о том как реализовать 4х принципа ооп. Объектами они быть не перестанут, но и ты должен понимать, что ооп не заканчивается этими 4мя принципами.
>Ты же блядь двух слов связать не можешь.
В глаза ебешься или трудности с обобщением? С диагнозом "дебильность" это частый симптом, не переживай.
Тонкие контроллеры
@
Жирные сервисы
@
Реквест передается через параметры
@
Ad hoc сервис разбирает мелкодрисню из реквеста
@
Ко-ко-ко! Архитектура!
чатгота спамит мне такой информацией: "В SOA (Service-Oriented Architecture) сервис — это отдельная единица функциональности, которая решает конкретную задачу. Это как "черный ящик", который выполняет определенную операцию, и у него есть чётко определённые входные и выходные данные. Сервисы взаимодействуют друг с другом, используя стандартизированные интерфейсы, как, например, REST API или SOAP.". но блять это же просто описание философии сервиса, а как его блять писать я не понимаю. пока что догадка что сервис это просто монолит на Laravel, который только по api общается.
>Тонкие контроллеры
Да, так и следует быть.
>Жирные сервисы
>Ко-ко-ко! Архитектура!
Перемещение говна из контроллеров в сервисы должно было бы тебе показаться лишней работой чтобы задуматься о смысле действия.
"Сервис" о котором ты говоришь это service layer / application layer. Он не должен быть жирным как и контроллеры, а должен лишь собирать в себе логику из bussiness layer / domain layer (он ниже по зависимостям DYP, - от него зависят, - и выше по абстракции ООП), в последнем слое и содержится основная логика. Она здесь "атомарна", то есть поделенная на домены или модули, ватевер. Эта "атомарность" собственно и разбивает основную жирность, протекающую через слои. Вместо имя "сервис" в service layer / application часто используются CQRS/UseCases/Action найменования.
>Реквест передается через параметры
Между слоями данные передаются через DTO.
Сычев, ты когда интеграцию с тинков банком доделаешь? Ты уже три месяца возишься. Какие блядь юзкейсы, какой эскьюэрэс? Там просто хттп ручку дернуть. Понедельник крайний срок. Если не будет готово к дейлику в понедельник, для тебя будут плохие последствия...
Граспа ебаная, ты со своими солидами в конец одебилел?
О том чтобы язык соответствовал принципам ооп заботятся те кто этот язык пишет. В го нет нихуя наследования, и классов нет, а в ооп стиле на нем писать можно.
То что ты до бесконечности в своих жпт пастах из граспа в солид слои переливаешь абсолютно бесполезная хуета.
>То что ты до бесконечности в своих жпт пастах из граспа в солид слои переливаешь абсолютно бесполезная хуета.
А ты в контроллерах пишешь всё?
Нет, это service layer / application layer. Он не должен быть жирным как и контроллеры, а должен лишь собирать в себе логику из bussiness layer / domain layer (он ниже по зависимостям DYP, - от него зависят, - и выше по абстракции ООП), в последнем слое и содержится основная логика.
Ю ноу?
И не спрашивай меня что такое "зависимости DYP" и откуда я эту формулировку высрал. Меня попустило и я того прихода не помню.
Здесь это база. Здесь с важным видом кидаются баззвордами, но никто нихуя не понимает нахуй всё это надо. Такой карго-культ.
>Пишу логику в контроллерах, нихуя не понимаю сам и агитирую тоже нихуя не понимать
пофиксил тебя
Че ты лепишь. Аниме хуесос ничего не пишет. Он просто пиздит. Он даже не читал нихуя про этот грасп и солид.
Ага потом сидишь дедлоки полдня на проде ковыряешь из-за евент-дривен пидарасов криворуких
Чел, ты набрался баззвордов и думаешь, что все понял. Когда начнутся реальные задачи твои "знания" посыпятся как песок. Чтобы нормально вкурить ООП, нужно несколько лет, понимание приходит с годами и опытом.
У тебя на проекте долбаебы работают просто, тут что угодно будет и они прод положат к хуям
>>40838
Уловка 32. Озадачить и сбить противника с толку бессмысленным набором слов и фраз. Эта уловка основывается на том, что «люди, если что нибудь слышат, привыкли думать, будто под фразами скрывается какая-нибудь мысль».
Если противник такой человек, который в душе сознает свою слабость и привык слышать много непонятных вещей и делать вид, что все отлично понимает, то можно импонировать ему, засыпая его с совершенно серьезным выражением лица ученым или глубокомысленно звучащим абсурдом, от которого у него онемеют слух, зрение и мысль; все это можно выдавать за бесспорное доказательство своего тезиса. Всем известно, что подобную уловку употребляли в последнее время немецкие философы с поразительным успехом, когда имели дело даже с большим скоплением публики.
- Артур Шопенгауэр
Твоя самоуверенность спадет, когда тебе дадут спроектировать элементарную систему (просто классы).
Ты как человек, который насмотрелся научпопа, запомнил какие-то кротовые ноты, сигнулярности и теперь думает, что он что-то понимает в физике, но стоит только тебе столкнуться с реальной задачей, как ты обомлеешь от собственного незнания и немощи.
Ну я потренеруюсь на кошках в предстоящем учебном проекте, прежде конечно же нужно было разобраться как писать код. В пхп чатиках часто срачи за архитектуру четаю. К тому же, дядьки с видео приводят разумные аргументы в пользу, тем более это опирается на баззворды, которые я постоянно вижу в вакансиях, этот же DIP из солида. Хочется сразу учиться писать правильно.
>Хочется сразу учиться писать правильно.
Не получится. Умные люди всю эту ООП дрисню выводили из своего опыта, у тебя такого опыта нет, ты просто не докумыкаешь "зачем" и "почему" что-то использовать.
Прикинул как приходит такой мамин архитектор с паттернами, слоями и домейнсами. А ему суют проект который вчерашний студент наговнякал на коленке впопыхах и говорят "роботай".
Даже ебало его в тот момент не могу имаджинировать.
Но ты то посмотрел десять минут из тридцати, а на одиннадцать часов хуй забил, дауненок.
Проецируешь, свинья.
> Как научиться отвечать на вопросы, типа "а что не так с этим кодом?"
Смотришь что не так с кодом - отвечаешь что не так.
>Смотришь на код - вроде должен работать.
Отвечаешь что всё ок, лажаешь, после занимаешься поиском ошибок. В следующий раз стараешься не допускать подобного рода ошибок.
Чтоб понять что не так с кодом - ты должен сам что-то подобное реализовывать и на своих ошибках понять почему это говно.
Даже если просто прочитаешь clean code, не факт что поймешь
>git pull origin master
Already up to date.
>git push origin master
Everything up-to-date
>git commit
× No valid configuration found.
Это мой приватный репозиторий древний. Какие еще конфиги нужны?
https://github.com/CackeBepHucb/calculator
послушал бы предложения/пожелания там по архитектуре, чистому коду и тд.
Я не троллю, попробуй сам открыть свою ссылку через инкогнито, с неавторизованного акка твой репозиторий должен спокойно открываться
Блин ряльно. Пойду ковырять настройки чтотам не так
Есть файлы готовые для комита.
Локальный недавно ввел. Сейчас поробую затереть локальный и переписать глобальный. Если не получится, то буду заново вытягивать проект.
Пох другой акк сделаю. Странно конечно они так.
В туториалах по laravel страницу пишут на php, на blade этом самом, то есть можно и фронтенд на laravel сделать что ли?
Потому что весь цикл книг про то как жену ГГ ебут злодеи. Видимо Гудкайнд на это теребонькает
Смотря на пик, я боюсь ответить да.
Только один раз ебали, да и то через магическую связь.
>Поясните нюфане, вот когда в вакансии пишут React и Laravel вместе, то это имеется в виду, что в Laravel пишется api, а страница делается в реакте?
Да. Но чаще Лару с Вью берут для SPA.
>В туториалах по laravel страницу пишут на php, на blade этом самом, то есть можно и фронтенд на laravel сделать что ли?
Конечно можно. Будет классическое MPA веб-приложение. Но никто не мешает и ажакс прикрутить, или livewire.
> Конечно можно. Будет классическое MPA веб-приложение.
А как совместить js с php вообще? Что то у меня в голове все это не стыкуется. С одной стороны js скрипты отдельными файлами, с другой стороны эти <?php-вставки в html файлах
У Лары из коробки идет фронтенд модуль для ажакс запросов, называется axios. Погугли с ним примеры, там понятнее должно стать.
Эти хтмл вставки могут генериться и в отдельных пхп-файлах. А совмещается это всё просто - жс может отправлять запросы на сервер, напр. тем же ажаксом, и получать ответы от сервака и что-то дальше с ними делать, вот и совмещение получается. Я вот как раз мозгоеблей с ажаксом и занимаю в данный момент, чатик пилю.
а все я передумал, мне чат гпт ахуенный дизайн наконец сгенерил. фронтендеров в помойку
Если я правельно понял, есть 3 вида фулл стека на ларке, эти аббревиатуры в вакухах и роадмапах часто можно видеть:
1. VILT (React, Inertia, Laravel, TailwindCSS)
2. TALL (TailwindCSS, Alpine.js, Laravel, Larawire)
3. RILT (React, Inertia, Laravel, TailwindCSS)
Как для фуллстека их там на беке и фронте связывают библиотеки Inertia и Larawire. Но можно и без них обойтись, с изолированным апи от фронта. Тогда больше писанины, но меньше гибкости в случае если надумаешь мобильное приложение делать.
Популярны они именно в том порядке, в котором я перечислил. Если вздумал реакт учить, то лучше не надо, лучше вуе.
Вот в ларке не описываются поля модели, следовательно и тайпхинтов нет. Мне запоминать их что ли для обращений и работы с ними?
Ваще почти нихуя не дает в контексте кверибилдера в ларке. Разве что в ресурсах будешь говно из одного места (модель) в другое (ресурс) перекладывать.
Ну код да еще сделал, но там тупо чтобы рутинной работой не заниматься и не подгонять шрифты, флексы и прочую хрень. Типо нахуй эта свора фронтендеров нужна и дизайнеров? Щас 90% функционала это ненужные свистоперделки, я понимаю бекенд нужен там с БД работать, кешем и другими нужными вещами. Но нахуя вообще фронтенд как явление нужен? Смотри я не работал с фреймворками типо вью и реакты, но на голом ксс и хтмл написал ахуенный сайт по типу пикрил, где все понятно, МИНИМУМ кнопок, всего лишь 3 основных цвета в дизайне и все очень просто и доступно НОРМАЛЬНОМУ человеку. Теперь смотрим на пикрил 2 говно которое клепают на смсках
ладно пикрил 2 плохой пример, щас приблизительно вот такое клепают уебанство, просто вы еще представляйте как заходите на сайт а там миллиард всплывающих окон и лаги
На фронте куча логики удобной и запросов накидать, чтоб у тебя не как статичная залупа сайт выглядел
Не нравится - сделай сам. Нах ты тут ребёнка включил?
>>45005
Да так всего лишь расстрелять КАЖДОГО пидараса который испортил все сайты и приложения любимые своими свистоперделками, заебись теперь открываются полчаса и лагают. Зато дети с сдвг довольны. Главное не забыть контекстной рекламы накидать, чат бота с ВАМ ТРЕБУЕТСЯ ПОМОЩЬ?, предложением о ПОСЛЕДНЕЙ СКИДКЕ 99%, предложение зарегистрироваться, предложением принять куки и еще стопицот предложений, и только потом ты гой можешь посмотреть на содержимое
А ну и легендарное "ВЫ ТОЧНО УВЕРЕНЫ ЧТО НЕ ХОТИТЕ ВОСПОЛЬЗОВАТЬСЯ СКИДКОЙ? СКИДКА СГОРАЕТ ЧЕРЕЗ ОДНУ НАНОСЕКУНДУ"
И "ПОДПИШИТЕСЬ НА НАШИ СОЦ СЕТИ ЧТОБЫ БЫТЬ В КУРСЕ"
>Как же тяжко без фронтендера и дизайнера сайт пилить рибята
Не пизди, ничего не тяжко. В чём заключается тяжесть? В том, чтобы пойти на маркетплейс и купить готовый дизайн за 50 баксов? Или в том, чтобы скачать бесплатный ui кит типа fluent ui, material ui, sapui5, chakra ui?
>первый пик
Литерали пикрелейтед. Бездушное, холодное, илитное позерство. Добавили эти три точки, чтобы уж совсем страница не выглядела как пустой проект на WindowsForms.
Погроммисты дизайн не покупают.
Ага, причем спрашивает каждый раз и ты залогинен. Так и хочется таким похуистам в рожу руки нассать.
Ты ебанулся? Причём здесь технологические стек если придумывают пихание всех этих окошек в морду посетителю именно эффективные менеджеры?
Скажи в чем блять недостаток то? Такими сайтами просто ахуенно пользоваться, можно чисто кончать от использования, допустимо если там будет какая нибудь мягкая анимация ползунков и кнопок и все. И самое главное - такие сайты как ты видишь не для нищей хуеты создаются, а для богачей которые ценят эстетику. Ты давно видел стул с бабкиного гаража за 250 евро?
Вот для питоpахи обычной там уже не важно, накидал в кучу говна всяких цветов баннеров и реклам, приправил всплывающими окнами и дешевой анимацией ШОБ НЕОБЫЧНА, и скормил ей же
Без лица, без души. Ты хоть понять на каком сайте находишься можешь, по этим уебищным скриншотам?
Ты бы еще принес этих корпоративных блевотных человечков на одно ебало.
Наткнулся на слитый код крупного ру даркнет маркета, так вот он написан на ларавеле. Вопрос, это база писать сайты для даркнета на пыхе? Чем-то обосновано или просто совпало?
мимо залетный питонодебил
Ну ты пидарас, я нофап из-за тебя сорвал
Задумался о сайтах на пыхе, которые знаю. Пошел чатурбейт проверять, он на джанге оказался
Ты своими тезисами питараху напоминаешь. Которая живет внутри пик1, который выглядит снаружи как пик2 или пик3. Нет ну а чо. Зато душевно, оригинально
Конкретно вот эти детали интерфейса просто ебаный мусор, нахуя он? Чтобы нищей хуете впарить какое то говно в обертке СПЕЦПРЕДЛОЖЕНИЯ СКИДКИ? Вот в чем качественное отличие богатых и успешных людей от нищего скота. Нищих держат за обезьян и помыкают разноцветными баннерами об очередной "скидке". Пользоваться сайтами для скота значит не уважать себя
Да не ссы ты, это обычная сезонность через месяц все станет как было. Ну и на худой конец битрикс всегда ждёт тебя.
>)))
Там просто сразу поняли по обилию скобочек, что ты заводобыдло гречневое и ФИТА С КОМАНДОЙ упругих зумеров у тебя не будет. И нахуй ты такой нужен, скуфидон кринжовый?
Я нужен, чтобы молодые лучше обьединялись на фоне чмырения меня за спиной. И переставали думать о плохом кабане, маленьких зарплатах и потогонке. Я один их теперь буду раздражать одним своим видом
Так а смысл в этих вакансиях? Все на новогодние праздники уходят недели на полторы-две. Зачем кого-то нанимать чтобы он тупо ждал когда все работать начнут?
Апишки и круды чистые или mvc дефолт сайтик на пыхе?
И не имеют собственного лица, до полного смешения с интерфейсом телефона.
И то, и другое
>нищей хуете
>богатых и успешных людей от нищего скота
>Нищих
>для скота
Нищий скот, старательно прорабатывающий детские травмы, не знает, что самым верным детектором нищего скота является неистовая, животная ненависть к нищему скоту, которым ему не повезло уродиться и которым он, скорее всего, до сих пор является. Классека, нахуй.
Прямо как тот грозный додик, засирающий б тредами про "попускание омежек" и "естественный отбор", лол, всякий раз ору как ебанутый с вас, наивных дураков.
куда еще можно залететь успеть? помогите
все три в целом не нравятся, все блевотные
>все три в целом не нравятся, все блевотные
Никуда, с такой мотивацией ты дропнешь вкат уже через пару недель учебы
посмотри на это уёбище: https://www.php.net/releases/8.4/ru.php
скрипя зубами придётся терпеть
$animal = array_find(
['dog', 'cat', 'cow', 'duck', 'goose'],
static fn (string $value): bool => str_starts_with($value, 'c'),
);
var_dump($animal); // string(3) "cat"
то что в нормальных языках парой строк можно сделать, тут пиздец
где сам этот ебучий Bitrix учить? Ладно там Laravel, Symfony ещё понятно. Опять же не охото время тратить на это уёбище, а потом переучиваться на что-то нормальное, лучше сразу освоить годное
720x1280, 0:34
А чем go блевотный?
По факту среди выбора лучше всех выглядит go, что до 1С - тут понятно. Битра - ну как бы сказать, так уже не пишут, по факту знания с битры по сути не релевантны, перекат на фреймворк типа лары или симфы - обучение почти с нуля после битры.
Стильно, модно, молодежно. Только туда разве не берут с опытом работы на других языках и нулевые вкатыши в пролете?
Я откуда знаю, это же ты выбираешь язык, а не я. Ты и рассказывай чем он блевотный
Дела обстоят лучше чем в других языках?
>Как думаете, возможно найти работу php-джуну без опыта?
Думаю нет, лучше учи Golang или Java, здесь вряд ли тебе что-то светит
А что не так?
Помню начинал с этого треда...10 лет назад, забавно
Анон, скажи мне, когда из языка уберут нахуй
"$"
"$this->"
"function"
Как же меня заебало за 10 лет писать и читать эти бесполезные наборы символов....
Потому что пыха младший клон java
>> Ну и почему ты за 10 лет не перешол на сишорп
потому что переходил на ноде, вот теперь перекатываю на ржаву
>Потому что пыха младший клон java
Правильнее будет сказать, что пехопе - очередной убогий "упрощённый" клон перла, из которого выпилили всё хорошее, что было в перле, оставив всё плохое и обмазав сверху ООП-поносом из джава. Между прочим, весьма хуёво - например, ДЖЕНЕРИКОВ до сих пор нет в модном пехопе 8.
А, ну и говёный шаблонизатор гвоздями прибили, <?ПЕХОПЕ и вся хуйня. И мусорных функций в глобальный неймспейс насыпали.
Нет, вкат всё
Как же заебали люди, которые при любом удобном случае рассказывают какой пхп плохой язык, но так и продолжают на нем сидеть.
Я не занимаюсь кодированием на пехопе, я увидел фактическую ошибку и ответил в тред с нулевой, между делом заметив, что пехопе - говно. Тащем-та это всегда всем было очевидно - если какой-нибудь питухон быдло любит и будет спорить с тем, что он плохой, то уёбищность пехопе никогда не вызывала сомнений даже у самих слоник-макак. У вас какой-то удивительный тред.
Как, впрочем, и любой другой язык, если его начать изучать глубже написания хелловорлдов и крудов
720x1198, 0:37
Я лично не хейчу ни пхп, ни битру, потому что прекрасно понимаю что благодаря этим технологиям я получил доступ к баблу.
Однако, за 10 лет с момента моего вката, разработка на пыхе стала лучше совсем немного и накопился ряд претензий.
По последним новостям пришел к выводу что развитие пхп движется хуй пойми куда.
Особенно грустно стало от перфоманса с пика. Когда нода уделывает в 2 раза, а "тормозная жава" почти в 5 (и это если у тебя есть JIT которого ни у кого нет), про 20 раз уже даже говорить не хочется.
Если раньше можно было объяснить популярность PHP, тем что его можно поднять на вшивом хостинге за 200 рублей\мес (400 рублей по современным меркам) и почти без пердолинга с настройкой, потому что хостинги были заточены на LAMP.
То теперь и это в прошлом, за те же 400 рублей ты на VPS поднимаешь любой стек в докере дотнет\жвм\ноду, а хочешь можешь и нативку ебануть на го\раст.
На одном из видео слышал такую фразу "ПХП просто выдавливают из тех областей, где он оказался случайно", т.е. авторам языка надо не то что бы идти в ногу со другими ЯП, а бежать в 10 раз быстрее, но на это нужны ресурсы, а их у них попросту нет. Хуй знает, чем это закончится, но кажется что результат предсказуем. Потому что супер тормозной рэбе для разработки стартапов он хуй когда переиграет.
Stateles? ну ок, только фокус в том, что другие ЯП его тоже реализуют в своих фреймворках, только им не надо на каждый чих поднимать заново все объекты\контейнеры.
По битре скажу, что они заебали со своей обратной совместимостью и костылями из 00, им просто похуй на технологии вокруг, выкачивают бабло, изменения просто околонулевые, чисто маркетинг
Поддерживаю
>Особенно грустно стало от перфоманса с пика. Когда нода уделывает в 2 раза, а "тормозная жава" почти в 5 (и это если у тебя есть JIT которого ни у кого нет), про 20 раз уже даже говорить не хочется.
Щас бы всерьез рассуждать о синтетических тестах хуй пойми в каком окружении хуй пойми с какими настройками, хуй пойми с каким кодом
>То теперь и это в прошлом, за те же 400 рублей ты на VPS поднимаешь любой стек в докере дотнет\жвм\ноду, а хочешь можешь и нативку ебануть на го\раст.
Пыха так же прекрасно поднимается в докере, доеб непонятен
>ПХП просто выдавливают из тех областей, где он оказался случайн
Внезапно, любой язык выдавит из своей ниши менее нишевой язык. Для мелкосреднего бизнеса пхп идеален соотношением цена-качество-TTM
>им не надо на каждый чих поднимать заново все объекты\контейнеры.
Чето слыхал, в пхп новую штуку завезли, опкэш или как-то так, которая решает эту проблему. Лет 10 назад или больше
>Особенно грустно стало от перфоманса с пика.
У тебя на пике нарисована абсолютная хуита, показывающая температуру на Луне.
>Пыха так же прекрасно поднимается в докере, доеб непонятен
Просто ты тупой. Какой тебе нахуй язык програмирования, ты русский то не понимаешь, дауненок.
>Для мелкосреднего бизнеса пхп идеален соотношением цена-качество-TTM
Баля, а что же у нас формирует это соотношение? Ведь если применений у языка становится меньше, и програмистов на языке становится меньше, то качество и цена не меняются? Ну еблан и есть еблан.
>поднимать заново все объекты\контейнеры
>опкэш
Ну точно ебанько. Тупорылый припизднутый дегенерат. Хоть бы прочитал что такое опкоды, че там этот опкеш кеширует. Идиот клинический.
Ну вот оно как-то так.
Защищают пхп дегенераты, котроые ни в пхп, ни в программировании в целом нихуя не понимают.
Хуесосик "цена/качество", ты кем работаешь? Что ты на пхп за последние пять лет написал? Когда последний раз на работу устраивался?
что ж, если так трудно погуглить "1 billion nested loop iterations"
стоит ли держаться в профессии, обычно в таких тестах ищут исходник и идут бить ебало автору доказывать что его ЯП лучше, ибо священная война священна
https://github.com/bddicken/languages/tree/main/loops
"1 billion nested loop iterations" - три вложенных цикла за 2 секунды! Две секунды, Карл!
С ультра оптимизацией в виде JIT, это тебе не ссаные опкоды
И это еще фибы не смотрели
Ну по поводу русского языка он тебе все правильно написал, прочитал, что якобы пыха в докер не суется, а поинт был совершенно о другом.
1920x1080, 0:11
Конечно на личности, хуесосик. Потому что по твоему высеру очевидно что там не личность, а пенёк осиновый.
Человек, котрый на пхп пишет, знает все его проблемы лучше любого залетного. Ему эти проблемы дефать - как битой себя по яйцам пиздить.
А тут нарисовался хуесосик.
И простейший, прозрачнейший тест у него не тест. И по русски он читать не в состоянии. И опкэш он не к месту приплел.
И сразу возникают вопросики к хуесосику. А ты собственно кто, хуипутало? Какое отношение к пхп имеешь вообще, додик? Если ты на нем не пишешь, а ты очевидно нихуя на нем не пишешь, то нахуй ты тут высрался?
>стоит ли держаться в профессии
Действительно, стоит ли держаться в профессии, если не то, что не открыл ни одного исходника, а просто не запустил руками код, приведенный в репозитории, и не увидел, что, например, никакой секундой в случае Node там даже не пахнет. У меня, например, меньше 1,9с не получилось никак. Вопрос встает сразу, с какими флагами это все компилировалось? На какой машине запускалось? При этом даже тот не оптимизированный код на Julia у меня больше 1,4с не дает никак.
>Защищают пхп дегенераты, котроые ни в пхп, ни в программировании в целом нихуя не понимают.
Как и JS, лол. У них паства литерально одинаковая. Им объясняешь, что весь язык сконструирован в максимально шизоидном стиле, просто конченым петухом, они начинают рякать, что при помощи него деньги лутают и про какие-то ТТМы кукарекать
>> Действительно, стоит ли держаться в профессии, если не то, что не открыл ни одного исходника, а просто не запустил руками
Ну во первых там все расписано, и если ты не нашел, то вкатываться я тебе могу предложить с похода к офтальмологу.
Конечно же я пошел проверять этот злоебучий код, т.к. меня это задело и у меня были совершенно другие значения, но общий тренд сохранился.
Лично у меня java (graal\openjdk)\с# выдала 1.4c, пыха вообще на 25сек уехала(на 7.3 ) и на 60 (8.4), а раст дал 4 секунды. Естественно везде включен дебаг и вся хуйня, но разрвыв очевиден
>> что при помощи него деньги лутают и про какие-то ТТМы кукарекать
Не ну ТТМ конечно полезная штука, если ты пилишь стартап
Однако, если взять сисярп с разор-васмом, там ТТМ просто туземун на ракете улетает, получается.
Ты буквально можешь писать все на шарпе, поставить в коде бряку и когда нажмешь на кнопочку в браузере на которой висить хэндлет типа onClick у тебя код встанет на твою бряку с параметрами переданными в эту функцию в браузере и это ни какой-то ajax запрос на RestAPI с json. Ты буквально в IDE дебажишь код фронта, никаких webpack c watchерами и прочей хуитени. Одна IDE, один код, один проект. Вот жеж нихуя себе и тут получается переиграли?
И никаких тебе:
<script>
var huy = <?=json_encode($pizda); ?>;
</script>
И про какой мы ТТМ говорим? "console.log", "degbugger;" ? Ах да : "мы же просто микро-rest сервисы" пишем, а фронт это удел фронтендеров. Ну как бы все понятно.
Но DI контейнер хочется уже сейчас.
Насколько котируется тот же https://php-di.org/ ? Это какая-то реально рабочая и востребованная штука или это поделка школьников? Судя по Адвенту там за 2024 год всего 11 правок. Это как-то смешно. Или там нечего особо править поэтому туда особо и не комитят?
Фреймворк это просто набор библиотек.
Ты можешь просто поставить себе контейнер из того же симфони.
А потом когда захочешь его конфигурировать через yaml поставить конфиг компонент из того же симфони.
А потом чтобы загружать в конфиг пароли из env файла поставить dotenv компонент из симфони.
А потом поставить компонент безопасности, который добавляет CSRF токены и шифрует куки.
А потом поставить HTTP компонент, чтобы удобно работать с куками, входящими данными и сессиями.
А потом прикрутить логи.
А потом ОРМ.
А потом кэш.
А потом тесты.
А потом работу с файлами.
Работу с консолью, рест апи, очереди, крон задания, переводы, формы, валидаторы, ассеты, rbac и хуй знает что ещё.
Бля, забавный дебиленок. Тебе по фактам хуем по губам поелозили, но ты продолжаешь копротивляться. Ведь на самом деле ты на пхп не писал никогда, где-то чего-то когда-то прочитал, а теперь пришел сюда срать и типа троллеть))00) но в итоге получил справедливую струю мочи в ебало
Ну ладно, это хотя бы веселее, чем вкатудонские тупые вопросы
>кем работаешь? Что ты на пхп за последние пять лет написал? Когда последний раз на работу устраивался?
>язык сконструирован в максимально шизоидном стиле
Да, так и есть
>при помощи него деньги лутают и про какие-то ТТМы
Да, так и есть
Где тут противоречия, еблуш?
Короче, раз в сезон стабильно в тред приползает шиз, который упорно пытается всем рассказать, какое же пхп говно, что он скоро умрет, все-все языки в мире лучше, и все в этом духе. Спустя пару-тройку дней его попускают, насмехаются над ним и изгоняют из треда, но потом он снова возвращается
>>50851
Шиз, ты? Я узнал тебя по твоим высерам
Как дела, весь пхпшный код на ноду переписали, или еще не?
Ну вот начинается: надо артисан, надо команды его изучать. Нет, спасибо, если уж делать на ларавеле, то сразу делать всё приложение.
А я просто хотел DI контейнер попробовать прикрутить, чтобы поменьше кода писать в начале каждого скрипта и не писать одну и ту же портянку в каждом скрипт (DRY). Да и то это чисто для эксперимента, посмотреть на сколько это будет удобно в моём простейшем hello-world-е.
У меня в начале каждого скрипта моей утилиты вот такая портянка. А тут я один раз настрою всё это и в каждом скрипте буду просто брать нужный мне репозиторий или сервис, которые мне будет создавать автоматом контейнер.
чел если ты нормально сделаешь на PHP.DI потом и на симфонячий перекатишься изи
главный принцип, ебенить все зависимости через конструктор
Не трогал бы ты говно чтобы в треде не воняло.
Спасибо. Судя по тому как легко подключить симфонический, я решил сразу на нём пилить. Надо будет и логгер потом оттуда взять. А то у меня он самописный.
>Ну вот начинается: надо артисан, надо команды его изучать. Нет, спасибо, если уж делать на ларавеле, то сразу делать всё приложение.
А что их изучать? Пишешь php artisan и он тебе сам все доступные выведет. Самому писать команды тоже легко - можно в том же артисане создать нужный класс.
>У меня в начале каждого скрипта моей утилиты вот такая портянка. А тут я один раз настрою всё это и в каждом скрипте буду просто брать нужный мне репозиторий или сервис, которые мне будет создавать автоматом контейнер.
Так убери все эти конфиги и зависимости в один фреймворк сделай там команду для каждой своей утилиты, а в коде только нужное доставай из контейнера.
>кое что сделал
А какие у тебя приблизительно задачи, мне как вкатуну интересно что нынче джунам дают делать
Новости на сайте переставали отображаться если в бд ставили несколько активных новостей, это как раз сделал. И еще картинки в админке не загружаются(она старая самописная) ну то есть некоторые грузятся а некоторые нет, хз почему так.
Понятно, а то одно дело дрочить пет проекты типа списка студентов или файлообменника другое дело реальная работа, не понятно что ожидает меня на галере
Дурачок, пхп не для этого создан как инструмент. Байты перекладывай на других ЯП.
>Тут кто-нибудь писал на слонике что-то кроме однотипной элементарной веб-дрисни?
Никто, на пыхе другого и не пишут это язык для веба
Ты чего порвался?
Это же старый мем.
>пхп не для этого создан как инструмент.
пикрелейтед
>>51899
>кто-нибудь писал на слонике что-то кроме однотипной элементарной веб-дрисни
Ощущения будут типа как от питона, только пых может даже чем-то лучше питона: в нем есть многострочные лямбды с семантикой крестов, приваты, интерфейсы.
>Драйвер файловой системы
Хз о чем-ты. Ну вот, например, такое есть https://github.com/sj-i/php-fuse
отклеилось
Всё верно, PHP это язык общего назначения. В то время как написание драйвера фаловой системы - это не общая, а специальная задача.
Так это биндинг к фьюзу, а реализацию своей собственной файловой системы ты как раз напишешь на PHP. Что не так?
Так к фьюзу любой язык можно прикрутить.
Ты наоборот сделай. Чтобы был аналог фьюз на пхп, а к нему какой-нибудь жабоскрипт прикручивали. Не можешь? Ну вот ебальник то и прикрой.
Лол, и в чем проблема для человека знающего си сделать интернет магазин? Он типа в буфер вывода не сможет хтмл высрать или к базе приконнектиться, ебанько?
https://2ch.hk/b/res/314707952.html (М)
Хули вам надо от нашего пи эйч пи, съебите нахуй
>Лол, и в чем проблема для человека знающего си сделать интернет магазин?
Так в чём проблема? Почему мы магазины на пхп видим, а на сях не видим? В чём проблема?
Нихуя ты сракой виляешь. Как-то мы быстро перескочили от "невозможно на пхп написать FUSE" к "на си не нужно писать сайт".
Я тебя, полуебка еще раз спрошу: что мешает человеку, который знает си написать сайт? Давай без виляний сракой и ответов вопросом на вопрос.
Ну или завали ебло и съебни если нечего ответить.
Накидайте репортов фрику
>что мешает человеку, который знает си написать сайт?
Так что мешает, полуёбок? Это ты заявляешь, что не проблема. Так где эти магазины, опущенец? В чём проблема?
Так где сайт, чмо? Где интернет магазины про которые ты визжал ИТТ два дня подряд? Я вижу только хелловорлд ценой страницы кода, который пхп может в 1 строку сделать.
Вопрос всё ещё актуален:
>Так что мешает, полуёбок? Это ты заявляешь, что не проблема. Так где эти магазины, опущенец? В чём проблема?
Не сливайся. Ведь это ты сюда патраллить лалок зашёл.
>Так где сайт
Ты курьером в говнерочке работаешь? Тебе скрин нахуя прикрепили? У тебя с чтением кода проблемы, пицценосец?
Так это helloworld, клован. Но даже его ты не осилил без либы, а я бы вообще на epoll сделал. Однако, полноценный магазин ты таким способом напишешь примерно к тому моменту, когда тебя из НИИ на пенсию отправят, и то не факт. То есть, это практически нереализуемо. При этом обязательно насрешь багами и уязвимостями. Вот эти твои "data", 4. Так что ты обоссал только сам себя, сиськанчик.
Короче, судя по всему, у тебя опять закончились таблеки от шизы раз ты всем итт начал доказывать, что твоя строчка с хелловорлдом это полноценный онлайн-магазин.
Магазин то покажи, чмоха. Сам ничего не сделал кроме визга, а от других требуешь. Где магазины на сях в интернете? Неси сюда давай уже, раз там так всё просто, вайти.
>>52981
>>52988
>>52991
>>52994
Нормальный подрыв.
Долго, быстро, но это очевилдный факт: чтобы написать вебсайт на си нужно только желание. Технических препятствий для этого нет. Это и означает что язык общего назначения. Хочешь пишешь веб сервер, хочешь фаловую систему, хочешь сайт.
А где пруфы того что пхп язык общего назначения? Что он может без костылей в виде ДЕЙСТВИТЕЛЬНО универсальных языков?
Охуеть просто.
>Долго
От твоего высера const char в socket до полноценного магазина - дорожка непроходимая, долбоеб. Поэтому ты и не можешь показать, никто из 8 миллиардов не сделал. Да и что будет аналогом helloworld? Dummy-модуль ядра, который обменивается строчкой с PHP CLI? Ну можно это сделать. Что тебе надо от нас, чудище ебаное?
А сейчас я не вижу в шапке этого треда этот урок.
Короче я сейчас иду по старой шапке. Я в самом начале. И читаю книгу 2003 года про apache web server, чтоб начальный урок пройти в котором упомянут apache.
Я скоро дойду до глав с php fpm. Поясните это пизда как сложно конфиг для php fpm писать?
>И читаю книгу 2003 года про apache web server
Да просто настрой его по гайдам, или скачай готовую сборку LAMP. А то и докер настрой с нжинксом.
Зачем книжки то про вебсерверы читать? Ты прогать хочешь или просто почитать?
Я хотел рамсить с наскока и просто сделать цап царап с ютуба. Нашел видосы про веб сервер. Начал смотреть и нихуя не понял что происходит, что, куда и зачем. Решил, что без книжки не разберёшься.
У ВАС РЯДОМ ЕСТЬ ТРЕДЫ ПО JS И С++. ПРОСЬБА ПОСЛЕДОВАТЬ ТУДА
Я ещё понимаю старые кони бороздят web эпохи нулевых, но вы, молодые, шутливые, зачем это говно учите
Потому что кошачья бацыла сделал хайповый видос про великий пхп как способ изи вката в айтишку без конкуренции. Так что радуйся, скуфиду, хоть с молодежью пообщаешься! Ну или корми чела с книгами по апачу
Это сам ты пошел нахуй вместе с твоим срачем на тему применения php вне веба. Ты хочешь, чтоб мне не отвечали. А чтоб тебе продолжили писать на тему срача. Ух какой же подлый ты стервец! Какой мерзавец!
Ты себе это скажи!!! Мистер - "пхп общего назначения" херов!!!
Ой пусть закатываются. Охуеют от разочарования что кроме CMS а-ля битрикс пхп-рынок ничего не может предложить из "изи вката". На фреймворки конкуренция такая же как в других бэк-стеках.
В пэхапе одни cmsки и скоро зп как у кассира пятерочки будет
Примерно такой же смысл идти в пэхапе, как и в фронтенд
Идите в го, шарпы,жаву, 1с, ембедед(если времени дохуя)
Мой стек всегда был C, Java, PHP. Как наиболее универсальный. Хотелось бы, конечно, Go добавить, вроде как сейчас это уже стандарт для микросервисной архитектуры.
PHP мне нравится намного больше что Питона, что Ноды. По крайней мере в PHP есть адекватное ООП и можно создавать приложения, отвечающие всем стандартам качества, а не лепить костыли, когда тебе нужно реализовать тот или иной паттерн, а у тебя в языке нет ООП.
Я бы и с собакой поработал - лишь бы платили.
>вебсайт на си нужно только желание
Которое может возникнуть только у поехавшего долбоёба.
Ты там скрин сишного кода кинул, вот залей его на хостинг а мы посмотрим что этот инет-магазин из себя представляет, он рабочий?
Куда идём мы с Битриксом —
Большой-большой секрет
И не расскажем мы о нём
О нет, и нет, и..
Да, у тебя есть сертификат 1С?
— Сертификат 1С?
— В смысле я как раз подумал, а не захватить ли нам на всякий случай сертификат 1С? От этих франчей всего можно ждать
— Ага
Раз ты работал с 1С, может расскажешь, как вообще начать свой бизнес в 1С? В больницы ставят 1С Поликлинику, я хочу брать заказы на какие-то мелкие правки и доработки. Чё мне вообще нужно? Самому купить 1С Поликлинику, поставить её и копаться в её коде и разбираться в ней или как вообще это работает?
Манечка, решаешь не ты, а бизнес. Пока ты итт пукаешь безработно и борщехлёбно битрикс-программисты лутают сотыги.
Бля, братуха контент в кайф, давай давай еще.
Битра вообще хуйня, вот WordPress заебись, 40% сайтов на нем работают. Вот это показатель! Вообще охуенная штука, рикамендую!
вордпресс - хуита
@
попросили фильтрацию в каталоге
@
делал пол года
@
сделал для 10 свойств, а хули хватит же
@
одно свойство - одно значение
@
работает за наносек
@
заказчик попросил сделать для множественное
@
плачешь
@
перепутал * с &
@
задеплоил
@
сайт пососал хуев и лег
@
уже месяц дебажишь
@
решил писать свой dsl для работы фильтров
@
умер
@
попросили фильтрацию в каталоге
@
делал пол года
@
сделал для 10 свойств, а хули хватит же
@
одно свойство - одно значение
@
работает за наносек
@
заказчик попросил сделать для множественное
@
плачешь
@
перепутал * с &
@
задеплоил
@
сайт пососал хуев и лег
@
уже месяц дебажишь
@
решил писать свой dsl для работы фильтров
@
умер
Потом будете перекатываться из пэхапе в нормальный стек, а опыт на пэхапэ рассматриваться не будет работодателем
Коупи дальше, манька. Устроился в зелёный банк на Java, у меня опыт был PHP и Java, рассматривали весь опыт, про проекты на PHP тоже с интересом слушали. На PHP галере лутал 500, сейчас 700. А ты соси дальше изучай свои байтики, обоссышь.
>> а опыт на пэхапэ рассматриваться не будет работодателем
конечно не будет, если ты веслал на говнопрессе для одеска, кому ты нахуй нужен клоун-костылятор
>скуфиду, хоть с молодежью пообщаешься!
Не, я на PHP не пишу. Я сейчас пишу на TS и учусь писать на С++. Так что молодёжи достаточно и олдов тоже. Я прост посоветовать пришёл новичкам, что писать на PHP следует в одном и следующих случаев:
- вы аутист
- вы уже лутаете с него деньги не первый год
- вас переманили с другого языка на х2 зарплату
- обстоятельства непреодолимой силы
В ином случае берите другие языки. Они могут всё то же, что и PHP, но при этом имеют ещё куче всего, что PHP не может. С уважением к вашему времени, олд, который когда-то писал на PHP пару лет
Ты застрял в прошлом, где-то в PHP 5, походу. Программы 2024 года на PHP выглядят теперь точно так же как на любом современном ООП языке.
Просто иди нахуй
А тебе не кажется что дженерики в нетипизированном языке это натягивание совы на глобус? Ты уж реши, тебе типизированный язык с дженериками или нетипизированный. И да, в PHP завезли дженерики не так давно, для шизов, которым нужна типобезопасность в PHP. Выглядит как говно но если человек долбоёб и он вместо java зачем-то начал писать на php то ТЕРПИ.
В джаве не настоящие дженерики. Настоящие в сишарпе.
Дженерики в ПХП, вы че вообще ебанутые? Ты знаешь для чего они нужны?
> технический препятствий для этого нет
Язык не сам себя пишет выблядок ты тупорылый. Техническое препятствие в том что никто не станет писать хуилярд строк кода, который потом невозможно будет поддерживать.
500 на пэхапэ в галере)
Мега толсто
Пост написан чтоб даунов на пэхапе натравить
В чате пэхапэ коммьюнити достаточно посидеть какое-то время, 350-400 максимум.И то, это позиция руководителя с кучей лет опыта
Это у тебя дневник в dr, где ты гит дрочишь?
> Ага, только пишешь на скрипте без асинхронщины и многопоточки
Для асинхронщины и многопоточки я пишу на других языках.
Если я пишу на PHP, значит она не нужна там, где я на нём пишу, как ты не можешь понять простой истины.
> Пописать на любом языке, а потом глянуть на php - сразу отвращение к пыхе появляется
Я пишу с 2004 года на десятке языков, включая Хаскель и Схему, а так же лабы на брейнфаке, ты возможно ещё не родился, когда я СЦИП под аниме Лаки Стар изучал и в IRC каналах с друзьями рогалики пилил.
Под каждую задачу свой язык. Настоящему программисту вообще без разницы на каком языке писать. Можно даже свой язык создать под задачу.
>Под каждую задачу свой язык. Настоящему программисту вообще без разницы на каком языке писать.
Пиздаболы, вроде тебя, палятся именно на вот этом "Под каждую задачу свой язык". Сразу видно кукаретика. Какие у тебя "разные" задачи? Ты сегодня код пишешь обычно, а завтра справа налево и тебе какой-то особый интрумент для этого нужен? Хуйня полная.
У тебя задача писать ооп код. Что пхп как инструмент уникального и полезного для этого предоставляет?
НИ-ХУ-Я
Все. Дискуссия исчерпана.
> Пиздаболы, вроде тебя, палятся именно на вот этом "Под каждую задачу свой язык". Сразу видно кукаретика.
Погугли чё такое DSL
Чел, DSL это не про выбор языка общего назначения, это про описание предметной области языковыми конструкциями
Это смотря какой DSL. Если поверх другого языка то да. Но это и не обязательно поверх другого языка.
Описание предметной области языковыми конструкциями это DDD, мань. DSL это именно про языки ориентированные для решения конкретных прикладных задач.
Ты даже в определениях путаешься.
Что значит даже. Я мимо шел.
https://en.wikipedia.org/wiki/Domain-specific_language
A domain-specific language (DSL) is a computer language specialized to a particular application domain. This is in contrast to a general-purpose language (GPL), which is broadly applicable across domains.
Ruby это не DSL
erb - dsl
Gemfile - dsl
Но все это руби
Нелья сказать что пхп больше дсл под вебкруд чем питон или раст
А в любом сельском толчке есть чиркаши говна. Для тебя это повод чаще посещать сельские толчки?
При чем тут говно? Или у тебя что в башке, то и на языке? Сайт на питоне/ноде/C++ надо уже ложить на VDS хотя бы, который уже надо админить, за это надо кому-то платить, даже если и копейки, то все равно взаимодействовать с этим админом. Пхпшную шнягу просто положил на LAMP хостинг, которых триллиарды, и забыл или почти забыл. Ты, например, точно знаешь, как твой, ну пусть сервер приложений, ну пусть на C++ и на FastCGI правильно обернуть в daemon, чтобы он не пизданулся у тебя через сутки хз почему? PHP в этом месте практически не требует дополнительных знаний и администрирования вообще, а другие решения требуют. Да, такая ситуация сложилась исторически. Ну и что, блять, холиварщик ты в жопу ебаный всех итт заебавший?
>LAMP хостинг
Бля, залупа понурая, какой нахуй ламп хостинг? Кого нахуй админить? Ты к нам из дветыщиседьмого прилетел? Какой нахуй апач, припиздок солевой?
Покажи мне блядь в 2025 году хостинг, где нельзя через докер поставить все что тебе нужно. Давай блядь, путешественник во времени. Апач сука, я от смеха кофе поперхнулся.
Чучело, блядь, ебаное, чтобы поставить все, что тебе нужно, нужно знать, что тебе нужно. А с PHP этого знать не нужно, потому что с PHP тебе не нужно ничего, кроме PHP. Так понятно, бухой уебок?
>с PHP тебе не нужно ничего, кроме PHP
>Апач
Бля, хорошо что я кофе допил. Точно бы монитор забрызгал.
Что за юзкейс кофе на ночь в выходные?
PHP или Go все же? На Go кажется так просто не влезешь
>Если я пишу на PHP, значит она не нужна там
Нет, ты пишешь на нём, потому, что не востребован на других языках
>Я пишу с 2004 года на десятке языков, включая Хаскель и Схему
Как я и говорил, берёшь всякий мусор. Это как школьник, который бегает по всяким новым ММО-помойкам в надежде быть первым и возвышаться над будущими нубасами. И в этом ничего нет плохого до тех пор, пока он не начинает на полном серьёзе считать что его достижения в ММО что-то стоят и завязывать на это свою самооценку, спорить о своих достижения и т.д. То есть вместо того, чтобы сказать: "Ну, да, я угораю над нубасами, смотри, как бесятся, кек", начинается: "Кругом тепые нубасы, почему никто не умеет играть, я всех победил, ахаха, я охуенен!" на полном серьёзе
>Под каждую задачу свой язык.
Нет. Никакого языка под задачу не существует. Есть язык - его рождают исходя из практики для упрощения генерации байткода, ни под какую задачу он не создаётся. Есть люди, они тоже независимо рождаются. Они изучают в жизни то, что им посильно и интересно. Кто-то взялся ковырять, как устроен компьютер, а как управлять лопатой для кидания говна. Есть кабанчики, они тоже появляются независмо. И, вот, кабанчику надо кодера, чтобы было больше денег. Есть кабанчик, который делает ракеты, есть тот, что делает шаурмячну. Тот, что делает ракету будет искать тех, кто умеет в Си, а шаурмячнику достаточно кого угодно, лишь бы сайт работал. И так получается, что всех Сишников разбирают, остаётся только PHP-макака. PHP в данном случа можно заменить чем угодно, важно, что это более примитивный инструмент. И PHP макака идёт в шаурмячку. И так и рождается миф, что PHP для шаурм; другими словами, инструмент под задачу. В реальности инструментом является лоускил кодмакака. И под она берётся под сделать сайт шаурмы, и так уж оказывается, что она знает только PHP или какой-нибудь Хаскель
>Настоящему программисту вообще без разницы на каком языке писать
Нет. Писать на говне, когда есть не говно - существует только одна причина - ты раб, решение за которого принимают другие
P.S.
Про многопоточность тебе гопота выдала чушь времён десятых годов. В Nodejs есть все виды многопоточности. Ещё веселит словосочетание истинная многопоточность. Узрели ли ты её, принял ли в своё сердце; амен!
>Если я пишу на PHP, значит она не нужна там
Нет, ты пишешь на нём, потому, что не востребован на других языках
>Я пишу с 2004 года на десятке языков, включая Хаскель и Схему
Как я и говорил, берёшь всякий мусор. Это как школьник, который бегает по всяким новым ММО-помойкам в надежде быть первым и возвышаться над будущими нубасами. И в этом ничего нет плохого до тех пор, пока он не начинает на полном серьёзе считать что его достижения в ММО что-то стоят и завязывать на это свою самооценку, спорить о своих достижения и т.д. То есть вместо того, чтобы сказать: "Ну, да, я угораю над нубасами, смотри, как бесятся, кек", начинается: "Кругом тепые нубасы, почему никто не умеет играть, я всех победил, ахаха, я охуенен!" на полном серьёзе
>Под каждую задачу свой язык.
Нет. Никакого языка под задачу не существует. Есть язык - его рождают исходя из практики для упрощения генерации байткода, ни под какую задачу он не создаётся. Есть люди, они тоже независимо рождаются. Они изучают в жизни то, что им посильно и интересно. Кто-то взялся ковырять, как устроен компьютер, а как управлять лопатой для кидания говна. Есть кабанчики, они тоже появляются независмо. И, вот, кабанчику надо кодера, чтобы было больше денег. Есть кабанчик, который делает ракеты, есть тот, что делает шаурмячну. Тот, что делает ракету будет искать тех, кто умеет в Си, а шаурмячнику достаточно кого угодно, лишь бы сайт работал. И так получается, что всех Сишников разбирают, остаётся только PHP-макака. PHP в данном случа можно заменить чем угодно, важно, что это более примитивный инструмент. И PHP макака идёт в шаурмячку. И так и рождается миф, что PHP для шаурм; другими словами, инструмент под задачу. В реальности инструментом является лоускил кодмакака. И под она берётся под сделать сайт шаурмы, и так уж оказывается, что она знает только PHP или какой-нибудь Хаскель
>Настоящему программисту вообще без разницы на каком языке писать
Нет. Писать на говне, когда есть не говно - существует только одна причина - ты раб, решение за которого принимают другие
P.S.
Про многопоточность тебе гопота выдала чушь времён десятых годов. В Nodejs есть все виды многопоточности. Ещё веселит словосочетание истинная многопоточность. Узрели ли ты её, принял ли в своё сердце; амен!
Вот это додичка конечно. Через докер на на говнохостинг ставить собрался. Еще советы давать итт кому-то пытается, лал.
Книжку то про апач дочитал?
А где вы такие заказы берете? Я за 8 лет вебмакакинга в нескольких галерах, в том числе на пыхе, ниразу не сталкивался с шаредхостингами.
мимо
Golang. На ПХП работа в основном состоит из говна типа 1с-битрикс, будешь потом жалеть что вкатился сюда
Проблемы с навыком.
>джуниор почти не берут
Да джуниоров никуда не берут на всех стеках, даже если есть джун вакансии там требования уровня олимпиадника. Битриксы, CMS - это тупик, никому не интересны скилы связанные с битриксом кроме битрикс-галер.
Сейчас тема крутить и залетать на мидла, там уже работу работать.
Наш университет каждый год выпускает 300 студентов айти специальностей (факультет математики, факультет информатики) и все они находят работу в айти. Разумеется после выхода из ВУЗа они не мидлы и не сеньёры, а джуны. И позиции джунов их и берут.
Если тебя скрипт для парсинга повесить и\или бота попросят ты идёшь целый сервер с докером разворачиваешь?
а как же Laravel, обязательно Bitrix ковырять или Wordpress?
Как получилось так что сервера нет? И в чем проблема взять впс за 400 рублей? На шареде ты никакого преимущества не получишь, одни только минусы из-за ограничений.
Парсинг это всегда заказ, никто без айти штата им самостоятельно не занимается.
Парсинг требует загрузки цпу. На шареде тебе просто пессимизируют быстро или вообще нхуй заблочат.
Нет ничего, чтобы не требовало поддержки. Поэтому если заказчик маленький, то закину бота на свой сервер и заключу договор об обслуживании.
Я скажу: старина, у тебя девопс есть, который за эту хуйню пол ляма получает. Вот кароч проект на гитлабе, как задеплоит пусть доступы к поду мне в слак скинет.
Шобы бабки за обслуживание бота получать по договору. Как ты налоговой обяснишь за что тебе ИП Кабанов переводы делает на расчетный счет. Ты можешь только той деятельностью заниматься которую в налоговой зарегал.
Чат жпт говорит что можно дропнуть главы "Digging Deeper, Testing
Packages, API Documentation"
Это правда что эти 4 главы можно дропнуть из этого списка с ларавел доки?
Prologue
Getting Started
Architecture Concepts
The Basics
Digging Deeper
Security
Database
Eloquent ORM
Testing
Packages
API Documentation
Или вы меня душнить сейчас будете? Что ой ты побоялся лишнюю главу прочитать! Как ты будешь жить? И в ойти работать? М? рид зе факин мануал? Да?
Для начала вот этого достаточно:
Architecture Concepts, The Basics: весь;
Digging Deeper: Helper, HTTP Client, Collection;
Security: Authentication, Authorisation;
Database: Getting Started, Query Builder, Migrations;
Eloquent ORM: Getting Started, Relationship.
Достаточно изучить*
Убейся.
Ты явно занимаешься какой-то хуйней. И дело даже не в тупорылых изъебствах с вручную созданной хеш мапой.
Твой знак плюса ничего никуда не прибавляет. В массиве $dolls всегда будут уникальные $dollId. Сумма не считается, ты по сути перезаписываешь значения в исходном массиве. https://3v4l.org/SvG3l
Ага, поэтому ничего сложнее интернет магазина на нём не делают)
А если делают, то потом плюются и переписывают поскорее
В голосяндру
Сейчас никуда не влезешь, вкат всё
>ничего сложнее интернет магазина на нём не делают
Финтех ещё делают, чмонь. Нахуй ты лезешь комментировать то, в чём не шаришь?
>Финтех ещё делают
Фух. Ну спасибо, отлегло. Если два каких-то долбоеба делают на пхп финтех, то это все меняет. Теперь когда буду рыться в хтмл говне очередного интернет магазина на битриксе буду об этом вспоминать.
>да вообще всё что угодно
А ты? Лично ты, что на пхп делаешь?
>Теперь когда буду рыться в хтмл говне очередного интернет магазина на битриксе
>А ты?
Ты совсем от стекломоя ослеп?
Допустим у меня есть модель с кучей зависимостей
В ларке мне предлагают через hasOne|hasMany->save()
их сохранить, но как-то же жестко новый запрос для всего делать, не? Или они внутри как-то оптимизируются потом и одним запросом в базу обращаются?
Думаю просто большой запрос ручками написать, но интересно узнать как делают обычно уверенные пользователи ларавеля
>уверенные пользователи ларавеля
Просто хочу разобраться, когда у тебя глаза не на залупе - это уже уверненный пользователь ларавеля или еще нет?
https://laravel.com/docs/11.x/eloquent-relationships#the-push-method
Роадмап по ПХП, столько лет мы его ждали и он наконец-то вышел.
Теперь можно и начать вкатываться.
https://roadmap.sh/php
В шапку треда
Я же говорил надо учить apache, nginx вон оно есть в роадмапе, а вы мне говорили шиз шиз
>Лично ты, что на пхп делаешь
Я делал финтех, эдтех, админку для игровой платформы и crm. Думаю научиться с видео работать теперь.
Так ты пожаловаться на жизнь в тред зашел, что ли, чмоня? На судьбинушку чмошную свою?
>Я делал финтех
Финтех, ну охуеть теперь. Название финтеха это конечно СЕКРЕТ? И вообще, жинтельмены верят друг другу на слово.
>Думаю научиться
Вкатун-фантазер не палится.
Сеньоры планируют "поучаствовать в проекте где..." или "устроиться в компанию где...".
Как обычно вкатуны не понимают что такое командная работа, как происходит разработка в команде и что знания тоже по большей части командные.
Шиз, ты же сам борщехлеб мамин. По твоим постам видно насколько ты токсичное говно. Кто с тобой работать будет? За неделю заебешь кого угодно.
Ты охуел, пес? Я в финтехе работал. И админку в црм делал. Сейчас планирую научиться хуем до потолка стрелять.
>финтех
Это все фигня. Как насчет босстеха? Сам придумываешь дизайн, сам придумываешь бизнес процессы, сам себе босс.
>The doctrine:mapping:import command used to generate Doctrine entities from existing databases was deprecated by Doctrine in 2019 and there's no replacement for it.
Какой же бред, какие ублюдки и садюки писали Doctrine ORM? Есть существующая база данных с данными, уже заполненная по сути, надо только сделать вебморду чтобы она рисовала все на САЙТИКЕ, по итогу мне придется щас 100500 таблиц вручную вводить? Чтобы потом у меня вся база данных по пиздец пошла из-за их миграций радикальных? Че происходит нахуй
>100500 таблиц вручную вводить
Ну напиши скрипт, какие проблемы? Заселекти ddl нужных таблиц и в цикле вызывай make:entity. Хуль там сложного?
И че, под каждый кейс скрипт писать? В БД же есть схема, зачем убирать работающий функционал? Может я чего-то не понимаю, думаешь я один такой? Я пока гуглил наткнулся на 5 тредов с такой же проблемой, причем за декабрь 2024, то есть достаточно свежие. Давно же могли сделать решение, ОПЕНСОРС ЖЕ
Ты пока гуглил уже бы все написал. Потому и нету, что все это за пять минут делается.
Полезен? Есть актуальные аналоги? Кто-то пользовался подобным?
Описание звучит многообещающе:
This library allows you to set breakpoints in your running application that conditionally capture local variable state, stack traces, and more.
это ребята с профильной вышкой, а не вкатуны с курсов или просто с видосов и скачанных книжек
а вы и дальше говорите что диплом не нужен
Не строки с цифрами, а до версии 7 кажется сначала складывал цифры приводя строку к числу, а потом конквтенировал к результату строку
Никак, вкат всё
Kotlin 8.4
Колесо сансары же.
Изобретают простой язык, чтобы было легче что-то делать.
Все с радостью делают что-то легче.
Потом всплывают проблемы и ошибки.
Их начинают устранять вводят типизацию, вводят плюшки.
Язык становится такой же сложный как и предшественники.
Изобретают простой язык, чтобы было легче что-то делать.
...
>написать одной строчкой прямо в конструкторе
>СЛОЖНА
>хуярить двести строк геттеров и сеттеров
>ПРОСТОЙ ЯЗЫК
Как называется эта болезнь?
Кто раньше писал геттеры и сеттеры для классов? В этом языке можно было просто писать разметку и вставлять обработчик поста с формы в этом же файле.
>Кто раньше писал геттеры и сеттеры для классов?
А кто НЕ писал?
В любом языке можно намешать шаблоны конфиги и логику в одном файле. Только причем здесь простота?
Видимо да, я не очень разбираюсь.
В xdebug есть возможность добавлять логи без рестарта все проекта и отправлять именно эти логи куда-то кроме консоли на сервере?
ну php реально бастард
столько сахару насыпали уёбищного
с какой перспективой ещё это говно учить?
Ну как бы четвертая версия пхп все еще в свободном доступе. Устанавливай, пиши кислый код без сахара. Раз язык тогда был такой простой, то ты по эффективности выебешь двух сахарных макак точно. Расскажешь потом сколько заработал. Будем тебе всем тредом завидовать.
https://www.youtube.com/watch?v=1XAbFkMaWxw
Какое будущее ждет PHP? / Валентин Удальцов / Организованное программирование / #14
Кирилл Мокевнин
да нахуй мне твой кирюша инфоциган
Кто все эти люди? Зачем ты этих дебилов сюда притащил? Кого волнует что там очередной инфоцыга несёт?
Допустим:
http://localhost/users/api/base1/ - выведет пользователей из базы 192.168.1.10:3306
http://localhost/users/api/base2/ - выведет пользователей из базы 10.0.253.30:3310
Базы одинаковые по структуре, но разные по содержанию.
Судя по тому, что высерают нейронки, в Symfony вообще не предусмотрен такой сценарий. Не существует ни какого Connection Provider который был бы настраиваемый и мог бы возвращать подключение, полученное разными способами.
Либо ты задаёшь подключение к одной единственной базе через окружение.
Либо ты настраиваешь в конфиге Доктрины работу нескольких Entity Manager, которые работают с разными Entity и при этом за каждым из них может быть закреплено разное подключение. Такой сценарий мне не подходит.
Ты на валю не пизди, козы плевок. Он контрибьютор языка и основа ру пхп комьюнити.
В доках ничего нет, кроме этого:
How to Work with Multiple Entity Managers and Connections
https://symfony.com/doc/current/doctrine/multiple_entity_managers.html
Этот варик я озвучил в посте, как не подходящий.
Нейронки получше знают документацию, чем я, поэтому проще у них спросить.
Валя, иди нахуй со своей рекламой.
Какой же охуевший долбоеб.
Не хочет нихуя знать и читать. И одновременно с этим, нихуя не зная и не читая, рассказывает че там в доках есть, а че нет.
Такому говну можно помочь только пинком под сраку. Че ты приперся сюда, если нейронки "получше знают документацию"? Пшел нахуй.
1) Где в MVC ты увидел упоминание Entity?
2) Где в Symfony ты увидел упоминание Model?
3) Где в Symfony ты увидел упоминание Entity?
Бонусный вопрос: где в Symfony ты увидел упоминание MVC?
Чел, я уже без тебя полностью разобрался в этом вопросе, прямо по сорцам Симфони и Доктрины. Как читается конфигурация, как создаются соединения и т.д. И сделал для себя опредлённые выводи. Ты просто балабол нулевой, лучше завались не говори вообще ничего, документацию ему почитать бля. Если не знаешь нихуя зачем ты вообще рот открываешь? Просто мимо пройди.
> Какая разница в MVC, например Symfony(я на ней сейчас пишу веб-приложение), между entity и model?
Никакой, Entity классы это и есть модель в классическом её понимании. Класс, который непосредственно представляет собой твои данные. Прям в буквальном смысле таблицу в базе.
> Например у меня есть entity Movie, в ней я создаю доп.методы, например, чтобы искать определенные вещи по ней, авторов и тд.
Это неправильно. Для различных запросов к базе, относящиеся к Movie тебе автоматически создан MovieRepository, это класс для запросов к базе, туда и помещай свои кастомные методы. Кароче представь что class Movie это твоя таблица. А class MovieRepository это класс запросов к этой таблице.
Но конкретно чтобы найти автора фильма, тебе ничего не надо писать. Если у тебя в фильме есть id автора, и у тебя таблицы фильм и автор связаны по внешнему ключу, то просто пишешь $author = $movie->getAuthor(); и у тебя в $author сразу будет не просто id автора, а уже соответствующая сущность, подгруженная из базы.
И че? Symfony создаёт для аппликухи в src в директории Entity эти самые Entities, ты если не писал на ней ничего, нахуй с советами лезешь?
Он доебался до тебя потому что Entity это часть Doctrine. А типа это независимый проект, который только используется Symfony, но не является его частью. А типа то что они создаются мейкером у тебя в Symfony проекте так оно и понятно, ведь Doctrine таким образом интегрирован в Symfony.
Чел. Ты понимаешь что доктрина и симфони это разные проекты, которые создаются разными людьми? Симфони ничего ни про какие энтити не знает и их не создает.
Если с этим разобраться, то правильный вопрос должен быть: почему в ORM Doctrine используется термин Entity, а в ORM Eloquent используется термин Модель. Спойлер: потому что так захотели авторы проектов. Они ни перед кем не отчитываются, как захотели так и назвали.
И второй вопрос: каким образом Симфони реализует идею MVC. И какие термины использует в этой реализации. Спойлер: не MVC.
Аноны как закрывать задачи быстрее? Вкатился совсем недавно и я ебаный тормоз вроде несложные задачи а времени уходит миллион особенно если надо сделать что-то новое а не править старое я уже боюсь что меня скоро пидорнут. Стоит ли трястись за скорость или забить хуй если претензий нет пока что
Ты должен говорить об этом с начальство и коллегами. Они должны понимать где ты завис, чё у тебя не получается, чтобы подсказать тебе и ты продолжил дальше.