Предыдущий тред был тут: >>3174871 (OP)
Старые треды тут https://2ch.hk/pr/arch/ (М) (искать по слову php), а также на архиваче и в гугле по словам по словам "клуб изучающих PHP".
С чего начать - основы PHP
Наши уроки по PHP собраны по адресу http://codedokode.github.io/phpbook . Это учебник для изучающих с нуля. Там есть задачи, их нужно решать. Но если этот учебник тебе не нравится, можно читать любой другой. Или официальный справочник ( https://www.php.net/manual/ru/langref.php ). Или все сразу.
Если что-то непонятно, запости код и попроси подсказку или поищи задачу в архиве тредов.
Какой редактор использовать
Простые задачки можно решать в онлайн-песочницах вроде https://onlinephp.io/ , https://paiza.io/en/projects/new?language=php , https://www.programiz.com/php/online-compiler/ , но для программ посложнее лучше установить редактор. Есть (дорогая) IDE PhpStorm, есть бесплатный Netbeans и VSCode, условно-бесплатный Sublime Text. Чтобы в последних получить автодополнение для PHP, нужно установить и настроить PHP language server.
Вот инструкции по установке PHP на компьютер: https://github.com/codedokode/pasta/blob/master/soft/php-install.md
Гайд по командной строке: https://github.com/codedokode/pasta/blob/master/soft/cli.md
Что изучать дальше
Зная лишь основы PHP, сайт ты не сделаешь и работу не найдешь. Обычно от начинающего требуют чуть-чуть больше:
PHP, ООП, основы HTTP, HTML/CSS (основы верстки), JS, SQL, PDO, MVC, git, composer, какой-нибудь фреймворк (Laravel или Symfony), основы автоматического тестирования, основы linux, английский.
Вот неофициальный роадмап (карта того, что можно изучать): https://miro.com/app/board/o9J_lbUUBBQ=/
По многим из этих тем у нас есть уроки или задачки:
- для понимания, что такое веб-сервер, прочти урок https://github.com/codedokode/pasta/blob/master/soft/web-server.md
- для понимая MVC, работы с БД и формами, реши задачу про студентов, в ней много полезных советов: https://github.com/codedokode/pasta/blob/master/student-list.md
- далее есть более сложная задача сделать файлообменник на микрофреймворке Slim: https://gist.github.com/codedokode/9424217
- задача, близкая по сложности к реальным задачам на Laravel/Symfony: https://gist.github.com/codedokode/8733007
- после нее можно изучать автоматизированное тестирование https://gist.github.com/codedokode/a455bde7d0748c0a351a
- если ты все решил, переходи к Symfony или Laravel
- почитать про паттерны можно тут https://designpatternsphp.readthedocs.io/ru/latest/ (если ты не изучил ни одного фреймворка, то это будет рановато). Если хочешь увидеть примеры использования паттернов в реальном коде - ковыряй исходники Симфони, например Symfony Forms. Ну и скажем честно, начинающему без опыта, который не видел сложный код, паттерны понять будет сложно.
- для улучшения английского можно читать news.ycombinator.com - там много статей на тему IT.
Также, у нас есть задачи которые позволят тебе изучить или подтянуть до нормального уровня знания JS/HTML/CSS/SQL. Решай их параллельно с задачами выше.
- задачи на HTML/CSS: https://github.com/codedokode/pasta/blob/master/html/html.md
- хороший учебник по JS: https://learn.javascript.ru/
- задачи на JS: https://gist.github.com/codedokode/ce30e7a036f18f416ae0
- задача на SPA (сложно): https://github.com/codedokode/pasta/blob/master/js/spa.md
- проверялка решений на JS: http://dkab.github.io/jasmine-tests/
- задачки на SQL: https://www.sql-ex.ru/ (нужна регистрация), https://sql-academy.org/ru/trainer и немного наших задачек: https://github.com/codedokode/pasta/blob/master/db/databases.md
Что еще почитать
- Мануал по PHP — http://www.php.net/manual/ru/langref.php
- https://phptherightway.com/
- Книга: Профессиональное программирование на PHP Джордж Шлосснейгл
- Книга: Мэтт Зандстра — PHP: Объекты, шаблоны, методики программирования
- Про Git: https://git-scm.com/book/ru/v2
- Задачи на алгоритмы: https://codeforces.com/problemset
Дополнительно
- скачать учебник: зайди на https://github.com/codedokode/phpbook, нажми зеленую кнопку Code -> Download ZIP, распакуй на рабочий стол и открой index.html
- что будут спрашивать на собеседовании, если 0 опыта - будут гонять по теории, по официальному мануалу PHP, давать дурацкие задачки на переворачивание строк, гонять по SQL (транзакции, внешние ключи, напиши запрос), по JS (как сделать анимацию при нажатии кнопки), ну погугли, не ленись
- сколько времени надо изучать все это? - все зависит от тебя, в районе 24-48 месяцев
Я видел рекламу курсов ты ее тоже видел: что-то вроде "программируй на пайтоне + chatGPT не умея прогать"
По своему опыту, чатгпт плохо подходит для вопросов с контекстом. Например, когда у тебя есть проект, тебе нужно принять какое-то решение и тебе нужно сообщать не только об окружении проекта, но и часть бизнес-логики, чтобы он дал тебе совет. И то - совет может быть хуйня.
Дэ.
Меня позабавило, что когда начался шум с художественными нейронками, начали плодиться как грибы курсы в стиле "оператор нейросети".
А насчет программирования с нейросетью, я хз, что там за алгоритм у пхпшторм, но как я же я кайфую с его подсказками (угадывает контекст метода, свойства по другим свойствам, предлагает замену на более лаконичное выражение и т.д.). Самая любимая IDE из всех, которые я пробовал.
Написал какую-то шизофазию, даже мне пришлось перечитывать
Сколько еще миллиардов вечнозеленых надо влить в нейронки, чтобы они помнили контекст на нормальном уровне?
И не генерировали шизу, если не знают ответ.
попробуй битрикс, брат
Например, параметры методы - это не часть реализации?
То, что метод обязательно принимает строку как аргумент под именем name, это не часть реализации?
Прост видел определение реализации как то, что даже атрибуты объекта это часть его реализации.
Или тут смешение контекстов? Есть реализация объекта - его защищенные и приватные атрибуты и методы, а есть реализация как алгоритм выполнения какого-то метода?
Я понял, что неправильно задал вопрос.
В любом случае, параметры метода открытого метода это деталь реализации?
Спросить-то спрошу, а что, тут нет анонов, которые понимают ООП?
Суббота только началась, а ты уже наебнул.
Это тред трезвомыслящих адекватных людей. Алкашне и наркоманам надо идти в жс тред.
Ты давай проспись, ооп гений. На жабаскрипте в функциональном стиле пишут.
Интерфейс - это контракт. Объект, реализующий интерфейс обязуется что-то сделать или вернуть определенные данные, если ты отдашь определенные параметры на вход метода.
> То, что метод обязательно принимает строку как аргумент под именем name, это не часть реализации?
Нет, потому что, наблюдая снаружи, ты не можешь узнать, что происходит с этой строкой на самом деле. Может, она действительно где-то используется. Может она просто логгируется. А может, она вообще игнорируется, и реализация сама генерирует себе строки.
> атрибуты
Уточни, что имеется в виду под атрибутами. В php у объектов есть поля, которые принято называть свойствами, и методы. Атрибуты в php - это метаданные, аналогичные аннотациям в джаве.
https://www.php.net/manual/ru/language.attributes.php
Спасибо за ответ.
>Нет, потому что, наблюдая снаружи, ты не можешь узнать, что происходит с этой строкой на самом деле. Может, она действительно где-то используется. Может она просто логгируется. А может, она вообще игнорируется, и реализация сама генерирует себе строки.
Звучит убедительно.
Под атрибутами подразумевал свойства объекта.
Зависит от языка. Сигнатура метода которым ты можешь законно воспользоваться. В С++ например есть дружественные классы и функции.
>ориентируйтесь на бизнес проблемы и технологии
Например на такую технологию как битрикс?
Без знания ее, сложилось впечатление, что невозможно найти работу.
Например на такую технологию как битрикс. Или стать спецом по эластику. Или ниндзей по постгресу. И выпячивать свое конурентное преимущество везде где только можно и за счет этого жить. За счет ООП можно только на пхп книжках заботать, но не на пыхопроектах.
Интересный совет.
>За счет ООП можно только на пхп книжках заботать
Еще один угашенный. Какие нахуй заработки на книжках? Че ты несешь то блядь вообще? Кому ты нахуй че выпячивать собрался полудурок солевой?
Тебя блядь на собесе на любую пхп вакансию от 150к будут спрашивать одно и тоже: ооп, солид, паттерны. Какая нахуй ниндзя по постгресу, олень ебаный? Если берут дба, то ты там на пхп вообще писать не будешь.
Какой хуебес блядь, реально очко аж сгорело нахуй. Какие нахуй конкурентные преимущества, дауненок? У тебя форма резюме на хх, которая должна автофильтры хр пройти блядь, чтобы его вообще живые люди открыли. Ты либо апплаишься на вакансию с битриксом и у тебя резюме чисто под битрикс, либо под то на что апплаишься и там никаким битриксом не воняло нахуй.
Просто нихуя не одупляющий в теме еблан, несущий несусветную поебень.
Зазубрить для собеса и реально ради всей этой хуйни заморачиваться в проекте это две большие разницы.
Знанием ООП уже не удивить.
Да, это обязательные знания, но это не те знания, которые могут выделить тебя из толпы. Сейчас в резюме "знаю ООП" могут (могут в смысл "мочь", а не "соответствовать") написать как человек, который просто умеет объявлять классы, так и человек, который старается разбираться в ОО-концепциях.
Зы. Нормальными кейвордами для резюме в нормальную компанию явряются постгрес, еластик, кролик, кубер и прочее У ж точно не солид, и преречисление всех паттернов.
Да кто тебя спрашивать то будет, алеша? Тебя пару раз разъебут на код ревью, а потом выпнут нахуй.
Тебя с таким же успехом могут выпнуть, если будешь своим солидом ломать их легаси говнокод и задерживать таски.
На какую вакансию долбоебушка? Ясен хуй на жс макаку никаких нахуй солидов не надо, на го на всю эту ооп дрисню поебать, может и на петухоне. На пхп без этого не будет ни одного собеса. Открой блядь ютуб и посмотри выложенные туда собесы. И все, хуйню не неси.
И что с того собеса. На собес с улицы идет огромная очередь зазубривших паттерны волков. Ибо их зазубить легче всего. Конкурируй с ними.
>>255282
Пчел, это походу ни дня не работал. Ты будешь писать так как от тебя требуют. Может в пяти процентах случаев тебе и скажут: похуй пляшем, пиши как хочешь, вообще поебать. Но в девяносто пяти ты будешь нормально проектировать код или пойдешь на улицу.
Вообще человек, недельный код которого несколько человек ревьюило, такой хуйни не напишет. Самый большой спрос с тебя будет не от начальства, а от команды.
Да нихуя с того собеса. Можешь свои преимущества на улице расклеивать, ебанько. Ну или как ты там на работу без собеса устраиваешься.
Достаточно писать разумно. SOLID хорошо изучить и применять по мере возможностей и в рамках здравого смысла, а не как 10 заповедей. Все это может только с практикой прийти.
Что касается специализации на технологиях это совет не ждунам, а на будущее. Там так и было сказано. Не залипать на чистоте кода, а учить технологии и проблемы бизнеса. Естественно это через собесы не работает. Собесы для людей с улицы.
Собесы на стажера? Кто сеньку будет про солид спрашивать если по умолчанию предполагается что он лет 10 код пишет? Буду интересоваться как он задачи бизнеса решал и какими инструментами.
Типичная ситуация в конторе. Хочет контора на кубер переехать, нужно спеца который расскажет стоит ли постгрес в кубер пихать или нет. И никто из текущей команды ничего разумного не скажет. Потому что все "спецы по солиду".
Тупорылый хуесос-фантазер, специализирующийся на битриксе. Речь шла о том как ты, солевое уебище, будешь на работу устраиваться. И в резюме, и на собесе по пхп, ооп дрисня это обязательный пункт. Нет блядь вариантов вместо навыка писать нормальный код на ооп языке предъявить навык настройки постгреса.
И нет блядь в пхп сфере никаких особых специализаций. Ты либо садишься писать ооп код с командой, либо у тебя ДРУГАЯ ПОЗИЦИЯ блядь, и к пхп коду тебя не подпускают.
В пыхоконторе есть отдел девопсов и отдел сисадминов и их начальники никакого хуесоса со строны ковыряться в своем хозяйстве не пустят. Так же как и тимлид твой команды не дас жс макаке срать в его прод.
Какая другая позиция? Позиция пишем код на ларке, как на ларке принято. Решаем текушие задачи. Разгребаем легаси. Не запутываем код. Делаем по возможности расширяемо. Да где надо стратегии. Да где надо декоратор. Вкатуну это все блядь на одном нормальном петпроекте на ларке можно освоить.
Это фантазия. Обычно спецов нет. Девопсы тоже только докер файлы писать умеют и битрикс разворачивать. Мы ж про пыхо контору говорим?
Ну, объебышь, ты описал работу пхп программиста. И нахуй ты лечил про какую-то блядь специализацию? Постгрес ниндзя на ларке блядь.
>Мы ж про пыхо контору говорим?
В душе не ебу что такое пыхо контора. В любой крупной организации есть сайты и веб сервисы, и то и то может быть написано и пишется на пхп. Это нихуя не означает что там все на пхп пишется, может они вообще блядь андроид приложения продают, а на пхп у них пишутся црмы и опредни для персонала.
Это был совет куда расти. Да знания постгреса и эластика в в нормальной пыхоконторе решающие чтобы стать лидом или сенькой ключевым. А не чистые архитектуры. Нету в пыхоконторах 10 девопсов. И тем более понимающих, к примеру, как сделать платформу для паралельного парсинга с тысячами запросов в секунду.
На вебсайтах вообще архитектурой никто не заморачивается. Там важнее быстрее новую верстку для лендинга натянуть.
Ну ты внатуре со шприцом в вене там сидишь, объебышь?
Все блядь так и делают - нанимают специалиста по эластику чтобы он не админил эластик, а тимлидом на совещаниях сидел? Или блядь чтобы он за зп тимлида админил эластик? Ты просто рандомную хуйню высираешь сюда?
Бессмысленный пердежь. Где надо заморачиваются, где не надо не заморачиваются. Сайты разные бывают.
Ну хочешь оставайся спецом по применению СОЛИДА в ларке. Посмотрим как твоя карьера сложится.
Объебышь, то что ты называешь "специализацией" это просто смена профессии. Не сидит блядь толковый девопс на пхп вакансии, потому что девопсу платят больше. И не сидит дба пхп программистом, потому что он в рот ебал эти солиды, его язык - это баш и sql.
Никто тебе не говорил что быть тимлидом хуже или лучше, чем рядовым программистом. Тебе рассказали что действительно важно чтобы устроиться на ВАКАНСИЮ ПХП ПРОГРАММИСТА БЛЯДЬ.
>>255347
А что блядь по твоему "знания эластика"? Умение тюнить перфоманс и ебаться с индексами. Короче я правильно угадал - ты просто срешь рандомной хуйней, смысла которой не понимаешь.
Нет нормальных программистов без навыков девопса. Ты не сможешь спроектировать продукт, если не знаешь как эластик работает. И не можешь понять нужен он тебе или нет, например в том же парсере. Он ведь не только для поиска в магазине дилдаков используется
Хуй тебе не поможет быть незаменимым в ит конторе. А лишние знания по крайней мере не помешают. А вот чистая архитектура это не знания. Это философия. Играет роль только здравый смысл.
Кукеретическая солевая поебень, нахуя тебе "быть незаменимым в ит конторе"? Ты приходишь под проект на год, максимум два, получаешь опыт + строчку в резюме и уходишь на вакансию с +N% зп. Ты эту лечку про незаменимость и КАРЬЕРУ В КАМПАНИИ в кино увидел? Нахуя я вообще на такое чучело время трачу, пизда.
Ох уж эти сказки про хождения по конторам c x2. х2 бывает только пару раз, если первый раз за еду устроился. Лидом ты так не устроишься. Лидом предлагает кабан стать. Уж точно не за знания СОЛИДА.
То что спрашивают на собесах к устройству на работу не относится, а то что не указано в требованиях к вакансии относится.
Понял тебя, солевая поебень. На этом свой пиздежь сворачиваю.
Приведи пару вакансий на ПХП от 400тыр где в требованиях солиды и паттерны расписаны.
Что я могу относительно апача:
Установить апач с их сайта;
Настроить файл конфигурации;
Знаю, что такое .htaccess.
Как видите, я знаю ровно нихуя.
Какие темы нужно разобрать, чтобы не стыдно было говорить, что я умею работать с Apache?
Ниразу не спрашивали. Знать ровно столько сколько нужно для петов. И сейчас nginx или traefik или caddy
нжинкс стандартное решение
Максимально водянистая книга, повествование которой обо всем и одновременно ни о чем.
+ тошнит, что кому-то нравятся книги "дяди Боба": также максимально водянистые и советы уровня "чтобы писать хороший код - пишите хороший код".
Действительно достойные книги у линейки книг Head First.
+ много практических знаний;
+ авторы дают материал, начиная с основ, таким образом, знания наслаиваются одно на другое и формируется систематическое представление о предмете;
+ авторы действительно хотят тебя чему-то научить;
+ авторы понимают что такое когнитивная нагрузка и выдают материал постепенно.
Открываешь так нахваленную книгу "чистая архитектура", предвкушая преисполниться интересными знаниями, а потом читаешь пик.
Вангую, что соевые читатели наоборот скажут, что нет же! так наоборот читается веселее, как будто читаешь не книгу про программирование, а легкое чтиво!
Со мной что-то не так?
Ну, почему эти книги кому-то нравятся? Почему их кто-то советует? Куча воды, поверхностное обсуждение предмета, отсутствие систематического подхода. Это каргокульт?
Карго культ возникает когда человек верит в то что существует некий правильный, законченный алгоритм написания идеального кода. Он ищет что кто-то ему скажет: вот инструкция, делай так по шагам и будет заебись.
И когда он находит такую инструкцию, он начинает бездумно её воспроизводить, цепляясь к мелочам и веря в силу закорючек. Он не знает почему эта инструкция такая, какая есть, он верит что если её воспроизвести, то прилетит самолет получится идеальный код.
Для вкатунов это особенно характерно. Хули вы мне тут чешете про структурное программирование, вы мне откройте свой секретный алгоритм из пяти пунктов, с помощью которого вы все свои программы пишете. Вон бля у поваров есть точные рецепты, у столяров все по шагам, по полочкам. Слесарь изучает конкретные вещи и получает следующий разряд.
В том то блядь и сложность, что нет такого алгоритма. Нет никакого секретного рецепта. А твой код - это в первую очередь состояние ума. И книги эти ценят за то что они помогают организовать башку, а не за алгоритм создания табуретки.
Мартин и Фаулер известные инфоцигане. Они не закомитили ни одной строки в прод, зато десятилетиями раздают охуительные советы "делайте хорошо, плохо не делайте".
Эванса в список добавляешь? А Кнута? Четыре тома награфоманил паскуда.
Если речь идет о MVC и нужно отправить запросв БД, а потомпреобразовать данные в нужный формат (или правильней сказать поместить данные в нужные поля), тогда я правильно понимаю, что:
1) Запрос в БД и параметры к запросу SELECT, FILTER и т.д. пишутся в моделе:
2) А уже помещение результатов из запроса в нужные поля результирующего массива происходит в контроллере?
Это, если что Битрикс, но прошу, ответьте адекватно
>>255990
>>255991
К популярности Мартина действительно есть некоторые вопросы. Допустим принцип SOLID в чистой архитектуре описан не так, как его понимают большинство хотя справедливости ради об этом сам Боб и писал в книге. В Single Responsibility Principle у него описаны Акторы и что нужно учитывать их, разделяю логику под каждого Актора. Комично выглядел один известный блогер, который в своих уроках хотел объяснить, что такое SOLID, нахваливая Боба Мартина, говоря какой он царь и даже держа в руках книгу "Чистая архитектура". При этом он проигнорил то, что написано в книге, и начал говорить популярное мнение у модуля должна быть только одна причина для изменения. И ты такой: Падажиииии, мне тут все затирают, как Боб хорош, но при многие даже не знают, что в оригинале он этот принцип объясняет по другому даже вопрос по этому поводу задавал, многие тупо не понимали о чем речь. Помоему только Оп местного треда если он еще здесь, пытался ответить на вопрос. Остальные забили. И ты такой думаешь, тогда какая версия правильная?
>Акторы
Любой разработчик, кто хоть раз пытался разобраться в ебаном месиве из логов, проклял эту модель. Опытные придумали саги, нет, не хочу. Хочу пукать в кафку и чинить баги на ночных дежурствах, ведь покрыть юнит тестами эти хуякторы невозможно в принципе.
Может кто-нибудь привести код как скрыть операции, определенные в родительском классе? Если это возможно в php.
Случайно сага приклеилась...
Или это выражение просто постановка перед фактом, а не требование к тому, что кто пишет код?
Кажется, что так, но зачем делать акцент на этом?
> Допустим принцип SOLID в чистой архитектуре описан не так, как
его понимают большинство хотя справедливости ради об этом сам Боб и писал в книге
Справедливости ради, он эти принципы изначально и ввывел. Не хочу сказать что "придумал", но они именно от него пошли именно в такой комбинации и в контексте промышленной разработки .
> "у модуля должна быть только одна причина для изменения"
Мартин не против этого определения. Он объясняет по-другому потому что объяснение и определение это разные вещи. Определение должно быть максимально коротким, ёмким и однозначным. Объяснение может занять целую часть книги. У него так и занимает
>Определение должно быть максимально коротким, ёмким и однозначным. Объяснение может занять целую часть книги. У него так и занимает
Хорошему определению не нужны объяснения.
Просто люди:
- Сами не могут до конца отрефлексировать то, что они поняли;
- Не могут найти такие слова, которые точно бы описывали найденное ими;
- Не могут найти такие слова, которые были бы понятны другим людям.
Еще люди чато путают понимание и узнавание. Когда повторяешь прочитанное в другом источнике, возникает ощущение, что ты это знаешь. В мозгах закрепилась связь, но она неюзабельна для деятельности. Не можешь применить - не понимаешь. Не можешь объяснить - непонимаешь.
>Хорошему определению не нужны объяснения.
Это так не работает. Вот тебе определение интеграла. Математику здесь всё просто понятно и однозначно. Но если человек в 10ом классе учится и впервые сталкивается с интегралом, то ему вот это написать и спросить "ты понял?" не вариает. Нужно объяснять на примерах.
Объяснения нужны чтоб обучить кого-то новым знаниям. А определение нужно чтобы отделить понятие от других понятий.
>>257131
Блять, зачем я даже привожу какой-то пример с интегралом. Вот тебе то как Барбара Лисков сама дала определение своему "принципу".
Вот ты смог бы просто прочитав это всё понять? Если да то нахуя тогда тебе вообще книга Мартина. Просто увидел определение, понял, и не тратишь время читая примеры из жизни МартЫна
Пчел. Это определение вообще ни о чем не говорит. В дополнение к этому определению идет куча правил, под общим названием "Поведенческий полиморфизм".
Причем эти правила напрямую никак из определения не следуют. И при всей "математичности" определения, в отличии от настоящей математики его математичность на себе самом и заканчивается. Нельзя продолжить математические рассуждения и вывести из этой формулы, например, ковариантность, то есть одно из основных следствий этого "принципа".
Как итог: "Принцип подстановки" и "Поведенческий полиморфизм" это на самом деле зонтичные термины для большого списка правил, связанных между собой не математическими формулами, а скорее формально, по отношению к одной проблеме - невозможности в ооп наследования некоторых важных аспектов поведения.
Но мама учила меня не обманывать...
"Пусть q(x) является свойством верным относительно объектов x некоторого типа T. Тогда q(y) также должно быть верным для объектов y типа S, где S является подтипом типа T".
"Принцип подстановки Лисков - принцип, согласно которому, если у нас есть класс A и отнаследованный от него класс B, то если мы заменим все использования класса A на B, ничего не должно измениться в работе программы, ведь класс B всего лишь расширяет функционал класса A, а не замещает".
Какое определение больше нравится?
Как по мне, с точки зрения обучающегося, Барбара Лисков обосралась, дав максимально убогое определение, на которое хочется один раз взглянуть и тут же забыть.
Я хочу сказать, что есть хорошие определения, есть хуйня определения. Хорошее определение читаешь и сразу же или скоро понимаешь что хотел сказать человек. Если ты создаешь определение, а большинство людей разводят руками или устраивают холивар что же ты все-таки хотел сказать, то ты обосрался со своим определением.
Определение выше, если что не мое, но оно гораздо лучше определения Лисков. И у меня не было цели сесть и тут же определиться с идеальным определением этого принципа.
двачую
Наверно потому что что принцип подстановки Лисков не только про наследование https://php.watch/versions/8.1/intersection-types
LSP не только про классы и не только про наследование. Он про то, что контракты актуальные для T должны соблюдаться в S. Даже если эти контракты явно не описаны в коде.
Например, нарушением LSP будет ситуация, когда для Т важно, чтобы он не оставлял побочных эффектов своей работы, но его подтип S их оставляет.
Или когда для Т важно укладываться в определенные лимиты по времени или памяти, а S их пробивает.
> Определение выше, если что не мое, но оно гораздо лучше определения Лисков
Оно не "лучше". Определение Лисков более абстрактное и общее. Твоё касается только классов и наследования, а здесь просто категория включения.
То есть если наша программа принимет на вход файл, а мы подали туда картинку - это законно потому что картинка это тоже файл.
Терпи. Такова участь любого кодерка. Можешь потом как на удалёнку уйдёшь купить себе стол регулируемый, чтобы периодически работать стоя. Делай зарядку ежедневно, ходи пешком час в день, спи нормально, не нервничай, побольше терпи, ешь нормально, не ешь хуйню вроде бп или чипсов, не пей енергетики никогда, не пей алкаху, не кури, не читай новости, асбтрагируйся от реального мира, расслабься щавелем если возможности позволяют.
блять, неужели пхп живее всех живых что ли?
кстати я спросил а почему мак именно а не винда или линукс мне сказали просто мол винда заеб линукс заеб а конкретно ничего не сказали в чем суть мака
да хз, спасиб что просветил байтоеба =)
Потому что ВСЕ, довыебывались. Сидели в своем болоте, верещали: Мулленвег наш! Вардпресс ето и есть интернет!
Ну дождались, епты. Выбили табуреточку. Мулленвег дал - мулленвег взял. Теперь 60% интернета будет на жабоскрипте, а пхп макакам провели по губам и их ждет еще большая стагнация и гораздо более быстрое забвение, чем они себе фантазировали.
Ты статью почитай. Они с серверного рендеринга перешли на разделение фронта и бэка. На бэке пыха
Ну даже если и так. Дальше по твоему че будет?
Наняли кучу джаваскрипт макак и почти весь новый код теперь пишется на жабаскрипте... хммм... Ну тут явно блядь признаки того что пхп туземун, щас нахуй попрут вакансии ебать. Или может оставшееся пхп говно потихоньку перепишут на жабаскрипт понос, а оставшихся пхп говнокодеров выпнут на мороз?
Хватит коупить боевыми картиночками. Пхп в бекэде жив ровно до тех пор пока на тайпскрипте не наебашут популярный аналог ларавеля. И тогда пхп кал смоет мгновенно, и начнется битва за бекэнд жабаскрипт говна с петухон мочей. И тут уж я ставки делать не берусь - хуй знает куда вкатывается сейчас больше деградантов и пицценосцев.
>Ну даже если и так. Дальше по твоему че будет?
Да ничегло блять не будет. На бэке пишут апи, фронт на реакте. Даже в пхп мире.
> Пхп в бекэде жив ровно до тех пор пока на тайпскрипте не наебашут популярный аналог ларавеля
Ну блять пусть пишут. Пока там только говнище не операбельное. По сути пыха лучший варик из php/node/python братии.
Да типа уступает go/java, но там немножко разные сегменты рынка. Джава немножко не для малого бизнеса. Го тоже можно соснуть. На го имеет смысл переписывать когда пыха уже не справляется, но:
1) Пыха справляется всё лучше,
2) До этого ещё дожить надо чтоб пыха не справлялась.
Можно потратить пару месяцев на самообучение и вкатиться с нуля и без опыта на удалёнку в какую-нибудь контору. Тоже по-своему неплохо.
на ноде быстрее + статический анализ более развитый
можешь даже не спорить, писал на том и другом
+ с микросервисным подходом пыха сосет, потому что там воркеры с асинхронностью и мультитредингом нужны с развитыми инструментами синхронизации, а не оопешный жабокаргокульт. Для асинхронности нужен нормальный ивент луп и нормальная стандартная библиотека под него типа asyncio
>Ну блять пусть пишут. Пока там только говнище не операбельное. По сути пыха лучший варик из php/node/python братии.
Хуипутало, какая нахуй "node братия" блядь? Речь шла про TYPESCRIPT сука. Это компилируемый язык общего назначения, там есть и ооп и функциональщина и строгая типизация и дженерики. На нем блядь VSCode написан, с которым тут шизики бегают. По сравнению с пхп это блядь ламборгини и запорожец нахуй. Тайпскрипт ближе к жабе и шарпу, чем пхп параша. Это блядь по сути клон шарпа для джаваскрипт макак.
Вот такие кретины и думают что пхп стронг? Он даже не одупляет что у фронтендеров уже давно вместо ванильного жс сблева продвинутый язык энтерпрайз уровня, в развитие которого миллиарды въебаны. Да я заебусь перечислять список фич, по которым тайпскрипт прямо блядь сейчас лучше для бека чем пхп кал. Какой же тупой долбоеб.
>Хуипутало, какая нахуй "node братия" блядь? Речь шла про TYPESCRIPT сука. Это компилируемый язык общего назначения, там есть и ооп и функциональщина и строгая типизация и дженерики.
Ставишь на пыху псалм и вот тебе типы и дженерики, чел.
А ещё в пыхе можно включить строгую типизацию и получить типы в рантайме.
> Он даже не одупляет что у фронтендеров уже давно вместо ванильного жс сблева продвинутый язык энтерпрайз уровня, в развитие которого миллиарды въебаны
Продвинутость - это когда КОСТЫЛЯМИ в JavaScript добавили те штуки которые были в ActionScript(Flash) в 2006?
Это аннотации чел. Компиляции нет, чел. Проблема в том, что ты не видшь разницы, со своей колокольни, а она есть, чел.
Значит ты не понимашь что такое компиляция в контексте статического анализа. Это не про генерацию машкода ШОБ БЫСТРО БЫЛО. Это пруф корректности кода. Пока ты не напишешь правильный код, ты не получишь работающий рантайм. Все или ничего. Правда тайпскрипт слишком уступчивый в этом плане и еще от конфига компилятора зависит.
Читал советы и советуют создать два контроллера - под апи и веб, а общую логику вынести в сервис, это норм советы?
Да, это хороший совет. Вынести логику приложения в сервис, а на контроллерах оставить только логику работы с http запросами и ответами.
Еще раз, дегенерат.
1. Typescript гораздо ближе к java, c# и go, чем php. Это блядь факт.
2. Фичи, которые в нем есть в пхп спиздят через годы, а дженерики походу никогда.
3. Он не сожрал бекенд нишу пхп только потому что пишут на нем дегенераты, которые не понимают какой алмаз им подарили. Фронтенд ебанаты натурально ноют что им компилятор срать в штаны мешает и хотят типы в аннотации переносить.
4. Весь этот пхп пердежь закончится как только появится фреймворк, который как ларавель позволит фронтенд полуебкам в джва клика генерить круды на бекэнде. Быстрый рантайм и сервер у них уже есть.
>как-то
У ларке по умолчанию в файле bootstrap.js
https://github.com/laravel/laravel/blob/11.x/resources/js/bootstrap.js
window.axios.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest';
На беке у ларавел реквеста ест метод
https://github.com/laravel/framework/blob/11.x/src/Illuminate/Http/Request.php#L277
Ларавел реквест наследуется от симфони реквеста
https://github.com/symfony/http-foundation/blob/7.1/Request.php#L1696
Где собственно проверка заголовка и делается
Учитесь читать исходники, а не зубрить "правильную" магию
>Учитесь читать исходники
Ты, конечно, молодец, что читаешь исходники.
То, что ты мне скинул, разве это то, что мне нужно?
Запрос по апи не обязательно же AJAX или я чего-то не понимаю?
1) Запрос из жса это аякс по определению
2) Я скинул пример как в ларке устроена по дефолту проверка аякс или не аякс
Если ты из бутстрап.жс не удалил строчку с добавлением заголовка в axios то метод реквеста ajax() должен работать
3)Если делаешь запросы fetch то добавь заголовок
X-Requested-With: XMLHttpRequest
самостоятельно
если у тебя апи могут дергать как угодно, то тебе естественно надо два эндпоинта
ПС С двумя эндпоинтами и выделением сервиса для получения данных тоже может быть говнокодность. Типичная эволючия кода
1) Делаем две ручки для / и /api Получаем список клиентов из репозитория. Красота
2) Надо к клиентам добавить статистику их обращений. Делаем SQL мегапортянку в репозитории
3) В админке нужен раздел с клиентами, статистикой обращений и статистикой платежей. На сайте статистика платежей не нужна. В апи статистика платежей только при авторизации. Делаем композицию из сервисов и репозиториев вместо одного репозитория. У каждой ручки свой сервис, который зависит от сервисов с общими данными
4) Блять долго страница сайта открывается, надо кешировать статистику обращений
5) Блять админка тормозит. Надо кешировать статистику платежей и обращений.
6) Блять в апи нужны актуальные данные. Не надо кешировать статистику
7) Блять удалите из апи статистику сделайте отдельную ручку
Классика. Джуны пишут микросервисы.
Достаточно было просто оптимизировать sql запросы, а не пердолить 100500 сервисов каждый со своей базой. Для снижения нагрузки использовать шардирование, ведь юзер Вася не видит платежи юзера Пети, значит, их можно разнести на разные железные сервера. Кеширование - это вообще зло, там всегда получается лютый пиздец.
Это эволюция рядового монолита на ларке рядовой B2U компании, когда очень любят разделять код, ЧТОБЫ НЕ ПОВТОРЯЛСЯ
Как лучше?
Добавить все-таки геттеры (+ т.к. для меня геттеры зашумляют код, я хотел бы вынести их в трейт, норм тема?);
Сделать метод, который возвращает ассоциативный массив с значениями нужных свойств.
Твои тупорылые посты зашумляют тред, вынеси их отсюда нахуй, норм тема?.
Да ты что, правда, зайка?
Eloquent объекты сами по себе выполняют роль view model. Что мешает получать значения через $record->property?
Если хочешь меньше магии, лучше использовать другую ORM.
Чел, node нужен для того чтобы крутить приложеньку на реакте которое дергает ручки бэкенда и выдаёт формочку пользователю.
Бэк при этом пишется на языках для бэкенда типа go, php, java
>Бэк при этом пишется на языках для бэкенда типа go, php, java
Бля, ебанько, тебе русским языком говорят что пхп отличается от джавы БОЛЬШЕ чем тайпскрипт. А если разобраться, так он эту джаву по функционалу обогнал давно.
В тайпскрипте есть все чтобы писать почти любой код, в любом стиле.
1) Асинхроннность? Есть промисы, есть асинк авейт, есть треды, есть корутины. ЕСТЬ ВСЕ.
2) ООП? Есть классы, есть интерфейсы, трейты, дженерики, области видимости. ЕСТЬ ВСЕ.
3) Функциональщина? Есть монады, есть функторы, функции как типы, каррирование. ЕСТЬ ВСЕ.
4) Чистый код? Есть строгая типизация, есть компилятор, есть модульность, тесты, линтеры, фиксеры. ЕСТЬ ВСЕ.
На фоне всего этого изобилия пхп как бедный, горбатый, хромой и кривозубый родственник. Достаточно просто посмотреть на реализацию иммутабельных объектов, например, или коллекций. Какие коллекций? А бля, да... в пхп же нет нихуя никаких коллекций из коробки, а иммутабельность ты давай как-нибудь сам корячь. Зато в пхп есть массив (который нихуя не массив) - коробка с сюрпризом, каждый раз открывая можно получить в подарок охуительный баг.
На тайпскрипте прямо сейчас можно делать все то же самое что и на пхп, только быстрее и с большим комфортом, так еще и дохуя того чего в пхп нихуя сделать нельзя. Все это жо сих пор не пишется только потому что контингент это тупорылые фронтенд макаки, для которых это ваш бек и это ваше ооп это сложна.
Но как только им дадут простой инструмент, который большую часть работы будет делать за них и они почуют себя охуительными бекэндерами, тогда все. Ни один долбоеб не станет нанимать себе каких-то отдельных бекэндеров, просто будут брать пачку тайпскрипт макак, которые будут хуярить все.
все так, только вот я за полтора года работы в галере ни разу не видел что бы фронты себе ts затаскивали в проект без серьезной необходимости и пары дней обсуждений этого вместе с тим лидом.
Why is this, bro?
Основные тейки тимлидов
1) Я этого не знаю
2) Учить это не собираюсь
3) Ты съебешься а мне с этим жить
В чем они не правы?
Почесать за ушком...
бесконечные sudo get-apt install
Постоянно чего-то нехватает и что-то на что-то ругается. И это при чистой только что поставленной Mint/Ubuntu!
Я теперь не верю что кто-то на линуксе РАБОТАЕТ. Я год назад страничку авторизации на пхп делал. Короче на винде всё JUST WORKS. Я не помню чтобы вообще какой-то пердолинг был. Я просто НЕ ВЕРЮ теперь что на линухе кто-то что-то реально делает. Кроме линуходебилов которые сидят на линухи чисто ради сидения на линухе и ковыряния в нём
Какой дистрибутив линукс? Убунта? Минт? Поп? Что вообще у пхпшников в ходу. Ну хорошо, WSL у меня уже стоит. Ну так ведь чтобы настроить его для работы с пхп будет точно такой же пердолинг как и с виртуалкой на линухе или с отдельным компом на линухе. Всё те же бесконечные sudo apt get install когда как даун сидишь чё-то скачиваешь пока оно не перестанет ругаться.
>>261079
Я даже пытался пердолиться через homebrew. ОН ТОЖЕ СУКА НЕ РАБОТАЕТ ИЛИ РАБОТАЕТ НА ПОЛ ШИШЕЧКИ
пишешь brew install php и тебе вылезает какая-то хуита что надо установить сначала curl, git и т.д. Устанавливаешь ты всё это и эта хуита заработала! потом пробуешь другую команду и опять стена текста из ошибок. Это просто пздц. Я пробовал и на виртуалке это всё делать и на отдельном ноуте.
Шо за бред. Он все свое устанавливает с пхп
brew info php
==> php: stable 8.3.10 (bottled), HEAD
General-purpose scripting language
https://www.php.net/
Not installed
From: https://github.com/Homebrew/homebrew-core/blob/HEAD/Formula/p/php.rb
License: PHP-3.01
==> Dependencies
Build: httpd ✘, pkg-config ✘, xz ✔
Required: apr ✘, apr-util ✘, argon2 ✘, aspell ✘, autoconf ✘, curl ✔, freetds ✘, gd ✘, gettext ✔, gmp ✔, icu4c ✔, krb5 ✔, libpq ✘, libsodium ✔, libzip ✘, oniguruma ✘, openldap ✔, openssl@3 ✔, pcre2 ✔, sqlite ✔, tidy-html5 ✘, unixodbc ✘, bzip2 ✔, libedit ✔, libffi ✔, libxml2 ✔, libxslt ✘, zlib ✔
Какой у тебя линух? Дистрибутив. Подскажите пожалуйста дистрибутив линукс чтобы я мог на него накатить homebrew и через homebrew уже накатить пхп и mysql без часового пердолинга
Всё правильно сделал, братишка.
sudo apt-get update && sudo apt-get upgrade
У тебя может индекс пакетов протух. Или у тебя у апта зеркала настроеные не работают нормально. Часто минт этим грешит, так как он предлагает локальные зеркала выбрать и можешь рандомно хуйню выбрать которая не обновляется. Особенно если ты в Азии сидишь. Там что-то как-то долго обноляются зеркала.
перед установкой делай sudo apt-get update чтобы индекс обновить
другая причина ты мог апт сломать подключив кривой ппа и установив оттуда что-нибудь что привело к конфликтам
друга гричина ты во время установки пакета установку прервал и у тебя зависимости не доустановились.
Спасибо, минт попробую еще раз
>Работяги наносеки, на чём вы работаете?
На линуксе всю жизнь, убунта
>Постоянно чего-то нехватает и что-то на что-то ругается
Руки из жопы растут. Две минуты стоит загуглить "ubuntu apache php" и он тут же выдаёт статью https://www.digitalocean.com/community/tutorials/how-to-install-lamp-stack-on-ubuntu Минут 10 устанавливается и всё работает. Проблема не в линуксе, проблема в тебе.
>Кроме линуходебилов которые сидят на линухи чисто ради сидения на линухе и ковыряния в нём
Я минималист. Мне кроме браузера, видеопроигрывателя и торрентов почти ничего не надо. Я не играю в игры. Максимум читаю телеграм и пишу в ворде документы. Меня всё устраивает, не ебёт мозги винда лицензиями, антивирусами и прочей хуетой.
Двачую во всех 3х пунктах.
Вот есть в Вордпрессе файл страницы front-page.php и допустим там есть html код:
<h1>Последние новости</h1>
<a href="какая-нибудь ссылка">
Смотреть все новости
</a>
Я пиздец как хуево понимаю уеб безопасность, поэтому объясните плес надо ли текст внутри тегов санитайзить или эскапировать? Типа так написать?
<h1><?php echo esc_html('Последние новости') ?></h1>
<a href=<?php echo esc_url('какая-нибудь ссылка') ?>>
<?php esc_html('Смотреть все новости') ?>
</a>
Вот чат жпт говорит что обязательно надо эскапировать это всё.
Но я не понимаю вообще нихуя. В результате чего в тегах захардкоженный текст может измениться? Типа хакер в админку залезет? Ну тогда блятб ему эти эскапирование тоже не помешает, он его удалит ровно точно также как исправит текст.
Экранировать нужно пользовательский ввод. Если ты выводишь на страничке, например, $post->content, который ввел пользователь, экранирование стоило бы применить, т.к. недобросовестный пользователь мог вместо содержания поста ввести что-то вроде <script>.
Если ты выводишь на страничке обычный текст, его не обязательно экранировать.
Спасибо огромное, я просто совсем не понимаю уеб безопасности и такой ахуел и подумал неужели есть способ как-то не взламывая админку взять и поменять хтмл разметку. Спасибо большое.
Я увидел следующий пример в интернете:
$untrusted_input = '1 malicious string'; // will evaluate to integer 1 //during loose comparisons
>if ( 1 === $untrusted_input ) { // == would have evaluated to true, but //=== evaluates to false
echo 'Valid data';
} else {
echo 'Invalid data';
}
И я обнаружил, что если изменить на == и получить
if ( 1 == $untrusted_input ) { // == would have evaluated to true, but //=== evaluates to false
echo 'Valid data';
} else {
echo 'Invalid data';
}
То всё равно будет выводиться 'Invalid data' и оказывается нюанс в том, что == дает 'Invalid data' - это в ВОСЬМОЙ ПЫХЕ.
А если поставить пыху седьмую, то == дает 'Valid data'
Такие дела, вот почему-то в восьмерке так стало
Приведение типов может отличаться от версии к версии, поэтому не стоит полагаться на наблюдаемое поведение. Лучше всего пользоваться строгим сравнением.
Ты наткнулся на префиксную числовую строку. До восьмерки их использование было легитимно.
Ничего прикольного, именно из-за этого пхп заслуженно называют куском говна.
Собрался что-то проверять или сравнивать? Делай явное приведение типов:
if(1 === (int)$untrustedInput) или if(is_int($untrustedInput))
А еще лучше указывай нужные типы в сигнатуре функции:
function checkInput(int $untrustedInput): bool
У тебя в коде должны быть только строгие сравнения === и все. Апельсины сравниваются с апельсинами, а кошки с кошками.
Пиздоглазое хуипутало, не читающее тред, речь шла о
>Приведение типов может отличаться от версии к версии, поэтому не стоит полагаться на наблюдаемое поведение.
>Пошел нахуй.
Приятно слышать, в следующий раз можешь не рассказывать куда ты пошел.
Справедливости ради, в документации описано некоторое стандартное поведение при кастинге значений с обещанием не изменять его без предупреждения.
По поводу MVC.
Я создал метод, который делает запрос в бд. Затем я создал второй метод, который преобразует данные из запроса первого метода. Дополняет его другими полями при помощи Related сущностей и т.д.
Грубо говоря мне нужно получить информацию о товарах. Я делаю запрос в БД, Потом я привожу некоторые данные в правильный вид. И еще добавляю новые поля.
Так вот, второй метод был избыточен или нет? И еще вопрос, нужно ли как то объединить два этих метода в один? И последний вопрос. Где все эти методы, включая объединенный метод, нужно поместить? В модель?
Учись составлять лаконичные вопросы с достаточным условием, в противном случае будет сложно получить какой-то ответ. Тем более корректный. Да и банально уважение к чужому времени.
Из твоего поста неясен контекст, в котором твой вопрос мог бы иметь смысл. Общий ответ: получение данных и преобразование данных - это две разные логики, которые следует отделить друг от друга.
Простите-извините, уважаемый господин!
Тема привидения типов скипается всеми психически здоровыми людьми, игнорируется, насмехаются и используется только строгое сравнение.
Пхп считают говном из-за говнокодеров из нулевых которые клепали сайты на коленке, без базовых рефлексов анальника, из-за которых я тебя и обссыкаю сейчас. В настоящее время, пхп нормальный бекенд язык, а говнокодеры это волочащийся за ним мем как и ежегодное его умирание.
Пошел нахуй еще раз.
Пока в пыхе не будет корутин из коробки без всяких китайских свуле хуюле, пхп не нормальный бекенд язык.
мимо шел нахуй
Тоже самое что использование генераторов, для этих целей. Без ивентлупа они смысла не имеют.
Ну че, психически здоровй хуипутало, >>261793 вот это тоже из нулевых? Это типичный представитель, как и ты кстати. Вы друг друга стоите.
Да просто на этот тред посмотреть - это же магнит для кретинов. Несколько лет назад были хоть минимально адекватные люди, а сейчас вот такие вот. Все что просочилось сначала через нормальные языки, а потом через петухон и вротенд. Отборные. Как на подбор. Один методы в mvc пересчитывает, другому чат жпт говорит, а он эту хуйню сюда тащит.
Тут хоть один кто реально вкатывается в это парашу остался? Или только шизики с ежедневной шуткой про битрикс?
И все таки правильней каждый раз вызывать их друг за другом? Или объединить эти методы в один метод?
И метод, в котором вызывается метод, где джва этих метода вызываются друг другом.
хоть кто-то что-то деальное написал, спасибо большое анонче
А вкатывался бы в битрикс, то уже давно работал бы и зарабатывал свою сотыгу
Ты и так в пердиксе
>только вордпресс
Так это даже лучше чем битрикс, тебе наоборот повезло что не надо учить эту багованную и сломанную 1с залупу
В Укр вордпресс считается почетным местом у параши вместо битрикса - для тех, кто не смог во фреймворки вкатиться.
>Пока вкатывался, вышли 3 версии 8.1.,8.2, 8.3 php и 1 ларвлевь. Зимой еще 8.4 и 12 лавра выйдет. Пиздос
И компании всё ещё сидят на 7.4
В своем городе вакансии хоть чекал? А то когда начнешь искать работу окажется что там один битрикс и мнение о языке резко поменяется
А у меня литералли одна вакансия с ларой, а остальные намешаны с битриксом. Эх, придется влетать через битрикс, но да похуй.
Нет.
Конечно, стоит, учи JavaScript и PHP, даже мелкий проект будет хорошим для резюме. Стоит делать всё, что хочется, плохо, если ничего не хочешь делать. А про PHP, я ни разу не троллю, уверен, что можно найти первую работу за 70-80к! Завидую тем, кому работать не надо, можно посвятить сколько захочешь разработке!
Спасибо! Буду внимательно читать документацию и писать коды.
>А про PHP, я ни разу не троллю, уверен, что можно найти первую работу за 70-80к!
Главное верить, а то получится история как у этого чела >>2727117 (OP)
Он пожует за 30к в месяц дошик пол года-годик, потом сможет рисовать себе какой угодно опыт
Как это работает? Вот условно я полгода поработал по профилю, до этого по околоит хуйне работал примерно столько же. Ну, допустим, спиздану, что на прошлой работе тем же занимался, получается год. А как дальше крутить? Научите, плиз...
>как
Работаешь пол года и во время этих пол года учишься активно под помидора чтобы на будущих собесах хоть немного правдоподобным быть.
Почему меня возбуждает этот мужик? Его голос, его видео, его личико. Интересно, какой у него член?
Какие же красивые мальчики среди php разработчиков!
Я гетеросексуал, если что.
У php в принципе самое лучшее комьюнити. Все-таки, в php идут не после курсов от инфоцыган, а по зову сердца.
Перед собесом поставь рамку, будто ты уже откликнулся на жирный оффер, но спустился к ним с небес, чтобы посмотреть, предложат ли лучше.
После этого не должны спрашивать, а наоборот, будут вылизывать тебе пяточки, чтобы задобрить.
-Блин, вы такой классный, мы готовы вам предложить 9999$, осталось только получить от вас электронную трудовую с 10 годами опыта! Сможете в течение трех дней отправить?
-Аэаэаээаэа
Как этого момента избежать то?...
СБ везде есть.
Твоя задача сделать напиздеть так, чтобы решение о найме приняли во время собеса, а не после. Если решение уже приняли, то тебе поверили. А то что там хрюша увидит потом в трудовой, это ни на что не повлияет.
То же самое есть в С++, где синтаксис с точкой используется для объектов, а синтаксис со стрелочкой - для указателей на объекты.
24
Интегратор
Разрабом пока опыта мало, говорят
И то после испытательного срока че делать решат дальше
Наоборот он ближе к бизнесу, к кабанчикам, наберет себе постоянных заказчиков и будет жить поживать независимо от кабана, а ты все время будешь боятся увольнения.
Не сказал что боюсь так сильно. Но перед новыми людьми всегда теряюсь или волнуюсь.
В целом люди раздражают, утомляют, отвлекают.
И я не люблю жать руки. Грязные! Буэх
>>265074
Чёт мда. Куда ниперекатывай: а везде надо на подскоке и со всеми трындеть
Если знал что так в будущем произойдёт, шёл бы в шизы на постоянку. А в силу возраста никаких дипгнозов не ставят выше лёгкой депры и тревожности
Будет ли плюсом изучать всё это под линуксом? Или же нет смысла подготавливать спец среду и адаптироваться к ней?
Да, лишним не будет. Знания линуксов пригодятся, когда начнёшь работать с докер-контейнерами.
ДА. Разработка бека для веба на винде - это как ездить на вот такой детской машинке с педальками. Да - едет, есть руль и педали, но до настоящего авто с любыми костылями не дотянет. С девом для фронта, для мелкомягкой экосистемы - наверное пойдет. Но для бекенда веба - костыльно.
Конечно будет. Разработка под линуксом связана с меньшим числом хуйни, потому что запускаться на проде это всё будет под линуксом. А все эти docker for mac и wsl всегда дырявый кал. К тому же, 90% знания докера это знание как в линуксе чет сделать. Dokerfile будет проще писать и тд.
Ну ты и говнокодер необразованный. Все знают что бизнес логику нужно писать в контроллерах. А в моделях нужно передавать приветы комментариями на японском, срать геттерами и писать sql запросы.
Хуйни не неси.
Маняоправдания - сначала написать чушь, а потом оправдываться тем, что "собеседник задает глупые вопросы", зачем ты перекладываешь ответственность за свой глупый ответ на меня?
Ларавел и архитектура вещи несовместивые как масло и вода. Пиши как все делают - анимичную архитектуру. Модели ларавела как шлюз к бд. Для изоляции кода бизнес логики от моделей и кверибилдера - репозитории. Бизнес логика (БЛ) в сервисах.
Сервисы с БЛ самая абстрактная часть. Поэтому сервисы должны зависить только от интерфейсов. Контролеры - конкретная инфраструктура. Занимаются валидацией и передачей дтошек в сервисы. Сервисы валидацией реквестов не заниаются. Они только ассерты могут делать согласно БЛ.
Это то что в рядовом лакопроекте бывает. Для проектов на ларке обычно этого хватает с головой. Оверпроектированием на пыхе только вкатуны занимаются из-за фрустрации что не попали в серьезный проект.
мимо шел
Где я написал чушь? Все по пунктам расписал. Тебе просто почему-то не понравился мой ответ, хотя ты сам признал что нихуя в вопросе не понимаешь.
Котаны, посоветуйте каких-то туториалов по этому вопросу. Чтобы я не писал хуйни в учебном проекте, его же все таки кабану на собесе показывать буду. Пушто я только не давно узнал, что не следует срать в контрллерах
Спасибо огромное анон. Перешёл по ссылке, аккуратно проследовал по гайду + пара видосиков с ютуба. В общем всё как по маслу накатилось
Часто вижу вакансии фреймворк + vue/react. Я в современный js лезть боюсь пиздец
В нынешних реалиях адекватно. Главное в битрикс не лезь и все будет нормально, а там уже через время перекатишься полноценным фронтом/беком
>Адекватно ли сейчас работать фуллстеком
Каким фуллстеком блять? Долбоёбина лесная, вы совсем поехали на этих англицизмах. Испокон века это называлось ВЕБ-РАЗРАБОТЧИК!
Фулстек - это не веб-разработчик. Это такой ебаный человек-оркестр, jack of all trades, который одной рукой правит разметку, другой дописывает ямлы. Получается всегда полная хуйня.
>Всегда
В программировании понятие хуйня очень субъективная вещь. Да и как много зависит от опыта и интеллекта. Ты можешь быть специалистом по одной библиотеке и все равно обосраться перед каким-нибудь прошареным "фулстеком".
>Фулстек - это не веб-разработчик. Это такой ебаный человек-оркестр
Не пизди. Какой оркестр? Ты чё долбоёб? С каких пор "сделать сайт" приравнивается к оркестру? С какой стати чтобы сделать один сайт нужно два человека? Тем более давно есть фреймворки типа next.js, где и то и другое можно на одном языке писать. Типа компоненты я писать могу, а тут сразу ой всё, у меня лапки, я не бекендер. Хотя и там и там typescript. Истории охуеть просто.
Пошел нахуй
Просто ты долбоеб который делает сайты визитки или инет магазины за 30к руб в регионе, в офисе на окраине города, где один заказ раз в 2 месяца. Так конечно ты разоришься нанимать еще и фронтендера. Но рыночек тебя убьет, пидорас, если не хочешь платить
Не моя проблема, что ты не хочешь больше учить. Ты ограниченный, видимо для тебя выучить базы данных - это сверхзадача. Не значит, что другие не хотят иметь широкий кругозор. То есть любой не полу-специалист, кто может сделать больше половины сайта в одиночку - он автоматом делает визитки и лендосы за 30к? Ну это чисто твоё мнение чувак. Все должны узкоспециализироваться как ты хочешь, только учить красить кнопки и делать слайдеры и ничё больше. А если он почитает что-нибудь про бекенд, то он уже говнодел.
Лучше передавать треки на клиент через гет-запрос по http средствами серверного приложения, разбирая поток jsом, или просто не запариваться и кинуть всю музыку в публичную папку и клиентскими скриптами указывать лишь путь до файлов?
Насколько рабочий вообще первый вариант, если мне не нужно разбивать файл на части для быстрой загрузки налету и дрм?
Первое - долбоёбский подход. Всё нахуй зависнет. Пхп же не асинхронный язык. Если одно работает, то второе работать не будет. Если только это не какой-нибудь swoole и ты не создаёшь дополнительные процессы.
Второе - тоже долбоёбский подход. Файлы должны быть на CDN. У сервака не бесконечный интернет-канал. Если это ссылка на какое-нибудь облачное хранилище, то окей, тогда будет работать.
>не по-долбаебски сделать
Это будет явно не на пиэчпи. Ну вот ты сделаешь php-fpm, поставишь max children 8, к тебе подключатся десять человек. Из них двое получают 504 gateway timeout. Скорее всего хуёвое немасштабируемое решение выйдет.
Ну я в общем и не на пыхе, просто тред нуб-френдли.
По сути пока кроме бд, серверного яп с микрофреймворком и js еще ничего не знаю. Подумал попробовать склеить это все, но, видимо, еще рано. Сейчас паттерны ковыряю чтобы масштабируемо писать, а как на практике организовать все это не читал да и не знаю где.
это на пыхе нормально писать код заставят? он же славится говнокодом и кривыми решениями
А как кабаном стать?
а через asdf и docker это нельзя поставить? какой sudo apt install, дебил ебаный
Я засекал и вкатился писать бэкенды на laravel за 70 дней от начала изучения и до устройства на работу. Сразу на удалёнку с зп 60к. За плечами был 1 вузовский курс айтишного направления и несколько самостоятельно пройденных книжек общего назначения.
Был очень заряжен. Учился с утра до вечера по 8-10, иногда больше, часов. За все время успел разобраться с докером, впитать котерова и зандстру, написать примитивный микрофреймворк на собственных компонентах и собрать несколько готовых крудов на ларе с rest api и с ssr.
Также прошел учебник кантора по js и сверстал несколько страничек на флексогридах и бутстрапе.
Полагаю, на вкат в битрикс у меня ушло бы недели две или меньше, лол. Сложилось впечатление, что там водят за ручку и требуют разве что не быть совсем дегенератом.
мимо
Пиздеж, либо большая удача.
Во-первых, вакансий стажера и джуна мало.
Во-вторых, на ряд вакансий требуется опыт коммерческой разработки минимум год.
В-третьих, во многих вакансиях неплохие требования: js, html, css, docker, mysql/postgresql, git, linux, архитектура, ооп, паттерны и принципы, фреймворки, js фреймворки, composer, REST API. За 2 месяца норм объем?
В-четвертых, 90% вакансий в офис.
+ Игнор от хрюш, 90% откликов это игнор или отказ.
> За 2 месяца норм объем?
Я себе все доказал и действительно за два месяца освоил это все на уровне достаточном для найма. Причем в первую же неделю поиска получил два оффера.
На контрасте битрикс выглядит как примитивный инструмент, который за два месяца осваивается в спокойном, а не моем запойном, темпе. Ещё и ментора дадут, который за ручку проведет.
>>269455
Красивая история, жаль что пиздежь.
Первое.
Если бы у кого-то был адекватный материал, упакованный для непрерывного изучения на 8 часов x 70 дней, то нахуй какое-то там программирование - тупо продажа такого курса миллионы бы принесла.
Твой прокол в том что не существует методического материала ни такого объема, ни такой интенсивности. Это уже не говоря про сам процесс обучения. "Пройденные книжки" это конечно в голос. 90% IT литературы это СПРАВОЧНЫЕ материалы, их не читают как беллетристику перед сном и уж тем более не "проходят".
Надо было писать "прошел пару курсов", можно добавить "спизженных". В эту хуйню больше вариантов поверить, чем во вкатуна, который восемь часов сидел гуглил че ему следующие тридцать дней "изучать".
Второе.
Раз уж взялся пиздеть, потрать пол часа чтобы выяснить что квалификация вкатуна давно уже не коррелирует с полученными офферами. Будь ты хоть трижды гений - автофильтры проходишь не ты, а резюме.
Твой прокол в том что ты не знаешь что проблема не в получении оффера, а в приглашении на собес. Когда количество откликов движется к пятиста, даже с пиздатым резюме это лотерея - вас там таких с правильными резюме будет под полтинник.
Надо было писать "посмотрел на ютабе гайд и грамотно напиздел в резюме" и "все три собеса за месяц прошел четко, дали два оффера".
Вот тебе методический материал как грамотно срать в пхп треде. Обрати внимание, даже если ты очень внимательно изучишь эти советы, то я поймаю тебя на пиздеже в чем-нибудь еще. Это к твоей байке про 8-10 часов. Жопочасы и даже качественный материал не компенсируют недостаток информации.
> продажа такого курса миллионы бы принесла
Я подумаю, лол. Спасибо за идею, но пока просто поделюсь, что было. Возможно кому-то поможет.
У меня было представление о том, как работают веб-приложения, и я методично шел к тому, чтобы самому реализовать. Неделю потратил на то, чтобы разобраться с докером и собрать себе среду nginx-psql-php. Если интересно, могу скинуть конкретный курс. Хотя мне кажется, что они все примерно одинаковые.
Неделю потратил на талмуд котерова от и до. Индексировал в голове, потом много к нему возвращался. Еще неделю потратил на книжку зандстры по ООП. Оттуда нахватался по верхам паттернов. Тоже много возвращался
Дальше я поставил себе цель написать микрофреймворк для крудов по всем psr'ам, которые было актуально воткнуть. Начал с написания простенького DI-контейнера. Далее на неделю отвлекся позубрить постгрес на https://www.postgresqltutorial.com/ и написал примитивную data mapper ORM. Продолжил обретками над http и конфигами. Впилил event loop также. Роутер сделал через два миддлвейра, один из которых матчил маршруты, второй передавал запрос в контроллер.
В процессе много обращался к Зандстре и читал чужие исходники. Также много пользы вынес из этого видео.
https://youtu.be/pz6VdH4_BSg
Компилятор шаблонов не писал и обошелся встраиванием <?php ?> тегов. Вьюшки заверстал примитивные на флексах и гридах.
Итого ушло недели 2-3 где-то.
Еще некоторое время потратил на то, чтобы пробежаться по доке ларавеля и написать два круда. Один с вьюшками на бутстрапе, второй под REST api.
На JS по кантору ушла неделька.
Красиво описать это все в резюме труда не составило. В сопроводительных письмах писал, что несмотря отсутствие коммерческого опыта работал с командой друзей над веб-сервисом для личных нужд. Это было правдой, но в реальной жизни опыт сводился к написанию простых js-модулей, чтобы dom-дерево править
Тем не менее разослал, видимо успешно прошел фильтры, походил по собесам и получил два оффера, из которых выбрал продуктовую компанию.
Снова заподозришь во вранье, но первой же задачкой на работе дали разобраться с DDD и с чистой архитектурой. :D
Недели за две осилил трилогию дяди боба, еще неделю потратил на iddd.
Произошло все, кстати, не абы когда, а весной этого года. С весны продолжаю постоянно учиться, поднаторел и теперь пишу микросервисы для задач компании. Доволен как слон, планирую разобраться за следующий год со нюансами написания и развертывания приложений и запустить один собственный проектик, идея для которого уже год зреет, но навыков пока не хватает.
Буду рад, если ты, умный, подскажешь мне, куда я мог бы развиваться дальше, чтобы начать синьорить побыстрее.
> продажа такого курса миллионы бы принесла
Я подумаю, лол. Спасибо за идею, но пока просто поделюсь, что было. Возможно кому-то поможет.
У меня было представление о том, как работают веб-приложения, и я методично шел к тому, чтобы самому реализовать. Неделю потратил на то, чтобы разобраться с докером и собрать себе среду nginx-psql-php. Если интересно, могу скинуть конкретный курс. Хотя мне кажется, что они все примерно одинаковые.
Неделю потратил на талмуд котерова от и до. Индексировал в голове, потом много к нему возвращался. Еще неделю потратил на книжку зандстры по ООП. Оттуда нахватался по верхам паттернов. Тоже много возвращался
Дальше я поставил себе цель написать микрофреймворк для крудов по всем psr'ам, которые было актуально воткнуть. Начал с написания простенького DI-контейнера. Далее на неделю отвлекся позубрить постгрес на https://www.postgresqltutorial.com/ и написал примитивную data mapper ORM. Продолжил обретками над http и конфигами. Впилил event loop также. Роутер сделал через два миддлвейра, один из которых матчил маршруты, второй передавал запрос в контроллер.
В процессе много обращался к Зандстре и читал чужие исходники. Также много пользы вынес из этого видео.
https://youtu.be/pz6VdH4_BSg
Компилятор шаблонов не писал и обошелся встраиванием <?php ?> тегов. Вьюшки заверстал примитивные на флексах и гридах.
Итого ушло недели 2-3 где-то.
Еще некоторое время потратил на то, чтобы пробежаться по доке ларавеля и написать два круда. Один с вьюшками на бутстрапе, второй под REST api.
На JS по кантору ушла неделька.
Красиво описать это все в резюме труда не составило. В сопроводительных письмах писал, что несмотря отсутствие коммерческого опыта работал с командой друзей над веб-сервисом для личных нужд. Это было правдой, но в реальной жизни опыт сводился к написанию простых js-модулей, чтобы dom-дерево править
Тем не менее разослал, видимо успешно прошел фильтры, походил по собесам и получил два оффера, из которых выбрал продуктовую компанию.
Снова заподозришь во вранье, но первой же задачкой на работе дали разобраться с DDD и с чистой архитектурой. :D
Недели за две осилил трилогию дяди боба, еще неделю потратил на iddd.
Произошло все, кстати, не абы когда, а весной этого года. С весны продолжаю постоянно учиться, поднаторел и теперь пишу микросервисы для задач компании. Доволен как слон, планирую разобраться за следующий год со нюансами написания и развертывания приложений и запустить один собственный проектик, идея для которого уже год зреет, но навыков пока не хватает.
Буду рад, если ты, умный, подскажешь мне, куда я мог бы развиваться дальше, чтобы начать синьорить побыстрее.
Допускаю, что человеку со средними мотивацией и способностями пришлось бы потратить больше времени.
Ой все. Горшочек не пизди вари.
Я когда про курсы говорил я имел ввиду пиздеть про это когда-нибудь потом, не прям щас же.
И завязывай пиздеть про книги. "Осилил", "потратил". Какая же хуйня. Ты че в школе не учился? Имаджинирую ебало училки по математике, если бы к ней кто подошел и сказал: давай завязывай пиздежь, я тут осилил твой учебник за этот год на прошлой неделе, вы тут хуйней своей занимайтесь, а я кароч погнал физику осиливать. Про универ даже и упоминать не стоит, там-то с такими фантазерами обращаться умеют. Поколение тиктокеров. Совсем забыли что такое книга и как по ней учатся. Так не знаешь - не пизди. Нескладно получается.
>В сопроводительных письмах писал
Эту залупу никто не читает.
>несмотря отсутствие коммерческого опыта
Этот пиздежь совсем никуда не годится. У тебя либо указан в резюме коммерческий опыт, либо твое резюме не проходит автофильтр.
>Тем не менее разослал
Двойка, совсем хуевый пиздежь. Куда ты че разослал? Купил у бабки на блошином потертый сиди с базой для рассылки? Хуй знает, как там у вас в викторианской англии, а у нас в 2324-ом все это делается через отклики на хх.
>Снова заподозришь во вранье
Про работу просто какая-то хуйня написана, даже разбирать лень. Типичная проблема вкатунов - они тупо не представляют себе командную работу т.к. никогда в таком режиме ничего не делали.
Ну и так по мелочи всякая ерунда глаз режет, типа роутера через миддлвейр. И лечки про чистую архитектруру, на которую уже несколько лет как всем похуй.
Капец, раскусил... Ну ладно, действительно выдумал историю, чтобы потроллить дорогих пхпшников. Но я обязательно вкачусь ещё!
>засекал и вкатился писать бэкенды на laravel за 70 дне
>>269455
>Я себе все доказал и действительно за два месяца освоил
>>269653
Спасибо за подробную информацию, я сам вкатуджон в пхп Битрикс. Ажно с 2к16 года начал учить пхп по книге Робина Никсона где голая пыха без фреймворка и самый примитивный скл описывается. С тех же пор начал учить жс, хтмл, цсс, рякт, вебпук. И так и не вкатился спустя ВОСИМЬ лет!!!
По мотивам твоего поста хочу сделать петушинный прыжок. И тоже за джва месяца вкатиться в Битрикс. Но так как я на дно работе ишачу 6 дней в неделю по 12 часов за 22к в месяц. То поставлю себе срок х2 в размере 4 месяцев. Поставлю себе задачу вкатиться к концу январских праздников числа так 10го.
Так, падажии, ёбана. Вордпрессники в статье говорят, что превращают бек в формализованное апи, чтоб потом его как-то заменить на серверную JS реализацию. Это всё здорово и очень интересно, но от такой инициативы разом отваливается весь тот зоопарк плагинов, за который вордпресс в принципе и любят. Звучит, как выстрел в хуй.
За то что это кривая уебищная хуйня для дебилов, мимокрокодилов и обычных кежучей, а не программистов. Которая взлетела вопреки всему и лезла в энтерпрайз.
или java + spring?
Потому что по своей архитектуре он отличается от других языков (хотя все его недостатки покрывают сторонние тулзы). Он был создан в качестве шаблонизатора, чтобы можно было с помощью стороннего веб-сервера генерировать простые html-странички. Его виртуальная машина загружается на каждый поступающий запрос, а после отдачи ответа умирает. В его ядро встроены массивы, содержащие данные о поступившем запросе. В силу этого, его использовали все кому не лень, без знаний и опыта. Поэтому и писали на нем как попало.
Если есть опыт, то PHP может быть хорошим инструментом. Он сочетает в себе простоту, высокую скорость работы виртуальной машины (самый быстрый из скриптовых языков), если использовать его с помощью swoole, workerman, peachpie, etc, то можно добиться производительности веб-приложений сравнимой с самыми быстрыми Go фреймворками (если на стандартной библиотеке, то Go проигрывает), на нем можно писать с классами и интерфейсами, функционально.
Со swoole пыха равняется с дефолтной нодой по перформансу, но не с голенгом. А у ноды есть более быстрые реализации, например bun
https://www.atatus.com/blog/php-swoole/
>Со swoole пыха равняется с дефолтной нодой по перформансу, но не с голенгом.
Ты сказал? Нода на моем компе выдает 20к rps, а workerman 120к rps, peachpie выдает 200к rps. Swoole не мерил, но он примерно будет как workerman. Нода из коробки слабенькая. У нее плохо написан сетевой стек. Вот с uwebsockets.js нода выдает тоже 120к rps, я мерил.
>>270446
Бери workerman.
Вордпресс на peachpie выдает 200к rps!
Сейчас го на стандартной библиотеке стал по-быстрее чем раньше был, но если он и быстрее чем swoole и workerman, то не сильно. И уж точно он не быстрее peachpie, который на .net, а писать го не просто, очень угловатый язык.
>PeachPie это не пыха же это CLR
PHP на CLR. Вордпресс выдает 200к rps.
>Ты http модуль на ноде мерил
Да. Экспресс думаю 5к rps максимум.
>Сап, за что в большинстве тредов ненавидят пхп?
Ненавидят не столько сам язык пхп, сколько додиков которые заказывают сайты на пхп и исполнителей, которые пишут на пхп. И те и другие - лютые мудаки. Одни не разбираются в веб-разработке, но заказывают быдлосайты. А другие хуй ложили на качество. Одни и те же технологии используют по 20-30 лет. Все новые проекты/стартапы обходят пхп стороной. А те кто не обходят - это либо фонатики пхп, либо им просто по барабану что разрабатывать, либо бы платили хоть сколько. Есть вон те, которые пишут в тредах "посоветуйте язык, без разницы какой, лишь бы просто вкатиться и 60к зарабатывать". Вот это целевая аудитория пхп.
>Одни и те же технологии используют по 20-30 лет. Все новые проекты/стартапы обходят пхп стороной.
В Китае много пишут на PHP. Есть куча крутых опенсорс проектов на PHP, написанных китайцами.
>PHP на CLR
Зачем это нужно, если можно на сишорпе писать. Это как говна намазать поверх французкой булки ..
А еще там летучих мышей едят..
>можно на сишорпе писать
В нем нельзя нормально писать в ФП-стиле, а по другому на нем не получается лаконичный код. F# хорош, но .NET не полностью его поддерживает.
Пчел, на пхп тоже нельзя писать в фп стиле, там тупо вообще нихуя для этого нет. Ни каррирования, ни монад, ни нормальной системы типов. Тебе в пхп чтобы супертип создать надо либо наследоваться, либо интерфейс имплементировать. Охуительное фп.
>Пчел, на пхп тоже нельзя писать в фп стиле, там тупо вообще нихуя для этого нет.
Есть нормальные функции высшего порядка. Все остальное реализуется. Главная ценность ФП в том, что все является выражением. Это позволяет писать понятный декларативный код очень коротко без лишних церемоний, а в языках типа C# бесконечный бойлерплейт.
Бля, маня кукаретическая, ну реализуй на пхп каррирование https://3v4l.org
Нахуй ты рассказываешь про ценность фп, это и так все понятно. А непонятно где ты увидел что на пхп "нормальнее" писать в фп стиле. Откуда ты это высрал вообще? Банально монаду maybe на шарпе с дженериками с десять раз проще реализовать. Как это на пхп будет выглядеть я даже имаджинировать не хочу.
Да ебана, ты вообще понимаешь что в пхп ты не можешь указать сигнатуру функции как параметр?
В шарпе ты можешь задать конкретную сигнатуру
void FunctionCaller(Func<string, int> myMethodName) {...}
А в пхп ты можешь написать только
function functionCaller(callable $function): void {...}
Какая нахуй функция должна быть передана? Да хуй пойми. Ошибки в логах чекай. Декларативно и ценно проведено залупой по губам. Эту хуйню уже невозможно нормально читать, а если сюда наворотить функции возвращающие функции, то будет вообще охуеть.
Я не он, но давай так:
https://3v4l.org/lpCht
Формально условие выполнено, но со сказанным тобой не спорю, если чо
> Да ебана, ты вообще понимаешь что в пхп ты не можешь указать сигнатуру функции как параметр?
Инвокабельный класс нормальная сигнатура?
А есть хоть какой-то нормальный пример, где это ваше функциanalьное программирование зароляло? Какой такой проект, написанный в ФП стиле обогатил создателей? Это ваше ФП выглядит, как какой-то карго-культ аутистов-девственников без друзей, которых хлебом не корми, а дай подрочить на чистые функции.
>посоветуйте язык, без разницы какой, лишь бы просто вкатиться и 60к зарабатывать
А что такого? Когда до людей дойдет, что не обязательно любить свое дело, важно быть терпеливым и иметь совесть. Если тебе похую на программирование, но ты совестливый человек, то ты будешь учиться писать правильно код.
self hosted gitlab
Есть кнопка на html, при клике на нее открывается форма для редактирования информации.
Я хочу сделать так:
Клик по кнопке => js отправляет fetch на сервер, чтобы тот ответил, аутентифицирован пользователь или нет.
Сервер отвечает, что пользователь не аутентифицирован (например, нет валидного jwt токена в куке). js показывает div с формой для пароля. Ничего не проверяет. Сервер принимает пароль, проводит аутентификацию, ставит куки. И так по кругу. Норм тема такого общения js и сервера?
>реализуй на пхп каррирование
https://medium.com/nerd-for-tech/functional-programming-in-php-part-2-currying-2353b71dbe7a
https://github.com/matteosister/php-curry
>монаду maybe
https://agiroloki.medium.com/functional-programming-in-php-part-5-dec139e5bf83
https://github.com/lstrojny/functional-php
>в пхп ты не можешь указать сигнатуру функции как параметр
Зачем?
>с дженериками с десять раз проще
Чем проще? Они требуют указывать тип, это уже не позволяет реализовать даже Identity function. Основа ФП это именно функции высшего порядка. С их помощью можно реализовать что угодно.
>>270529
>Если ты такой умный, почему ты бедный?
Это не аргумент. Как раз так называемое ООП является чистейшим карго-культом. Любая программа это всего лишь функция из X в Y. Программа идеально ложится на ФП. В ООП же куча ненужных фич. ООП пытается решить те же задачи, что и ФП, но решает их очень криво, привнося кучу проблем, поэтому и требуются всякие паттерны. ФП решает лаконично. В ООП приходится писать кучу лишнего бойлерплейт-кода. Та же абстракция данных с помощью ФП делается элегантно малым количеством кода, а в ООП кода получается намного больше и выглядит это коряво, в том числе потому, что функции в ООП не являются объектами первого рода.
Посмотрел 8 минут и сразу же какая-то мешанина.
Сервер аутентификации отдает RT, а не JWT+RT или JWT.
Потом RT обновляется по RT, хотя там другая система - JWT истекает, по RT обновляется и пользователь получает новые JWT и RT.
> Любая программа это всего лишь функция
Нет, программа это это механизм с кучей внутренних состояний
И внутренних функций от внутренних состояний...
Нет мешанины. Примерно так SSO сервис для SPA приложений Auth0 устроен. Все это не противоречит стандартам OAuth и OpenIdConnec. Основные тейки видео
1) RT в хттп онли куках. Не доступен из жс.
2) RT устанавливается сервером аутентификации при успешном логине с фронтенда.
3) Сервер аутентификации желательно на отдельном домене. Поэтому RT автоматически отправляется браузером только на сервер аутентификации и никуда более
4) RT может обмениваться на RT и JWT
5) RT может обмениваться на RT только один раз, после чего блеклистится сервером аутентификации
6) RT используется только для обмена токенами между фронтендом и сервером аутентификации/авторизации. RT не истользуется для выполнения действий на ресурсном сервере
7) RT долгоживущий
8) JWT используется только ресурсным сервером для выполнения действий от имени пользователя
9) JWT короткоживущий
10) JWT живет в памяти жс и дожен явно в коде отправлятся на ресурсный рервер (дополнительный CSRF токен не нужен)
11) кражу JWT можно пофиксить принудительным получением новых JWT клиентами сбрасыванием соли на сервере аутентификации/авторизации
Это все равно функция. Банковский счет элегантно реализуется с помощью функций.
И пунктов вытекае еще, и в видео об этом явно не говорится, что получение JWT из RT должно быть корсами защищено. Причем фронтенд который делает обмен находится на другом домене чем сервер аутентификации. Это должно быть учтено.
Ну круто, че. Реально без шуток, отличная идея. Есть только два нюанса. Первый: это нам че каждый раз все это городить придется для своих функций?
А второй найди сам. Он гораздо более важный и всю твою конструкцию, при всей её оригинальности, лишает смысла.
>куча ссылок на кал
Никто и не говорил что это невозможно, я хотел посмотреть как ты этим говном пользоваться будешь.
>Они требуют указывать тип, это уже не позволяет реализовать даже Identity function. Основа ФП это именно функции высшего порядка.
Вот тут я и проиграл нахуй. С кем я блядь спорю. Парнишка, который сам каррирование написал >>270512 в сто раз лучше тебя понимает о чем речь идет.
А я думаю откуда вылез этот истеричный обоссанный кукаретик. Причем в перманентном режиме "ФП крута", хотя никто с ним тут об этом не спорил. А он вылез из под шконки, куда его после обоссывания забили пинками аноны в другом треде. Давай колись, петуч, ты же нихуя никогда не писал в ФП стиле, ты просто решил выебнуться в каком-то треде ооп языка, а тебя там попустили без смазки?
>Программа идеально ложится на ФП.
На чистое ФП через жопу ложится. Без состояния, на чистых функциях можно реализовать что угодно в том же смысле в котором на брейнфаке можно написать что угодно. Не практично.
А если тебе не нужно чистое ФП, то тогда node js
В пхп вообще дохуя че можно. Можно в функцию с одним параметром передать десять https://3v4l.org/obJcT И хули теперь? Пользоваться этим говном как? Нахуя самому себе жизнь усложнять?
$identity = fn($x) => $x;
Это классическая функция идентичности. Если в языке нельзя такое сделать, то это плохой язык
Пчел, ты типизацию проебал. Твой метод делает хуй поми что, непонятно что принимает, непонятно что возвращает. А пхп еще и начнет то что он высрал автоматически конвертить.
Функция id возвращает то, что ей передали. Сама по себе она не интересна, а нужна в составе других функций.
Бля, мудила, из чего следует что эта функция IDENTITY? Она возвращает хуй пойми что. Как мне блядь выбрать из десяти функций именно identity?
Как понять, что функция max(a, b): int возвращает максимальное из двух чисел? Из чего это следует?
Мудень, как понять что твоя функция вообще числа принимает?
Все норм, учи, анон. Но на работу рассчитывай где-то через год или два.
Все хорошо, можешь спокойно учить.
Только учти, что язык - это просто инструмент для решения какой-то задачи. Есть большая разница между тем, чтобы знать о возможностях фрезерного станка, и тем, чтобы знать, как с его помощью создать какую-нибудь прикольную штуку.
Php - это инструмент, удобный для создания веб-приложений, поэтому в первую очередь стоит разобраться, как они вообще устроены. Суть не в циклах, классах, и других конструкциях, которые есть во многих других языках.
Php будет актуален, пока существует запрос на дешевую разработку и быстрый запуск веб-приложений. Кроме того, разработчики языка работают над тем, чтобы код можно было не только быстро писать, но и проще поддерживать.
Когда же php всё-таки перестанет быть актуальным, зная принципы построения веб-приложений, ты всегда сможешь перекатиться на другой стек и заниматься примерно тем же самым.
Это трясуны-гейткиперы. Они сидят в каждом треде и боятся, что из-за тебя, да-да именно ТЕБЯ, их 300кк превратятся в 40кк.
Что такое fetch запрос?
В каком формате ты возвращаешь данные?
Кто будет использовать этот роут?
>Что такое fetch запрос?
Запрос, который отправляет js на сервер.
>В каком формате ты возвращаешь данные?
json
>Кто будет использовать этот роут?
js (js отправляет запрос, чтобы получить ответ от сервера и изменить DOM страницы).
Я бы засунул в web.
Но если в проекте уже кладут такие роуты в api - то лучше туда.
Моя логика такая, что если это используется для работы браузера - то лучше в web хранить.
В api хранится то, что используется сторонними сервисами.
Откуда ты знаешь эти моменты? Где про них прочить вообще и с какой стороны гуглить вообще
Зависит от того, хочешь ли ты делать треки публичными. Если клиент сначала должен быть залогинен - лучше не делать файлы публичными.
Подскажи, зачем тебе разбирать поток в json?
Просто верни mp3 файл. браузер загрузит файл и запустит звук.
Можешь вернуть клиенту m3u файл, в котором будут ссылки на твой сервер, который возвращает mp3.
https://www.draketo.de/software/m3u-player.html
https://stackoverflow.com/questions/2358253/php-streaming-mp3
>Откуда ты знаешь эти моменты?
Из личной практики. Первый - когда я писал самодельный парсер xml, он тупо подвисал на время чтения, потому что не мог асинхронно работать. Второй - когда челики обратились к нам в поддержку посмотреть почему сайт не открывается. Оказывается, это из-за видеофайла, которого разместили на главной странице.
>Где про них прочить вообще и с какой стороны гуглить вообще
В книгах про системному дизайну и веб архитектуре.
>>самодельный парсер xml,
DOM выстраивал или на прямую элементы искал без встроенных xml функций?
>самодельный парсер xml, он тупо подвисал на время чтения
А ты быстро хотел распарсить? Аяксом отправляешь и анимацию загрузки показываешь или очередь в микросервис
>В книгах про системному дизайну и веб архитектуре.
И какие конкретно?
Потоковое чтение xml-файла, в котором хранились настройки шаблона/сайта. Когда открываешь xml-файл на чтение, он загружает его полностью в память. 10 мегабайтный файл превращался мегабайт в 50-70 в памяти. Поэтому приходилось в потоке делать.
>Аяксом отправляешь и анимацию загрузки показываешь или очередь в микросервис
Куда отправляешь? Это было на вордпрессе, какой микросервис. Какая ещё "анимация загрузки", он занят был собственно парсингом xml. И пока он парсит xml, он даже не может ответить на фронт а-ля "прогресс 38%", без сторонних библиотек.
>DOM выстраивал или на прямую элементы искал без встроенных xml функций?
Библиотеку брал.
>И какие конкретно?
Я давно не слежу, посмотри свежие у manning, packt, o'reilly
asdf пойдет? еще laravel будет и все остальные нужные вещи
Денвером еще кто-то пользуется? Я 9 лет уже пишу код в разных конторах, денвероподобную вещь видел один раз 8 лет назад.
Лет 5-6 как docker уже вообще везде. Это де-факто стандарт.
если ты на галере, с миллионом проектов, где мелкие правки, то удобнее ставить в систему, заебет под каждый проект докер делать.
asdf разве не подойдёт?
Руками напердолить. Для ньюфага есть еще годный способ - vagrant homestead
Ну у меня на прошлой битрикс-галере во всю использовали опенсервер на винде, там сеньки и тимлиды у которых по 10 лет опыта
Какая сейчас лучшая книга для вката в алгоритмы и паттерны (отдельно естественно)?
10 лет битрикса = 1 год ларавеля
Первое предположение - стабы когда нужно проверить, что метод возвращает определенное значение, моки когда нужно проверить что правильно метод вызывает другой метод.
В битрикс вообще легко.
>что на собесах спрашивают
Какие собесы? 95% откликов это игнор или отказ.
5% это тестовое задание. Которое зачастую сопровождается молчанием со стороны хрюши.
Хуй знает. Мне нравится
> молчанием со стороны хрюши.
Попробуй в резюме добавить фотку чеда с квадратной челюгой. Отпишись потом, лучше ли среагируют хрюши, лол.
>зачем тогда вакансия, если игнор на все отклики
Не знаю, я с хрюшами не общался.
Да и сами хрюши часто не пишут причин отказа.
В hh есть автоматические ответы - хрюша нажимает "отказать" и кандидату отправляется шаблонное письмо "Здравствуйте, анон анонов! К сожалению не можем рассмотреть вашу вакансию. Хрюша".
Это еще пол беды.
Вторая беда - мало стажерских и джуновских вакансий.
На часть из них требуют айти-образование, на часть опыт коммерческой разработки хотя бы год, на другой только офис в городе Урюпинск, на другой предлагают самозанятость (выполнил задачу? красава - на деньги, не выполнил - пошел нахуй, а какие у них будут задачи - хуй знает, справишься ты или нет). На часть вакансий есть тестовое, которое будешь делать от 2-7 дней.
Никто не будет комментировать твое тестовое. Молча прочтут сообщение с выполненным тестовым и все. Большая часть вакансий это 1c или битрикс. Ну, если тебе нормально зашквариться, то можешь их учить. Мб действительно так легче вкатиться.
Вчера только откликнулся на вакансию, где была удаленка, лара и джун позиция. 100% подхожу к вакансии, только Redis еще не трогал. Отказ. За что? Почему? Та хрюша даже не отправила шаблонное письмо с отказом. Просто молчаливый отказ.
Просто ты еще не прочувствовал на себе агонию поиска работы в айти, поэтому тебе кажется, что только нагнетаю.
Я когда только начал откликаться, у меня первым откликом на нормальную вакансию скинули тестовое. Но т.к. тогда у меня хуже были знания и умения, то я его завалил. А тестовое было очень простое. Самое кайфовое из которых я делал. Работы на несколько часов. И я тогда подумал: ну да, наверное все то плохое, что писали, это страшилки или люди просто не могут написать нормальное резюме, где опишут все свои навыки (по типу "знаю php и mysql, возьмите на работу").
Сначала все было норм. Мне вообще на первую половину поиска работы везло. Я выполнял тестовые задания, мне писали, что мое резюме их заинтересовало. А сейчас какой-то пиздец, навыки выросли, резюме увеличилось, я стремлюсь к знаниям мидла (начал рассматривать технологии, которые встречаются в их вакансиях), а мне лепят отказ или молчание. Большинство вакансий дерьмо. Да. Мб хорошие компании в начале года понабрали себе джунов и все, теперь ждать новой итерации. Короч, вот такие дела.
Но всегда нужно понимать, что существует случайность. Может сыграть и удача и тогда не будешь на себе этот ад чувствовать.
Я также понимаю, что выбрал немного хард сложность - только удаленка, только лара или симфони, никакого 1с и битрикса, только трудовой договор.
А еще главное написать, что ты любишь расширяемую, чистую, гибкую архитектуру.
Как-то видел резюме челика. 0 описания навыков, 0 описания изученных технологий. Зато небольшой текст о том, как он любит писать гибкую, расширяемую, чистую архитектуру. Блять, а кто не любит? Правда не каждый может! Самое смешное, что это пишет джун. Ну какая тебе, блять, чистая архитектура? Даже мидлы пишут говно. Ты джун, ты даже боевого пороху не нюхал, а что-то заливаешь про написание чистой архитектуры. Это не помешало ему оказаться в друзьях хрюши. Нужно держать такого еба программиста поближе, ценный специалист, кабан кабаныч будет доволен.
Или другое резюме.
"Обладаю высочайшими аналитическими способностями. Выполняю задачи быстро и безошибочно". Вот это у челика самооценка. Ну, мб там реально гений сидит, либо пиздабол. Нассал он хрюше хорошо в уши. Она даже добавила его в друзья, жадно прихрюхивая, что отхватила такого специалиста.
>Вчера только откликнулся на вакансию, где была удаленка, лара и джун позиция. 100% подхожу к вакансии
Вспомнил, что там было тестовое.
Видимо по мнению хрюши я настолько плохой кандидат, что даже не достоин выполнить их обосанное CRUD неоплачивое тестовое.
если в городе нет офиса, остается только удаленка, не переезжать же теперь
Трудовой договор это по трудовой книжке ? Какие варианты прелагают в основном ? Очень много битрикса и 1с ?
Коротко для вкатунов роляет:
1. Вышка по IT профилю.
2. Техническая вышка не по IT профилю.
3. Пет-проекты и прочее.
Скажите что вышкошиза и т.д. Скажу - да. Вкатунов просто дохуя и по факту такой отбор, возьмут "нулёвого технаря" чем чела самоучку который что-то там писал и может показать код.
>Скажите что вышкошиза и т.д. Скажу - да
Тут не столько ты вышкошиза, сколько хрюша.
Хотя я их понимаю.
Когда читаю посты людей, выпустившихся из айти-вуза, на хабре, ощущение, что там одни глыбы с математическим мышлением и знающие несколько ЯП.
https://laravel-news.com/laravel-raises-57-million-series-a
взяли нулевого технаря
@
он только зп получает и ничего не делает ибо нулевой
@
зато помнит паскаль, сопромат и расчет цепей 70-80 годов для транзисторов
Нетехнологические cтартапы с индусами в исполнителях. Например стартап - овощная биржа для сельдерея с петрущкой для мелкопроизводителей.
Взяли таксиста с "опытом"
@
Дали задание сделать вывод статистики прибыли по месяцам с групировкой по партнерам, продуктам или менеджерам на выбор.
@
Вытащил всю БД в пыхыпы и подсчитал.
@
Скрылся в тумане в погоне за х2
@
Стартапу испольнился годик. Топ статистики выводится в шапке админки. Админка еле открывается.
Взяли нового таксиста с "опытом"
@
Сказали переписать чтоб не тормозило
@
Сделал кеширование рассчета статистики
@
Скрылся в тумане в погоне за х2
Да это просто бабло отмывают
Вместе с таксистом подавался другой кандидат постарше, который помнит еще рамблер, и может решить задачу одним запросом в бд.
@
Девочке эйчару он не понравился - 40 лет, уже старый. Сразу дроп, до техсобеса не дошло.
@
Взяли улыбчивого таксиста.
Ахуенно, когда обращаешься к экшену контроллера, который отдает json ответ. А вместо json ответа в консоли 500 Error, лара ничего не говорит, ответ пустой. Вообще не понимаю что за чудеса. Причем единственное изменение, которое я сделал, это продублировал метод контроллера, заменив названия отдаваемых сущностей. Мб это из-за того, что я везде использую App:make() для разрешения зависимостей? В начале пиздеца ларка еще высрала "Maximum call stack size of 196608 bytes (zend.max_allowed_stack_size - zend.reserved_stack_size) reached. Infinite recursion?"
Я написал TDG, который использует в теле методов для доступа к БД, Eloquent Model, а чтобы обращаться к Model, я создал свойство orm, которое в конструкторе инициализируется как $this->orm = App:make(HuiAR::class);
Я вообще не понимаю КАК мне автоматически разрешать зависимости в ларавель, если конструктор содержит свойства, например, объект требует name, age, а потом TDG.
Для этого есть провайдеры в ларавел. У тебя нет другого способа кроме того, чтобы написать в провайдере
$this->bind(MyClass::class, function() {
$myTDG = app(MyTDG::class);
return new MyClass("some name", 33, $myTDG);
});
Если тебе нужны несколько инстансов MyClass с разными значениями в конструкторе, то простого способа в ларке нет. В пыхе для такого нормально фабричный метод использовать, а фабрика уже может кешировать созданные инстансы MyClass если такое нужно
Еще добавлю что вариант сделать один инстанс MyClass с сетерами setName, setAge самый говнокодный и за такое надо по рукам и башке на кодревью бить
Спросят за опыт по этой вышке. Лучше чем самоучки, но не сильно, в целом всё равно хуже чем люди которые по профилю идут.
localhost, конечно, открывается.
Но как починить apache?
>Тут не столько ты вышкошиза, сколько хрюша.
Да нет, скорее всего ты просто на дне рекрутинговой цепочки перед тобой люди с рельным опытом среди которых могут быть смешаны накрутчики и они по сути пройдут раньше чем ты. Ведь зачем тратить время на не релевантного кандидата когда есть толпа (условно) релевантных?
1. Какой минимум
2. Какой максимум
Я обычно пользовался unzip 123.zip и далее вручную все там, дамп залить в бд
докер + gitlab ci + кубер работал бэкендером а теперь будешь ещё за девопсом какашки подбирать
> работал бэкендером а теперь будешь ещё за девопсом какашки подбирать
Зато потом можно в девопс перекатиться легко!
Это ты Json'ы открыл для себя?
seo-шники с тебя бугуртят
Это единственный способ работать без военника/приписного
>то у меня не будет никакого пруфа моего стажа?
Нууу ээ я работал в Kaban Enterprises, inc. с такого-то по такое-то, вот мне даже зарплату зачисляли, можете позвонить там спросить если вдруг не верите.
Но вообще это хуйня всё, если ты норм пацан, сделал тестовое и пояснил за всю хуйню на собесе - нахуй им тебя сливать?
С военкоматом проблемы? Скоро по всей РФ электронные повестки внедрят после вообще ничего не дадут открывать и регистрировать пока не придешь в военкомат.
>>278585
>нахуй им тебя сливать?
Кандидатов полно, зачем чел у которого с гос. структурами проблемы? Так и бизнес начнут напрягать по глупым причинам, оно надо?
И что я скажу...вы серьезно, блять?
Столько нытья в этом треде я слышал о том, что симфони сложно, что нет материала, что ничего непонятно.
Мб после базового понимания ларки и написания на ней нескольких проектов, симфони ощущается легким? - хуй знает. Читаю доку симфони и постоянно мысли: "и в ларе тоже самое, только называется по-другому".
statista*com/research-ai/
Неужели они не тестируют и не видят? Вот ноутбуку пыхтит на 60-80% над этой вкладкой, а планшетик уже не откроет эту вкладку вообще.
>и в ларе тоже самое, только называется по-другому
Потому что ты сливки снимаешь. Попробуй на симфони нестандартную аутентификацию запилить. Придется разбираться как устроен фаервол в симфони и конфигурировать контейнер. Вообще чтобы почувствать симфони надо делать что-то что приводит к работе с встроеными фабриками, написанием декораторов сервисов и перенастройкой контейнера.
В ларке все построено на принципе convention over configuration, а в симфони configuration в первую очередь, но все преднастроено, чтобы работало для дефолтных юзкесов.
Страница содержит список менеджеров.
Каждый элемент списка содержит несколько инпутов: Фамилия, Имя, Отчество, Отдел, Должность
Фамилия, Имя, Отчество - обычные текстовые поля
Отдел, Должность - выпадающие списки
На странице есть кнопка "Добавить менеджера".
При нажатии на кнопку добавить менеджера, на страницу добавляется новый элемент с инпутами.
Так же у каждого элемента списка есть кнопка Подчиненные.
При нажатии на кнопку Подчиненные, под списком открывается список подчиненных.
Список подчиненных выглядит так же и работает так же, как список менеджеров.
Фактически надо реализовать древовидную структуру
В каждом списке подчиненных есть кнопка "Добавить подчиненного"
На странице есть кнопка "Сохранить"
При нажатии на кнопку сохранить список менеджеров сохранияется вместе со списками подчиненных и после сохранения при перезагрузке страницы мы не теряем сохраненную форму.
Все реализовать без аяксов, чисто на FormBuilder
Можно использовать ванильный жс или жиквери для динамизации интерфейса
А зачем она нужна эта Symphony, когда большинство вакансий - Laravel
Мучите сами себя, изучая не нужное
Полегче-полегче.
Я всего лишь прочитал раздел Creating Pages :^D (ну и еще половину Routing).
Дочитаю базовые разделы и, мб, попробую выполнить. Мб - потому что у меня и так дел дохуя (читаю книги + пишу проект на ларке), но закрепить на чем-то стоит.
Согласен, что ларка более популярный фреймворк в вакансиях. Но! Я два раза оказывался в ситуации, когда мне скидывали тестовое, где можно использовать только симфони. Нахуя они мне кидали тестовое, когда у меня в резюме ларка? Хуй знает, мб в глаза долбились или думали, что за пару дней прочитаю и тут же настрочу им проект. Мне норм изучать второй фреймворк. Ту же ларку, я не то, чтобы глубоко знаю, но умею ей пользоваться для решения типичных задач. Сейчас планы изучить базово симфони, научиться и на нем круды шлепать, а потом углублять знания по двум фреймворкам, чтобы не выглядеть клоуном на собеседовании.
Значит ты старый и ты априори никому не нужен
Мда уш охуевшие капиталисты. Нам на курсах обещали сотку со старта сидя на пляже в тайланде 😭
К чему твой вскукарек?
Если нет опыта работы, теперь за бесплатно работать? 15к рублей это меньше прожиточного минимума. Т.е. по мнению работодателя у человека уже должна быть работа, чтобы он смог себя содержать, пока он ходит на стажировку?
Пет проекты.
Ахуевшие пидорасы. 8 часов в день РАБотать за деньги ниже мрота, ещё и в офис их ездить.
Совсем ахуели, а ещё пиздят что айтишников не хватает. Конечно блядь, условия хуже чем у дворников, ещё и конкурировать за эту должность говна, ахаха, даже в пятерочке стажировка на таких условиях не проходит.
Там еще тестовое задание.
За 15к рублей ты должен доказать что ты тот самый, избранный гой, готовый работать за копейки по 8 часов в день 5/2.
>от 15
Ты маленький, чтоли? "От" это почти всегда означает "равно". Работодатель просто немного стесняется, что он такие копейки предлагает, вот и приходится выбирать "от".
>Вакансия для студентов it специальностей
Вот ты сам себе и противоречишь.
Почему человек, который потратил 4 года на профильное образование, должен получать 15к рублей за стажировку? Это зарплата для человека, который месяц подрочил php и научился SELECT * FROM делать в mysql.
>Это зарплата для человека, который месяц подрочил php и научился SELECT * FROM делать в mysql.
Это зарплата для дворника на пол ставки. Даже человек с месяцем знаний получает значительно больше в странах, где ценится человеческая жизнь и труд.
Если у вас студент it вышки на выходе получает 150 долларов в месяц, при нагрузке 40 часов в неделю (пусть даже с надеждой что стажировка пройдет и он будет получать АЖ 400 долларов, что ещё не факт, ибо они тебя брать на джуна не обязуются), то я даже не знаю как это назвать, тут лестных слов не подобрать. Это натуральное рабство.
Я за 400 долларов даже с дивана не встану, про 150 вообще молчу.
>студентов
Интересно у какого студента есть свободные 10 часов 5 дней в неделю (8 часов работы и по часу доехать и уехать с офиса)
>Даже человек с месяцем знаний получает значительно больше в странах, где ценится человеческая жизнь и труд.
Скорее сидит месяцами без работы, потому что вкатыши без местного опыта работы не нужны.
Ну то есть айти хуже, чем юзлес пед. Там хоть 30к платят, а не 15. Так и запишем
А как организовать валидацию почты,никнейма,пароля,даты ДР?
Получаем каждое поле через get.
Потом на каждое поле лепим функцию,функцция должна вернуть true.
Только вот не знаю как все три функции в конце сравнить,чтобы потом вывести сообщение типо все ОК
>Для валидации формы нужно знать регулярные выражения?
И да, и нет. Если нужно проверить структуру строки, то надо.
>А как организовать валидацию почты,никнейма,пароля,даты ДР
Валидация это проверка, что значение соответствует каким-то ожиданиям.
Например, адрес электронной почты не может быть пустой строкой, не может превышать n символов, не может содержать больше одного @ и т.д.
>Только вот не знаю как
Определи набор правил валидаций и напиши для них функции.
Например, значение не пустое - isNotEmpty($valueFromForm).
Или емайл корректный - isValudEmail($email). Эти методы могут возвращать текст ошибки валидации. Потом собираешь, например, массив, где ключ - название поля формы, а элементы - текста ошибок и выводишь как значение атрибута value <input>.
>вывести сообщение типо все ОК
Нужно не делать сообщение ОК, а делать редирект на страницу с сообщением "ОК", т.е. перенаправление на другой адрес.
Зависит от набора правил валидации.
Хочешь проверить, что строка не пустая? - регулярные выражения не нужны.
Хочешь проверить, что имя имеет минимум 1 символ, но не более 20? Зачем тебе регулярные выражения (хотя и тут их можно использовать)?
Регулярные выражения это способ описать структуру слова. Есть слово "анон". Оно состоит ровно из 4 букв русского алфавита, причем в нижнем регистре. Поэтому регулярные выражения полезны тогда, когда ты хочешь проверить строку на соответствие какому-нибудь шаблону. Если у тебя нет в планах таких проверок, то и регулярные выражения, возможно, тебе не пригодятся.
Ну да.
Если ты хочешь узнать про валидацию ФИО, то можешь почитать какие символы разрешаются в использовании, прям так и гуглишь.
Если ты хочешь узнать про валидацию никнейма, то можешь попробовать позаполнять формы регистрации каких-нибудь сайтов и посмотреть что они принимают, а что нет - какие ошибки показывают пользователю.
Ты должен понимать здесь одну вещь - правила валидации это просто хотелка. Вот ты создаёшь сайт и хочешь, чтобы любой пользователь, при написании никнейма, начинал его с символа @, все! Это правило валидации. Да, мб странное, мб ненужное, но это правило валидации. Но обычно ориентируются на общепринятые представления о том, какие символы можно использовать там и там (например, в емайл) и на реальность (в реальности мы почти не встречаемся с людьми, у которых имя ₽+:₽-89(_##*.
Эм, ну вроде [a-zA-Z]* (запись означает - любой символ от a до z (независимо от регистра) в количестве от 0 до бесконечности).
$username=$_GET["username"];
$password=$_GET["password"];
Какого черта оно
Warning: Undefined array key "email" in C:\xampp\htdocs\demo\validation.php on line 3
Warning: Undefined array key "username" in C:\xampp\htdocs\demo\validation.php on line 4
Warning: Undefined array key "password" in C:\xampp\htdocs\demo\validation.php on line 5
Отбой,я не правильно создал форму
Да заебал ты ёбанный шашлык. Массив _GET заполняется только когда страница открывается с параметрами http://localhost/validation?email=example@example&username=user&password=pass. А когда ты данные формой шлёшь, надо использовать _POST.
Насколько я понял, класс сущность просто описывает структуру таблицы, а все SQL находятся в репозитории.
Получше, чем AR в Laravel.
повесился
Да.
А чего ты боишься?
Я проходил этот учебник вплоть до ООП и не столкнулся с каким-то проблемами, что учебник написан довольно давно. Часть вещей ведь не так уж часто меняются. После учебника обязательно нужно решить задачу "список студентов", которая будет в конце; конечно же, читая все подсказки и статьи, которые предлагает автор задачи.
Вроде он до сих пор в треде сидит и перкатывает
Я дошел до задачки с айфоном в кредит и не смог даже в голове её решить, про код вообще молчу
Ну это говорит что у тебя лишь низкая база, попробуй вернуться к задаче через 3-5 часов или завтра. Знаю человека который задачу на палиндром на циклах решал 1 неделю потому что не мог разобраться в циклах.
Я 0 в БД, мой максимум писать простые SQL-запросы, но я понимаю, что в будущем, мб, от меня потребуется понимание профилирования и оптимизации запросов.
У меня такая проблема, что я либо натыкаюсь на материал, где просто говорят, что нужно делать хорошо, а плохо не делать и как важно не писать плохие запросы, которые грузят систему, либо на материал, который рассчитан на людей, которые решили всю свою текущую жизнь положить чисто на БД.
Эта тема решается не книжками, а практикой.
Пока что ничего. Из php.
Можешь установить mysql, выучить SQL: https://m.site-do.ru/db/db.php
Можешь установить git, завести на гитхабе аккаунт. Научись создавать удаленный репозиторий на гитхабе. Изучи команды git init, git remote add, git pull, git push, git add, git status, git commit, git checkout, git switch, git branch -m, git branch -D, git merge, создание ветки.
Можешь изучить основы html и css: https://webref.ru/course
Я уже знаю все, что касается фронтенда и, собственно, фронтендером работаю сейчас. Хочу php и sql поизучать для общего развития и более глубокого понимания бэкенда.
Я не умею его собирать. Пробовал готовую сборку, называется astronvim. Вроде годно, но я его использовал не для пхп.
Да, я сижу на phpStorm.
Да, я два раза ставил его с рутрекера.
Мне норм.
У меня на компе находится столько разного сомнительного дерьма, что мне уже все равно - компьютер не глючит, реклама не вылезает сама по себе в браузере, странного поведения в компьютере нет - значит все +- норм.
Сама по себе IDE очень кайфовая, так что рекомендую попробовать.
То, что эта IDE является платной и недоступна в моей стране, не позволяет от нее кайфовать.
Вообще как так получилось что единственная сейчас IDE под опенсорсный php является анальнейшей, дорогой проприетарной доильней по подписке?
>анальнейшей, дорогой проприетарной доильней по подписке?
Так она стоит своих денег.
Ты когда хорошие вещи видишь в магазине, тоже возмущаешься?
Хотя ладно, я посмотрел цены, действительно дохуя стоит.
>Ты когда хорошие вещи видишь в магазине, тоже возмущаешься?
Нет, если это не распиаренный дикий оверпрайс как жидбрейнс. Это же буквально худшая контора худших уебков. IDE то может быть и не такая плохая в целом, но я ей пользоваться не могу по своим принципам. Я вообще проприетарщиной стараюсь по минимуму пользоваться.
Потому что это гигантский объем работы? Причем бесконечный. Вышло новое изменение или фикс или фича - надо допиливать.
Вот тебе пример пикрелейтед: стат анализатор пхп кода, оупенсорс. Это гораздо проще, чем полноценная иде. Посмотри на количество issue. И сколько всего было уже сделано. Или небыло, потому что не смогли.
То что существует бесплатный вскод - это просто удача. Эта иде - это часть маркетинговой кампании по продвижению микрософтовского typescript'а, в котрый миллиарды въебаны. Пхп к ней "прикрутили" кое как энтузиасты. Сама иде для пхп не делает нихуя, и не будет в будущем.
Про вим и говорить нехуй, просто не могу имаджинировать объем пердолинга чтобы прикрутить к нему xdebug или код сниффер какой-нибудь.
Так, к примеру, линукс - это еще больший объем работы и тоже бесконечный. И в него тоже денег въебывают корпораты. Но код линукса открыт и дистрибутивы почти все бесплатные.
Пчел, ты вообще не понимаешь как это работает.
Разработчики ядра линукса получают зарплату. Компании, в которых работают эти разработчики платят им деньги за то что они занимаются разработкой линукса. Это не подработка и не бесплатный труд вечером после основной работы.
Ну и ладно. Я просто хочу нормальную бесплатную идешку, в которой я смогу писать свой говнокод, а не безальтернативный, платный жидбрейнс, который стоит больше, чем дохуя. Дак еще и платить надо каждый месяц.
Вкатусик, вкатуночек, сходи посмотри сколько стоит джира или слак. Там ты совсем прихуеешь. Лицензию на иде тебе предоставляет работодатель. Где и как он её высрет - это его проблема, причем далеко не самая большая.
Допустим у меня есть монолит, в котором есть сущности Пост и Комментарий. Если я буду распиливать монолит, то у меня будет два сервиса - Пост и Комментарий? Каждый со своей точкой входа в приложение, со своими представлениями и системными вызовами? Короче, монолит, только построенный вокруг одной сущности? А потом я беру эти мини-монолиты и раскидываю по контейнерам?
Сколько монолитов уже написал?
Как уже сто раз говорили микросервисы это не столько про архитектуру, сколько про организацию разработки несколькими коммандами. Как как поделят ответственность, такая и будет микросервисная "архитектура". Но есть другие точки зрения. Можешь посмотреть у Елисеева. Он делит микросервисы по ДДД контекстам.
Блять ты хуйню какую-то высрал. Так распиливают только долбоёбы. Микросервис должен быть достаточно большой, но не слишком большой. Не то что ты 10 строчек кода высрал и пора деплоить новый микросервис. Подразумевается, что над ним будет работать независимая команда из 3-6 человек. Если ты в одну харю работаешь и у тебя десяток микросервисов, то нахуй они вообще нужны? Пример микросервиса - склад товаров. Ты сажаешь дизайнера и двух программистов писать, а их будет кладовщик консультировать, запрашивать новый функционал. Ему допустим нужна система отчётов, то программисты пилят. Им не приходится взаимодействовать с другими командами, запрашивать разрешения у директора компании. А то что ты описал - это безыдейная хуита. Ну вот я сделал "сущность комментарий" и дальше что? Как мне это помогло, что я его сделал отдельным? Короче хуита на постном масле.
Как раз у него много по теме для пыхи
>Им не приходится взаимодействовать с другими командами
Я думал наоборот самый цирк начинается когда одни присылают говно, или другие принимают говно, или нарушается когерентность данных, а потом ещё другая команда начинает пиздеть чтобы снять ответственность ммммм здорово
Не-не-не, стоп. Твой микросервис - это твоя зона ответственности. Сама команда, которая его обслуживает отвечает за функционал, дизайн, работоспособность, нагрузку. Если команда проебалась, выбрала слабенький сервер и микросервис лёг - это их проёб. Все требования исходят только от конечного пользователя. Если ты делаешь микросервис для бухгалтеров, значит бухгалтер и будет требовать. Если же это сервис для маркетологов, значит маркетолог будет постить тикеты и просить запилить такую-то приблуду. Всё раздельное. Дизайн отдельный. База данных отдельная. Единственное что общее - это аутентификация. Я что хочу то и ворочу со своим микросервисом, хочу могу стресс тестинг сделать.
Вся идея - что команды самостоятельные сознательные люди и что они не будут на каждый чих бегать к директору или тим лиду консультироваться. А иначе нахуй нужны эти микросервисы.
>Лицензию на иде тебе предоставляет работодатель
Так это явно не галера должна быть. А чтобы до такого уровня дойти мне нужно где-то писать код. А писать негде, потому что единственная иде - платная, стоит дохрена и недоступно в вашем регионе.
Звучит просто замечательно
под винду есть имакс тоже
С мамкой по очереди платим, жидбрейнс мне оплачивать она отказывается
Нет. Никто не любит пхп. Пхп плохо. Понял? Плохой язык!
Ну конечно правда. Вот видишь - все в тереде уже разбрались, микросервисную архитектуру проектируют. Правда на иде бабок нет, но ниче мамка на днюху купит лицуху.
>Как мне это помогло, что я его сделал отдельным
В книгах написано, что микросервисная архитектура позволяет масштабировать систему избирательно. Другой плюс - независимость развертывания. Как я понял, проводится параллель с объектами - каждый сервис выполняет только одну задачу и выполняет ее хорошо и при этом является черным ящиком для других сервисов.
>В книгах написано, что микросервисная архитектура позволяет масштабировать систему избирательно
Ну и что. А у меня кеширование везде. Мне похуй.
Ты какой-то слабенький плюсик получил в виде "отдельного деплоя/отдельного масштабирования", но зато у тебя появился новый геморрой - теперь надо тестировать взаимодействия всех этих ебучих микросервисов между собой. И чем ты их больше наплодишь, тем более мозгоёбнее будет взаимодействие. Это всё будет идти через какой-нибудь сервис авторизации, чтобы он дал добро на операцию. Добавь сюда ещё сетевой лаг. И прочее.
Посчитай сам время - сколько займёт чтобы сформировалась страница, если ты разобьёшь фронтэнд, пост и комментарий на три разных компьютера, и он будет вначале к одному компьютеру обращаться чтобы получить комментарий, потом ко второму компьютеру чтобы получить запись. Это дохуя времени ушло чисто чтобы твоя хуйня передалась по сети.
>и он будет вначале к одному компьютеру обращаться чтобы получить комментарий, потом ко второму компьютеру чтобы получить запись
Поздравляю, ты только что выяснил почему пхп монолиты переписываются на го микросервисы.
Ну и в целом в больших микросервисных сетях используется событийная архитектура. То есть каждый сервис слушает n событий, и после обработки этих событий создает свои события.
В ситуации, которую описываешь ты, у сервиса, который отвечает на запрос пользвателя уже должны быть и посты и комментарии, потому что он подписан на события создания постов и комментариев.
А даже если не подписан, то он создает события-запросы и сидит слушает очередь событий-ответов. Обработка событий-запросов разумеется происходит параллельно. И сервис постов и сервис комментариев полчают событие-запрос одновременно.
UI при этом может быть подготовлен к постепенному поступлению данных, типа пока комментариев нет показываются заглушки. Ты полюбому такое видел где-нибудь на ютабе или в слаке.
Ну и в итоге чего ты добился?
У тебя получится охуенно дорогое решение, отдельные сервера, отдельные базы данных они же не бесплатные.
Каждая отдельная хуита - это дзынь! Минус тысяча. Дзынь! Минус пять тысяч. Заставить бы тебя платить тысяч 25-40 рублей в месяц за хостинг.
Хотя это же не из твоего кармана.
И плюс, добавил себе геморроя в работе.
Это всё придётся обслуживать. Обдумывать схемы взаимодействия, какие данные кому и в каком формате передавать. Как это всё потом тестировать. Писать отдельные конфиги для деплоя. Ещё писать дополнительные ci/cd и проч. Его
Мелочь просто неоправданно выносить в микросервисы.
В одну харю пилить микросервисы тоже неоправданно.
Это уже блять каргокульт какой-то.
Ютуб - это другой случай, там огромная команда и огромный трафик. Там это имеет смысл делать.
Двачеры вряд ли когда-то столкнутся с проектами подобного размера и сложности.
1280x720, 2:13
А кто тебе сказал что микросервисы это про профиты? То что ебланы занимаются каргокультом пытаясь быть как гугл это проблемы ебланов.
Вместо видосов пятнадцатилетних протыков посмотри вот это гениальное видео от человека, который видел некоторое дерьмо.
"Как саботировать внедрение микросервисов" https://www.youtube.com/watch?v=r8mtXJh3hzM
Если вкратце, без охуенных авторских шуточек: что бы ты не делал, ты скорее всего обосрешься, на каждом шагу подводные камни, сложности и заебы.
Микросервисы это сложно, дорого и геморройно. И вообще это не способ организации кода, а способ организации компании. Это на сегодняшний день единственный более менее рабочий способ заставить несколько сотен программистов работать над одним продуктом.
Если пишется система управления аэропортом, и пишут её 100+ С++ программистов, а управление ведется обычным образом, без всех этих разделений и заморочек, то вероятность релиза меньше 30%. Речь даже не о багах каких-то. Речь о вероятности того что написанный код вообще до аэропорта доберется. Можешь не верить на слово долбоебу с двачей, погугли зависимость успеха от размера проекта, демарко, chaos report'ы.
Микросервисы это способ сделать работу, которую невозможно сделать, заплатив за это "всего" двумя сантиметрами отрезанного хуя. Очевидно что для этого нужна целая операционная с врачами, медсестрами и опытным хирургом. А если у тебя всего этого нет, ты ты как еблан порежешь сам себя, истечешь кровью и сдохнешь в своей ванной.
Так вот мне емакс посоветовали, я в емаксе пишу, блядь, нахуй.
Только вот подсветки синтаксиса нет и приходится гуглить команду на любое действие. А с иде я считаю что не по человечески они поступают. Бесплатно должно быть или комьюнити версия, например, как у них с пайчармом. А вынуждать новичков платить такие бешеные бабки за иде - это пидорство.
>микросервисы это про профиты
Какая разница профит или нет? Кабанчик хочет у себя микросервисы, ты обязан понимать что это и как это реализовывать.
Кабанчик иногда хочет микросервисы, чтобы удаленные макаки не спиздили целиком проект и не продали конкуренту. К технологичности микросервисов это не имеет никакого отношения. Например кабан делает крипто казино. Крутилку с бананами и бекенд для этого пилят макаки с улицы или аутстаф. Логику выигрышей и криптошлюз пилит проверенный челик.
https://www.masteringemacs.org/article/how-to-get-started-tree-sitter
Если у тебя имакс версии 29+ то триситтер уже есть, осталось тольок подсветки подключить
И вообще имакс начинают изучать со встроеного тутора (обязательный шаг). Потом пишут конфиги и попутно изучают имакс лисп.
Реально так? А как они могут спиздить и какие ещё подобные сценарии есть, интересно
Охренел. Заплати уже 300
Где можно изучить rabbitmq на практике? Увидел, что уроки от слерм стоят 35к и офигел
Нет, какой-нибудь Python проще будет выучить
> какие ещё подобные сценарии есть, интересно
А тебе зачем?
Просто кабаныч хочет, чтобы доступ к коду был разграниченный, как в репозитории так и на сервере. Это не моя фантазия. Я реально такие соображения слышал от кабана.
Ты бы знал, что за проект у нас на работе, такое не говорил
Как, блин, к этому сраному рынку адаптироваться, когда сначала на твои попытки внедрить тесты или ещё что-то эдакое, отвечают "нам этот твой редис нахуй не нужОн!", а потом "ой, а нам нужно, чтобы кандидат пользовался редисом последние пять лет".
А, ещё Elasticsearch забыл и CI/CD. И GraphQL и MongoDB часто мелькают.
Потому что нужны сеньоры за з/п трейни.
>Обязательно ли ставить линукс
Нет. Нет необходимости пользоваться линуксом, но знать как с ним работать это плюс для резюме.
>Какой операционной системой пользуетесь?
Виндой.
Перевожу для вкатунов:
Redis означает: работали ли вы с кешем вообще? Никто конкретно про редис не спрашивает.
Docker означает: забудь про ебучий LAMP, сейчас твое рабочее окружение в контейнерах.
Kubernetes вообще нихуя не означает, ты все равно ничего там настраивать не будешь.
PhpUnit означает: мы НЕ УМЕЕМ писать тесты. А ты УМЕЕШЬ? Заебись конечно что умеешь, а то у нас такой кал.
Apache Kafka и/или RabbitMQ означает: нам приходится изъебываться чтобы не писать логи в эластик напрямую, потому что это долго.
Clickhouse означает: в компании SQL сектант, который не осилил запросы в эластик.
>PhpUnit означает: мы НЕ УМЕЕМ писать тесты. А ты УМЕЕШЬ?
Если я научусь, кабаныч возьмет меня на работу?
Вот, кстати, одной из причин того, что я пошёл в программисты из админов - программисты только программируют, а не тянут на себе всё подряд. Но так было в далёком 2014-ом. А сейчас расплодилось вот это вот всё. На работе-то ладно ещё, работать можно. Но на собеседованиях просто дикое душнилово.
Рыночек идет по пути оптимизации усилий и увеличении прибыли. И ты должен.
Эх, раньше то было лучше, воены просто учились махать мечем/тыкать копьем, не было всяких пзрк, не надо было учиться летать на вертолетах. Эх!!
Ну, вообще-то так и было. Когда-то профессиональные воины либо сражались, на чём было, либо адово бухали и ебали селянок. А потом пошла шагистика, манипулярный строй и зубрёжка устава легиона.
Я бы проверил почему не работает, но иде под пхп только платная от конторы пидорасов. А у меня нет на нее денег. Попробуй спросить у чат гпт.
Ты понимаешь, что тут с этим говном давно уже никто не имеет дело? В том смысле, что самому в пхп скрипте писать Location. Поэтому и вспоминать что у тебя там могло произойти не так - не каждый вспомнит. Учись гуглить. Твою проблему можно загуглить так: "header() php не делает редирект".
По выдаче гугл результатов, например, у человека с форума header() не работал из-за того, что подключаемые файлы с помощью
функций include/require не имеют формата utf8 без BOM. Мы ж не знаем что у тебя там.
Что такое пустой массив снаружи? Снаружи чего?
Я имел ввиду, что никто напрямую не вызывает header.
Я сомневаюсь, что тут сидят люди, у которых уже есть какой-то опыт написания кода и они до сих пор не переехали на фреймворк. Во фреймворке все просто - вызвал функцию redirect() и все.
Функции-замыкание погугли
Я установил Redis на ПК, установил пакет predis для Laravel, немного поменял конфигурацию, узнал под каким ключом Laravel кладет в Redis значения. Научился вытаскивать и класть значение через Laravel, попробовал сам писать сырые команды в redis.cli. Что дальше?
>На какие вопросы нужно знать ответы, чтобы указывать в резюме, что знаешь Redis?
Дело не в ответах, а в собеседующем. Одному может быть достаточно что ты знаешь что это такое и где используется, другой будет душить вопросами пока не поплывёшь.
Было бы хорошо, если бы ты навскидку предложил несколько вопросов.
Если
>цель логирования - само логирование
то веди все журналы.
Лично я на практике внедрял логи ошибок (чтобы самому быть в курсе, как наш копролит неработает), логи доступа ("аналитикам нужно знать, кто из клиентов чем пользуется, и насколько часто"), логи изменения ("а вот сделай кнопку "отмена", чтобы всё можно было вернуть взад, если я чего-то не то накликал").
Получилась нечитаемая мешанина.
Отдели создание изображений от их отображения. Потом отдели получение файлов из базы от создания новых.
У тебя в шаблон должен приходить готовый список созданных миниатюр.
Или вы тут только джунов выдрачивать можете?
>ОСпанель просто в блокнот пишу
Выкидывай это говно и накатывай PHPStorm и WSL с докером либо полноценно перекатывайся из винды на линупс
Дрочу vim