Также, у нас есть задачи которые позволят тебе изучить или подтянуть до нормального уровня знания JS/HTML/CSS/SQL. Решай их параллельно с задачами выше.
- скачать учебник: зайди на https://github.com/codedokode/phpbook, нажми зеленую кнопку Code -> Download ZIP, распакуй на рабочий стол и открой index.html - что будут спрашивать на собеседовании, если 0 опыта - будут гонять по теории, по официальному мануалу PHP, давать дурацкие задачки на переворачивание строк, гонять по SQL (транзакции, внешние ключи, напиши запрос), по JS (как сделать анимацию при нажатии кнопки), ну погугли, не ленись - сколько времени надо изучать все это? - все зависит от тебя, в районе 10-15 месяцев
Подскажите, этот ваш ПХП вообще что-то актуальное или уже нет? Просто, яндексы вообще не учат на пыхеров, и даже не берут к себе с профилем по пыхе. Я просто присматриваюсь к программированию (платина, да) и ищу что попроще себе, поэтому интересуюсь.
>>3324308 >яндексы вообще не учат на пыхеров Так это как раз хорошо! Значит, меньше вкатунов с говнокурсов, меньше алгоритмического дроча, требований вышки, зарплат по 40к на старте и вот этого всего. К слову, говнокурсы яши (а с ними и скуфбоксов etc) нигде не котируются - яндекс сам своим хрюшам спускает инструкции отсеивать выпукников собственных курсов, потому что прекрасно понимает что торгует калом и прост прогревает лохов на бабки.
>>3324329 >яндекс сам своим хрюшам спускает инструкции отсеивать выпукников собственных курсов, потому что прекрасно понимает что торгует калом и прост прогревает лохов на бабки. Неужели нет человека внутри яндекс который сольет эти инструкции в сеть и разошлет вкатунцам отдавшим 150к за обучение🤣🤣🤣😂😂
>>3324308 >Подскажите, этот ваш ПХП вообще что-то актуальное или уже нет? Он будет актуален ещё лет 20 как минимум. В мире есть куча консервативных людей, которые как выучили jquery, php, mysql двадцать лет назад, они так и будут лет 20 его использовать, до 2044 года. И лично я не считаю пхп ужасным языком. Проблема не в языке. Проблема в мудаках-программистах и мудаках-заказчиках. Кто заказывает проекты на пхп? Мелкий бизнес в основном, каждый второй говномагазин в интернете написан на пхп. И разные далёкие от айти люди. Типа логических компаний, перевозчики, депутаты, государственные органы, косметологи, и прочее. Будет ли технологическая компания, которая прям живёт и дышит айти разрабатывать проекты на пхп? Да конечно же нет! Пхп нахуй не нужен яндексу, гуглу, амазону и т.д. Потому что он медленный и сфера его применения ограничена одним вебом. Стоит ли пхп учить на перспективу? Конечно же нет. Перспективы у языка нет никакой.
>>3324421 Лол, если на этот кал требуют два года опыта, то на остальные стеки даже смотреть смысла нет. Вкат в айти всё. Нужно вкатываться в рабочие профессии типа заводчан или сварщиков
>>3324437 >почему тогда у них на глагне написано что 100% помощь с трудоустройством после окончания курса у яндекса? Это просто маркетинговое наебалово. "Помощь" можно трактовать как угодно. Можно сказать вы подписались на наш список рассылки с вакансиями - это мы помогаем вам. Тоже самое, вкатываетесь или вернём вам деньги. Я могу статистически посчитать, допустим один из 5 не вкатывается. Ага, значит я могу повысить стоимость на 20% и я ничего не теряю, если верну этому чуваку деньги.
В любом случае, надо читать договор и мелкий шрифт. Наплести они могут что угодно.
>>3324453 >Ага, значит я могу повысить стоимость на 20% и я ничего не теряю, если верну этому чуваку деньги. Всё проще - требуем от вкатуна 10 письменных отказов, приносит - возвращаем деньги. Интересно, был ли хоть один прецедент возврата бабок за говнокурсы.
Наивный. Каждый залетающий в айти и этот раздел думающий что после курсов будет комо то нужен. Так вот, такого не было никогда, владельцы курсов просто продают лопаты во время местной залотой лихорадки, им вск равно на качество продукта. Привыкайте воспринимать курсы просто как интро к каком-то иеструменту, в любом случае будете 90% времени гуглить и учиться со стронних источников и доков, если конешно хотите в айти попасть.
>>3324629 Норм парни не кодят на пыхе из-под винды. Хотя когда я работал на битриксе, там опытные челы его использовали, потому что надо логиниться в учетки заказчика, а там свои впн настроены и клиенты ток под винду. Лучше потрать пару дней и попердолься с vagrant homestead.
>>3324629 В одной маленькой конторе использовали вагрант, ковырялись в конфигах сервера и работали с консолью, затем успешно мигрировали на докер. А вот в других "крупных" компаниях использовали open server. Причем даже было такое, что у одного опенсервер на апаче, а у другуг на нджинксе. >я говнокодер Ты лишаешь себя опыта работы с линуксом
>>3324724 >>3324667 >>3324664 >>3324646 Понял, короче будем думать решать как работать с линуксом, просто щас срочно понадобилось сайт создать и некогда было разбираться
>>3324734 Ну я с заделом на будущее. Пока просто не особо пазл складывается, хотя вроде знаю какая технология для чего, например редис, бд, ларавел, апачи, пхп, реббитмк, а как все это вместе сделать сложить и почему именно линукс понимания нет. Я так сказать неуспешный студент и вписался в проект один. Поэтому выбрал что то попроще по типу опенсервер где все уже есть
>>3324737 >и почему именно линукс понимания нет Хостинги на линуксе (если это не для .NET насколько я помню). Но пока нет доступа к терминалу, можно не заморачиваться наверное.
Потому что Windows Server в целом не очень. Для маленьких сайтиков он слишком сложный и обладает кучей корпоративных функций. Для больших сервисов он недостаточно свободы дает.
У него ниша это только "энтерпрайз .NET". То есть вы не айтишная компания, например крупная авиакомпания. И у вас есть собственное мега-приложение на .NET которое вы используете для автоматизации работы компании.
Вот тут виндосервер еще +- норм. Но опять же, не в российских реалиях.
>>3324453 >100% помощь Максимум разберут типичные вопросы с собесов и помогут с оформлением резюме, всё. По блату никого никуда не протолкнут. >>3324498 Всё так. Сам пробовал курс по питухону, это пиздец, никто вообще не понимал чё к чему, все повторяли какой то код за преподом как обезьянки, потом он по минимуму пытался объяснить что это всё значит и переходил к следующей теме. Тупо чел сидит на зп и ему срать какого качества кадры выпустятся с курса, задаёт алгоритмические задачи при том что алгоритмам даже не учит, они вообще не упоминаются на курсе, то есть он даже не вдупляет чему вообще учил и какого уровня знаний ожидать от людей. Пара дней уделяется ООП, столько же SQL, и сразу по программе приступаешь к Джанге с кашей в голове. Мм найс. Может в яндексе всё получше, учитывая что там годовая программа, хз.
>>3324737 Если только вкатываешься то опенсервер норм.
В тот момент, когда ты поймёшь, что пердолинг с виндой в попытках завести очередную хуйню начинает занимать слишком много времени, спокойно перекатишься на Линукс. Убунта казуальнее некуда.
Для более-менее серьёзной разработки Линукс необходим. Винда слишком херово работает под веб парашу.
И это говорит тебе убеждённый хейтер красноглазой недосистемы.
>>3327502 > В тот момент, когда ты поймёшь, что пердолинг с виндой в попытках завести очередную хуйню начинает занимать слишком много времени, спокойно перекатишься на Линукс АХАХАХАХААХАХАХАХА
>>3324202 (OP) 1) Есть еще какие-нибудь ресуры, где помогают реализовать свой pet проект? 2) Какие самые понятные ресуры для полного понимая MVC и SOLID, чтобы хватало на проекты и собеседования? 3) Есть какой-нибудь понятный курс для изучения алгоритмов (желательно с применением PHP)? 4) Как быстро освоить книгу Чистый код Душного Боба? 5) Какие курсы или ресуры посоветуете для изучения английского
>>3328480 1-4 - подписка на Хекслет за 4к в месяц, лучше по пыхе ничего нет, там как раз разбираются все эти штуки + книга ACWA Book Adel F. 5 - хз это в /fl/
>>3328209 Первое что бросается в глаза: используется композер, прописан автолоад, но какого-то хуя везде все равно include и require. Разберись как работает автозагрузка наконец.
Второе это классика: вся хуйня со всей хуйней. Вот есть у тебя файл file.php Там внутри внезапно нихуя не file, а FileHandler что бы это не значило. Который делает кучу какой-то хуйни, рисует какие-то теги, за каким-то хуем лезет в базу и поет и танцет и кофе варит. А самое главное там в конце файла прописан какой-то код, который дропает все приложение и чем-то срет в буфер вывода.
Ну тебя самого то не смущает что при подключении файла с названием file у тебя приложение работу завершает? Я уж не говорю про file_list в котром уже какой-то свой хэндлер и внезапно появляется класс File. Какого хуя FIle не в file, а в file_list - загадка.
Выглядит типичный говнокод на пхп пятнадцатилетней давности. Это даже не процедурное программирование, а какое-то полускриптовое, я хуй его знаю. То что там какие-то классы используются погоды не делает, они все равно хранятся в каких-то глобальных переменных, а вместо функций используется подключение файлов.
1. Надо изучить как пишутся ооп приложения на пхп, как работает автолоадинг, как пишутся и используются классы итд. 2. Надо разобраться как пишутся сайты. Как создать конфиг, что такое роутинг, про Index.php итд. 3. Надо наконец узнать что такое MVC и привести в минимальный порядок кодовую базу. Дальше еще пунктов до тысячи. Но начать нужно с этих трех.
>>3328480 >1) Есть еще какие-нибудь ресуры, где помогают реализовать свой pet проект? >2) Какие самые понятные ресуры для полного понимая MVC и SOLID, чтобы хватало на проекты и собеседования? >3) Есть какой-нибудь понятный курс для изучения алгоритмов (желательно с применением PHP)? >4) Как быстро освоить книгу Чистый код Душного Боба? Не, братан, ниче больше нет во всем интернете. Все сами тыкаем вслепую.
Посоны, какой компонент норм для раскидывания загруженных файлов по папкам?
Типа загружается файл -> хешируется, на выходе сохраняется в папки и вложенные папки (чтобы ФС не охуевала от количества) -> uploads/dfdf/dfdf/vbvbcv.jpg
Нашел в телеге группу пхпшников, а там продакт менеджеры, проект менеджеры, системные аналитики и киберскоттеры обуждают лут с кс и ставки на доту. Вот у нас вроже бы срач, но все равно на древнегреческие симпозиумы походит.
>>3329994 Ну если ты планируешь там держать больше 10к файлов, то наверное и стоит замарочиться. Я бы архивиро архивированием.
>>3329910 >>3329985 Так коллизии именно то что и нужно. Берется хэш от содержимого файла. Это и будет его название. Потом этот файл ищется в структуре, обычно это двойная вложенность по первым буквам /ab/cd, но если планируются миллионы файлов то можно сделать тройную. Если файл с таким названием уже есть, то сравниваем тело файлов и в 99.999% случаев это дубль.
Какой нахуй цикл? Мы тыкаем в то место где должен храниться новый файл и проверяем занято ли оно.
>>3330100 >Какой нахуй цикл? Мы тыкаем в то место где должен храниться новый файл и проверяем занято ли оно. Это прикол? Ты проверяешь - он есть. Далее пересоздаешь - такой тоже есть. Твои действия без цикла? 10 раз if else бужешь писать, если есть то пересоздать имя?
Мой же вариант - цикл, сохранили -> break; или повторно создаем имя которого нет в папке
>>3330108 Бля, ты рофлишь? Если это один и тот же файл, та каким хуем он два раза будет в твоем хранилище? Хэш берется ОТ ТЕЛА ФАЙЛА БЛЯДЬ, он не случайный.
>>3324351 >В мире есть куча консервативных людей, которые как выучили jquery, php, mysql двадцать лет назад, они так и будут лет 20 его использовать, до 2044 года. Дело даже не в этом, дело в том, что создано дохуя легаси которое надо поддерживать и развивать. Да и инструментарий стал настолько хорош, что на пыхе современной с совреенными фрейворками тупо быстро и удобно разрабатывать проекты типовые. Берешь условный Laravel и поехали.
>>3328552 >Выглядит типичный говнокод на пхп пятнадцатилетней давности То ощущение когда я вижу код худшего качества, который был написал американцем менее 10 лет назад для крупной компании кек.
>>3330225 >>3330247 Да нет, просто так существует жизнь вне айти-компаний. Это хэлскер и образование, у них айти тема это просто инструмент, работает и слава богу. Васян пришел считай нубом к ним, делал у них считай всё что надо, опыта не было, скиллов не было, хуяк-хуяк и клепал, а хуле работает, задачу выполняет. Зашквары там конечно были, вроде плэйнтекст паролей в БД и т.п., но в целом почему нет. У меня конечно глаза на лоб немного вылезли, поэтому мы им по чуть-чуть переписывали самый зашквар и более нормальные подходы внедряли.
У меня одного ощущение что ебаные исключения - это говно и ненужный рак? Серьезно, по факту это сраный goto хуй знает куда.
Если ты (или библиотека которой ты пользуешься) пробрасываешь исключения грамотно, то есть свой тип исключения на каждую возможную проблему - у тебя уродуется код, половина логики переезжает в блоки catch. Если же исключения кидаются хуй знает как (99.9% всех библиотек), то и обработать их ты нормально не можешь, и все что тебе остается - оборачивать код на самом верхнем уровне просто для того, что бы отдавать клиенту не 500 ошибку, а 400.
Проанализировал свой опыт. Сколько раз у нас были проблемы от того, что мы не перехватывали исключения, а прямо и открыто хуярили юзеру 500 ошибку в ебало? Да на самом деле нисколько, лол. Дело кончается визгами менеджеров и оперативным фиксом проблемы. А вот попытки ОБРАБАТЫВАТЬ исключения рано или поздно кончаются тем, что ты проблему скрываешь, но не решаешь. И вот в таких случаях всплывают уже косяки такого уровня, при которых тимлида ебут, а разрабов пиздят арматурой.
Годтир решения - на одном из проектов мы перешли на пробрасывание по методам дтошек, которые содержали в себе статус операций, массив ошибок если есть, массив соообщений если есть. И это было супер пиздато. Ловкой исключений занимались только там, где были уверены что это необходимо и мы этой ловлей делали что-то полезное и нужное,.а не заметали проблему под плинтус.
>>3330122 Мы вообще про разные подходы говорим, ты свое думаешь, я свое. Надо изначально было писать - для чего. А не додумывать что вот у него так как у меня. - это правило нужно внедрять всем программерам чтобы не плодить лишние разговоры и недопонимание.
Мой вариант просто сохранять файлы, если удаляешь пост, то все удаляется без лишнего кода и напряга что затронет что-то другое.
Твой вариант файл строредж для хостинга, чтобы экономить место на диске, но дрочить процессор. Вычисления хеша файлов очень долгая операция. Если есть 7zip архив, сам проверь, там в контекстном меню будет вычисления crc32 + будет хуево если популярный сервис куда дохуя че заливается и нужно думать как все делать асинхронно для обработки, очереди подключать, логику разруливания мол если Вася удалит пост, то общий файл не удалять.
>>3330647 >Мы вообще про разные подходы говорим Ну если ты называешь подходом "насрать хуйней", то да. Я говорю как сделать нормально.
>Мой вариант просто У нас разные понимания о простом. Чтобы сделать все по уму нужно написать небольшую либу из нескольких классов. Это для программиста минимальные усилия, делается за пару часов. Я хуй знаю куда еще проще. Запихнуть это все в одну функцию, которую вклячить где-нибудь прямо в шаблоне посреди хтмл?
>Твой вариант файл строредж для хостинга, чтобы экономить место на диске, но дрочить процессор. Вычисления хеша файлов очень долгая операция. Ну и нахуя ты начал кукоретизировать если нихуя в теме не шаришь? Вычисление хеша будет твоей самой меньшей проблемой при большом потоке файлов и нагрузке.
Короче как всегда. Написать нормальный код это сложна. А маняфантазировать про то как оно "если популярный сервис" легко.
Ты же думаешь что ты обладаешь авторитетом и твои слова теперь нужно воспринимать на веру?
>кукоризироваться >не шаришь >маняфантазии Очередной петух ЧСВ-шный, который в реальности смотрит всегда в пол, прячет глаза и боится людей в реале, чтобы по ебалу не получить ненароком, сейчас же, сидя в безопасности расписывает тему на 10 постов с целью самоутвердиться хоть где. Вместо того чтобы написать верный путь в качестве одного ответа, он плодит посты как хуесос и выебывается наслаждаясь что гандона вынужденно терпят - Да пошел ты нахуй чмошник.
Адеватный люди либо не отвечают, либо отвечают сразу и не сосут внимания на 10 постов попутно говоря что ты хуесос. Это как ученик приходит учится водить машину, а инструктор вместо того чтобы показать как - хуесосит его. Так вот нахуй иди потомок гнилозубых крестьян, шариков ебаный. Бля, будет бизнес, с русскими работать не буду. А то как же свое ВЕЛИЧИЕ не продемонстрировать, не самоутвердится за счет другого, нахуй иди пидорас
>>3330866 Ебать там насрано в башке. С такими вводными надо не в пхп вкатываться, а на прием к психологу. С пассажа про крестьян, бизнес и величие прогиграл.
Симфонисты в чате есть? Когда оправдано использование событий, какие обработчики разумнее навесить на события? Когда работал на прошлом проекте, при создании сущности было нахуеверчено несколько обработчиков, которые ходили в сторонние сервисы и что-то писали в базу. Заебался это говно отлаживать. Какие нормальные юзкейсы есть?
>>3335364 А причем тут симфони? Как событийная модель связана с фреймворком?
Событийная модель нужна чтобы избегать прямых вызовов. Чтобы не было кода типа: сделай это, потом вот это, потом вот это, а потом еще то. Потому что это излишняя централизация, точка пересечения всего на свете и генератор багов.
Событие это результат выполнения чего-то. Доменное событие - это результат выполнения метода доменной модели. Системное событие - это резултат обращения к методу апи или контроллеру. refreshCart() -> CartRefreshed, createOrder() -> OrderCreated.
Юзкейсов для этого миллион. По сути весь CQRS, всё DDD и микросервисы так работают. В статью не уместится объяснение как это правильно организовывать и почему. Это надо серию лекций проводить. Объяснять что такое юнит оф ворк, про два эвент лупа итд.
Тут скорее вопрос какие такие проблемы с отладкой? Включил дебаггер, поставил брейкпоинт в нужном обработчике, дернул апишку через постман или форму в браузере отправил. Ну или в нужных обработчиках логи подрубил и все. Какие проблемы?
>>3335364 >Когда оправдано использование событий Почти никогда >Какие нормальные юзкейсы есть Когда лень думать над потоком выполнения данных -- пукнул в кафку и забыл
>>3335671 >Нужно ли попробовать свой фреймворк создать перед работой с другими? А зачем? На работе ты все равно будешь работать только с ларкой или симфонией. Как работает mvc надо знать, в вакухаа часто встречается такое требование, но с этим разберешься по ходу изучения существующего фреймворка. >>3336179 Я лично понял, уделив пару недель чтобы вникнуть. Они напрямую из изучения ооп вытекают как и солид, и грасп, эти темы неотрывны друг от друга. Не понимаю, как можно обходить эти темы при вкате. Это же маст хэв.
>>3336352 >из изучения ооп вытекают >грасп >Я лично понял, уделив пару недель И сразу ясно что ты нихуя не понял. Грасп это сборник паттернов аля GoF. Только крайне неудачный. Навыдумано куча не прижившихся теминов для уже устоявшихся вещей. Перепутанны паттерны с принципами. Все это полито хуевым слогом автора и хуевыми же переводами из девяностых. Интерес это представляет чисто археологический. И уж совершенно точно ниоткуда не вытекает и никуда не втекает.
>>3336363 >Грасп это сборник паттернов аля GoF. Грасп это не "шаблоны" буквально, просто так назвали, а скорее "принципы", - это слово больше подходит, - такие как солид - как разделять ответсвенность между классами при проектировании. В нем хотябы эти 2 высокое единство и низкое зацепление напрямую проистекают из приинципа единой ответсвенности и инверсии зависимостей.
Паттерны банды четырех, у меня сложилось впечатление, практически все solid'ные [по крайней мере из примеров на рефакторинг гуру], это действительно "паттерны", а не это грубое слово "шаблоны": фабрики, адаптеры, это все добро ты пишешь и без знания как они именуются, но знать бы хорошо. Кроме банды 4х еще есть другие такие как Спецификация, null object, текучий интерфейс.
>И уж совершенно точно ниоткуда не вытекает и никуда не втекает. Как же - вся эта ооп хуйня взаимо переплетена, логикой и здравым смыслом, даже многослойная архитектура, ddd, например, то что зависимость слоев должна быть внутрь. Это помогает писать понятный хорошо поддерживаемый код.
Разве я где-то ошибся, не нужно это знать вкатуну? Просто в вакансиях вижу часто, значит есть причина, по которой это туда записывают.
>>3336408 >Грасп это не "шаблоны" буквально, просто так назвали, а скорее "принципы" Пчел. Хватит гадать и фантазировать. У этой хуйни есть конкретный автор - Крейг Ларман. У него есть конкретная книга. Книга хуевая. Че ты тут раскумариваешь вилами по воде?
>Паттерны банды четырех, у меня сложилось впечатление, практически все solid'ные Опять, нахуя с умным видом че-то из пальца рассусоливать? Год выпуска книги 1994. А значит она основана на опыте ДО 1994 года. Никакими солидами еще лет десять вонять не будет.
>Как же - вся эта ооп хуйня взаимо переплетена >даже многослойная архитектура, ddd, например, то что зависимость слоев должна быть внутрь Просто чушь написана. Внутрь чего блядь? Снаружи чего? Ты просто определение "слоя" можешь сформулировать?
>Это помогает писать понятный хорошо поддерживаемый код. Формальные доказательства этому какие-нибудь есть? Вот и думай.
>Разве я где-то ошибся, не нужно это знать вкатуну? Просто в вакансиях вижу часто, значит есть причина, по которой это туда записывают. Потому что хотят сеньора по цене вкатуна. А получают человека, который начитался всего подряд и следующие десять лет будет эту информацию в башке систематизировать, производя километры говнокода. В лучшем случае разумеется. В худшем будет просто срать говном и в бороду не дуть.
>>3336477 >Хватит гадать и фантазировать. У этой хуйни есть конкретный автор - Крейг Ларман. Я чё, ебич книги читать? Лучше тикток короткие статьи посмотрю, видосы в ютубе, да чат гопоту подрочу. Меньше времени и мозговых усилий. > Год выпуска книги 1994. Я их везде вижу, эти билдеры, адаптеры, фабрики. Что ты имеешь ввиду? >А значит она основана на опыте ДО 1994 года. И что с того? Законы гравитации открыты Ньютоном в 1666 году. >Внутрь чего блядь? Снаружи чего? Зависимости классов в каждом слое должны быть направлены внутрь. - Слой представления или слой интерфейса (слой UI, UIL, пользовательский интерфе́йс, уровень представления в многоуровневой архитектуре) - Слой приложения (сервисный слой, сервисный уровень) - Слой бизнес-логики или доменный слой (слой предметной области, BLL, доменный слой) - Слой доступа к данным или слой инфраструктуры (слой хранения данных, DAL, слой инфраструктуры; логирование, сетевые взаимодействия и другие сервисы, требующиеся для поддержания конкретного слоя бизнес-логики). Слой это логический уровень, который выполняет строго определённые функции и изолирован от других слоёв, чтобы обеспечить модульность, читаемость и переиспользуемость кода. Каждый слой отвечает только за свои задачи и общается с другими через четко определенные интерфейсы. Зависимости должны быть направлены внутрь и это согласуется DIP. По уровню вложенности центральный слой - бизнес-логики(домейнс). Он же одновременно самый абстрактный (абстракция ооп), автономный и не зависит ни от чего. Слой инфраструктуры зависит от слоя приложения и бизнес логики(доменного слоя) Слой приложения от слоя бизнес логики. Слой презентации/интерфейса самый внешний. Презентация обращается к Application Layer, он обращается к слою бизнес логики, имплементацию которого мы делаем в слое инфраструктуры. Связываем короче с фреймворком и библиотеками. Эта вся архитектура опирается на ооп принципы, солид, грасп и прочую хуйню, вероятно о которой я еще не знаю. Оно все взаимосвязано, понимаешь? >Формальные доказательства этому какие-нибудь есть? Например, если меняется технология базы данных (например, с MySQL на PostgreSQL), изменения вносятся только в Infrastructure Layer, не затрагивая доменную логику. Проект с разделением слоёв требует меньше времени на адаптацию, так как центральные модули во внутренних слоях остаются неизменными. Модульность, переиспользуемость, расширяемость, меньше времени на адаптацию посторонних. В случае говнокода, все наоборот. Разумные люди все эти принципы вывели! > следующие десять лет будет эту информацию в башке систематизировать Я всё систематизировал, успокойся, братишка. Просто выделил место и время чтобы вникнуть. Может еще расписать именно какие классы в каком слое писать, какие классы фреймворка соотвествуют слоям? Мне не лень, правда интересно.
>>3336491 >Слой это логический уровень, который выполняет строго определённые функции и изолирован от других слоёв, чтобы обеспечить модульность, читаемость и переиспользуемость кода. Водянистая мокрая вода с точки зрения банальной эрудиции. Где у слоя верх, а где низ? Вот я добавляю в мое приложение слой "похуйструктуры", куда у него внутрь смотрит, а куда наружа?
>Зависимости должны быть направлены внутрь и это согласуется DIP Вот есть сервис "календарь" и сервис "часы". Кто от кого зависит и кто направлен внутрь?
>В случае говнокода, все наоборот. Ну я тебя и спросил: есть этому какие-то доказательства кроме "траст ми бро"? Пикрелейтед тоже умные люди писали, модульно и понятно с первого взгляда, а если че-то надо поменять... кайф.
>Я всё систематизировал, успокойся, братишка. Оно и видно. Хуйню несешь с вдохновением, СИСТЕМНО.
>Может еще расписать именно какие классы в каком слое писать, какие классы фреймворка соотвествуют слоям? Кароч квадратные классы пиши в верхнем слое, чтобы с крыши не скатились. А круглые в нижнем, чтобы пружинило. Ты че-то такое хотел увидеть? Ты как вообще классы друг от друга отличешь? Что значит "какой" класс? Че в нем особенного?
>>3336503 >Где у слоя верх, а где низ? Верх - ближе к клиенту. Низ - ближе к фреймворку, внешним библиотекам, базе данных. Они в разных местах по разному называются, я пишу их через слэш чтобы было понятно что это одно и то же. Слой интерфейса/презентации самый верхний, тут контроллеры, artisan команды, вьюхи. Слой инфраструктуры - самый нижний. Тут происходит реализация интерфейсов, наследование, композиция из верхних слоев чтобы связать абстракцию с реализацией. Критерий отделения - ответственность. Если у тебя модель элоквент инжектится в контроллер напрямую, то тут слои смешиваются. То же самое касательно отдельно взятых классов. Ответственности: - Слой интерфейса/презентации отвечает за взаимодействие с пользователем, не более. - Слой приложения(application) чисто координирует классы из слоя бизнесс-логики/доменной логики. Не более. - Слой бизнесс-логики/доменный слой - > Вот я добавляю в мое приложение слой "похуйструктуры" Полагаю, ты можешь условно нарезать лишь существующие 4 слоя на подслои. Потому что они исчерпывают вопрос полностью. На пике 1, например, бизнес слой это слой application + domain слой, а persistence и database это слой инфраструктуры. Я хз по какому критерию они здесь нарезаны. >Вот есть сервис "календарь" и сервис "часы". Кто от кого зависит и кто направлен внутрь? В слое бизнес логики у тебя абстрактный календарь. Его можно бесконечно делить на подсущности (по необходимости), а можно сделать эти подсущности/Value Objects просто полями сущности. Например таймстемп класс может быть поделен еще на value object'ы здесь - дата, время, секунды, etc. Что описывает слой доменов/бизнес-логики конкретно? Он выполняет конкретную работу. Слой доменов не знает о внешнем мире. Если конкретно понятие "доменный", а не бизнесс-логики, то он выполняет атомарные операции над классами-сущностями домена, которые тоже лежат в в слое доменов. И бизнесс-правила - как они должны обрабатываться, не зависимо от фреймворк-специфичной хуйни. И эти классы, что выполняют конкретную работу в более абстрактном доменном слое "связываются" с фреймворком, внешними библиотеками через слой инфраструктуры (реализация интерфейсов, наследование, композиция), понял? Слой приложения более верхний к пользователю собирает в себе эти атомарные операции в сценарии/экшины и координирует. Слой интерфейса чисто взывает эти сценарии. Отсюда правило что контроллеры должны быть "тонкими." Вернемся к календарю. Роадмап как проходит процесс через слои. Слой интерфейсов: Ты нажимаешь кнопку "назначить встречу", это отправляется реквестом, оборачивается фреймворком в объект форм реквест. Слой приложения: Далее вызывается событие/сценарий/экшин/похуй "НазначитьВстречу". В него импортируются классы из слоя бизнесс-логики/доменного. Эти классы атомарны, здесь они все связываются по "идеи" того что происходит, круд операции, рассылка, синхронизация между календарями. Слой домена/бизнес логики Здесь переводится из человеческого языка и понятий (Ubiquitous Language) в классы. Слой инфраструктуры: Классы домена/БЛ абстрактны, здесь они связываются через сервис провайдер с их реализациями. Реализации тоже здесь. Напомню, что структура папок !== архитектуре. >Оно и видно. Хуйню несешь с вдохновением, СИСТЕМНО. Я так и не понял твой доеб. Все объясняю как я понял. >Ты че-то такое хотел увидеть? Ты как вообще классы друг от друга отличешь? Что значит "какой" класс? Че в нем особенного? Неясен вопрос. Может быть переменнная, может быть массив, может быть трейт, ватэвер.
>>3336911 > - Слой бизнесс-логики/доменный слой - Недописал здесь, но дописал дальше по тексту: >Здесь переводится из человеческого языка и понятий (Ubiquitous Language) в классы.
>>3336634 > А что может быть креатором, который в граспе? Сервис, репозиторий или активрекорд/елоквент? Все верно. Отличие от фабрики из GoF - в том, что оно хранит в себе создаваемые объекты, чисто фабрика занимается только генерацией.
>>3336911 >Потому что они исчерпывают вопрос полностью. Ну так хули ты тогда тут воду льешь? Верх, низ, ебало умное делаешь. Заучил как дядя сказал и все. Какая разница где там верх, а где наружа, если это ригидная не изменяемая структура, котрую нужно просто принимать целиком как должное, просто потому что?
>Налил какой-то воды про сущности хуючности >Начал про календарь, закончил тем что контроллеры долджны быть тонкие. Пчел. Чтобы вычислить правильное время нужно знать какое сегодня число. А чтобы узнать какое сегодня число нужно знать время. Кто от кого зависит? Кто куда направлен? Ты в двух сервисах запутался? Меньше некуда, вопрос предельно простой.
>Неясен вопрос. Может быть переменнная, может быть массив, может быть трейт, ватэвер Это твой вопрос не ясен. Ты спросил "какие классы в каком слое?". Это бессмыслица. Что блядь значит какие? Они что в разных "слоях" разные что-ли? В одном трейты, а в другом "переменные"? А в третьем что круглые блядь? Класс - это структура языка. Ты же не пишешь в одном обзаце предложениями, а в другом сказуемыми. Не пишешь же? Вопрос риторический. Не надо его сводить к слоям и высирать жпт пасту на страницу.
Короче эта дискуссия утомляет. Напоминает анекдот про студента на экзамене по зоологии, который выучил только про блох и ебет мозги преподу.
>>3336932 >это ригидная не изменяемая структура Нет, почему? Можно сливать слои вместе, если не нужна высокая абстракция, можно разделять эти слои на подслои. >нужно просто принимать целиком как должное, просто потому что Не обязательно. Тогда не будет всех преимуществ solid и многослойной архитектуры. >Чтобы вычислить правильное время нужно знать какое сегодня число. А чтобы узнать какое сегодня число нужно знать время. Запросы и команды это 2 разных экшена, относится к слою приложения, из принципа CQR. Я описал команду "назначить встречу". Описать как происходит получение времени (запрос)? То же самое, только возвращаются данные. >Кто от кого зависит? Кто куда направлен? Зависят - слои. Абстрактные от реализаций. Конкретное выражение - в классах. Как выражается - DIP. Как связываются - через наследование, композицию, агрегацию, сервис-контейнеры. >Ты спросил "какие классы в каком слое?" Это бессмыслица. Что блядь значит какие? Они что в разных "слоях" разные что-ли? Конечно. >Класс - это структура языка. Ну ок. Ты не поверишь, но функциями тоже допустимо реализовать многослойность. >Напоминает анекдот про студента на экзамене по зоологии, который выучил только про блох и ебет мозги преподу. Ну так а что я не учёл, может скажешь мне? Будь няшкой. Я буду благодарен, потому что только начал изучать всё вышеперечисленное. Возможно у меня в голове на самом деле каша и/или пробелы в компетенции и знаниям. Со стороны виднее. А возможно что ты просто доёбываешься до ответов, спор ради спока, ибо я под твоими вопросами не улавливаю объеденяющего ничего. Ты бака или няша?
>>3337006 >Нет, почему? Может потому что ты так и не смог найти место новому слою в этой структуре?
>Тогда не будет всех преимуществ solid и многослойной архитектуры. И хуй стоять не будет, и деньги из дома уйдут.
>из принципа CQR Все бля смешал. Пиздец просто. Без DDD и CQRS не разобраться какой из двух сервисов от какого зависит. Но ответа так и нет. Через пару постов выяснится что надо коллайдер строить чтобы это вычислить.
>Зависят - слои. Абстрактные от реализаций. До этого угарали над абстрактными фабриками интерфейсов. Щас будем угорать над абстрактными слоями. Слой календаря и слой часов. Абстракный. Как выражается - DIP. Как связываются - через наследование, композицию, агрегацию, сервис-контейнеры. В народе — колхозник. В магазине — продавец. В экономике, так сказать, необходим. ШИЗОФАЗИЯ.
>Они что в разных "слоях" разные что-ли? >Конечно. В одном классе методы курсивом написаны, а во втором задом наперед?
>Ну так а что я не учёл, может скажешь мне? Будь няшкой. Я буду благодарен, потому что только начал изучать всё вышеперечисленное. Код забыл написать. Забить башку хуйней - забил. А написать реальный код, чтобы увидеть как этот мусор с реальной жизнью соотносится - забыл.
>>3337018 Давай включим счетчик дебила. >Может потому что ты так и не смог найти место новому слою в этой структуре? Ты дебил, потому что я уже говорил, что их можно только на подслои поделить условно и их делят кто по какому критерию хочет. Как ты более конкретно ниже инфраструктуры опустишься, шизик? Что это за слой будет, приведи пример? Это физически и логически невозможно. Или выше слоя интерфейса? Чтение мыслей пользователя? Нейролинк? Это будет тот же слой интерфейса. Поделить существующие слои - да. Разделить по каком-то другом критерию ответственности - да, но это будет за рамками сабжа, о котором сейчс речь. Поэтому здесь вывод очевиден - ты дебил. >Все бля смешал. Ты дебил, потому что я несколько раз говорил, что эти все принципы взаимосвязаны. Что тебе еще не ясно? Ну можешь вместо запросов и команд назвать блять как хочешь, сервис, не пользуйся CQRS. Но суть его от этого не поменяется. Вывод здесь - ты дебил, потому что игнорируешь факт что все взаимосвязано. Аргументов против не услышал. >ШИЗОФАЗИЯ Да-да, держи в курсе. >В одном классе методы курсивом написаны, а во втором задом наперед? Чё сказать то хотел? >>3337006 > Ну так а что я не учёл, может скажешь мне? На вопрос ты не ответил, значит я не ошибся, ты дебил, критикующий ради критики. Спор ради спора. С твоей стороны аргументов нет, только >пук. Я аргументы привел, почему все эти принципы взаимосвязаны и почему их нужно использовать. > А написать реальный код, чтобы увидеть как этот мусор с реальной жизнью соотносится - забыл. Говнокодера порвало. Какой у тебя стаж говнокода? Дебил, ты проигнорировал аргумент про говнокод. Итого, ты заработал очков дебила: 4. В следующий раз уже постарайся!
Смысла продолжать не вижу, пользы от тебя и разговора с тобой никакой, пошел нахуй.
0) Что такое слой? Ответа нет. Налито воды что стой это кароч классы. Почему один класс в одном слое, а другой в другом? Ответа нет. Как глядя на класс определеить в каком он слое? Ответа нет.
1) Как определить куда добавить новый слой? Ответа нет. Есть какая-то залупа про подслои. Но даже рассказать что мы отслаиваем: низ вернего или верх нижнего ты не в состоянии.
2) Как определить какой из двух сервисов от какого зависит? Ответа нет. Есть охуительные истории про то как все взаимосвязано (ноу щит шерлок, это в вопросе написано) и на кой-то хуй приплетено CQRS.
3) Выдан тезис что в разных слоях классы написаны по разному. Объяснений нет. Ну по разному епты. Как по разному и что это вообще означает ответа нет.
Ну и разумеется именно меня порвало. И разумеется именно я не смог внятно ответить на вопросы. И именно я в бессильной злобе послал собеседника нахуй.
>>3337108 >Что такое слой? Я тебе ответил здесь: (>>3336491) >Слой это логический уровень, который выполняет строго определённые функции и изолирован от других слоёв, чтобы обеспечить модульность, читаемость и переиспользуемость кода. ----- >Как глядя на класс определеить в каком он слое? Ответил здесь: (>>3336911) >Критерий отделения - ответственность. ----- >Как определить какой из двух сервисов от какого зависит? Ответил здесь: (>>3336911) >И эти классы, что выполняют конкретную работу в более абстрактном доменном слое "связываются" с фреймворком, внешними библиотеками через слой инфраструктуры (реализация интерфейсов, наследование, композиция), понял? И здесь: (>>3337006) >Зависят - слои. Абстрактные от реализаций. Конкретное выражение - в классах. Как выражается - DIP. Как связываются - через наследование, композицию, агрегацию, сервис-контейнеры. ----- >Выдан тезис что в разных слоях классы написаны по разному. Глупый вопрос, ибо ответ очевиден и вытекает из вопроса про разделение слоёв. Или не очевиден? Дебилы просто мыслят квадратными, круглыми, курсивными классами, отсюда и желание приводить подобные аналогии, правильно понимаю? ----- >И разумеется именно я не смог внятно ответить на вопросы. Какие вопросы, такие и ответы. ----- >Налито воды что >И именно я в бессильной злобе послал собеседника нахуй В текст нужно вникать, для начала, тогда не будет вопросов про воду и как один ответ связан с другим. Не удивляйся, почему ты послан нахуй.
>>3337108 Вот, точно про тебя описано, слово в слово ситуация итт. Без обид, братишка. 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 >При нерезко выраженной дебильности ребёнок может ничем внешне не отличаться от сверстников. Сохраняются механическаяпамятьиэмоционально-волевая сфера. Внимание очень трудно привлечь и фиксировать. Запоминание замедленно и непрочно. У них преобладает конкретно-описательный тип мышления, в то время как способность кабстрагированиюпочти отсутствует. Тем не менее они могут формировать простейшие обобщения. Для них составляет трудность охватывание ситуации целиком, и обычно они улавливают только внешнюю сторону событий. Сложно воспринимают логические связи между предметами, понятия «пространство», «время» ит.д. Часто встречаются нарушения речи (отстаёт в развитии, искажение звуков, нарушения грамматического строя речи, скудныйсловарный запас). Хотя может быть и достаточно большой словарный запас, но речь при этом всё равно бедна и однообразна. Обычно не могут пересказать прочитанное, услышанное. Однако некоторым дебилам при задержке общего психического развития и малой продуктивностимышлениясвойственна частичнаяодарённость(вплоть досиндрома саванта): отличная механическая память (без осмысления повторяемого), способность производить в уме сложныеарифметические операции, умениерисовать,абсолютный слухи др.При более тяжёлой степени олигофрении (имбецильности) одарённость также встречается.Эмоциипреобладают актуальные на данный момент. Действия не целенаправленны, импульсивны, развитнегативизм.
>>3337118 >Слой это логический уровень, который выполняет строго определённые функции и изолирован от других слоёв Сепульки. Ты просто подменил термин. Слой - это логический уровень, а логический уровень - это слой. Слой - это когда слой отделен от других слоев. Слой - это когда слои.
Чел, это софистика. Причем топорная. Никакой ценности такое определение не несет. Из него нет никаких формальных следстий. Высрешь таке на собесе - отлетишь обратно в пицценосцы мгновенно.
>>3337138 Ну давай разберем по частям тобою написанное. >Ты просто подменил термин. >Чел, это софистика. >Слой - это логический уровень, а логический уровень - это слой. Слой - это когда слой отделен от других слоев. Слой - это когда слои. Нет, я дал определение, а не выразил тождество терминов. Моё определение включает существенное понятие логический уровень. А также второстепенные, которые ты не заметил, они выводятся легко из предложения дальше после "логический уровень: >чтобы обеспечить модульность, читаемость и переиспользуемость кода. ----- >Логика. Учебник для средней школы. 1954 г. >Определение понятия есть такое логическое действие, в процессе которого раскрывается содержание понятия. >Каждый предмет имеет бесконечное число признаков, и пытаться указать все признаки предмета невозможно. >Определение содержит в себе лишь такие признаки, которые, являясь существенными, отграничивают понятие от других понятий. То есть, определение это множество понятий. Смотри пикрил. А понятие это смысловая единица в этом множестве. >Понятие — это мысль, которая отображает общие и существенные признаки предметов>Например, в понятии «комета» отображены следующие признаки комет: 1) светило, 2) состоит из крайне разреженных газов, 3) при приближении к Солнцу постепенно выбрасывает светящийся хвост. >Все три перечисленных признака являются общими и существенными для комет >термин >софистика https://ru.wikipedia.org/wiki/%D0%A2%D0%B5%D1%80%D0%BC%D0%B8%D0%BD >Те́рмин (от лат. terminus «предел, граница») — слово или словосочетание, являющееся названием строго определённого понятия какой-нибудь области науки, техники, искусства и так далее. Нет противоречия, я дал строго конкретный термин и далее в предложении второстепенные в рамках определения, а не выразил тождество понятий. ----- >Из него нет никаких формальных следстий. Следствие это вывод из множества понятий. >Никакой ценности такое определение не несет. Для тебя не несёт, ты же говнокодер. Пруфы что ты говнокодер: (>>3336179) >Это для продвинутых, ты все равно нихуя не поймешь если прочитаешь про них (>>3336363) >Интерес это представляет чисто археологический. >Перепутанны паттерны с принципами. Это при том, что эти граспы, солиды везде используются, считаются best practice. Но говнокодер будет упираться до последнего. Без учёта того, что там перепутано, потому что термины отражают смысл предназначения этих принципов. ----- Примеры хорошо спроектированной архитектуры, следующей граспам, солидам и прочему, я приводить не буду. Почему не буду? Ты говнокодер, занимаешь пассивно-агрессивную позицию ко всему хорошему. Ценности от разговора с тобой - ноль, ну разве что посмеяться с клоунизма. К тому же легко, проходишь тест на дебильность. Но я знаю, почему ты так трясёшься перед моим превосходством: я посмотрел тиктоки о всему сабжу, почитал статьи и понял смысл и назначение всего этого добра за минимальное время. А ты видимо читал оригинальные книги, въебал времени и не осилил из-за дебильности (тест на которую ты прошёл выше) и остался в позиции говнокодера. Пруфы, что ты не осилил: (>>3336363) >Все это полито хуевым слогом автора и хуевыми же переводами из девяностых. >Опять, нахуя с умным видом че-то из пальца рассусоливать? (>>3336477) >Опять, нахуя с умным видом че-то из пальца рассусоливать? (>>3336179) >Это для продвинутых, ты все равно нихуя не поймешь если прочитаешь про них С учётом всего этого, делаем заключение, что я умнее тебя, поэтому ты трясёшься и приебываешься, пытаясь хоть где-то самоутвердить свою ничтожную глупость. Возвращайся, когда сможешь в анализ и осилишь то, в чём ты обосрался в этой нити.
>>3331128 Зависит от задачи, типовая шаблонизация заруливает почти любой не-вебапп проект. Хотя бы потому что серверный рендеринг, потому что проще кешировать и в целом меньше работы.
>>3324202 (OP) Читаю книгу 'Чистый код' Роберта Мартина и там в третьей главе о функциях используют понятие уровни абстракции. И я не могу нормально понять что это за уровни или как тут помогут TO-абзацы? Я это понимаю так, что есть какое-то общее название функции, которое олицетворяет бизнес-логику, — это один уровень абстракции, а те операции, которые уже непосредственно выполняют действия, которые позволяют выполнить бизнес-логику (допустим запрос в БД или модификация строки), — это другой уровень. Но потом в книге приводят пример из пика. Далее в книге пишут, что эта функция >совершенно очевидно выполняет более одной операции А мне это вообще не очевидно, ведь тут подразумевается, что в методе несколько уровней абстракции, но почему? Я из-за этой главы не могу дальше книгу прочитать, поэтому прошу, объясните, пожалуйста, по простому, что это за уровни абстракции, как их выделять?
Аноны, накидайте годных материалов по Битриксу. Как на нём вообще работают? Делают на нём API если да то вообще как? Есть ли там роутинг как на laravel где пишешь глагол или дальше уже там путь и callback или функцию?
>>3338307 Где ты там увидел "выполняет", дебс? Тут из контекста очевидно что имеется ввиду не прямо сейчас блядь выполняет, а в потенциале делает разную хуйню. И общий интерфейс это наебка.
Пиздец, еще англискому вас кретинов учить. Давайте лучше дальше занюхивайте этот уебищный перевод. Будем считать чтоя нихуя не видел. Проехали.
Я вот считаю, что чтобы учиться водить машниу, нужно повторять действия по видео урокам и ездить в селе. Потом после того как более менее начал нормально сцепление отжимать начинать читать книжки про коробки передач и тормозные колодки. Ну и правила пдд конечно, чтобы в люди не было стыдно выйти. А вот так прямо с нуля и читать мануал любую охоту водить у меня отобьет.
>>3338289 Не один ты запутался. Я вот не читал книжку, но очень хочется узнать про "there is more than one reason to change", это он к свитчу придрался? https://qntm.org/clean
Ты когда добавляешь в Employee новый type обязан знать что на это завязан какой-то код и его тоже нужно поменять. В свою очередь функция вычисления оплаты должна меняться потому что кому-то за каким-то только ему известным хуем понадобилось что-то поменять в Employee.
Все эти ваши "нипанимаю" от того что вы нихуя не пишете код, а тем более не пишете код в команде. Не согласовываете изменения и не переписываете друг за другом.
>>3338476 >Ты когда добавляешь в Employee новый type Ты пиешь про "fourth, it violates OCP". А он в "third, it violates SRP" что-то другие имел виду похоже. >обязан знать Так в тестах же исключение будет, что там знать?
Пчел. Причина "меняться" у калькулятора зарплаты - изменился расчет зарплаты. А в этом коде вычисление зависит от совершенно другой структуры. Получается что причин "меняться" уже две: поменялся расчет зарплаты или поменялаясь структура Employee. Ты до двух считать умеешь?
>>3338488 >поменялся расчет зарплаты Этот момент изменяет только кподфункцию расчета. Сам calculatePay при этом не изменяется. >поменялаясь структура Employee если подфункциям claculate* требуется класс Employee, то расчет зарплаты изначально зависит от структуры, иначе бы он в родительскую функцию просто EmployeeTypeEnum передавал, а подфункции были бы без аргументов вообще.
По этой логие гораздо справидливее было бы придираться к "подфункциям", CalculateHourlyPay(e) например. ВОт он действительно и от стркутуры класса зависит и от изменения расчета выплаты. Что такого плохо сделал calculatePay(Employee e) не вижу вообще.
>>3338504 Для нового типа нужно написать новый case в switch. Это троллинг тупостью? Да даже если не троллинг, то объяснять что-то такому тупорезу - мартышкин труд. Нахуй я на это тупое говно байчусь каждый раз?
>>3338529 Просто ты не можешь объяснить что автор имел в виду, когда писал, "очевидно, что функция делает больше одной вещи" и "она нарушает прицип единой ответственности". На эти оба пункта ты третий раз приводишь пример из его четвертого замечания "он нарушает принцип открытости/закрытости". Потому что это единственный пункт, который он разжевал. У тебя чувство на уровне инстинкта, что так писать не нужно, а доводов в пользу этих 2 пунктов нет. Поэтому ты скорее всего просто создашь 3 класса Invoice-ов c единым интерфейсом calculate?
Мужики, обьясните дауну пожалуйста Вот я привык создавать отдельно класс модели, отдельно репозитории моделей, отдельно сервисы под бизнес логику с этими моделями (если нужно), отдельно контроллеры
Открыл ларавель и гайды, так мне там предлагают в модель засовывать бизнес логику и вызывать в контроллере. Что за хуйня?
>>3339034 Сначала ставь в систему: php, mysql, apache/nginx. Поставив и запустив первый домен у себя будет некоторое понимание как это работает. Сделаешь пару проектов, поиграешься с версиями и можешь пробовать docker compose. Я, работая на аутсорсе, обычно всякие проекты на cms ставлю на системную mysql + php + nginx. А вот проекты на фреймворках - или сразу в докере, или встройка php + бд(sql/no sql) под проект в контейнере.
События придуманы (как мне кажется) для того, чтобы можно было расширять функционал фреймворка. То есть, например, ты хочешь писать в лог каждый запрос - ты вешаешь обработчик на событие kernel.request, или же это может делать сторонняя библиотека.
Если ты пишешь свой код, то в нем генерировать события особо смысла нет, так как ты можешь вызвать нужные функции напрямую и это будет проще.
Судя по тексту, твое недовольство вызывают не исключения, а необходимость их ловить и обрабатывать. Ну так просто не лови их.
Без исключений писали до их изобретения, приходится if писать после каждой функции.
> у тебя уродуется код, половина логики переезжает в блоки catch.
Исключения вбрасываются в исключительных ситуациях, и их, как правило, не обрабатывают специально.
> что ты проблему скрываешь
Ты же сам понимаешь, что это неправильно.
> на одном из проектов мы перешли на пробрасывание по методам дтошек, которые содержали в себе статус операций, массив ошибок если есть, массив соообщений если есть.
Ну это просто возврат в прошлое, где ты после каждой функции пишешь if и раздуваешь код.
> а не заметали проблему под плинтус.
Так с исключениями ты ничего не заметаешь - при исключении программа падает с 503 ошибокой, а подробности исключения пишутся в лог. Не понимаю, чем твой вариант лучше.
>>3339568 >Ну так просто не лови их. Ты вообще не понял о чем он. Он использует исключения как возврат негативного результата. Как с валидацией, например: ты не можешь просто упасть с 503 если мыло с пробелом заполнено, тебе нужно показать пользователю что не так, причем желательно сразу для нескольких проверок, а не по одной за раз.
Или другой вариант. Ты что-то у себя поменял, а перед фиксацией результата делаешь веб запрос. А газзл отвалился с исключением, например ConnectException. Ты не можешь просто пропустить это исключение и класть с ним все приложение, у тебя свои дела, свой флоу. Че-то надо откатить, а может сохранить чтобы потом опять попробовать. Пользователю че-то надо показать. Короче хорошим тоном при использовании сторонней библиотеки считается ловить её исключения, и как минимум оборачивать их в свои.
>Ну это просто возврат в прошлое, где ты после каждой функции пишешь if и раздуваешь код. Так эту проверку невозможно избежать в принципе. Если тебе нужно что-то сделать если что-то не получилось, то у тебя будет условный оператор или try.
Самое пиздатое решение этой проблемы - монада Maybe. Оно тоже не избавляет от условного оператора, пушо это невозможно. Но зато позволяет этот условный оператор передвинуть выше по цепочке вызовов, каждый из которых возвращает maybe. В пхп что-то похожее недавно добавили ?-> если значение не null, то вызов выполнится: $user?->getAddress()?->getHouse()
Как после изучения ООП понять MVC и его реализацию? Если само ооп прям разжевывали и по полочкам раскладывали, то его реализацию на реальном проекте через модели и автозагрузки - "ну вот тут так, тут так, сюда это пишем", есть где прям нормально объясняют чтобы саму суть понять? Я понял что там идет разделение логики от отображения, но вот техническую часть не могу вкурить...
>>3339980 Помню на андроид давно курс платный проходил, там прям ахуенно рассказано было и очень легко, правда БД была локальная прям в программе, то есть не настоящая. А что щас смотрю тоже не понятно, либо теория либо реализация без обьяснений на фреймворке
>>3339980 >Я понял что там идет разделение логики от отображения, но вот техническую часть не могу вкурить... Ну так что тебе еще не понятно? Контроллер - просто собрание обработчиков эндпоинтов, модель - абстракция, через которую ты лезешь в БД, вьюха это шаблон без логики для вставки готовых обработанных данных. Весь интерес у тебя в обработчиках контроллера происходит, вот там про ооп надо думать.
>>3340215 Как сказать заплатил, там чисто косарь был символически как поддержка. А андроид нахуй надо у нас в городе 2(!) вакансии и то на мидла. На пхп их 110
У меня есть список файлов, я их читаю в цикле, один файл допустим битый и возникает ошибка. Я могу его скинуть и дальше следующие читать ? Или ошибка останавливает скрипт ?
>>3340204 >Весь интерес у тебя в обработчиках контроллера происходит, вот там про ооп надо думать. А можно пример как думать об ооп в "обработчиках контроллера"?
>>3339980 >техническую часть Во первых в шапке про студентов есть описание mvc, техническая часть в том что вся логика твоего приложения это модель. Набор кода в виде классов и функций который делает все расчеты и обращается к базе данных. Один или много файлов похуй, моделью будет папка с набором папок. Контроллер это просто вызов метода этой модели что бы вызывать их напрямую из модели, что бы было "отдельно". Ну а отображение очевидно фронтенд - html код с шаблонами.
В laravel при обучении мне показалось что работы больше с контроллерами чем с моделью, ну видимо потому что пример был простенький, я не писал банковское приложение.
Еще я видел книгу по ларавелю которую тут как то кидали, там было сказано что MVC в современных фреймворках невозможно нормально реализовать и все равно придется насрать гору логики например в контроллеры. Потому что у тебя не 3 файла, и все усложняется.
Поэтому предлагаю забить хуй на MVC и не ебать себе мозги.
>>3340232 Почитай главу про mvc в книге php в подлиннике 8 котерова, там полный пример mvc разделения с роутером. Или глянь курс Лаврика по ООП, лежит на рутрекере, в нем пример разработки простого mvc фреймворка с нуля.
Суп двощ. Можно ли как-то в пешапе сделать дамп всего приложения? Я начал делать ивент листенеры, и мне кажется, что я где-то обосрался, потому что у меня начала вытекать память, и memory_usage показывает больше, чем должно.
>>3340257 Да я. Пишу хуйню с умным видом. Вкатуны не понимают что в моих постах просто тарабарщина из терминов. А если кто более сведущий спросит че я блядь вообще несу, то я его просто шлю нахуй и продолжаю городить бессмысленную хуйню.
>>3340282 Шизло не осилило эти термины и как они взаимосвязаны и обвиняет в этом всех окружающих. Это надо просто видеть. Спокидзе, это не последнее, что ты не поймешь в своей жизни
>>3340289 "обработчики контроллера" это вообще не термин. Это шиза которую ты просто выдумал на ходу. То что ты имеешь ввиду называется Action.
Про ооп написана полная хуйня. Причем тут вообще "думать" или не думать? У тебя все приложение это иерархия объектов. Я выше по треду уже скидывал скриншот. Пикрелейтед как выглядит ооп приложение. Это не вопрос "думанья" или какого-то выбора. Твой код будет внутри метода объекта. Без вариантов.
Когда читаешь высеры такого кукоретического долбоеба от кринжа можно сдохнуть. Физически больно эту хуйню видеть. Нет бы сука взять сесть вечерком и написать код. Ну просто блядь статью на вики запостить если зудит. Нет нахуй, надо свою шизофрению вывалить. И ведь сука двух слов связать не может, контроллеры эти в глаза блядь не видел, но срееееет паскуда.
>>3340302 >это вообще не термин. Я буду называть обработчики запроса, методы контроллера, как мне нравятся, а на твое мнение срал. Вопросы какие-то еще? >>3340302 >Причем тут вообще "думать" или не думать? У тебя пример с фреймворком приведённый, тут за тебя уже подумали и решили. А твоё самостоятельное "думать в рамках ооп" начинается именно с обработчиков контроллеров, как сделать их тонкими. Я не знаю, почему ты решил высраться и усложнить вопрос ввиду того, что у анона простой вопрос, как работает mvc. Почему?
>>3340330 Какое отношение "тонкость" контроллеров к ооп имеет? Типа толстые контролееры перестают объектами быть? Может речь идет про ПРОЕКТИРОВАНИЕ или АРХИТЕКТУРУ, а не про ооп?
>усложнить вопрос Рашн мазафакер, ду ю спик ит? Ты же блядь двух слов связать не можешь. Чем отличается вопрос от ответа знаешь?
>Почему? Потому что твой ответ это бессмысленный высер шизоида, который не то что сам mvc не реализовывал, а вообще ни одного контроллера в жини не написал.
А мне в одной компании в качестве теста попросили написать свой фреймворк без исспользования автолоадера композера и вообще без использования композера. Я просто посмотрел как работает yii и переписал его. Мне потом сказали, что автоладер, который я написал не по PSR-4 работает и все остальное тоже говно. Все равно не было жалко потраченного времени.
>>3340366 >Какое отношение "тонкость" контроллеров к ооп имеет? Прямое: контроллер mvc это controller из граспа, он занимается чисто координацией и делегированием, что не должно нарушаться согласно SRP из солида, это значит, что контроллеры должны быть тонкими и заниматься только своей ответсвенностбю.GRASP и SOLID это о том как реализовать 4х принципа ооп. Объектами они быть не перестанут, но и ты должен понимать, что ооп не заканчивается этими 4мя принципами. >Ты же блядь двух слов связать не можешь. В глаза ебешься или трудности с обобщением? С диагнозом "дебильность" это частый симптом, не переживай.
кто нибудь объясните что такое сервисы в SOA с точки зрения реализации. чатгота спамит мне такой информацией: "В SOA (Service-Oriented Architecture) сервис — это отдельная единица функциональности, которая решает конкретную задачу. Это как "черный ящик", который выполняет определенную операцию, и у него есть чётко определённые входные и выходные данные. Сервисы взаимодействуют друг с другом, используя стандартизированные интерфейсы, как, например, REST API или SOAP.". но блять это же просто описание философии сервиса, а как его блять писать я не понимаю. пока что догадка что сервис это просто монолит на Laravel, который только по api общается.
>>3340539 >Тонкие контроллеры Да, так и следует быть. >Жирные сервисы >Ко-ко-ко! Архитектура! Перемещение говна из контроллеров в сервисы должно было бы тебе показаться лишней работой чтобы задуматься о смысле действия. "Сервис" о котором ты говоришь это service layer / application layer. Он не должен быть жирным как и контроллеры, а должен лишь собирать в себе логику из bussiness layer / domain layer (он ниже по зависимостям DYP, - от него зависят, - и выше по абстракции ООП), в последнем слое и содержится основная логика. Она здесь "атомарна", то есть поделенная на домены или модули, ватевер. Эта "атомарность" собственно и разбивает основную жирность, протекающую через слои. Вместо имя "сервис" в service layer / application часто используются CQRS/UseCases/Action найменования. >Реквест передается через параметры Между слоями данные передаются через DTO.
>>3340592 Сычев, ты когда интеграцию с тинков банком доделаешь? Ты уже три месяца возишься. Какие блядь юзкейсы, какой эскьюэрэс? Там просто хттп ручку дернуть. Понедельник крайний срок. Если не будет готово к дейлику в понедельник, для тебя будут плохие последствия...
>>3340592 Граспа ебаная, ты со своими солидами в конец одебилел? О том чтобы язык соответствовал принципам ооп заботятся те кто этот язык пишет. В го нет нихуя наследования, и классов нет, а в ооп стиле на нем писать можно.
То что ты до бесконечности в своих жпт пастах из граспа в солид слои переливаешь абсолютно бесполезная хуета.
>>3340608 Сам сказал, что понял? Ты же по вопросу жирных контроллеров и сервисов только что попустился. А к чему это нахрюк? Сам с собой параллельно разговариваешь? >>3340611 Тохо не аниме, поэтому опозорился тут ты.
>>3340608 >То что ты до бесконечности в своих жпт пастах из граспа в солид слои переливаешь абсолютно бесполезная хуета. А ты в контроллерах пишешь всё?
>>3340648 Нет, это service layer / application layer. Он не должен быть жирным как и контроллеры, а должен лишь собирать в себе логику из bussiness layer / domain layer (он ниже по зависимостям DYP, - от него зависят, - и выше по абстракции ООП), в последнем слое и содержится основная логика. Ю ноу?
И не спрашивай меня что такое "зависимости DYP" и откуда я эту формулировку высрал. Меня попустило и я того прихода не помню.
>>3336491 Чел, ты набрался баззвордов и думаешь, что все понял. Когда начнутся реальные задачи твои "знания" посыпятся как песок. Чтобы нормально вкурить ООП, нужно несколько лет, понимание приходит с годами и опытом.
читаю паттерны фаулера и что-то хуйня. что в книге, что в его статьях хуйня. очень расплавчатое описание. вот например паттерн row data gateway чем он отличается от dm?
Уловка 32. Озадачить и сбить противника с толку бессмысленным набором слов и фраз. Эта уловка основывается на том, что «люди, если что нибудь слышат, привыкли думать, будто под фразами скрывается какая-нибудь мысль».
Если противник такой человек, который в душе сознает свою слабость и привык слышать много непонятных вещей и делать вид, что все отлично понимает, то можно импонировать ему, засыпая его с совершенно серьезным выражением лица ученым или глубокомысленно звучащим абсурдом, от которого у него онемеют слух, зрение и мысль; все это можно выдавать за бесспорное доказательство своего тезиса. Всем известно, что подобную уловку употребляли в последнее время немецкие философы с поразительным успехом, когда имели дело даже с большим скоплением публики.
>>3341208 Твоя самоуверенность спадет, когда тебе дадут спроектировать элементарную систему (просто классы). Ты как человек, который насмотрелся научпопа, запомнил какие-то кротовые ноты, сигнулярности и теперь думает, что он что-то понимает в физике, но стоит только тебе столкнуться с реальной задачей, как ты обомлеешь от собственного незнания и немощи.
>>3341213 Ну я потренеруюсь на кошках в предстоящем учебном проекте, прежде конечно же нужно было разобраться как писать код. В пхп чатиках часто срачи за архитектуру четаю. К тому же, дядьки с видео приводят разумные аргументы в пользу, тем более это опирается на баззворды, которые я постоянно вижу в вакансиях, этот же DIP из солида. Хочется сразу учиться писать правильно.
>>3341220 >Хочется сразу учиться писать правильно. Не получится. Умные люди всю эту ООП дрисню выводили из своего опыта, у тебя такого опыта нет, ты просто не докумыкаешь "зачем" и "почему" что-то использовать.
>>3336491 Прикинул как приходит такой мамин архитектор с паттернами, слоями и домейнсами. А ему суют проект который вчерашний студент наговнякал на коленке впопыхах и говорят "роботай". Даже ебало его в тот момент не могу имаджинировать.
Готовлюсь к собеседованиям. Как научиться отвечать на вопросы, типа "а что не так с этим кодом?". Смотришь на код - вроде должен работать. А потом оказывается, что они где-то скобку "забыли", где-то в конструктор не то передают, где-то private вместо public стоит и запрещает методом пользоваться. А сверху ещё и SOID нарушается во все поля.
>>3338426 база, затем клин код, потом ci/cd, кафку, редис, эсскьюэл, докер, алгосы подрочи, потом через 1-2 года можешь начать пыху учить, через ещё год ларавель и можешь выкладывать калькулятор на гитхаб акк (ток надо гит выдрочить в нулину ещё месяцок) >>3342852 в claude копипастишь и отвечаешь
>>3342852 > Как научиться отвечать на вопросы, типа "а что не так с этим кодом?" Смотришь что не так с кодом - отвечаешь что не так. >Смотришь на код - вроде должен работать. Отвечаешь что всё ок, лажаешь, после занимаешься поиском ошибок. В следующий раз стараешься не допускать подобного рода ошибок.
Чтоб понять что не так с кодом - ты должен сам что-то подобное реализовывать и на своих ошибках понять почему это говно. Даже если просто прочитаешь clean code, не факт что поймешь
Поясните нюфане, вот когда в вакансии пишут React и Laravel вместе, то это имеется в виду, что в Laravel пишется api, а страница делается в реакте? В туториалах по laravel страницу пишут на php, на blade этом самом, то есть можно и фронтенд на laravel сделать что ли?
>>3344425 >Поясните нюфане, вот когда в вакансии пишут React и Laravel вместе, то это имеется в виду, что в Laravel пишется api, а страница делается в реакте? Да. Но чаще Лару с Вью берут для SPA.
>В туториалах по laravel страницу пишут на php, на blade этом самом, то есть можно и фронтенд на laravel сделать что ли? Конечно можно. Будет классическое MPA веб-приложение. Но никто не мешает и ажакс прикрутить, или livewire.
>>3344440 > Конечно можно. Будет классическое MPA веб-приложение. А как совместить js с php вообще? Что то у меня в голове все это не стыкуется. С одной стороны js скрипты отдельными файлами, с другой стороны эти <?php-вставки в html файлах
Когда-нибудь технологии так разовьются, что специалисты не-инженера перестанут понимать что происходит под капотом. Вместо html будет просто один хромиум с кучей готовых библиотек на 10 гигов, которые исполняются на клиенте с молниеносной скоростью, а сервера будут только инструкции и медиа контент содержать. И вместа браузера это будет метаверс.
>>3344442 Эти хтмл вставки могут генериться и в отдельных пхп-файлах. А совмещается это всё просто - жс может отправлять запросы на сервер, напр. тем же ажаксом, и получать ответы от сервака и что-то дальше с ними делать, вот и совмещение получается. Я вот как раз мозгоеблей с ажаксом и занимаю в данный момент, чатик пилю.
>>3344425 Если я правельно понял, есть 3 вида фулл стека на ларке, эти аббревиатуры в вакухах и роадмапах часто можно видеть: 1. VILT (React, Inertia, Laravel, TailwindCSS) 2. TALL (TailwindCSS, Alpine.js, Laravel, Larawire) 3. RILT (React, Inertia, Laravel, TailwindCSS)
Как для фуллстека их там на беке и фронте связывают библиотеки Inertia и Larawire. Но можно и без них обойтись, с изолированным апи от фронта. Тогда больше писанины, но меньше гибкости в случае если надумаешь мобильное приложение делать. Популярны они именно в том порядке, в котором я перечислил. Если вздумал реакт учить, то лучше не надо, лучше вуе.
>>3344931 Ваще почти нихуя не дает в контексте кверибилдера в ларке. Разве что в ресурсах будешь говно из одного места (модель) в другое (ресурс) перекладывать.
>>3344933 Ну код да еще сделал, но там тупо чтобы рутинной работой не заниматься и не подгонять шрифты, флексы и прочую хрень. Типо нахуй эта свора фронтендеров нужна и дизайнеров? Щас 90% функционала это ненужные свистоперделки, я понимаю бекенд нужен там с БД работать, кешем и другими нужными вещами. Но нахуя вообще фронтенд как явление нужен? Смотри я не работал с фреймворками типо вью и реакты, но на голом ксс и хтмл написал ахуенный сайт по типу пикрил, где все понятно, МИНИМУМ кнопок, всего лишь 3 основных цвета в дизайне и все очень просто и доступно НОРМАЛЬНОМУ человеку. Теперь смотрим на пикрил 2 говно которое клепают на смсках
>>3344980 ладно пикрил 2 плохой пример, щас приблизительно вот такое клепают уебанство, просто вы еще представляйте как заходите на сайт а там миллиард всплывающих окон и лаги
>>3345012 >>3345005 Да так всего лишь расстрелять КАЖДОГО пидараса который испортил все сайты и приложения любимые своими свистоперделками, заебись теперь открываются полчаса и лагают. Зато дети с сдвг довольны. Главное не забыть контекстной рекламы накидать, чат бота с ВАМ ТРЕБУЕТСЯ ПОМОЩЬ?, предложением о ПОСЛЕДНЕЙ СКИДКЕ 99%, предложение зарегистрироваться, предложением принять куки и еще стопицот предложений, и только потом ты гой можешь посмотреть на содержимое
>>3345021 А ну и легендарное "ВЫ ТОЧНО УВЕРЕНЫ ЧТО НЕ ХОТИТЕ ВОСПОЛЬЗОВАТЬСЯ СКИДКОЙ? СКИДКА СГОРАЕТ ЧЕРЕЗ ОДНУ НАНОСЕКУНДУ" И "ПОДПИШИТЕСЬ НА НАШИ СОЦ СЕТИ ЧТОБЫ БЫТЬ В КУРСЕ"
>>3345021 >>3345022 Так просто не ходи по этим говносайтам. Если тебе в лицо сходу начинают тыкать всплывающими окнами, то нехрен там делать - у говносайта юзабилити на дне.
>>3344643 >Как же тяжко без фронтендера и дизайнера сайт пилить рибята Не пизди, ничего не тяжко. В чём заключается тяжесть? В том, чтобы пойти на маркетплейс и купить готовый дизайн за 50 баксов? Или в том, чтобы скачать бесплатный ui кит типа fluent ui, material ui, sapui5, chakra ui?
>>3344980 >первый пик Литерали пикрелейтед. Бездушное, холодное, илитное позерство. Добавили эти три точки, чтобы уж совсем страница не выглядела как пустой проект на WindowsForms.
>>3345171 Скажи в чем блять недостаток то? Такими сайтами просто ахуенно пользоваться, можно чисто кончать от использования, допустимо если там будет какая нибудь мягкая анимация ползунков и кнопок и все. И самое главное - такие сайты как ты видишь не для нищей хуеты создаются, а для богачей которые ценят эстетику. Ты давно видел стул с бабкиного гаража за 250 евро? Вот для питоpахи обычной там уже не важно, накидал в кучу говна всяких цветов баннеров и реклам, приправил всплывающими окнами и дешевой анимацией ШОБ НЕОБЫЧНА, и скормил ей же
>>3345400 Без лица, без души. Ты хоть понять на каком сайте находишься можешь, по этим уебищным скриншотам? Ты бы еще принес этих корпоративных блевотных человечков на одно ебало.
>>3324202 (OP) Наткнулся на слитый код крупного ру даркнет маркета, так вот он написан на ларавеле. Вопрос, это база писать сайты для даркнета на пыхе? Чем-то обосновано или просто совпало?
>>3345843 Ты своими тезисами питараху напоминаешь. Которая живет внутри пик1, который выглядит снаружи как пик2 или пик3. Нет ну а чо. Зато душевно, оригинально
>>3345843 Конкретно вот эти детали интерфейса просто ебаный мусор, нахуя он? Чтобы нищей хуете впарить какое то говно в обертке СПЕЦПРЕДЛОЖЕНИЯ СКИДКИ? Вот в чем качественное отличие богатых и успешных людей от нищего скота. Нищих держат за обезьян и помыкают разноцветными баннерами об очередной "скидке". Пользоваться сайтами для скота значит не уважать себя
>>3346017 >>3346027 >Пользоваться сайтами для скота >Какие-то претензии к живущим в хрущебах >Закупается в Louis Vuitton несуществующими часами Вот за это я и люблю двачи. Тут порой таких ебанашек встретишь - цирк отдыхает.
>>3346250 >))) Там просто сразу поняли по обилию скобочек, что ты заводобыдло гречневое и ФИТА С КОМАНДОЙ упругих зумеров у тебя не будет. И нахуй ты такой нужен, скуфидон кринжовый?
Я нужен, чтобы молодые лучше обьединялись на фоне чмырения меня за спиной. И переставали думать о плохом кабане, маленьких зарплатах и потогонке. Я один их теперь буду раздражать одним своим видом
>>3346277 Так а смысл в этих вакансиях? Все на новогодние праздники уходят недели на полторы-две. Зачем кого-то нанимать чтобы он тупо ждал когда все работать начнут?
>>3346027 >нищей хуете >богатых и успешных людей от нищего скота >Нищих >для скота Нищий скот, старательно прорабатывающий детские травмы, не знает, что самым верным детектором нищего скота является неистовая, животная ненависть к нищему скоту, которым ему не повезло уродиться и которым он, скорее всего, до сих пор является. Классека, нахуй. Прямо как тот грозный додик, засирающий б тредами про "попускание омежек" и "естественный отбор", лол, всякий раз ору как ебанутый с вас, наивных дураков.
Пилю крч свой первый сайтик, по функционалу всё получается что задумал, но как это выглядит в коде..пожалуй не буду на гх заливать, обосрут ещё и забанят.
>>3348945 да нормально у меня вообще вся логика во view запихнута нахой! и лютый говнокод на css >>3349229 имхо битрикс на пыхе, говорят вкат легкий, а так хотя бы +- с людскими технологиями будешь работать, а не 1С. Людскими в плане что на пыхе, которая во всем мире исп а не только в рф
>>3349231 где сам этот ебучий Bitrix учить? Ладно там Laravel, Symfony ещё понятно. Опять же не охото время тратить на это уёбище, а потом переучиваться на что-то нормальное, лучше сразу освоить годное
>>3349229 А чем go блевотный? По факту среди выбора лучше всех выглядит go, что до 1С - тут понятно. Битра - ну как бы сказать, так уже не пишут, по факту знания с битры по сути не релевантны, перекат на фреймворк типа лары или симфы - обучение почти с нуля после битры.
>>3350561 >Потому что пыха младший клон java Правильнее будет сказать, что пехопе - очередной убогий "упрощённый" клон перла, из которого выпилили всё хорошее, что было в перле, оставив всё плохое и обмазав сверху ООП-поносом из джава. Между прочим, весьма хуёво - например, ДЖЕНЕРИКОВ до сих пор нет в модном пехопе 8.
>>3350632 Я не занимаюсь кодированием на пехопе, я увидел фактическую ошибку и ответил в тред с нулевой, между делом заметив, что пехопе - говно. Тащем-та это всегда всем было очевидно - если какой-нибудь питухон быдло любит и будет спорить с тем, что он плохой, то уёбищность пехопе никогда не вызывала сомнений даже у самих слоник-макак. У вас какой-то удивительный тред.
Пишу на пыхе уже лет 10, авторитетно имею заявить, что язык - говно Как, впрочем, и любой другой язык, если его начать изучать глубже написания хелловорлдов и крудов
>>3350632 Я лично не хейчу ни пхп, ни битру, потому что прекрасно понимаю что благодаря этим технологиям я получил доступ к баблу. Однако, за 10 лет с момента моего вката, разработка на пыхе стала лучше совсем немного и накопился ряд претензий. По последним новостям пришел к выводу что развитие пхп движется хуй пойми куда.
Особенно грустно стало от перфоманса с пика. Когда нода уделывает в 2 раза, а "тормозная жава" почти в 5 (и это если у тебя есть JIT которого ни у кого нет), про 20 раз уже даже говорить не хочется.
Если раньше можно было объяснить популярность PHP, тем что его можно поднять на вшивом хостинге за 200 рублей\мес (400 рублей по современным меркам) и почти без пердолинга с настройкой, потому что хостинги были заточены на LAMP.
То теперь и это в прошлом, за те же 400 рублей ты на VPS поднимаешь любой стек в докере дотнет\жвм\ноду, а хочешь можешь и нативку ебануть на го\раст.
На одном из видео слышал такую фразу "ПХП просто выдавливают из тех областей, где он оказался случайно", т.е. авторам языка надо не то что бы идти в ногу со другими ЯП, а бежать в 10 раз быстрее, но на это нужны ресурсы, а их у них попросту нет. Хуй знает, чем это закончится, но кажется что результат предсказуем. Потому что супер тормозной рэбе для разработки стартапов он хуй когда переиграет.
Stateles? ну ок, только фокус в том, что другие ЯП его тоже реализуют в своих фреймворках, только им не надо на каждый чих поднимать заново все объекты\контейнеры.
По битре скажу, что они заебали со своей обратной совместимостью и костылями из 00, им просто похуй на технологии вокруг, выкачивают бабло, изменения просто околонулевые, чисто маркетинг
>>3350765 >Особенно грустно стало от перфоманса с пика. Когда нода уделывает в 2 раза, а "тормозная жава" почти в 5 (и это если у тебя есть JIT которого ни у кого нет), про 20 раз уже даже говорить не хочется. Щас бы всерьез рассуждать о синтетических тестах хуй пойми в каком окружении хуй пойми с какими настройками, хуй пойми с каким кодом >То теперь и это в прошлом, за те же 400 рублей ты на VPS поднимаешь любой стек в докере дотнет\жвм\ноду, а хочешь можешь и нативку ебануть на го\раст. Пыха так же прекрасно поднимается в докере, доеб непонятен >ПХП просто выдавливают из тех областей, где он оказался случайн Внезапно, любой язык выдавит из своей ниши менее нишевой язык. Для мелкосреднего бизнеса пхп идеален соотношением цена-качество-TTM >им не надо на каждый чих поднимать заново все объекты\контейнеры. Чето слыхал, в пхп новую штуку завезли, опкэш или как-то так, которая решает эту проблему. Лет 10 назад или больше
>>3350777 >Пыха так же прекрасно поднимается в докере, доеб непонятен Просто ты тупой. Какой тебе нахуй язык програмирования, ты русский то не понимаешь, дауненок.
>Для мелкосреднего бизнеса пхп идеален соотношением цена-качество-TTM Баля, а что же у нас формирует это соотношение? Ведь если применений у языка становится меньше, и програмистов на языке становится меньше, то качество и цена не меняются? Ну еблан и есть еблан.
>поднимать заново все объекты\контейнеры >опкэш Ну точно ебанько. Тупорылый припизднутый дегенерат. Хоть бы прочитал что такое опкоды, че там этот опкеш кеширует. Идиот клинический.
Ну вот оно как-то так. Защищают пхп дегенераты, котроые ни в пхп, ни в программировании в целом нихуя не понимают. Хуесосик "цена/качество", ты кем работаешь? Что ты на пхп за последние пять лет написал? Когда последний раз на работу устраивался?
>>3350815 что ж, если так трудно погуглить "1 billion nested loop iterations" стоит ли держаться в профессии, обычно в таких тестах ищут исходник и идут бить ебало автору доказывать что его ЯП лучше, ибо священная война священна
>>3350922 Конечно на личности, хуесосик. Потому что по твоему высеру очевидно что там не личность, а пенёк осиновый.
Человек, котрый на пхп пишет, знает все его проблемы лучше любого залетного. Ему эти проблемы дефать - как битой себя по яйцам пиздить.
А тут нарисовался хуесосик. И простейший, прозрачнейший тест у него не тест. И по русски он читать не в состоянии. И опкэш он не к месту приплел.
И сразу возникают вопросики к хуесосику. А ты собственно кто, хуипутало? Какое отношение к пхп имеешь вообще, додик? Если ты на нем не пишешь, а ты очевидно нихуя на нем не пишешь, то нахуй ты тут высрался?
>>3350863 >стоит ли держаться в профессии Действительно, стоит ли держаться в профессии, если не то, что не открыл ни одного исходника, а просто не запустил руками код, приведенный в репозитории, и не увидел, что, например, никакой секундой в случае Node там даже не пахнет. У меня, например, меньше 1,9с не получилось никак. Вопрос встает сразу, с какими флагами это все компилировалось? На какой машине запускалось? При этом даже тот не оптимизированный код на Julia у меня больше 1,4с не дает никак.
>>3350851 >Защищают пхп дегенераты, котроые ни в пхп, ни в программировании в целом нихуя не понимают. Как и JS, лол. У них паства литерально одинаковая. Им объясняешь, что весь язык сконструирован в максимально шизоидном стиле, просто конченым петухом, они начинают рякать, что при помощи него деньги лутают и про какие-то ТТМы кукарекать
>>3350976 >> Действительно, стоит ли держаться в профессии, если не то, что не открыл ни одного исходника, а просто не запустил руками
Ну во первых там все расписано, и если ты не нашел, то вкатываться я тебе могу предложить с похода к офтальмологу.
Конечно же я пошел проверять этот злоебучий код, т.к. меня это задело и у меня были совершенно другие значения, но общий тренд сохранился. Лично у меня java (graal\openjdk)\с# выдала 1.4c, пыха вообще на 25сек уехала(на 7.3 ) и на 60 (8.4), а раст дал 4 секунды. Естественно везде включен дебаг и вся хуйня, но разрвыв очевиден
>>3350977 >> что при помощи него деньги лутают и про какие-то ТТМы кукарекать
Не ну ТТМ конечно полезная штука, если ты пилишь стартап Однако, если взять сисярп с разор-васмом, там ТТМ просто туземун на ракете улетает, получается.
Ты буквально можешь писать все на шарпе, поставить в коде бряку и когда нажмешь на кнопочку в браузере на которой висить хэндлет типа onClick у тебя код встанет на твою бряку с параметрами переданными в эту функцию в браузере и это ни какой-то ajax запрос на RestAPI с json. Ты буквально в IDE дебажишь код фронта, никаких webpack c watchерами и прочей хуитени. Одна IDE, один код, один проект. Вот жеж нихуя себе и тут получается переиграли?
И никаких тебе:
<script> var huy = <?=json_encode($pizda); ?>; </script>
И про какой мы ТТМ говорим? "console.log", "degbugger;" ? Ах да : "мы же просто микро-rest сервисы" пишем, а фронт это удел фронтендеров. Ну как бы все понятно.
Часто пишу мелкие и средние утилиты на PHP. Пока не хочу делать их на фреймворке, не готов ещё, в будущем начну.
Но DI контейнер хочется уже сейчас.
Насколько котируется тот же https://php-di.org/ ? Это какая-то реально рабочая и востребованная штука или это поделка школьников? Судя по Адвенту там за 2024 год всего 11 правок. Это как-то смешно. Или там нечего особо править поэтому туда особо и не комитят?
>>3351253 Фреймворк это просто набор библиотек. Ты можешь просто поставить себе контейнер из того же симфони. А потом когда захочешь его конфигурировать через yaml поставить конфиг компонент из того же симфони. А потом чтобы загружать в конфиг пароли из env файла поставить dotenv компонент из симфони. А потом поставить компонент безопасности, который добавляет CSRF токены и шифрует куки. А потом поставить HTTP компонент, чтобы удобно работать с куками, входящими данными и сессиями. А потом прикрутить логи. А потом ОРМ. А потом кэш. А потом тесты. А потом работу с файлами. Работу с консолью, рест апи, очереди, крон задания, переводы, формы, валидаторы, ассеты, rbac и хуй знает что ещё.
>>3350956 Бля, забавный дебиленок. Тебе по фактам хуем по губам поелозили, но ты продолжаешь копротивляться. Ведь на самом деле ты на пхп не писал никогда, где-то чего-то когда-то прочитал, а теперь пришел сюда срать и типа троллеть))00) но в итоге получил справедливую струю мочи в ебало Ну ладно, это хотя бы веселее, чем вкатудонские тупые вопросы
>>3350977 >язык сконструирован в максимально шизоидном стиле Да, так и есть >при помощи него деньги лутают и про какие-то ТТМы Да, так и есть Где тут противоречия, еблуш?
Видимо, в треде новенькие, и не в курсе за здешний лор Короче, раз в сезон стабильно в тред приползает шиз, который упорно пытается всем рассказать, какое же пхп говно, что он скоро умрет, все-все языки в мире лучше, и все в этом духе. Спустя пару-тройку дней его попускают, насмехаются над ним и изгоняют из треда, но потом он снова возвращается >>3350851 Шиз, ты? Я узнал тебя по твоим высерам Как дела, весь пхпшный код на ноду переписали, или еще не?
Ну вот начинается: надо артисан, надо команды его изучать. Нет, спасибо, если уж делать на ларавеле, то сразу делать всё приложение.
А я просто хотел DI контейнер попробовать прикрутить, чтобы поменьше кода писать в начале каждого скрипта и не писать одну и ту же портянку в каждом скрипт (DRY). Да и то это чисто для эксперимента, посмотреть на сколько это будет удобно в моём простейшем hello-world-е.
У меня в начале каждого скрипта моей утилиты вот такая портянка. А тут я один раз настрою всё это и в каждом скрипте буду просто брать нужный мне репозиторий или сервис, которые мне будет создавать автоматом контейнер.
Спасибо. Судя по тому как легко подключить симфонический, я решил сразу на нём пилить. Надо будет и логгер потом оттуда взять. А то у меня он самописный.
>>3351515 >Ну вот начинается: надо артисан, надо команды его изучать. Нет, спасибо, если уж делать на ларавеле, то сразу делать всё приложение. А что их изучать? Пишешь php artisan и он тебе сам все доступные выведет. Самому писать команды тоже легко - можно в том же артисане создать нужный класс.
>У меня в начале каждого скрипта моей утилиты вот такая портянка. А тут я один раз настрою всё это и в каждом скрипте буду просто брать нужный мне репозиторий или сервис, которые мне будет создавать автоматом контейнер. Так убери все эти конфиги и зависимости в один фреймворк сделай там команду для каждой своей утилиты, а в коде только нужное доставай из контейнера.
>>3351878 Новости на сайте переставали отображаться если в бд ставили несколько активных новостей, это как раз сделал. И еще картинки в админке не загружаются(она старая самописная) ну то есть некоторые грузятся а некоторые нет, хз почему так.
>>3351884 Понятно, а то одно дело дрочить пет проекты типа списка студентов или файлообменника другое дело реальная работа, не понятно что ожидает меня на галере
>>3351961 >пхп не для этого создан как инструмент. пикрелейтед
>>3351899 >кто-нибудь писал на слонике что-то кроме однотипной элементарной веб-дрисни Ощущения будут типа как от питона, только пых может даже чем-то лучше питона: в нем есть многострочные лямбды с семантикой крестов, приваты, интерфейсы.
>>3352481 Так к фьюзу любой язык можно прикрутить. Ты наоборот сделай. Чтобы был аналог фьюз на пхп, а к нему какой-нибудь жабоскрипт прикручивали. Не можешь? Ну вот ебальник то и прикрой.
>>3352500 Лол, и в чем проблема для человека знающего си сделать интернет магазин? Он типа в буфер вывода не сможет хтмл высрать или к базе приконнектиться, ебанько?
>>3352512 >Лол, и в чем проблема для человека знающего си сделать интернет магазин? Так в чём проблема? Почему мы магазины на пхп видим, а на сях не видим? В чём проблема?
>>3352657 Нихуя ты сракой виляешь. Как-то мы быстро перескочили от "невозможно на пхп написать FUSE" к "на си не нужно писать сайт".
Я тебя, полуебка еще раз спрошу: что мешает человеку, который знает си написать сайт? Давай без виляний сракой и ответов вопросом на вопрос. Ну или завали ебло и съебни если нечего ответить.
>>3352659 >что мешает человеку, который знает си написать сайт? Так что мешает, полуёбок? Это ты заявляешь, что не проблема. Так где эти магазины, опущенец? В чём проблема?
>>3352958 Так где сайт, чмо? Где интернет магазины про которые ты визжал ИТТ два дня подряд? Я вижу только хелловорлд ценой страницы кода, который пхп может в 1 строку сделать. Вопрос всё ещё актуален: >Так что мешает, полуёбок? Это ты заявляешь, что не проблема. Так где эти магазины, опущенец? В чём проблема?
Не сливайся. Ведь это ты сюда патраллить лалок зашёл.
>>3352958 Так это helloworld, клован. Но даже его ты не осилил без либы, а я бы вообще на epoll сделал. Однако, полноценный магазин ты таким способом напишешь примерно к тому моменту, когда тебя из НИИ на пенсию отправят, и то не факт. То есть, это практически нереализуемо. При этом обязательно насрешь багами и уязвимостями. Вот эти твои "data", 4. Так что ты обоссал только сам себя, сиськанчик.
>>3352965 Короче, судя по всему, у тебя опять закончились таблеки от шизы раз ты всем итт начал доказывать, что твоя строчка с хелловорлдом это полноценный онлайн-магазин.
>>3352984 Магазин то покажи, чмоха. Сам ничего не сделал кроме визга, а от других требуешь. Где магазины на сях в интернете? Неси сюда давай уже, раз там так всё просто, вайти.
>>3352974 >>3352981 >>3352988 >>3352991 >>3352994 Нормальный подрыв. Долго, быстро, но это очевилдный факт: чтобы написать вебсайт на си нужно только желание. Технических препятствий для этого нет. Это и означает что язык общего назначения. Хочешь пишешь веб сервер, хочешь фаловую систему, хочешь сайт.
А где пруфы того что пхп язык общего назначения? Что он может без костылей в виде ДЕЙСТВИТЕЛЬНО универсальных языков?
>>3353000 >Долго От твоего высера const char в socket до полноценного магазина - дорожка непроходимая, долбоеб. Поэтому ты и не можешь показать, никто из 8 миллиардов не сделал. Да и что будет аналогом helloworld? Dummy-модуль ядра, который обменивается строчкой с PHP CLI? Ну можно это сделать. Что тебе надо от нас, чудище ебаное?
Я вкатуджон.Ох я видимо по шапке из старых тредов попёр. Потому что в шапке из старых тредов был первый урок в котором говорилось про веб сервер apache.
А сейчас я не вижу в шапке этого треда этот урок.
Короче я сейчас иду по старой шапке. Я в самом начале. И читаю книгу 2003 года про apache web server, чтоб начальный урок пройти в котором упомянут apache.
Я скоро дойду до глав с php fpm. Поясните это пизда как сложно конфиг для php fpm писать?
>>3353012 >И читаю книгу 2003 года про apache web server Да просто настрой его по гайдам, или скачай готовую сборку LAMP. А то и докер настрой с нжинксом. Зачем книжки то про вебсерверы читать? Ты прогать хочешь или просто почитать?
>>3353017 Я хотел рамсить с наскока и просто сделать цап царап с ютуба. Нашел видосы про веб сервер. Начал смотреть и нихуя не понял что происходит, что, куда и зачем. Решил, что без книжки не разберёшься.
>>3353024 Потому что кошачья бацыла сделал хайповый видос про великий пхп как способ изи вката в айтишку без конкуренции. Так что радуйся, скуфиду, хоть с молодежью пообщаешься! Ну или корми чела с книгами по апачу
>>3353030 Это сам ты пошел нахуй вместе с твоим срачем на тему применения php вне веба. Ты хочешь, чтоб мне не отвечали. А чтоб тебе продолжили писать на тему срача. Ух какой же подлый ты стервец! Какой мерзавец!
>>3353031 Ой пусть закатываются. Охуеют от разочарования что кроме CMS а-ля битрикс пхп-рынок ничего не может предложить из "изи вката". На фреймворки конкуренция такая же как в других бэк-стеках.
Ребят, если вы вкатываетесь - идите сразу на нормальный бэк стэк В пэхапе одни cmsки и скоро зп как у кассира пятерочки будет Примерно такой же смысл идти в пэхапе, как и в фронтенд
Идите в го, шарпы,жаву, 1с, ембедед(если времени дохуя)
Мой стек всегда был C, Java, PHP. Как наиболее универсальный. Хотелось бы, конечно, Go добавить, вроде как сейчас это уже стандарт для микросервисной архитектуры.
PHP мне нравится намного больше что Питона, что Ноды. По крайней мере в PHP есть адекватное ООП и можно создавать приложения, отвечающие всем стандартам качества, а не лепить костыли, когда тебе нужно реализовать тот или иной паттерн, а у тебя в языке нет ООП.
>>3353000 >вебсайт на си нужно только желание Которое может возникнуть только у поехавшего долбоёба. Ты там скрин сишного кода кинул, вот залей его на хостинг а мы посмотрим что этот инет-магазин из себя представляет, он рабочий?
>>3353147 Куда идём мы с Битриксом — Большой-большой секрет И не расскажем мы о нём О нет, и нет, и..
Да, у тебя есть сертификат 1С? — Сертификат 1С? — В смысле я как раз подумал, а не захватить ли нам на всякий случай сертификат 1С? От этих франчей всего можно ждать — Ага
Раз ты работал с 1С, может расскажешь, как вообще начать свой бизнес в 1С? В больницы ставят 1С Поликлинику, я хочу брать заказы на какие-то мелкие правки и доработки. Чё мне вообще нужно? Самому купить 1С Поликлинику, поставить её и копаться в её коде и разбираться в ней или как вообще это работает?
>>3352958 @ попросили фильтрацию в каталоге @ делал пол года @ сделал для 10 свойств, а хули хватит же @ одно свойство - одно значение @ работает за наносек @ заказчик попросил сделать для множественное @ плачешь @ перепутал * с & @ задеплоил @ сайт пососал хуев и лег @ уже месяц дебажишь @ решил писать свой dsl для работы фильтров @ умер
Коупи дальше, манька. Устроился в зелёный банк на Java, у меня опыт был PHP и Java, рассматривали весь опыт, про проекты на PHP тоже с интересом слушали. На PHP галере лутал 500, сейчас 700. А ты соси дальше изучай свои байтики, обоссышь.
>>3353349 >> а опыт на пэхапэ рассматриваться не будет работодателем конечно не будет, если ты веслал на говнопрессе для одеска, кому ты нахуй нужен клоун-костылятор
>>3353031 >скуфиду, хоть с молодежью пообщаешься! Не, я на PHP не пишу. Я сейчас пишу на TS и учусь писать на С++. Так что молодёжи достаточно и олдов тоже. Я прост посоветовать пришёл новичкам, что писать на PHP следует в одном и следующих случаев: - вы аутист - вы уже лутаете с него деньги не первый год - вас переманили с другого языка на х2 зарплату - обстоятельства непреодолимой силы
В ином случае берите другие языки. Они могут всё то же, что и PHP, но при этом имеют ещё куче всего, что PHP не может. С уважением к вашему времени, олд, который когда-то писал на PHP пару лет
А тебе не кажется что дженерики в нетипизированном языке это натягивание совы на глобус? Ты уж реши, тебе типизированный язык с дженериками или нетипизированный. И да, в PHP завезли дженерики не так давно, для шизов, которым нужна типобезопасность в PHP. Выглядит как говно но если человек долбоёб и он вместо java зачем-то начал писать на php то ТЕРПИ.
Язык не сам себя пишет выблядок ты тупорылый. Техническое препятствие в том что никто не станет писать хуилярд строк кода, который потом невозможно будет поддерживать.
> Ага, только пишешь на скрипте без асинхронщины и многопоточки
Для асинхронщины и многопоточки я пишу на других языках.
Если я пишу на PHP, значит она не нужна там, где я на нём пишу, как ты не можешь понять простой истины.
> Пописать на любом языке, а потом глянуть на php - сразу отвращение к пыхе появляется
Я пишу с 2004 года на десятке языков, включая Хаскель и Схему, а так же лабы на брейнфаке, ты возможно ещё не родился, когда я СЦИП под аниме Лаки Стар изучал и в IRC каналах с друзьями рогалики пилил.
Под каждую задачу свой язык. Настоящему программисту вообще без разницы на каком языке писать. Можно даже свой язык создать под задачу.
>>3353987 >Под каждую задачу свой язык. Настоящему программисту вообще без разницы на каком языке писать. Пиздаболы, вроде тебя, палятся именно на вот этом "Под каждую задачу свой язык". Сразу видно кукаретика. Какие у тебя "разные" задачи? Ты сегодня код пишешь обычно, а завтра справа налево и тебе какой-то особый интрумент для этого нужен? Хуйня полная.
У тебя задача писать ооп код. Что пхп как инструмент уникального и полезного для этого предоставляет? НИ-ХУ-Я Все. Дискуссия исчерпана.
>>3354179 Описание предметной области языковыми конструкциями это DDD, мань. DSL это именно про языки ориентированные для решения конкретных прикладных задач. Ты даже в определениях путаешься.
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 Но все это руби
Нелья сказать что пхп больше дсл под вебкруд чем питон или раст
>>3354195 При чем тут говно? Или у тебя что в башке, то и на языке? Сайт на питоне/ноде/C++ надо уже ложить на VDS хотя бы, который уже надо админить, за это надо кому-то платить, даже если и копейки, то все равно взаимодействовать с этим админом. Пхпшную шнягу просто положил на LAMP хостинг, которых триллиарды, и забыл или почти забыл. Ты, например, точно знаешь, как твой, ну пусть сервер приложений, ну пусть на C++ и на FastCGI правильно обернуть в daemon, чтобы он не пизданулся у тебя через сутки хз почему? PHP в этом месте практически не требует дополнительных знаний и администрирования вообще, а другие решения требуют. Да, такая ситуация сложилась исторически. Ну и что, блять, холиварщик ты в жопу ебаный всех итт заебавший?
>>3354197 >LAMP хостинг Бля, залупа понурая, какой нахуй ламп хостинг? Кого нахуй админить? Ты к нам из дветыщиседьмого прилетел? Какой нахуй апач, припиздок солевой?
Покажи мне блядь в 2025 году хостинг, где нельзя через докер поставить все что тебе нужно. Давай блядь, путешественник во времени. Апач сука, я от смеха кофе поперхнулся.
>>3354204 Чучело, блядь, ебаное, чтобы поставить все, что тебе нужно, нужно знать, что тебе нужно. А с PHP этого знать не нужно, потому что с PHP тебе не нужно ничего, кроме PHP. Так понятно, бухой уебок?
>>3353987 >Если я пишу на PHP, значит она не нужна там Нет, ты пишешь на нём, потому, что не востребован на других языках
>Я пишу с 2004 года на десятке языков, включая Хаскель и Схему Как я и говорил, берёшь всякий мусор. Это как школьник, который бегает по всяким новым ММО-помойкам в надежде быть первым и возвышаться над будущими нубасами. И в этом ничего нет плохого до тех пор, пока он не начинает на полном серьёзе считать что его достижения в ММО что-то стоят и завязывать на это свою самооценку, спорить о своих достижения и т.д. То есть вместо того, чтобы сказать: "Ну, да, я угораю над нубасами, смотри, как бесятся, кек", начинается: "Кругом тепые нубасы, почему никто не умеет играть, я всех победил, ахаха, я охуенен!" на полном серьёзе
>Под каждую задачу свой язык. Нет. Никакого языка под задачу не существует. Есть язык - его рождают исходя из практики для упрощения генерации байткода, ни под какую задачу он не создаётся. Есть люди, они тоже независимо рождаются. Они изучают в жизни то, что им посильно и интересно. Кто-то взялся ковырять, как устроен компьютер, а как управлять лопатой для кидания говна. Есть кабанчики, они тоже появляются независмо. И, вот, кабанчику надо кодера, чтобы было больше денег. Есть кабанчик, который делает ракеты, есть тот, что делает шаурмячну. Тот, что делает ракету будет искать тех, кто умеет в Си, а шаурмячнику достаточно кого угодно, лишь бы сайт работал. И так получается, что всех Сишников разбирают, остаётся только PHP-макака. PHP в данном случа можно заменить чем угодно, важно, что это более примитивный инструмент. И PHP макака идёт в шаурмячку. И так и рождается миф, что PHP для шаурм; другими словами, инструмент под задачу. В реальности инструментом является лоускил кодмакака. И под она берётся под сделать сайт шаурмы, и так уж оказывается, что она знает только PHP или какой-нибудь Хаскель
>Настоящему программисту вообще без разницы на каком языке писать Нет. Писать на говне, когда есть не говно - существует только одна причина - ты раб, решение за которого принимают другие
P.S. Про многопоточность тебе гопота выдала чушь времён десятых годов. В Nodejs есть все виды многопоточности. Ещё веселит словосочетание истинная многопоточность. Узрели ли ты её, принял ли в своё сердце; амен!
>>3354390 >джуниор почти не берут Да джуниоров никуда не берут на всех стеках, даже если есть джун вакансии там требования уровня олимпиадника. Битриксы, CMS - это тупик, никому не интересны скилы связанные с битриксом кроме битрикс-галер. Сейчас тема крутить и залетать на мидла, там уже работу работать.
Наш университет каждый год выпускает 300 студентов айти специальностей (факультет математики, факультет информатики) и все они находят работу в айти. Разумеется после выхода из ВУЗа они не мидлы и не сеньёры, а джуны. И позиции джунов их и берут.
>>3354477 Как получилось так что сервера нет? И в чем проблема взять впс за 400 рублей? На шареде ты никакого преимущества не получишь, одни только минусы из-за ограничений. Парсинг это всегда заказ, никто без айти штата им самостоятельно не занимается. Парсинг требует загрузки цпу. На шареде тебе просто пессимизируют быстро или вообще нхуй заблочат. Нет ничего, чтобы не требовало поддержки. Поэтому если заказчик маленький, то закину бота на свой сервер и заключу договор об обслуживании.
Шареды судя по всему остались как рудимент только чтобы вордпрес разместить. Но вордпресс мастера вымирают, а количество жс макак с некстом уже миллионы. Нашим шаред кабанчикам уже давно пора аналоги верселя запилить, вместо того чтобы говно мамонта поддерживать.
>>3354477 Я скажу: старина, у тебя девопс есть, который за эту хуйню пол ляма получает. Вот кароч проект на гитлабе, как задеплоит пусть доступы к поду мне в слак скинет.
>>3354758 Шобы бабки за обслуживание бота получать по договору. Как ты налоговой обяснишь за что тебе ИП Кабанов переводы делает на расчетный счет. Ты можешь только той деятельностью заниматься которую в налоговой зарегал.
>>3356487 Ты явно занимаешься какой-то хуйней. И дело даже не в тупорылых изъебствах с вручную созданной хеш мапой.
Твой знак плюса ничего никуда не прибавляет. В массиве $dolls всегда будут уникальные $dollId. Сумма не считается, ты по сути перезаписываешь значения в исходном массиве. https://3v4l.org/SvG3l
>>3357018 >Финтех ещё делают Фух. Ну спасибо, отлегло. Если два каких-то долбоеба делают на пхп финтех, то это все меняет. Теперь когда буду рыться в хтмл говне очередного интернет магазина на битриксе буду об этом вспоминать.
>да вообще всё что угодно А ты? Лично ты, что на пхп делаешь?
Братья, помогите дебсу Допустим у меня есть модель с кучей зависимостей В ларке мне предлагают через hasOne|hasMany->save() их сохранить, но как-то же жестко новый запрос для всего делать, не? Или они внутри как-то оптимизируются потом и одним запросом в базу обращаются?
Думаю просто большой запрос ручками написать, но интересно узнать как делают обычно уверенные пользователи ларавеля
>>3357365 >Я делал финтех Финтех, ну охуеть теперь. Название финтеха это конечно СЕКРЕТ? И вообще, жинтельмены верят друг другу на слово.
>Думаю научиться Вкатун-фантазер не палится. Сеньоры планируют "поучаствовать в проекте где..." или "устроиться в компанию где...". Как обычно вкатуны не понимают что такое командная работа, как происходит разработка в команде и что знания тоже по большей части командные.
>>3357532 Шиз, ты же сам борщехлеб мамин. По твоим постам видно насколько ты токсичное говно. Кто с тобой работать будет? За неделю заебешь кого угодно.
>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 таблиц вручную вводить? Чтобы потом у меня вся база данных по пиздец пошла из-за их миграций радикальных? Че происходит нахуй
>>3358015 И че, под каждый кейс скрипт писать? В БД же есть схема, зачем убирать работающий функционал? Может я чего-то не понимаю, думаешь я один такой? Я пока гуглил наткнулся на 5 тредов с такой же проблемой, причем за декабрь 2024, то есть достаточно свежие. Давно же могли сделать решение, ОПЕНСОРС ЖЕ
Аноны, нашёл такой вот старый инструмент от гугла - https://github.com/GoogleCloudPlatform/stackdriver-debugger-php-extension Полезен? Есть актуальные аналоги? Кто-то пользовался подобным? Описание звучит многообещающе: This library allows you to set breakpoints in your running application that conditionally capture local variable state, stack traces, and more.
Изобретают простой язык, чтобы было легче что-то делать. Все с радостью делают что-то легче. Потом всплывают проблемы и ошибки. Их начинают устранять вводят типизацию, вводят плюшки. Язык становится такой же сложный как и предшественники.
Изобретают простой язык, чтобы было легче что-то делать. ...
>>3362701 Кто раньше писал геттеры и сеттеры для классов? В этом языке можно было просто писать разметку и вставлять обработчик поста с формы в этом же файле.
>>3363041 >Кто раньше писал геттеры и сеттеры для классов? А кто НЕ писал? В любом языке можно намешать шаблоны конфиги и логику в одном файле. Только причем здесь простота?
>>3361631 Видимо да, я не очень разбираюсь. В xdebug есть возможность добавлять логи без рестарта все проекта и отправлять именно эти логи куда-то кроме консоли на сервере?
>>3364205 Ну как бы четвертая версия пхп все еще в свободном доступе. Устанавливай, пиши кислый код без сахара. Раз язык тогда был такой простой, то ты по эффективности выебешь двух сахарных макак точно. Расскажешь потом сколько заработал. Будем тебе всем тредом завидовать.
Как в Symfony правильно реализовать подключение к той или иной базе в зависимости от параметра в HTTP запросе? Неправильно я уже сделал.
Допустим:
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 и при этом за каждым из них может быть закреплено разное подключение. Такой сценарий мне не подходит.
>>3365085 Какой же охуевший долбоеб. Не хочет нихуя знать и читать. И одновременно с этим, нихуя не зная и не читая, рассказывает че там в доках есть, а че нет.
Такому говну можно помочь только пинком под сраку. Че ты приперся сюда, если нейронки "получше знают документацию"? Пшел нахуй.
Какая разница в MVC, например Symfony(я на ней сейчас пишу веб-приложение), между entity и model? Это не синонимы? У них разная цель? Например у меня есть entity Movie, в ней я создаю доп.методы, например, чтобы искать определенные вещи по ней, авторов и тд. Это и должно быть в entity, или надо в Model это обернуть и всю логику в моделе делать? Может кто-нибудь объяснить разницу?
Чел, я уже без тебя полностью разобрался в этом вопросе, прямо по сорцам Симфони и Доктрины. Как читается конфигурация, как создаются соединения и т.д. И сделал для себя опредлённые выводи. Ты просто балабол нулевой, лучше завались не говори вообще ничего, документацию ему почитать бля. Если не знаешь нихуя зачем ты вообще рот открываешь? Просто мимо пройди.
> Какая разница в MVC, например Symfony(я на ней сейчас пишу веб-приложение), между entity и model?
Никакой, Entity классы это и есть модель в классическом её понимании. Класс, который непосредственно представляет собой твои данные. Прям в буквальном смысле таблицу в базе.
> Например у меня есть entity Movie, в ней я создаю доп.методы, например, чтобы искать определенные вещи по ней, авторов и тд.
Это неправильно. Для различных запросов к базе, относящиеся к Movie тебе автоматически создан MovieRepository, это класс для запросов к базе, туда и помещай свои кастомные методы. Кароче представь что class Movie это твоя таблица. А class MovieRepository это класс запросов к этой таблице.
Но конкретно чтобы найти автора фильма, тебе ничего не надо писать. Если у тебя в фильме есть id автора, и у тебя таблицы фильм и автор связаны по внешнему ключу, то просто пишешь $author = $movie->getAuthor(); и у тебя в $author сразу будет не просто id автора, а уже соответствующая сущность, подгруженная из базы.
Он доебался до тебя потому что Entity это часть Doctrine. А типа это независимый проект, который только используется Symfony, но не является его частью. А типа то что они создаются мейкером у тебя в Symfony проекте так оно и понятно, ведь Doctrine таким образом интегрирован в Symfony.
>>3365884 Чел. Ты понимаешь что доктрина и симфони это разные проекты, которые создаются разными людьми? Симфони ничего ни про какие энтити не знает и их не создает.
Если с этим разобраться, то правильный вопрос должен быть: почему в ORM Doctrine используется термин Entity, а в ORM Eloquent используется термин Модель. Спойлер: потому что так захотели авторы проектов. Они ни перед кем не отчитываются, как захотели так и назвали.
И второй вопрос: каким образом Симфони реализует идею MVC. И какие термины использует в этой реализации. Спойлер: не MVC.
>>3324202 (OP) Аноны как закрывать задачи быстрее? Вкатился совсем недавно и я ебаный тормоз вроде несложные задачи а времени уходит миллион особенно если надо сделать что-то новое а не править старое я уже боюсь что меня скоро пидорнут. Стоит ли трястись за скорость или забить хуй если претензий нет пока что
Ты должен говорить об этом с начальство и коллегами. Они должны понимать где ты завис, чё у тебя не получается, чтобы подсказать тебе и ты продолжил дальше.
Как относиться в 2025 году к разработке бэкенда с нуля, без фреймворков? Не для какого-то бигтех-хайлоада на миллион запросов в секунду, а для малонагруженного мобильного приложения, сайта, или чего-то похожего. Вот в чём смысл пилить велосипед? Типа, давайте мы спиздим ОРМ из симфони, твиг из Ларавела, заполируем чистым PSR-ом и прикрутим самописное всё остальное. А поддерживать потом как? Словами "самодокументируемый код", "паттерны" и "у нас всё по писиэру"?
Плохо отношусь. Если начинаешь писать с соблюдением стандартов качества и принципов SOLID, получается что вместе со своим кодом параллельно пишешь ещё и фреймворк в миниатюре. А зачем? Другое дело то что если ты никогда не писал качественный код и не понимаешь зачем во фреймворке то что в нём есть.
С тех пор как все актуальные фреймворки разделили на отдельные модули никто не пишет бекэнд с нуля. Выше в треде написано как это поисходит >>3351316 Пишут ОБЕРТКИ над сторонними библиотеками.
Кто-нибудь может дать отзыв по поводу курса от Slurm Архитектура приложений пиши как разработчик, думай как архитектор? Хочу научиться грамотно создавать структуру проекта, рефакторить и уже осилить этот MVC до конца
Кто работал со стримами, объясните, пж: Как открыть соединение? Как читать сообщения? Циклом слушать или есть встроенная функция? Как работать с возвращаемым значением? Типа получаем маленькие сообщения одного типа, а в конце суммирующее другого. На генераторах такое делать? Как отследить что сообщения кончились?
В доке столько всего, что я пока нихуя не понял с чего начинать и что мне нужно конкретно
Где можно относительно безопасно и доступно фармить буквально на дошираки начинающему вкатуну с заданиями уровня "готовый код, надо поправить хуйню нейм"?
Я вот смотрю либы телеграм апи врапперов, везде сущности не описывают, а через магические методы заполняют, либо +- с такими же приемчиками динамически типизированного языка. Но это же плохая практика? Не видел продакшн кода на пыхе( Но не просто же так вводят типы...
Планирую свою обертку писать прописывая все поля статично, какие подводные? Кроме того что заебусь
>>3387340 >Но не просто же так вводят типы... Вводят для тех, кто наслушался подкастеров, которых на митапах гошники обидели. Мне прекрасно жилось без строгой типзации.
>>3389292 В винде и в линуксах этот сепаратор разный. Эта константа содержит разделитель текущей ОС. Вообще название пиздец конечно. Точно такой же пиздец как и на жс который document. querySelector().
Нет, это не нормально. В большинстве случаев константа DIRECTORY_SEPARATOR не должна встречаться в коде, потому что PHP корректно обрабатывает / как разделитель каталогов даже на Windows.
Пути к файлам и директориям должны храниться в конфигурации, а не быть разбросанными по коду. При необходимости можно использовать функции вроде realpath() или join() из Symfony\Component\Filesystem\Path для построения путей.
Если тебе действительно нужно генерировать пути программно, изолируй этот код в отдельный слой (например, сервис работы с файлами). Но если таких мест много, стоит задуматься: возможно, архитектуру можно упростить, убрав необходимость сложной генерации файловых путей.
P.S. я попросил ChatGPT перефразировать свой ответ тебе, чтобы он не был слишком резкий и высокмерный. По-моему у него норм получилось.
Создай в Windows папочку, в неё положи файл index.php рядом с этим файлом создай папочку 123 и в неё положил файл hello.txt и в него запиши строку hello. Потом в файле index.php напиши типа echo file_get_contents('123/hello.txt');
Выведется hello не смотря на то что в Windows вот такие \ слеши а не такие /
как свою среду разворачиваете, что используете? docker, обёртку над ним (lando, ddev, laradock и тд) или решения без контейнеров вроде laragon, OS, xampp?
сам пользуюсь docker engine внутри wsl, но возник затык с установкой xdebug
>>3390706 Я сижу на кубунте и даже здесь поставил docker desktop - наглядная панелька и нет пердолинга с правами на файлы. Но есть пердолинг с самим десктопом, но что поделать, линукс же