Главная Юзердоски Каталог Трекер NSFW Настройки

Программирование

Ответить в тред Ответить в тред
Check this out!
<<
Назад | Вниз | Каталог | Обновить | Автообновление | 1099 117 239
Клуб изучающих PHP #128 /php/ Аноним 20/08/22 Суб 17:38:34 2440871 1
php-noob-1.png 32Кб, 500x500
500x500
cat-cafe-osaka.jpg 140Кб, 1024x683
1024x683
cat-sad.jpg 194Кб, 1024x768
1024x768
l0-sensei.jpg 34Кб, 650x384
650x384
Здесь мы изучаем язык PHP (а также JS/CSS/HTML/SQL) и учимся делать сайты. Зачем? Кто-то хочет открыть стартап, кто-то заработать на лапшу быстрого приготовления, кому-то просто нечего делать.

ОП довольно занят, но постарается ответить на все вопросы. Также, ответы и решения задач можно поискать в архиве тредов phpclub.

Это тред и для начинающих. Слово "классы" у тебя ассоциируется только со школой, а в аттестате тройка по математике? Ты наш человек.

Предыдущий тред был тут: >>2347129 (OP) . Все старые треды есть в архиве: https://phpclub.tech/ (впрочем, иногда он не работает).

С чего начать

Наши уроки по PHP собраны по адресу http://codedokode.github.io/phpbook (вас отредиректит на другой домен, не запоминайте его, он временный). Это учебник для изучающих с нуля. Там есть задачи, их нужно решать. Но если этот учебник тебе не нравится, можно читать любой другой. Или официальный мануал. Или все сразу.

Если не знаешь как решать, запости код и попроси подсказку или поищи задачу в архиве тредов.

Ты прошел весь учебник? Молодец, но это были лишь основы языка PHP. Вот что в идеале надо изучить еще: ООП, как работает веб-сервер, HTML/CSS, SQL, PDO, работа с таблицами в БД, работа с формами, MVC, git, composer, JS, фреймворки, автоматизированное тестирование. У нас есть задачи для изучения этого:

- для начала прочти урок https://github.com/codedokode/pasta/blob/master/soft/web-server.md
- установи Апач + PHP (советы выше и ниже) и читай туториал http://php.net/manual/ru/tutorial.php
- Учи HTML/CSS и SQL, PDO, хотя бы основы
- Далее простая, но полезная задача сделать список студентов, в ней много полезных советов: 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
- Почитать про паттерны http://designpatternsphp.readthedocs.org/ru/latest/README.html (если ты не изучил ни одного фреймворка, то это будет рановато), тут с примерами кода http://designpatternsphp.readthedocs.org/ru/latest/README.html . Имей в виду что без примеров использования их учить бесполезно - не поймешь, хочешь увидеть примеры использования паттернов - ковыряй исходники Симфони, например Symfony Forms. Не заучивай паттерны - смотри код и думай, зачем тут они использованы.

Чтобы делать эти задания, тебе надо установить Апач + PHP (можно заодно сразу и MySQL) на компьютер. Вот полезные инструкции:

https://github.com/codedokode/pasta/blob/master/soft/php-install.md
https://github.com/codedokode/pasta/blob/master/soft/apache-install.md

Может тебе понадобится пользоваться командной строкой, вот гайд https://github.com/codedokode/pasta/blob/master/soft/cli.md

Параллельно стоит подучивать английский, на первых порах можно без него, но по мере развития придется все чаще сталкиваться с англоязычными статьями, так что лучше не откладывать. Читать можно news.ycombinator.com - это что-то вроде их хабра.

Вот неофициальный роадмап (карта того, что желательно изучить): https://miro.com/app/board/o9J_lbUUBBQ=/

Также, у нас есть задачи которые позволят тебе изучить или подтянуть до нормального уровня знания JS/HTML/CSS/SQL. Решай их параллельно с задачами выше.

- HTML/CSS: https://github.com/codedokode/pasta/blob/master/html/html.md
- 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/
- MySQL: https://github.com/codedokode/pasta/blob/master/db/databases.md

Что почитать

- Мануал по PHP — http://www.php.net/manual/ru/langref.php
- Сайт phptherightway (перевод на русский: http://getjump.me/ru-php-the-right-way/ )
- По PHP: Профессиональное программирование на PHP Джордж Шлосснейгл
- По PHP: Мэтт Зандстра — PHP: Объекты, шаблоны, методики программирования
- JS: learn.javascript.ru
- Про Git: https://git-scm.com/book/ru/v1
- Новости IT на англ. https://news.ycombinator.com/
- какой-то древний, устаревший, но большой и на русском справочник по веб-разработке, посоветованный аноном: https://starcat.dp.ua/doc/wdh/

Оформляй код аккуратно!!! — например пропусти через phpformatter.com . Также, если ты пользуешься IDE вроде PhpStorm, Netbeans, Eclipse, то в них эта опция встроена, подробнее: https://gist.github.com/codedokode/8759492

У ОПа нет аккаунтов и групп вконтакте, в фейсбуке, в твиттере, все "пхп-треды" там поддельные.

Платиновые вопросы

- Почему PHP? Потому что вакансий море, и учить легко.
- Сайт опять упал!!!!! — Не паникуй, а зайди на https://github.com/codedokode/phpbook, нажми зеленую кнопку Clone or Download -> Download ZIP, распакуй на рабочий стол и получи личную копию сайта, не требующую интернетов.
- Что надо знать чтобы найти работу - разработчику: PHP, SQL, HTML/CSS, JS, ООП, Git, композер, MVC, фреймворк. Верстальщику - HTML/CSS, JS, jQuery. У нас в треде были люди, которые практически с нуля учились и смогли найти работу (ищи в архиве по слову "устроился").
- Что будут спрашивать на собеседовании если 0 опыта - гонять по теории, по официальному мануалу PHP, давать дурацкие задачки на переворачивание строк, гонять по SQL (транзакции, внешние ключи, напиши запрос), по JS (как сделать анимацию при нажатии кнопки), ну погугли, не ленись
- Можно подробнее про поиск работы, собеседования - нет, ОП писать не будет, но может кто из анонов захочет рассказать. Поищите тред перезвонивших, а также раздел /wrk/
- Сколько времени надо изучать все это? - все зависит от тебя, но не меньше 6-8 месяцев
- Нужен ли ООП, фреймворки, MVC, git, composer? — Да, однозначно. Посмотри любую вакансию.
Пиши верно Аноним 20/08/22 Суб 17:39:47 2440874 2
grammar.png 55Кб, 500x644
500x644
Код надо писать аккуратно и оформлять, как принято. Потому, что другой человек, который будет смотреть твой код, вряд ли обрадуется, когда ему придется разбирать слипшиеся строчки, разбросанные в беспорядке скобки и написанные русскими словами названия переменных. Особенно плохо будет если это, например, код тестового задания, которое ты сделал, чтобы устроиться на работу. Если он будет неряшливым, это будет большой минус.

Для этого достаточно вставить код на http://beta.phpformatter.com/ и нажать «format». Робот оформит все как надо. Если ты используешь IDE, то там есть горячая клавиша для этого. Список клавиш для IDE: https://gist.github.com/codedokode/8759492

Вообще, в PHP долгое время не было единого стандарта оформления кода, все писали как попало и было много бардака, но сейчас дело лучше — есть рекомендации PSR-1 и PSR-12. Вот как надо оформлять код:

- переменные и функции пишутся с маленькой буквы, подчеркивание не используется, используется camelCase, пример: $x, $numberOfPeople, printResults()
- Название функции начинается с глагола, в стиле «сделайЧтоТо»
- не знаешь английский? Не беда, в 21 веке есть решение этой проблемы. Не пиши транслитом, открой лучше Гугл Транслейт и найди название для переменной там
- в именах классов используется CamelCase, первая буква большая, «_» может использоваться
- мы предпочитаем подстановку переменных вместо конкатенации строк: "I am $age years old" — хорошо, 'I am ' . $age . ' years old' — плохо из-за обилия точек и кавычек
- мы используем для отступов 4 пробела (можно настроить редактор, чтобы при нажатии Tab он вставлял 4 пробела)
- ставим тайп-хинты на аргументы функций, результат функций и поля классов

Вот ссылка на рекомендации PSR, где все это описано подробнее и даны примеры оформления:

PSR-1 (рус.): https://svyatoslav.biz/misc/psr_translation/#_PSR-1
PSR-12 (англ.): https://www.php-fig.org/psr/psr-12/
Аноним 21/08/22 Вск 13:20:44 2441589 3
>>2440871 (OP)
бамп треду, а то че как лох на дне сидит
Аноним 21/08/22 Вск 13:52:37 2441628 4
767c7cd01574f36[...].jpg 56Кб, 640x640
640x640
Аноним 21/08/22 Вск 18:03:19 2442058 5
>>2441628
Интересно на каком фреймворке она пишет.
Аноним 21/08/22 Вск 18:56:28 2442132 6
>>2442058
На жопаскрипте XDDDDDD
Аноним 21/08/22 Вск 21:47:12 2442271 7
>>2442058
На laravel, очевидно же
Аноним 22/08/22 Пнд 10:01:18 2442582 8
Аноним 22/08/22 Пнд 12:44:45 2442696 9
>>2439329 →
Спасибо, исправил статику там. Но с этими категориями все равно не выходит. Во-первых, ускользает смысл первой функции от меня с суммой всех категорий. Потом что, через for как-то проходить с ее помощью надо будет что ли? В текущем виде у меня вроде она просто как count работает для одномерного массива.
А во-вторых, как с простой суммой тут не получается работать с массивом, проблема вернуться во вложенности тут видимо когда цикл foreach углубляется все дальше.
https://onecompiler.com/php/3ydre97w2
Это вообще часто применяется или только чтобы на собесах отсеивать вкатунов типа меня? В php вроде есть уже готовые библиотечные итераторы для такого.
Аноним 22/08/22 Пнд 13:53:43 2442759 10
>>2442696

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

> $res++;
> if(is_array($value)){
> countCategories($value);}

Тут неправильно. Должна быть такая логика: если $value это строка (то есть, категория без детей, или лист дерева) то прибавляем к $res единицу. Если же $value это массив, то считаем рекурсивно число элементов в нем и прибавляем к $res.

В printCategories логика такая:

- если $value это строка, то выводим $parents + $value
- есди $value это массив, то добавляем ключ в $parents и вызываем себя рекурсивно для вывода этого массива

> Это вообще часто применяется или только чтобы на собесах отсеивать вкатунов типа меня?

Конечно, часто. Представь, например, каталог товаров в интернет-магазине. Ну и на собеседовании такая задача хорошо помогает отсеивать тех, кто не разбирается. Если человек в рекурсии не разобрался, то он наверно и в других абстракциях не разберется.

> В php вроде есть уже готовые библиотечные итераторы для такого.

Ну примени их тогда.
Аноним 22/08/22 Пнд 13:58:01 2442762 11
>>2442696

Я согласен, что рекурсия сложная штука, но все же тебе надо как-то в ней разобраться. Чтобы разобраться в рекурсии, тебе надо уметь разбить задачу на части. Например, задачу "посчитать сумму чисел в вложенном массиве" превратить в "посчитать сумму в плоском массиве и вызвать себя для обработки вложенных подмассивов". Аналогично, вывод дерева надо превратить в функцию "вывод одного уровня дерева", которая вызывает сама себя.
Аноним 22/08/22 Пнд 14:35:41 2442800 12
>>2442762
В каком месте рекурси это сложно? Мы её в 8 классе ещё изучали. А что будет дальше, мы начнем говорить, что стек/очередь это сложно? Что за регресс. Как же меня бесят современные вкатывальщики, полюбому только из-за денег идут "вайти".
Никакой базы. Про "алгоритмы и структуры данных" как предмет наверное даже не слышали.

>>2442696
Чел, такой тебе совет, пройти пару начальных курсов по программированию, только не всратых от otus или подобных говноедов, а нормальных. Эффект сначала будет неочевиден, но со временем ты поймешь, насколько это было полезно.
В индустрии есть базовые вещи и рано или поздно с ними сталкиваются все и вот тогда-то и всплывает разница между профессионалами и вкатывальщиками с завода.
Примерно как у тебя, ты же вроде хотел сначала ссылки со страницы перебрать, а потом столкнулся с некой базовой задачей, не так ли?
Как побочный эффект, будешь на изи проходить любые собесы по алгоритмам.

мимопроходил
Аноним 22/08/22 Пнд 18:24:08 2442965 13
>>2442759
>>2442762
Спасибо за пояснения и терпение. Кое-как вроде сделал, но нужно еще попрактиковаться, разумеется. Наверное корень моей беды что я с трудом представляю промежуточные значения между вызовами и поэтому только подобной подгонкой что-то получаю.
https://onecompiler.com/php/3ydrm2mmv
>>2442800
Веришь или нет, но я изучал алгоритмы и структуры данных, но вот конкретно с рекурсией у меня всегда была проблема, не вижу в упор чем она проще.
Аноним 22/08/22 Пнд 19:10:40 2443007 14
>>2442965
> Веришь или нет, но я изучал алгоритмы и структуры данных, но вот конкретно с рекурсией у меня всегда была проблема, не вижу в упор чем она проще.

Ряд алгоритмов вида обхода дерева намного проще описывается через рекурсию.
Просто логически представь, или ты описываешь полностью обход дерева, или просто говоришь что-то вроде
1 для указанного узла дерева
2 сделай что-там-тебе-надо
3 а потом повтори то же для его детей
Скармливаешь этой фигне корень дерева и дальше оно проглатывает всё дерево полностью.
Аноним 23/08/22 Втр 01:31:08 2443323 15
Сап, аноны, не совсем по теме треда, но отдельного по веб разработке нету. Вот в чем суть вопроса: хочу поднять маленький онлайн кинотеатр ( в былое время просто для души клепал сайтики на php + js + css + html), с нуля такую штуку писать не вариант от слова совсем, в связи с этим реквестирую годные cms для этой цели
Ах да, еще момент, какие санкции мне грозят за пиратский кинотеатр?
Аноним 23/08/22 Втр 09:45:56 2443438 16
>>2443323
>годные cms для этой цели
DataLife Engine

>какие санкции мне грозят
Набутылят!
Аноним 23/08/22 Втр 11:38:32 2443570 17
>>2443323
Непонятно, зачем тебе это надо.
Если для личного употребления, то cms тебе не нужен, как и вообще сайт. И управлять нечем, и комментарии не нужны, и всё такое.
Любое облачное хранилище или просто сервер-файлопомойка (арендуешь и будешь туда файлики кидать) подойдут.
А если ты хочешь поиметь с этого гешефт, то у меня для тебя плохие новости, ты очень быстро упрешься в деградацию скорости и косты за сервера при >1 пользователе, а это основное качество для кинтеатра.
Придется во-первых поднять какой-нибудь nginx с настройками под стриминг видеопотока (ты же не захочешь просто людям файлики отдавать, правильно?), запариваться с cdn чтобы они кэшировали трафик и тд.
CMS здесь опять же вопрос десятый.
Аноним 24/08/22 Срд 04:29:38 2444245 18
Во что быстрее можно вкатиться в CMS Wordpress или во фреймворк Laravel? Хочу вкатиться побыстрее, и не знаю за что будет проще взяться за WP или за Laravel?
Аноним 24/08/22 Срд 05:15:24 2444249 19
>>2444245
Если знаешь хорошо ООП вкатывайся в лару, иначе cms
Аноним 24/08/22 Срд 05:18:39 2444250 20
>>2444249
Я совсем не знаю ООП, значит, мне в вордпресс одна дорога.
Аноним 24/08/22 Срд 12:44:40 2444408 21
>>2444250
Вордпресс это такое дно php разработки, но да, вкатится туда будет полегче.
В целом, мир как-то так работает, что чем легче туда вкатится, тем меньше профита ты получишь. Охранником в пятерочку тоже сильно легче устроиться, чем вообще вкатываться, а первое время может и денег будешь больше получать.
Аноним 24/08/22 Срд 17:55:27 2444640 22
>>2440871 (OP)
Какую ЗП просить за год опыта с божественным битриксом? Сейчас платят 50к.
Аноним 24/08/22 Срд 18:01:52 2444644 23
>>2444640
Я бы битриксоида принципиально не взял. Что за вкус вообще должен быть у человека, чтобы он год этим занимался.
Знал несколько человек, которые "программировали" на битриксе, разработчики из них были примерно никакие.
Аноним 24/08/22 Срд 18:10:43 2444653 24
>>2444644
Очевидно я рассматриваю только Bitrix-конторы, что бы продолжить наслаждаться этой вкуснятиной.
Аноним 24/08/22 Срд 18:17:58 2444661 25
>>2444653
Тогда я скажу, что очент рад, поскольку озвученная тобой сумма которую ты только хочешь попросить в середине 2022, значит зарабатываешь скорее всего ещё меньше, означает, что рыночек порешал и что недопрограммисты тусят в своём отдельном загончике.
Чтобы ты понимал, я 50к получал будучи недоджуном лет десять тому назад, ещё в провинции. Сейчас на свою зп могу, получается, 10 битриксоидов нанять и ещё на жизнь останется.

А вообще конечно виден уровень. Ну зайди ты на hh.ru и аналоги, найди все вакансии, посчитай среднее, домножь на свою скилловость и получи, что хотел. На программаче лучше про зп не спрашивать, тут тебе сейчас местные нищеброды расскажут, что работать за доширак это нормально.
Аноним 24/08/22 Срд 19:08:42 2444700 26
>>2444661
Сравнил индустрию 10 лет назад и сейчас, и требования к "недоджуну".
Аноним 24/08/22 Срд 21:26:15 2444765 27
>>2444700
Ага, а ещё инфляцию, средний рейт по индустрии и тд
Аноним 25/08/22 Чтв 03:30:53 2444917 28
>>2444250
>Я совсем не знаю ООП
Ничто не мешает тебе парралельно учить ООП пока сидишь на WP. Учи типизацию, паттерны и прочие прелести хорошего кода, а то так и будешь получать копейки за говнокод. А потом перекатывайся в лару или симфонию и забудь cms как страшный сон.

>>2444640
>Сейчас платят 50к
Как работягам с завода, я довольно урчу осознавая, что битрикс макаки ценятся не больше васяна с завода или охранника.
Я ждуном получал чуть меньше, но получал опыт в симфонии и практики хорошего чистого кода. Теперь 120к мидл на удалёнке.
А вы сидите на cms'ках не развиваясь. Через 5 лет когда нихуя не поменяется схватитесь за голову, однако будет поздно что либо менять.
Аноним 25/08/22 Чтв 06:58:52 2444947 29
>>2444917
Проиграл с тебя, работяги на заводе и стройке больше нас обоих вместе взятых зарабатывают. Я спрашиваю про зарплату для себя, а не про то как там у других, про яхту Сечина еще расскажите.

>А вы сидите на cms'ках не развиваясь.
В битриксе давно нормальный ORM и Vue из коробки.
Аноним 25/08/22 Чтв 08:53:50 2444982 30
>>2444245
Забей на любые CMS. Учи сразу ларку. CMS это путь деградации, ты ничему там не научишься, что было бы применимо в нормальных проектах.
Учи PHP, composer для автозагрузки классов, и на ООП(MVC) напиши сайтик, а дальше ларку учи.

>>2444917
Увожение. Тоже симфонист на удалёнке.

>>2444947
> работяги на заводе и стройке больше нас обоих вместе взятых зарабатывают
Лол. Работал на заводе за 10к, потом на стройке за 20к, до того, как вкатился в айти. Ты видимо гайку даже в руках не держал, какие зп на заводе без блатных московских мест, ахстись.
Аноним 25/08/22 Чтв 09:08:34 2444984 31
>>2444982
>Учи PHP, composer для автозагрузки классов, и на ООП(MVC) напиши сайтик
В Bitrix и ООП и composer поддержка присутствует, он скорее содержит в себе Laravel, просто не так удобен в некоторых местах, валидатора нормального нету, но есть свои преимущества, и сторонний подключить можно. Что там учить то? Bitrix в отличие от WordPress может выступать и вполне как фреймворк.

>Лол. Работал на заводе за 10к, потом на стройке за 20к
Мои знакомые получают не меньше 200к, есть машины себе и жене, дом, квартира, на заводе уже поменьше, но 150к на местном платят, но я думаю на нормальном и платят больше, только мне это не интересно, понимаешь?

>Ты видимо гайку даже в руках не держал
Держал, но не крутил, подметал, подносил за 40к на стройке, но быстро надоело и решил пойти в битрикс.
Аноним 25/08/22 Чтв 09:12:08 2444985 32
>>2444982
10к это даже не минималка, а что ты мог на 20к делать?
Аноним 25/08/22 Чтв 11:17:43 2445045 33
>>2444984
Скриншот сделай своего кода на битрикс, с git blame. Можешь ещё RPS показать. Посмотрим что там за ООП и как битрикс-разработчики код пишут, лул. Но конечно же ты не покажешь свой говнокод.
Какой битрикс, африканская хуйня какая-то. Будешь на российскую контору до гроба говномагазинчики клепать, пока остальные на западных баринов на хороших проектах работают.


>валидатора нормального нету
Это проблема для тебя? В твоей говноконторе небось jQuery юзают и битрикс-разрабы в html php вставляют? Ахах

>Мои знакомые получают не меньше 200к
а чё не 500к/секунду? Без пруфа не балаболь.
Аноним 25/08/22 Чтв 11:27:22 2445047 34
image.png 49Кб, 865x488
865x488
>>2444984
Какой-то скрин доки битрикса. Просрался с этого дерьма, у нас так даже джуны не пишут давно. Это php уровня 2002 года?

Сущность в ассоц.массив запихивать, пушка. Вы наверное ещё и реквест берёте из $_REQUEST || $_POST || $_GET ?))
Аноним 25/08/22 Чтв 11:36:42 2445054 35
>>2444984
> нормальном и платят больше, только мне это не интересно, понимаешь?
Считаю, люди, которые "зарабатывают менше, но им и так нормально" либо врут окружающим, либо себе, либо всерьез больны.
Ну не может быть такого, чтобы к тебе пришли и сказали "давай мы дадим тебе больше возможностей? сможешь лучше комп собрать, машину купить, чаще в рестораны ходить, что хочешь", а ты такой "нет, мне и так нормально". Это какой-то упоротый дауншифтинг уже. Всегда кстати было интересно, что начинают говорить все эти любители фраз типа "деньги не важны" после сорока, когда организм начинает разваливаться и без нормальных денег собираеть его обратно становится всё сложнее.

> Держал, но не крутил, подметал, подносил за 40к на стройке, но быстро надоело и решил пойти в битрикс.
Очень правильное решение, битрикс это самое для строителей и заводчан место. Одобряю. Ещё советую посмотреть в сторону программирования на 1С, говорят, очень перспективно.

>>2444917
> А вы сидите на cms'ках не развиваясь. Через 5 лет когда нихуя не поменяется схватитесь за голову, однако будет поздно что либо менять.
Да нихуя, рынок CMS был и останется. Вся его "проблема", если это вообще проблема, это то, что по сути это рынок конструкторов, которые предназначены для пользователей, которые не умеют программировать, чтобы они могли сами что-то себе накликать. Запрос есть, пользователи есть и будут.
Тут траблы скорее с точки зрения разработчиков, потому что это не разработка в привычном понимании, даже не самом лучшем конструкторе, коим битрикс конечно же не является. Скорее, такое балансирование между нахуячиванием модулей и написанием скриптов для всего этого.
В итоге "разработчики" оказываются замкнуты в своём мирке, который вроде бы и айтишный - а по факту, они просто накликивают людям сайты. Мирок этот не умрет, но при этом никогда не вырастет.
Аноним 25/08/22 Чтв 11:39:01 2445058 36
>>2445045
> а чё не 500к/секунду? Без пруфа не балаболь.
Я не он, но мне 4 года назад предлагали 300к с чем-то внутри рф и 400к+ удаленку на какое-то кипрское казино. Так что сейчас в суммы вида 200к я запросто поверю, копейки
Аноним 25/08/22 Чтв 11:39:56 2445061 37
laravel.png 43Кб, 717x420
717x420
>>2445045
>Это проблема для тебя?
Я просто описывал состояние, чего подорвался?

>а чё не 500к/секунду? Без пруфа не балаболь.
)

>твоей говноконторе небось jQuery юзают и битрикс-разрабы в html php вставляют?
Никто на битриксе html в php не вставляет, никогда такого не видел нигде.

>>>2445047
Напугала вставка в таблицу? Бедняжка, вот тебе скрин из ларавеля.
Аноним 25/08/22 Чтв 11:46:53 2445065 38
>>2445054
>Считаю, люди, которые "зарабатывают менше, но им и так нормально" либо врут окружающим, либо себе, либо всерьез больны.
Так ты мало получаешь, относительно тех людей, что я знаю. У моего брата строительная фирма (работал не у него), он тоже неплохо получает, ты в каком то пузыре из айтишников что ли? Я если бы хотел советы слушать, спросил бы у него. С чего ты решил, что хорошо получаешь?

>сможешь лучше комп собрать, машину купить, чаще в рестораны ходить
Зачем мне машина? Я из дома выхожу прогуляться только. В ресторанах брезгую питаться, мама лучше готовит. Компьютер уже купил, так что видимо все могу позволить. Хорошо конечно иметь много денег и не болеть, но это не программированием надо заниматься.

>Ещё советую посмотреть в сторону программирования на 1С, говорят, очень перспективно.
Думаю пройти их курс в скором времени.

>В итоге "разработчики" оказываются замкнуты в своём мирке, который вроде бы и айтишный - а по факту, они просто накликивают людям сайты.
Я не пишу стандартные сайты, битрикс использую как фреймворк, удобная интеграция с 1C, админ-панель, и ORM.
Аноним 25/08/22 Чтв 12:02:41 2445079 39
>>2445065
> С чего ты решил, что хорошо получаешь?
Я более чем уверен, что я зарабатываю больше него.

> битрикс использую как фреймворк
На этом можем тогда закончить. С поехавшими нет смысла спорить
Аноним 25/08/22 Чтв 12:10:42 2445096 40
>>2445079
Ахах, манямир треснул, кто то получает больше, и теперь уже ты чмоха? У тебя какое то больное мышление.
Аноним 25/08/22 Чтв 12:20:35 2445105 41
>>2445061
Так и хорошо. Всякий скам тупой пусть идёшь в вордпресс/битриксы и сидит в своих российских залупинских конторах под кнут Владимир Кабановича.

>программирования на 1С
>Думаю пройти их курс в скором времени.
Можешь ещё курс по паскалю пройти, устроишься на завод за 17к, будешь бухгалтерше Людке 1С настраивать.

>>2445058
Он говорит что ты на заводе будешь 200к получать, лол. А он наверное 400к на битриксе получает, в манямирке на маминой шее.
Аноним 25/08/22 Чтв 12:23:14 2445109 42
>>2445096
Покаж перевод последний на счёт, а я свой покажу. Вместе посмеёмся с твоего битрикса, кек.
Дай угадаю, ты ещё и в офис ходишь к кабан Михалычу и работаешь за виндоуз.
Аноним 25/08/22 Чтв 12:35:29 2445116 43
>>2445105
>Он говорит что ты на заводе будешь 200к получать, лол
Как же ты нагнул его, выдумал глупость и типо он глупый а не ты, респект
Аноним 25/08/22 Чтв 12:37:15 2445118 44
>>2445109
А чем плоха Windows 7? Это же не десятка. WinSCP намного удобнее чем FileZilla к тому же, и Notepad++ без Wine не запускается.
Аноним 25/08/22 Чтв 14:18:37 2445163 45
>>2445118
Она вышла из ЛТС и сто процентов ебётся. Для дома может и сойдёт, тем более за натом (хотя drive-by никто не отменял), а для любого серьезного применения это смешно.
Аноним 25/08/22 Чтв 14:45:47 2445182 46
>>2445118
Тем, что винда хуже для разработки почти всего, кроме игр. Там много нюансов, но самый простой это то, что сервера так или иначе почти все на линуксе и соответственно чем ближе ты к реальной среде во время разработки, тем легче.
Кроме того, в линуксе есть целая экосистема всяких сервисов и инструментов, те же make, bash и так далее и значительная часть тулчейна разработки построена на них.
Аноним 25/08/22 Чтв 14:50:29 2445186 47
>>2445118
Ну для битриксоидов-обезьян сойдёт и винда, могут и гитом не пользоваться, а по старинке через фтп заливать, и слить хоть весь проект и данные бэкдорам с вирусами, кек.

А программисты пользуются линуксом. Ну маком на крайняк. Но точно не виндусятиной.
Аноним 25/08/22 Чтв 14:57:49 2445189 48
>>2445186
А как же зипы? backup-26.04.1986.zip
Аноним 25/08/22 Чтв 14:59:12 2445191 49
>>2445186
Для меня тут смешнее всего то, что битриксоиды действительно не понимают, почему над ними смеются.
У них - ха! - навыков не хватает понять, что у них не хватает навыков и что они с их битриксом неиронично находятся на самом дне разработки.
Буквально живая интерпретация эффекта Даннинга-Крюгера, "идиоты не способны понять, что они идиоты - потому что они идиоты"
Аноним 25/08/22 Чтв 15:33:31 2445198 50
>>2445191
Пробовал я этот гит - не оправдывает затраченное время.
Аноним 25/08/22 Чтв 15:47:45 2445210 51
>>2445198
Пощади меня, человек-анекдот, не продолжай.
Аноним 25/08/22 Чтв 16:12:19 2445253 52
Без названия.gif 1586Кб, 384x372
384x372
Аноним 25/08/22 Чтв 17:35:28 2445323 53
>>2445198
Битриксоиды всё не перестают смешить людей. Вот поэтому ребята никогда не думайте даже в сторону CMS, тем более всяких патриотично-православных битриксов.
Аноним 25/08/22 Чтв 18:49:17 2445393 54
>>2440871 (OP)
Посоны, с чего начать изучение jquery? видел его часто в вакансиях...
Аноним 25/08/22 Чтв 18:53:52 2445397 55
>>2445393
как и всё остальное -- с постановки реальной и интересной задачи
Аноним 25/08/22 Чтв 19:21:13 2445402 56
Аноним 25/08/22 Чтв 19:47:21 2445417 57
посоны-посоны, а стоит ли вкатываться в программирование на фреймворке datalife engine?
Аноним 25/08/22 Чтв 20:22:04 2445442 58
>>2445393
Если ты не троллишь сейчас

1) jquery - это вообще не php, а js
2) это просто библиотека, которая предоставит тебе набор функций, чтобы навеситься обработчики на какие-нибудь dom элементы, а ещё предоставляет всякие делалки http запросов и всё такое
3) она была очень популярна лет 10 назад, потому что единообразно решала многие задачи тогдашнего фронтенда, сейчас большая частеё функционала или уже есть прямо в языке, или не нужна, например те же обработчики сейчас мало кто навешивает в современных приложениях на базе реакта/ангуляра/vue
4) ты скорее всего её встретишь только как легаси, либо как часть фронтенда какой-нибудь cms, с которой она идет в комплекте
5) но так как это тупо небольшая с точки зрения интерфейса библиотека, то там нечего изучать. $.on('click', function() {}), $.post('/bla-bla/, function(){}) и может ещё несколько методов, просто посмотреть в документации, что она может и всё. Потом как столкнешься в реальной жизни, глянешь и всё.

>>2445402
Не нужна, а если где-то встретишь - беги оттуда. Её на 99.9% убил git, вот его изучать точно стоит, посмотри любые мануалы в интернете, их там до жопы.

>>2445417
Никогда не слышал, скорее всего нет. Если PHP - то или Laravel, или Symfony. Второе покруче будет, но и посложнее для новичков. Всё остальное а его дофига, yii, cakephp, zend, codeIgniter, wordpress, drupal, bitrix, ... не нужно от слова совсем, если ты хочешь быть хорошим и востребованным разработчиком. Если не хочешь, то, как видишь, сортов говна прям много, на любой вкус.
Аноним 25/08/22 Чтв 21:10:22 2445484 59
>>2445442
>сейчас большая частеё функционала или уже есть прямо в языке
Нету, есть похожие функции, но они не предоставляет полную функциональность.

>Если PHP - то или Laravel, или Symfony
Ты в какой стране живешь? Только Bitrix с Jquery 2.x
Аноним 25/08/22 Чтв 21:49:02 2445502 60
Стикер 383Кб, 500x500
500x500
>>2445484
> Только Bitrix с Jquery 2.x
И верстка с поддержкой IE6
Аноним 25/08/22 Чтв 21:59:29 2445510 61
>>2445198
Конечно, с битриксом это полный пиздец, проще всю bitrix убрать в гитигнор, там они хаотично засрали временным файлами в каждом углу, правда правда хуй так просто проект развернешь, я помню когда с этой залупой работал на проде резервную копию делал и выкачивал архив чтобы развернуть. А про долбоебов которые через админку пхп фалы правят я уже молчу, это чуть ли не норма. Столько лет прошло, а битриксоиды до сих пор хуйней страдают, я сейчас без гита работу не представляют, как так можно файлики мышкой перетаскивать по фтп в 2022 году не понимаю
Аноним 25/08/22 Чтв 22:11:19 2445524 62
>>2445442
ну признаюсь, потроллил чуть-чуть
Аноним 25/08/22 Чтв 22:16:27 2445528 63
изображение.png 329Кб, 415x592
415x592
>>2445065
>битрикс использую как фреймворк
Это тебе Рыжиков или Басыров в книге сказали что там фреймворк? Это хаотичный костыль из говна и палок, с ебанутой логикой, там хотя бы D7 допилили? Или также старое с глобальными переменными, старое ООП и новое D7? Фреймворк это в первую очередь порядок, каждый фреймворк организует четкую структуру каталогов в проекте, все лежит на своих местах, а уже потом все его возможности, посмотри на тот же ларавель или на рельсы, там все четко и понятно. В битриксе же ты можешь заебаться искать где находиться тот шаблон в котором тебе нужно поменять класс чтобы перекрасить кнопку. Элементарный роутинг сука можно реализовать хуйпойми какими способами, десятки их.
И каждый норовит сделать по-своему Самый лютый пиздец это когда берешь проекты от других студий. На рельсах я беру проект от любого другого человека и он будет везде написан +/- одинаково даже старые древние версии от нынешней 7 не сильно отличаются в плане архитектуры.
Это не фреймворк, а набор костылей который ты пытаешься натянуть на глобус.
Аноним 25/08/22 Чтв 22:29:16 2445546 64
>>2445118
>А чем плоха Windows 7? Это же не десятка.
>Notepad++
Сука лол, мне кажется это тролль
Аноним 25/08/22 Чтв 22:30:20 2445548 65
>>2445510
Да там не много в гитигнор добавить надо, на гитхабе готовые уже лежат файлики.

>>2445528
>В битриксе же ты можешь заебаться искать где находиться тот шаблон в котором тебе нужно поменять класс чтобы перекрасить кнопку.
Через эрмитаж можно сразу посмотреть, да даже без него никогда подобных проблем не было. Похоже что ты просто не осилил, можешь сказать что тебе и не нужно было, но таких проблем я не замечал.
Аноним 25/08/22 Чтв 22:31:43 2445551 66
>>2445546
неее, не может быть. я вот до сих пор уже 8 лет занимаюсь разработкой в Notepad++ на CMS DataLife Engine 9
Аноним 25/08/22 Чтв 22:35:06 2445556 67
>>2445551
Уважение таким. У нас в конторе почти все сайты на базе Joomla! 1.0.15 Lavra Edition 2008, очень удобная и ламповая версия от Свято-Троице-Сергиевой Лавры, смысла менять проверенное решение не вижу.
Аноним 25/08/22 Чтв 22:58:44 2445563 68
>>2445548
>Через эрмитаж можно сразу посмотреть, да даже без него никогда подобных проблем не было
Повезло, а мне доводилось допиливать говно после других студий и это адская боль, а если какое-нибудь аспро туда запихнут, то это полный пиздец.

>Похоже что ты просто не осилил, можешь сказать что тебе и не нужно было
Да, не нужно было, но в какой-то степени осилил, но не запоминание где чего лежит и куда мышкой тыкать, а покопался в кишочках. Разматывал includes.php в модуле main, там проверка лицензионного ключа, как оказалось битрикс можно крякнуть за полчаса, реверс инжиниринг оказывается интересное занятие.
Ну и еще БД поковырял, жаль что эта хуйня в постгрес не умеет, я нечто похоже на постгресе организовал перенес базу с проекта на битриксе и у меня получилось извлечь проперти инфоблока и подписать столбцы взяв названия этих проперти из другой Хитровыебанный запрос собрал json, потом развернул то есть получилось как если бы там была нормальная БД с нормальными таблицами, если осилил в sql и посмотрел как там база устроена, то должен понять. Еще почти написал типа генератора кода для работы с инфоблоками через классы, типа DTO, вместо этих ебучих массивов, но до рабочего варианта немного не доделал. Вообще мне не нравилась работа с данными в этой хуйне и я пытался что-то придумать.
Ковырять такое в качестве развлечения иногда интересно, но работать с этим говном это сущий пиздец, да и задачи половина фронтенд, половина создать инфоблоки в админке.

Потом съебал через полгода на рельсы с 35к деревянных на 1100$ (тогда по 60-65 был) припиздел на собесе что с ларавелем работал и типа он очень похож на рельсы
Аноним 25/08/22 Чтв 23:09:50 2445567 69
>>2445563
Но ведь ларавель действительно антипхпшный каргокульт рельс. Анти - потому что почти все в пхп стремится быть похожим на жаву.
Аноним 26/08/22 Птн 03:06:35 2445647 70
>>2445567
>что почти все в пхп стремится быть похожим на жаву
Всё пхп само по себе берёт хорошие практики из других языков и включает их в новые версии и фреймворки тут не причём.
Что-то берёт из решёток, что-то из жавы, что-то из раста. Так из этого франкенштейна получается современная пыха.
Аноним 26/08/22 Птн 07:12:31 2445663 71
Хуя пердов-хуесосов рвет с ровного кабанчикового фреймворка, если двачеры что-то не любят то точно нужно это брать. Работайте, битриксоидобратья!
Аноним 26/08/22 Птн 07:16:30 2445665 72
Перды-хуесосы не понимают, что с битрой и софт скиллс можно свою лодку открывать и обкашливать вопросики с кабанчиками, жировать и жрать лобстеров наху
Аноним 26/08/22 Птн 08:18:45 2445670 73
>>2445563
>Повезло, а мне доводилось допиливать говно после других студий и это адская боль, а если какое-нибудь аспро туда запихнут, то это полный пиздец.
Я тоже таким занимался, и с аспро и другими работал, проблема была только с каким то решением, где не использовались компоненты битрикса, а какой то кривой конструктор сайтов, было сложновато с этим работать.

>как оказалось битрикс можно крякнуть за полчаса
А смысл какой? Обновления, магазин будут недоступны же?

>то есть получилось как если бы там была нормальная БД с нормальными таблицами
>работы с инфоблоками через классы
Ну это уже давно из коробки же есть? Возможно инфоблоки 2.0 это немного не то для тебя, но есть хайлоадблоки же, которые табличные таблицы.
Аноним 26/08/22 Птн 09:10:19 2445688 74
>>2445670
>А смысл какой? Обновления, магазин будут недоступны же?
Чисто спортивный интерес

>Ну это уже давно из коробки же есть?
Ты про орм, ну во первых авторам этого надо почитать что такое орм, а во вторых на тот момент это была нерабочая хуйня, которую гордо объявили на конференции. А моя поелка была в том что генерировались классы из всех полей проперти делались переменные класса с которыми было взаимодействие, вместо элементов массивов и где работал автокомплит ide, ну и этот класс умел в CRUD. Самое главное что это была кодогенерация. Смысл был в том чтобы с ide возможно было работать не как с блокнотом, а чтобы хоть что-то подсвечивалось. Вообще меня в битриксе прям бесило что ide не может нормально работать с ним, в итоге ты пишешь как лох вебмастер из нулевых в блокноте. Да я видел плагины для шторма, но я не помню уже почему от них отказался, наверное не работало

> но есть хайлоадблоки же, которые табличные таблицы.
> хайлоад
Хайлоад блядь, по сути создает обычную таблицу как делают все нормальные люди, вместо этой говноподелки инфоблоков. Ничего хайлоадного там нет, я даже не помню умеют ли они в банальные индексы или от вебмастера это скрыто за ширмой абстракций. Но суть в том что их не так часто используют и за полгода я видел их пожалуй пару раз, все пользовались инфоблоками
Аноним 26/08/22 Птн 09:17:47 2445692 75
>>2445688
>на тот момент это была нерабочая хуйня
Ок, я те времена не застал.

>Хайлоад блядь, по сути создает обычную таблицу как делают все нормальные люди
Зато на презентации хорошо звучит.

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

>не помню умеют ли они в банальные индексы
Это же таблицы простые, конечно умеют. Инфоблоки 2.0 тоже умеют.

>Но суть в том что их не так часто используют
Ну да, обычно юзают для справочников, или когда обычных инфоблоков по производительности не хватает, вот тут и приходит битрикс-хайлоад.
Аноним 26/08/22 Птн 09:30:43 2445703 76
>>2445692
>Ок, я те времена не застал.
2019-2020 до сих пор писали CIBlock::ЧегоТоТам, хотя у нас тимлид следил за всеми конференциями, колупался в этом говне 10 лет, знал какие где изменения в ядре и всегда притаскивал новые фичи, раз в месяц митапы делал и рассказывал, но с инфоблоками вроде даже на D7 не перешли

>Удобная штука, более динамичная чем таблица, поддерживает версионирование итд.
Есть такая штука как миграции, тоже есть версионирование в гите и динамично
Аноним 26/08/22 Птн 09:39:07 2445714 77
>>2445663
>Работайте, битриксоидобратья!
Крикнул.
Аноним 26/08/22 Птн 09:45:57 2445721 78
Битрикс тяжело изучать? Типа доки нет и почти нет обучающих материалов?
Аноним 26/08/22 Птн 09:50:10 2445724 79
>>2445721
На офф.сайте много бесплатных видео, курсов, можно пройти платные и бесплатные экзамены. Но проще всего устроится в битриксоконтору.
Аноним 26/08/22 Птн 09:54:23 2445730 80
>>2445724
Да туда берут с улицы, если можешь хэлоуворд на пхп завести вот на этом компе, то приходи, научат
Аноним 26/08/22 Птн 10:00:54 2445735 81
>>2445730
Я так же в одну контору устраивался, но не с битриксом, а с modx. Сказал что никогда с cms не работал, ответ был что-то вроде похуй научим
Аноним 26/08/22 Птн 10:14:12 2445745 82
Сап, двачеры. А возможно ли на PHP написать софт для банковского приложения и насколько это практично?

Я точно знаю что финтех конторы на пыхе пишут. А вот че насчет прям банкинга. Возможно или нет? Или онли Java 8?
Аноним 26/08/22 Птн 10:44:16 2445768 83
>>2445745
Хули нельзя-то? На всём можно написать всё.
Тем более пыха, которую взяли в свои руки ровные пасаны и делают из неё ЭНТЕРПРАЙЗ, а не каличный игрушечный перл.
Аноним 26/08/22 Птн 10:54:56 2445777 84
>>2445768

Я про жизнеспособность решения. Получится ли это сделать не пососав. Технически-то понятно что можно хоть на асемблере.
Аноним 26/08/22 Птн 11:43:45 2445818 85
>>2445777
Технических ограничений пожалуй, почти нет, хотя конечно в таких задачах пыха будет смотреться очень бледно.
Банкинг это в первую очередь процессинг множество событий от платежной системы и не только и ключевое слово здесь "процессинг".
PHP всё ещё сильно заточен под схему 1 запрос = 1 процесс и поэтому обработка большого потока событий будет очень неэффективна. И тут дело даже не только в языке (есть же всякие reactphp, я их юзал одно время, в целом норм), а скорее в экосистеме, библиотеках и так далее.
При этом для работы с очередями тебе придется использовать сишные экстеншены, которые будут так или иначе лажать в сложных случаях и непонятно, как ты будешь их отлаживать без знания си.
Понятно, что всё так или иначе решается, но тут вопрос в требуемых вложениях, банкинг на с++ или го будет совершенно точно намного эффективнее в плане утилизации мощностей, а java или c# будут пожирнее в плане оперативки и мб распараллеливания, но зато там куча возможностей для тюнинга гц и всяких действительно хороших JIT'ов под капотом, которые оптимизируют твой код.

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

Резюмируя, всё конечно возможно, вопрос в издержках и усилиях. С php их будет больше, чем у других языков.

Рекомендую обратить внимание на badoo, они в целом четко всё делают. Важные по перфу штуки пишут на го, а неважные на php. Нормальное разделение труда, каждой задаче - свой инструмент.
Аноним 26/08/22 Птн 13:07:31 2445899 86
>>2445818
>средний с++ник
На счет этих товарищей поспорил бы, а вот остальные да
Аноним 26/08/22 Птн 15:15:51 2446052 87
хочу в php перекатиться, в веб разработке 3 года, писал на пыхе в начале карьеры. Фреймворков не знаю, будет ли это проблемой на собесах или лучше потратить пару неделек и изучить фреймворк какой и уже идти пытать собесы?
Аноним 26/08/22 Птн 15:20:14 2446055 88
>>2445899
В любой области куча (9/10 людей в среднем по больнице) долбоебов и плюсовики - не исключение.
Но в любом случае просто по роду деятельности, так как плюсы ближе к железу, плюсовики так или иначе вынуждены разбираться в архитектуре компьютера, компилятора, памяти и так далее. Правда, из-за этого же очень многие из них вообще не умеют думать про архитектуру, инфраструктуру, тулчейн, читаемость кода и то, что надо мыться хоть иногда.
Но в сравнении с phpшниками-"битриксоидами" они всё равно выигрывают, потому что хотя бы разбираются в перфе и железе, тогда как условные битриксоиды не разбираются ни в железе, ни в перфе, ни в архитектуре, ни в чём.
Аноним 26/08/22 Птн 15:25:09 2446057 89
>>2446052
Зависит от того, что за контора и что за собес. Если ты сеньор (хотя три года - какой сеньор), то все фреймворки для тебя уже одинаковые, ещё один выучишь просто по необходимости уже на работе.
В php только два нормальных фрейморвка, Laravel (полегче) и Symfony (поакадемичнее), на них и ориентируйся, если контора говорит, что использует что-то другое и при этом ты не уверен в их хорошей техничности, чтобы они могли собрать себе хороший фрейморк и тулчейн сами - не иди туда.
Аноним 26/08/22 Птн 15:42:06 2446071 90
>>2446057
Хуй знает, работал с ларавелем и yii, про фреймворки ни разу не спрашивали, и по сути на жизнь фреймворк влиял слабо. Компания с yii2 была такая большая что я не на самом yii2 писал а пакеты к нему и только поверхностно сталкивался

Вообще на фреймы похуй
Аноним 26/08/22 Птн 19:59:28 2446422 91
>>2445663
Действительно, работаем дальше! Солнце еще высоко.
Аноним 26/08/22 Птн 21:08:12 2446493 92
>>2446052
>Фреймворков не знаю, будет ли это проблемой на собесах
Будет. Без знания фреймворка будешь тупить или велосипедить, и нахуй тогда тебя.

>>2446052
>или лучше потратить пару неделек и изучить фреймворк какой и уже идти пытать собесы?
This. Symfony, Doctrine ORM. Посмотри касты, попиши код.
Аноним 26/08/22 Птн 21:11:47 2446498 93
>>2445818
>При этом для работы с очередями тебе придется использовать сишные экстеншены, которые будут так или иначе лажать в сложных случаях и непонятно, как ты будешь их отлаживать без знания си.
Не пиши хуйни пожалуйста. Во-первых, экстеншны вылизаны до блеска. Во-вторых, никакой пхпшник ни в какой си не лезет, у него для этого мозга не хватит.
Аноним 26/08/22 Птн 21:43:15 2446515 94
>>2445818

PHP норм работает с обработкой очередей, PHP создан чтобы умирать - одно сообщение в очереди - один процесс PHP.
Поднимаешь столько обработчиков сколько тебе надо, какойнибудь AWS лямбдой.
Грамотно разруливаешь аки очереди\эксепшены\транзакции базы и всё ровно будет.

Вопрос по производительности, конечно тут какойнибудь Gо будет с руки.
Аноним 26/08/22 Птн 21:44:11 2446516 95
>>2445745
В PHP отличная объектная модель, нет никаких причин не писать на нём сложный финтех.
Аноним 26/08/22 Птн 23:59:18 2446611 96
>>2445777
>Получится ли это сделать не пососав.
Не получится
Аноним 27/08/22 Суб 00:04:18 2446619 97
>>2446515
>одно сообщение в очереди - один процесс PHP.
>Поднимаешь столько обработчиков сколько тебе надо
Ты же понимаешь что это не просто костылище, а зашкварный костылище? Взять технологию, не умеющую в многопоточность, чтобы делать не ней многопоточныую задачу - это расписаться в своей беспомощности как программиста.
Аноним 27/08/22 Суб 00:12:53 2446631 98
>>2446516
>В PHP отличное НЕНУЖНО
поправил тебя

>нет никаких причин не писать на нём сложный финтех
Если возможность скрипта внезапно завершиться по memory_limit, или отсутствие многопоточности, или отсутствие асинхронных операций, или отсутствие compile-time с проверкой ошибок и статическим анализом (что означает что массу ошибок ты поймаешь в рантайме уже после их совершения), или безумная стоимость абстракций таковыми причинами не являются, то да, причин не писать на пыхе сложный финтех нет.
Аноним 27/08/22 Суб 00:14:01 2446634 99
>>2446631
> безумная стоимость абстракций
имею ввиду оверхед на абстракции в силу того что в пыхе нет компиляции и макросов
Аноним 27/08/22 Суб 00:41:28 2446657 100
>>2446498
Ага, щас. Я сравнительно недавно, года 3-4 назад делал проект на amqp (раббит) и там при обрыве коннекта на уровне сети, экстеншен просто клал php процесс. Никак отловить или обработать эту ошибку на уровне php было в-принципе нельзя.
Или как ты думаешь, в 2019 году rabbitmq был ещё молодой непроверенной технологией? Или это у них "блеск" такой?

Мой поинт был в том, что проблемы происходят со всеми компонентами, всегда. Особенно в сложных случаях. И когда они будут просиходить, то лучше иметь возможности их решения. Если в твой код понапихано сишных экстеншенов, то тебе лучше уметь решать связанные с ними проблемы, хотя бы уметь читать код и дебажить их. Уверен, большинство php программистов в этом случае обломаются.

>>2446631
>>2446619
Плюсану этих двоих, они шарят, прислушайся.
Аноним 27/08/22 Суб 00:43:22 2446659 101
>>2446631
>memory_limit
У любого приложения есть причина завершиться по причине нехватки оперативы. У пыхи есть процесс менеджер
>асинхронных операций
amphp
>compile-time
ненужно, ошибки типов в рантайме ловятся при простом запуске скрипта, если не писать как руби долбаеб с синтаксической радугой дружбомагией
>статическим анализом
есть в самой пыхе и внешних инструментах aka phpstan
Аноним 27/08/22 Суб 00:49:00 2446662 102
>>2446659
> У пыхи есть процесс менеджер
Внешняя хуета

> amphp
Только примерно все либы на php рассчитаны под старую модель в итоге реальный выигрыш будет только если ты сам напишешь себе велосипеды примерно под всё

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

> есть в самой пыхе и внешних инструментах aka phpstan
Как я уже сказал выше, припарки
Аноним 27/08/22 Суб 00:53:09 2446663 103
>>2446662
ЛОВЯТСЯ если не писать
$$className->$methodName()
Аноним 27/08/22 Суб 00:58:03 2446665 104
>>2446663
Я может отстал от жизни, в php уже можно описать типизированный массив объектов вида User[], на уровне языка и статической проверки типов, а не phpdoc'ов? Если нет, то ты сосешь хуй, получается.
Аноним 27/08/22 Суб 00:59:36 2446666 105
>>2446665
Женериков нет, да....
Аноним 27/08/22 Суб 01:06:49 2446668 106
Аноним 27/08/22 Суб 01:12:42 2446672 107
>>2446663
А нет, сильно напиздел

<?php

class Person {
function __construct(public string $name) {}
}


if (isset($argv[1])) {
new Person(new DateTime());
}
php script.php

ОК




}
Аноним 27/08/22 Суб 01:20:22 2446681 108
>>2446668
Хотя куча инструментов которые такую хуйню словит, в том числе при CI/CD. А бизнесу выгоднее затарится умными инструментами, которые может освоить даже дурак, чем умными программистами...
Аноним 27/08/22 Суб 02:48:17 2446704 109
Аноним 27/08/22 Суб 02:58:13 2446706 110
>>2446657
>amqp (раббит) и там при обрыве коннекта на уровне сети, экстеншен просто клал php процесс
Пздц, ну и говно. У меня amqp плагин не падал, но вообще это показание к выкидыванию его нахуй.

>Если в твой код понапихано сишных экстеншенов, то тебе лучше уметь решать связанные с ними проблемы, хотя бы уметь читать код и дебажить их.
А дальше? Форкать и потом суппортить?
Ну и потом, весь пых на си написан - бери тогда сразу фалкон или roadrunner, так ты хотя бы сузишь стек.

>Уверен, большинство php программистов в этом случае обломаются.
Я так и сказал

>Плюсану этих двоих, они шарят, прислушайся
Как в том анекдоте: "сходите в цирк, там сейчас выступает рыжий клоун, вас развеселит. - увы, я и есть рыжий клоун"
это мои комменты
Аноним 27/08/22 Суб 03:59:31 2446708 111
>>2444947
>нормальный ORM
Это который парсит аннотации строки или уже нормальный работающий через аттрибуты?

>>2445118
>А чем плоха Windows 7?
Для разработки всем, на окнах разве, что под сами окна разработка хороша решётки, гейДев. А веб сервера в основном на линухах. Плюсом крайне уёбищный способ контейнеризации.

>WinSCP намного удобнее чем FileZilla к тому же, и Notepad++ без Wine не запускается
А ещё наверное паскаль с делфи не запускаются и отсутствует поддержка разработки для DOS.

>>2445528
>Это не фреймворк, а набор костылей который ты пытаешься натянуть на глобус.
Двачаю.

>>2446665
>в php уже можно описать типизированный массив объектов вида User[]
Поскорее бы доставили и сделали строгую типизацию, а то заебали макаки которые даже в тайпхинты не могут, а уже себя погремистами называют.
Аноним 27/08/22 Суб 11:35:45 2446888 112
>>2446704
Ето включает строгую типизацю для скалярнх типов только. Статический анализ кода всего файла это не включает.
Аноним 27/08/22 Суб 12:03:20 2446907 113
>>2446706
> А дальше? Форкать и потом суппортить?
Так об этом и речь. Когда ты программируешь на джаве или там го, то у тебя примерно всё написано на том же самом языке. Соответственно, когда происходит какой-то нёх, то ты просто включаешь дебаггер и лезешь вглубь того же клиента amqp и разбираешься с тем, что там происходит.
PHPшники такого зачастую лишены, и это одна из причин, почему я бы не рекомендовал использовать пыху для действительно серьезных вещей, просто перед разработчиками встанет ещё один барьер в таком случае, который ещё сильнее усложнит разработку.

>>2446708
> Поскорее бы доставили и сделали строгую типизацию, а то заебали макаки которые даже в тайпхинты не могут, а уже себя погремистами называют.
Думаешь, поможет? Я вот сомневаюсь, как раз из-за наличия битриксоидов и нормальных людей в одной области. Пока у тебя в cms можно накликивать новые типы данных и поля мышкой, ни о какой типизации в коде речь идти не может (про кодген здесь умолчим, в cmsках его не особо жалуют).
Не говоря уже про "наследие" старых версий пхп, в которых ассиоциативные массивы ничем не хуже объектов (а классы не нужны) и к которым привыкли просто поколения долбоебов.

>>2446681
Тут есть один очень простой момент, либо у тебя есть система типов, которая позволяет выводить и проверять все такие ситуации на уровне языка (в компайл тайме например), либо тебе придется запускать чёто поверх кода, что должно этот код спарсить, самому что-то придумать, посравнивать, вывести и зарепортить ошибку.
Внешние тулзовины априори это надстройки над языков, и поэтому они априори всегда будут менее эффективны.
Поэтому сравнивая php с той же джавой а лучше котлином или голангом, он всегда априори будет менее надежным, просто потому что в одном случае ты имеешь гарантии на уровне языка, а в другом - на уровне хз чего, хз запущенного или нет поверх хз какого кода.

И да, бизнесу выгодно минимизировать траты, в том числе, штрафы регулятору и всякие траты на компенсации пользователям. Именно по этой причине, собственно, в финтехе пхп почти никто не использует.
Ну и кстати ещё одна причина, из-за динамической структуры, пхп легче хакнуть, мне кажется, кода не проходит, чтобы в serialize новый способ удаленного исполнения кода не нашли. И даже если починят их все, пхп по определению динамический и поэтому менее секурный.
Аноним 27/08/22 Суб 12:06:02 2446913 114
>>2446907
>Внешние тулзовины априори это надстройки над языков, и поэтому они априори всегда будут менее эффективны.
Вывод неверный
Аноним 27/08/22 Суб 12:08:26 2446918 115
>>2446913
То что ты споришь с аксиомой, делает твои посты только глупее.
Аноним 27/08/22 Суб 12:16:09 2446937 116
>>2446918
Аксиома - это тезис, который не следует ни из чего, и который решено считать верным просто чтобы иметь возможность работать с множеством доказываемых теорем. Я не понимаю, почему я должен принять твой высер на веру. Отсутствие у тебя понимания о семантике языков, о том что компилятор и статический анализатор - два разных инструмента даже если оба от вендора - не есть достаточная причина.
Аноним 27/08/22 Суб 12:39:26 2446978 117
>>2446937
Ты, видимо, у мамы дурачок.
Если у тебя сам язык построен так, чтобы минимизировать все возможные непонятки и вынести максимум логики из рантайма в компайл тайм, то есть с дженериками, правильным нуллабилити и много чем ещё, то тогда такой язык будет надежнее прочих, за счет дизайна языка. Php очевидно движется в эту сторону, но сейчас не такой.
Поэтому твои вскукареки идут мимо кассы, любые твои статические анализаторы языка поверх динамического языка будут давать false positive.
Аноним 27/08/22 Суб 16:13:26 2447215 118
Eval Reset работает в новых версиях шторма?
Аноним 27/08/22 Суб 17:24:55 2447290 119
>>2447215
Вот только что хотел сказать, что у меня плагин не нашел в новой версии. Установил старую версию 21.2.4, но через 2 месяца он все равно прознал что триал прошел. Сейчас поставил 21.1.4 и руками выполнил
https://gist.github.com/ehbc221/e99d10c6c768bf2ad79aa5cf4738a8de
Аноним 29/08/22 Пнд 12:18:16 2449087 120
>>2446619
Умирание это фича языка, потому её и не пытаются исправить.
PHP не умеет и не должен уметь поддерживать долгие содинения, он не должен уметь в многопоточность by desing.

Как раз именно это решение избавляет от всех проблем связанных с менеджментом памяти и многопоточностью. Нет многопоточности - нет проблем.

В том числе именно это делает язык простым и обеспечивает низкий порог входа.
Аноним 29/08/22 Пнд 12:20:19 2449088 121
>>2446631
>>В PHP отличное НЕНУЖНО
>поправил тебя

Дык может просто уёбывай с этого треда да и всё?
Аноним 29/08/22 Пнд 12:21:15 2449090 122
>>2446659
Щас бы поискать технологии без внешних припарок.
Аноним 29/08/22 Пнд 16:17:40 2449335 123
image.png 6Кб, 455x172
455x172
Сап. Почему при таком коде в массиве оказывается лишь один элемент?
Аноним 29/08/22 Пнд 16:28:00 2449344 124
>>2449335
На каждой итерации у тебя перезаписывается массив текущим элементом, в итоге только последний остался.
Чтобы добавлять элементы вместо перезаписи надо написать внутри цикла $arr[] = 'элемент';
Аноним 29/08/22 Пнд 16:34:51 2449346 125
>>2449344
А что делать, если мне нужен обычный массив, а не вложенный? Просто мне потом необходимо обращаться к этому массиву по названию ключа элемента
Аноним 29/08/22 Пнд 17:10:26 2449379 126
Аноним 29/08/22 Пнд 17:17:15 2449389 127
>>2449379
Не. Условно, мне надо сделать массив $arr со следующим сооветствием:
"Вася" => "Петров",
"Саша" => "Иванов",
"Миша" => "Федоров"
Допустим, что у меня есть $perem = "Вася", мне нужно, чтобы при обращении к $arr[$perem] выдало "Петров"
Аноним 29/08/22 Пнд 17:34:30 2449412 128
>>2449335
$arr[$subel['smth']] = $subel['another'] ?
Аноним 29/08/22 Пнд 17:47:56 2449430 129
>>2449389
https://onecompiler.com/php/3yef6qhwa
Типа такого? Я не очень понимаю в чем вопрос. Все зависит откуда ты берешь данные для итогового массива.
Аноним 29/08/22 Пнд 17:56:03 2449435 130
>>2449430
Можешь свою телегу дать? Я бы тебе там объяснил
Аноним 29/08/22 Пнд 19:26:20 2449519 131
наглядный пример, что бывает, когда вкатун перепрыгивает через сишечку, алгоритмы и структуры данных сразу в языки для макак получается макака
Аноним 29/08/22 Пнд 19:38:54 2449530 132
>>2449519
Ебать компуктер саенс - массив массивов. Уровень книжки пхп за 24 часа.
Аноним 29/08/22 Пнд 21:16:07 2449623 133
>>2449519
Тебя случаем в растотреде не обоссали намедни?
Аноним 29/08/22 Пнд 21:50:51 2449662 134
Как сделать эту блядскую задачу про студентов? Как например реализовать при регистрации показ страницы со списком, через маршрутизацию на фреймворках?
Аноним 29/08/22 Пнд 22:19:52 2449686 135
image.png 28Кб, 792x226
792x226
Кто-нибудь может объяснить,почему не работает запрос? На сайте передаются данные через ajax
Аноним 29/08/22 Пнд 22:24:06 2449697 136
>>2449686
Убери заголовок и убери build_query, просто парамс.
Может надо будет добавить заголовок x-requested-with, если не сработает, но это редко бывает.
Аноним 29/08/22 Пнд 22:26:18 2449699 137
>>2449697
Ещё юзерагента нет, будет стандартный курловский, тоже может быть отлуп, если это чужой сайт.
Аноним 29/08/22 Пнд 23:00:05 2449733 138
>>2449697
>>2449699
Юзерагент есть,я просто обрезал. Выдаёт Bad Request (#400) почему-то.В чем причина может быть?
Аноним 29/08/22 Пнд 23:01:44 2449734 139
>>2449697
В request headers "content-type: application/x-www-form-urlencoded;" стоит
Аноним 29/08/22 Пнд 23:03:53 2449736 140
>>2449733
Хули тут ванговать, нужна дебаг прокси. Ставишь её адрес в браузере и в своем скрипте и потом смотришь отличия.
Аноним 29/08/22 Пнд 23:04:52 2449739 141
>>2449734
Он сам энкодит и подставляет нужный тип, когда ты передаешь массив в пост, так что конкретно этот заголовок не нужен.
Аноним 29/08/22 Пнд 23:24:58 2449755 142
image.png 5Кб, 367x92
367x92
>>2449739
>>2449736
Я заметил,что передается еще третий параметр в post-запросе,но проблема в том,что он со спецсимволом,urlencode не помогает,всё равно дает bad request.Как фиксить?
Аноним 29/08/22 Пнд 23:41:13 2449768 143
>>2449755
Не надо ничего урленкодить и дополнительно делать, просто передаешь курлу реальный массив, он сам всё сделает.
Аноним 30/08/22 Втр 00:29:13 2449811 144
image.png 57Кб, 371x381
371x381
>>2449087
Мань, научись читать уже.
Коммент не про отсутствие фичей в языке и не про его нишу, хер бы с ним. Коммент про выбор программистами явно неподходящего инструмента.
Аноним 30/08/22 Втр 00:44:12 2449828 145
>>2446978
Мань, я ж пишу, статический анализатор и компилятор - это два слабо связанных между собой инструмента. Возьми тайпскрипт. Это просто анализатор поверх уже существующего джаваскрипта. Или скалу - примерно то же самое. Или pvs studio. Или ты мне трёшь про то что условный golang имеет лучший анализатор чем встроенный в условный phpstorm? Так это от бюджета зависит. Возьми какой-нибудь строгий компилируемый vlang (который на секундочку, просто транспайлер в си), так у пхп с его сотнями инстнументов типа psalm, phpstan, phpstorm статический анализ получше будет.
Аноним 30/08/22 Втр 20:06:06 2450444 146
Каково применение curl, я не одупляю
Аноним 30/08/22 Втр 21:33:38 2450510 147
Подскажите, могу ли я производить какие то манипуляции с сайтами в интернете, запустив программу на PHP на своем домашнем компе? Например, хочу чтобы логинило на сайт с помощью моего скрипта, который я скоро напишу
Если такое не возможно из коробки, то ткните носом что делать, чтобы было возможно
Аноним 30/08/22 Втр 21:54:59 2450525 148
31/08/22 Срд 00:34:00 2450590 149
>>2450510
>могу ли я производить какие то манипуляции с сайтами в интернете, запустив программу на PHP на своем домашнем компе?
да

>Например, хочу чтобы логинило на сайт с помощью моего скрипта, который я скоро напишу
обрети ясность в том, что представляет собой "логинило на сайт" более детально. Изучи протокол http, что такое get и post запросы, что такое заголовки и кукисы.
нажми F12 в своём браузере, вкладку network, посмотри как устроены сетевые запросы.
Аноним 31/08/22 Срд 02:09:13 2450620 150
>>2442965

Вот я бы хотел объяснить рекурсию так, чтобы было понятно, но никак не могу сформулировать слова.

Если ты попытаешься представить себе, как ты передаешь в функцию сложный массив, и эта функция вызывает саму себя, и вторая копия функции вызывает третью, и тд. то ты скорее всего запутаешься. Это все трудно представить в голове.

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

Если мы не используем глобальные и статические переменные (не надо их использовать), то мы можем передавать данные в функцию только через аргументы, а возвращать из функции только через return (если надо вернуть несколько значений сразу, то можно вернуть массив с ними). То есть, все данные, которые нужны функции, должны передаваться через аргументы.
Аноним 31/08/22 Срд 02:13:11 2450621 151
>>2442965

В твоем решение есть ошибка. Твоя программа выводит:

> Кондитерские изделия (4)
> Торты (2)
> Кондитерские изделия / Торты / Из бисквита (0)

А должно быть:

Кондитерские изделия (4)
Кондитерские изделия / Торты (2)
Кондитерские изделия / Торты / Из бисквита (0)

Это должно быть несложно поправить.

Также, вот этот код:

> foreach($parents as $p){echo "$p / ";}

Можно заменить на echo + implode.

Также, напомню, что есть еще третья и четвертая задачи и после них я могу попробовать дать что-то еще посложнее: >>2439347 →
Аноним 31/08/22 Срд 02:15:24 2450623 152
>>2450444

curl - это HTTP-клиент, то есть, программа, способная отправлять HTTP-запросы к серверу и получать на них ответ (что такое HTTP, можно почитать в недописанном уроке https://github.com/codedokode/pasta/blob/master/network/http.md ).

Обычно curl используют, чтобы вручную отправить запрос и посмотреть ответ и его заголовки.
Аноним 31/08/22 Срд 02:26:15 2450626 153
>>2445054

Друзья, давайте все разговоры про зарплаты подтверждать хоть бы вакансиями на hh, а то иначе получается "знакомый брата отца знакомого рассказал что получает 200к".

Ну и глупо рассматривать цифру без количества часов. Может это вакансия на вахту, где ты будешь 6 дней в неделю по 10 часов вкалывать и где типичный посетитель этого сайта помрет от перенапряжения в первый же день.
Аноним 31/08/22 Срд 02:30:05 2450629 154
>>2445118

Windows 7 без телеметрии действительно самая удачная версия винды. Можно было бы на ней закончить, но Майкрософт хочет денег и большие данные (шпионить за пользователями и продавать эти данные) и потому делает новые версии винды, хотя обещали что 10 будет последней версией.
Аноним 31/08/22 Срд 02:34:18 2450630 155
>>2445510

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

Но твоя жалоба лишь демонстрирует твой низкий скилл. Что, кроме него, тебе помешало самому написать систему миграций и деплоя?
Аноним 31/08/22 Срд 02:46:32 2450632 156
>>2446907

> Когда ты программируешь на джаве или там го, то у тебя примерно всё написано на том же самом языке.

Неверно. В Java можно подключать нативные библиотеки на Си, в Андроид приложениях это часто используется для производительности или для обфускации.

Условно, если тебе надо работать с USB то скорее всего ты подключишь libusb, а не будешь писать с нуля аналог на чистом Го/Java. Иначе это будет глупость, каждую библиотеку переписывать на каждый существующий язык.
Аноним 31/08/22 Срд 02:49:53 2450634 157
>>2449335

Тебе надо использовать здесь стандартную функцию array_column, а не изобретать велосипед. Но так как ты начинающий, то лучше сначала написать вручную, а потом заменить написанное на array_column.
Аноним 31/08/22 Срд 02:51:57 2450635 158
>>2449519

Си это очень плохой язык для обучения программированию. На нем очень сложно писать правильный код и миллион способов выстрелить себе в ногу. Все, что можно было сделать неправильно, в Си сделано неправильно. Плюс у этого убогого нет ни менеджера пакетов, ни нормальной декларативной (не основанной на скриптах и костылях) системы сборки.
Аноним 31/08/22 Срд 02:55:55 2450636 159
>>2449662

С помощью редиректа. Регистрация и показ списка это две разных страницы. Процесс выглядит так:

- пользователь заходит на страницу добавления студента http://example.com/add
- ему выдается форма регистрации
- пользователь заполняет ее и отправляет POST-запрос на /add
- скрипт проверяет правильность, если все ок, то добавляет данные в БД и делает редирект на страницу со списком студентов

Если непонятно, то уточни, что именно тут непонятно.

"Маршрутизация" - это просто определение по URL, какой контроллер и какой метод надо вызвать. То есть, если пришел запрос на /add, то вызвать AddController, а если /list, то ListController.
Аноним 31/08/22 Срд 03:03:47 2450637 160
>>2449697

В мануале https://www.php.net/manual/en/function.curl-setopt.php написано:

> CURLOPT_POSTFIELDS

> The full data to post in a HTTP "POST" operation. This parameter can either be passed as a urlencoded string like 'para1=val1&para2=val2&...' or as an array with the field name as key and field data as value. If value is an array, the Content-Type header will be set to multipart/form-data.

То есть, для x-www-form-urlencoded надо передавать строку.

>>2449733

Чтобы узнать причину, надо не гадать, а посмотреть, какой именно запрос отправляет curl. Это можно сделать так: поднять HTTP-сервер командой netcat и отправить запрос к нему, и тогда netcat выведет его в консоли:

nc -v -l -p 9000

В linux утилиту netcat легко установить, под винду, наверно ее можно где-нибудь скачать.
Аноним 31/08/22 Срд 10:24:54 2450728 161
>>2450623
а какое практическое применение?
когда оправдано его исп?
Аноним 31/08/22 Срд 12:01:35 2450768 162
Чудом вкатился на стажировку. С понедельника началось. По сути это был мой второй собес в жизни. Первый был осенью 2021, только на вротенд. Тогда меня обосрали и я задизморалился на несколько месяцев. В феврале поставил себе ультиматум, или вкат до конца лета, или ркн. В закрепе мне посоветовали php, возможно тот совет оставил меня в живых.
3 месяца буду пыхтеть, потом могут принять или кикнуть. Если кикнут, то я даже не знаю, смогу ли я куда то вкатиться. Считаю, что это главный вызов в моей жизни. Если провалю, тогда точно ркн, ведь второго такого шанса уже скорее всего не будет.
Какие подводные?
Аноним 31/08/22 Срд 12:21:27 2450777 163
>>2450768
Что ковырять будешь?
Аноним 31/08/22 Срд 12:50:15 2450793 164
>>2450637
Реально, спизданул. Давно себе сделал функцию для запросов и копипащу.

>>2450728
Когда тебе надо работать с хттп, очевидно же. Ровные пасаны используют всякие guzzle, но если тебе надо простой скрипт без композеров и гигабайтов говна, то курл самое то.
Хотя в газзл есть поддержка разных движков кроме самого курла + разные ништяки вроде асинхронности.
31/08/22 Срд 12:51:14 2450796 165
>>2450630
>Что, кроме него, тебе помешало самому написать систему миграций и деплоя?
Пидорский битрикс сам себя обновляет. И это требование клиентоса. Он говорит "битрик же себя сам обновляет? хочу получать обновления по кнопке, мы за это деньги заплатили. Миграции? какие нахуй миграции? какой гит? не знаю ничего такого"
Аноним 31/08/22 Срд 12:56:54 2450799 166
>>2450793
> работать с хттп, очевидно же
не очевидно,пример использования?
из сервера отправить запрос на другой сервер?
Аноним 31/08/22 Срд 12:58:27 2450800 167
>>2450799
Сделать запрос на апи, сделать веб скрапер, сделать бота для другого сайта и т.д.
Аноним 31/08/22 Срд 13:00:34 2450802 168
>>2450800
те по сути,из одного кода отправить переменную в другой кусок кода,так?
Аноним 31/08/22 Срд 13:10:53 2450813 169
>>2450802
Ну почитай что такое хттп, как можно быть таким нулевым?
Аноним 31/08/22 Срд 13:13:44 2450815 170
>>2450768
Какое тестовое было для стажировки? Или там просто собес устный?
Аноним 31/08/22 Срд 13:21:27 2450821 171
>>2450793
curl в асинхронность умеет и так
Аноним 31/08/22 Срд 13:26:18 2450827 172
>>2450821
Имеется в виду более привычная с коллбэками, в курле можно просто молотить много запросов одновременно и делать что-то уже только когда дождешься всех, по-моему.
Аноним 31/08/22 Срд 13:27:33 2450830 173
>>2450813
Это просто протокол.
Не понятен механизм курла.
Аноним 31/08/22 Срд 13:31:01 2450833 174
>>2450830
Это хттп клиент, чтобы отправлять хттп запросы, что может быть непонятного?
Аноним 31/08/22 Срд 13:35:21 2450835 175
>>2450833
а чем отличается от header?
Аноним 31/08/22 Срд 13:38:45 2450843 176
>>2450835
Причем тут хидер блять, ты его отправляешь своему клиенту, который загружает твою страницу.
Курл это другой клиент который загружает другие страницы. Вот ты в браузере загружаешь страницы и ходишь по сайту - посылаешь запросы. Вот так и курл может слать запросы.
Я хуею с тебя, конечно.
Аноним 31/08/22 Срд 14:03:57 2450873 177
>>2450630
>Но твоя жалоба лишь демонстрирует твой низкий скилл.
У меня плохой скилл тыкать мышкой в админке

>>2450630
>Что, кроме него, тебе помешало самому написать систему миграций и деплоя?
Лень, я на рельсах использую существующую, а в расте diesel, нахуй мне самому писать?
Аноним 31/08/22 Срд 14:29:38 2450900 178
>>2450835

У тебя реально проблемы с пониманием что такое клиент/сервер. HTTP это протокол, который позволяет клиенту подключиться к серверу и отправить запрос, на который сервер отдает ответ. Клиент это тот, кто посылает запрос, сервер это тот, кто отвечает на него.

Когда ты пишешь сайт на PHP, то твой код работает на стороне сервера. Браузер является клиентом, отправляет HTTP-запрос к серверу, на сервере запускается твой скрипт и отдает в браузер ответ, а браузер показывает его на экране.

Когда ты используешь HTTP-клиент (curl или любой другой вроде guzzle) то твой PHP-скрипт выполняет роль клиента и сам отправляет запрос к другому серверу, как браузер. Обычно такие PHP-скрипты запускаются не через браузер а из командной строки, то есть ты в консоли пишешь php my-script.php и он выполняется и посылает запросы и как-то обрабатывает полученные данные.

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

Обрати внимание, что "сервер" имеет 2 разных смысла: этим словом называют программу, отвечающую на запрос, а также компьютер, на котором работает эта программа.

Слово curl тоже имеет 2 смысла: это модуль PHP, который позволяет отправлять HTTP-запросы, а также это утилита, которую можно запускать в командной строке без написания PHP кода.

Подробнее про HTTP: https://github.com/codedokode/pasta/blob/master/network/http.md

Подробнее про командную строку: https://github.com/codedokode/pasta/blob/master/soft/cli.md
Аноним 31/08/22 Срд 14:31:56 2450902 179
>>2450802

Отправить HTTP-запрос, и не в любой кусок кода, а только на HTTP-сервер, который принимает запросы. Правильнее сказать не отправить переменную, а отправить произвольные данные (текст, файл, массив и тд).
Аноним 31/08/22 Срд 17:40:14 2451057 180
Аноним 31/08/22 Срд 19:26:25 2451151 181
>>2450632
И тем не менее в отличие от php всякие либы вида grpc, kafka, rabbitmq и так далее в джаве написаны, собственно, на джаве.
Можно != обязан.
Аноним 31/08/22 Срд 19:38:42 2451177 182
example.PNG 42Кб, 422x779
422x779
>>2450626
Ну 200к это прям объективно немного, на том же hh их дофига и больше, станадртные 168 часов в месяц.

Самые "вкусные" вакансии кстати зачастую добываются не через hh, а через нетворкинг или напрямую через контакт в контору, если знаешь, что там хороший рейт. Ещё в последнее время стали очень развиты телеграм чаты, каналы и боты с вакансиями, иногда там встречаются +- неплохие.

Сходу нагуглил пикрелейтед до 500к, не пришлось даже напрягаться. Конкретно эту контору не знаю, но в вилку вполне верю, абсолютно обычная по нашим временам.
Аноним 31/08/22 Срд 21:13:03 2451343 183
>>2451177
250-500к - это значит ты получишь 250к в лучшем случае. Плюс они не ищут работника, а подрядчика. Так что ты ещё налоги отминусуй и прочие расходы.

> Конкретно эту контору не знаю, но в вилку вполне верю, абсолютно обычная по нашим временам.
Ты зарабатываешь 500к? Твоя вера основывается на каких-то пруфах или на курсах вайти на уши наклали?
Аноним 31/08/22 Срд 22:21:28 2451406 184
Мне нравится, как посты с нулевым аноном с курлом перемежаются с постами про 200-300к зарплаты.
Вы блять знаете хоть что-то, или за пару дней научились циклы крутить и уже дохуя разработчики?
Какие ребиты, какие кафки? Вы сможете круд на чистом похапе написать, чтобы он не тёк и не иньецировался?
Это любой даун может.
Аноним 31/08/22 Срд 23:12:25 2451442 185
photo2022-08-31[...].jpg 60Кб, 591x1280
591x1280
photo2022-08-31[...].jpg 59Кб, 591x1280
591x1280
>>2451343
> Ты зарабатываешь 500к? Твоя вера основывается на каких-то пруфах или на курсах вайти на уши наклали?
Пикрелейтед за два прошлых месяца за август не буду прикладывать пик, пол месяца в отпуске хуи пинал.
Так что да, зарабатываю и знаю, что могу больше. Также очень смешат местные нищеброды, для которых зп 200к это что-то мифическое.
Аноним 01/09/22 Чтв 00:09:11 2451496 186
Поражают люди, у которых на счет приходит по 500к (если конечно они не нарисовали их на скриншоте) и которые используют Андроид-телефон как единственный фактор для доступа к счету.
Аноним 01/09/22 Чтв 00:26:58 2451503 187
>>2451496
И потом бутылочку всопа с телефона за 300к.
А ты так и сидишь в рейтузах с мамкой в почти 40 лет.
Аноним 01/09/22 Чтв 12:33:17 2451770 188
photo2022-06-20[...].jpg 54Кб, 580x448
580x448
>>2451442
Знаешь почему я радуюсь? Что такие как ты - могут лишь фотошопить циферки на скриншотах, у тебя никогда не будет хорошей тян, хорошей работы, тебе визу даже не дадут, будешь загорать в зажопинске.
8000$ - чтоб такие деньги получить чистыми - едут в Сан-Франциско или Сиэтл, кого ты хочешь наебать тут, лол.

У тебя дебила циферка в балансе меньше, чем в поступлении, плохо замазал, кек. Ты якобы получаешь в 3 раза больше меня, а баланс у тебя на уровне нищеброда-заводчанина. Никогда не понимал зачем врать что ты богач, сидя в рваных носках, кекус
Аноним 01/09/22 Чтв 14:13:15 2451881 189
изображение.png 247Кб, 640x640
640x640
В шапку следующего треда
Аноним 01/09/22 Чтв 16:13:18 2451978 190
>>2451770
Не угадал, баланс такой, потому что деньги я на зарплатном счету особо не храню перевожу в Армению и в тех банки, которые ещё умеют в сепу. Хотя я не особо и сомневался, что придет какой-нибудь мамкин нищеброд и начнет искать фотошопы.
Если бы я записал не фото, а видео, ты бы сказал, что это не мой телефон. Если бы я снял видео с паспортом, своим лицом и данными счета, ты бы сказал, что это деньги не за работу, а я сам себе их перевел или что-нибудь такое. И так до бесконечности.
Даже если бы я каким-то чудом убедил работодателя официально в твиттере написать, что да, у них такие-то зарплаты, я официально трудоустроен и получаю ровно столько, сколько написано, ты бы просто ответил, что я сын маминой подруги, устроился по блату и что реальный человек таких денег никогда не получит.
Стоит просто уже признать, что тебе легче искать фотошопы и придумывать отмазки, чем поверить, что такие деньги в IT действительно есть, их действительно можно зарабатывать и это доступно не единицам, а вполне себе анону с улицы, начиная мб от миддла.
Аноним 01/09/22 Чтв 16:58:15 2452034 191
>>2451978
Да, они где-то там, в Армении, а в кармане дыру мышь проела, но ты не покажешь настоящие счета. Дай угадаю, налички валютной у тебя тоже конечно же нет, а в кошельке 37 тыщ 987 рублей. И машины у тебя нет, ты минималист эко-френдли, и дома-коттеджа своего нет, как Дуров квартиры снимаешь.
Настоящего нищеброда всегда видно как он пытается в рваных носках коробкой от айфона посветить.

ты зарабатываешь 6млн рублей в год чистыми. Это зар.плата айтишника в амазоне например. Ты понимаешь что ты смешон?
Аноним 01/09/22 Чтв 22:58:29 2452359 192
Пол года назад начал стажировку на ларе, был пиздатый ментор, который многому научил, я комитил в реальный пиздато написаный проект. Теперь меня аутстафом подписали в другую европейскую команду(человек 8 где-то, на много мелких проектов) и тут пидец, такой хуевый код можно писать только специально. Для примера у сайта есть модеры которые вместе с обычными пользователями храняться в таблице users, и в местах когда нужно сделать разные поведения, в одном и том же эндпоинте, для обычного юзера и для модера там в проверках захардкожены имена модеров типа:
if ($user->name == 'abu') {
$permissions = [1,2];
} elseif ($user->name == 'nariman') {
$permissions = [3,5];
} else {
// дефолтное поведение
}
Если модера увольняют и или добавляют нового, он во всем проекте меняет подобные участки кода. Это только один пример, там дохуя подобного и даже худшего, и про псры и нейминги, код стайлы там нихуя и не слышно, документации нет, сформулированых требований нет. Тупо уволится я не могу, подписал контракт мол взамен на стажировку я должен отработать 1.5 года. Что бы вы сделали? Или я выебываюсь и нужно просто закрывать таски, пока платят? Скоро аккаунт менеджеры компании которая меня туда продала будут спрашивать как мне проект и тд.
Аноним 01/09/22 Чтв 23:45:51 2452377 193
Шарит кто в REST best practices?
Имеются:
1) books
2) comics
3) reviews
4) user(author)

На рецензиях Many-to-one с books, comics и user.
К какому эндпоинту в таком случае принадлежат reivews?

Вижу два варианта

books/:id/reviews
comics/:id/reviews
user/id:/reviews - чтобы собирать все reviews, которые написал юзер, этот эндпоинт останется одинаковым в обоих вариантах

Или

reviews/books/:id
reviews/comics/:id
user/id:/reviews
Аноним 02/09/22 Птн 00:17:09 2452389 194
>>2451177
Как хорошо, что есть такие вакансии. Благодаря им пхпшники навсегда остаются пхпшниками и не пытаются вкатиться в языки программирования. Боже, благослови расмуса лердорфа посмертно, пусть пхп будет вечно.
Аноним 02/09/22 Птн 00:22:47 2452391 195
>>2451406
Я стал получать такие зепки после переезда в мск таймзону. Ну у меня к тому времени 10 лет пых-стажа было. Собственно, я себе пыхом на дом заработал. Пиздец, ну и времечко было. Как хорошо что я забыл это всё как страшный сон и занялся программированием.
Аноним 02/09/22 Птн 00:25:47 2452392 196
>>2452389
А тебе какое дело, нубьё? Только нубьё озабочено "вкатом в языки программирования".
Аноним 02/09/22 Птн 00:30:59 2452394 197
>>2452359
>Что бы вы сделали?
Я бы не подписывался на стажировку изначально, сразу бы искал работу с понятными условиями.
Иными словами, я бы не был тобой.
Теперь крутись. В принципе полтора года - не смерть.
Аноним 02/09/22 Птн 00:34:24 2452396 198
>>2452392
Просто иногда всегда хочется программировать а не ковыряться в говне
Аноним 02/09/22 Птн 00:56:36 2452401 199
>>2452392
>Только нубьё озабочено
Крч, рассказываю, как бывает при личностном росте (тебе неведомо, но хоть представить попробуй).
Когда ты овладеваешь каким-то ремеслом - ты однажды, и это неизбежно, встаёшь перед выбором - искусство/знания vs деньги.
Пример второго - это какой-нибудь битриксоид, познаний в теории у него никаких, но платят хорошо. Битриксоид - это хорошо себя выдрючившая обезьяна. Он или не захотел или просто ему оказалось не по силам изучать ну например git или докер или MVC-архитектуру или REST или вебсокеты, понятно в общем.
Так вот, пых-обезьяна качественно в этом смысле ничем не отличается. Пых-обезьяна так же не является программистом потому что пых-обезьяна с программированием не сталкивается. В пыхе всё просто - ты хуяришь по шаблону или идёшь нахуй. Творчества в пыхарстве нет никакого. Знаний у пыхарей нет никаких. При этом пыхари попадают в ловушку высоких зарплат, и какая-то часть из пых-обезьян делает выбор в пользу денег. Зачем учить какую-то схему, если в пыхе и так неплохо платят, к тому же на нём написан вордпресс, покрывающий 80% вебсайтов, а ещё не бывает плохих языков пограммирования, бывают плохие программисты, ну вы все слышали это квохтанье.
И я правда искренне благодарен расмусу что он придумал такой великолепный фильтр для слабоумных дебилов, который неизбежно стрельнул. Конечно же 80% веба написано на пыхе, на чём же ещё сможет говнокодить вся эта масса желающих. Воистину, если бы пхп не существовало - его следовало бы создать.
Аноним 02/09/22 Птн 00:57:47 2452402 200
>>2452401
А, ну и да, джетбрейнсы, сделавшие пхпшторм, вы великолепны
Аноним 02/09/22 Птн 01:00:47 2452404 201
>>2452377

GET /reviews?book=123
это потому что у тебя может быть множественный фильтр
GET /books?author=1&agency=3

ну если тебе невтерпёж - то возьми GET /books/123/reviews, но не таращ его в паблик, используй для внутрянки

для создания конечно же
PUT /reviews
\
Аноним 02/09/22 Птн 01:02:47 2452408 202
>>2452034
>ты зарабатываешь 6млн рублей в год чистыми
>Ты понимаешь что ты смешон?
почему 6 млн - смешно? жить вроде можно
Аноним 02/09/22 Птн 01:51:59 2452419 203
Аноним 02/09/22 Птн 01:56:10 2452420 204
>>2452419
а да, POST, путаю их постоянно
Аноним 02/09/22 Птн 07:01:30 2452454 205
>>2452359
>Что бы вы сделали?
Переписывал бы легаси на удобоваримый код. Хорошая практика которая закалит твою попочку для стрессоустойчивости.
Аноним 02/09/22 Птн 09:07:03 2452489 206
>>2452401
Как распознать малолетнего серуна(тебя), который к разработке отношения не имеет - он пытается на двачах обосрать язык, да ещё и без всяких аргументов.

Накидайте ему репорты, он видимо забыл что он не на /b , коллеги.
Аноним 02/09/22 Птн 12:12:06 2452585 207
>>2452555
>Посоветуй прикольные пэт проекты
аибу свою напиши.
Аноним 02/09/22 Птн 12:13:18 2452587 208
>>2452555
>уже делала подобное на nodejs
Чёрт, не заметил. Иди нахуй. Шлюха.
Аноним 02/09/22 Птн 12:43:08 2452599 209
>>2450444
Просто попробуй POST запрос на сервер отправить, если curl не получится возьми Postman, там понятнее должно быть
Аноним 02/09/22 Птн 21:04:36 2453050 210
Как отправить переменную на пхп из JS.
Про фетч я в курсе,но не понятно как принять?
Аноним 02/09/22 Птн 21:17:03 2453058 211
>>2453050
Будет лежать в $GET или $POST.
Аноним 02/09/22 Птн 22:17:08 2453091 212
>>2452734
Ты долбоеб что ли малолетний?
Аноним 03/09/22 Суб 00:31:44 2453163 213
>>2452359
> Что бы вы сделали?
Связывался бы с ПМомом, обрисовал бы ситуация, предолжел бы выделять, к примеру, 40% времени на рефакторинг и справление багов/небезопасного кода, аргументируя рисками.
Аноним 03/09/22 Суб 00:42:57 2453170 214
>>2453163
Ты бы доверил джуну рефакторинг?
Аноним 03/09/22 Суб 00:45:44 2453172 215
>>2452377

books/:id/reviews лучше так как у тебя скорее всего уже есть URL начинающиеся с books и логично к ним добавить и reviews.

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

>>2452401

> искусство/знания vs деньги.

Нет, не так. Делать то, что тебе интересно vs то, что интересно твоему работодателю. Типичный пример - писатели. Ты можешь писать книгу, которую прочтет 100 человек и 1 тебе задонатит или писать сценарии для рекламы или телесериалов для даунов, что хорошо оплачивается.

Если у PHP-разработчика нет никаких знаний, то зачем платить больше, чем кассиру в пятерочке?

> в ловушку высоких зарплат,

А высокие зарплаты дают за высокий скилл и желание его применять на благо бизнеса, а не строить из себя непризнанного гения. Если ты такой гений, то создай свой высокоприбыльный бизнес и пошли всех работодателей.
Аноним 03/09/22 Суб 00:48:21 2453173 216
>>2452489
>который к разработке отношения не имеет
уже 16 лет как "не имею отношения" к разработке
это, пожалуй, больше чем ты себя помнишь
и это не считая экзаменационной работы в школе (написал графический редактор) и всяких работ в университете.

>без всяких аргументов
я бы понял если бы ты запросил аргументы о недостатках например lua, julia или v, но блин пых... все знают, что пых - дерьмо. если ты совсем недавно в индустрии - начни с "фрактал плохого дизайна", останутся вопросы - задавай
Аноним 03/09/22 Суб 00:54:52 2453177 217
>>2452555

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

Вот для вдохновения блог человека, он периодически придумывает и реализует всякие небольшие проекты и даже немного на этом зарабатывает: https://tinyprojects.dev/projects .

Если нет идей, можно просто попробовать сделать упрощенный клон чего-то. Не знаю, свой криптокошелек, или криптомессенджер или службу заказа такси.
Аноним 03/09/22 Суб 00:56:35 2453178 218
>>2452587

Вот из-за таких дурачков я начну писать в женском роде. Пусть агрятся.
Аноним 03/09/22 Суб 00:59:56 2453179 219
>>2453050

Если надо передать переменную из JS кода в PHP: отправляешь GET/POST запрос с помощью XMLHttpRequest/fetch и на сервере получаешь данные в $_POST/$_GET. Если ты отправляешь JSON в теле POST-запроса, то надо прочитать этот JSON из потока php://input ( https://www.php.net/manual/en/wrappers.php.php ) и вручную раскодировать.

Если надо при генерации страницы вставить данные в JS, то используй echo json_encode($data);
Аноним 03/09/22 Суб 00:59:59 2453180 220
>>2453172
>Делать то, что тебе интересно vs то, что интересно твоему работодателю.
Я делал то что мне интересно и когда я тупо рубил бабло, и когда изучал новые языки, и сейчас, когда я делаю распределённую субд.
Это всё интересно именно мне. Я не делаю то что мне не интересно. Интересно ли это моему работодателю - мне до пизды.
Выбор возникает примерно как я написал - "искусство/знания vs деньги". Ну то есть будешь ли ты делать шавуху за миллион в день или будешь изучать работы Канта, Гегеля, Ялома, Юнга бесплатно или за минимальный прайс.

>А высокие зарплаты дают за высокий скилл и желание его применять на благо бизнеса
Конкретно в пыхе дохуя легаси, а легаси - значит нахуеверчено по самое не могу, хер разберёшься. Платят тому кто разберётся и продолжит это говно толкать дальше. Нет, к программированию это не относится. Это не про навыки абстрактного мышления, композиции, декомпозии, алгоритмики, а про знание ритуалов и особенностей конкретного говнопроекта.
Аноним 03/09/22 Суб 01:01:09 2453181 221
>>2453180
>Выбор возникает примерно как я написал
Выбор возникает именно как я написал

self-fix
Аноним 03/09/22 Суб 01:08:02 2453183 222
>>2453180

Ты пишешь глупость, как будто бы чтобы получать большие деньги, нужно как можно меньше знать. Обычно большие деньги не предлагают тому, у кого низкие скиллы. Выбор именно как я написал - заниматься интересными тебе вещами vs тем, что нужно бизнесу. Потому что бизнес платит деньги за решение его задач, а не за то, что ты занимаешься интересными вещами. На "интересных" работах вроде геймдева обычно зарплаты ставят поменьше потому что зачем платить, если людям и так интересно работать.
Аноним 03/09/22 Суб 01:10:40 2453185 223
>>2453180

Легаси есть везде, и на Java например его тоже полно. Его нет только на языках, которые вчера появились и которые страшно в продакшен пускать.

И вообще, по моему если у тебя есть N лет опыта и голова хорошо работает, ты новый язык за 2 недели освоишь. Что ты распереживался так по поводу PHP, не надо быть программистом на PHP, надо быть просто программистом, то есть человеком, способным решить любую проблему.
Аноним 03/09/22 Суб 01:25:41 2453190 224
>>2453183
>Ты пишешь глупость, как будто бы чтобы получать большие деньги, нужно как можно меньше знать.
Не писал я такого. К тому же это действительно глупость.

>Выбор именно как я написал - заниматься интересными тебе вещами vs тем, что нужно бизнесу.
Ну если это единственный известный тебе выбор, а выбор о котором говорю я ты даже не понимаешь, то как нам беседовать
Аноним 03/09/22 Суб 01:32:21 2453196 225
>>2453190

Ну ок. Я тоже тебя не понимаю, где ты нашел "искусство" в написании бизнес-приложений.
Аноним 03/09/22 Суб 01:37:53 2453198 226
>>2453185
>Легаси есть везде, и на Java например его тоже полно
Сука, ты видать реально не понимаешь.
Вопрос не в том, нормально ли что на пыхе есть легаси.
Вопрос в том, может ли настоящее время быть на пыхе что-то НОРМАЛЬНОЕ КРОМЕ легаси.
И ответ - нет.
В 2020+ начинать проект на пыхе нет никаких причин. Вообще.
А значит если ты в 2020+ работаешь с кодом на пыхе - значит это либо легаси либо свежий проект начатый малограмотными дебилами ничего кроме пхп не знающими, и я не уверен, какой вариант хуже.

А если ты работаешь в 2020+ на джаве, и этот проект новый - то вполне себе вероятность что его начинали нормальные специалисты, а не малограмотные дебилы.

Вот в этом разница.

>если у тебя есть N лет опыта и голова хорошо работает, ты новый язык за 2 недели освоишь
Сам-то сколько языков умеешь читать и на скольки сможешь написать хотя бы что-то рабочее? Мнение подкреплено опытом или это чисто мысленный эксперимент?

>не надо быть программистом на PHP, надо быть просто программистом, то есть человеком, способным решить любую проблему
Онли-пыхарь решить любую проблему не сможет, у него область познаний уже мышиной жопы.
А программист, способный решить любую проблему, с пхп просто связываться не будет, и мнение его о пхп будет примерно как у меня.
Аноним 03/09/22 Суб 01:48:59 2453199 227
>>2453196
>где ты нашел "искусство" в написании бизнес-приложений
А ты писал бизнес-приложение-то? Не формошлёпство с крудами. Бизнес-логику проектировал? Шаг за шагом реализовывал? Сначала собираешь понятия из бизнес-области. Потом выявляешь коммуникации между людьми (закон Конвея в курсе надеюсь?). Потом описываешь типы. Потом проектируешь процессы, инварианты. Это всё в чистых функциях. Потом реализуешь UI и DAO. Потом наблюдаешь как твоё приложение включается и работает без утомительных недель тестирования потому что ты собрал его как паззл с первого раза. Было у тебя такое хоть раз? Что ты об этом знаешь?
Аноним 03/09/22 Суб 01:56:18 2453203 228
>>2453199
Кроме решения бизнесовых задач есть очень другие, например, написание компиляторов, распределённых систем, функциональное программирование, декларативное. Искусство - оно про то как убрать всё лишнее и оставить только суть.
Аноним 03/09/22 Суб 02:44:26 2453218 229
>>2453172
>чистый REST вообще плохо работает,
А если я сделаю reviews комментируемыми?
Это получится books/:id/reviews/:id/comments

Это же уже хуйня какая-то получается или ок? В гайде по REST от Microsoft это называется complex resource, и является bad practice.
Но с другой стороны такой путь является понятным для меня, кажется логичным
Аноним 03/09/22 Суб 03:57:59 2453231 230
>>2453218
>Это получится books/:id/reviews/:id/comments
не надо усложнять
GET /api/books - получить коллекцию книг
GET /api/books/{id}/reviews - получить коллекцию отзывов на книгу
GET /api/reviews/{id}/comments - получить коллекцию комментов для отзыва

GET /api/books/{id}/reviews
тут можно возвращать поля
"commentsCount"
"commentsPreview" - два последних коммента на обзор
если надо весь список получить - пусть шлют отдельный запрос

>>2452377
>Шарит кто в REST best practices?
>Имеются:
>1) books
>2) comics
>3) reviews
>4) user(author)

GET|POST /api/books
GET|PATCH|DELETE /api/books/{id}

GET|POST /api/comics
GET|PATCH|DELETE /api/comics/{id}

GET|POST /api/users
GET|PATCH|DELETE /api/users/{id}

>На рецензиях Many-to-one с books, comics и user.
если у тебя review одновременно и для книги и для комикса
POST /api/reviews
GET|PATCH|DELETE /api/reviews/{id}
GET /api/books/{id}/reviews
GET /api/comics/{id}/reviews
GET /api/users/{id}/reviews

>На рецензиях Many-to-one с books, comics и user.
если бы это был +-реальный продукт то наверное
ревью надо бы разделить на 3 сущности
паттерн Single Table Inheritance(в доктрине из коробки, в ларе надо поставить пакет)
- Review
- BookReview
- ComicReview
Аноним 03/09/22 Суб 10:38:38 2453304 231
Аноним 03/09/22 Суб 10:42:27 2453309 232
>>2452555
Напиши свой ютуб/порнхаб.
Аноним 03/09/22 Суб 11:45:56 2453356 233
Снимок.PNG 44Кб, 700x375
700x375
>>2452401
Анон, прочитал тонну ваших высеров тут что PHP ВСЁ, загуглил для интереса рейтинг языков для бекенда 2022 на хуево-туча сайтов, топ 3 ~ js, python, php

считаю питон хуйней без задач с огромной тратой производительности, могу ошибаться

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

Мне кажеться или вы фантазеры ебанные? Похоже на то, что в своих мирках варитесь, пропагандируете все, кроме рабочих инструментов.
Аноним 03/09/22 Суб 12:15:17 2453377 234
Аноним 03/09/22 Суб 12:34:56 2453413 235
>>2453173
Чем опытнее программист, тем он проще. Выебонщики мамкины как раз это вкатуны вроде тебя и прочие малоопытные, для которых кодинг ограничивается одним инструментом.
Плюс тебя на работу не возьмут, если ты ведёшь себя как агрошкольник.
Аноним 03/09/22 Суб 12:44:49 2453433 236
>>2453356
Нет маркетинга PHP просто, не понимаю почему правда. При этом PHP можно накрутить до скорости Go.
Может однажды кто-то бабки вкинет в хайп, будут PHP все учить.

PHP красивый быстрый язык, работы валом, нег много, конкуренции мало. По крайней мере в европе/азии, в США не знаю.
Аноним 03/09/22 Суб 12:45:50 2453437 237
>>2453433
Работа это в основном простые сайты с простым крудом
Аноним 03/09/22 Суб 12:50:50 2453449 238
>>2453437
Ну веб-приложения, PHP как рест-апи обычно используется, по крайней мере в проектах, где я последние 3 года работал. С масштабированием-разделением на разные апи-сервера.

Я работал даже с Clickhouse и т.е. огромными данными. Традиционно PHP это я б сказал куча очередей с немалыми нагрузками.
Аноним 03/09/22 Суб 13:47:17 2453504 239
Аноним 03/09/22 Суб 13:49:48 2453508 240
Аноним 03/09/22 Суб 13:51:26 2453512 241
>>2453504
Первая ошибка состоит в том, что нужно было сократить ссылку:
tinyurl
>>2453508
Вторая, что нужно поменять раскладку клавиатуры
Третяя, пошел нахуй
Аноним 03/09/22 Суб 13:52:51 2453515 242
Аноны, научите пожалуйста курлить пиндосские сайты используя проксю
Аноним 03/09/22 Суб 14:10:48 2453545 243
>>2453515
Если конкретней, то мне не понятно, где устанавливается логин и пароль для прокси через которую надо подключиться
Аноним 03/09/22 Суб 15:02:22 2453641 244
Аноним 03/09/22 Суб 15:13:40 2453660 245
Захват.JPG 104Кб, 1920x925
1920x925
Поцаны, поясните что может быть не так
Хочу залогиниться на этом сайте (в качестве практитки) и далее уже парсить
Но не логинит, выдает false
Подскажите, что я делаю не так
Прилагаю скрин с запросами (вводил неверные логин и пароль)

Хотя бы ткните носом, а то я совсем забуксовал
Аноним 03/09/22 Суб 15:16:47 2453667 246
Аноним 03/09/22 Суб 15:30:38 2453679 247
>>2453660

Скорее всего переменные ab и ft не постоянные, а меняются при каждом заходе на страницу.
Аноним 03/09/22 Суб 15:36:10 2453682 248
Захват.JPG 150Кб, 1919x843
1919x843
>>2453679
Да, действительно каждый раз разные. Куда тыркаться дальше чтобы решить это?

Я еще порылся, нашел вот такой хтмл код. Там гугловская рекапча, которая не появляется и вобще не дает о себе знать. Может быть дело в ней? А может быть дело в том, что я не подменяю юзер агента?

Вобще, я мне надо будет логиниться на сайте заблокированном в рф, там наверное вобще всё подругому. Просто хочется залогиниться хоть где нибудь. Уже несколько дней ебусь
Аноним 03/09/22 Суб 16:27:16 2453751 249
>>2453682
Ищи, где эти значения. Они или есть готовые в виде хидден полей или каких-то жабаскрипт переменных, или генерируются, что хуевее. На рекапчу это не похоже, у её значения есть в названии рекапча.
Аноним 03/09/22 Суб 16:28:17 2453753 250
>>2453682

Можно залогиниться вручную, излечь из браузера куки и вставить их в скрипт.
Аноним 03/09/22 Суб 17:39:18 2453862 251
>>2453504

А что выводится при выполнении скрипта? Какая-то ошибка или что-то еще?

Также, у тебя в коде SQL-инъекция, так как ты подставляешь переменные напрямую в текст запроса. Я написала урок, посвященный защите от этой уязвимости: https://github.com/codedokode/pasta/blob/master/security/sql-injection.md
Аноним 03/09/22 Суб 17:40:53 2453864 252
>>2453641

Напиши, что происходит при выполнении скрипта.
Аноним 03/09/22 Суб 18:28:26 2453934 253
изображение.png 3Кб, 223x65
223x65
изображение.png 3Кб, 224x64
224x64
>>2453504
Точки с запятой не хватает?
Аноним 03/09/22 Суб 18:58:01 2453965 254
Вот кстати интересные вещи иногда пишут в почту, где-то год назад человек хотел купить готовый сайт TestHub. Эх, можно было бы помочь кому-то из анонов заработать небольшую денежку.
Аноним 03/09/22 Суб 20:28:42 2454078 255
>>2453934
А лол, точно, спасибо бро
Аноним 03/09/22 Суб 23:29:13 2454315 256
>>2453356
>PHP поддерживают даже самые простые виртуальные хостинги
Самый тупой аргумент.
Пхп уёбищен в частности потому что у него есть php.ini. Конфигурация, блядь, интерпретатора. Вдумайся, анон. Ебало представь. Ни у одного другого языка такой хуйни нет.
И именно поэтому пхп-хостинги - говно без задач. Пишешь пхп-поделку - заворачивай её в докер и кати на vps. Так что этот аргумент мимо.
Аноним 03/09/22 Суб 23:30:32 2454319 257
>>2453356
>PHP в РФ используют по умолчанию гос-струкутуры
не знаю ни одной госструктуры, использующей пхп. там конечно дебилы работают, но не настолько. ебут там нещадно, поэтому пых туда не потащат
Аноним 03/09/22 Суб 23:31:28 2454321 258
>>2453413
>вкатуны вроде тебя
Попробуй обсуждать не меня, а пых. Статью прочёл уже? Возражения есть?
Аноним 03/09/22 Суб 23:34:43 2454333 259
>>2453449
>Традиционно PHP это я б сказал куча очередей с немалыми нагрузками.
Традиционно пхп - это успешно выстрелившие в прошлом стартапы. Написаны они были энтузиастами, знающими только пых. Ну типа как в кф "социальная сеть". Эпоха была такая. Сейчас культура в целом подросла, и стартапы пишутся уже на чём-то более другом, с поддержкой асинхронности и многоядерных цпу из коробки например.
Аноним 04/09/22 Вск 11:09:15 2454605 260
>>2454333
Вот этого двачую, 99% крупных контор с кодовой базой на php - родом из нулевых, когда и время было другое, и требования к проектам другие. Да и сейчас уже ни фейсбук ни вк на php не написаны, везде миллион микросервисов на разных языках, форки языка и кастомные расширения.

>>2453356
Киллер фичи php это
1 Динамичность, из-за этого на нём просто писать cms. Собственно, 99% рынка CMS это как раз php. Только не стоит обольщаться, по очевидным причинам цмс это всегда будет дно разработки, самая дешевая и низкоквалифицированная её часть. И твой аргумент про "правительственные сайты" это как раз оно, просто раздача статического контента, чуть сложнее сайта-визитки, только пользы от этого не будет.
2 Ограниченность, из-за модели процесс пер запрос разработчик может ничего не знать про стейт и говнокодить, как душе угодно.

Все эти symfony и laravel это заранее проигранное соревнование. Да, есть рынок и можно найти заказчика (потому что им вообще плевать на технологии), но "серьезная разработка" (тм) на пыхе всегда будет тенью серьезной разработки на java/c#, просто по определению. Даже сама symfony с doctrine это (иногда дословная) копия spring с hibernate.

90% кода на php это вордпресс, с этим стоит просто смириться. Php выбирают, потому что это "дешево и просто", но совсем не потому, что масштабируемо или хорошо подходит для моделирования больших проектов.

> PHP поддерживают даже самые простые виртуальные хостинги
Очень правильный аргумент. Обрати внимание, ты сам поставил в одно предложение PHP и "самые простые виртуальные хостинги". Кажется, пахнет низкоквалифицированным трудом :)

>>2454319
Этот даун говорит про оф сайты типа https://rostec.ru/ , только упускает из виду, что такие "проекты" не являются чем-либо сложным или значимым, кроме имени заказчика

>>2453433
> При этом PHP можно накрутить до скорости
Нельзя, просто by definition:
1) Нет нормального шаред стейта, быстрый кэш не сделать;
2) Jit совсем не такой развитый, как в java, скорость просядет;
3) Php, однопоточный бай дизайн, обработку данных нормальную не напишешь; Экстеншены решением не являются, это костыли со своими ограничениями;
4) Из-за той же проблемы с однопоточностью ты никогда не сможешь нормально решить задачу 1M коннектов на одну ноду. У тебя скорость отдачи запросов всегда строго ограничено количеством воркеров php-fpm, при увеличении их количества до миллиона ты просто упрешься в оперативку и их простои и всё;
5) Php за счет своей динамики и ZVAL под капотом просто по определению неэффективно использует CPU и (немного) память;
6) Сборка мусора не кастомизируется, не сможешь под задачу её настроить;
7) Из-за динамичности языка к нему всегда будут вопросы по части сесурити;
8) Ну и кстати, го всегда будет выигрывать у php по стоимости серверов, за счет более эффективной утилизации процессора и более низких затрат по памяти.

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

PHP'шники смешны не только тем, что играют деревянными игрушками в песочнице. Намного сильнее смешны они тем, что им не хватает навыков понять, насколько их деревянные игрушки недоразвиты по сравнению с прочими. Как раз неразвитость и невысокий кругозор и заставляет пехапешников с таким апломбом говорить, что "php может быть таким же быстрым, как XXX". Но в действительности это каждый раз лишь просто подчеркивает, что автор не разбирается в языках, технологиях, не обладает кругозором и опытом. И что новичкам стоит бежать от php как от огня, потому что вкатиться-то легко, вот только это ловушка.
Аноним 04/09/22 Вск 13:03:03 2454713 261
Аноним 04/09/22 Вск 13:14:29 2454735 262
>>2454713
Это прав. Ни разу за 5+ лет не писал на CMS. Называть ларавель и симфони заведомо проигрышным вариантом - расписываться в том что ты вкатунец без реального опыта и совсем не в теме.
Аноним 04/09/22 Вск 13:26:23 2454742 263
>>2454605
>90% кода на php это вордпресс, с этим стоит просто смириться
Вкатуся, вордпресс это не 90% кода, а 90% фриланса. Ты понятия не имеешь о чём говоришь.
Аноним 04/09/22 Вск 14:01:44 2454778 264
>>2454333
>культура в целом подросла
Какая "культура"? Причём тут пхп и твоя "культура" вообще?

>стартапы пишутся уже на чём-то более другом
Жаль твой манямир обламывать, но как писали - так и пишут. Некоторые даже с пхп5 не собираются перекатываться.
Аноним 04/09/22 Вск 14:08:57 2454785 265
>>2454605
>99% рынка CMS это как раз php
99% Это как раз симфония, лара, юи и другие mvc вплоть до самописных.

>говнокодить, как душе угодно
До того момента как его уволят т.е максимум месяц.

>Все эти symfony и laravel это заранее проигранное соревнование
Только вот вакансий на них всё больше и больше, чёта тут не сходится.

>Php выбирают, потому что это "дешево и просто"
Дёшево, быстро и просто. Тебе не нужно нанимать 5 Jav'истов платя каждому по 3 - 4К баксов за то, что могут сделать 3 человека гораздо быстрее и дешевле.
И выбирают его лишь для одной цели - это создание сайтов.

>решить задачу 1M коннектов на одну ноду
Именно для этого и существуют языки специально заточенные под такие задачи.

>5) Php за счет своей динамики и ZVAL под капотом
Чел из 2014го капчует.

>Сборка мусора не кастомизируется, не сможешь под задачу её настроить
Под какую задачу? Обратиться к БД? Выдать страничку? Получить данные со страницы/JSON'а?
Ваш молоток не подходит для прополки грядок.

>7) Из-за динамичности языка к нему всегда будут вопросы по части сесурити;
Ты 5ую пыху критикуешь или до сих пор в 2014ом застрял?

>го всегда будет выигрывать у php по стоимости серверов, за счет более эффективной утилизации процессора и более низких затрат по памяти
А ещё огонь горячий, а вода мокрая, ахуеть да? Сравнивать компилируемый язык с интерпретируемым... Чел ты....

>И это только то, что я накинул из головы, сходу.
Все тейки которые запомнил времён 5ой пыхи если быть точнее.

>потому что вкатиться-то легко, вот только это ловушка
Вкатился 5 лет назад, сейчас C# боярин, ответы?
Слежу за пыхой по прежнему и она развивается пускай и потихоньку, однако постоянно берёт интересные фичи из серьёзных языков и ускоряется от версии к версии.
Аноним 04/09/22 Вск 14:34:08 2454806 266
>>2454735
> 5+ лет велосипедил
Поправил тебя
Аноним 04/09/22 Вск 14:40:02 2454812 267
>>2454806
И что? Это суть профессии. В большинстве задач пыхера в тырпрайзе это импементация всяческой бизнеслогики в контроллерах, сервисах и очередях. Как и везде на других стеках. Вордресы тут ваще не при делах.
Аноним 04/09/22 Вск 14:43:14 2454815 268
>>2454785
>по прежнему и она развивается пускай и потихоньку, однако постоянно берёт интересные фичи из серьёзных языков
Вероятно ты сам не понял, какую базу ты выдал, но это базой было, есть и останется: пыха - не серьёзный язык.

Наступит день когда ты поймёшь, что пыха - вообще не язык.

Удачи!
Аноним 04/09/22 Вск 14:47:31 2454822 269
>>2454812
Вообще все задачи сводились
1) логика бизнеспроцессов
2) подсчитать какую-то хуйню для кабаныча и его менеджеров
3) перекладывание жсонов
4) перекладывание записей в бд
Аноним 04/09/22 Вск 14:56:38 2454839 270
>>2454815
Ну так то да. В пыхе раздражает отсутствие нормальной модели данных. Чтобы все начиналось с примитивов, а потом все укладывалось в общие ADT структуры. Хотя бы как в том же жс или питоне. Мало кто из пыхеров пользуется SPL. Да и это фигня по сравнению с дженерик типами из жавы и шарпа.
Аноним 04/09/22 Вск 14:59:00 2454843 271
>>2454815
>пыха - не серьёзный язык
Вроде я обратного не утверждал. А ты опять про очевидные догмы. Воздухом дышат
Аноним 04/09/22 Вск 17:20:42 2454978 272
https://laravel.com/docs/9.x/queues#handling-relationships
>Furthermore, when a job is deserialized and model relationships are re-retrieved from the database, they will be retrieved in their entirety. Any previous relationship constraints that were applied before the model was serialized during the job queueing process will not be applied when the job is deserialized. Therefore, if you wish to work with a subset of a given relationship, you should re-constrain that relationship within your queued job.

Я не врубаюсь, что имеется ввиду под констрэинтами тут? Вообще не понимаю смысл написанного
Аноним 04/09/22 Вск 17:26:17 2454980 273
Аноним 04/09/22 Вск 18:14:56 2455028 274
>>2454978
Все просто. У тебя есть User Петя. У Пети в кармане было 5 пирожков. 2 он отдал Юле, у него осталось три. В БД перед сериализацией Пети все пять пирожков все еще приписаны к Пете как многие к одному. Но в кармане (и в коде) у пети 3 пирожка.
1) Перед сериализацией вызываешь withoutRelations - после десериализации у Пети 0 пирожков в кармане
2) Если не вызываешь - после десериализации у Пети 5 пирожков в кармане.
Аноним 04/09/22 Вск 18:16:21 2455032 275
Аноним 04/09/22 Вск 18:42:15 2455080 276
>>2455032
А, с примером из статьи стало понятно, спасибо.
Аноним 04/09/22 Вск 20:37:37 2455229 277
>>2454822
>1) логика бизнеспроцессов
>2) подсчитать какую-то хуйню для кабаныча и его менеджеров
Ты дважды про бизнеспроцессы написал, вкатун. Мы не перезвоним.
Аноним 04/09/22 Вск 20:49:55 2455242 278
>>2455229
нет ты.
1) вася дал маше лединец, проверить чтобы маша поцеловала васю. если маша не поцеловала васю, вася должен отобрать у маши лединец и отдать его тане. если вася не забрал лединец у маши, занести его в графу куколд.
2) расчитать среднее количество девушек на лединец, найти лединец, который полизало максимальное количество девушек
Аноним 04/09/22 Вск 20:52:42 2455246 279
>>2455242
леденец

фикс а то действительно не перезвонят
Аноним 04/09/22 Вск 23:38:44 2455421 280
>>2455242
Всё ещё про одно и то же пишешь - бизнесу оба варианта могут понадобиться. Опять про бизнес-логику.
Аноним 04/09/22 Вск 23:42:14 2455422 281
>>2455421
Тебе платят за НЕНУЖНОЕ бизнесу? Я тоже так хочу!!!111
Аноним 05/09/22 Пнд 00:03:19 2455432 282
Php - динамикодрисня, которая популярна и всегда была только за счет простоты вката вайтишников и как следствие дешевизны еды, которую этим вайтишникам можно платить.
Ничего большего из себя php никогда не представлял и конкуренцию серьезным языкам он составить не может и не мог.

/thread
Аноним 05/09/22 Пнд 00:37:40 2455455 283
Аноним 05/09/22 Пнд 00:39:03 2455457 284
>>2454843
Ты прочитал, но ничего не понял.
Миллионы пыхеров пребывают в иллюзии, что пыха - это нормальный язык (сравнивают его с го, жавой, ну ты видел сам, ты ещё спросил хуль человек очевидное пишет, а ты посмотри, на что он отвечал - на фразу "пыхо может быть производительно как го"). И эта иллюзия - и есть величайшая подъёбка пыхи. Пыхари тонут как та лягушка в кипятке.
Аноним 05/09/22 Пнд 00:52:31 2455460 285
>>2455457
Какая разница проиводительный это язык или непроизводительный. То что я пишу на пыхе определяется рынком труда и случайными обстоятельствами. А так же соображениями, что от переката в другой язык, платформу никаких существенных улучшений жизни не будет. Прдедлагаешь ради компиляции и синтаксического сахара понижаться в зряплате и идти снова джуном? Причем джуном то сделают, а застявят ебаться с теми же задачами что и в пыхе. И стаким же уровнем говнокода, ибо некогда бизнесу марафеты наводить, надо фичи для заказчиков реализовывать.
Аноним 05/09/22 Пнд 01:33:39 2455467 286
>>2455460
>Какая разница проиводительный это язык или непроизводительный.
this!

>от переката в другой язык, платформу никаких существенных улучшений жизни не будет
this!

"Я освоил ремесло - и мне хватает". Это про уровень мышления. Не, ну кому-то нормально.

>Прдедлагаешь ради компиляции и синтаксического сахара понижаться в зряплате
Я не предлагаю это делать лично тебе. Более того, я даже рад буду если ты и все остальные останутся в пыхе - будет меньше конкуренция в моей нише. Но идея в том, чтобы спросить тебя - а ты вообще понимаешь, что такое компиляция и какие выгоды она даёт?

> и идти снова джуном?
Понимаешь ли ты, что пхпшнику выше миддла по нормальным меркам не подняться? Тебе выдали лычку синьора, но это обман, у тебя нет ни теории, ни практики, ни окружения чтобы вырасти выше мидла.
Аноним 05/09/22 Пнд 02:36:31 2455477 287
>>2453231
Переделал схему rest и добрался до STI и что-то не врубаюсь в чем тут смысл и профит.
Вот у меня есть абстрактный класс Reviews, я от него наследуюсь в BookReviews и ComicsReviews и вешаю foreign key на книги и комиксы.
Аноним 05/09/22 Пнд 06:35:31 2455493 288
изображение.png 93Кб, 1029x661
1029x661
>>2455457
>"пыхо может быть производительно как го"
И чел просто выкатил стену текста когда мог просто написать, что го компилируемый. И будь го интерпретируемым, то выигрывал не так сильно за счёт строгой типизации и более новой платформы.

>>2455460
>Какая разница проиводительный это язык или непроизводительный >>2454605
>4) Из-за той же проблемы с однопоточностью ты никогда не сможешь нормально решить задачу 1M коннектов на одну ноду
Огромная разница. Просто чекни с какой скоростью тот же го решает сложные задачи.
https://programming-language-benchmarks.vercel.app/go-vs-php

>понижаться в зряплате и идти снова джуном
Прокачивать навыки и получать большую зп будучи мидлом.

>И стаким же уровнем говнокода
Ну если ты и на пыхе говнокодишь, то да, существенно ничего не изменится. Однако тебя выкинут в 40 лет с рынка и будешь ты нахуй никому не нужен со своим говнокодом т.к не умеешь ни в память, ни в типизацию.
Аноним 05/09/22 Пнд 08:57:00 2455565 289
>>2454333
>Пук, среньк
Все проекты, с которыми работал - не старше 3-5 лет были.

>>2454605
>Все эти symfony и laravel это заранее проигранное соревнование
Это лучшие фреймворки, которые только существуют для стартапов. Ни в ноде, ни в голанге твоём в ближайшие 10 лет точно не появится.
Это лучшее решение, потому что не надо много денег. У стартапа как правило никогда нет денег ни на джаву, ни на шарп.

>Нельзя, просто by definition:
У PHP-фреймворка Swoole скорость почти как у твоего Go, так что вкатуня ты слит.
Аноним 05/09/22 Пнд 08:57:34 2455566 290
>>2455493
А с божественным го вас не выкинут в 40? Компиляция запрещает увольнять операторов компиляторов?
Аноним 05/09/22 Пнд 09:02:36 2455571 291
>>2455467
Вкатуня рвётся, что PHPшники зарабатывают так же как на джаве/шарпе, вкатиться легко, конкуренции мало, рост огромный, условия кайф. На PHP сеньёром куда проще и быстрее стать, хех.
Я вот например даже в офисе не был, 1 год в PHP и уже мидл. 3 года и сеньёр.
Аноним 05/09/22 Пнд 09:04:23 2455573 292
>>2455493
Тест - наприсание стандартного круда
вебмакака время решения задачи время зараченое на кофе
пыхарь 3дня 2дня
голангер таймаут 0
Аноним 05/09/22 Пнд 09:11:06 2455581 293
>>2455493
Вкатуня зелёная, а знаешь почему насрать в большинстве в стартапах на твои голанги - ТРОТЛИНГ называется, ну или упрёшься в БД, кек.
А где надо - сделаем отдельный апи-сервер, php асинхронным, выкрутим скорость на макс и опять вопрос, а зачем тогда голанг твой.
Голанг к слову, сколько он там на бэкенде в проде, 0.01% вроде по w3tech? А php 78% бэкенда? кекус
Аноним 05/09/22 Пнд 09:55:36 2455608 294
>>2455566
>А с божественным го вас не выкинут в 40?
С компилируемыми языками когда тебе за 40 становишься сеньёром 300кк в наносекунду. С божественной пыхой ты даже не будешь знать чем отличается стек от кучи, объект от структуры, делегат от события, i32 от u32 и т.д.

Погремист за 40 с опытом типизированных языков - Чед, миллионер и сын маминой подруги.

Погремист за 40 с опытом скриптовых языков - Омежка, инцел и надо было сдать его в дет. дом.

>>2455581
>ТРОТЛИНГ
Дальше можно не читать впринципе.

>Вкатуня зелёная
>ТРОТЛИНГ называется

>php асинхронным
Покажешь как это делается из коробки, позязя.
Аноним 05/09/22 Пнд 10:48:45 2455649 295
>>2455565
>У PHP-фреймворка Swoole
swoole - это не фреймворк, а рантайм
так же как и roardunner
рядышком с ними находится phalcon
рантайм - это не фреймворк даже близко, это классика, это знать надо. то что ты их путаешь - классика макакинга. вообще слово-то такое слышал - "рантайм", понимаешь что оно значит?
рантайм - это значительная часть языка, и переход на другой рантайм требует смены или переписывания либ и переучивания команды.
когда говорят "пхп" - имеют ввиду подзалупную поделку, умирающую на каждый запрос. там стоимость "специалиста" - рубль за пучок, потому что ему не нужно знать что такое утечка памяти например. когда ты меняешь рантайм на swoole - тебя все эти утечки внезапно начинают ебать со страшной силой, потому что иначе приходится перезапускать прод по таймеру, как это было с древними рельсами.
персистентный рантайм - это более высокие требования к квалификации разработчиков, что нивелирует преимущества дешевезны классического пыха.
к тому же с персистентным рантаймом мало совместемы классические либы и фреймворки, по которым тонны экспертизы. кабан никогда не согласится на смену рантайма потому что это охуительный риск для бизнеса. то что обычно решается поиском плагина для симфони теперь перестанет решаться в принципе иначе чем через самописную еблю. поэтому на свуле переходят только энтузиасты которые хотят познать больше. ну а у энтузаста возникнет вполне логичный вопрос - нахуя учить диалект пыхи когда можно примерно с теми же усилиями выучить самостоятельный го, по которому и тонны экспертизы, и тулинг человеческий, и вакансий до сранделя и зепки в полтора раза выше.
Аноним 05/09/22 Пнд 11:10:09 2455674 296
>>2455565
>Это лучшие фреймворки, которые только существуют для стартапов
В какой реальности ты живёшь, сука дегродная?
Лучшим фреймворком последнее десятилетие был RoR, а сейчас - Phoenix.

Лучшесть - это когда у тебя из коробки есть все батарейки и фичи. У твоих же поделок нет даже вебсокетов из коробки. В 2022м году. В языке, который сделан для веба и на котором написано 80% веба. Отдельно нужно прикручивать. В питоне ты пишешь pip install numpy - и работа с матрицами - транспонирование, вычисление среднего, разбиение на блоки - ускоряется в 10 раз, при этом ты не меняешь синтаксис кода. В пхп ты используешь тормозные массивы с уёбищным синтаксисом. Про асинхронные задачи с коллбэками даже не мечтаешь, всё что у тебя есть - это внешняя очередь. Даже в жабаскрипте у тебя есть promises A+, в пыхе же promises A+ есть только в guzzle и только потому что он завязан на libcurl events, все иные попытки сделать эвент луп приводят к заваливанию рантайма.

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

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

Вылазь из своей пещеры уже, изучи как весь цивилизованный мир работает.
Аноним 05/09/22 Пнд 11:25:17 2455690 297
Что хорошего можно почитать по паттернам проектирования? Не сами паттерны вроде Фабрики, а именно то как создавать структуру классов, наследование и все такое
Аноним 05/09/22 Пнд 14:09:14 2455827 298
>>2455690
>структуру классов
плоская

>наследование
не нужно
Аноним 05/09/22 Пнд 14:12:24 2455833 299
>>2455581
>упрёшься в БД
сказочки от людей не видевших реальные проекты

как только начинаются нагрузки - все эти пхп-абстракции становятся раком

ты либо велосипедишь на голом пыхе либо у тебя всё тормозит, и ты будешь созерцать на htop одно ядро на 100% и 23 простаивающих
Аноним 05/09/22 Пнд 14:32:49 2455856 300
>>2455649
>swoole - это не фреймворк, а рантайм
>ПУК-СРЕНЬК
Swoole это фреймворк, идиота кусок.
Swoole is a high-performance network framework based on an event-driven, asynchronous, non-blocking I/O coroutine programming model for PHP.

>Лучшим фреймворком последнее десятилетие был RoR, а сейчас - Phoenix. Я ТОК СКОЗАЛ!!!!!
>пук среньк

>>2455833
>пук-среньк

Ты маня когда пишешь, то подкрепляй фактами. Ты так высираешься, кто-то у тебя раком встаёт там, лол. Какие пхп-абстракции, лол. Ты примеры приведи, ты непрофессионально общаешься непонятно о чём вообще. PHP-разработчики логичны и последовательны, в отличие от тебя.
Аноним 05/09/22 Пнд 14:39:10 2455860 301
>>2455827
>не нужно
Он в PHP-треде находится. Всм наследование не нужно в PHP?
Ты полный некомпетентный идиот с нулевыми познаниями в айти. Тебя видимо когда-то обоссали PHP-сеньёры на собесе и ты теперь зол?
Аноним 05/09/22 Пнд 14:41:27 2455862 302
Аноним 05/09/22 Пнд 14:47:20 2455867 303
>>2455856
>Swoole это фреймворк, идиота кусок.
>
Я уже понял, что ты не знаешь что такое рантайм

>Какие пхп-абстракции, лол
Типизация (например типизированный список в пыхе реализуется через объект, где у метода add аргумент типизированный. это потому что сам пхп не позволит тебе объявить типизированный список, ну ты в курсе), иммутабельность (тоже делается через объект с интерфейсом array или подобным). Doctrine ORM как жирный пример абстракции. Ну и прочие абстракции. Абстракции, блядь. Ты же должен быть в курсе, это база нахуй.

>PHP-разработчики логичны и последовательны
в незнании базовых вещей
Аноним 05/09/22 Пнд 14:50:05 2455869 304
>>2455860
>Всм наследование не нужно в PHP?
Всм наследование не нужно ВООБЩЕ. "Предпочитайте композицию наследованию". Это БАЗА. Пхп позаимствовал инструмент наследования у жабы. Наследование в проекте вызывает проблемы. "Приём, приём, я наследование, вызываю проблемы." Понимаешь? Нихуя ты не понимаешь, упоролся своим "инкапсуляция + наследование + полиморфизм"
Аноним 05/09/22 Пнд 15:07:37 2455885 305
А еще на пхп делают сайты для местного тырпрайза-сайты жкх в городах типа светлый путь Ильича
Аноним 05/09/22 Пнд 15:22:42 2455914 306
>>2455885
>сайты для местного тырпрайза-сайты жк
Нафига им сайты?

>в городах типа светлый путь Ильича
Тем более
Аноним 05/09/22 Пнд 15:30:02 2455921 307
>>2455914
А затем.И их масса.Причем и бекенд
Аноним 05/09/22 Пнд 16:10:21 2455949 308
>>2455921
Логично. На чём же их ещё делать.
Аноним 05/09/22 Пнд 17:45:22 2456040 309
Аноним 05/09/22 Пнд 18:44:08 2456115 310
>>2455690
Почитать Пола Кругмана, посмотреть архитектурные стримы s0er'а
Аноним 05/09/22 Пнд 18:46:05 2456119 311
>>2456115
Крэг Ларман
быстрофикс
Аноним 05/09/22 Пнд 19:40:32 2456151 312
>>2455493
>>2455581
> И чел просто выкатил стену текста когда мог просто написать, что го компилируемый.
Кстати, очередная ловушка для пыхеров, они почему-то искренне уверены, что компилируемость языка бай дефолт делает его сравнимым или даже равным реализации на плюсах.
С этой точки зрения, как только в php появился JIT, то он сразу же стал равным го, ну или хотя бы java, она-то тоже работает через байт-код и виртуальной машины.
Но вот что-то нихуя.

И вот тут, мои дорогие php'шники, которые нихуя за пределами своего битрикса ну или ларавел, это не делает вас умнее не знают, мы приходим к вам к реализации JIT и внутренностям языка.
И окажется, что в java есть куча оптимизаций, к примеру, та же векторизация циклов или даже блять оптимизация хвостовой рекурсии, которой сто лет в обед, и в итоге одинаковый код на java и на php работает с разной скоростью.
Ещё окажется, что виртуальная машина Java с современными сборщиками мусора создана, чтобы работать с большим количеством указателей на куче, она поколенческая, перемещающая и много чего ещё. И поэтому ей что создать ещё миллион короткоживущих поинтеров, что не создать, пофигу. Поэтому джависты могут себе позволить всё делать поинтерами, заворачивать в них типы вместо честных дженериков и так далее и тому подобное.
При этом их php, с их сборкой мусора через счетчик ссылок, которые ещё мой дед использовал пока трахал мамок первых пехапешников, алгоритмически не способен достичь того же перфоманса на том же количестве переменных.
А он будет пытаться, кстати, потому что все переменные в php это zval'ы, то есть по сути структуры, которые так или иначе будут в куче, либо самостоятельно, либо как часть других структур. Соответственно, php алгоритмически неэффективно выделяет память и алгоритмически неэффективно её очищает. И это я ещё не буду здесь говорить про блокировки при очистке памяти, иначе phpшники с ума сойдут, их к такому жизнь не готовила. И да, это по сравнению с java, если я начну говорить про c#, где модель памяти ещё удачнее, то недоразвитость php станет ещё яснее.

Кстати, ещё один пример. php'шники наверное и не догадываются, но ассоциативный массив в php является не только хэш таблицей если вы об этом знали, но ещё и списком, потому что phpшные массивы сохраняют порядок ключей. Ну вы поняли, да? Php'шный массив это две структуры данных вместо одной, что блять по определению неэффективно!
Соответственно любой код с использованием хэш мап на java, на го, на c#, на блять чём угодно почти, даже без оптимизаций компилятора или виртуальной машины, будет эффективнее, чем на php.

Ещё раз для совсем тупых: почти любой код на php по определению, алгоритмически менее эффективен, чем код на (к примеру) java. Php делает больше лишних действий, выделяет лишнюю память и не умеет её эффективно очищать. И не умеет оптимизировать этот код на хоть сколько-нибудь сравнимом уровне во время JIT'а. Все ваши ряяя асинхронные фрейморки здесь не помогут, тупо ядро языка написано так, чтобы даунам было легче писать код, но совсем не для того, чтобы этот код был эффективен.

> ТРОТЛИНГ называется
Чел явно вообще никогда даже рядом не стоял с нагруженными проектами и просто употребляет слова, которые где-то слышал, лол. Настолько обосраться это надо уметь, явно знатный пыхер.
Тротлить у тебя будет в первую очередь php, пока поток висит, пока база считает :) А как раз любой не php, да та же нода, не говоря уже про го отлично в это время обработает другой запрос.

>>2455833
Этот прав
Аноним 05/09/22 Пнд 19:50:19 2456157 313
>>2456151
Бля, я сам в шоке, какой текст из себя пришлось родить, просто чтобы показать упертым недоучкам, что есть вещи, в которых они не разбираются и что их язык имеет серьезные ограничения по сравнению с другими, хотя это, как бы, факт и спорить с этим было бы странно.

Конечно же, и на php будут писать проекты, хотя бы потому, что рабочая сила дешевая, а большинство проектов не нагружены примерно нифига 1rps то есть хоть у кого-нибудь из местных "экспертов", если без статики?. А ещё железо сейчас сравнительно дешевое и можно любой говнокод запускать. Я как-то своими глазами видел, как фреймворк на php отжирает в среднем 100мб оперативы на обработку одного запроса. Лично по-моему это пиздец. У дико развестистый код на го который обрабатывает 1500 рпс столько же занимает, и ещё успевает отвечать в пределах 70ms да, дохуя, но там правда сложная логика. Вот спорить могу, что у большинства завсегдатаев треда даже метрик нет, они тупо не знают, сколько жрет их код и за сколько отвечает счастливые люди.
Аноним 05/09/22 Пнд 21:46:56 2456259 314
>>2456157
Сычуша, сходи в сишки тред и раскажи там, какой твой язык быстрый. Может тебя там не сильно обоссут за наличие сборщика мусора. Ведь твоя говняшка не может в системах реального времени использоваться, по твоей же логике ты упертый недоучка, раз голанг выбрал а не си.
Аноним 05/09/22 Пнд 22:23:27 2456301 315
>>2455477

Смысл STI в том, чтобы использовать одну таблицу для хранения нескольких сущностей.
Аноним 05/09/22 Пнд 22:31:02 2456308 316
>>2455674

Как можно приводить в пример promises a+, в которых нет возможности нормально разделять/фильтровать исключения, и в которых они по умолчанию просто проглатываются. Это ужасный дизайн и его делали люди, которые видимо ненавидят исключения и хороший код.

Промисы должны по умолчанию выкидывать наружу необработанные исключения, а функция обработки исключения должна принимать класс для фильтрации.

Также, нельзя проверить состояние промиса. Также, некоторые функции, объединяющие несколько промисов, просто никогда не резолвятся если один из промисов зафейлился.

Промисы в яваскрипте проектировали инвалиды, и приводить их как хороший пример может только тот, кто с ними сам не работал.
Аноним 05/09/22 Пнд 22:32:34 2456309 317
>>2455833

> и ты будешь созерцать на htop одно ядро на 100% и 23 простаивающих

Ну ты сейчас сам в своей глупости расписался. Ты просто топ на работающем сервере PHP-приложений никогда не видел, а я видела и знаю как он выглядит.
Аноним 05/09/22 Пнд 23:14:45 2456332 318
>>2456259
Дурачок, ты зачем-то пытаешься подменить понятия, что если "го или джава не подходят для СРВ, но это не делает их плохими" то тогда "то, что php ограниченный не делает его хуже, чем го/java/шарпы/any".
Так вот, не путай.
Делает.

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

Достаточно подробную аргументацию я написал выше, фундаментальные ограничения самого языка. И никакие swoole и прочие фальконы это не исправят, в лучшем случае сделают из php некий эзотерический недо-си, без тулчейна, поддержки прочей экосистемы и с кучей подводных комней. По мне, так лучше уж тогда си или там раст/хаскель взять и не ебать труп.
Аноним 06/09/22 Втр 02:44:48 2456440 319
>>2456151
>почти любой код на php по определению, алгоритмически менее эффективен, чем код на (к примеру) java
Да вообще похуй. Кто на скорость языка дрочит в 2022, даун? Ты везде хайлоады уровня ВК видишь?
Аноним 06/09/22 Втр 03:28:10 2456452 320
>>2456332
Что пхп делает хуже? Апи для агуляро или реакто приложухи для малого и среднего тырпрайза, у которого три бабы сраки за компом сидят, прибыль кабана считают? 100500 таких проектов на пыхе пишутся. Или рельсах. Или ноде. Ты студент мечтатель все таки. Голанг в этом случае не подходит по двум причинам, по крайней мере.
1) Отсутствию больших популярных фреймворков, где +/- все из каробки и можно пресечь попытки любителей делать по-своему, мол так не принято во фреймворке, низя. Единый стиль кодирования. Нода от этого как и голанг страдает например. На ноде пишут потому что жс он и в Африке жс. Много жсников на рынке.
2) Голангеры привыкли к командной разработке и микросервисам. А такие среднемелкие проекты начинает обычно один Сычев под присмотром кабаныча. Монолитная архитектура х100 к скорости разработки на начальном этапе. + не нужна куча людей, чтобы каждый отдельно свой микросервис пилил.
Есть спрос на такое на рынке - есть предложение в виде пыхоплеяды.
Аноним 06/09/22 Втр 05:21:05 2456472 321
>>2456309
>Ты просто топ на работающем сервере PHP-приложений никогда не видел
Проиграл вполголоса

У пхп на проде в плане загрузки проца две проблемы:
- когда загружено одно ядро на соточку, а остальные простаивают. это происходит например когда у тебя одна разовая задача - эксельку гигабайтную посчитать например - и ты не можешь её распараллелить чтобы вместо пяти минут она выполнялась 20 секунд.
- когда под соточку загружены все ядра. к сожалению это не вымысел, а реальность, потому что как тут заметили много раз, у пыха ненулевая стоимость абстракций, и если голый пых ещё относительно быстр, то мэйнстрим-фреймворки ощутимо тормозят. кабан-софт обычно пилится в одну сторону- добавления фичей, мало кого ебёт, что с каждым новым эндпоинтом, транзакцией, абстракцией, это неповоротливое говно становится всё неповоротливее, всем не до этого, ведь последствия настанут не скоро, может уже когда чел из компании уволится. и вот наступает момент когда htop упирается в соточку по всем ядрам. это уже совсем плохо, потому что вместо решения бизнес-задач тебе придётся заниматься профилированием и оптимизацией или просто покупкой нового железа. тут-то ты и понимаешь, что пиши ты на эликсире или го - у тебя проц был бы сейчас заюзан процентов на 15, но время упущено.
Аноним 06/09/22 Втр 05:32:44 2456474 322
>>2456308
>исключения, и в которых они по умолчанию просто проглатываются
они не проглатываются, а возвращаются в статусе rejected, ты можешь обработать их как тебе нравится

>Промисы должны по умолчанию выкидывать наружу необработанные исключения
Выброс исключения - это прыжок исполняющей машины по стеку. То есть прерывание программы. Отвратительный и ублюдский способ работы с ошибками. Учитывая, что промисы могут обрабатываться параллельно, асинхронно и пачками, такой способ работы с ошибками как исключение не применим в принципе. Применим только один вариант - Result<Res, Err>, который промисы и реализуют, только у них это называется onFulfilled, onRejected

>функция обработки исключения должна принимать класс для фильтрации
не понял этой мантры

>нельзя проверить состояние промиса
не понял зачем и откуда тебе его нужно проверять

>некоторые функции, объединяющие несколько промисов, просто никогда не резолвятся если один из промисов зафейлился
Чувак, блядь, что ты несёшь такое. Может ты просто не умеешь с ними работать? Может ты просто не понимаешь идеи промисов? Промисы нужно объединять в цепочки a.b.c, вызываешь а, вызов доходит до c, и если он фейлится фейлится - промис b не исполняется, а пропускает ошибку до а. и a не исполняется тоже, и возвращает ошибку тебе.
Аноним 06/09/22 Втр 09:00:37 2456516 323
Soerархитектура.png 197Кб, 971x780
971x780
Аноним 06/09/22 Втр 10:56:24 2456615 324
>>2455690

Из книг - "чистая архитектура" от хуйла. Оч хорошая книга, в ней есть паттерны.

А из документации
https://confluence.innercorp.net/pages/viewpage.action?pageId=12817566

Ниже аноны пишут шо наследование не нужно. Ну иногда полезно, но вообще в целом понимаю их
Аноним 06/09/22 Втр 11:06:25 2456619 325
>>2456472
Ещё забыл ситуации, когда у тебя 10/10 воркеров ждут обработки каких-нибудь сложных вещей, базы, внешнего апи и тп. И поэтому все остальные запросы в это апи (или данные в очереди) тупо стоят и ждут, пока хоть один из воркеров освободится.
Абсолютная классика, первое, что надо делать на php, если всё же пытаешься построить из него что-то серьезное, это разбить всё на максимальное количество очередей, чтобы когда одна очередь заберет всех воркеров, остались другие. И обязательно с запасом.

Когда в том же го можно очень долго обходиться тем, что у тебя будет одна очередь tasks и один воркер на одном процессоре и ок будет.
Аноним 06/09/22 Втр 11:17:03 2456626 326
>>2456440
>>2456452

> Да вообще похуй. Кто на скорость языка дрочит в 2022, даун? Ты везде хайлоады уровня ВК видишь?
Это во-первых вопрос того, хочешь ты делать вещи хорошо или плохо. Если ты можешь написать более эффективный софт, стоит это сделать, ты же профессионал. И наоборот, если твой код работает дольше, чем реально необходимо, то даже если твой работодатель/заказчик не против, то это всё равно непрофессионализм.

Во-вторых, перечитай мои посты, Java может делать всё то же самое, что и php, только лучше. Вот просто каждая задача, к которой ты захочешь припахать php, будет решена джавой быстрее и качественнее. Смысл юзать этот ваш php ровно один - потому что вы ничего кроме него не знаете ;)

> Есть спрос на такое на рынке - есть предложение в виде пыхоплеяды.
Он есть не потому, что php такой заебись, а потому что есть много дешевых разработчиков. Бизнесу до какого-то предела вообще плевать, на чём будет написан код.
Легаси порождает новых разработчиков -> новые разработчики привлекают новый бизнес -> новый изнес порождает новое легаси.
И так до бесконечности.
Только это вообще ни разу не говорит об эффективности языка, на самом деле, потому что есть куча контор, особенно мелких, для которых важнее всего цена, а не качество и соответственно они выберут самое дешевое предложение на рынке.

> Голанг в этом случае не подходит по двум причинам, по крайней мере.
Хз зачем ты мне тут начал пояснять, почему голанг не подходит для проектов бабы сраки, я с этим и не спорил и голанг как убийцу php тут не заявлял. Хотя очевидно определенную нишу более серьезных и нагруженных проектов гошечка у php уже отвоеала.
Аноним 06/09/22 Втр 12:17:51 2456672 327
Аноним 06/09/22 Втр 15:19:35 2456882 328
>>2455674
Вот этот прав, двачую неимоверно
Аноним 07/09/22 Срд 00:54:58 2457356 329
Сделал тестовое на джуна обычная круд залупа без фреймворка) пригласили на собес. Я уточнил, сказали что будет технический директор.
Какие вопросы стоит ожидать от них??
Я читал когда то давно(6 месяцев назад) там вопросы касательно ЧТО ТАКОЕ ГЕТ И ПОСТ И ИХ РАЗЛИЧИЕ.
Но на мой взгляд это какая то хуйня, и мне пиздят и все будет сложнее.
Есть тут сеньеры помидоры, какие вопросы вы задаёте джунам на собесах?
Аноним 07/09/22 Срд 01:12:26 2457372 330
>>2457356
Сколько дается времени на тестовое?
Аноним 07/09/22 Срд 03:05:50 2457399 331
>>2457356

Джунов из-за отсутствия опыта можно только гонять по теории. Перечитывай официальный мануал PHP, SQL (что такое NULL, троичная логика, внешние ключи, отношения, транзакции), протокол HTTP, основы linux. По HTML/CSS редко бывают вопросы, но можешь их тоже подучить.

Также, могут задать вопрос в стиле "а как ты спроектируешь такую штуку/а что ты сделаешь если".
Аноним 07/09/22 Срд 07:50:44 2457449 332
>>2456440
>Ты везде хайлоады уровня ВК видишь?
Попробуй распарсить большой EXEL и посмотри сколько это отожрёт памяти, если вообще процесс сможет завершиться.
30К строк отжирало у меня 400МБ если что. А теперь попробуй представить, что одновременно 10 человек попытаются загрузить EXEL'ки такого объёма, вывезет ли это сервак на php?
Сколько минут потратит сервер на это через генераторы?

>Кто на скорость языка дрочит в 2022, даун?
Тот кто не дрочит тот реальный даун.
Аноним 07/09/22 Срд 09:05:12 2457465 333
>>2457449
Причём тут PHP? И парсил, и создавал. Для этого микросервис надо делать на голой пыхе. И раскидываешь в очередь.
Когда ты с того же амазона фиды по генерации файлов отправляешь, то ты в очереди сидишь ЖДЁШЬ ЦЕЛЫЙ ЧАС ЧТОБ АМАЗОН РАСПАРСИЛ БЛЯТЬ.
Какая хуй разница на чём ты сделаешь, хоть на ассемблере, у тебя оперативка улетил в сраку, всё ж зависит от нагрузок.
Аноним 07/09/22 Срд 10:50:01 2457514 334
>>2456440
>Да вообще похуй. Кто на скорость языка дрочит в 2022, даун? Ты везде хайлоады уровня ВК видишь?

Пукс кекс, походу кор тима пыхи очень дрочит, раз джит делают ебаный
Аноним 07/09/22 Срд 10:57:48 2457522 335
>>2457465
Тебе выше уже написали, какой бы микросервис ты не писал, на чистом php или на грязном, он все равно будет менее эффективен, чем микросервис на го, к примеру.
При этом бонусов от такого выбора языка у тебя не будет, вообще.
Ну кроме того, что лично ты ничего другого не знаешь судя по всему и соответственно у тебя то выбора нет :)

> Кто на скорость языка дрочит в 2022, даун
Все, кто хотят, чтобы их код не тормозил / не жрал лишнего. Короче, все нормальные люди.
Аноним 07/09/22 Срд 11:03:15 2457525 336
>>2457522

У пыхи есть фича то что на пыхе ты всегда пишешь однопоточный код, и он параллелится нгинксом неплохо. Если у нас нужно работать с дохуей не очень сложных запросов, пыха ж тащит
Аноним 07/09/22 Срд 11:13:11 2457535 337
Сколько можно кормить толстого? Что за срач на ровном месте?
Аноним 07/09/22 Срд 11:15:11 2457537 338
>>2457465
>Для этого микросервис надо делать на голой пыхе.
Уровень дегродства оценили? Отдельный микросервис для парсинга эксель-файла.
Скажи пожалуйста, а если для парсинга тебе потребуются ну скажем энтити из бизнес-области или данные из DAO (не из базы напрямую, а из уровня хранения) - как будешь выкручиваться? Инициализировать рядом ещё одно приложение, как это делают симфонисты? Или говнякать промежуточные результаты парсинга в промежуточную табличку в базе?
Почему-то в нормальных языках никто не делает отдельное приложение для парсинга сраного экселя. Вместо этого запускают горутину/гринтред/файбер, выполняющийся в этом же процессе, юзающий его же память, и не инициализирующий километровый стейт приложения заново.
Аноним 07/09/22 Срд 11:20:42 2457543 339
>>2457449
>30К строк отжирало у меня 400МБ если что
phpexcel-ем что ли парсил? ну оно любит память, да.
Если это клиентский файл - то придётся с этим мириться.
Но если если ты сам можешь выбирать формат файла - бери ndjson вместо json или если используешь xml - бери sax parsing, там потребляемая память - константа.
Аноним 07/09/22 Срд 11:24:06 2457549 340
>>2457525
>на пыхе ты всегда пишешь однопоточный код, и он параллелится нгинксом неплохо

на питоне ты всегда пишешь однопоточный код, и он параллелится нгинксом неплохо

на го ты всегда пишешь однопоточный код, и он параллелится нгинксом неплохо

на джаве ты всегда пишешь однопоточный код, и он параллелится нгинксом неплохо

на расте ты всегда пишешь однопоточный код, и он параллелится гнинксом неплохо

на эликсире ты всегда пишешь однопоточный код, и он параллелится нгинксом неплохо


почему я никогда не слышал такой ахинеи про все эти и другие языки, а про пых слышу постоянно?
Аноним 07/09/22 Срд 11:48:16 2457567 341
>>2457525
> У пыхи есть фича то что на пыхе ты всегда пишешь однопоточный код, и он параллелится нгинксом неплохо
Это уже явно троллинг, но поскольку в треде сидит много новичков, им будет полезно прочитать ответ:
Нет, не так. nginx ничего не параллелит, он всё так же запускает по php-шному процессу на запрос (а скорее всего даже не он, а php-fpm). 100 запросов = 100 процессов, с этим и связаны все предъявы, это ужасно, тотально и значимо неэффективно. У тебя 100 запросов в лагающее внешнее апи под капотом могут просто заблокировать весь твой сервер, целиком.

>>2457549
Потому что им больше нечего ответить, потому что у них больше нет инструментов и больше они ничего не знают. Я же говорю, это живой пример эффекта Даннинга-Крюгера.
Вообще конечно жалкое зрелище, сидят в своём теплом, но немного пахучем мирке, работают за еду, пишут тормозное говно, но настолько привыкли ко всему, что считают это нормой.

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

Хотя, с другой стороны, может это и нормально? Ну как фортнайт ассимилировал в себя школьников, чтобы они не мешали нормальным людям в других играх, так и PHP ассимилирует в себя даунов/строителей/таксистов/вкатунов, чтобы нормальным людям не мешали?
Аноним 07/09/22 Срд 12:01:12 2457580 342
>>2457537
>Уровень дегродства оценили?
Оценил уровень ануса твоей мамаши, когда такого дурачка на свет выплюнула.

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

>горутину/гринтред/файбер
Причём тут это? В PHP тоже есть всё это, и побыстрее работает даже, чем в твоём "нормальном языке". Не понял к чему вообще высрал)
Аноним 07/09/22 Срд 12:09:27 2457585 343
>>2457580
> Делают микросервисы все. Если у тебя такая нагрузка, миллион запросов на парсинг, чего б не сделать.
Ты явно даже рядом не стоял с микросервисами и не знаешь, что это такое

>>2457580
> Причём тут это? В PHP тоже есть всё это, и побыстрее работает даже, чем в твоём "нормальном языке".
O_O что за идиотизм. В php нет ни горутин, ни гринтредов, ни нормальных файберов и уж тем более оно не работает быстрее, чем в прочих языках по причинам, описанным выше. В двух словах, php и быстрота в одном предложении стоять не могут, без оговорок типа "возьмём swoole и напишем на псевдосишечке", но тогда непонятно, нахера вам php, пишите на си сразу, даже и удобнее будет.
Аноним 07/09/22 Срд 12:48:33 2457637 344
>>2457399
Спасибо, почитаю
>>2457372
я полтора часа потратил где то.
Дали апи с них нужно было спарсить данные и добавить в БД. shema.sql соответственно должна присутсвовать в проекте
(таблицы были связанные),
далее нужно было вывести одну таблицу, и реализовать систему поиска по ней. (я сделал поиск с like и с match)
результаты поиска вывел в td шки.
Аноним 07/09/22 Срд 12:56:30 2457640 345
>>2457637
>>2457372
добавлю еще что первое мое тестовое в другую компанию выглядело как контрольная работа часа на 4-5. Или просто проект, в итоге мне сказали сорян мы вам перезвоним.
Почему я думаю что это был проект? Мне строго запретили пользоваться фреймворками и библиотеками(как будто те люди не умеют пользоваться композером)
Суть заключалась в том, что бы использовать в виде БД .txt файл и записывать в него данные в формате
продукт::цена::производитель
Юзер заполняет данные на сайте, после чего они добавляются в txt. файл. Так же они с этого txt файла парсятся и выводятся на сайт. Соответственно можно удалять/редактировать эти записи.

Но я все равно использовал композер что бы был автолоад. Ибо нехуй.
Хз что им не понравилось, на мой взгляд модель обращения к БД(в виде .txt файла) я написал пиздата. как будто бы в реальном фреймворке.
Аноним 07/09/22 Срд 13:20:14 2457651 346
>>2457640
> Мне строго запретили пользоваться фреймворками и библиотеками
Это чтобы увидеть, что ты можешь сделать самостоятельно и насколько знаешь стандартную библиотеку. Норм тема для джуновского задания, на самом деле. В своё время я тоже такое решал, только я упоролся и сначала написал свой микрофреймворк слов тогда таких ещё не было правда, а уже на нём сделал задание.

> в итоге мне сказали сорян мы вам перезвоним.
Засранцы, я всегда джунам прям списком пишу, что не понравилось и как следует такое решать правильно, даже если отказываю. Особенно если отказываю.

> Хз что им не понравилось
Закинь куда-нибудь код, я откомментирую.
Аноним 07/09/22 Срд 13:25:20 2457657 347
>>2456615
Что за дока такая? Не открывается, 403
Аноним 07/09/22 Срд 13:26:52 2457659 348
>>2457465
>Для этого микросервис надо делать на голой пыхе
Или предоставить сие действо более компетентному ЯП?

>Какая хуй разница на чём ты сделаешь, хоть на ассемблере
Ебаная пэхапэ макака... У меня всё. Даже продолжать с тобою дискурс не хочется. Тебе выше писали в чём преимущество более низкоуровневых ЯП, но ты походу читаешь сквозь пальцы, ну или ты просто жирнишь.

>>2457543
Пасибо, солнышко.

>>2457640
>в итоге мне сказали сорян мы вам перезвоним
Ждун сделал таску за бесплатно.
Пишешь свой public репозиторий, предлагают сделать тестовое - показываешь его, всё равно предлагают - шлёшь нахуй. Ибо на 100 тестовых 80 существуют только для того, чтобы им писали код бесплатно. На hh некоторые хрюши годами сидят предлагают тестовое =)
Аноним 07/09/22 Срд 13:42:01 2457679 349
Аноним 07/09/22 Срд 13:42:35 2457680 350
>>2457585
>Ты явно даже рядом не стоял с микросервисами и не знаешь, что это такое
Нет ты)

>В двух словах, php и быстрота в одном предложении стоять не могут, без оговорок типа "возьмём swoole и напишем на псевдосишечке"
А что с ебалом? Пайтон тоже как обёртка для ML, но чож твой "нормальный язык" даже близко с пайтоном конкурировать не может? Не вижу никаких проблем с этим.
Я беру Swoole или Hyperf(на его основе) и как PHP-бог пишу на горутинах, получая с помощью PHP скорость, о которой ты можешь только мечтать, мальчик. И нахера тогда твой "нормальный язык" людям, если есть PHP?

Ты не понимаешь почему PHP божественный, мы БЫСТРО и ЭФФЕКТИВНО пишем приложение(а бизнесу это и надо), когда нам не хватает его сил, мы берём и делим на микросервисы, и подключим там же Swoole и вытрем тебе хуем по розовеньким губам, всё просто :)
Аноним 07/09/22 Срд 13:44:43 2457682 351
>>2457659

По-моему не так сложно понять задание с потолка взято или это что-то для бизнеса нужно. У меня в тестовом было appointment app. Не думаю что им был нужен аппойтмент ап

другой анон
Аноним 07/09/22 Срд 13:45:51 2457683 352
>>2457680
Бля не кормите троля, уже скоро из треда вытечет
Аноним 07/09/22 Срд 13:50:30 2457688 353
>>2457659
Ебаная эликсир-макака, иди проси доширак у метро, пока PHP-господам будут перепадать большинство бизнес-проектов :)
Госпаде, как же хорошо быть PHP-боярином. Денег море, конкуренции мало, проектов горы, язык идеальный.
Аноним 07/09/22 Срд 14:02:39 2457696 354
>>2457682
>По-моему не так сложно понять задание с потолка взято или это что-то для бизнеса нужно
Я к тому, что дохуя наёбсиков которые используют ждунов в качестве бесплатной рабсилы. Пиши код бесплатно только для себя, остальных шлите нахуй.
Круд с фабрикой напиши и не парься.

>>2457688
>пока PHP-господам будут перепадать большинство бизнес-проектов
>На вордпрессе за 50к
Аноним 07/09/22 Срд 14:21:33 2457704 355
>>2457651
Спасибо за ревью, стремно конечно свое говно сюда заливать после того, как я его расхвалил.
Но один хуй благодаря критике может я исправлюсь

https:// disk.yandex.ru/d/7PrhTWiPUslriQ
Аноним 07/09/22 Срд 15:08:15 2457733 356
>>2457580
> > горутину/гринтред/файбер
> В PHP тоже есть всё это
Ты в курсе, что борда 18+? В 18 уже можно загуглить чтобы не писать ахинею.
Аноним 07/09/22 Срд 15:13:42 2457740 357
>>2457659
>Ибо на 100 тестовых 80 существуют только для того, чтобы им писали код бесплатно
Чел, никому не нужен бесплатный код от джунов. На его интеграцию больше потратишь.
Я никогда не стремаюсь делать тестовые.
Аноним 07/09/22 Срд 15:18:34 2457744 358
>>2457680
>Swoole или Hyperf(на его основе) и как PHP-бог пишу на горутинах
Тебе ж объясняли, что свуль - хорошо пропатченный форк, отличающийся от классикпыха как единорог от осла. И у него ряд недостатков, про которые тоже написано выше в треде.

ЧСХ отлично видно как действует пхп-яма. Чел уже может в другие языки, в нормальную гошу или дай бог скалку, уже и горутины умеет, и что-то асинхронное корябает, и может где-то функциональщину способен раздуплить, но продолжает жрать говно ложкой. Продолжает вариться в пхп-"культуре".
Аноним 07/09/22 Срд 15:22:02 2457749 359
>>2457688
>Ебаная эликсир-макака
Чисто для справки: средний уровень эликсирщика - senior, потолок пхпшника - middle (любой пхп-сеньор вне зависимости от количества известных ему пхп-инструментов, лычек в его компании и уровня зп - на самом деле миддл, и выше ему не подняться).
Аноним 07/09/22 Срд 15:24:31 2457753 360
>>2457696
>На вордпрессе за 50к
В том-то и дело, что нет. Хорошим симфонистам/ларавелистам платят по 300к, отчего они раздуваются как павлины и считают что работают в идеальном стеке. Я считаю, это просто отлично. Пусть там и остаются.
Аноним 07/09/22 Срд 16:18:26 2457779 361
>>2457749
> любой пхп-сеньор вне зависимости от количества известных ему пхп-инструментов, лычек в его компании и уровня зп - на самом деле миддл, и выше ему не подняться
Абсолютно, рекомендую всем мотать себе это на ус.

Кстати, чсх, из всех местных тредов PHPшный - единственный, у кого прям в тайтле написано, что он для новичков. Вот настолько пыха "успешный язык для сеньоров". Что кстати нихуя не шутка, по моему опыту все более или менее толковые люди, начав с php потом перекатываются куда-то, чаще всего в джаву/го.
Аноним 07/09/22 Срд 16:23:40 2457788 362
>>2457740
>Я никогда не стремаюсь делать тестовые
Никогда не делаю тестовые, кидаю открытый репозиторий и купаюсь в офферах, лул. Ты сидишь тратишь время на тестовые когда я один раз заморочился и чилю. Уверен, что разницы никакой.
Аноним 07/09/22 Срд 16:25:25 2457790 363
>>2457788
Первое же тестовое можно выложить в открытом виде и потом всем кидать, разницы никакой.
Аноним 07/09/22 Срд 19:23:11 2457891 364
nrMcXORb04Y.jpg 14Кб, 200x200
200x200
>>2457779
Вы покакали? А теперь можете уебать отсюда
Аноним 07/09/22 Срд 20:01:23 2457902 365
>>2457779

> единственный, у кого прям в тайтле написано, что он для новичков

Это специально, чтобы новички не боялись, что их там засмеют, а заходили и общались. Оптимизация конверсии.

>>2457749

Ты пишешь чушь, так как есть вакансии senior php dev и есть люди с такой должностью. И, наоборот, если у тебя нет опыта, ты никак не можешь стать сеньором, просто изучив твой никому не нужный Эликсир.

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

Серьёзно, подумайте, Эликсир это настолько продвинутый, популярный и востребованный язык, что на него аж 41 вакансия по всей России. Чтобы только начать изучать его, вам надо выучить никому не нужный Эрланг и Руби. А чтобы найти работу, еще и другие языки, указанные в вакансиях.

Ну если вам нравится идея соревноваться за эти 41 вакансию, и изучать невостребованные экзотические языки, то вперед и валите из треда.
Аноним 07/09/22 Срд 20:07:37 2457905 366
>>2457744

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

>>2457696

> используют ждунов в качестве бесплатной рабсилы

Я не очень представляю, как это. Если у тебя есть большой проект, то джун не может писать для него код, не ознакомившись с ним. Бесплатно можно уговорить разве что написать какую-то простую утилиту.
Аноним 07/09/22 Срд 20:17:40 2457908 367
>>2457659

> Ибо на 100 тестовых 80 существуют только для того, чтобы им писали код бесплатно.

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

>>2457585

Твои горутины не нужны для бизнес-логики, а в редких случаях, когда они нужны, пишется отдельный небольшой сервис на Го. Ты тут носишься со своими горутинами как с писаной торбой.
Аноним 07/09/22 Срд 20:19:33 2457910 368
>>2457580

Ой, какой ты глупый. Микросервисы придумали не для решения проблем с нагрузкой. Ты где-то услышал это слово и теперь тут его везде вставляешь.
Аноним 07/09/22 Срд 20:21:03 2457911 369
>>2457567

> Нет, не так. nginx ничего не параллелит, он всё так же запускает по php-шному процессу на запрос (а скорее всего даже не он, а php-fpm). 100 запросов = 100 процессов,

Ты описал CGI из 90-х. Иди читай документацию по FastCGI и не пользуйся устаревшими источниками, чтобы не позориться, неуч.
Аноним 07/09/22 Срд 20:24:25 2457913 370
>>2457537

Ну ты и чушь пишешь. Что поменяется от того, что вместо PHP-кода, парсящего эксель 5 минут, твой гринтред на яве будет 5 минут парсить эксель? Вот дурачок. Для таких целей используют очередь задач, которая прекрасно работает в PHP. Никто не обрабатывает HTTP-запросы по 5 минут.
Аноним 07/09/22 Срд 20:26:29 2457916 371
>>2457522

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

А микросервис на Си будет еще более эффективен, чем на Го. Но почему-то сайты и сервисы не пишут на Си, если ты такой умный, как пытаешься показать, подумай почему. И может быть ты поймешь, почему их пишут на PHP, хотя он не такой быстрый, как Си.

Бизнес в отличие от тебя не ориентируется на популярность языка среди анонимных экспертов с имиджборды.
Аноним 07/09/22 Срд 20:29:55 2457917 372
>>2457449

> 400МБ

Если ты такой умный, то подумай, что дешевле: докупить 400 Мб памяти на сервере или заплатить сеньору, чтобы он 4 недели писал сервис для парсинга экселя на Си, потребляющий 40 Мб вместо 400.

Отдельно посмеялся с сервера, который "умрет" от 4 Гб потребляемой памяти. Ты когда-нибудь работал с чем-нибудь серьезнее хостинга за $5?
Аноним 07/09/22 Срд 20:34:56 2457921 373
>>2456474

Ох, какой же ты тугой. Вот смотри, синхронный код без обработки исключений:

doSomething();

если тут будет какая-то ошибка, то исключение вылетает и корректно завершает программу. Тебе не надо специально писать код для отлова и обработки исключения, все работает как надо из коробки.

А теперь асинхронный код на промисах:

var promise = doSomethingAsync();
promise.then(function () { ... } );

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

Поэтому я и пишу что промисы проектировали инвалиды с фобией исключений.
Аноним 07/09/22 Срд 20:35:53 2457922 374
>>2456474

> Может ты просто не умеешь с ними работать? Может ты просто не понимаешь идеи промисов? Промисы нужно объединять в цепочки a.b.c

Глупый, я же написал, функции, объединяющие несколько промисов. Это функции вроде Promise.all().
Аноним 07/09/22 Срд 20:43:02 2457926 375
>>2456474

> Учитывая, что промисы могут обрабатываться параллельно, асинхронно и пачками, такой способ работы с ошибками как исключение не применим в принципе.

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

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

> Применим только один вариант - Result<Res, Err>, который промисы и реализуют, только у них это называется onFulfilled, onRejected

Это чушь. Почти каждая функция может вернуть ошибку (особенно в динамических языках вроде JS) и получается у тебя после каждого вызова должен стоять if с проверкой на ошибку. То есть, код будет состоять на 50% из проверок.

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

То, что ты описал - явный возврат ошибок - хорошо работает там, где ты ожидаешь какую-то ошибку и хочешь ее обработать. А неожиданные ошибки должны завершать программу или ловиться где-то выше. Исключения как раз позволяют это делать.
Аноним 07/09/22 Срд 21:15:44 2457949 376
>>2457921
Ты из 2012 капчуешь? Промисы сейчас пишутся с async/await и работают ровно так же, как и синхронный код в плане обработки ошибок, многоножка из then().catch() для шизофреников разве что.
Аноним 07/09/22 Срд 21:32:26 2457957 377
>>2457949

Дурачок. Сейчас точно так же используются функции объединения промисов вроде Promise.all, часть из которых спокойно теряет ошибки.

Видно, что ты про промисы только читал, а ничего на них не писал, по крайней мере качественно. Я про эту проблему промисов знаю с давних времен, когда пытался написать демон, который будет запускать процессы, прибивать их по таймауту и тд и это все было очень тяжело написать правильно.
Аноним 07/09/22 Срд 22:41:47 2458000 378
>>2455477
>в чем тут смысл
если это пет-проект то смысла и нет
о чем я и писал
>>2453231
>если бы это был +-реальный продукт то наверное
>ревью надо бы разделить на 3 сущности

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

>профит
сделать нормально
у тебя по смыслу 2 разные сущности (это вопрос больше к бизнесу)
у них могут быть:
- разные условия валидации
- разная бизнес логика
- разные доп поля
- разные группы сериалазации

если оставить одну сущность то надо будет морочится

по имени класса ты однозначно понимаешь что перед тобой
тебе не надо писать доп методы if и тд

потом у тебя могут появится ещё сущности для ревью - электронные книги, аудиокниги, натольные игры
и ты будешь раздувать одну сущность?

опять же это вопрос к бизнесу
можно сделать как угодно
если для бизнеса пофигу это будет одна сущность или несколько я бы разбил на несколько
лично мне это бы упростило жизнь
и в будущем было бы проще разруливать вышеописанные кейсы
Аноним 07/09/22 Срд 22:54:31 2458010 379
>>2457788
>кидаю открытый репозиторий и купаюсь в офферах, лул. Ты сидишь тратишь время на тестовые
Я уже понял, что ты один умный, и никто кроме тебя не догадался завести гитхаб-профиль для этих целей.
Аноним 07/09/22 Срд 22:56:25 2458013 380
>>2457902
>есть вакансии senior php dev и есть люди с такой должностью
Верно, и эти люди соответствуют мидлам по усреднённым другим языкам.
Аноним 07/09/22 Срд 22:57:45 2458017 381
laugh-spanish.mp4 373Кб, 320x240, 00:00:10
320x240
>>2457902
>Серьёзно, подумайте, Эликсир это настолько продвинутый, популярный и востребованный язык, что на него аж 41 вакансия по всей России.
Пхпшница рассуждает об эликсире.
Аноним 07/09/22 Срд 23:02:23 2458021 382
>>2457905
>для тебя горутины и асинхронный код это вершина мастерства программирования?
Не только, там ещё много чего, но это определённо показатель зрелости.
А ты что знаешь об асинхронном коде? Например, можешь ли назвать виды асинхронных рантаймов? Их всего три. Подсказка: go, erlang, python - эти три языка умеют в асинхронное исполнение, и у всех трёх разный принцип асинхронной работы. Можешь назвать какие? И какой у php?

>То есть школьник, чуть-чуть умеющий писать на JS лучше 10-летнего сеньора?
Зачем ты выдумываешь чухню и несёшь её сюда?
Аноним 07/09/22 Срд 23:05:54 2458025 383
>>2456626
>. Смысл юзать этот ваш php ровно один - потому что вы ничего кроме него не знаете ;)
А ещё смысл в том что можно разместить говносайт на хостинге
Аноним 07/09/22 Срд 23:14:49 2458031 384
>>2457902
Сука лол, здесь прекрасно всё))
>Я кстати не знала ничего про эликсир, а сейчас погуглила, это какая-то малоизвестная хрень
Но эта фраза особенная
Аноним 07/09/22 Срд 23:15:32 2458032 385
>>2457913
>вместо PHP-кода, парсящего эксель 5 минут, твой гринтред на яве будет 5 секунд парсить эксель
поправил тебя. ведь ява работает не с типами variant а с оптимизированным кодом, имеет отличный jit, умеет параллелить задачу по ядрам cpu

>очередь задач, которая прекрасно работает в PHP
вот только в php нет очередей, там их прикручивают и приклеивают. это кстати очередной харчок в лицо пхпёбам - пхп сам не умеет дохуя чего, и задача его в проектах - транспортная, принять данные из точки А и передать в точку Б. вот в джаве ты можешь сделать очередь прям на джаве, в го можешь сделать очередь на го, в расте - на расте, в питоне - на питоне, в руби - на руби. то есть внутри приложения. без оверхеда. и спаунить консюмеры по мере поступления сообщений, динамически если необходимо. а в пхп ты вынужден держать запущенным N консюмеров, при этом симфони с amqp-бандлом хавает 200-250 мегабайт на процесс, а процесс однопоточный, где ты не можешь раскидать тяжёлую задачу по ядрам.
а так да, очередь задач отлично работает в пхп
Аноним 07/09/22 Срд 23:29:04 2458049 386
>>2457917
>сеньору, чтобы он 4 недели писал сервис для парсинга экселя на Си
я ж говорю, пхп-синьоры - на самом деле мидлы.
смотря что там за эксель такой, но в целом время на написание сопоставимое. если ты напишешь за день на пхп, то и синьор напишет ту же логику за день на си или го

>потребляющий 40 Мб вместо 400
да там пара мегабайт от силы будет, какие 40
Аноним 07/09/22 Срд 23:33:41 2458056 387
>>2456440
>Ты везде хайлоады уровня ВК видишь?
Что аж пришлось писать компилятор из php в c++ и писать на урезанной пыхе для этого
Аноним 07/09/22 Срд 23:45:45 2458065 388
>>2457921
>исключение вылетает и некорректно завершает программу
поправил тебя

>Тебе надо вручную к каждому промису не забыть приписать обработчик исключений, чтобы эту ошибку с неправильным именем функции не потерять.
Ебать, проблема. Я даже не знаю, что посоветовать.

>проектировали инвалиды с фобией исключений
Исключения не подходят когда исполняется пул промисов
var promises = [promise1, promise2, promise3] // или генератор
var results = execute_pool(promises)
падать тут нельзя.
Аноним 08/09/22 Чтв 00:15:20 2458086 389
image.png 512Кб, 444x500
444x500
>>2457926
>Вот ты в коде с промисами неправильно написал имя функции и что по твоему должен делать код?
Это какая-то быдлопроблема из двухтысячных, серьёзно. Я уже не помню, когда писал имя функции неправильно. Практически для всех языков есть language server-ы слинкованные с ide. А если у тебя имя функции не линкуется статическим анализом, например ты хардкодишь его в строке - скорее всего ты делаешь что-то неправильно.

>с промисами код не завершится, а ошибка будет проигнорирована если программист не угадает такую возможность заранее и не пропишет обработчик для этого

В смысле "если программист не угадает"? Он у тебя что, шарады разгадывает? В спортлото цифры открывает? Что за фарс?

>Ну подумай сам, какая вероятность, что он это предугадает
Пусть ловит generic error. catch нужно указывать всегда

>и получается у тебя после каждого вызова должен стоять if с проверкой на ошибку. То есть, код будет состоять на 50% из проверок
Ну да, блядь. А как ты хотел? Говнокод на авось хуярить? Или ты считаешь что свалиться по эксепшну - это достойное поведение? Это уёбищная мерзость, так делают только наркоманы и моральные нищеёбы.

> onRejected проектировали инвалиды, так как он ловит вообще все ошибки и нельзя указать, что меня например интересует только ошибка таймаута соединения с сервером
смотря что у тебя за язык. в пыхе проверяешь if ($exception is a ExceptionClass) . в жабаскрипте if e instanceof Error.

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

>ловиться где-то выше
ну так и лови исключение, возвращённое промисом. только вместо try-catch используй if result instanceof Error
Аноним 08/09/22 Чтв 00:29:18 2458089 390
>>2457957
>когда пытался написать демон, который будет запускать процессы, прибивать их по таймауту и тд
Это называется "супервизор"
не могу сказать подходят или не подходят промисы для твоей задачи без подробностей. возможно здесь лучше подошла бы кастомная очередь задач - ты в цикле лупаешь состояния пидов
- это мониторинг запущенных, в конце итерации при необходимости делаешь пользовательские операции над очередью - добавляешь задания на запуск новых процессов, остановку запущенных в том числе по таймауту, потом проверяешь нет ли признака остановки лупа, если есть - то послыаешь всем процессам SIGTERM, дожидаешься их остановки, если не завершаются за 10 секунд, - SIGKILL, потом сам завершаешься.

сложно или просто - зависит от опыта. я об этом и пишу - кругозор пхпшника уже мышиной жопы, для него сложно всё что за пределами rest api и html.

промисы подходят для сосания веб-страничек. например у тебя тысяча адресов - ты организуешь в пул промисов, фетчишь, на onFulfilled вешаешь парсинг, на onFulfilled которого вешаешь выявление url картинок, на onFulfilled которого ещё что-нибудь.
Аноним 08/09/22 Чтв 03:46:31 2458127 391
>>2458000
Спасибо за пояснения.
Если я верно понял, то базовая модель ревью выступает как абстрактный класс, от которого могут унаследоваться специфические ревью - на электронные книги, аудиокниги, настольные игры и т.д.
Просто я про STI не слышал до этого, во фреймворке, который я использую такой фичи нет
Аноним 08/09/22 Чтв 09:52:36 2458192 392
>>2457749
>пук-среньк
Чисто для справки: средний уровень ПХПшника - senior, потолок эликсирщика - middle (любой эликсир-сеньор вне зависимости от количества известных ему пхп-инструментов, лычек в его компании и уровня зп - на самом деле миддл, и выше ему не подняться).

>>2457902
Да какой эликсир. Кал какой-то ноунеймовский, неведомый никому.
Идиотом надо быть, чтобы какое-то говно, слепленное вчера на коленках учить.

>>2457910
Нет ты дурак(

>>2458032
Уровеньт дегродства оценили? Эликсирщики не умеют ни в кафку, ни в рэббит, их уровень - джуниор-макаки.

>>2458021
Школьник-эликсирщик закукарекал. Ты главное сиди подольше в PHP-треде среди богов, а то где же ещё сидеть эликсирщикам с таким припизднутным ноунейм-языком. Хоть PHP-джуниоры тебя научат правильным вещам :)
Аноним 08/09/22 Чтв 10:43:26 2458209 393
Screenshot from[...].png 36Кб, 852x255
852x255
Screenshot from[...].png 10Кб, 248x87
248x87
Screenshot from[...].png 34Кб, 841x228
841x228
Screenshot from[...].png 31Кб, 846x207
846x207
Какие перспективы у Эликсира - "язык для хипстеров, перспектив никаких"
Именно поэтому эликсирщик-вкатунщик сидит тут и тайно подрачивает на великий PHP.
Аноним 08/09/22 Чтв 11:15:32 2458220 394
Какие же пхпшники убогие, я фигею. У них реально нет никаких аргументов, кроме "ну оно работает и мне платят, значит язык хороший".
То, что для того, чтобы использовать этот божественный язык хотя бы наравне с остальными, его надо обмазать внешними тулзовинами, супкраизорами, серверами,, форками и расширениями и даже с этим оно будет с серьёзными заскоками - ими игнорируется.

Что же, как писали выше, очень хорошо, что для вас есть отдельный загон.
Аноним 08/09/22 Чтв 11:36:20 2458229 395
>>2458220

*супервизорами

Ебаный автокомплит на мобилке, полюбому бывшие phpшники писали.
Аноним 08/09/22 Чтв 12:24:58 2458250 396
>>2458220

То же самое можно сказать и про джаваскрипт, кстати. Node - параша, npm хуйня
Аноним 08/09/22 Чтв 12:32:39 2458255 397
>>2458250
сорта говна, но ноджс получше
- у него нет nodejs.ini
- как следствие - консистентный интерпретатор
- внятная консоль
- есть асинхронность
Аноним 08/09/22 Чтв 13:41:49 2458308 398
>>2458255
>- у него нет nodejs.ini
>- как следствие - консистентный интерпретатор

npm юзал ваще?

У меня на проектах нода прсто фронт подымает а я ее уже ненавижу
Аноним 08/09/22 Чтв 13:51:12 2458316 399
>>2458308
>npm юзал ваще?
и его и yarn
Аноним 08/09/22 Чтв 14:18:57 2458335 400
>>2458250
Js кусок говна как экосистема, абсолютно.
Только вот не смешивай это с нодой, V8 просто божественно написан и работает намного круче, чем движок php к примеру. Там намного более совершенный jit и крайне удачная модель памяти. И при этом это всё вокруг event loop, то есть честного неблокирующего io на уровне языка.
Он настолько хорош, что имхо это и стало причиной, по которой большая часть кода на js это полный треш посыпанный кучей сахара, они банально могут себе позволить очень неэффективный код, потому что V8 жуёт даже такое и не давится. Все тормозящие фронтенды, которые мы встречаем это как правило порождение ну совсем уродского кода и невероятно раздутой экосистемы.

Короч, v8 ну намного мощнее php, как минимум, тебе не требуются nginx, phpfpm и roadrunner/supervisord/any, чтобы сделать из него что-то просто юзабельное.
Аноним 08/09/22 Чтв 14:37:44 2458348 401
>>2458220
>пук-среньк
Какие же эликсирщики убогие, я фигею. У них реально нет никаких аргументов, кроме "ну оно ж быстрое, а пыха медленная".

>>2458335
Знаете как узнать эликсирщика? Он считает себя диванным спецом по всем вопросам, JS/TS не нюхал, но думает что может делать выводы, все фронтедеры хуёвые, а он дартаньян. Конченное в общем, закоплексованное чмо.

>>2458308
а что не так с ней? Ну память жрёт только, да)
Аноним 08/09/22 Чтв 15:12:23 2458382 402
>>2458348
Сегфолты, кучу зависимостей и везде раная версия. Я просто мимо треда листал и меня кекнуло что чел как будто с языка мои мысли, но про нодку. Хотя блять, какой язык вообще любить. Все хуйня
Аноним 08/09/22 Чтв 16:23:13 2458426 403
>>2458348
Ты меня с другим анонсом перепутал(а), я ни разу не писал на эликсире. Но вообще тот эликсирщик был прав, в отличие от тебя.
Что кстати забавно, ни одного технического аргумента я от тебя пока не прочитал, неужели кроме цитаты с пук-среньк ты действительно ничего не можешь сказать? Очень по-программистски, делает честь и тебе, и языку, за который ты топишь.
Аноним 08/09/22 Чтв 17:18:51 2458449 404
IMG202209082117[...].jpg 16Кб, 282x400
282x400
В тему битрикса
Аноним 08/09/22 Чтв 18:56:08 2458518 405
>>2458449
А там без проблем с головой тяжело работать
Аноним 08/09/22 Чтв 21:06:17 2458591 406
>>2458426
>>2452401
Ты перечитай его сообщения, после "пых-программисты с программированием не сталкиваются", "пхп-программисты это максимум мидлы" можно понять что это малолетний троль пришёл насрать в тред.
Пук-среньк - это весь высер этой токсичной вкатуни-эликсирщика, макать в говно его только можно, спорить на серьёзных щах не вижу смысла.
Аноним 09/09/22 Птн 00:08:31 2458707 407
>>2458591
пых-программисты с программированием не сталкиваются

опровергни. только обрати внимание на формулировку. не сталкиваются. именно специфика задач такова, что там одна рутина по накатаной - это
- понять как работает этот кусок уже написанного до тебя кода
- понять почему не работает этот кусок уже написанного до тебя кода
- захуярить rest api
- перекинуть данные из точки а в точку б. из файла в базу. из базы в очередь. из очереди в вебсокет (рачет или компт какие-нибудь, то есть тоже уже готовые)
- прикрутить гвоздями очередь/базу/вебсокет-сервер/почту к пхп-скрипту
- нписать комбинацию из try-catch, if null, const HUI = "HUI" и тому подобных примитивов.

Вот теперь опровергни. Укажи задачу или класс задач по программированию, встающую перед пхпшниками.
Аноним 09/09/22 Птн 01:00:02 2458726 408
>>2458591
пхп-программисты это максимум мидлы

у них отсутствуют пласты знаний, целые области. например асинхронность. многопоточность (лично знаю как человек реализовавший целую систему на пыхе избегал многопоточных решений). сокеты. гомоиконичность. паттерн-матчинг. алгебраические структуры данных. функциональное программирование и чистые функции. think of program like data flow rather than control flow. фуллдуплексные соединения. макросы. работа компиляторов, что такое инлайнинг, что такое уровни оптимизации. что такое стек и откуда берётся его переполнение, что такое куча. что такое суперскалярная архитектура и конвейеры. что такое защищённый режим. как работает гарбадж коллектор. что такое продолжения (continuations). как работают распределённые транзакции. как жить без ООП. что такое хвостовая рекурсия и как её оптимизировать. итд

это обычный уровень знаний для среднего спеца владеющего несколькими языками. но пхпшник какой бы он ни был синьор по шкале своей конторы - в своей практике не столкнётся с большей частью этих вопросов, потому что пхп - не про это, а про перекладывание данных из базы в rest. пхп-написание связано с большим овехедом, а значит времени на ретроспекцию и переосмысление своей работы не остаётся, значит замкнутый круг и беличье колесо. и поэтому пхпшник никогда эти знания не приобретёт. а если приобрёл - значит умеет во что-то другое - и это уже не пхпшник.
Аноним 09/09/22 Птн 02:00:12 2458759 409
>>2458707

> - понять как работает этот кусок уже написанного до тебя кода
> -понять почему не работает этот кусок уже написанного до тебя кода

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

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

Вот так-то. В реальных проектах возможность перейти к функции по клику важнее возможности макросами генерировать код.
Аноним 09/09/22 Птн 02:13:04 2458762 410
>>2458726

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

Ты носишься со своей никому не нужной асинхронностью тут как с писаной торбой. Я же уже писала выше, что бизнес-логику удобнее писать в виде синхронного кода, а не как в JS, где каждая строчка начинается с await.

Stateless модель PHP и поддержка синхронного кода лучше подходят для реализации типичных бизнес-приложений.

PHP-программист легко вкатывается в профессию и со временем при желании осваивает все остальное. Например, есть проблемы с производительностью, он за пару недель изучает Го или Раст и пишет сервис на них. Нужна система рекомендаций, он пишет нейросеть и получает рекомендации. Никаких неудобств. (Эликсир, Эраланг или ОКамл ему никогда не понадобятся, поэтому он не тратит на них время).

В то время как воображаемый тобой программист должен сначала лет 5 учиться, перечитать 30 книг, прежде чем претендовать на одну из 41 вакансий для Эликсира, и у него все равно нет шансов из-за отсутствия опыта. Зато можно прийти в PHP-тред и похвастаться своей элитарностью. Так себе перспектива.
Аноним 09/09/22 Птн 02:15:44 2458763 411
>>2458726

> что такое хвостовая рекурсия и как её оптимизировать. итд

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

В PHP нет такой проблемы, так как у нас есть и циклы, и генераторы.
Аноним 09/09/22 Птн 08:28:16 2458819 412
image.png 5Кб, 521x196
521x196
image.png 9Кб, 625x213
625x213
>>2458763
>где нет нормальных циклов и приходится прибегать к рекурсии
Ты наверное даже не вкурсе, что рекурсия испоняется быстрее цикла?
На пиках лучшие результаты компиляции.
Аноним 09/09/22 Птн 08:28:55 2458820 413
image.png 22Кб, 661x360
661x360
Аноним 09/09/22 Птн 09:14:19 2458837 414
>>2458762
>Асинхронность в PHP вообще-то есть
Жду примеров
Аноним 09/09/22 Птн 09:46:32 2458847 415
>>2458819
А это что за картиночки такие? Не похоже на локальную консоль. Это какой-то онлайн-сервис?
Аноним 09/09/22 Птн 10:04:54 2458860 416
image.png 23Кб, 489x574
489x574
image.png 21Кб, 472x579
472x579
>>2458763
>а компилятор настолько тупой
Как среднестатистический пэхапешник?

>В PHP нет такой проблемы
Как и нормальной работы с большими числами, строками и динамической типизацией.

>>2458847
>Это какой-то онлайн-сервис?
Да, локально результаты будут куда разительнее.

https://www.jdoodle.com/
Аноним 09/09/22 Птн 10:50:32 2458896 417
>>2458707
>>2458726
>пук-среньк
ОГО, ты знаешь что такое макросы и сокеты и фунц.прог., ну нихуя себе познания, вот это уровень! Аргументы уровня "Ну ты ж свою ОС не писал - значит не программист!", "Они не знают этого, Я ТОК СКОЗАЛ!!".
Ты серливый обоссаный эликсирщик маменькин без опыта, мы все тут это уже поняли :)

Ты бы лучше дал ссылку на линкедин, такой ты павлин важный, а на деле обосрёшься от первых же моих запросов в зуме, вкатун эликсирный))
Аноним 09/09/22 Птн 10:58:45 2458902 418
Почему пхп такая залупа?
Аноним 09/09/22 Птн 12:30:43 2458965 419
>>2458762
>Многопоточность это боль почти в любом языке (из-за гонок) и ее лучше избегать
Да я бы не сказал что боль, но вот когда нужно манипулировать большим объемом данных, то этот процесс лучше распараллелить на потоки. В расте например есть вообще охуенная штука https://crates.io/crates/rayon достаточно добавить .par_iter() к итератору и все будет обрабатываться в разных потоках.

>Ты носишься со своей никому не нужной асинхронностью тут как с писаной торбой. Я же уже писала выше, что бизнес-логику удобнее писать в виде синхронного кода, а не как в JS, где каждая строчка начинается с await.
Я бы не сказал что ненужная, например когда есть блокировка IO, то лучше писать асинхронный код, так меньше ресурсов потребляется и это сильно сказывается на производительности. Например запросы к внешним api.

>за пару недель изучает
>Раст
Удачи хули, если с go еще правдоподобно, поскольку он простой как мясорубка, то с растом не очень. Пару недель уйдет только на то чтобы понять что от тебя хочет борроу чекер

мимо раст-кун
Аноним 09/09/22 Птн 12:52:53 2458976 420
>>2458965
> Удачи хули, если с go еще правдоподобно
Даже с го неправдоподобно

>>2458819
Лолчто, рекурсия быстрее циклов? На твоём синтетическом говнопримере всё что угодно может быть, но вообще говоря циклы по определению быстрее рекурсии, потому что они не создают новых сегментов стека и не меняют контекст.
Не просто так мы начали обсуждать оптимизацию хвостовой рекурсии, это грубо говоря, когда определенные виды рекурсии превращаются под капотом в цикл, потому что так эффективнее. Кстати, это умеют примерно все компиляторы и примерно все языки, кроме php и ещё одного позорного исключения, о нём не будем

>>2458762
> PHP-программист со временем при желании осваивает все остальное. Например, есть проблемы с производительностью, он за пару недель изучает
Этот обман стар, как мир. Шутка в том, что нет, не осваивает и не изучает, сколько раз этот процесс наблюдал своими глазами. PHPшникам всё кажется простым, потому что все языки им кажутся похожими на их родной пхп, только немного другой. А потом ВНЕЗАПНО выясняется что нихуя, там требуются другие стили мышления, другие концепции и вообще, в php содержится 5% того, что желательно бы знать, чтобы писать на том же rust - вот тогда-то мозг начинает кипеть и плавиться.

Повторюсь, видел такое своими глазами, чванливый php'ный "сеньор" будучи уверен, что всё видел и значет, начинает пытаться написать что-то на каком-нибудь тайпскрипте не самом сложном языке на свете и просто с размаху убивается об стену. Какой-нибудь rx лочит его на неделю, после которой он всё ещё путает observable c observer и промис с исключением.
Так что нихуя.

> Многопоточность это боль почти в любом языке (из-за гонок) и ее лучше избегать
Заблуждения человека, который никогда с ней сталкивался нормально за пределами php. В ней нет ничего страшного, просто нужно усвоить ещё несколько концепций и инструментов, и потом что потоки, что акторы, что горутины, что промисы зайдут вполне нормально.
Зато у тебя код не будет неэффективно простаивать 99% времени.

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

> Нужна система рекомендаций, он пишет нейросеть и получает рекомендации. Никаких неудобств.
Ну это совсем жирно, предлагаю всем эту дуру уже просто начать игнорировать, каждый наброс всё тупее и тупее. Нейросеть она пишет, да. На php.

Да и вообще, срач можно заканчивать. Каждый заинтересовавшийся может прочесть последние 50 сообщений и обратить внимание на вполне корректные технические аргументы и доводы с одной стороны и стыдное "мы всё можем, а что не можем, так это не нужно" с другой. Sapienti sat, умному достаточно.
Аноним 09/09/22 Птн 13:15:39 2458992 421
>>2458976
> наброс
По-моему это ты ворвался в тред другого языка зачем-то чтоб потролить жирными набросами. Observable с Observer, кек. Смешно просто.
мимо
Аноним 09/09/22 Птн 13:16:03 2458995 422
>>2458976
>и ещё одного позорного исключения, о нём не будем
js, ruby?
Аноним 09/09/22 Птн 13:21:54 2459001 423
>>2458976
>На твоём синтетическом говнопримере
Она бенчмаркала
- на внешнем сервере, который непонятно как загружен и как лагает
- вместе с компиляцией
- код с детерменированным результатом, то есть который мог быть оптимизирован компилятором до просто вывода вычисленного значения
- один раз
Аноним 09/09/22 Птн 15:33:05 2459060 424
>>2458819

Дружок, ты показываешь нам цифры 0.865 и 0.908, но мы не знаем, какой случайный разброс значений на этом сервисе выполнения кода. Возможно, там цифры прыгают от 0.6 до 1.2 (условно) и разницу можно просто объяснить случайностью.

Что за детский сад.
Аноним 09/09/22 Птн 15:50:49 2459072 425
>>2458819

И еще, тебе не кажется странным, что 34 операции умножения занимают 0.9 секунд? У меня в браузере JS код (без всяких wasm) делает 300 миллионов сложений за секунду (я как-то видел и миллиард сложений в Хроме, но не могу сейчас воспроизвести).

У тебя 0.9 секунд это скорее инициализация виртуальной машины или контейнера, в котором выполняется код.
Аноним 09/09/22 Птн 15:57:19 2459074 426
image.png 8Кб, 521x196
521x196
>>2459072
Бля, анон, ты хоть в глаза не долбись.
Аноним 10/09/22 Суб 00:22:59 2459440 427
>>2459074

Но там включено время компиляции. Какой смысл это сравнивать вообще?
Аноним 10/09/22 Суб 01:23:07 2459454 428
>>2458127
>базовая модель ревью выступает как абстрактный класс
не обязательно абстрактный класс
>от которого могут унаследоваться специфические ревью
+
Аноним 10/09/22 Суб 10:23:05 2459512 429
>>2458819
Ты наверное не в курсе, что с циклами проще и легче работать. В PHP здоровые люди работают, а не красноглазые ботаники.
"Делай проще, тупица!", мы используем этот принцип.

Если ты и дальше будешь со своим говноэликсиром лезть в тред, то я не просто зарепорчу, ещё и модератору напишу. В PHP используют только циклы для перебора и точка. Рекурсии используем там, где они действительно нужны.
Аноним 10/09/22 Суб 10:28:01 2459515 430
>>2458819
Т.е. наша задача здесь объяснить новичкам как писать на PHP, чтобы нашли работу и зарабатывали деньги.
Если ты будешь рекурсией перебирать массив, то тебя на работу не возьмут по этому языку, так что не надо вредные советы сдесь давать.
Аноним 10/09/22 Суб 12:44:16 2459571 431
Посоветуйте живые тг-группы по теме. Только вкатываюсь, хочу обмазаться фронтенд комьюнити по полной. Интересуют любые группы - базовые, чаты, ивенты, курсы, блоги, вкатышские, джун и тд
Аноним 10/09/22 Суб 14:17:51 2459652 432
Аноним 10/09/22 Суб 16:03:57 2459741 433
lol-anime-lol.gif 2031Кб, 498x280
498x280
>>2459571
>фронтенд
>2022
ты бы еще в диджитал арт, или геймдев вкатился деньги зарабатывать

вообще не понимаю, нахуя нужен сейчас фронт, если есть bootstrap-образные frontend фреймворки и довольно легковесные. ну ладно, шучю, конечно же нужны
Аноним 10/09/22 Суб 18:24:32 2459805 434
>>2459741
А я пишу на тайпскрипте реакт с редаксом, кроме основной работы на пхп, мне нравится.
Причём вообще не учил ни тайпскрипт, ни реакт. Сел и вперёд таски делать, подсматривая как другие пишут в проекте, но теорию конечно надо подтянуть будет.
Аноним 10/09/22 Суб 19:59:15 2459883 435
>>2459512
>В PHP здоровые люди работают
Почитав как тут с пеной у рта защищают швятой пехапе у меня впечатление возникает, что большинство нихуя не здоровые.

>говноэликсиром
Во первых это раст, во вторых я пэхапешник мидл симфонист тупая ты макака.

>то я не просто зарепорчу, ещё и модератору напишу
В прокуратуру ещё пожалуйся по статье оскорбление чувств пехапешников, а потом маме.

>В PHP используют только циклы для перебора и точка
Что делает алгоритм посмотри, скрины ниже постом.

>>2459515
>Т.е. наша задача здесь объяснить новичкам как писать на PHP
А лучше сразу указать на недостатки >>2458860
этого прости господи ЯПа, чтобы они с десяток раз призадумались: а стоит ли!?

>чтобы нашли работу и зарабатывали деньги
50К на битриксе или вордпрессе?

>то тебя на работу не возьмут по этому языку
Я бы человека который не знает простейшего алгоритма вычисления факториала точно бы не взял.
Аноним 10/09/22 Суб 20:27:16 2459901 436
>>2459883
> Я бы человека который не знает простейшего алгоритма вычисления факториала точно бы не взял.
Большинство пехапешников и слова-то такого не знают
мимо
Аноним 10/09/22 Суб 21:58:39 2459973 437
>>2459883

Я бы человека, который не умеет делать бенчмарки, и пытается что-то доказать, тоже бы не взял.
Аноним 10/09/22 Суб 23:08:42 2460054 438
>>2459512
>Если ты и дальше будешь со своим говноэликсиром лезть в тред, то я не просто зарепорчу, ещё и модератору напишу.
Пхпшник порвался, несите следующего.

Кстати, это весьма показательная фраза. Это не разовый случай, а системное явление, я наблюдал его неоднократно. Заключается оно в неприятии пхпшниками современных технологий вплоть до агрессивного отторжения. На индивидуальном уровне это проявляется как "ох лол подумаешь <языкнейм>, в пхп то же самое можно". На командном уровне это "у нас устоявшийся стек, мы не будем ничего менять" (и ничего изучать). И это именно у пхпшников. Ни в одной другой команде и ни в одной другой культуре я не встречал подобного. Почему? Потому что другие языки - про программирование. Программист может работать с тайпскриптом или сишарпом, и при этом с интересом выслушает что там в лиспе или окамле. Потому что он программист и интересуется программированием. А пхпшники - это большое но при этом закрытое сообщество скриптомакак, программированием не интересующихся. Не нужны пхпшнику ни база от олдов, ни новые технологии. Кто-то говорит что есть технология лучше пхп? Да это святотатство! Что? Изучить новый язык? Бан!
Аноним 11/09/22 Вск 12:56:14 2460217 439
AnimeandStrains[...].jpg 649Кб, 1920x1080
1920x1080
>>2460054
Ну хватит уже толстяк, все поняли что твой элекесир или языкнейм — лучше, быстрее и компилируемей.

Только кабанам на это похуй. Они не за это деньги платят. Все в РФ привыкли к PHP, и ты будешь покакунькать пока МЫ наровне с БИТРИКСОБОГАМИ будем получать стабильные предложения, еще очень долго.
Нахуй нанимать душного долбоеба(ов) который воняет говном, и не дает ни каких гаранитй стабильности, если можно нанять одного работника который сделает все ДЕШЕВЛЕ, БЫСТРЕЕ, ПРОЩЕ, СЛАЩЕ

перед тем как писать сюда, да да, ты ты, говно посмотри рейтинг вакансий на свой сранный язык, и количество вакансий на PHP
Аноним 11/09/22 Вск 13:11:58 2460224 440
>>2460217
Я не он, но я работаю на российскую кампанию и получаю х2 от всех этих пехапешников. Недавно как раз приходили из очередного крупняка и предлагали очень смешные деньги за senior php develop'а, поводил им хуем по губам, да и отправил обратно.
Я не шучу, ваши 100500 вакансии нормальным программистам не интересны, как раз потому, что ключевую мысль ты сам высказал
> если можно нанять одного работника который сделает все ДЕШЕВЛЕ

ОЧень конечно странно, что вы сами понтуетесь тем, что вам меньше платят, но пускай, так даже ироничнее хотя конечно очень жырно, особенно про битриксобогов, ты сейчас лопнешь уже
Аноним 11/09/22 Вск 13:22:25 2460235 441
>>2460224
Но ведь бек на пыхе ничем не отличается от бека на руби, пыхтоне, ноде. А в крупных компаниях пыхеры в голангах и сисиплюсах копаются... процесс менеджеры для пыхи пишут... Зачем если пыха хуже чем пыхтоны?
Аноним 11/09/22 Вск 13:38:54 2460266 442
>>2460235
> Но ведь бек на пыхе ничем не отличается от бека на руби, пыхтоне, ноде
Выше пол-треда комментариев с разъяснениями, что пыха как язык менее эффективна, так что отличается и ещё как
> А в крупных компаниях пыхеры в голангах и сисиплюсах копаются... процесс менеджеры для пыхи пишут...
Большинство пыхи именно в крупных компаниях сейчас это легаси, всякие копролиты из древних времен, когда ничего лучше не было. Тот же озон когда-то был на php написан, а сейчас у него ты вакансии на php не найдешь, они на голанг переехали и, вероятно, переписали. Просто ретроспективно за последние 10 леи можно посмотреть, кто пишет на php и результаты будут не особо вдохновляющие.

Я неиронично думаю, что мы сейчас наблюдаем пока ещё вялый закат php, как языка, годного для крупного бизнеса, просто по совокупности причин. Php за последние 10 лет стал сильно лучше, но всё же не смог решить все свои проблемы, а вот прочие языки очень сильно подтянулись как в плане дружелюбности к разработчикам, так и в плане эффективности. Грубо говоря, с одной стороны на php давит golang, который тоже не то, чтобы пиздец сложный, но при этом намного более эффективный - а с другой java с более дружелюбной экосистемой (spring -> spring boot) и kotlin, в котором синтакисческого сахара сильно больше чем в php и соответственно писать ещё более комфортно. И это не вспоминая про c# и прочих конкурентов, ту же ноду.
Для среднего и мелокго бизнеса php был и останется очень востребован и может даже останется их королем, просто за счет низкой цены разработки и требований к разработчикам.
Аноним 11/09/22 Вск 15:08:38 2460364 443
Снимок.PNG 491Кб, 800x740
800x740
Аноним 11/09/22 Вск 17:36:01 2460457 444
>>2460364
Не удивлюсь, если лет 20 назад такие статьи писались и про Perl с Basic какой-нибудь, и где эти языки теперь? Хотя тогда конечно время другое было, для вкатывальщиков и индусов была скорее минорной.
Аноним 11/09/22 Вск 20:37:33 2460561 445
Ананасы, как комбинируют PHP/GO? Часто видел в вакансиях, но на деле пока слабо это представляю, что на себя может брать golang, а что PHP?

Опишите пожалуйста, приблизительную структуру, как эта комбинация позволит создавать высоконагруженные проекты, или в лучшем случае все должен делать ТОЛЬКО Go? Это бред?
Аноним 11/09/22 Вск 20:53:30 2460579 446
>>2460561
В основном переписывают туда или обратно. Хотим чтобы был миллион онлайн и чтобы все летало. Переписываем на голенг! Бля, миллиона пользоватей нет, бабок закономерно нет. Переписываем на пыхепе!
Аноним 11/09/22 Вск 20:53:58 2460581 447
>>2460561
Погугли статьи badoo, они такое любят. В двух словах, бизнес логику они фигачат на php (правда вероятно у них там нет фрейморков, какой-то более или менее тонкий набор либ, чтобы слишком много не жрали), а узкие места, системные и инфраструктурные штуки на го.
На го, к примеру, какие-нибудь системные апи, апи гейтвеи, сервисный уровень (сервисы авторизации, обработки данных каких-нибудь, процессинг платежей, процессинг сообщений для чатов).
Аноним 11/09/22 Вск 20:56:03 2460584 448
>>2460561
Вообще представил как работать на Go без composer или аналога, например какого нибудь пакета работы с документами (exel, word, etc.) думаю ну его нахуй.

Когда нибудь может, но сейчас только поиграться можно видимо.

Вылавливать баги, утечки и тд там наверное вообще пиздец
Аноним 11/09/22 Вск 21:00:29 2460589 449
>>2460561
> в лучшем случае все должен делать ТОЛЬКО Go
В идеале-то да, на нём не так страшно писать бизнес-логику, как тут многие любят заявлять. Может чуть многословнее и тп, но не смертельно ни разу. написал тут пару сотен тысяч строк бизнес логики на го за последнее время, полёт нормальный, брат жив
Упрощая, го эффективнее php в плане утилизации ресурсов, php несколько симпатичнее в плане кодирования, меньше приседаний с обработкой ошибок, тп. То есть код php никогда не сможет того же, что может код на го, а вот обратное в целом возможно, но не всегда идиоматично.

>>2460579
Это уже долбоёбы какие-то, а не бизнесмены. Я впрочем никогда такого не встречал. Обычно наоборот есть копролит на php, который приносит деньги, но слишком много жрёт и который слишком сложно разрабатывается. И поэтому бизнес начинает заводить команды и отгрызать от него куски, превращая их в отдельные сервисы, параллельно разрабатывая новое уже только а го. За несколько лет такой работы этот монолит тает почти до нуля и в итоге болтается где-то на задворках, отвечая за те вещи, которые никому не мешают.
Аноним 11/09/22 Вск 21:01:03 2460590 450
>>2460561
Бьют приложение на микросервисы и переписывают микросервисы.
Аноним 11/09/22 Вск 21:03:07 2460592 451
>>2460584
Аналог composer там есть, причём вшит в сам язык (go mod) и сам по себе более удачен, чем у пыхи. Хотя бы потому, что шарит кэш между всеми проектами и потому что поддерживает использование нескольких версий одной и той же транзитивной зависимости одновременно: A(B, C), B(D1.0), C(D2.0)
Аноним 11/09/22 Вск 21:03:38 2460593 452
Аноним 11/09/22 Вск 21:04:29 2460596 453
>>2460561
>как комбинируют PHP/GO?
Бля, что тут гадать? Элементарно всё. Берётся там, пишется какой-нибудь скажем бот-скраппер на colly (golang), он многопоточный, начинает собирать данные с сайта. Либо например какое-нибудь видео перекодировать нужно, пишется перекодировщик на golang'е. А фронтэнд пишется на php.

Как их соединяют? Тут тоже нет ничего сверхестественного, есть несколько способов:

golang --> событие --> php
golang --> очередь сообщений --> php
golang --> топик --> php
golang --> база данных --> php
golang --> api --> php

Зависит всё от задачи.
Аноним 11/09/22 Вск 21:07:00 2460598 454
>>2460561

На PHP/SQL пишут большинство кода и бизнес-логики, потому что это быстрее и дешевле. На Го - пишут микросервисы, где требуется высокая производительность или асинхронность и где стандартная БД не может решить задачу.

Это актуально только для проектов с огромным числом пользователей и нагрузкой.

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

Тут остается только писать свою базу данных. Но если уж писать, то лучше на Го, так как он будет быстрее. Или на Расте, у него есть свои плюсы и он может быть быстрее, но на нем еще сложнее и дороже писать, чем на Го.

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

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

Писать такое сложно и дорого и потому это используется только в больших проектах с большими бюджетами. Если ты работаешь на мелкий или средний бизнес, то такие технологии не оправданно использовать. Тем не менее есть дурачки, которые пытаются внедрять Го в нищебродских проектах, думаю, их ждет закономерный провал.
Аноним 11/09/22 Вск 21:07:49 2460599 455
>>2460593
Кстати считал и считаю, что вся эта фигня работает неправильно. Она зачем-то пытается демонизировать php, а он как бы изначально про другое. "Правильный" roadrunner должен был бы читать сообщения из очереди и вместо общения с консольным php, отправлять эти сообщения в локальный php как в веб сервер, по какому-нибудь пути типа /api/handle_task/{queue_name}.
Тогда php бы стартовал и умирал на каждое сообщение, как и должен был, всё супер идиоматично. Вся та же фигня с воркерами отлично бы настраивалась, просто через воркеры php-fpm
Аноним 11/09/22 Вск 21:08:49 2460600 456
>>2460581

Я думаю, что ты ошибаешься. Нет никакого смысла писать платежный шлюз на Го, так как там нет больших нагрузок. В Баду на Го имеет смысл писать сервис отбора пользователей или сервис приема лайков/дизалайков, а платежи не идут таким потоком, чтобы нужен был Го. Шлюз платежей это низконагруженный сервис, отлично работающий с традиционной БД.
Аноним 11/09/22 Вск 21:09:24 2460601 457
>>2460598
>Тут остается только писать свою базу данных
Ты шо, ебанутый? Зачем? Есть нормальная готовая база для соцсетей, https://neo4j.com/ Короче не читайте этого мудака, он бред несёт.
Аноним 11/09/22 Вск 21:11:02 2460604 458
>>2460599

По моему, ты не понимаешь, о чем пишешь. roadrunner это оптимизация кода за счет исключения процесса инициализации. То есть, твой фреймворк один раз инициализируется и обрабатывает много запросов не умирая. Соответственно, я даже понять не могу о каких сообщениях и каких API ты пишешь.
Аноним 11/09/22 Вск 21:11:36 2460605 459
>>2460235
>бек на пыхе ничем не отличается от бека на руби, пыхтоне, ноде
Какая у тебя экспертиза чтобы заявлять подобное?
Аноним 11/09/22 Вск 21:13:02 2460609 460
>>2460601

Зачем ты пиаришь какую-то малоизвестную поделку, написанную на Java? Ну давай еще Elasticsearch порекомендуй тогда. Если бы задачу можно было решить готовой БД, то кастомные хранилища никто бы не писал.
Аноним 11/09/22 Вск 21:14:40 2460613 461
>>2460601

Просто для справки, VK - самая крупная российская соцсеть - писала свои хранилища-микросервисы на Си, а не использовала то, что ты тут рекламируешь. Я тебе описываю реальность, а ты тут рассказываешь то, что где-то краем уха слышал.
Аноним 11/09/22 Вск 21:28:12 2460622 462
>>2460605
А у тебя какая, чтобы утверждать обратное? Те же портянки с кверибилдером, те же очереди, асинхронщина по разному решается, но она попадает в 1% от задач. Почему 1%? Потому что если что-нибудь нестандартное реально нужно, а не потому что кто-то привык только по шаблону думать, пчпшники берут инструмет строго под эту задачу, а не пишут велосипед на своем языке.
Аноним 11/09/22 Вск 21:44:38 2460632 463
>>2460622
>А у тебя какая, чтобы утверждать обратное?
16 лет общей разработки. Пхп, руби, эликсир, раст, питон, ноджс, а также фронт-жс - писал за бабки. Го, v, ocaml, scheme, clojure, crystal, typescript, delphi/pascal, haskell - просто писал для себя. Писал веб фреймворки, а не только ими пользовался.
Аноним 11/09/22 Вск 21:48:18 2460633 464
>>2460632
Ну в чем я не прав со своей колокольни? У нас что сотни тысяч больших проектов с уникальными задачами и дюжина мелких? Нет. 100500 маленьких и средних с конгруэнтным говнокодом.
Аноним 12/09/22 Пнд 01:08:55 2460740 465
>>2460633
>Ну в чем я не прав со своей колокольни?

В том, что фокусируешься только на бизнесовой части, игнорируя уровни абстракции выше и ниже. В работе приходится лазить по всем уровням от околосистемного и до eDSL, и в идеале это делается одним языком - тогда у тебя минимальный оверхед на вызовы и на коммуникацию между людьми. В пхп же ты вынужден подключать сишные библиотеки снизу и писать обработчики для декларативных yaml/xml с описанием твоей логики сверху. Примеры - это либы и фреймворки для решения задачи асинхронности - reactphp, amphp, swoole, roadrunner/spiral. Публичных примеров eDSL не приведу, но мне приходилось их пилить, и там всё давалось через оверхед. Например в языке нет enum-ов, а как без них описывать какую-то логику?

Разница в оверхеде по времени написания, сложности написания и поддержки, производительности конечного кода - раз в пять и может привести к невозможности закончить крупный проект.

Предлагаю просто помедитировать на отсутствие вебсокетов в языке созданном для веба.
Аноним 12/09/22 Пнд 09:50:29 2460865 466
>>2460740
Слабо разбираюсь в PHP но даже я знаю,
>enum'ы сделали уже с 8 версии
Чек
>веб сокеты есть в офицальной экосистеме laravel, аналог socket.io как я понял, и если верить гуглу, то была поддержка сокетов с 5 версии фреймворка
Чек

Соответственно, PHP имеет большой потенциал на расширение, и своими пакетами, и другими языками. Кому нужен энтерпрайз - платят космические суммы - это отдельный разговор, не теиа для дискуссии.
Аноним 12/09/22 Пнд 09:55:52 2460874 467
>>2460740
Также laravel офицально давно хорошо дружит с Vue.js, посему нет необходимости в костылях типа react-php, хотя может это местами полезный инструмент

Я думаю нет проблем прикрутить туда и react и что нибудь еще если нужно
Аноним 12/09/22 Пнд 11:49:52 2460966 468
>>2460865
>enum'ы сделали уже с 8 версии
во-первых это уже какая версия и год, они уже не нужны вместе со своим пхп
во-вторых алгебраические типы данных даже не маячат на горизонте
Аноним 12/09/22 Пнд 12:02:40 2460978 469
Без названия.jpeg 5Кб, 285x177
285x177
>>2460966
Ну так кто выиграл та?! Скажи свой любимый язык, и мы закроем тред!

В ряд все встаньте и напишите ваши крутые языки, как детишки в столовую
Аноним 12/09/22 Пнд 12:19:17 2460994 470
>>2460865
>PHP имеет большой потенциал на расширение
ну так и говори "мне пхп нравится потому что в нём можно поковыряться, подрочить его, поизучать". ну ок. было время когда каждый первый считал своим долгом написать свой фреймворк или цмс. но он годится для изучения только базовых вещей. это как бы программа начальной школы - читать, писать, таблицу умножать.

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

> в ларавеле есть прибитые сбоку вебсокеты
ы
Аноним 12/09/22 Пнд 12:20:03 2460995 471
>>2460874
Фреймворкомакакен, ты хоть сам блядь понял, что спизданул? Какое нахуй отношение имеет reactphp к reactjs и фронту?
Ебаный стыд, с кем в одном треде сидеть приходится.
Аноним 12/09/22 Пнд 13:11:24 2461051 472
>>2460995
>с кем в одном треде сидеть приходится
Ещё одна проблема пхп. Ты синьор и видел много говна, рядом с тобой джун зелёный несёт ахинею, и люди не видят между вами разницу. Поэтому в частности я и ушёл из этого стека.
Аноним 12/09/22 Пнд 17:03:03 2461252 473
>>2461051
>рядом с тобой джун зелёный несёт ахинею
то же самое в командной работе - высок шанс что человек рядом с тобой не особо понимает что он в принципе делает. у нас был тимлид, не знающий что такое ортогональность. ну как тимлид. кабан от безысходности назначил знакомого, команда разбежалась
Аноним 12/09/22 Пнд 17:09:29 2461258 474
>>2461051
>люди не видят между вами разницу
>и ушёл из этого стека
То есть в другом стеке посторонний человек легко может определить разницу между помидором и джуном. И что это за стек? "Модный приговор" какой-нибудь?
В любом сложном деле мимокрок не увидит разницу между помидором и джуном. Единственное исключение - рисование.
Аноним 12/09/22 Пнд 17:19:01 2461269 475
image.png 351Кб, 954x545
954x545
>>2461258
>То есть в другом стеке посторонний человек легко может определить разницу между помидором и джуном.
В некотором другом стеке джунов просто минимум вплоть до нуля. Я же писал выше: средний(!) уровень эликсирщика - синьор. Посмотри вот это видео начиная с таймкода https://www.youtube.com/watch?v=v1CmGbOGb2I&t=3311s там минут пять про найм. (Вот про компанию https://en.wikipedia.org/wiki/Jane_Street_Capital) . Принцип такой, что макака, рассуждающая количеством вакансий, такой язык просто не заметит.
Аноним 12/09/22 Пнд 18:16:30 2461314 476
>>2461269
>средний(!) уровень эликсирщика - синьор
На каком языке он синьор? В каком стеке? На каком проекте?
Борщехлёбские языки вычитаем сразу, какие бы мани там себе звания не придумывали.
Аноним 12/09/22 Пнд 19:53:41 2461388 477
>>2460604
Ну во первых если у тебя фреймворк занимает много места, то ты что-то делаешь не так. Что там должно быть инициализировано, логгер, роутер плюс коннектор к базе, ну может ещё набор сервисов каких-нибудь, но по идее опять же все должны быть достаточно легковесными, чтобы выделить несколько байт под это всё дело не было проблемой.
Ао вторых, в php уже есть preload (и jit кстати тоже), так что нихуя, у тебя тот же laravel загрузится в память php-fpm всего один раз, при старте php-fpm. Вот яИ кстати по-моему php-fpm содержит встроенный пул коннектов к sql ещё со времен php 5 вместо того, чтобы у тебя скрипты каждый раз долбали базу открытиями соединений.
Аноним 12/09/22 Пнд 20:32:39 2461434 478
>>2461314
>В каком стеке?
Computer science/software engineering.

>На каком языке он синьор?
Да всем похуй на язык

>На каком проекте?
Совсем крышей потёк? Ты или синьор или нет независимо от проекта.
Аноним 12/09/22 Пнд 20:39:02 2461445 479
>>2461388
>Что там должно быть инициализировано, логгер, роутер плюс коннектор к базе, ну может ещё набор сервисов каких-нибудь, но по идее опять же все должны быть достаточно легковесными
Ловите, блядь, дебила. Хоть кол на голове теши. Уже кажется каждая собака знает, что когда пых умирает а потом снова стартует - инициализация стейта и объектов занимает дохуя как больше времени. Уже и блядь персистентные коннешны к базе появились в языке что как бы иллюстрирует проблему. И блядь любой профайлинг покажет отношение времени инициализации ко времени выполнения бизнес-логики даже для не обвешанного старта. Нет, сука, находятся такие гении, которые говорят "а чё, всё ж легковесное, проблемы не должно быть". А ты прикинь, проблема есть даже для легковесных случаев. А ещё бывают не легковесные, это жирное легаси за которое кабаны обычно жирно платят. Вот так реальность отличается от твоих маняфантазий.
Аноним 12/09/22 Пнд 20:40:46 2461448 480
>>2460604
>roadrunner это оптимизация кода за счет исключения процесса инициализации
и не только. roadrunner содержит написанный на go евент-луп из которого вызывает пхп-функции
Аноним 12/09/22 Пнд 21:12:48 2461475 481
>>2461445
Ты, дурачок, до конца-то мой пост дочитай. Я во второй части как раз и писал и про персистентные соединения, и про прелоад.
А в первой упомянул, потому что считаю это важным, не должны фреймворки весить много, это какая-то лажа, которая должна остаться в мире джавы. Если фреймворк занимает 100500 классов и мегабайт а я знаю, что некоторые php-шные фреймворки и особенно cms так делают, то это какая-то херня и не надо делать вид, что это нормально.
Аноним 12/09/22 Пнд 21:19:02 2461487 482
>>2461448
Ё-моё, да это тупо супервизор, скрещенный с очередью и веб сервером. Тупо бинарь, который читает сообщения из сети или очереди, кладёт их в php, забирает результаты и кладёт обратно.

Нет вообще никакой проблемы использовать что-то другое, хоть описать системдшный сервис, хоть супервизорд, хоть через докер/кубы запускать php worker.php, который сам из очереди будет что-то читать и потом писать обратно. Будет несколько различий связанных с обработкой таймаутов и прочей обвязкой, которая в php сделана по-уродски, но это здесь не важно.
Аноним 12/09/22 Пнд 21:21:49 2461492 483
>>2461487
>кладёт их в php, забирает результаты
каким образом? какой оверхед?
Аноним 12/09/22 Пнд 21:47:50 2461509 484
>>2461492
Вроде через нативные php сокеты, что вероятно должно ускорять энкодинг/декодинг по сравнению обменом json'чиками через stdin/stdout, как зачастую и работают самописные наколеночные решения.
Но в любом случае это будет давать некий оверхед на коммуникацию с внешним сервисом, вместо того, чтобы сразу самому ответ отдать или клиенту, или в очередь записать. Опять же, если не учитывать приколы с php'шными либами, а то они иногда странно реагируют на к примеру сетевые ошибки.

Ну и кстати таймауты. Я не смотрел, но скорее всего там никакого таймаута на обработку запроса php не задаётся, потому что php же не умеет в рамках одного процесса асинхронно принимать сигналы, соответственно скорее всего даже если roadrunner и поймёт, что превышен таймаут обработки, то всё, что он сможет сделать, это тупо рестартануть демона, что как-то невесело.
Аноним 13/09/22 Втр 01:19:40 2461611 485
Стоит isp manager, как выполнить консольное php с альтернативной версией? Команда вызова не ясна, сами файлы нашел, в настройках сайта включен php 8 как альтернативный и там же пятый, восьмой вызывается апачем, пятый из консольного php
Аноним 13/09/22 Втр 01:26:12 2461613 486
Пыха говно потому что

1) Нет асинхронности. Нужно городить ебаные воркеры/службы/очереди чтобы в фоновом режиме обрабатывать файлы и данные, обращаться к 3rd party API, писать в логи, отправлять почту, дергать медленную базу. Из-за этого вы ленитесь сократить время выполнения запроса к АПИ (что не является преждевременной оптимизацией, если ваш апи 10 секунд думает по дефолту), ваша хуйня ломается когда больше 5 запросов в секунду, кабанчик визжит матом в трубку.

2) Заказчики быдло ебаное с поведением из 90х и мелким бюджетом, а если офис то это ебаная колхозная блевотина в офисе на отшибе со сломанными стульями.
Аноним 13/09/22 Втр 03:22:37 2461626 487
>>2461613
>кабанчик визжит
Это мелко. Подумай о том, чтобы сменить его на взрослого кабана, матёрого такого хряка.
Аноним 13/09/22 Втр 09:38:05 2461680 488
>>2461613

> 1) Нет асинхронности

Асинхронность ухудшает код. Асинк\авейты смотрятся хуево и ты неизбежно мешаешь бизнес логику с инфраструктурной. Есть целый класс задач где она не нужна, и их можно на пыхе делать.

У меня первая работа была в студии где нужно было максимально быстро хуячить ecommerce проекты, пробовал и на пыхе и на node, на ноде сложнее.

> 2) 90х и мелким бюджетом, а если офис то это ебаная колхозная блевотина в офисе на отшибе со сломанными стульями

Стереотипы просто.
Аноним 13/09/22 Втр 14:24:50 2461870 489
>>2461680
>Асинхронность ухудшает код
>Асинк\авейты смотрятся хуево
>ты неизбежно мешаешь бизнес логику с инфраструктурной
>Есть целый класс задач где она не нужна

Неосилятор, спок
Аноним 13/09/22 Втр 14:31:06 2461874 490
>>2461870
Примеры твоего кода тащи
Аноним 13/09/22 Втр 17:33:45 2462007 491
026e883d2dda52d[...].gif 2317Кб, 268x268
268x268
Блядь, как заебали язык обсуждать, вернее насколько он якобы "хуевый". Буду репорты делать затрахали

Я прихожу сюда годноту почитать, что нибудь интересное, а вы тут срач устроили. Крч желаю рака, всем кто не по теме пишет, рака яиц и всех проклятий, болезней, адских и мучительных. И вообще вам пизда после смерти мне мама змея сказала
Аноним 13/09/22 Втр 18:36:20 2462042 492
Аноним 13/09/22 Втр 20:35:30 2462141 493
hoshimachisuise[...].jpg 2806Кб, 2508x3541
2508x3541
Может кто подкинуть какой нибудь гайд иле доку по работе с fetch api в пхп+юи?

что то ебусь уже час с лишьним и разобаться никак не могу
Аноним 13/09/22 Втр 21:13:57 2462168 494
>>2461434
>Computer science
Ты синьор в Computer science, ватишник?

>software engineering
Где твой software? Кто им пользуется?

>Да всем похуй на язык
Т.е. межлу пхп и спп разницы как бы и нет, да?

>Ты или синьор или нет независимо от проекта.
Специалист во всём есть специалист ни в чём. Как-то так про тебя и таких как ты звучит.
Аноним 13/09/22 Втр 21:16:47 2462171 495
>>2462007
>Я прихожу сюда годноту почитать
Соси хуй значит.

>а вы тут срач устроили
Добро пожаловать на двач.
Если что-то не нравится, то пизду в /б покаки обсуждать. А нам и так норм.
Аноним 13/09/22 Втр 21:21:35 2462174 496
>>2462007
Если бы мы тут сагали треды тогда я бы ещё понял претензии, а сравнение достоинств которых у некоторых почти нет и недостатков разных языков это вполне себе контент.

>>2461680
>Асинхронность ухудшает код
>Асинк\авейты смотрятся хуево
Какая-то хуета, нормально всё с асинхронностью. С асинк/await код вообще выглядит почти в точности так же, как и синхронный.
Аноним 13/09/22 Втр 21:22:12 2462175 497
Аноним 13/09/22 Втр 22:14:03 2462245 498
>>2462174
>Добро пожаловать на двач.
>двач
Ты мне это будешь говорить, говно? Я тут со времен когда полборды седело на бб упоротые в слюни, когда тут были кони и цп
>нам
Хряков на б сам иди смотри, петушара. Везде гниды расплодились, еще говорят мне на б идти, ох лол.

Ладно хуй с вами, лучше делом займусь
Аноним 13/09/22 Втр 23:33:00 2462285 499
>>2462245
>Ладно хуй с вами, лучше делом займус
(начинает дрочить)
Аноним 14/09/22 Срд 00:23:54 2462336 500
>>2462245
Научись сначала правильно на посты отвечать
Аноним 14/09/22 Срд 02:57:31 2462384 501
>>2462168
> > Да всем похуй на язык
> Т.е. межлу пхп и спп разницы как бы и нет, да?
Пхп - не язык
Аноним 14/09/22 Срд 03:18:35 2462387 502
>>2462175
>Как найти юзера на гитхаб с помощью curl?
>Есть гайд, но я вообще не ебу как это делать

вначале получаешь токен в своём личном кабинете

потом делаешь запрос в консоли

curl -H "Accept: application/vnd.github+json" -H "Authorization: Bearer <YOUR-TOKEN>" https://api.github.com/search/users?q=vasya

так ты ищешь по строке vasya

тебе должна вернуться json-структура как в примере в гайде.

потом ты берёшь http-клиент guzzlephp и делаешь на нём

$client = new GuzzleHttp\Client();
$res = $client->request('GET', 'https://api.github.com/search/users?q=vasya', [
'headers' => [
'Accept' => 'application/vnd.github+json',
'Authorization' => 'Bearer: <YOUR-TOKEN>'
]
]);
echo $res->getBody()
Аноним 14/09/22 Срд 13:23:47 2462701 503
>>2461314

Ебать у тебя чердак подтекает. Ты думаешь если ты будешь 5-6 лет работать на пыхе и дорастешь до синьора, а потом перейдешь на другую мову и сразу в джуны? Ваще поехавший?
Аноним 14/09/22 Срд 15:04:48 2462782 504
>>2462701
Таки сеньоров на php не бывает. Сеньор на пыхе = миддл на любом другом языке.
Мимо
Аноним 14/09/22 Срд 15:11:03 2462792 505
>>2462782
Чел, ну чё ты доёбся. Анон привёл неудачный пример. Действительно, пхп-синьор при свитче становится чуть ли не джуном потому что знаний у него про ОС - НЕТ, про сетевые взаимодействия - НЕТ, про архитектуру железа - НЕТ, про алгоритмические приёмы программирования - НЕТ, про математические модели - НЕТ, про базовые элементы языков программирования (типа асинков, корутин, продолжений, стеку/куча, сборка мусора итд) - НЕТ.
Но при работе с другими языками большая часть этих знаний так или иначе присутствовать будет.
Аноним 14/09/22 Срд 17:44:51 2462938 506
>>2462782

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

Мидл это рабочая лошадка, решает любые задачи по ТЗ.

Синьор это уже тот кто уже технические\архитектурные решения принимает и у которого есть зона ответственности. И подчиненные, как правило.

Это не про технические навыки, а про место в иерархии в коллективе.

> знаний у него про ОС - НЕТ

Это каких? Линукс настроить не сможет?

> про сетевые взаимодействия - НЕТ

Не знает ничего про tcp/ip, http, websocket'ы? Рил?

> про архитектуру железа - НЕТ
> про алгоритмические приёмы программирования - НЕТ,
> про математические модели - НЕТ

Тебе часто в веб разработке пригождается? А сишарп петушня на это все ответит?

> Про базовые элементы языков программирования (типа асинков, корутин, продолжений, стеку/куча, сборка мусора итд) - НЕТ.

Ты реально думаешь что синьор это точно не знает и точно не выучит изучая новый язык?

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

Если ПХП-синьор пойдет собеситься на джаву, и спиздит что все уже работал на джаве, есть шанс что он просто ответит 2 вопроса по языку и дальше они час будут твиттер проектировать
Аноним 14/09/22 Срд 19:09:39 2463027 507
писец.png 29Кб, 604x215
604x215
Это очень плохо?
Аноним 14/09/22 Срд 19:12:45 2463028 508
Сап. Есть условный sql-запрос:
SELECT id FROM table WHERE link = first-test-page
Я выяснил, что не работает из-за дефисов. Как пофиксить?
Аноним 14/09/22 Срд 19:14:19 2463031 509
>>2463028
ставь через нижнее подчеркивание
Аноним 14/09/22 Срд 20:05:45 2463054 510
>>2462938
> Синьор это уже тот кто уже технические\архитектурные решения принимает и у которого есть зона ответственности. И подчиненные, как правило.
Это вопрос определения. И да, "подчиненные = сеньор" это крайне всратое разделение, с этой точки зрения любой менеджер это сеньор, не путай техническую вертикаль/иерархию с менеджерской, они перпендикулярны.
Соответственно, под "сеньором" будем понимать человека, который условно "отлично" разбирается в технике, в том числе и в сложных областях, типа архитектуры или особенносстей рантайма.

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

Далее по пунктам, их кстати писал не я, но я согласен со многими из них
> Это каких? Линукс настроить не сможет?
Про юникс сокеты, сисколлы, прерывания, механизмы выделения и очистки памяти точно не в курсе. Как полагаю и не знает про systemd и прочие подсистемы, так как php особо и не требует работы с ними.

> Не знает ничего про tcp/ip, http, websocket'ы? Рил?
Про вебсокеты скорее всего нет, поскольку php сам не умеет с ними работать. Думаю, он умеет ставить какую-нибудь проксю, которая умеет поддерживать соединения и тем или иным способом вызывать php, мы их тут уже много обсуждали.
Кстати, не уверен, что php'шники реально способны использовать все фичи http2, те же туннели.

> Тебе часто в веб разработке пригождается? А сишарп петушня на это все ответит?
Архитектура и особенности железа точно решают на серьезных объёмах трафика, где одна специфичная инструкция может процентов на 20 ускорить алгоритм. Но поскольку на php никто не пишет ни серьезную инфраструктуру, ни реалтайм системы, ни действительно лоу-лейтенси сервера, ни высокочастотный трейдинг - то php'шникам это действительно не нужно.
> про алгоритмические приёмы программирования - НЕТ,
Если ты перекладываешь круды, то нет, не потребуется. А если пишешь более или менее серьезные вещи, то какая-нибудь теория графов нет-нет да пригождается, хотя бы в виде банальных методов обхода дерьевев. Я неиронично считаю, что если ты не владеешь базовыми алгоритмами структурами данных, то программистом ты себя называть не можешь, максимум формошлёпом, но это к слову.
> про математические модели - НЕТ
Тут я отчасти с тобой соглашусь, но мне скорее непонятно, что чел имел ввиду. Сама по себе математика, а особенно информатика иногда пригождаются, но опять же, не формошлёпам.
> Ты реально думаешь что синьор это точно не знает и точно не выучит изучая новый язык?
Если мы не будем выдумывать и примем за определение то, то php'шный сеньор знает только php, поскольку про другие языки мы ничего не говорили, то да. Программист на одном языке не знает концепций из других языков.
И тут такой момент, что многие из них похожи. Поработав с промисами, ты легко перейдёшь на асинки. Потюнив один гц ты в целом более или менее переиспользуешь свой опыт, когда будешь тюнить другой гц. И так далее.
Php'шный же программист не сталкивался ни с чем из этого! Соответственно да, ему придётся всё это учить с нуля. Об этом и речь. Сможет или нет выучить - это вопрос десятый скорее всего не осилит и вернется обратно в тепленькое

> Синьор отличается от мидла насмотренностью. Он просто дохуя видел, разные дизайн решения и хорошие и плохие.
Опять же, php'шник не мог участвовать в реальной разработке реалтайм систем, соответственно его "насмотренность" ограничена только пыхой. То есть сильно ограничена.

> Если ПХП-синьор пойдет собеситься на джаву, и спиздит что все уже работал на джаве, есть шанс что он просто ответит 2 вопроса по языку и дальше они час будут твиттер проектировать
Это фантазии. В реальности его спросят про то, как работает сборка мусора и чем cms отличается от parallel gc и всё, приплыли, первый вопрос на любом собесе на сеньора, отлично фильтрует долбоёбов.
Аноним 14/09/22 Срд 20:11:35 2463056 511
>>2462792
>>2462938
>>2463054
Я придумал заебись аналогию. Представим, что программист - это водитель. В этом случае с++ программист это допустим гонщик на ралли, джавист возит фуры, js-ник таксует и так далее. А php-программист - это водитель в метро.
Да, все водители делают нечто общее, жмут на тормоз и газ. Но при этом "phpшнику" не нужно знать пдд, не нужно знать устройство двигателя (потому что чинит его не он), не нужно думать о топливе и так далее и тому подобное. Да, ему проще жить, но эта "простота" и ограничивает его, он сидит себе под землёй и слабо представляет себе те сложности, с которыми сталкиваются водители в реальном мире.
И теоретически машинист метро может научиться возить фуры, только ему придётся выучить пдд, научиться обслуживать машину, планировать маршрут, следить за топливом и так далее. Ему будет очень тяжело.

Об этом и речь.
Аноним 14/09/22 Срд 22:23:31 2463138 512
>>2463027

1) выравнивание кода сделано неправильно
2) htmlspecialchars тут не нужен, читай урок про правильную защиту от XSS: https://github.com/codedokode/pasta/blob/master/security/xss.md - htmlspecialchars надо использовать в шаблоне, а не при разборе POST-данных.
Аноним 14/09/22 Срд 22:24:00 2463140 513
>>2463028

Нужно ставить строку в одиночные кавычки.
Аноним 14/09/22 Срд 22:28:46 2463143 514
Вы реально дураки. Как ты можешь писать "все PHP-ники не знают X" если ты скорее всего общался с 1-2 PHP-шниками, а не со всеми сотнями тысяч их.

Те, кто так пишут, либо троллят в надежде разжечь тут холивар, либо просто у них какие-то комплексы и они хотят показать свою элитность тем, что выучили бесполезный язык с 41 вакансией на всю Россию. В любом из этих случаев они не соответствуют теме треда и не нужны тут.

Плюс, это тред для начинающих. Для начинающего язык, для которого не надо изучать кучу лишней теории, и на который есть много вакансий, очевидно является плюсом, потому что они хотят работать в индустрии и получать практический опыт, параллельно изучая другие вещи.
Аноним 14/09/22 Срд 22:31:07 2463145 515
Кстати, людей, которым больше 18 лет и которые до сих пор используют школьный сленг вроде "петушня" или "рофл" или тюремные слова, итд, я воспринимаю не иначе как даунов с задержкой в развитии. Увы, иногда такие люди не только на имиджбордах встречаются, хочется рукой закрыть лицо.
Аноним 14/09/22 Срд 22:36:39 2463150 516
>>2461445

Ты сам хоть раз профайлинг делал? Я делала и знаю, сколько времени может занимать инициализация фреймворка с оптимизациями для продакшена (если память не изменяет - порядка миллисекунд). Если убрать всю инициализацию, например за счет использования preload или за счет перехода на неумирающую модель (да, PHP может и так), то особого выигрыша не будет.
Аноним 14/09/22 Срд 22:40:55 2463157 517
>>2460632

А почему так много языков? Это из-за того, что все они по факту оказались плохими или ты не их осилил?

Если бы только PHP был плохим, а другие языки хорошие, то ты бы перешел с него на идеальный язык и писал бы только на нем и тебе некогда было бы тратить время на неидеальные языки, верно? Ведь программисту нужно решать задачи бизнеса наиболее эффективным способом, а не тратить время на изучение ненужных языков. Или ты не способен решать полезные задачи, а умеешь только изучать языки программирования?
Аноним 14/09/22 Срд 22:41:13 2463158 518
>>2440871 (OP)
аноны, как в php сделать проверку большого количества условий в 1 строчку или в сжатом виде? пример:
if ($_GET['test'] == 1 || $_GET['test'] == 3 || $_GET['test'] == 9 || $_GET['test'] == 17 || $_GET['test'] == 23 || $_GET['test'] == 47 || $_GET['test'] == 'hui' || $_GET['test'] == 'pizda')
мне кажется что это неправильно и наверняка есть какой-то способ где можно просто через запятую указать нужные данные для проверки
Аноним 14/09/22 Срд 22:43:54 2463161 519
изображение.png 35Кб, 651x420
651x420
изображение.png 55Кб, 661x567
661x567
>>2461680
>Асинхронность ухудшает код. Асинк\авейты смотрятся хуево и ты неизбежно мешаешь бизнес логику с инфраструктурной. Есть целый класс задач где она не нужна, и их можно на пыхе делать.
Это в пхп ли говорить красиво/некрасиво. Дело не в красоте, в том виде в каком пыха сейчас везде используется nginx -> php-fpm -> в отдельном потоке провернуть php код -> умереть тут да асинхронность на хуй не нужна. Асинхронность нужна когда у тебя приложение запущено и постоянно работает, когда несколько клиентов одновременно используют приложение и есть много блокировок i/o. Вот накидаю простой пример на расте, попробую отправить по 30 запросов на сторонее апи ну типа, просто на яндекс постучусь чтобы заблокировать i/o ожиданием ответа из-за чего следующая итерация цикла будет с задержкой на время ожидание и это время пройдет вхолостую. Асинхронность же помогает выполнить следующую итерацию сразу и после цикла всех дождаться это я упрощаю

1 пик - синхронный код All time: 11843 ms
2 пик - асинхронность, 545 ms

А еще всякие запросы к базам данных, брокерам и прочая хуйня в рантайме, асинхронность позволяет упростить жизнь с точки зрения эффективного потребления ресурсов.
Аноним 14/09/22 Срд 22:44:51 2463162 520
>>2440871 (OP)
Как у пехопешников с фрилансом? Реально ли заработать на еду в данный момент в этой стране?
Аноним 14/09/22 Срд 23:24:30 2463189 521
>>2463150
>Ты сам хоть раз профайлинг делал?
ну да, xdebug с опцией профайлинга, потом получившиеся файлы смотришь прогой kcachegrind

>сколько времени может занимать инициализация фреймворка
фреймворки разные бывают, мань. минималистичный silex нихера не весит. а symfony уже потяжелее
Аноним 15/09/22 Чтв 00:02:01 2463207 522
>>2463157
>А почему так много языков?

Просто нравится их изучать

> оказались плохими

Любой язык ситуативно плох или хорош, универсальных не бывает.
Однако бывают конкуренты в заданных областях, где преимущество одного ну очень явное по отношению к другому. Например у компилируемого по отношению к некомпилируемому.

>ты бы перешел с него на идеальный язык и писал бы только на нем

Если работать только в определённой нише с определённым типом задач - то легко. Например если бы пилил вебню - взял бы феникс ( phoenixframework.org ) и в ус не брякал. Но сейчас пишу на расте потому что проект такой.

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

Я не знаю зачем вы по утрам просыпаетесь если в вас нет интереса изучить что-то новое. Интересы бизнеса - как правило продажи. Может быть вам повезёт и вы станете одним из приближённых к руководству с правом написания ERP под ключ (ситуация невероятная потому что тут на самом покупается что-то готовое и адаптируется). Всё остальное находится вне коммерческой попсы. Либо работаете в R&D отделе крупной фирмы и вопросы коммерции вас не касаются. Либо пилите дома свой проект на энтузиазме.

>Или ты не способен решать полезные задачи, а умеешь только изучать языки программирования?

define 'полезные задачи'

Кстати, представляешь что это такое - работать в нормальной
инженерной компании? Ты получаешь свою ежемесячную зп и не паришься, её хватает чтобы ужинать в ресторане не глядя на цены. А на работе занимаешься инженерными разработками. Не аутсорсингом кабанчиковых заёбов. Не сращиванием клиентов как ты привык это делать на фрилансе. А чисто инженерной проблемой. Например машинным зрением. Или разбором генома. Или реализацией архиватора. То есть такой, где нужны мозги. Вот для пхпшников таких вакансий просто нет, у них сплошная потогонка с кабаном-погонщиком. Для питонистов-рубистов ситуация получше, но всё равно не то. У кложуристов эликсирщиков, системщиков шансы попасть в такую компанию достаточно высоки.
Аноним 15/09/22 Чтв 01:53:02 2463247 523
>>2463189

Ну я тебе скажу, что xdebug самый плохой выбор, так как он вносит большие искажения, особенно когда много вызовов крохотных функций. То есть, время с профайлером получается в 1,5-2 раза больше чем без профайлера. Я пользовался, например, xhprof и blackfire.

>>2463207

> Например машинным зрением.

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

> Или реализацией архиватора

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

И забавно, что ты тут приводишь Питон или Руби. Программирование на них не требует больших знаний, чем программирование на PHP. И дурных практик там не меньше, например на Питоне очень плохо с поддержкой тайп хинтов во многих библиотеках, mypy на практике выводит много лишних предупреждений, есть проблемы с неединообразным именованием функций во многих библиотеках. В Руби вообще применяется monkey patching.
Аноним 15/09/22 Чтв 01:53:34 2463248 524
Аноним 15/09/22 Чтв 07:31:58 2463285 525
>>2463207
>Либо работаете в R&D отделе крупной фирмы и вопросы коммерции вас не касаются.
Для этого уже нужны мозги иногда. Хотя это и жалкое подобие нормальной науки. И это уже не к кодовым макакам.
>Ты получаешь свою ежемесячную зп и не паришься, её хватает чтобы ужинать в ресторане не глядя на цены. А на работе занимаешься инженерными разработками.
Если бы ты занимался инженерными разработками, твоей зп не хватало бы на ужин в столовой.
>А чисто инженерной проблемой. Например машинным зрением.
Лол, этот шарит >>2463247 .
Аноним 15/09/22 Чтв 09:42:39 2463313 526
>>2463054
>Это вопрос определения. И да, "подчиненные = сеньор" это крайне всратое разделение, с этой точки зрения любой менеджер это сеньор

Нет. Потому что менеджер не принимает технические и архитектурные решения. Менеджер может быть сеньором, если у него есть подчиненные менеджеры.

Как раз по подчиненным и нужно мерить. Ты синьор если ты руководишь людьми.

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

Чтобы тебе просто доверили это на боевом проекте ты должен заработать себе огромное доверие, благодаря которому ты и становишься синьором.

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

А еще на го нет дженериков, поэтому при проходе собеса на java гошник соснет и не получит даже джуна.
Аноним 15/09/22 Чтв 09:46:45 2463316 527
>>2463054
> "подчиненные = сеньор" это крайне всратое разделение

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

В то время как крупные компании вроде гугла вводят бесконечные табели о рангах чтобы их ТУПЫЕ РОЗОВОЛОСЫЕ ТРАНС ПЕЗДЫ не засудили за то что у них та же позиция что и у чела слева от них а зэпка меньше. Поэтому им дадут level 2 а тем level 4
Аноним 15/09/22 Чтв 13:08:11 2463408 528
>>2463162
Фриланс сдох ещё лет 10 назад. Сегодня там ни денег, ни вменяемых заказчиков.
Если нравится долбиться с требовательными нищими баранами за месячную ставку курьера из Яндекса, то велкам. Я лучше нормальную работу найду.
Аноним 15/09/22 Чтв 13:23:51 2463414 529
>>2463247
>Какая может быть задача, чтобы под нее пришлось разрабатывать свой архиватор при наличии огромного количества существующих?
Это был пример. Подставь своё.

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

>>2463247
>В Руби вообще применяется monkey patching
В руби манки патчинг доступен как инструмент, но не обязателен. Вообще с метапрограммированием есть правило: его много в фреймворке и мало в бизнес-части.
Манки-патчинг офигенно удобен для тестирования поведения приложения в прошлом или будущем (гем timecop емнип). В других языках мне этого не хватало.
Аноним 15/09/22 Чтв 15:34:15 2463519 530
>>2463285
>Если бы ты занимался инженерными разработками, твоей зп не хватало бы на ужин в столовой.
Это зависит от компании. А компания зависит от твоих скилов.

>Для этого уже нужны мозги иногда. ... И это уже не к кодовым макакам.
Ну да. Но при этом если ты работаешь с пхп - у тебя шансов туда попасть ровно ноль. С другими языками шансы выше. Технология с которой ты работаешь изменяет сознание.
Аноним 15/09/22 Чтв 15:36:45 2463527 531
>>2463247
>время с профайлером получается в 1,5-2 раза больше чем без профайлера
Какое именно время?
Аноним 15/09/22 Чтв 15:57:11 2463543 532
>>2463527

Время выполнения скрипта.
Аноним 15/09/22 Чтв 16:11:02 2463558 533
Это в htaccess

RewriteRule ^([-\w]+)?$ index.php?p1=$1

Пропустит какую-то заразу в в php? Входящие данные заливаются в базу через pdo, выводятся и экранируются через smarty, цифры отдельно фильтруются, но все же...
Аноним 15/09/22 Чтв 16:17:41 2463571 534
image.png 1497Кб, 1000x1500
1000x1500
Аноним 15/09/22 Чтв 16:23:56 2463586 535
define("url1", ($url1 = 2));
define("url1", $url1 = 2);

echo url1;

Выводит 2

Разве не должно быть true?
Аноним 15/09/22 Чтв 16:27:08 2463588 536
Как сделать функцию для вывода главной страницы сайта?А не просто нагородить index.php c какшей пхп кода,а чтобы по красоте?
Аноним 15/09/22 Чтв 16:29:46 2463591 537
>>2463543
Да и хер бы с ним. Понятно что профайлер замедляет. Меня интересуют самые частые и самые медленные функции, то есть их относительная доля, а не абсолютное время.
Аноним 15/09/22 Чтв 16:32:40 2463594 538
cotolamp.jpg 74Кб, 1280x784
1280x784
Аноним 15/09/22 Чтв 16:33:34 2463595 539
Аноним 15/09/22 Чтв 17:18:23 2463624 540
>>2463054
>как работает сборка мусора
Там порою достаточно задать вопрос: Почему объект меняется в void методе.
Я на собесах порой задаю этот вопрос так называемым тимлидам дабы понять уровень его компетенции и не отвечают многие, лул.
Аноним 15/09/22 Чтв 19:25:48 2463719 541
>>2463588
Почитай про MVC.
Когда разберёшься с принципом, то сделай какую-нибудь реализацию - либо сам, либо подсмотри во фреймфорках.
Аноним 15/09/22 Чтв 19:46:15 2463741 542
Аноним 15/09/22 Чтв 20:31:39 2463776 543
>>2463719
Чет там классы,автолоадеры,намспейсы,абстракторы...
Аноним 15/09/22 Чтв 20:46:15 2463788 544
Стоит ли лезть в воркенман?
Аноним 15/09/22 Чтв 21:11:33 2463798 545
>>2463316
>>2463313
Лолчто блять, сразу видно пехапешников, за неимением технических компетенций, у них автоматом сеньор=подчиненные.
Ещё раз, сеньор - это тот, кто отлично шарит в сложных технических вопросах, например в архитектуре. Тот, у кого есть подчиненные - это лид. Лид не обязан быть сеньором, сеньор не обязан быть лидом.
Лид может делегировать задачи на проектирование системы сеньору, а сам управлять командой, решать задачи по коммуникации и так далее.

> П твоей логике тогда синьор на на Go будет джуном в пыхе и джаве потому что в Go нет полноценного ООП, а на собесах у джунов даже это спрашивают.
Мою мысль ты уловил, в целом так и есть. Но всё же не джуном, а миддлом. Но точно "сеньор го" != "сеньор джава", потому что у джавового рантайма дофига тонкостей, без знания которых, ты не сможешь к примеру, тюнить jvm под определенные профили нагрузки. И гошному сеньор придется потратить годик, чтобы разобраться в этих вопросах. А php'шному сеньору придется потратить лет пять, потому что он не будет разбираться во множестве других вопросов, в которых разбираются и гошники, и джависты.

>>2463143
> Вы реально дураки. Как ты можешь писать "все PHP-ники не знают X" если ты скорее всего общался с 1-2 PHP-шниками, а не со всеми сотнями тысяч их.
Ещё раз, PHP не подразумевает к примеру работы с гц, соответственно, мы будем считать, что php'шники не умеют с ним работать, если они не знают ещё и других ЯП. С этого аргумента мы и начали, что пыха как язык ограничивает программиста, не давая ему получить опыт решения ряда задач, с которыми сталкиваются программисты на других ЯПах.
Аноним 15/09/22 Чтв 21:19:36 2463804 546
>>2462387
Большое тебе спасибо, дорой друг.
Аноним 15/09/22 Чтв 22:14:08 2463847 547
>>2463776
А то.
Есть два разных подхода для вката - или делаешь велосипеды, мучаешься, смотришь как делали другие и просветляешься.
Либо сходу начинаешь использовать фреймворки, имеешь меньше проблем, но считается что так хуже будешь понимать как работает вся система в целом.
Попробуй повелосипедить, раз пугает такое количество терминов.
Потом, если не забросил, изучай новые фичи и добавляй.
Аноним 15/09/22 Чтв 22:18:45 2463854 548
О экранировании при выводе из Mysql:

Есть какой-то универсальный способ или надо полагаться на шаблонизатор?
Аноним 15/09/22 Чтв 23:24:38 2463918 549
>>2463854
Экранирование должно всегда происходить на самой финальной части, иначе слишком велик шанс, что ты что-то экранируешь дважды и получится жопа.
Если ты возвращаешь целиком html страницы - то да, экранировать должен шаблонизатор, если умеет.
Аноним 15/09/22 Чтв 23:57:22 2463933 550
>>2463414

Ну то есть, ты даже не представляешь себе, какие бывают задачи, а опираешься на фантазии. Те сложные задачи, о которых ты мечтаешь, но не знаешь, как правило, разрабатывается не в коммерческих компаниях, а в академической среде. Например, (древние) алгоритмы архивации вроде LZ77/78 - первоначально описаны в научных работах Лемпеля и Зива. Коды Хаффмана - тоже научная работа. Если ты возьмешь современные технологии вроде нейросетей, то опять же все открытия описываются в научных работах. Архитектура процессоров RISC была разработана в университете как эксперимент.

Академия идет впереди коммерческих компаний, для примера, Тьюринг написал свою знаменитую работу по проблеме останова в 30-х годах, когда еще ни одной ЭВМ не существовало.

Бизнес, как правило не финансирует такие работы, так как непонятен выхлоп и переспективы. Те же коды Хаффмана придуманы в 50-х годах, когда они мало кому были нужны. Только гиганты вроде Гугла могут финансировать такие работы (за их счет велись некоторые работы по нейросетям, например, для машинного перевода).

Возьми Телеграм, например. Это бизнес, но что они изобрели? Они просто сделали удачный продукт и интегрировали множество open source кода. Они не изобретали алгоритмы сжатия видео, например.

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

Поэтому если ты хочешь реально интересные и передовые задачи, то бросай свой Эликсир и иди в аспиранты, или не знаю, куда надо идти чтобы заниматься наукой. Правда, там могут платить не так хорошо, как хотелось бы. Или в Гугл, если сможешь пробиться в R&D, а не на перепиливание админки рекламодателя под material design.
Аноним 15/09/22 Чтв 23:58:25 2463935 551
>>2463414

> Манки-патчинг офигенно удобен для тестирования поведения приложения в прошлом или будущем (гем timecop емнип). В других языках мне этого не хватало.

Это не удобство, это вынужденная необходимость из-за того, что в Руби все на статических вызовах и приходится прибегать к костылям, чтобы эти вызовы мокать.
Аноним 16/09/22 Птн 00:00:55 2463936 552
>>2463591

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

То есть условно, в реальности у тебя 1000 вызовов маленькой функции быстрее, чем 1 большая, а с профайлером может получиться наоборот.

Этого недостатка лишены семплирующие профайлеры, которые N раз в секунду делают снапшот стека, но я не работал с такими для PHP и не знаю, есть ли они вообще.
Аноним 16/09/22 Птн 00:04:07 2463939 553
>>2463935
>все на статических вызовах
Это как?
Аноним 16/09/22 Птн 00:08:14 2463941 554
>>2463939

Надеюсь, ты не тот человек, который 16 языков изучил, включая Эликсир.

Статический вызов это вызов функции без создания объекта. Например:

res = Net::HTTP.get_response(uri)

Здесь жестко захардкожен вызов определенной функции и без манки-патчинга ты не можешь перехватить его. В других языках вроде PHP HTTP-клиент просто передается как объект и его можно подменить на мок без всяких патчей.
Аноним 16/09/22 Птн 00:12:33 2463943 555
>>2463798

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

Если у человека задача показать в приложении курьеру информацию о заказе и точке доставки, зачем ему изучать алгоритмы архивации или особенности сборщика мусора? Давай тогда без 20 лет подготовки с изучением всей истории computer science к компьютеру не допускать.

Ты, прежде чем поменять цвет кнопки на сайте, идешь в художественный колледж? Или просто берешь и меняешь? Так же и PHP разработчик, берет и решает задачу, используя данные ему инструменты.
Аноним 16/09/22 Птн 09:30:24 2464042 556
>>2463798

> Лолчто блять, сразу видно пехапешников, за неимением технических компетенций, у них автоматом сеньор=подчиненные.

А ты походу джунятина которая думает что чтобы стать синьором нужно знать тонкости работы ЯП, ОС, архитектуру кудахтера и прочее. Велико же будет твое разочарование.

Джун-выпускник топ ВУЗа будет знать куда больше о компиляторе, сборке мусора, алгоритмах и тд, а будет джуном и будет зарабатывать меньше скуфа который круды 10 лет пилит. О как.

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

>Мою мысль ты уловил, в целом так и есть. Но всё же не джуном, а миддлом

Почему? Ему зададут вопросы по ООП и паттернам, а он только на го писал и про это не знает. А вкатун с курсов скилфэктори знает, там ему дядя с хвостиком пояснил. Получается даже не джун?

Хотя мне например понятно что гошник будет знать ООП и выберет го именно потому что там этой хуйни нет: С чем его и поздравляю.

> язык ограничивает программиста, не давая ему получить опыт решения ряда задач, с которыми сталкиваются программисты на других ЯПах.

Это ты максимально комплемент пыхе сделал, на самом деле. Это было бы пиздато если бы это было так, но это не так.
Аноним 16/09/22 Птн 14:30:31 2464246 557
>>2463941
>Статический вызов это вызов функции без создания объекта. Например:
>
>res = Net::HTTP.get_response(uri)

а, ты про это.
ну это просто вызов функций. в примере Net::HTTP в примере играет роль неймспейса, но суть та же.

но как из этого следует, что "манки-патчинг - это вынужденная необходимость"? напоминаю, решение о введении манки-патчинга принималось Матцом в то же время, когда и решение о введении "статических методов" как ты их назвал - на этапе проектирования языка. это в пыхе могло быть так, что сначала появился статический вызов от одних авторов, потом через семь лет другая команда добавила патчинг. а в руби это запланированная особенность языка.
Аноним 16/09/22 Птн 14:35:09 2464254 558
>>2463941
>вызов функции без создания объекта
Кстати вот тоже неправильно. Объект там создаётся на этапе компиляции кода.

https://github.com/ruby/net-http/blob/196f3d70f9ce154dc63a86a2cdbf1aec4df4982e/lib/net/http.rb#L397 - здесь создаётся объект Net::HTTP (синглтон)

https://github.com/ruby/net-http/blob/196f3d70f9ce154dc63a86a2cdbf1aec4df4982e/lib/net/http.rb#L494 - здесь объявляется метод этого объекта

В Руби всё есть объект. В том смысле что на всё можно навешать методов.
Аноним 16/09/22 Птн 15:15:31 2464280 559
>>2463943
Вернёмся к моему примеру с водителями. Если всё, что тебе нужно - это возить людей между станциями метро, то тогда да, нетребовательность к знанию тобой пдд это преимущество профессии машиниста. Но при этом если (а рано или поздно это произойдёт, потому что жизнь сложная штука) тебе потребуется отвезти клиента не с Охотного ряда на Сокольники, а куда-нибудь в Зеленоград, то ты моментально охуеешь и если и сделаешь это, то очень плохо.
Так и тут, пока тебе нужно красить кнопки в html, пыха будет решать твои задачи и ты будешь счастлив. Но когда-нибудь тебе потребуется сделать лайв чат или может быть даже видеочат, сервер для онлайн игры или что-то такое и моментально выяснится, что ты ничего особо не знаешь и не умеешь, за пределами того, как красить кнопки в html.
Поэтому это "преимущество незнания" - мнимое, скорлупа этого яйца защищает тебя от неблагоприятной внешней среды, но она же и ограничивает твой рост и если ты её не разобьешь, то так и останешься на уровне цыплёнка.

>>2464042
> А ты походу джунятина которая думает что чтобы стать синьором нужно знать тонкости работы ЯП, ОС, архитектуру кудахтера и прочее. Велико же будет твое разочарование.
Я как раз перешагнул рубежи и синьора и лидства очень давно, когда ещё называлось по-другому. И с высоты своего опыта как раз могу тебе сказать, что лычки в разных конторах разные, я видел и такие, где сеньорами называют тех, кто больше года продержался.
В реальности есть две разные траектории развития, одна - техническая, вторая - менеджерская. Одна про программирование, вторая про людей. И как бы мы их не называли, они будут про разный набор навыков.
Я говорю про "топ техника" (которого я и называю сеньором), "топ техник" джавист и "топ техник php" это две больше разницы. А вот "топ менеджер джавист" и "топ менеджер php" кстати будут очень похожи, потому что оба руководят людьми, а не ЯПами.

> Почему? Ему зададут вопросы по ООП и паттернам, а он только на го писал и про это не знает. А вкатун с курсов скилфэктори знает, там ему дядя с хвостиком пояснил. Получается даже не джун?
Вкатун с курсов будет знать только теоретически, а гошник так или иначе будет с такими паттернами знаком, пусть и немного в другом виде. Но как раз из-за того, что "ооп" в го и ооп в джаве это разные вещи, 1 к 1 сеньор гошник в сеньор джависта не смапится, пока не перекуётся. Но перековаться ему будет сильно легче, чем "голому" вкатуну, потому что будет, с чем проводить аналогии, это старт не с нуля, а с, ну пусть будет, 50%.
Аноним 16/09/22 Птн 15:25:34 2464290 560
>>2464280
>Вкатун с курсов будет знать только теоретически, а гошник так или иначе будет с такими паттернами знаком, пусть и немного в другом виде.
Дык основная разница - не в "знать", а в "уметь сделать". Потому что теория всегда отличается от реальности, и ты либо умеешь с этим отличием справляться либо нет. Вообще это пожалуй есть причина успеха в индустрии - не иметь готовый ответ, а уметь его находить. Потому что завтра будут новые вопросы. Курсы в этом смысле могут и не помочь.
Аноним 16/09/22 Птн 16:01:10 2464329 561
>>2464290
Курсы конечно не помогут. Но опыт решения примерно тех же задач обычно помогает, получается его переиспользовать. Мне неоднократно случалось переходить с одного языка на другой и каждый раз это было не совсем с нуля.
И изначально мы начали с того, что в случае php во большому ряду навыков это будет практически с нуля, в этом и проблема. В отличие от перехода go -> java, где конечно всё в деталях по-разному, поэтому мгновенно перейти не получится, но всё же похожего достаточно, чтобы переход не был с нуля.
Аноним 16/09/22 Птн 16:13:55 2464348 562
Почему в https://github.com/php-fig/http-message/blob/master/src/UploadedFileInterface.php нет геттера для имени временного файла? Мне оно нужно, чтобы определить mime тип через finfo_file. Ну я понимаю, что я могу просто в $_FILES посмотреть, но почему тут-то этого нет...
Аноним 16/09/22 Птн 16:21:18 2464355 563
>>2464348
Лишняя деталь реализации, которую решили не показывать. Кмк. Либо чтобы ты не залочил его открытием, и система могла его удалить. Перемещай файл куда тебе надо и делай что тебе надо.
Аноним 16/09/22 Птн 17:21:11 2464417 564
>>2464280
>Вернёмся к моему примеру с водителями

Ну здесь ты рил хуйню высрал. Окей давай так. Допустим разработчик на C++ знает больше потому что ему нужно писать свои аллокаторы и он понимает как работает память, в то время как разработчик на пыхе пишет бизнес код.

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

Так получается?

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

А какой-нибудь ПХПшник работал в маленькой компании и может и фронт, и бэк, и деплой сделать. И ssl-ку прикрутить может. А какой-нибудь работающий в большой компании крестовик может не уметь проект с нуля начать.

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


В то же время синьорность и софт скиллы это такая штука которую ты добился, научился руководить разработкой и переносишь этот навык куда угодно.
Аноним 16/09/22 Птн 18:05:38 2464458 565
>>2464417
Я если честно уже заебался спорить с местными долбоебами, пусть думайте, что хотите. Уже несколько человек раз десять за последнюю неделю писали здесь детально, в чём разница между набором скиллов пехапешника и джависта, всё равно, местные дурачки не хотят читать и думать, а хотят убеждать всех, что типа им и на пыхе заебись. Ну что сказать, думайте дальше.
Только в следующий раз, когда обнаружите, что у вас зп в два раза меньше или в очередной крупной компании перешли с php на golang и прекратили найм пыхеров - не нойте, а вспомните, что у вас был шанс.
/thread
Аноним 16/09/22 Птн 18:27:27 2464477 566
Аноним 16/09/22 Птн 20:36:40 2464606 567
Screenshot from[...].png 51Кб, 767x392
767x392
>>2464477
Наконец-то рубист из треда выкатился на хабр и его обоссали там с ног до головы.
У автора нет аргументов, как можно заметить, только двач-жаргон и нытьё какой пхп плохой :)

>Типовые вопросы на собесах по PHP - это вопросы веры и дрочки. >Нужно верить в SOLID
Ошибка автора - он не пытается учиться, он не понимает почему опытные дяди спрашивают его про солид.
Аноним 16/09/22 Птн 21:28:00 2464666 568
>>2464606
А в треде были рубисты? Или мы эрлангиста за рубиста считать будем?
я гошник #2463054 если что
Аноним 16/09/22 Птн 22:40:09 2464718 569
>>2464606
Сам-то что можешь рассказать про SOLID? Зачем и когда он нужен, а когда не нужен? Какие буквы являются языко-специфичными, а какие - общие для всей разработки?
Аноним 16/09/22 Птн 23:58:34 2464768 570
>>2464718
все пять букв не нужны, нормальные люди пишут в процедурном стиле
Аноним 17/09/22 Суб 00:02:41 2464770 571
>>2464458

Зайка, иди ищи работу из 41 вакансии на Эликсире, гордись своей элитарностью и не переживай за PHP разработчиков, использующих этот язык как способ быстро войти в индустрию.
Аноним 17/09/22 Суб 00:12:31 2464776 572
>>2464606

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

Вот, кстати, тут нахваливают Го. Давайте, расскажите, например, как в Го парсить аргументы командной строки в структуру на основе аннотаций и чтобы помощь генерировалась автоматически. Убожество из стандартной библиотеки (flag) с указателями на глобальные переменные это не серьезно.
Аноним 17/09/22 Суб 00:13:22 2464778 573
>>2464768

Да, если ты решаешь задачку из универа на 20 строк то процедурный стиль идеален.
Аноним 17/09/22 Суб 00:17:27 2464781 574
>>2464776
Доебался до нюансов.
Го не за это нахваливают.
И у гошников зепка в полтора-два раза выше чем у похапешника - с этим поспорь.
Аноним 17/09/22 Суб 00:20:26 2464782 575
>>2464768
>нормальные люди пишут в процедурном стиле
Я бы еблище разбил за такие слова.

>>2464770
>использующих этот язык как способ быстро войти в индустрию
И остаться скриптокодером на всю жизнь.

>>2464781
>И у гошников зепка в полтора-два раза выше чем у похапешника
Максимум которых на беке это писать микросервисы т.к хуй ты напишешь большой сайт на гоше
Аноним 17/09/22 Суб 00:21:53 2464785 576
>>2464778
дружок, если ты решаешь задачу больше 20 строк, то тебе в целом безразлично на каком языке её решать, если твой язык хотя бы имеет в себе концепцию ООП, ничего радикально нового в ней не придумали. Ты пойми, бизнес платит не за элитарность языка, а за решение задачи.

А теперь про солид только одна буква специфична для твоего любимого руби, и то, только до 3.0 в которой у тебя теперь есть человеческие интерфейсы
Аноним 17/09/22 Суб 00:24:30 2464786 577
>>2464782
>Я бы еблище разбил за такие слова.
Потому что нормальные люди пишут в функциональном стиле.
Аноним 17/09/22 Суб 00:27:16 2464789 578
>>2464782
>большой сайт
Заканчивай уже мыслить категориями сайтов.
Есть приложение с бизнес-логикой. А есть веб-морда к нему.
Приложение отдельно. Веб-морда отдельно.
Между приложением и веб-мордой есть внутреннее апи. Удобно, когда оно построено средствами языка, то есть когда обе части написаны на одном языке. Но это не критично.
Главное чтобы в понимании приложение было отделено от веб-морды. И тогда веб-морда перестаёт быть большой. Или сложной.
Аноним 17/09/22 Суб 00:29:37 2464791 579
>>2464786

Много ли вам известно, например, мобильных приложений, написанных на функциональных языках? Много ли вакансий на такие языки?
Аноним 17/09/22 Суб 00:33:03 2464793 580
>>2464791
а в процедурном..?
а на руби..?
Аноним 17/09/22 Суб 00:36:29 2464794 581
image.png 14Кб, 743x134
743x134
image.png 19Кб, 773x157
773x157
image.png 45Кб, 703x376
703x376
>>2464477
Найс переобуваешься. руби ещё живой, хуясе.

>Учит питоновский синтаксис 3 года
>Называет людей со средним IQ петухами
Ты же по факту тупее петуха, лул.

>>2464789
>Заканчивай уже мыслить категориями сайтов.
С чего вдруг?

>И тогда веб-морда перестаёт быть большой
А приложение тоже перестаёт быть большим? Или большие сайты нинужна?
Аноним 17/09/22 Суб 00:39:24 2464796 582
>>2464789
Заканчивай уже мыслить категориями микросервисов.
Аноним 17/09/22 Суб 00:39:58 2464797 583
>>2464791
В функциональном стиле можно писать на многих языках. Может кто-то и пишет. Деталей про мобильную разработку не знаю.
Аноним 17/09/22 Суб 00:51:05 2464800 584
>>2464786
>пишут в функциональном стиле
Пишут что, сайты? Или драйвера которые потом выкатывают в опенсорс, а красноглазых байтоёбов выкидывают за ненадобностью
Аноним 17/09/22 Суб 00:54:36 2464802 585
>>2464800
Сайты, опердени итогдалие. Драйверы конечно же пишут по-другому, там своя атмосфера, начать хотя бы с того, что язык должен быть без gc с вытекающими.
Аноним 17/09/22 Суб 00:59:22 2464806 586
>>2464802
>Сайты
Выйди из треда и иди пиши микросервисы для магазина написанного на пехапе.
Аноним 17/09/22 Суб 01:04:41 2464811 587
>>2464806
За тройной прайс - легко
Аноним 17/09/22 Суб 01:41:38 2464831 588
>>2464811
Возьми с полки пирожок. Боже каким же надо быть уебаном, чтобы выбрать функциональный язык для вэба когда есть решётки или жава с той же производительностью
Аноним 17/09/22 Суб 02:07:36 2464843 589
>>2464831
> с той же производительностью
тогда чего ж ты порвался, если производительность не уступает?

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

>решётки или жава
какие решётки? c#? жава - это именно жава? почему именно они и что в них такого? а то есть f# на дотнете и scala/clojure на jvm
Аноним 17/09/22 Суб 02:25:08 2464846 590
>>2464794

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

Руби по стилю кодирования ничем не лучше PHP, а плохих практик там даже наверно больше. У нас в PHP один модуль не патчит другой модуль при импорте, например.

По его мнению, единственный плюс Руби в том, что на нем труднее найти разработчика-сеньора и потому сеньору легче пройти собеседование.
Аноним 17/09/22 Суб 02:27:50 2464847 591
>>2464843

Успокойся уже со своим Эликсиром, который основан на двух непопулярных языках и сам еще менее популярен. Сомневаюсь, что он где-то используется, если на него 41 вакансия.
Аноним 17/09/22 Суб 02:42:48 2464849 592
image.png 14Кб, 521x97
521x97
>>2464847
> который основан на двух непопулярных у пхпшников языках и сам еще менее популярен у пхпшников
пофиксил тебя

>Сомневаюсь, что он где-то используется, если на него 41 вакансия
пикрил и подобное периодически прилетает в почту. это не я на вакансии апплаюсь, это мне пишут, чтобы ты понимал
Аноним 17/09/22 Суб 02:46:18 2464850 593
image.png 22Кб, 487x318
487x318
>>2464843
>ты порвался
Хуя у тебя манямирок, ты полностью одебилил на своём эликсире? Таблетки пил сегодня?

>что в них такого?
Одебилившему функциональщику увы не понять.

>а то есть f# на дотнете и scala/clojure на jvm
Мелкобуквенный еблан, будь добр и перефразируй, а то из твоего потока шизофазии тяжело вычленить мысль.

>>2464849
Сеньёрам эликсирщикам платят как мидлам на пхп, лул. Завязывай срать себе в штаны и покинь тред.
Аноним 17/09/22 Суб 02:53:25 2464851 594
>>2464846
>Руби по стилю кодирования ничем не лучше PHP
ты не поймёшь. дело не в стиле кодирования. дело в множестве факторов, которые в совокупности дают взрывной эффект и позволяют генерировать идеи. тебе пхпшнику это неведомо, но вот в мире разработки есть ещё и такой феномен. из руби-коммьюнити вышло много новых идей и решений на них основанных, из которых остальные языки почерпнули, это самое плодовитое коммьюнити из известных мне. это потому что сам язык не сковывает программиста и позволяет делать крайне необычные и крутые штуки, например https://github.com/mame/quine-relay

можешь ли ты сказать, что твой пхп не сковывает тебя? гыгы

>а плохих практик там даже наверно больше
оригинальная идея от человека, не умеющего в руби
Аноним 17/09/22 Суб 03:01:16 2464853 595
>>2464850
>Одебилившему функциональщику
в голосину

>Сеньёрам эликсирщикам платят как мидлам на пхп, лул
да, а ещё на них смотрят как на программистов, а не как на дрессированых макак. такие письма как твой пикрил я даже не дочитываю.
я ж говорю, пхпшникам деньги бьют в голову, из-за чего они перестают соображать. и это прекрасно, расмус великое дело сделал
Аноним 17/09/22 Суб 03:05:27 2464855 596
>>2464853
>такие письма как твой пикрил я даже не дочитываю
Эти >>2464849 Я дочитываю, а эти >>2464850 другое и пынямать нада, лул! Ты же по факту тупее пехапемакаки.

>я ж говорю, пхпшникам деньги бьют в голову
А элексирщикам нет, вот ты тут и рвёшься целую неделю если не больше от того, что безработный и делать нехуй.
Аноним 17/09/22 Суб 03:10:53 2464856 597
>>2464855
>Эти Я дочитываю, а эти другое
вижу слово "php" - отвечаю "нет, спасибо" не дочитывая

>А элексирщикам
Я полиглот, мань
Аноним 17/09/22 Суб 03:19:37 2464858 598
>>2464856
>Я полиглот
Ты хуеглот, мань.
Заучил синтаксис 10ти Си подобных япов и сидит выёбывается клоун. Сложнее калькулятора на расте сможешь написать чего нибудь? На работу не берут тебя именно потому, что ты нихуя не знаешь о япе на который устраиваешься?
Аноним 17/09/22 Суб 03:42:00 2464862 599
>>2464858
>Сложнее калькулятора на расте
видишь ли в чём дело. раст - очень большой язык, у него и кривая входа крутая, и за ней скрывается большая область и теории, и практики. у него очень много областей применения. то есть его можно изучать и изучать, благо он написан умными людьми.

а в твоей пыхе что можно изучать? заёбы очередного менеджера? или очередного гуру впихивающего тебе очередной solid? ооп как серебряную пулю? дефолтные параметры в функциях? покрытие логики проверками на null? ещё какую-то мудрость от червей-пидоров? секреты раскрываются в первый год, дальше начинается борьба с инструментом. про это в статье на хабре и написано кстати. инструмент настолько простой и тупорылый, и количество его адептов настолько велико, что в нём образуются локальные движухи вплоть до орденов. "пхп - язык с большим потенциалом, в нём можно много чего сделать" - угу, например вебсокеты из коробки... ах да
Аноним 17/09/22 Суб 04:01:29 2464864 600
>>2464862
>раст - очень большой язык
Нет. Большой язык это плюсы, а это низкоуровневое поделие в котором даже объектов нет.

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

>а в твоей пыхе что можно изучать?
>А вот в пехапе...

>дальше начинается борьба с инструментом
Хуле энта ваша отвёртка не имеет электропривода и почему она не пилит деревья? Она что существует лишь для того, чтобы не утруждаясь написать сайтик?
Ты же реально дебил который сравнивает швейцарский нож с отвёрткой.
Ладно ты меня утомил. Работу себе хотя бы пехапешником найди, а то срёшь тут целыми днями одним и тем же. Надеюсь ты в состоянии пройти собеседование на ждуна в пехапе?

>настолько простой и тупорылый
Но даже в нём есть ооп в отличии от языка написанного умными людьми.

Вот бы на функциональных япах написать хороший поддерживаемый код с шаблонами проектирования... ах да.
Всего хорошего тебе, надеюсь тебя возьмут на работу и ты будешь сам себе оплачивать тырнет.
Аноним 17/09/22 Суб 08:01:31 2464896 601
>>2452401
>Крч, рассказываю, как бывает при личностном росте (тебе неведомо, но хоть представить попробуй).
Сейчас программист (ещё и СНГшный, судя по всему) пояснит за личностный рост.
>Когда ты овладеваешь каким-то ремеслом - ты однажды, и это неизбежно, встаёшь перед выбором - искусство/знания vs деньги.
Этот выбор нормальные люди делают ещё перед выбором ремесла.
Сам тот факт, что ты выбрал программирование, а не, например, математику (ты ж такой умный у нас, типа), уже говорит о том, что ты выбрал деньги.
А теперь ты приходишь к пехапешникам и обсираешь их за то, что они пошли до логического конца в таком выборе - писать говнокод и грести деньги лопатой, не заморачиваясь больше ни о чём.

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

>>2453203
>Искусство - оно про то как убрать всё лишнее и оставить только суть.
Согласен.


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


>>2463247
>Насколько я знаю, работа с машинным зрением обычно подразумевает "взять open source библиотеку и крутить параметры, пока не заработает". Или ты, например, на полном серьезе будешь с нуля разрабатывать архитектуру нейросети? Здесь уже не программирование нужно, а математика + изучение научных работ. Я сомневаюсь, что эликсирщик на такое способен.
Этот шарит.

>>2463933
Отлить этот пост в золоте и повесить в шапку программача.

Это ж надо, никогда бы не подумал, что такой максимально адекватный пост встречу на этой доске в принципе, и в пехапе-треде в частности.

Всегда потешно, когда программисты заявляют, что это они создают новые технологии. А быдло и ведётся, ведь.
Аноним 17/09/22 Суб 10:13:22 2464944 602
-NDRvGLUl5M.jpg 1459Кб, 1619x2116
1619x2116
Я больше ловлю лулзы, что у PHPшников логическое мышление работает, в отличие от говноэликсирщика в треде.

Простой ООП-язык, где от контроллера до сервисов может быть классов 50 и ты за 5 минут всё поймёшь что к чему. Где не надо семь пядей во лбу иметь , чтобы писать код.
Максимально быстро вкатываешься, максимально быстро получаешь зар.плату джависта, максимально быстро получаешь современные проекты на 7.4-8.1 без легаси-говна.
Я когда на пыху устраивался - моя первая зп была не в рублях даже, а ещё в офисе никогда не работал, а ещё английский мало требуют.

PHP - лучший ЯП для бэка. Ни разу не пожалел что выбрал однажды его. А вот эликсирщику в треде завидно что ему работу нереал найти, ему надо 100500 книг перечитать и аспирантуру окончить, чтобы на это говно устроиться. А пхпшнику достаточно рассказать что такое солид с фабрикой, кек.
Хоспаде, благослави тот день, когда я выбрал божественный PHP!
Аноним 17/09/22 Суб 10:29:13 2464960 603
Без названия.png 3Кб, 300x168
300x168
Анон, 2 вопроса:

Стоит ли мне, как новичку, вручную ставить ngnix и последнюю версию php, на чистую систему Ubuntu;
ИЛИ можно поставить FASTPANEL? Я бы хотел динамически переключать версии php,(туда и 7 и 8 и postgres и sql установить можно через настройки->приложения. Хочу делать тесты и изучать различия PHP, легаси. Копаться в конфигах это интересно, я тоже люблю bash но я могу потратить время на что то полезное, типа изучаения фронтенда. ПО логике, все что устанавливет FASTPANEL , ведь я могу достать/сконфигуровать из из системы стандартными способами (bash, проводник)?

Или вообще стоит вкатываться в конф.файлы, ngnix/apache Docker, пердолинг?
Вы же на работе не занимаетесь настройкой серверов и докера?

И второй вопрос, Можно ли сделать бекап всех скачиваемых приложений-зависимостей для последующего пользования, на случай если у нас сделают таки КИБЕРГУЛАГ? Apt-пакеты сохраняются куда-то в систему --dowload-only - но там все в каше, все вместе с хуй пойми чем, я не могу понять где зависимости где мои программы
Аноним 17/09/22 Суб 10:49:01 2464972 604
>>2464944
>максимально быстро получаешь современные проекты
Вот тут бы я поспорил, максимально быстро и без хлопот получаешь как раз таки охуенный легаси без тайпхинтов и работающий на какой то своей эфимерности, работа чисто по наитию. Сейчас на таком проекте, каждый день летаю на марс

>Ни разу не пожалел что выбрал однажды его
Я вот жалею, что сразу не вкатился в решётки. Ибо там ты действительно за 5 минут всё поймёшь что к чему.

>>2464960
>Стоит ли мне, как новичку, вручную ставить ngnix и последнюю версию php, на чистую систему Ubuntu
Нет, ставь мяту (она легче и более юзерфрендли) и накатывай туды докер и docker-compose офк. Написал docker-compose up и пишешь на нужном стеке без мозгоебли.

>>2464960
>вкатываться в конф.файлы, ngnix/apache Docker, пердолинг
Только если планируешь в девопс, а так уже всё давно за тебя написано.
Аноним 17/09/22 Суб 11:07:39 2464982 605
>>2464972
>ставь мяту
Вот чего чего, с советовать mint вместо debian или rhel-based для разраба это конечно пиздос, как вообще можно вообще упоминать эту пародию на windows, которую на продакшене никто нахуй не использует

>в решётки
>там ты действительно за 5 минут всё поймёшь что к чему.
Поймешь как изобрететь себе велосипед? Или вычислять математические формулы по перегреву видеокарты?

пл моему, ты больной
Аноним 17/09/22 Суб 11:40:44 2465006 606
>>2464982
>mint вместо debian
Минт это дебиан системы как и убунта.

>пародию на windows
Перестанешь быть красноглазым консолеёбом, одни плюсы.
sudo sudo sudo

>Поймешь как изобрететь себе велосипед?
Все велосипеды на решётках уже давно изобретены, остаётся только научится пользоваться фреймворками.
Аноним 17/09/22 Суб 12:50:44 2465065 607
>>2464982
> вместо debian или rhel-based
Только БСД,только хардкор
Аноним 17/09/22 Суб 12:59:56 2465084 608
f5787298cfda955[...].png 39Кб, 549x321
549x321
>>2465006
После винды, терминал мне божественным пришествием показался. То, для чего изобрели компы. Я пердолился с win командной строкой, она вообще своей жизнью живет, неспособная ниначто хуйня, (зачем она там, для меня до сих пор вопрос). Я и сам писал .bat файлы частенько, для решения различных задач, там настолько все через жопу, что каждый раз было стремно запускать новую команду, не дай аллах скобочку не так поставиш - и пиздос твоим файлам, или файловой системе, или еще где нибудь всплывет такая ахинея, что хочеться застрелиться

Я вообще не ебу, как на серьезных щщах можно кодить на windows. Это система для инвалидов. Если бы не photoshop и пара программ, и игр для тянучки избавился бы от нее не задумываясь. Вообще для дизайна макось тоже отлично подходит, но как бывший пользователь мака могу сказать что со смертью Джобса, умер и мак, и apple - и вообще, та же Ubuntu, очень сильно похожа на мак-ос - обе кайфовые ос.

А если человек по своей воле сидит на windows, кодит на ++ это показатель просто человека из прошлого, или хз, вообще чем он занимаеться и зачем. Может станки программирует в НИИ или детей на информатике мучает.
Или просто делает вид, что работает.
Аноним 17/09/22 Суб 13:20:51 2465109 609
>>2465084
>После винды, терминал мне божественным пришествием показался
Тут сыглы.

>как на серьезных щщах можно кодить на windows
Скачиваешь студию, нажимаешь пару кнопок и кодишь. Легко правда?

>Это система для инвалидов
Описал инвалида по зрению т.е линуксоида который не вылазиет из терминала, чтобы накрутить себе очередной драйвер через васянский репозиторий который с этой версией kernel'я не работает?

>и пара программ
>Любая медийная
Поправил

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

>макось тоже отлично подходит
Как и для поиска себе партнёра для гомосекса.

>та же Ubuntu, очень сильно похожа на мак-ос
Особенно Unity оболочкой... Которая мусорит систему так, что через пол года уже анрил на ней работать и надо сносить.

>>2464960
>на чистую систему Ubuntu
Как подтверждение, лул. Сколько месяцев прошлая простояла до того момента пока перестала работать менее отзывчивее винды?
Всё что я делаю на мяте так это чищу докер уже 2 года без всякой потери отзывчивости системы.

> кодит на ++ это показатель просто человека из прошлого
Долбаёб итт, у тебя браузер на чём написан клоун? Твои игрушки на чём написаны на питоне, боже какие же пехапе макаки ебанутые просто...
Аноним 17/09/22 Суб 13:36:30 2465126 610
>>2465084
>это показатель просто человека из прошлого
Даже твоё пэхапе как и жаес интерпретируется плюсами блядь. как можно было такую хуету написать? Тебе хоть стыдно, надеюсь?
Аноним 17/09/22 Суб 13:52:58 2465138 611
>>2465109
>Скачиваешь студию,
Сейчас бы в блокноте кодить

>очередной драйвер через васянский репозиторий
Ты этой сказкой, прохожих пугать можешь, еще про зависимости забыл написать, которые ВРУЧНУЮ ИСКАТЬ нужно

>Unity оболочкой
Зачем если gnome есть.

>подтверждение,
Я впервые в жизни Ubuntu поставил, ничего вообще не глючит. на древнем ноуте.
Может покажешь где Mint используют на серверах?

>у тебя браузер на чём написан клоун?
И часто ты браузеры пишешь?
Аноним 17/09/22 Суб 14:04:31 2465152 612
4356346.jpg 176Кб, 800x800
800x800
>>2465126
Стыдно программист-сан

Много нового узнаю, класс. Люблю наше образование
Аноним 17/09/22 Суб 14:06:00 2465154 613
>>2465138
>Сейчас бы в блокноте кодить
Хуясе блокнот для решёток и плюсиков. Толи дело vscode или пехапешторм... Ты прям трушный пехапешник, лул.

>>2465138
>сказкой
Что там на стационаре по wifi адаптерам и модемам по usb из коробки? Я знаю о чём пишу. Неделю назад сидел дрочился и пришлось по LAN'у пеку подрубать, чтобы всё скачалось

>если gnome есть
Зачем если KDE есть которая из коробки?

>Я впервые в жизни Ubuntu поставил
А уже так рьяно защищаешь эту помойку.

>на древнем ноуте.
Тут ты и попалась мелкобуквенная пиздлявая падла. На ноутах не лагает разве что kubuntu или lubuntu. Или ты просто не опытный линуксоид как мы выяснили выше.

>И часто ты браузеры пишешь?
Как часто тебе выкатывают обновления на них? Как часто тебе выкатывают обновления для игорь? Как часто выкатывают версии для пехапе? Мне продолжать или ты прям тут поймёшь, что жидко обосрался?
Аноним 17/09/22 Суб 14:25:01 2465175 614
>>2465154
А, vs-studio помню эту парашу, удивительно что дизайн хоть не вырвиглазный на последних версиях умудрились сделать, где они вообще его спиздидли - для меня навсегда останется загадкой. Наверное украли и пытали какого нибудь бедного кислотного дизайнера , пока тот не сдох и не родил звезду.

>Что там на стационаре по wifi адаптерам и модемам по usb из коробки
Значит негоже использовать вот это вот. У меня все хорошо работает.

>мелкобуквенная пиздлявая падла
лее ну и что кто не делает ошибок

>Как часто тебе выкатывают обновления на них
>обновления для игорь
Но не ты же выкатываешь, анальник нищий
Аноним 17/09/22 Суб 14:31:55 2465193 615
>>2465175
>лее ну и что кто не делает ошибок
Тот кто думает перед тем как написать хуйню.

>vs-studio помню эту парашу
Опенсорсный редактор кода который под видом пехапешторма продают лохам лишь сделав пару фич, лул.

>где они вообще его спиздидли
Выкатили в опенсорс откуда его и спиздили клоуны из jbrains для продажи опенсорса аутистам.

>>2465084
> кодит на ++ это показатель просто человека из прошлого
>Но не ты же выкатываешь, анальник нищий
Просто пиздец, найс маняврируешь очком. Ты стирать штаны пойдёшь или будешь делать вид, что ничего не произошло?


>нищий
180К пехапе мидл. Ты?
Аноним 17/09/22 Суб 15:10:25 2465252 616
rrmy926dqzk01.png 450Кб, 640x640
640x640
>>2465193
Сейчас бы покупать phpstorm.

>Опенсорсный редактор кода который под видом пехапешторма
Что за хуйню ты городишь, они на разных языках написаны вообще. Пару фич, ты ебнутый? Там аллаховские фишки.

Эххх. Все кто учит сложные языки, пытаются себя к чему-то виликому причастить. К хрому, к играм, гуглу и тд. А сами работают в НИИ и пугают детей.
Аноним 17/09/22 Суб 15:42:26 2465288 617
>>2464864
>Вот бы посмотреть на браузер или игровой движок написанный на расте.
В гугле забанили?
https://servo.org/
https://blog.logrocket.com/5-rust-game-engines-consider-next-project/#5-popular-rust-game-engines

>Хуле энта ваша отвёртка не имеет электропривода и почему она не пилит деревья? Она что существует лишь для того, чтобы не утруждаясь написать сайтик?
100500 раз написано и капсом и болдом и чуть ли на ебале вам не выгравировано: несмотря на то что пхп подаётся как язык для лёгкого написания сайтиков, на нём самом сайтики легко не пишутся или не пишутся вовсе (именно на чистом пхп). Нет вебсокетов из коробки, небезопасный ввод данных из веба, хуёвая работа с юникодом, язык уёбищный как шаблонизатор. Всё это получается у пхп только за счёт внешних приблуд.

>Но даже в нём есть ооп в отличии от языка написанного умными людьми.
Но ооп (который "инкапсуляция-наследование-полиморфизм") не нужен, и сама концепция ооп - или сознательная наёбка или глубочайшее заблуждение. Ты ведь знаешь, что идея наследования противоречит идее инкапсуляции? То есть ооп - абсурд по определению. А полиморфизм через подмену исполнителя - не самый лучший.
В rust book про ненужность объектов есть целая глава, где объектоёбам размеренно и методично ссут на ебало. Прочти.
Аноним 17/09/22 Суб 15:58:11 2465308 618
>>2464896
>Сам тот факт, что ты выбрал программирование, а не, например, математику (ты ж такой умный у нас, типа), уже говорит о том, что ты выбрал деньги.
Заканчивай вяло предполагать. Я выбрал программирование потому что с детства хотел им заниматься, и первый год хуячил на чистом интересе. Потом я решил на нём остановиться потому что оно позволяет быть мобильным. И лишь в третью очередь повлияли деньги. Между математикой и прикладной инженерией выбрал второе, хотя и посещал физмат кружки. Короче суть доёбки непонятна. Остальные каменты скипаю как флуд. Попробуй обсуждать не меня, а пхп.

>>2464896
>А теперь ты приходишь к пехапешникам и обсираешь их за то, что они пошли до логического конца в таком выборе - писать говнокод и грести деньги лопатой, не заморачиваясь больше ни о чём.
Я не обсираю, я воспеваю их. Гребите, ребята, гребите, главное оставайтесь где вы есть. Но, возможно, будет один, кто задумается, что делать, когда у его проца сорок ядер, а загружается всего одно, его реально припечёт, и он пойдёт разбираться.
Аноним 17/09/22 Суб 16:08:48 2465330 619
Аноним 17/09/22 Суб 22:13:24 2465721 620
>>2465288
>ооп
>нинужон
Ясн, пошёл нахуй клоун. Работу нашёл или мама опять будет тырнет оплачивать?
Аноним 17/09/22 Суб 22:27:08 2465732 621
Смешно, пользователь Эликсира, в котором даже нет циклов (ибо это не по канонам), приходит в PHP-тред и пытается рассказывать про недостатки PHP.

Какие вебсокеты, ты циклы сначала в свой Эликсир завези.
Аноним 18/09/22 Вск 01:04:32 2465845 622
>>2465288
>идея наследования противоречит идее инкапсуляции
мы вам перезвоним
Аноним 18/09/22 Вск 12:07:21 2466065 623
>>2465288
>идея наследования противоречит идее инкапсуляции
Эликсир-макака, плиз. Ты как тупая блондинка с дом2, что-то себе придумал, никакого обоснования не привёл и будто все вокруг должны понять что ты имел ввиду.
Аноним 18/09/22 Вск 12:19:21 2466078 624
Есть два стула, в первом предлагают офис, в пешей доступности, более узкий круг задач, но на 35% меньше по деньгам, второй на удаленке, делать что скажут (все подряд, шарить во всем, страховать друг друга - прямая цитата) с трекером, но с секундомером говорят стоять не будут. Вариант с офисом - проекты для автобизнеса (Rolf), вариант с удаленкой - проекты для какого то известного блогера (сайты, тг). Стек и там и там Laravel + натив JS , с уклоном в изучение фронтового фрейма на будущее, вроде и там и там Vue/

Оба стула - стажировка на 3 месяца, с последующим оформлением, ну тут стандартно все.
Аноним 18/09/22 Вск 12:19:38 2466080 625
>>2465288
>100500 раз написано и капсом и болдом и чуть ли на ебале вам не выгравировано: несмотря на то что пхп подаётся как язык для лёгкого написания сайтиков, на нём самом сайтики легко не пишутся или не пишутся вовсе (именно на чистом пхп). Нет вебсокетов из коробки, небезопасный ввод данных из веба, хуёвая работа с юникодом, язык уёбищный как шаблонизатор. Всё это получается у пхп только за счёт внешних приблуд.
100500 раз написано и капсом и болдом и чуть ли на ебале вам не выгравировано: несмотря на то что джава подаётся как язык для лёгкого написания бека, на нём самом бек легко не пишутся или не пишутся вовсе (именно на чистой джаве). Нет вебсокетов из коробки, небезопасный ввод данных из веба, хуёвая работа с юникодом, язык уёбищный как шаблонизатор. Всё это получается у джавы только за счёт внешних приблуд.
Аноним 18/09/22 Вск 13:54:17 2466195 626
>>2463248
а это сильно замедляет работу скрипта и нагружает сервер?
Аноним 18/09/22 Вск 14:58:27 2466267 627
>>2466195
Да практически нисколько. Если ты уже дошёл до момента, что для тебя значима разница между in array и прямым сравнением, то ты уже работаешь в Яндекса и пишешь что-то супер-хай перфоманс 1М рпс и скорее всего на c++.
Аноним 18/09/22 Вск 18:20:01 2466423 628
>>2466078
Бери там где напрягов меньше - дольше проработаешь и больше заработаешь в итоге.
Вообще лучше избегать мест где нет четких обязанностей - там организация труда разрабов обычно хромает, и порой сильно.
Аноним 18/09/22 Вск 19:01:01 2466456 629
Как определить, что что-то стоит кэшировать в моем приложении, может кто дать ссылку на данный материал?
Аноним 18/09/22 Вск 21:06:05 2466600 630
Олсо, попробовал Swoole.
Даёт настоящую асинхронность, горутины, все дела.

Из особенностей:
Скорость, если у просто php 2000 rpm. У node.js 9000 rpm. То у PHP под Swoole - под 100000 rpm. То есть на PHP можно писать хайлоад игровой.
При изменении кода надо перезапускать сервер.
Выделяет много воркеров-процессов в системе изначально для многопоточности и надо контролить память.

Я ещё ради лулзов заменил Symfony рантайм на Swoole в симфе. Неюзабельно, сразу память потекла аж до 8гб оперативки. Т.е. непригодно Swoole в пакетах и функции некоторые, которые не рассчитаны на чистку памяти и в асинхронность.
Зато посмотрел фреймворк Hyperf. Он для асинхронного PHP с уже содержащим swoole. Вполне годный, из ларавеля спиздили часть идей.

Забавно что один из создателей Swoole - Китайский PHPшник-ветеран, работающий в Канаде на EA. Он из принципа PHP любит, его решение асинхронного PHP было в том, чтобы делать на PHP сервера для игр.

Как будет время, хотел бы онлайн-игрушку накидать, дабы проверить возможности Swoole. Видел китаец какой-то на нём сервер для WoW делал, летало так, что хоть ракеты на PHP запускай в космос
Аноним 18/09/22 Вск 21:09:14 2466604 631
>>2466600
Только вот один есть ньюанс-львиная доля обучения асинхроности и всем фичам в инете-гребаный жаваскрипт
Аноним 18/09/22 Вск 21:10:51 2466605 632
>>2466078
>все подряд, шарить во всем, страховать друг друга
Напомнило мне как меня пытались нанять пару кабанов писать им CRM какую то. Условия были примерно теми же.
По итогу мой тех лид это С# боярин и по совместительству соучеридитель этой хуеты грит мол ты тут сам придумывай на выкатить это на сервак, а мы поехали в лес.
Лучше в офис, там серьёзнее проекты.
Аноним 18/09/22 Вск 21:31:49 2466626 633
>>2466600
RPS имел ввиду, конечно

>>2466604
Да. Проще в проде взять что-то известное. Пока Swoole не купит какой-то айтигигант, то придётся его только дома ковырять.
Но хотя б ради себя можно поковыряться, вродь ничё сложно, я даже видосики по Swoole нашёл и при этом не на китайском.
Аноним 18/09/22 Вск 21:34:09 2466628 634
>>2466604
А еще корутины тоже не родная фича.Это все отдельно придется учить...
Аноним 18/09/22 Вск 21:35:18 2466629 635
>>2466626
А если я захочу онлайн игру запилить,это будут большая боль,чем на ноде
Аноним 18/09/22 Вск 21:50:13 2466646 636
>>2466600
>У node.js 9000 rpm. То у PHP под Swoole - под 100000 rpm
Конь в вакууме?
Аноним 18/09/22 Вск 22:13:01 2466672 637
register.png 38Кб, 660x466
660x466
Это норм говно код?
Аноним 18/09/22 Вск 22:47:58 2466717 638
>>2466672
Это эликсирщики так пишут, у них это нормально :)

В PHP конечно реквест-параметры обернуть в DTO, создать условный AuthValidation класс и прогнать реквест-параметры через его. Вторым путём можно ещё выделить под каждый параметр - свой класс и один интерфейс на всех. EmailValidation, LoginValidation implements ValidationInterface, где общие методы validate(string $param), getMessage(): string и т.д.
Аноним 18/09/22 Вск 22:52:27 2466726 639
>>2466717
Класс создать дело не хитрое,но вот методы какие там будут,делать регулярки или функции из коропки как на пике не подойдут?
Аноним 18/09/22 Вск 22:55:43 2466729 640
>>2466672
Никогда не проверяйте строки через empty() т.к empty('0') == true

or уже сотню лет как не пишут, а пишут ||

Проверять булевы функции на false идея крайне сомнительная и при сравнении всегда используй тождество ===
Аноним 18/09/22 Вск 22:55:47 2466731 641
Аноним 18/09/22 Вск 22:56:54 2466732 642
>>2466629
Я как-то собеседовался в Playtika, они как раз часть бэка пишут на PHP. Конечно игры у них не ААА, а вообще непонятно что, но это крупная компания.

Я стартово знаю ThreeJS, хотел бы на ней запилить что-нибудь и выкатить, вот и со swoole бы поигрался. Что-нибудь многопользовательское.
Как обычно жаль времени б на это всё. А то работать и своё писать сложно, хотя на работе никто и не гонит, мог бы использовать рабочее время.
Аноним 18/09/22 Вск 22:58:48 2466734 643
>>2466732
Смысл только если монетизацию прикрутить.такие игры вообще еще живы в 2022?
Аноним 18/09/22 Вск 23:01:56 2466737 644
image.png 97Кб, 711x682
711x682
>>2466731
100тыщ реквестов в секунду на PHP под swoole.
Ну по-разному можно играться в AB конечно, но плюс-минус.
Аноним 18/09/22 Вск 23:10:09 2466741 645
>>2466737
Ну да, стоит признать я включил Keep-Alive флаг, т.е. это позволяет соединения переиспользовать. Если каждый раз tcp открывать/закрывать, то будет в пару раз меньше RPS. Но я с ним тестировал и ноду тоже.
Аноним 18/09/22 Вск 23:10:48 2466743 646
df48bf6e4222900[...].jpg 15Кб, 250x367
250x367
>>2466646
Только про swoole хотел написать вечером, нашел в laravel - octane плагин (оф.сайт), для того чтобы PHP асинхронным сделать. Получаеться, половину треда нам тут всякие петухи выкручивали яица? Сокеты тоже есть в каком то пакете, в Laravel много чего есть.. Ну из коробки не работает, ну зато есть готовые решения, при том довольно официалные с большой поддержкой.
Аноним 18/09/22 Вск 23:15:18 2466747 647
>>2466743
Проблема свула-документация и рабочие примеры
Аноним 18/09/22 Вск 23:15:48 2466749 648
Аноним 18/09/22 Вск 23:26:08 2466755 649
Аноним 18/09/22 Вск 23:29:09 2466759 650
>>2466755
Без регулярок для фильтраций форм можно обойтись?
Аноним 18/09/22 Вск 23:30:51 2466762 651
>>2466759
Зачем тебе регулярки и фильтрации форм, извини?
Аноним 18/09/22 Вск 23:32:18 2466763 652
>>2466762
Чтобы вводили допустимые символы,длина,емейл,год рождения
Аноним 18/09/22 Вск 23:34:45 2466765 653
>>2466763
Можешь класс свой вставить в какой нибудь онлайн компилятор и кинуть сюда ссыль, я гляну, авось чего поправлю. Один хуй скучно
Аноним 18/09/22 Вск 23:37:19 2466768 654
>>2466743
Главная проблема - маркетинг, чтобы компании выбирали асинхронный PHP, а не детище гугла golang.

>>2466747
А я прям гугл-транслейтом китайский перевожу, кек. Кстати примеры попрятаны в гитхабе. Но да, документации конечно человеческой не хватает, чтоб взять и в продакшн.
Аноним 18/09/22 Вск 23:37:56 2466770 655
>>2466765
Не,цэ уже завтра.
Короче каждое поле формы выносим в класс со своими медодами,только вот че,а как эти классы вызвать в одном месте,инклюд делать?
Аноним 18/09/22 Вск 23:38:53 2466771 656
Аноним 18/09/22 Вск 23:41:39 2466773 657
>>2466771
оооокей...
Делаем список нужных классов,а потом список вызовов методов этих самых классов?
Аноним 18/09/22 Вск 23:46:20 2466776 658
>>2466773
>список вызовов методов этих самых классов
Подключил классы через use, и тебе станут доступны все классы и их public методы.
Аноним 18/09/22 Вск 23:47:45 2466777 659
>>2466776
Ты не понял,их же нужно все вызвать в том файле,где накиданы пути к этим классам или не?
Аноним 18/09/22 Вск 23:48:58 2466778 660
>>2440871 (OP)
Как работает функция usort()? Если можно максимально понятно.
Аноним 18/09/22 Вск 23:57:29 2466787 661
>>2466777
Этот файл является классом или простым набором функций? У тебя фреймворк или ты просто костылишь?
Аноним 18/09/22 Вск 23:58:17 2466788 662
>>2466787
А я не знаю,я ж костылю
Аноним 18/09/22 Вск 23:59:12 2466790 663
>>2466600
>>2466743
Пример, как ты заменил один рантайм на другой и резко все выросло и встало, показателен. Никто не спорит, что если заменить phpшный код на сишные экстеншены и не использовать фрейморки и библиотеки, то это будет быстро (хотя такая разница как у тебя с нодой вышла - очень странная, прям совсем. я уверен, что ты или где-то случайно кэш включил, или наоборот, не включил какой-нибудь jit).
Мы тут говорили о том, что если ты будешь писать на swoole, то это будет уже другой язык, с другими библиотеками (потому что 99% говна из composer не подойдет), может другим стдлибом, другим кастомным рантаймом и так далее. Поняли, да? Swoole != php, и рассматривать их нужно сугубо отдельно. В этом треде мы обоссывали именно что ванильный php и ванильных пыхеров.
Кстати, вот вообще не уверен, что этот ваш свуль так же поддерживается, что есть такие же дебаггеры и что у него есть прям полноценная экосистема сравнимая с другим ЯПом. Иначе проще уже на другой язык перелезть и всё.
Аноним 18/09/22 Вск 23:59:51 2466791 664
Аноним 19/09/22 Пнд 00:00:58 2466792 665
>>2466791
Ты можешь сделать его скрин?
Аноним 19/09/22 Пнд 00:01:51 2466793 666
>>2466792
Какой скрин,я же сказал,что городить только завтра,а пока теория
Аноним 19/09/22 Пнд 01:32:03 2466838 667
>>2466790
Свуль не дебажится, вообще кроме как дампами, писать на нем что-либо сложнее хеллоу ворлда - гиблая затея.
Аноним 19/09/22 Пнд 02:48:14 2466855 668
image.png 4Кб, 615x221
615x221
Аноним 19/09/22 Пнд 03:42:02 2466858 669
>>2466065
>что ты имел ввиду

Идея инкапсуляции в том, чтобы на некий код (на его поведение) не влиял никакой другой код.
А идея наследования - наоборот, в том, чтобы код предка влиял на код потомка (на его поведение).

Пример 1, пиздецовый.
У тебя есть класс CarDriver. Ты наследуешь от него BusDriver и переопределяешь пару методов, так что он теперь использует поля и методы как из себя, так и из предка. Нарушение инкапсуляции тут в том, что изменения в CarDriver повлияют на BusDriver. Какие изменения могут быть вообще? Ты изменил в CarDriver метод, который использовал BusDriver. Ты изменил тип поля, чтоб понятнее - ты изменил не декларацию типа, а тип данных которые в него пихаешь, например у тебя как был array, так и остался, но в методе init ты стал класть в него значения другого типа. Как бы то ни было, если ты менеджишь класс CarDriver - ты обязан менеджить все его потомки, соответственно быть в курсе что они делают итогдалие. В реальном проекте может быть запросто так что предок сделан одной командой, а потомок - другой. Или храниться в разных репах. Да, я слышу как ты уже яростно шепчешь "если либа шарит объект, от которого юзер должен унаследоваться, то либа не должна изменять сигнатуру объекта после релиза", разумеется это так, но сам факт ограничения говорит о степени влияния предка на потомка.
Уровень трешнины растёт с глубиной наследования. Когда появляются TramDriver extends BusDriver, от него RiverTramDriver, от него BoatDriver, от него MarineDriver, от него SubmarineDriver, и все имплементируются, то приходит стагнация а затем и загнивание кода потому что все в команде боятся потрогать CarDriver или вовсе всех потомков SubmarineDriver, как бы чего не ёбнуло в продакшне.

Пример 2, относительно юзабельный.
Ты эту хуйню на практике познал, поебался с одеревеневшим кодом и в новом проекте решил ослабить связь между реализациями - завёл абстрактный класс Driver и унаследовал от него CarDriver и BusDriver. Связь между реализациями теперь ослабла, мы можем менять CarDriver не опасаясь заруинить BusDriver. Но всё равно существует влияние родителя Driver, и оно пропорционально количеству наследования.

Я лично использую этот вариант: максимум один уровень наследования от абстрактного класса, и никогда реализацию не наследовать от реализации. Это даёт оптимальный уровень контроля над кодом. И это, строго говоря, не является наследованием, потому что эквивалентно включению трейта.


Так, на всякий случай. Это дискусс не про "а вот ну надо же иногда в проекте иметь возможность малым количеством кода влиять на поведение многих мест". Иногда надо, иногда не надо. Это дискусс о том, что инкапсуляция-наследование - это попытка усидеть на двух разъезжающихся стульях сразу. От этого жопа разрывается.
Аноним 19/09/22 Пнд 03:51:27 2466860 670
>>2466600
>заменил Symfony рантайм на Swoole в симфе. Неюзабельно, сразу память потекла аж до 8гб оперативки. Т.е. непригодно Swoole в пакетах и функции некоторые, которые не рассчитаны на чистку памяти и в асинхронность.
this

в нескольких командах рассматривал переход на свуль. проблемы:
- стек - уже симфони, будет либо течь либо надо ебаться с фиксами, кто это будет делать, если 9 из 10 - обычные середнячки пишущие код по наитию
- придётся всех подтягивать и учить тому что ЭТО ДРУГОЕ, это только выглядит как пых, а на деле работает иначе. я как представлял - так сразу и передумывал. потому что нужно объяснить что такое персистентный рантайм, что такое утечки памяти, что такое асинк, что такое эвент луп, и если не объясню - сам же от начальства пизды и получу
- очень сложно понять зачем при таком раскладе брать свуль а не другой язык заточенный под это, например гошу. если брать гошу - то эта задача начинает выглядеть по-другому.
в результате бросал всё в пизду
Аноним 19/09/22 Пнд 03:54:11 2466861 671
Аноним 19/09/22 Пнд 04:04:57 2466862 672
>>2465732
>пользователь Эликсира приходит в PHP-тред
когда я ссу на ебало пхпшникам - я делаю это именно как пхп-эксперт. я с этим говнищем десять лет работал, и знаю его вероятно лучше любого в этом треде.
Аноним 19/09/22 Пнд 06:01:34 2466876 673
>>2466790
>99% говна из composer не подойдет
>>2466790
не включил какой-нибудь jit).

С чего ты такую информацию берешь, шиз? Тебе просто нужно доебаться? Что значить php без composer, ебанутый?

Вот еще аналог swoole(в octane в первую очередь рекомендуется https://roadrunner.dev
Так что хайлоад и PHP, вполне реальная вещь, видимо.

>>2466838
Зато roadrunner в описании отлично дебажиться, судя по описанию в ссылке выше. ВООБЩЕМ идите нахуй короче, мистеры 41 вакансия

Вообще удивительно откуда столько хейта на PHP, ладно у зумеров, а у других красноглазых, например с хабра - удивительно. Как будто у них еду отбирают
Аноним 19/09/22 Пнд 06:13:07 2466877 674
>>2466876
Ошибок наделал извиняюсь, сутки месяцы не спал
Аноним 19/09/22 Пнд 10:31:55 2466969 675
>>2466876
> Зато roadrunner в описании отлично дебажиться
Он-то конечно, там тупой скрипт с бесконечным циклом. Но и супер перфоманса от него от него в таком случае ждать не стоит.

> Вообще удивительно откуда столько хейта на PHP, ладно у зумеров, а у других красноглазых, например с хабра - удивительно. Как будто у них еду отбирают
Хейтят не "язык", а набор сомнительных технических решений. Да и вообще, это не хейт, а обоснованная критика. Пыха реально медленная, ограниченная и ограничивает кругозор пишущих на ней.
Аноним 19/09/22 Пнд 11:34:16 2467009 676
>>2466860
У меня не было опыта на голанге, я изучал его поверхностно когда пробовал, но одно дело попробовать, другое дело писать на нём огромное приложение с бизнес-логикой.

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

В swoole же всё тоже самое как в простом пхп, только ещё с асинхронными приблудами и следи за памятью.
Тут проблема что Golang всё-таки знают, для карьеры круто. А swoole знают 3,5 китайца.
Аноним 19/09/22 Пнд 11:54:04 2467023 677
image.png 28Кб, 635x606
635x606
>>2467009
>Golang - это совершенно другой язык, функциональный
он не функциональный
Аноним 19/09/22 Пнд 12:06:32 2467040 678
16193530946750s.jpg 5Кб, 220x165
220x165
>>2466969
>там тупой скрипт с бесконечным циклом
Там приложение на go. Сервер блядь.

>>2466969
>ограничивает кругозор пишущих на ней.
Делать круды, таскать джейсоны, делать приложения для гаджетов, работать с api всякиих сервисов конечно талант нужен. Вот прям творческий патенциал необходим, и фундаментальные знания прикладной математики и железа. Свалил бы ты уже нахуй, тебя 100 раз тут обросрали уже блядь, а ты все выпукиваеш пустые аргументы
Аноним 19/09/22 Пнд 12:14:53 2467056 679
>>2467040
> > ограничивает кругозор пишущих на ней.
> Делать круды, таскать джейсоны, делать приложения для гаджетов, работать с api всякиих сервисов конечно талант нужен. Вот прям творческий патенциал необходим, и фундаментальные знания прикладной математики и железа.

Ты это написал так как будто ты не согласен. Но смысл написанного полностью совпадает с тем, с чем ты якобы не согласен. Что ты хотел сказать этим - я не понял.

>Свалил бы ты уже нахуй, тебя 100 раз тут обросрали уже блядь, а ты все выпукиваеш пустые аргументы
Ты не понял мань. Тут несколько человек тебе это пишет. Минимум двое - я и анон который это написал. Может и не один. Никто ж не подписывается.
Аноним 19/09/22 Пнд 12:20:25 2467067 680
>>2467040
>пустые аргументы
пиздец, конечно. всю дорогу ни одного опровержения или даже разбора, но аргументы почему-то называются пустыми
Аноним 19/09/22 Пнд 12:39:58 2467098 681
Блин, вот приходится РАБотать, а не тестировать swoole дальше. Я один хрен до него доберусь, интересно же написать что-то сложнее хелоуворлда.
Аноним 19/09/22 Пнд 12:40:36 2467099 682
>>2467040
> Делать круды, таскать джейсоны, делать приложения для гаджетов, работать с api всякиих сервисов конечно талант нужен.
Спасибо, ты лишний раз продемонстрировал мою правоту. Php действительно хорошо подходит только для крудов, джейсонов и работы с апи всяких сервисов. И действительно, не требует для этого особых талантов или квалификации.
Всё правильно.
Аноним 19/09/22 Пнд 12:42:57 2467101 683
>>2467009
>Golang - это совершенно другой язык, функциональный, без ооп, без привычных паттернов, совершенно другая архитектура. Открыть топовые либы голанга - ужаснёшься как пишут на нём, ну всм непривычно для ООПшника, у нас это называется простыня, всё навалено в кучу.
Там можно писать в ООПшном стиле
Аноним 19/09/22 Пнд 12:55:42 2467108 684
>>2467101
И вполне себе пишут. То, что голанг это типа не ООП это аргумент джунов или поехавших джавистов, у кого ООП - это когда пишут `class Foo implements Bar`, а всё, что устроено по-другому, это не ооп.
В го есть объекты (структуры), есть отделенное от них поведение (интерфейсы), можно строить связи между объектами. Этого более, чем достаточно, чтобы воспроизводить любые ООПшные паттерны. Которые кстати очень широко используются.

Наоборот, чем мне нравится го, так это тем, что они не пихают ебаное наследование везде, куда только можно. Там, где в php для обработки запроса нужно ебануть аннотацию, создать класс, заимплементить интерфейс, прописать его, прокинуть туда обязательную хуйню какую-нибудь и так далее - в го обходятся просто одной функцией, которая должна принять запрос и вернуть ответ. Захочешь, чтобы там был объект - сам прокинешь. Не захочешь - не прокидывай.
Когнитивно код получается сильно проще, никакий магии.
Аноним 19/09/22 Пнд 12:58:44 2467111 685
>>2467099
А что в веб-разработке ещё нужно? Ну подобные возможности, скорость нужна, да и все. Я не понимаю, чего вы хотие доказать.
Типа я чего, должен плюсы выучить чтобы это делать? Вы поехавшие? Или пердолиться с утечками памяти javascript, отказаться от composer в пользу фактически голого go или любого другого велосипедного языка ? А когда мне жить?

Нет спасибо, я лучше получу удовольствие от результатов, подрочу в свободное время фронт, выебу во всех позах свою тяночку и закинусь грибгсиками.
Аноним 19/09/22 Пнд 13:12:31 2467123 686
>>2467108
>И вполне себе пишут. То, что голанг это типа не ООП это аргумент джунов или поехавших джавистов, у кого ООП - это когда пишут `class Foo implements Bar`, а всё, что устроено по-другому, это не ооп.
>В го есть объекты (структуры), есть отделенное от них поведение (интерфейсы), можно строить связи между объектами. Этого более, чем достаточно, чтобы воспроизводить любые ООПшные паттерны. Которые кстати очень широко используются.
Да, довелось как-то ковырять крупный проект https://github.com/ethereum/go-ethereum вполне себе годно.

>Наоборот, чем мне нравится го, так это тем, что они не пихают ебаное наследование везде, куда только можно. Там, где в php для обработки запроса нужно ебануть аннотацию, создать класс, заимплементить интерфейс, прописать его, прокинуть туда обязательную хуйню какую-нибудь и так далее - в го обходятся просто одной функцией, которая должна принять запрос и вернуть ответ. Захочешь, чтобы там был объект - сам прокинешь. Не захочешь - не прокидывай.
>Когнитивно код получается сильно проще, никакий магии.
Мне первое время в расте не хватало наследования, да что за ептвуй пиздец думал я, а теперь наоборот удобно, нет никаих родословных классов, максимум имплементации трейтов почти как в пыхе, только ближе к интерфейсам, на этом все, структуры сам пишешь, нужные данные прокидываешь и нет ничего лишнего, для экономии памяти и быстродействия везде можно прокидывать ссылки чтобы не алоцировать один и тот же объект, с наследованиями я хз как таким заниматься.
Аноним 19/09/22 Пнд 13:22:50 2467131 687
>>2467111
> Я не понимаю, чего вы хотие доказать.
Блять, ваша проблема в том, что вы воспринимаете дискасс как наезд лично на вас. На тебя никто не наезжает, если тебе нравится, то всё ок, кайфуй.

Мы здесь просто обсуждаем технологии и говорим, что сравнительно с другими языками php
а) Непроизводительный свуль и остальные не-ванильные решения это отдельная история с кучей подводных
б) Дешевый в смысле зп разрабам
в) Подходит только для определенных задач, этим ограничивая разработчиков, если они потом захотят перейти на другие языки
Это объективная реальность. Но ничего из этого не говорит, что пыха "плохая" или что она не подходит для своих задач. Нет, конечно, подходит и если вам оно нравится, то ок.
хотя субъективно конечно я бы другие языки выбрал, просто потому, что они перспективнее с точки зрения разработчика
Аноним 19/09/22 Пнд 14:11:53 2467154 688
>>2467111
>Я не понимаю, чего вы хотие доказать.
Пхп - это твоя долгая жизнь с несложными задачами и смерть как программиста.
Аноним 19/09/22 Пнд 14:21:12 2467157 689
>>2467108
>В го есть объекты (структуры), есть отделенное от них поведение (интерфейсы), можно строить связи между объектами. Этого более, чем достаточно, чтобы воспроизводить любые ООПшные паттерны.
Ооп - не про навешивание методов на структуры. Ооп - это про наследование и полиморфизм через подмену исполнителя.

http://blog.cleancoder.com/uncle-bob/2014/11/24/FPvsOO.html
Аноним 19/09/22 Пнд 14:23:28 2467158 690
>>2467131
>Непроизводительный
Производительный. А ещё самый производительный в мире для написания проектов.

>Дешевый в смысле зп разрабам
Как и всем платят.

>если они потом захотят перейти на другие языки
Зачем переходить с пхп/джавы/шарпа/жс на другие ноунейм языки? Лучше развиваться в своём языке и расти.

>>2467154
раст/эликсир - это твоя долгая жизнь с несложными задачами и смерть как программиста. Типа игра подставь своё? Детский сад.
Аноним 19/09/22 Пнд 14:34:20 2467166 691
>>2467123
>Да, довелось как-то ковырять крупный проект >https://github.com/ethereum/go-ethereum вполне себе годно.
Очень годный код пишут в своём крупном проекте, ничё не скажешь :)
Это наверное уровень ООП у голангеров. Упаси господь переходить с пхп на GOвно.

func (c ChainConfig) checkCompatible(newcfg ChainConfig, head big.Int) ConfigCompatError {
if isForkIncompatible(c.HomesteadBlock, newcfg.HomesteadBlock, head) {
return newCompatError("Homestead fork block", c.HomesteadBlock, newcfg.HomesteadBlock)
}
if isForkIncompatible(c.DAOForkBlock, newcfg.DAOForkBlock, head) {
return newCompatError("DAO fork block", c.DAOForkBlock, newcfg.DAOForkBlock)
}
if c.IsDAOFork(head) && c.DAOForkSupport != newcfg.DAOForkSupport {
return newCompatError("DAO fork support flag", c.DAOForkBlock, newcfg.DAOForkBlock)
}
if isForkIncompatible(c.EIP150Block, newcfg.EIP150Block, head) {
return newCompatError("EIP150 fork block", c.EIP150Block, newcfg.EIP150Block)
}
if isForkIncompatible(c.EIP155Block, newcfg.EIP155Block, head) {
return newCompatError("EIP155 fork block", c.EIP155Block, newcfg.EIP155Block)
}
if isForkIncompatible(c.EIP158Block, newcfg.EIP158Block, head) {
return newCompatError("EIP158 fork block", c.EIP158Block, newcfg.EIP158Block)
}
if c.IsEIP158(head) && !configNumEqual(c.ChainID, newcfg.ChainID) {
return newCompatError("EIP158 chain ID", c.EIP158Block, newcfg.EIP158Block)
}
if isForkIncompatible(c.ByzantiumBlock, newcfg.ByzantiumBlock, head) {
return newCompatError("Byzantium fork block", c.ByzantiumBlock, newcfg.ByzantiumBlock)
}
if isForkIncompatible(c.ConstantinopleBlock, newcfg.ConstantinopleBlock, head) {
return newCompatError("Constantinople fork block", c.ConstantinopleBlock, newcfg.ConstantinopleBlock)
}
if isForkIncompatible(c.PetersburgBlock, newcfg.PetersburgBlock, head) {
// the only case where we allow Petersburg to be set in the past is if it is equal to Constantinople
// mainly to satisfy fork ordering requirements which state that Petersburg fork be set if Constantinople fork is set
if isForkIncompatible(c.ConstantinopleBlock, newcfg.PetersburgBlock, head) {
return newCompatError("Petersburg fork block", c.PetersburgBlock, newcfg.PetersburgBlock)
}
}
if isForkIncompatible(c.IstanbulBlock, newcfg.IstanbulBlock, head) {
return newCompatError("Istanbul fork block", c.IstanbulBlock, newcfg.IstanbulBlock)
}
if isForkIncompatible(c.MuirGlacierBlock, newcfg.MuirGlacierBlock, head) {
return newCompatError("Muir Glacier fork block", c.MuirGlacierBlock, newcfg.MuirGlacierBlock)
}
if isForkIncompatible(c.BerlinBlock, newcfg.BerlinBlock, head) {
return newCompatError("Berlin fork block", c.BerlinBlock, newcfg.BerlinBlock)
}
if isForkIncompatible(c.LondonBlock, newcfg.LondonBlock, head) {
return newCompatError("London fork block", c.LondonBlock, newcfg.LondonBlock)
}
if isForkIncompatible(c.ArrowGlacierBlock, newcfg.ArrowGlacierBlock, head) {
return newCompatError("Arrow Glacier fork block", c.ArrowGlacierBlock, newcfg.ArrowGlacierBlock)
}
if isForkIncompatible(c.GrayGlacierBlock, newcfg.GrayGlacierBlock, head) {
return newCompatError("Gray Glacier fork block", c.GrayGlacierBlock, newcfg.GrayGlacierBlock)
}
if isForkIncompatible(c.MergeNetsplitBlock, newcfg.MergeNetsplitBlock, head) {
return newCompatError("Merge netsplit fork block", c.MergeNetsplitBlock, newcfg.MergeNetsplitBlock)
}
if isForkIncompatible(c.ShanghaiBlock, newcfg.ShanghaiBlock, head) {
return newCompatError("Shanghai fork block", c.ShanghaiBlock, newcfg.ShanghaiBlock)
}
if isForkIncompatible(c.CancunBlock, newcfg.CancunBlock, head) {
return newCompatError("Cancun fork block", c.CancunBlock, newcfg.CancunBlock)
}
return nil
}
Аноним 19/09/22 Пнд 14:35:18 2467168 692
16635129751901.jpg 318Кб, 709x1200
709x1200
>>2467154
Я думаю нет проблем на GO например перейти со временем, когда этот язык, и наша инфраструктура будет готова. На западе больше популярен для бека typescript, это не значит что если я его выучу то у меня будет будущее.

Java загибается, js нестабилен. Про кресты и шарп даже не упоминаю, слишком абстрактные непопулярные языки для веба

Не забываете в какой стране вы живете, и дай бог битрикс окружающие люди знают хотябы, а именно они по сути вам платят и за ними будущее, а не за Джоном Борном, как раньше. Вот еще посмотеть кто без работы останется
Аноним 19/09/22 Пнд 14:35:43 2467169 693
>>2467166
OpenAPI и то лучше код генерирует, чем голанг-макаки. Вот этот код идеальный по мнению эликсирщиков/голангеров/раст
Аноним 19/09/22 Пнд 14:39:42 2467173 694
Screenshot from[...].png 275Кб, 1210x935
1210x935
А зачем сервис-класс, да? Понапридумывали эти пхпшники свои ООП с интерфейсами. Можно же засунуть всё в одну функцию, которая выполняет 300 ответственностей.

Вот это пишут техлиды-сеньёры на голанге. Я так писал на пхп на 3-й день изучения пхп.
Аноним 19/09/22 Пнд 14:53:40 2467182 695
Screenshot from[...].png 5Кб, 237x158
237x158
func NewBlockChain(db ethdb.Database, cacheConfig CacheConfig, genesis Genesis, overrides ChainOverrides, engine consensus.Engine, vmConfig vm.Config, shouldPreserve func(header types.Header) bool, txLookupLimit uint64) (BlockChain, error) {

Вот что бывает когда нет ООП. Давайте 100500 параметров вложим в функцию, хуле, ещё и с игрой "пойми что к чему относится".

Да и конечно же 2500 строчек в файл засунем, а там хай разбираются потом что этот файл делает.
Аноним 19/09/22 Пнд 14:53:48 2467183 696
Screenshot from[...].png 5Кб, 237x158
237x158
func NewBlockChain(db ethdb.Database, cacheConfig CacheConfig, genesis Genesis, overrides ChainOverrides, engine consensus.Engine, vmConfig vm.Config, shouldPreserve func(header types.Header) bool, txLookupLimit uint64) (BlockChain, error) {

Вот что бывает когда нет ООП. Давайте 100500 параметров вложим в функцию, хуле, ещё и с игрой "пойми что к чему относится".

Да и конечно же 2500 строчек в файл засунем, а там хай разбираются потом что этот файл делает.
Аноним 19/09/22 Пнд 15:17:02 2467200 697
>>2467166
Это особенность эфира, а не голанга, там было несколько хардфорков, плюс этот клиент работает в нескольких сетях эфира. Там еще много таких мест.

Даже интересно стало как давай для примера напиши точно такой же метод на пхп, чего код делает ты уже понял, проверяет совместимость форков блокчейна, есть конфиг в БД и кофниг из чейна, номер head блока, если не совместим, то возвращает ошибку. На пхп будет такой же код только с исключениями, либо говнище из генерируемого в рантайме кода лол
Аноним 19/09/22 Пнд 15:19:40 2467203 698
>>2467169
Напиши такой же метод на пхп. Метод проверяет совместимость форков блокчейна, есть конфиг в БД и кофниг из чейна, номер head блока, если не совместим, то возвращает ошибку. Есть несколько хардфорков из разных сетей, проверь их.
Аноним 19/09/22 Пнд 15:28:23 2467205 699
>>2467158
>раст/эликсир - это твоя долгая жизнь с несложными задачами и смерть как программиста. Типа игра подставь своё? Детский сад.

высочайший уровень риторики, бесподобно просто
Аноним 19/09/22 Пнд 15:33:38 2467207 700
>>2467158
>Производительный
такой производительный, что начинать оптимизацию проекта на самом популярном стеке нужно с выкидывания самой популярной ORM - Doctrine. Всё потому что пых не компилируемый и без макросов, а также не имеет персистентного рантайма в котором можно было бы оптимизировать таблицы вызова виртуальных функций, и потому абстракции в нём чудовищно дороги.
Даже в руби который тоже динамический ты можешь при старте наманкипатчить своих абстракций в корневые объекты фреймворка - и потом пользоваться ими в рантайме. В пыхе инициализация происходит при каждом вызове http, консольной команды итд. Исключение - консюмеры очередей.
Аноним 19/09/22 Пнд 15:40:16 2467212 701
>>2467166
Чтоб критиковать язык более-менее осмысленно, а не просто брехать, нужно понимать для какой задачи он был сделан.
Конкретно го был сделан для решения кадровой задачи гугла.
Кадровая проблема заключалась в том числе в том, что есть много программистов-середнячков, и нужно дать им инструмент, в который они смогут быстро въехать. Го эту задачу решает - го относительно прост, и код на нём понятно что делает практически сразу.
Рекомендую каждому повспоминать как он ломал голову над чужим (или даже над своим годичной давности) пхп-кодом "что он сука делает?".
Аноним 19/09/22 Пнд 15:56:21 2467220 702
laravel.png 73Кб, 1230x833
1230x833
>>2467183
>Да и конечно же 2500 строчек в файл засунем, а там хай разбираются потом что этот файл делает.
Помогу
find . -name '*.go' -type f -print0 | xargs -0 wc -l | grep -v "_test\.go" | sort -n | tail -10
Там даже на 3102 строчки есть, опенсорс хули ты хотел, но пока ларавель обгоняет
Аноним 19/09/22 Пнд 16:39:18 2467244 703
RoadRunner переводиться как КУКУШКА!
Шок,сенсация!
Дорожный бегун-это кукушка.Л-логика
Аноним 19/09/22 Пнд 17:27:57 2467290 704
изображение.png 142Кб, 669x863
669x863
Аноним 19/09/22 Пнд 18:55:23 2467335 705
В чем смысл коорпоративных версий линукса за тонны бабла?
Аноним 19/09/22 Пнд 20:01:41 2467415 706
>>2466778

usort от "user sort" - пользовательская сортировка

usort(array &$array, callable $callback): bool

Sorts array in place by values using a user-supplied comparison function to determine the order.

in-place означает, что она изменяет передаенный ей аргумент

$arr = [1, 3, 2, 4, 6, 5];
usort(arr, ...) - изменит $arr.
это значит что не получится сделать usort([1, 3, 2, 4, 6, 5], ...), нужно обязательно передавать переменную.

О сортирующей функции.
callback
The comparison function must return an integer less than, equal to, or greater than zero if the first argument is considered to be respectively less than, equal to, or greater than the second.

callback(mixed $a, mixed $b): int

то есть usort внутри себя прогоняет значения из твоего списка $arr через твою функцию $callback парами. в каком именно порядка она будет сравнивать и по какому алгоритму - нам не говорится и считается что это не важно. важно чтобы ты определил отношение порядка для своего списка.

как определяется отношение порядка? через сравнение больше-меньше-равно.
usort спрашивает у твоей функции callback про некую пару значений - они между собой больше, меньше или равны.
что значит больше, меньше, равны? это значит функция должна вернуть одно из трёх значений: -1, 0, 1
callback($a, $b) вернула -1 - значит $a < $b и после сортировки $a будет находиться до $b в списке
callback($a, $b) вернула 0 - значит $a == $b и после сортировки $a и $b могут находиться в любом положении относительно друг друга (на практике они не перемещаются)
callback($a, $b) вернула 1 - значит $a > $b и после сортировка $a будет находиться после $b
если callback возврает другое значение - оно скастится до инта и сравнится с нулём. true будет расценено как $a > $b, false будет расценено как $a == $b, правда напишет ворнинг что булевый результат deprecated

как использовать?
например у тебя есть объекты

class Friend {
string $name;
int $age;
function __construct(string $name, int $age) {
$this->name = name;
$this->age = age;
}
}

$friends = [new Friend("Alena", 18), new Friend("Yana", 15)];

ты хочешь отсортировать их по возрасту:

usort($friends, function(Friend $a, Friend $b) { return $a->age <=> $b->age; });



Что за странная залупа <=> ?
Это называется spaceship operator. Он возвращает -1, 0, 1 в зависимости от того, левый аргумент меньше, равен или больше правого. Сравнивается тут как пхп сравнивает значения сам по себе. Если ты подсунешь ему строки - он будет сравнивать по правилу для строк и т.д.

Можно и без него

usort($friends, function(Friend $a, Friend $b) { return $a->age > $b->age ? 1 : 0; });
Аноним 19/09/22 Пнд 20:04:11 2467418 707
>>2467335
Более другие инструменты для отладки. Почитай про Zend Studio. Там какие-то удобства в плане наблюдения ошибок - тебе показывается всё вплоть до нотайсов и тебе не нужно для этого печатать логи.
Аноним 19/09/22 Пнд 20:06:33 2467422 708
>>2467335
А, блядь, линукса, а не php.

Фиксы 0-day уязвимостей наверное.
Аноним 19/09/22 Пнд 20:22:52 2467433 709
>>2466858
>Пример 1, пиздецовый.
эх вот бы кто-то придумал Open-Close прицнип из SOLID.................
эх вот бы кто-то мог не наследовать SubmarineDriver от CarDriver...
Аноним 19/09/22 Пнд 20:52:54 2467451 710
>>2467433
>Open-Close прицнип
это дрочерская иллюзия, мань
он гласит "один раз написали - и не трогаем". и что, все сразу начали писать с первого раза то что нужно? понимать что нужно написать? мир перестал меняться каждую секунду? в проектах перестали появляться новые требования?

этот принцип говорит "если вы шарите класс - сделайте так, чтобы любой мудак мог унаследоваться от него и постарайтесь не менять чтоб у мудаков ничего не рушилось". а потом приходит семвер и говорит "мы понимаем что не менять совсем - невозможно, постарайтесь не менять его хотя бы в мажорной версии"
Аноним 19/09/22 Пнд 21:01:17 2467461 711
>>2466778
>>2467415
Ещё нужно знать что callback вызывается много раз, поэтому не нужно из неё вызывать ресурсозатратные операции такие как поход в субд.

$ docker run --rm -it php
Interactive shell
php > echo PHP_VERSION;
8.1.10
php > $items = [6,5,100,4,404,3,2,1];
php > $sort_fn = function($a, $b) { echo "comparison $a and $b\n"; return $a <=> $b; };
php > usort($items, $sort_fn);
comparison 6 and 5
comparison 6 and 100
comparison 100 and 4
comparison 6 and 4
comparison 5 and 4
comparison 100 and 404
comparison 404 and 3
comparison 100 and 3
comparison 6 and 3
comparison 5 and 3
comparison 4 and 3
comparison 404 and 2
comparison 6 and 2
comparison 4 and 2
comparison 2 and 3
comparison 404 and 1
comparison 6 and 1
comparison 4 and 1
comparison 2 and 1
Аноним 19/09/22 Пнд 22:35:11 2467526 712
>>2467166
>Очень годный код
Ёб вашу мать, а я на работке на пхп легаси 10ти летней давности ругаюсь.

>>2467203
>Метод проверяет совместимость форков блокчейна
Метод это принадлежащая классу функция или процедура, а это просто функция от индуса который не знает про DRY хотя откуда это знать низкоуровневым обезьянам которые лучше просто скопируют ещё один if нежели займуться программированием.
Аноним 19/09/22 Пнд 23:46:46 2467581 713
>>2467526
Это у них чистейший код называется.Куда нам пыхерам до такого :)
И эликсирщик ещё и пытается это дерьмо оправдать, что забавно.

Как-то на прошлой работе мне парсеры на чистом функ.пхп вывалили, всё в папочке и файлов штук 20, в каждом файле по 20 функций, чтоб я это в фреймворк засунул, переписав на ооп. Мне вот голанг-код напомнил эти пхп-скрипты, написанные 15 лет назад каким-то студентом.
Я ещё год назад просматривал либы голанга, видимо ничего не изменилось, как писали GOвно и пихали всё в одну функцию, так и продолжают.
Аноним 19/09/22 Пнд 23:59:47 2467588 714
>>2467526
>>2467166
Сразу видно писали мега-востребованные голанг-сеньёры с мильярд далярау зар.платами. А ещё они любят писать функцию тернарного оператора, потому что тернарника в голанге нет. Или if err != nil вставлять каждую вторую строчку для обработки ошибок, ведь try-catch это для пыхеров всяких, они выше этого!
Нет это не смешной костыль, это высокоархитектурные решения голанг-эликсирщиков!
Аноним 20/09/22 Втр 00:33:42 2467603 715
>>2467581
>чтоб я это в фреймворк засунул, переписав на ооп
нахуя?
чистый в функциональном стиле хорош именно тем что тебе не нужно его переписывать - просто подключаешь, ну там, адаптер хуйнул - и погнали.
фреймворк головного мозга лечить нужно, а не поощрять
Аноним 20/09/22 Втр 01:26:03 2467620 716
>>2467603
>и погнали
Cвойства файла тоже в адаптер запихать надо или же всё таки сделать класс как белый человек?

>фреймворк головного мозга лечить нужно
А функциональщиков пиздить за тупость.
Аноним 20/09/22 Втр 02:15:42 2467638 717
image.png 41Кб, 720x511
720x511
>>2466858
>если ты менеджишь класс CarDriver - ты обязан менеджить все его потомки
Буковка D в SOLID о чём гласит? Правильно, о том, что классы должны зависеть от абстракций, а не от конкретных деталей.
Я просто не понимаю, что ты несёшь? Ты всегда можешь перегрузить метод дабы не менять его в родителе.

>Но всё равно существует влияние родителя Driver, и оно пропорционально количеству наследования
Потому, что ты не понимаешь как правильно использовать наследование вот и всё.

>>2467451
>он гласит "один раз написали - и не трогаем"
Он гласит - закрыт для модификации, открыт для расширения.

>чтоб у мудаков ничего не рушилось
Как ты сломаешь код потомков если добавишь пару методов и свойств к родителю? Дабы новые непредвиденные потомки использовали как старые методы так и новые.
Если у мудаков всё рушится при наследовании значит мудаки его и писали.
Аноним 20/09/22 Втр 08:05:43 2467690 718
>>2467620
>Cвойства файла
вспомню но что это значит не объясню и пример не покажу
Аноним 20/09/22 Втр 08:40:11 2467704 719
>>2464781
>И у гошников зепка в полтора-два раза выше чем у похапешника - с этим поспорь.

Кекс. Зэпка от языка не зависит, лол. Зэпка зависит от софтскилов и умения договариваться.

Твоя мамка сосет бесплатно, инстаграм-шлюха за 50к
Аноним 20/09/22 Втр 09:01:32 2467730 720
>>2467526
>Метод это принадлежащая классу функция или процедура, а это просто функция от индуса который не знает про DRY хотя откуда это знать низкоуровневым обезьянам которые лучше просто скопируют ещё один if нежели займуться программированием.
Напиши как правильно, чего стешняешься
Аноним 20/09/22 Втр 09:21:55 2467746 721
>>2467581
>Это у них чистейший код называется.Куда нам пыхерам до такого :)
>И эликсирщик ещё и пытается это дерьмо оправдать, что забавно.

>>2467588
>Сразу видно писали мега-востребованные голанг-сеньёры с мильярд далярау зар.платами.

Я не элексирщик и не гофер, просто мимо проходил. Это не называется чистым кодом и я не оправдываю ничего, есть вот такая логика работы, тут она реализована именно так, но мне так и никто не предложил более лучшего кода конкретно для этого куска выше >>2467166
Все говорят какое говно, а мне даже стало интересно как бы вы сами не говно написали, несколько раз попросил показать как правильно. Пока вижу только кидание говном, даже как-то на словах никто не сказал что с этим делать. Вы что лучше написать не можете? В треде одни битриксоиды сидят?
Аноним 20/09/22 Втр 10:17:52 2467778 722
>>2467704
>Зэпка от языка не зависит, лол. Зэпка зависит от софтскилов и умения договариваться.

Мань, заканчивай в голову ебаться, речь не про крайние случаи а ля "один мой невыдуманный друг", а про минималку в вилках синьорских вакансий. Помониторь рыночек - потом обсудим.

Полтреда стоит вой какая пыха лёгкая, что любая обезьяна может за вечер вкатиться под пивко, а теперь оказывается что зепка на перегретом рынке труда зависит от софтскилов. Лул.
Аноним 20/09/22 Втр 10:57:32 2467788 723
>>2467778
>зависит от софтскилов
*от софтскилов, а не от стека
Аноним 20/09/22 Втр 11:18:12 2467799 724
>>2467778

Мимо другой анон, на го работать круче чем на пыхе. Сначала учишь пыху чтоб вкатиться, потом свичишься в го потому что там больше платят. Знание пыхи для гошника часто плюс, огромная куча кода на го это сервисы для проектов на пыхе.

И в го вкатиться с нуля сложно, а в пыху легко.

Учишь пыху, работаешь до мидла, идешь на го
Аноним 20/09/22 Втр 12:48:10 2467847 725
Я смарю тут дохуя SOLIDных шизов собралось. Наследования применяют, открывают для расширения.

Так вот, шизы. Если у вас нет конечного алгоритма, который определяет насколько код соответствует каждому из принципов SOLID, то вы просто ебучие сектанты. Обреченные вечно спорить кто пишет по солиду, а кто нет.

Это ж насколько нужно быть ебанутым, чтобы на серьезном ебале спорить о соответвии критерию, не имея алгоритма проверки. Правильно вас руби хуй на хабре попустил.
Аноним 20/09/22 Втр 12:49:01 2467848 726
>>2467847
>Правильно вас руби хуй на хабре попустил.
Дай ссылку
Аноним 20/09/22 Втр 12:52:52 2467852 727
Screenshot 2022[...].png 102Кб, 1880x560
1880x560
Аноним 20/09/22 Втр 13:34:11 2467871 728
>>2467638
>Буковка D в SOLID о чём гласит? Правильно, о том, что классы должны зависеть от абстракций, а не от конкретных деталей.
Уточни что ты имеешь ввиду, учитывая что мы говорим о наследовании, а не о передаче аргументов в конструктор.

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

>Я просто не понимаю, что ты несёшь?
Напомню что я объясняю тезис "в ООП наследование противоречит инкапсуляции", а для этого нужно обсуждать наследование, а не методы его обхода. Ну, это если ты хочешь понять в чём же всё-таки противоречие.

>Потому, что ты не понимаешь как правильно использовать наследование вот и всё.
Покажи как правильно

>Как ты сломаешь код потомков если добавишь пару методов и свойств к родителю? Дабы новые непредвиденные потомки использовали как старые методы так и новые.
Смотря как добавишь, может и сломать. Почему ты приводишь частный практически беспроблемный кейс как аргумент? Или у тебя это единственный кейс?

Скрин твой - говно говна. Во-первых меняется сигнатура (тип аргументов) - это значит забудь про молиморфизм, нахуй тогда нужно ооп? Во-вторых, у тебя появится Circle от Figure, ты забудешь имплементировать getArea - получишь ошибку в расчётах (очень хуёвую ошибку, замечу, которая выявляется только спустя какое-то время работы программы и проёбанные деньги если это финтех). В-третьих на скрине непонятно зачем их вообще наследовать а не сделать отдельными классми. В-четвёртых непонятно нахуй тебе вообще нужны классы когда достаточно пары функций.
Аноним 20/09/22 Втр 13:51:48 2467887 729
Как пользоваться WSL?
Аноним 20/09/22 Втр 14:17:29 2467916 730
Screenshot 2022[...].png 79Кб, 1018x299
1018x299
>>2467871
Через пару итераций у него родится абстрактная фабрика интерфейсов.
Аноним 20/09/22 Втр 14:44:18 2467936 731
image.png 267Кб, 400x400
400x400
>>2467847
>>2467852

> Это ж насколько нужно быть ебанутым, чтобы на серьезном ебале спорить о соответвии критерию, не имея алгоритма проверки. Правильно вас руби хуй на хабре попустил.

Есть критерий. Если бы ты читал книгу Хуйла "Чистая архитектура", ты бы знал что главный критерий качества архитектуры это стоимость внесения изменений.

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

Большая часть GRASP и SOLID это традиция инженерной мысли уходящая корнями в века. Вот у меня есть резистор и конденсатор. Но я не могу купить "резистоконденсатор", и конденсатор это одна деталь, который не состоит из двух отдельных компонентов. Иначе бы это было нарушением Low coupling и High Cohesion соответственно.

Единственное где у этого хуесоса они могли бы всплыть это на собеседовании. Я не верю что ему пулл реквест зареджектили потому что букве не соответствует. А на собесе уж извени, проводят поверхностный срез инересов. Хотят узнать читает человек книжки или нет. Я может тоже не со всем в книгах Хуйла согласен, но я их хотя бы читал.
Аноним 20/09/22 Втр 16:07:27 2468024 732
>>2467936
Бла. Бла. Бла. Стоимость изменений какая-то абстрактная. Высрал страницу ни о чем.

Если ты не можешь описать алгоритм для проверки того насколько рандомный код соответствует, например OCP. То ты, хуипутало, ничего ни про какой OCP не знаешь нихуя. И толку от критерия "соответствует OCP" никакого нет.

У тебя самого в голове не щелкает нихуя, когда ты не можешь ответить на вопрос как конкретно проверить SOLID или не SOLID?
Аноним 20/09/22 Втр 16:12:51 2468029 733
>>2467916
Асбтрактная фабрик Х это плохо? Как по мне - выглядит уебищно
Аноним 20/09/22 Втр 16:28:43 2468037 734
>>2468029
А это нам пусть вот этот >>2467638 ООП гений расскажет. Хотя с этим кодом он так смачно даванул не снимая штанов, что наверное просто начнет троллинг тупостью.

Со своей стороны могу намекнуть, что он забыл про бульон. И должен быть еще код, который все эти круги и квадраты будет создавать. Хотя повторюсь, он такой хуйни понаписал, что этот бульон - к говну подлива.
Аноним 20/09/22 Втр 16:35:26 2468045 735
>>2468024
>Бла. Бла. Бла. Стоимость изменений какая-то абстрактная. Высрал страницу ни о чем.

Да вполне материальная. Время команды - это деньги компании. Чем дольше команда добавляет фичу, тем хуже архитектура.

> Если ты не можешь описать алгоритм для проверки того насколько рандомный код соответствует, например OCP. То ты, хуипутало, ничего ни про какой OCP не знаешь нихуя. И толку от критерия "соответствует OCP" никакого нет.

Ты наследуешься от класса, либо зависишь от него каким-то другим образом. Держешь экземпляр как DI, ли еще как-то.

Его расширили, у тебя все работает -> соответствует
Его изменили, твой код поломался -> не соответствует

> У тебя самого в голове не щелкает нихуя

Когда джуном был щелкало, а потом разобрался
Аноним 20/09/22 Втр 16:44:22 2468056 736
>>2468024

Знаешь, я тебе даже еще проще объясню. Вот ты скачал себе фреймворк, дапустим ларавель. Ты имеешь возможность расширять\дополнять его компоненты наследованием. Но ты не лезешь в сам код ларавелья, для того чтобы переписать этот класс.

Так вот внутри твоего приложения архитектура должна быть такая же. Есть некое ядро, которее ты расширяешь, но не меняешь.
Аноним 20/09/22 Втр 16:55:34 2468066 737
>>2468045
Великолепный алгоритм, шиз. Просто охуенный, если я правильно понял. Надежный блядь как швейцарские часы. Мы выясняем что код не соответствует SOLID когда код перестал работать. Заебись, четко. Записываем тебя в долбаебы сектанты, которые занимаются толкованием книги Бога Кузи Дяди Боба.

>Знаешь, я тебе даже еще проще объясню.
Мне до пизды твои личные объяснения. На двух шизов три теории. Ты высри мне четкий пошаговый алгоритм хотя бы для проверки кода по SRP. Разобрался он блядь.
Аноним 20/09/22 Втр 17:28:55 2468127 738
>>2468066
> Мы выясняем что код не соответствует SOLID когда код перестал работать

Я пишу фреймворк. В моем фреймворке код работает. Это у тебя в проекте о существовании которого я не знаю, че-то упало.
А упало оно потому что я не соблюдаю OCP.

Алгоритм я тебе уже написал.
Я пишу ядро ОС, ты пишешь драйвер на принтер.

Мои компоненты должны быть достаточно открытым чтобы ты мог добавить свой принтер. И достаточно закрытым чтоб тебе не нужно было просить меня ядро запатчить под нужны твоего принтера.

Ты либо никогда не работал над большими проектами, либо троллишь тупостью.
Аноним 20/09/22 Втр 17:44:27 2468152 739
>>2468127
Хватит нести хуйню ни о чем. Принтеры блядь какие-то приплел в пхп треде.

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

Не позорься, просто блядь хватит переписывать одну и туже хуйню на новый лад. Если ты не можешь применить алгоритм проверки к конкретному куску кода, и получить результат, то вся эта около солид болтовня просто сектантский бред. И с каждым новым высером ты это подтверждаешь.
Аноним 20/09/22 Втр 17:47:49 2468160 740
>>2468024
>Стоимость изменений какая-то абстрактная
>Если ты не можешь описать алгоритм для проверки

Ты ещё до определения "архитектура" доебись
Аноним 20/09/22 Втр 17:57:28 2468171 741
>>2468152

Я тебе дал алгоритм определения. Если твой кусок кода можно расширять наследуясь от него, добавляя стратегии или регистрируя компоненты, то соответствует.

А если нужно в сам твой кусок кода лезть чтоб добавить функционал, значит нет.

Определять научишься когда джуном перестанешь быть.
Аноним 20/09/22 Втр 18:06:44 2468188 742
>>2468171
Все, пошел троллинг тупостью. В игноре.
Аноним 20/09/22 Втр 18:19:51 2468208 743
>>2467730
>Напиши как правильно
А сколько ты мне за это заплатишь?

>>2468037
>И должен быть еще код
>В абстрактном примере
>Должен..

>Хотя повторюсь, он такой хуйни понаписал, что этот бульон - к говну подлива
>Все, пошел троллинг тупостью.
Действительно.
Аноним 20/09/22 Втр 18:36:16 2468225 744
>>2468208
>А сколько ты мне за это заплатишь?
Начались виляния, тогда на словах скажи чтобы ты тут сделал как бы реализовывал подобное
Аноним 20/09/22 Втр 18:47:21 2468236 745
>>2468152
>Если ты не можешь применить алгоритм проверки к конкретному куску кода
Ну а твои предложения какие?
Аноним 20/09/22 Втр 18:50:25 2468239 746
>>2468225
>Начались виляния
Виляешь тут только ты, сколько заплатишь за консультацию?
Аноним 20/09/22 Втр 19:05:16 2468259 747
>>2468236
Какое нахуй предложение?
Я говорю что без конкретных измеримых критериев, которые можно применить к проектируемому коду вся это солид возня сводится к банальному "нормально делай - нормально будет". А все попытки утверждать что чей-то код написан или не написан по солиду просто ебучее сектантство и заряжание воды.
Аноним 20/09/22 Втр 19:09:14 2468264 748
>>2468259
То есть, нахуй SOLID, ты это хочешь сказать?
Аноним 20/09/22 Втр 19:14:34 2468271 749
>>2468259
>"нормально делай - нормально будет"
На сам ты чем руководствуешься и как оцениваешь что нормально а что нет?
Аноним 20/09/22 Втр 19:23:08 2468290 750
>>2468239
Нисколько, это опенсорс
Аноним 20/09/22 Втр 19:23:18 2468291 751
Аноним 20/09/22 Втр 19:41:10 2468324 752
>>2467871
>Уточни что ты имеешь ввиду
Имеется ввиду то, что у базового класса должны быть методы или свойства отвечающие за общие характеристики объекта,
например цвет, вес, заведи двигатель или покажи тип двигателя.
А не конкретные кейсы для потомков по типу GetCountWheels, абстракции, а не частности u know.

>учитывая что мы говорим о наследовании, а не о передаче аргументов в конструктор.
Что ты несёшь? Как передача аргументов в конструктор противоречит наследованию?

>Перегружаем все методы
Ты читаешь сквозь пальцы? Ты же реально ебанутый функциональщик несущий хуйню.

>а для этого нужно обсуждать наследование
Именно для этого было написано от чего должны зависеть потомки и почему ты идиот если завязываешь родителя на частности его потомков.

>Смотря как добавишь, может и сломать
У тебя это всё ломается от того, что ты не понимаешь для чего и как используется наследование.

>Покажи как правильно
Как правильно указать в родителе общие характеристики для потомков?
А в своём говнопримере я проебался с тем, что передаю аргументы в сигнатуру метода когда должен был в перегрузке использовать свойства объекта.
Аноним 20/09/22 Втр 19:49:21 2468339 753
>>2468324
>А в своём говнопримере я проебался с тем, что передаю аргументы в сигнатуру метода когда должен был в перегрузке использовать свойства объекта.
Еще один шаг к абстрактной фабрике. Может перестанешь тянуть кота за яйца и уже вывалишь нам её? Весь этот душистый навоз из двойных иерархий, с пустыми переопределенными методами и этими сочными не используемыми родительскими свойствами?
Аноним 20/09/22 Втр 19:58:19 2468345 754
Зачем нужен абстрактный класс?
Аноним 20/09/22 Втр 20:31:25 2468385 755
>>2468339
>Может перестанешь
Может ты пойдёшь нахуй из треда и найдёшь себе работу? Если не понимаешь ооп - можешь идти смело нахуй т.к тебе функциональщику одебилившему никто ООП разжёвывать не обязан.
Тебе в последний раз как полному долбоёбу так уж и быть поведаю
У тебя например есть базовый класс репозитория который имеет методы подключения к бд, отключение от неё, проверка состояния подключения и т.п. то есть общие свойства и методы для работы с бд.
И есть наследники где каждый для работы с одной конкретной таблицей т.е каждый потомок умеет подключаться к бд, сделать свои частности и отключится.
Так яснее, что есть общности, а что есть частности?
Так понятнее почему при грамотном наследовании ты не сможешь сломать родителя потомком?
Родителю похуй на то кто от него наследуется т.к он делает общую реализацию, а не частную ведь он является фундаментом для своих наследников.

>>2468345
>Зачем нужен абстрактный класс?
Чтобы принуждать наследующиеся классы реализовать какие либо методы или делать базовую реализацию для них.
Аноним 20/09/22 Втр 21:01:17 2468427 756
>>2468385
>тобы принуждать наследующиеся классы реализовать какие либо методы или делать базовую реализацию для них.
нихрена не понятно.
Аноним 20/09/22 Втр 21:17:23 2468459 757
изображение.png 50Кб, 1503x765
1503x765
изображение.png 43Кб, 510x769
510x769
Аноним 20/09/22 Втр 21:27:47 2468472 758
>>2468385
Мне не надо нихуя объяснять. Я все понял как только увидел реализацию подсчета площади фигуры в родительском методе. С двумя параметрами сука. Перегрузки со сменой типов это конечно веселый номер, но из другой программы.

После того как тебя ткнули в кучу говна, которую ты навалил ты попытался спрыгнуть:
>передаю аргументы в сигнатуру метода когда должен был в перегрузке использовать свойства объекта

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

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

Если делать это по ООП, а не в одном методе, то единственный вариант это иерархия объектов фабрик, каждая из которых знает как создать соответствующую фигуру. А завязано все будет на абстрактную фабрику, которая принимает данные любой фигуры и возвращает объект типа Figure. Опа и кода x2. А еще ведь нужно написать конфиги для DI. Опа еще x2. А когда нужно будет поменять что-то близкое к вершине иерархии опа и работа удесятиряется. И этот запах. Запах кучи навоза, которую ты навалил.

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

А самое смешное что всю эту неподдерживаемую громоздкую поебень можно заменить простейшей композицией. Просто передав в фигуру в калькулятор площади. Ой вей, это же ООП, а что куда нужно передать?
Аноним 20/09/22 Втр 21:48:15 2468503 759
>>2468472
>Эта стена текста

>Сделать полиморфную структуру метода
>Начал про наследование
>обоссали
>перекатился в полиморфизм и фабрики
Нахуй иди функциональщик, как напишете годный браузер с расширяемым функционалом или игровой движок, приходи.
Аноним 20/09/22 Втр 21:52:31 2468507 760
>>2468503
>Нахуй иди функциональщик
С кем ты блядь разговариеваешь полуебок? Какой нахуй функциональщик? Я сегодня впервые за пол года в этот тред зашел.
Аноним 21/09/22 Срд 11:05:16 2468926 761
>>2468345
Показывает что это ещё сырая заготовка, и инстанцировать его не нужно.
Аноним 21/09/22 Срд 11:16:04 2468951 762
>>2468472
Ты всё правильно пишешь - запихивание геометрических фигур в иерархию наследования - это провал. ИЧСХ, оопешники такой простой пример не выкупают, у них срабатывает мышление "ну ведь круг, овал и треугольник - это всё геометрические фигуры, а значит они должны наследоваться от Figure, обязаны просто, аааээ (пыхтит впихивая)". Неспособны выкупить, потому что оопешники знают только оопэ.

А ещё ООПшники рвутся на простом примере: есть игра где юнит бьёт юнита, как описать расчёт урона - unit.hit(opponent) или opponent.hit_by(unit)
Аноним 21/09/22 Срд 11:17:54 2468959 763
>>2468503
>Нахуй иди функциональщик
Хуя неуча порвало
Аноним 21/09/22 Срд 11:30:08 2468977 764
>>2468951
>оопешники знают только оопэ
Потому что оопэ с наследованием - не самый лучший инструмент, и любопытный программист с кругозором найдёт что-то получше. Во всяком случае топить за ооп он точно перестанет. Ну классы и классы, где подходят - там использую.
Аноним 21/09/22 Срд 16:21:11 2469337 765
У вас тупые примеры для ООП. Какие еще CarDriver И геометрические фигуры? Давайте реальные примеры:

- объектная модель в редакторе текстового документа, векторного изображения или DAW
- объектная модель GUI
- объектная модель системы доставки еды из ресторанов

И т.д, а то вы берете какие-то дурацкие примеры, где надо круг унаследовать от прямоугольника и пытаетесь на их основе доказать, что ООП не нужен.
Аноним 21/09/22 Срд 16:23:27 2469343 766
>>2468951

> А ещё ООПшники рвутся на простом примере: есть игра где юнит бьёт юнита, как описать расчёт урона - unit.hit(opponent) или opponent.hit_by(unit)

Можно вообще вынести это в отдельный сервис.
Аноним 21/09/22 Срд 16:27:13 2469354 767
>>2468977

ООП прекрасный инструмент. Давай возьмем пример: ООП модель для GUI. У тебя есть объект TextField, и у него есть метод setText. Все логично, есть класс, в нем есть методы.

А теперь возьмем функциональщину. Есть некий тип TextField, методов у него нету, а просто есть никак с ним не связанная отдельная функция setText. То есть, у тебя тысячи никак не сгруппированных функций. Более того, из-за иммутабельности любое изменение виджета создает новый экземпляр, и все, кто хранил ссылку на виджет, оказываются с устаревшей копией виджета. Красота.
Аноним 21/09/22 Срд 16:30:31 2469370 768
>>2468345

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

То есть, абстрактный класс обычно используется как база для наследования.

Например, ты делаешь какой-нибудь бухучет и у тебя есть ЮрЛица и ФизЛица. Ты можешь их унаследовать от базового класса Субъект, и сделать его абстрактным, чтобы никто не пытался создать Субъект вместо Юрлица.
Аноним 21/09/22 Срд 16:34:50 2469383 769
>>2467887

Не понял твой вопрос.

WSL это среда для выполнения Линукс программ. Ты устанавливаешь WSL, устанавливаешь в него нужную ОС вроде Убунту или еще что-то, ставишь туда нужные программы и запускаешь.
Аноним 21/09/22 Срд 16:36:41 2469389 770
>>2469354
Что блядь значит "не связанная"? Структура и функции находятся в одном модуле или пакете, есть типизация и уровни доступа. Все инструменты для инкапсуляции и полиморфизма. Че ты несешь вообще?
Аноним 21/09/22 Срд 16:36:54 2469391 771
>>2467847

Расскажи нам про используемые тобой принципы и алгоритм их проверки. Или ты просто лепишь код как придется?

Также, расскажи мне про принципы написания музыки и алгоритм их проверки.
Аноним 21/09/22 Срд 16:39:46 2469398 772
>>2467335

В поддержке, если что-то не работает.
Аноним 21/09/22 Срд 16:40:19 2469403 773
>>2469391
>>2468291
Про музыку пиздуй спрашивать в музач. Там тебе быстренько объяснят и за теорию и за практику. Музыку писать это тебе не на пхп формошлепить.
Аноним 21/09/22 Срд 16:42:58 2469411 774
>>2467212

Только вот Го не такой простой, как хочется верить. Вот пример статьи с описанием труднообнаружимых, но легко создаваемых гонок в Го-программах: https://www.uber.com/en-FI/blog/data-race-patterns-in-go/

Ваши хваленые асинхронность и многопоточность в итоге оборачиваются головной болью и необходимостью нанимать дорогих элитных разработчиков для разгребания багов.
Аноним 21/09/22 Срд 16:45:31 2469416 775
>>2467207

Ты пишешь какую-то чушь. В Руби вызовы методов разрешаются на этапе компиляции и в рантайме поиска метода в объекте не происходит? Точно также они ищутся динамически при каждом вызове.

В PHP есть тайп-хинты и классы неизменяемы, что позволяет в теории оптимизировать эти вызовы. В Руби такой возможности даже в теории нет.
Аноним 21/09/22 Срд 16:48:26 2469421 776
>>2469354
>Все логично, есть класс, в нем есть методы.
главное повторять почаще эту мантру, что есть класс, а в нём есть методы

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

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

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

ты не понимаешь что такое фп, не пиши про него больше.
Аноним 21/09/22 Срд 16:48:26 2469422 777
>>2467182

В Го действительно ужасный недоделанный ООП, хотя объекты и методы есть. Например, в объекте нельзя задавать полям значения по умолчанию. Нет функций с keyword-аргументами.
Аноним 21/09/22 Срд 16:51:38 2469435 778
Вообще, в Го очень много странностей, которые есть там только из-за оригинальности его создателя.

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

И эти люди еще что-то говорят про PHP. Вы бревно в своем глазу не замечаете.
Аноним 21/09/22 Срд 16:53:32 2469439 779
>>2469421

> от рантайма и компилятора зависит. в расте можно и так и так, в хаскеле скорее всего как в кложуре.

В Хаскелле все значения иммутабельны. Раст не относится к функциональным языкам.
Аноним 21/09/22 Срд 16:54:42 2469444 780
>>2469435
Меня от го блевать тянет. Но у го есть оно неоспоримое преимущество: это единственный выход из пхп экосистемы. Зайди на хх и открой десять синьорных вакансий. В каждой будет написано "желательно го". И в каждой крупной компании топ сеньоров на пхп больше не пишет.
Аноним 21/09/22 Срд 16:55:00 2469447 781
>>2469421

> для малых данных типа тупла из трёх u64 нет разницы по перфу передаёшь ты их по значению или по ссылке

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

Передача объектов по ссылке делается не для микрооптимизации, а для обеспечения согласованности.
Аноним 21/09/22 Срд 16:55:48 2469449 782
>>2469411
>для разгребания багов
так ты пиши без багов сразу

>хваленые асинхронность и многопоточность в итоге оборачиваются головной болью
очевидно что есть готовый платить заказчик, который хочет не тухлого вялого, а нормального перформанса в 50 раз выше чем на однопоточном пхп. справишься ли с этим лично ты - да похуй. есть кто справится.
Аноним 21/09/22 Срд 16:58:05 2469453 783
>>2469439
>В Хаскелле все значения иммутабельны
в кложуре тоже

>Раст не относится к функциональным языкам.
ты не понимаешь смысл слов которые произносишь, поэтому скипану
Аноним 21/09/22 Срд 17:02:30 2469462 784
>>2466600

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

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

И сразу скажу, что одной из причин утечки может быть использование dev-режима вместо prod в Симфони.
Аноним 21/09/22 Срд 17:05:20 2469473 785
>>2466672

Нет, почитай урок про обработку форм: https://github.com/codedokode/pasta/blob/master/forms.md

Например, при ошибках надо не показывать белый экран с одной надписью, а надо показывать ту же форму с заполненными данными и сообщением об ошибке.
Аноним 21/09/22 Срд 17:06:25 2469477 786
>>2469447
>Если ты передаешь виджет по значению, то при его изменении у всех получателей остается устаревшая копия.
я тебе на это ответил где-то в том же комментарии. этой проблеме столько же лет сколько программированию в целом, и решению столько же лет. нужно просто не ларавельку задротствовать, а начать программировать

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

согласованность, мань, будет только если ты обернёшь данные с конкуретным доступом в мьютекс. а мьютекс - это просевший перф и/или дедлоки.
Аноним 21/09/22 Срд 17:07:09 2469480 787
>>2466456

В идеале ты определяешь это профайлером. То есть, смотришь, какие функции долго выполняются, и если эту функцию проще всего закешировать,то кешируешь.

Минус кеширования в том , что данные в кеше могут стать неактуальными и надо их удалять или заменять.

Ну например ты закешировал список лучших друзей пользователя в соцсети, он удалил друга, а в списке он все еще показывается.
Аноним 21/09/22 Срд 17:07:36 2469481 788
>>2469462
>одной из причин утечки может быть использование dev-режима вместо prod в Симфони
доктрина в dev течёт как шлюха, у неё логирование не отключается или ещё какая херня
Аноним 21/09/22 Срд 17:08:15 2469484 789
>>2469481

Верно, сама наблюдала.
Аноним 21/09/22 Срд 17:08:57 2469485 790
>>2466456
тебе выше правильно написали - сначала профайлинг приложения в целом, выявление медленных мест, потом возможно кеширование
Аноним 21/09/22 Срд 17:15:51 2469499 791
>>2469484
Так блядь. Чулочники, покиньте тред, не доводите суки.
Аноним 21/09/22 Срд 20:34:01 2469755 792
день добрый. пишу доклад про php. может кто сказал бы какие моменты не нравятся или наоборот в этом языке
Аноним 21/09/22 Срд 20:49:01 2469779 793
>>2469755
День добрый. Пишу доклад про заглавные буквы. Может кто сказал бы какие моменты не нравятся или наоборот в нажатии шифта.
Аноним 21/09/22 Срд 20:56:23 2469791 794
>>2469779
какой ужас, это же так важно
Аноним 21/09/22 Срд 20:58:49 2469794 795
>>2469755
все нравится, всё охуенноstream API хочу вместо array_zalupa функций
Аноним 21/09/22 Срд 20:59:29 2469795 796
Аноним 21/09/22 Срд 21:02:23 2469798 797
>>2469755
>не нравятся
Отсутствие строгой типизации, я очень был бы рад включить строгую типизацию на весь проект.

Дженериков, Автолоадера, нормального GC и Асинхронности из коробки.
Аноним 21/09/22 Срд 21:07:56 2469804 798
>>2469798
>Автолоадер
есть же композер...
Аноним 21/09/22 Срд 21:14:27 2469814 799
изображение.png 21Кб, 848x161
848x161
>>2469804
Его можно и самому написать легко, однако этот автолодер реализуется на уровне самого языка, а не на уровне интерпритатора, что повысило бы производительность на MVC фреймворках.
А вдруг тебе не требуется композер на проекте? Пишем ручками или ставим композер. Много проектов стало зависеть от композера, не находишь?
Аноним 21/09/22 Срд 21:14:52 2469815 800
Аноним 21/09/22 Срд 21:19:01 2469819 801
>>2469814
>Много проектов стало зависеть от композера, не находишь?
Ты рофлишь что-ли? Нет ни одного проекта без композера. Это как сказать "че-то много проектов гит стали использовать".
Аноним 21/09/22 Срд 21:20:02 2469822 802
>>2469814
И много сейчас проектов на чистом пыхе? а вот про то что должно быть в языке согласен, немного охуел когда на чистом пыхе писал в вузе и осознал, что нормального автолоадинга то и нет
Аноним 21/09/22 Срд 21:36:34 2469860 803
>>2469819
>Нет ни одного проекта без композера
В этом и вся проблема, что пыха в современных реалиях впадает в зависимость от стороннего пакета и не имеет своего.

>>2469822
>И много сейчас проектов на чистом пыхе?
Новых нет, а легаси которые писались ещё на заре фреймворков полно. Я вот хотел забавы ради написать свой MVC фреймворк через рефлексию на чистом пхп, ядро сделал и забил когда осознал, что композер мне пригодится так или иначе т.к без него нереально подтягивать репозитории с бандлами, грустно в общем это всё. Вот бы найти выходы на разрабов дабы поднять этот вопрос на повестку дня.
Аноним 22/09/22 Чтв 00:00:51 2470117 804
>>2469860
так ты легаси на условную 9 или 10 пыху и не переведешь никак, слишком много депрекейтнуто в 8 и будет удалено в 9
Аноним 22/09/22 Чтв 00:54:31 2470166 805
>>2469814
>А вдруг тебе не требуется композер на проекте?
во всех языках есть менеджеры пакетов. радуйся что в пыхе появился хоть какой-то. до этого были боль и анальные страдания
Аноним 22/09/22 Чтв 18:52:32 2471025 806
>>2469449

>>для разгребания багов
> так ты пиши без багов сразу

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

Это я к рассуждениям о том, что на Го просто писать. Проще писать на PHP - там описанные в статье баги из-за однопоточной умирающей модели просто напросто невозможны. Как видишь, в PHP довольно умная stateless архитектура (также, она здорово снижает вероятность утечек памяти).
Аноним 22/09/22 Чтв 22:28:58 2471192 807
Правильно я понимаю, что команда var_dump существует для определения типа данной и количества букв в ней, если это string?
Аноним 22/09/22 Чтв 22:50:09 2471205 808
image.png 69Кб, 750x294
750x294
Такой вопрос еще: а какой смысл ставить \n после Выпало $random, если можно поставить \n после Бросаем кубик..., и эффект будет тот же - то есть, будет две отдельные строки в результате.
Аноним 23/09/22 Птн 02:02:15 2471315 809
>>2471205

Если ты запускаешь программу на компьютере, в командной строке, и не выводишь \n после последней строчки, то подсказка командной строки выведется на той же строчке, что и вывод программы.

>>2471192

var_dump выводит тип данных и значение. Для строк пишется не число букв, а число байт, которые текст занимает в памяти. Один символ в utf-8 может занимать от 1 до 4 байт. Буквы кирилицы занимают 2 байта каждая.
Аноним 23/09/22 Птн 12:49:36 2471490 810
>>2471315
Спасибо! Правда, я не до конца соображаю, по какому принципу работуют \n-ки. Я понимаю, что это перенос строки, но не понимаю в каких случаях они должны быть. То есть, перенос строки нужно делать, если строк, начинающихся с echo, больше чем одна? Ну, как на пикче выше.
Аноним 23/09/22 Птн 12:50:49 2471491 811
image.png 93Кб, 1000x764
1000x764
>>2471490
С другой стороны, здесь два переноса строки написаны в одной строчке
Аноним 23/09/22 Птн 17:51:57 2471877 812
>>2471490

Перенос делается в конце каждой строки. То есть, если выводишь 1 строку, то поставь в конце \n. Если 2 строки, то \n после каждой и так далее.
Аноним 23/09/22 Птн 17:52:52 2471879 813
>>2471491

Так тоже можно делать. При этом из-за переносов выведется 2 строки и после последней строки тоже будет перенос, так что последующий текст будет с новой строки.
Аноним 23/09/22 Птн 18:24:41 2471913 814
>>2471490
>Я понимаю, что это перенос строки, но не понимаю в каких случаях они должны быть

в тех случаях, когда тебе нужен перенос строки, очевидно же

>не до конца соображаю, по какому принципу работуют \n-ки
поэкспериментируй, всё сам поймёшь
Аноним 24/09/22 Суб 13:38:50 2472473 815
>>2469411
Это называется трейдофф, чуть больше рисков сделать баг за счет сильно большей производительности.
Я вот фулл тайм разрабатываю на го последние лет пять и что-то на баги с гонками практически не натыкался. 99% таковых происходят из-за неопытности разработчиков и хуёвости архитектуры.
У асинка гошного типа есть несколько простых правил, которые на самом деле сводятся к тому, что
1 - общий стейт всегда должен быть под блокировками
2 - стейт не должен протекать в контекст исполнения, то есть никаких указателей, только копирование
В этом случае ошибки исключены принципиально. И вся хуйня происходит тогда, когда долбоебы, буть они хоть из убера (там вообще-то тоже дофига айти-скама нанято, и джунов, и миддлов) нарушают эти базовые правила, по незнанию или по глупости.

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

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

>>2471025
> Ну вот профессиональные разработчики из Убера не смогли писать без багов, и элитным разработчикам приходится их выискивать и исправлять.
Я большую часть аргументов написал выше, но вот ещё парочка:
1 Хватит превозносить разработчиков в крупных конторах! 99% девелоперов - сраные индусы, нанятые тупыми HRюшами по объявлению, в крупных конторах у них просто разрплата больше. Я знаю множество девелоперов из разных крупных контор в том числе и из гугла, убера и тп, поверьте, там встречается такой же ядерный пиздец и некомпетентность, как и везде.
2 Никаких элитных разработчиков для исправления "багов" описанных в статье не требуется. Эта статья уровня джуномиддла, я не шучу сейчас совершенно.

мимо-гошник, работающий в крупной западной конторе
Аноним 26/09/22 Пнд 18:39:14 2474752 816
Это баг PHP? https://3v4l.org/QBsG7

Неправильно конвертируется дата в unix. Я сконвертировал одну дату в таймзоны с одинаковым сдвигом (+2), но получаю час разницы в unix
Аноним 26/09/22 Пнд 21:10:42 2474913 817
>>2474752
У пхп своя база таймзон, не системная. Погугли pecl timezonedb
Аноним 27/09/22 Втр 10:33:36 2475320 818
>>2474913

А как это сочетается с тем, что сдвиг +2 у таймзон одинаковый, а unix время у одинаковых дат с этими таймзонами разное? В общем я нашёл такие баги в PHP, выглядит прям очень похоже на мои:
- https://github.com/php/php-src/issues/9382
- https://github.com/php/php-src/issues/8730

В общем, решил вот таким костылём: https://3v4l.org/5JAvE
Аноним 27/09/22 Втр 21:35:18 2475909 819
>>2472473
>1 - общий стейт всегда должен быть под блокировками
>2 - стейт не должен протекать в контекст исполнения, то есть никаких указателей, только копирование
Двачаю, я также пишу на расте, контекст приложения иммутабельный. Никогда не передаю ссылку когда использую асинхронность и чтобы получить результат жду когда отработают все футуры

>rwmutex
И собственно это добро тоже есть. Я вообще не понимаю как так можно на эти ошибки нарваться.
Мимо раст-кун
Аноним 28/09/22 Срд 00:04:35 2476014 820
Всем привет. Работал макакой в какой-то нонейм галере которую нашёл в пхп чате в тг, работал полтора месяца, из-за того что задерживали зп ливнул и сказал что готов продолжить работу с ними сразу после выплаты зарплаты (за всю работу не получил ни копейки) и вот сегодня получил сообщение что для выплаты денег за мой отработанный месяц нужно скинуть данные(карту, имя фамилия и тп) и фото паспорта, фото паспорта, как мне сказали, нужно для сбора данных рабочих этой галеры и типо все работники так делают , мне это все кажет пиздец каким стремным, но хотелось бы узнать мнение анонов которые возможно были в похожей ситуации, и попросить совета что делать мне. Спасибо за внимание.
Аноним 28/09/22 Срд 11:48:29 2476322 821
Аноним 29/09/22 Чтв 02:49:18 2477020 822
>>2476014

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

Зачем им фото паспорта, не очень понятно. Если тебе не хочется давать свой паспорт, ты можешь купить рисованные сканы или вообще левые сканы, но надо понимать, что если деньги переводит юрлицо, то оно в переводе указывает ФИО получателя, хотя банки не всегда его проверяют. А если делают обычный перевод с карты на карту то некоторые банки показывают данные получателя. Например, Сбер показывает имя и отчество получателя по номеру карты, некоторые банки его пишут в истории переводов. Если ты дашь левые данные, то они могут не сойтись.

Также, тебе стоит подумать о налогах. Как ты будешь объяснять налоговому инспектору поступление денег на счет и как ты их задекларируешь, не имея подтверждающих документов.
Аноним 29/09/22 Чтв 22:20:40 2477719 823
>>2476014
Фото паспорта у меня просили только при устройстве на официальную работу. На всяких шаражках ни разу, да и не нужно оно кмк. Муть какая-то. Я бы хуй отправил. Паспортные данные - можно, да и то необходимый минимум. Фото паспорта - хуй.
Аноним 29/09/22 Чтв 22:23:19 2477721 824
>>2476014
>нужно для сбора данных рабочих этой галеры
А, это любимая отмазка клуш - "у меня программа требует".
Они собирают данные для внутренних целей.
Возможно это в благих целях, типа чтобы в случае вопросов со стороны налоговой или органов объяснить что они отправили деньги не арабским террористам, а конкретному чуваку с конкретным паспортом. Но хуй их знает, как и где они хранят эти фотографии.
Аноним 30/09/22 Птн 11:19:45 2478023 825
>>2466672
Наверни курс Лаврика с торрентов по основам пхп.
Аноним 30/09/22 Птн 13:05:46 2478088 826
Сегодня попросили сделать, чтобы при нажатии назад, открывалась другая страница, а не предыдущая. Я помню, что у этого гейства было название какое-то.
Аноним 30/09/22 Птн 19:56:49 2478599 827
>>2477721
короче лучше ничего не скидывать ?
Аноним 30/09/22 Птн 20:03:10 2478606 828
Аноним 01/10/22 Суб 01:32:33 2478977 829
>>2478599
Анонче, ты уж сам решай, что для тебя лучше
Аноним 01/10/22 Суб 13:26:09 2479137 830
>>2478606
А можно ли узнать, нахуя тебе эта шляпа нужна?
Аноним 01/10/22 Суб 15:30:26 2479193 831
>>2479137
чтобы получать сообщения из кролика, когда запустил докер
Аноним 01/10/22 Суб 21:31:12 2479431 832
Аноним 02/10/22 Вск 07:59:51 2479634 833
В общем, хочу реализовать метод для выполнения задачи по таймеру.
Погуглив стало ясно, что для этого на уровне кода есть либо threading.Timer либо asyncio.sleep.

Решил пока написать на асинхронно слипе, т.к. он вроде просто понятнее.
Как я понял, при вызове такой функции в event loop будет поставлен таймер, а сама программа может выполнять дальше. И всякий раз при вызове этой функции в event loop будут отгружаться новые таймеры, ну а когда слип закончится будут отправлять запросы.

Кто шарит в асинхронность, подскажите плиз - правильно я понял?

```
async def _asend_task(self, task, time_to_run):
await asyncio.sleep(time_to_run)
self.send_request(task)

```
Аноним 02/10/22 Вск 15:56:40 2479818 834
>>2479634
Тебе в тред к питонистам, тут битриксоиды сидят в-основном, у них только что от слов async и event loop анусы поседели.
Аноним 02/10/22 Вск 16:46:15 2479861 835
Аноним 02/10/22 Вск 20:56:45 2480138 836
>>2479861
Ты дурак что-ли, какой блять симфони, чел про пистон спрашивает
Аноним 02/10/22 Вск 22:24:27 2480256 837
>>2478088
при переходе на следующую страницу сначала редирект на ту страницу, которая нужна, с неё редирект на страницу, на которую предполагался переход рака яиц каждому кто это сделает
Аноним 02/10/22 Вск 22:25:27 2480258 838
>>2480138
в пыха треде, полагаю, он спрашивает, как это аналогично накостылить в пхп
Аноним 02/10/22 Вск 23:46:59 2480331 839
>>2480258
> Как я понял, при вызове такой функции в event loop будет поставлен таймер, а сама программа может выполнять дальше
О да, очень похоже, что он спрашивает именно как "аналогично закостылить"
Аноним 03/10/22 Пнд 00:12:16 2480346 840
>>2480331
я не виноват, что он не может прочесть название треда
Аноним 03/10/22 Пнд 01:17:09 2480386 841
>>2480346
Ты виноват в том, что начал отвечать на явный миспост причем анон уже сказал об этом вот здесь >>2479818
, а когда тебе указали на это, начал зачем-то ещё оправдываться
Аноним 03/10/22 Пнд 07:39:40 2480458 842
>>2478606

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

Если ты запускаешь в Докере локально, учти, что при выбросе исключения команда падает и тебе нужно предусмотреть скрипт для перезапуска. Можно, например, сделать такой bash script:

while true; do php ./bin/console .... ; done

Если ты запускаешь на проде, то используй supervisor и запусти N процессов, если у тебя много свободных ядер.
Аноним 03/10/22 Пнд 19:42:16 2481022 843
>>2480458
>Если ты запускаешь на проде, то используй supervisor и запусти N процессов
так и сделал локально.
Аноним 04/10/22 Втр 17:33:20 2481663 844
вкатился сегодня... завтра иду работать. Спасибо PHP.
Аноним 05/10/22 Срд 11:23:21 2482049 845
Аноним 05/10/22 Срд 14:38:42 2482270 846
>The set_time_limit() function and the configuration directive max_execution_time only affect the execution time of the script itself. Any time spent on activity that happens outside the execution of the script such as system calls using system(), the sleep() function, database queries, etc. is not included when determining the maximum time that the script has been running

Я не знал
Аноним 05/10/22 Срд 14:39:13 2482271 847
Транзакции в DB Аноним 05/10/22 Срд 20:57:41 2482556 848
Вопрос по Materialized Path
Как правильно посчитать number/path при вставке чтобы не получилось неконсистентность структуры именно из-за параллельной записи.

Я так понимаю транзакции для этого и созданы, но они же не блокируют параллельную запись в таблицу или блокируют?
Аноним 05/10/22 Срд 21:08:21 2482558 849
>>2482049
лара хотя я её не очень знаю лол
>>2482271
спасибо...
Аноним 05/10/22 Срд 22:26:52 2482582 850
>>2481663
Сколько вкатывался?
Аноним 05/10/22 Срд 22:38:10 2482585 851
>>2482582
всего лишь за 3 недели... я у мамы очень умный.
Аноним 05/10/22 Срд 23:02:56 2482590 852
>>2482582
я студентоблядь, и не очень активно пытался вкатываться 4 курс
Аноним 05/10/22 Срд 23:38:57 2482602 853
>>2482556
нашел как это называется - потеряные обновления.
Понятное дело что для этого мы и пишем parent_id, но хотелось бы понять как это решается в других случаях, когда нет parent_id
Аноним 06/10/22 Чтв 01:13:38 2482616 854
>>2482556
Читай про ACID и уровни изоляции. Также можешь почитать про acquisition локи и select for update для точечных блокировок.
Аноним 06/10/22 Чтв 11:08:52 2482729 855
>>2482556
>>2482616
а что если сделать parent_id + number уникальными и при провале транзакции делать например 3 попытки записи(каждый раз считая number заново), а потом отдаем клиенту простите-извините у нас не получилось не могли бы вы отправить данные еще раз(естественно пишем в мониторинг)
Аноним 06/10/22 Чтв 13:49:56 2482834 856
Стикер 63Кб, 233x170
233x170
А на битриксе можно сделать файлообменник из шапки ОПа?
Аноним 06/10/22 Чтв 14:30:44 2482873 857
Аноним 06/10/22 Чтв 16:40:07 2482940 858
>>2482873
Изучить битрикс, добавить проект в портфолио 🤷♂️
Аноним 06/10/22 Чтв 17:14:34 2482960 859
Аноним 06/10/22 Чтв 17:24:20 2482978 860
>>2466862
>пхп-эксперт

Бля, чел, базу тащишь. У меня был путь такой:

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

А потом я ушел в го и подумал яка же пыха ебланьска.

Прихожу к мнению что раз в 15 лет нужно выпускать новый ЯП, потому что архаичные языки включая пыху реально во многих местах костыльные
Аноним 06/10/22 Чтв 23:48:53 2483314 861
gk5XAd3fw58.jpg 97Кб, 500x348
500x348
>>2482978
Та же херня, тоже начинал с php, поддерживал проекты до 7 пыхи включительно, потом перекатился окончательно. Пыха была хороша, как язык для вката и заработка копеечки будучи студентом, но стоило перейти на нормальные языки джаву и го, как я сразу ощутил всю костыльность пыхи и понял, что проебал несколько лет серьезного опыта и денег.

Понятно, что на любом более или менее высокоуровневом языке можно написать вообще всё что угодно, а если чего-то нет - то это "что-то" можно закостылить, завелосипедить или написать самому. Даже на баше или перле или vba можно написать серьезный проект с микросервисами, сокетами, репликацией, сборкой мусора, очередью задач и тд и тп. Но только зачем?

Будучи бывшим php'шником сам, я знаю ответ: потому что если никаких других языков ты не знаешь, а учить их долго и сложно, а в php и фреймворки рядом, да вроде и работа есть, то зачем что-то менять? Я тоже в своё время срался в местных тредах, защищая пыху.
А сейчас понимаю, что ошибкой было не слушать других и ошибкой было на любой аргумент пытаться придумать свой, вместо того, чтобы пытаться понять, что тебе вообще пытаются объяснить.

Если бы у меня была возможность вернуться назад во времени, я бы сказал себе, что нет смысла изобретать велосипеды, мир сильно больше, чем кажется, а другие языки вполне преодолимы и программировать на них сильно комфортнее, а возможностей они дают намного больше.
Аноним 07/10/22 Птн 11:44:40 2483478 862
Нахуя нужен call_user_func, если можно непосредственно вызвать callable через скобочки?
Аноним 07/10/22 Птн 12:43:51 2483513 863
>>2483478
Говорят, чтобы старый код работал.
Аноним 07/10/22 Птн 13:35:15 2483548 864
>>2483478
Он не нужен, а вот call_user_func_array ещё теоретически пригоден для всяких хаков с передачей ссылок и тп.
Впрочем и то, и другое, и третье это динамикодрисня всё, в нормальном коде ты почти никогда не должен это писать. Максимум, если какие-нибудь библиотеки пишешь.
Аноним 08/10/22 Суб 17:00:55 2484406 865
>>2440871 (OP)
Где можно почитать/посмотреть что-то внятное про DI-контейнеры?
Аноним 08/10/22 Суб 21:18:23 2484545 866
Аноним 08/10/22 Суб 22:04:44 2484564 867
Аноны, подскажите какой-нибудь аналог хероку для хостинга простеньких скриптов.
Аноним 09/10/22 Вск 17:54:42 2484995 868
>>2440871 (OP)
Залил на beget.com тестовый проект, но почему-то не работают сессии, на самом хостинге сессии поддерживаются, версия php там 5.6.40.
Такой код работает на локальном серевере, но не на хостинге:
session_start();

if($_SERVER['REQUEST_METHOD'] == 'GET') {

$_SESSION["opreratorId"] = $_GET['id'];

}

На страницу приходит гетом id и должен сохраниться в сессию, но этого не происходит.
Аноним 09/10/22 Вск 18:10:03 2485009 869
>>2484995
Посмотри на настройки сессии в php.ini
Аноним 09/10/22 Вск 18:17:54 2485018 870
Ураа решил задачку про рост студентов, чувствую себя программистом прям ух.
Аноним 09/10/22 Вск 18:40:26 2485037 871
>>2485009
/etc/php5/apache2/php.ini
Что это за нех? В файловом менеджере нет таких папок, где это?
Аноним 09/10/22 Вск 19:22:18 2485069 872
>>2485037
Очевидно, на сервере, а у тебя файловый менеджер скорее всего смотрит куда-то в /home.
Но это не важно, нахрена тебе вообще этот путь? Вызови phpinfo(); и посмотри, что у тебя там настроено.
Аноним 09/10/22 Вск 19:32:41 2485076 873
Screenshot6.jpg 162Кб, 974x914
974x914
>>2485069
Вот такое, вроде все включено, тогда почему не сохраняет в сессионный массив?
Аноним 09/10/22 Вск 20:01:37 2485103 874
>>2485076
Может быть миллион причин, к примеру, кривые права на /tmp/php_sess
Смотри варнинги и логи, смотри права, проверяй настройки. Если ну совсем ничего не обнаружишь, напииши в саппорт хостинга
Аноним 09/10/22 Вск 23:42:20 2485265 875
>>2484995
>>2484995
>этого не происходит
Как ты это проверяешь?
Аноним 10/10/22 Пнд 02:23:06 2485360 876
Я могу считаться джуном если могу написать круд лист?
Аноним 11/10/22 Втр 13:21:10 2486145 877
>>2485360
По рыночку ты еще 10500 разной хуйни должен уметь, как то:
композеры, фреймворки, срмки, ну и js еще знать лул.
Аноним 11/10/22 Втр 13:45:26 2486167 878
>>2440871 (OP)
Можно как то интегрировать swoole в приложение на php? Они могут работать в одном процессе? Если же это будет 2 отдельных процесса, то как они будут взаимодействовать?
Аноним 11/10/22 Втр 14:03:26 2486178 879
Аноним 11/10/22 Втр 20:20:26 2486420 880
>>2486167
>как они будут взаимодействовать?
как два отдельных процесса
гугли виды IPC (inter-process communications)
Аноним 12/10/22 Срд 00:11:46 2486530 881
Что смотреть по ларавелю ? Начал курса 2 все просто полная конченная хуйня. Учиться на пет-проекте это реально самое лучшее что можно придумать ?
Аноним 12/10/22 Срд 13:04:56 2486725 882
Аноним 12/10/22 Срд 20:05:41 2486995 883
Аноним 13/10/22 Чтв 10:38:18 2487404 884
>>2486995

<xxx> В похапе мидл – это человек, который может сделать весь проект от начала до конца сам, без ансамбля. Соответственно, джуниор – который не может, синьор – который не будет.
Аноним 13/10/22 Чтв 12:18:49 2487460 885
>>2487404
Бля, вот это сто проц в точку. Уже лет пять к фронту не прикасался тупо зашквар.
Аноним 13/10/22 Чтв 15:05:47 2487582 886
>>2486530
Laracasts очевидный - курс Laravel 8 From Scratch
Аноним 13/10/22 Чтв 21:08:09 2487976 887
>>2482556

Ты правильно заметил проблему. Действительно, возможна ситуация, что например 2 человека одновременно пытаются ответить на один и тот же коммент и для них генерируется одинаковый path. Это либо приведет к тому что у тебя будет дублирующийся path, либо к ошибке, если ты догадался поставить уникальный индекс на пару (id поста, path).

Такая проблема возникает и в других приложениях. Например, если в магазине остался 1 товар и 2 человека пытаются его купить, может получиться что они оба успешно создадут заказ на него.

Что касается транзакции, она здесь нужна, но ее недостаточно. Транзакция дает такие гарантии (сокращенно ACID):

- A - atomicity - все изменения либо применяются целиком либо не применяются вообще
- D - durability - если транзакция успешно закоммичена, то данные надежно сохранены и не потеряются даже при перезагрузке сервера
- I - isolation - никакие изменения, сделанные внутри транзакции, не видны другим, пока транзакция не закоммичена
- и еще С - consistency - что БД остается в "согласованном" состоянии до и после транзакции (то есть, например внешние ключи проставлены правильно, в колонках с уникальным индексом нет повторяющихся значений и тд)

В 99% случаев когда ты что-то меняешь в БД, надо делать это через транзакции, чтобы избежать проблем.

Но тут нет защиты от генерации одинаковых path. Для нее нам нужны блокировки. Блокировка позволяет "заблокировать" строку таблицы так, что пока мы не снимем блокировку, никто не может работать с этой строкой, а если попытается, то остановится и будет ждать, пока блокировку не снимут. Блокировка автоматически снимается при завершении транзакции.

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

Блокировать можно родительский комментарий, на который отвечают. Логика такая:

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

В таком сценарии, если 2 человека одновременно пытаются написать комментарий, то второй скрипт останавливается на этапе взятия блокировки и продолжает работать только после того, как первый скрипт вставит комментарий.
Аноним 13/10/22 Чтв 21:32:01 2487993 888
>>2482602

Нет, потерянные обновления это другое. Это когда например в строке записано amount = 100 и один скрипт пытается увеличить сумму на 100, а второй уменьшить на 50. В идеале результат должен быть равен 150, но может получиться такая последовательность:

скрипт 1: читает значение 100, и хочет записать туда 100 + 100 = 200
скрипт 2: читает значение 100 и хочет записать 100 - 50 = 50
скрипт 1: записывает 200, коммит транзакции
скрипт 2: записывает 50, коммит транзакции

В итоге в ячейку записывается 50 вместо 150. Обновление от скрипта 1 "потерялось".

Чтобы предотвратить эту проблему, нужно брать блокировку на строку при чтении. Тогда на шаге 2 скрипт 2 остановится и будет ждать завершения первой транзакции.
Аноним 13/10/22 Чтв 21:34:47 2487995 889
>>2483314

Справедливости ради, у Го и Явы есть свои странности (особенно у Го). Например, в Го абсолютно долбанутая система, где поля нужно называть с маленькой или большйо буквы в зависимости от видимости. В Яве нельзя сравнивать строки через ==.

А так да, у старых языков есть такая проблема что если в них один раз что-то сделали неудачно, то потом нельзя это исправить, так как сломается куча кода.
Аноним 13/10/22 Чтв 21:41:58 2488002 890
>>2483478

Раньше такой возможности не было.

>>2484406

Если ты уже знаешь что такое DI и тебя интересуют только контейнеры то изучи какую-нибудь библиотеку вроде PHP-DI и почитай PSR-11: Container interface

Если ты не знаешь толком что такое и зачем нужно DI то почитай сначала урок https://github.com/codedokode/pasta/blob/master/arch/di.md
Аноним 13/10/22 Чтв 21:52:43 2488012 891
>>2484995

Сделай тестовый скрипт вида

<?php

session_start();

var_dump($_SESSION);
$_SESSION['x'] = date('r');

И запусти его несколько раз.

Проверь с помощью Dev Tools что куки выставляются. Проверь логи ошибок на хостинге.
Аноним 14/10/22 Птн 14:48:41 2488485 892
Чем в 2022 ровные пацаны пользуются для создания документации из phpDoc? phpDocumentor? Но он ведь уже целую вечность в какой-то бете и половина функций не работает. Причём, была ведь 2 версия, пару лет назад выкатили третью. Как итог - не работают в том числе те вещи, которые работали во 2.
Пиздец какой-то. Неужели нет адекватного инструмента в 2022 году?
Аноним 14/10/22 Птн 19:31:05 2488943 893
>>2488485
Чел, слезай с пыхи, адекватные все ушли с неё.
Аноним 14/10/22 Птн 22:06:23 2489057 894
>>2488943
На что перелазить? Где лучше так работать с документами, конкретный пример приведи что лучше в данной ситуации?
Аноним 15/10/22 Суб 15:42:59 2489344 895
>>2489057
Я не понял, что тебе нужно сделать с докой, но вообше в питоне адова куча батареек.
Аноним 15/10/22 Суб 15:55:44 2489353 896
images.jpeg 5Кб, 300x168
300x168
>>2489344
Лол, ты предлагаеш детский питон?

Я вообще мимокрок, просто интересно что ты предложишь, хотя выснилось что ты сам не знаешь о чем речь вообще.
Аноним 15/10/22 Суб 23:36:48 2489635 897
>>2489353
Какую задачу решаешь-то?
Аноним 16/10/22 Вск 22:57:44 2490219 898
use Abu\Nemitaja\Makaka;
echo ЩИТО("Makaka");

Результат: Abu\Nemitaja\Makaka. Иными словами, мне нужна какая-то возможность получить полное имя класса по его "короткому имени", которое создано через use. Как быть? Есть варианты кроме

echo get_class(new Makaka);
Аноним 16/10/22 Вск 23:54:36 2490264 899
И ещё вопрос

function fn (&$yoba) {
ЩИТО($yoba);
}
$peka = true;
fn($peka);

Результат: peka. Иными словами, мне нужно получить имя переменной, которую я передаю по ссылке.
Аноним 17/10/22 Пнд 00:49:39 2490277 900
Аноним 17/10/22 Пнд 01:46:21 2490283 901
>>2490277
>ты занимаешься полнейшей хуйней и юзать эту поебень в проде не надо
+
Аноним 17/10/22 Пнд 09:04:49 2490327 902
>>2490277
Спасибо.
>Не понятно зачем тебе эти извращения нужны
Проверка типов для элементов ассоциативного массива. Я понимаю, что это наркомания и по-хорошему вместо массива надо использовать объект, но уж как есть. Либо писать значения в массив как обычно, либо через функцию, которая будет хоть как-то проверять типы.
Первое, соответственно, мне нужно для того, чтобы я мог написать короткое имя класса с учётом use, как если бы указывал его в качестве типа свойства класса. Второе - для того, чтобы в TypeError я мог вывести имя массива, с которым возникли проблемы.
Аноним 17/10/22 Пнд 13:45:34 2490451 903
>>2490277
>https://3v4l.org/e71Mm
Так, а если мне нужно, чтобы это всё происходило внутри класса? Типа

class Foo {
function __construct () {
$yobyob = true;
ЩИТО($yobyob);
}
}

И yobyob в качестве вывода.
Аноним 17/10/22 Пнд 15:56:22 2490529 904
>>2490327
>Проверка типов для элементов ассоциативного массива
используй psalm
или используй кастомный объект в котором
function add(MyType $value) {
$this->data[] = $value;
}
Аноним 17/10/22 Пнд 18:45:48 2490662 905
>>2490327
>>2490451
Ты наверное хуево понял.

ТЕБЕ ЭТО НЕ НУЖНО, ДОЛБОЕБ
ТЫ ЗАНИМАЕШЬСЯ БЕСПОЛЕЗНОЙ ХУЙНЕЙ

Если ты не выкупил прикола с globals, то тебе как можно скорее надо по рукам уебать. Хватить заниматься хуйней.
Аноним 17/10/22 Пнд 22:11:07 2490863 906
изображение.png 42Кб, 300x300
300x300
>>2490662
С помощью __FILE__ и __LINE__ получаю место вызова моей охуительной функции, регуляркой вытаскиваю название массива. И что ты мне сделаешь?
Аноним 18/10/22 Втр 02:48:33 2490967 907
>>2490863
обфускацию и минимизацию
Аноним 18/10/22 Втр 03:39:51 2490969 908
Блять я тебя за[...].mp4 8208Кб, 636x360, 00:01:26
636x360
Аноним 18/10/22 Втр 18:37:01 2491292 909
>>2490327

что касается ::class, это не извращение и это можно использовать.

что касается определения имени переданной переменной, то это бред полнейший. И это тебе не нужно, так как при выбросе исключения записывается стектрейс и ты можешь увидеть, из какого места вызвана твоя функция.
Аноним 18/10/22 Втр 18:38:35 2491293 910
>>2490863

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

InvalidArgumentException
Stack:
1 somefile.php:345 some_function()
Аноним 18/10/22 Втр 19:47:49 2491336 911
Есть 2 сервиса, в 1 - аутентификация, во 2 - форма для аутентификации. Фреймворк - ларавель. Как лучше всего в блэйд возвращать ошибки аутентификации?
Аноним 18/10/22 Втр 19:49:27 2491337 912
>>2491336
Пока что мысль такая, при редиректе из сервиса аутентификации, если статус код не 200 редиректить обратно в форму и из тела запроса выставлять ошибки.
Аноним 18/10/22 Втр 23:24:52 2491471 913
>>2491336

В ларавель же есть стандартный способ работы с формами (хотя и костыльный по моему), там ошибки сохраняются куда-то в сессию и их потом можно достать: https://laravel.com/docs/9.x/validation#quick-displaying-the-validation-errors

А вообще правильнее при ошибке не делать редирект, а отображать форму заново, как описано тут: https://github.com/codedokode/pasta/blob/master/forms.md
Аноним 18/10/22 Втр 23:28:39 2491473 914
>>2491471
Ты не понял суть проблемы, аутентификация и форма в разных сервисах, соответственно, и сессии разные.
Аноним 19/10/22 Срд 01:47:42 2491497 915
118-1188804disa[...].png 261Кб, 860x924
860x924
Ананасы, помогите. Я не разбираюсь в node.js, а нужно установить из скаченного репозитория плагин для prettier для PHP https://github.com/prettier/plugin-php - для vs code.

Как это сделать? Уже полдня бьюсь с этим
онлайн установка не нужна, я собираю паки для оффлайна, вдруг отключат доступ к сервисам
Аноним 19/10/22 Срд 10:49:10 2491580 916
>>2491497
На ubuntu

И подскажите пожалуйста, какой intellisense для vscode для php вы используете? Phpstorm стоит, но он тяжелый хочу с него слезть. intellisense плагины платные, взлом почти нереален, есть выход?
Аноним 19/10/22 Срд 12:35:06 2491616 917
>>2491580
Слазить нужно с php, а не с phpstorm.
Аноним 19/10/22 Срд 13:40:12 2491649 918
Сап, аноны.
Изучаю Вуе в связке с Ларавел т.к. это мой основной фрейм. Хочу сделать не полноценное SPA, а использовать Вую только для некоторых динамических элементов на странице. Полноценно пилить фронт и бек в одно лицо я задолбаюсь.
Как обычно делают такое? Я вижу так: использую обычные блейд-шаблоны + регистрацию компонентов Вуе. Это правильно?
Аноним 19/10/22 Срд 13:54:49 2491657 919
>>2491580
>intellisense
Я не использую ничего такого. VSC нативно подсказывает имена переменных, функций и проверяет неймспейсы с пхп-доком. Попытка воткнуть что-то более интеллектуальное часто выливается в то, что это интеллектуальное начинает ебать мне мозги и решать за меня.
Пхпштормом не пользуюсь - тяжёлая медленная хуйня.
Аноним 19/10/22 Срд 14:58:27 2491690 920
>>2491657
>VSC нативно подсказывает имена переменных, функций и проверяет неймспейсы с пхп-доком

Ну если это так, то я сначала попробую так. Просто там фишечки есть типа перейти по кликам на объект(чем искать его в файлах), рефакторинг делать, быстрое редактирование (peek).

Вообщем кому интересно нашел последнюю бесплатную версию vscode-intelephense (vsix файл, автор решил ее не удалять):
https://github.com/bmewburn/vscode-intelephense/releases/tag/v1.2.0
Есть еще хороший бесплатный пак с intelesense от xdebug - https://marketplace.visualstudio.com/items?itemName=xdebug.php-pack
Есть еще интерсный мегапак PHP Tools, он так и не понял — платный или нет, вроде все работает и написано free, но если чего есть статья как взломать предыдущую версию.
На Laravel - тоже подобное нашел, там целый мегапак 10-в-1 буду тестить.

А с Prettier не разобрался 😔. Кстати, годно html/js форматирует, очень интересно. В MDN видел подобные фишечки.
Аноним 19/10/22 Срд 14:59:39 2491693 921
Аноним 19/10/22 Срд 23:41:56 2492382 922
>>2491657
Как же заебись что на реальной работе VSкалоедов гонят ссаными тряпками устанавливать шторм и не выебываться.
Аноним 20/10/22 Чтв 01:02:10 2492431 923
LainHaircut.JPG 9Кб, 250x200
250x200
>>2492382
Бля он быстр, красив, легок. Я шторм под него сделал, и то не дотягивает по дизайну. В шторме много залупной кривой хуйни, про стандартный шрифт шторма вообще молчу, просто пиздос.
А code вообще идеал. Хз чем они дизайнеров кормили и программеров, но это настолько пиздато, что jetbrains аж высрали аналог 'fleet' с платным блядь, гитом, под видом ide будущего.

Ну для работы в ебучий шторм полезу скорей всего. Хотя очень изменились возможности code, я там все как орешки щелкаю, все что нужно есть, все быстро получается.
Аноним 20/10/22 Чтв 03:40:10 2492482 924
>>2491473

Тогда надо отправлять данные аяксом.

Но я конечно плохо понимаю какой смысл форму авторизации разносить в 2 разных микросервиса. Ты сам себе проблемы на ровном месте создаешь.
Аноним 20/10/22 Чтв 03:44:33 2492483 925
>>2491580

Ты можешь попробовать phpactor в качестве language server. Также поискать и попробовать расширения из каталога расширений vs code.
Аноним 20/10/22 Чтв 08:47:29 2492504 926
>>2492483
>phpactor
Походу серьезная штука, на гитхабе под code есть расширение, спс

Если зайдет, может попробую через language server поставить, возможно это как то повлияет на быстродействие
Аноним 20/10/22 Чтв 08:47:50 2492505 927
>>2492483
>phpactor
Походу серьезная штука, на гитхабе под code есть расширение, спс

Если зайдет, может попробую через language server поставить, возможно это как то повлияет на быстродействие
Аноним 20/10/22 Чтв 12:06:43 2492577 928
>>2492382
>гонят ссаными тряпками устанавливать шторм
Большинство работодателей тебе хуй когда шторм оплатят, манечка. А посылать устанавливать просроченную пиратку это самому на три буквы сразу пойти. Как ебанату.
Вообще первый раз такой кринж слышу - чтобы заставляли вебхуйрм ставить. Заставляли блядь, лол. Школота ебучая.
Аноним 20/10/22 Чтв 12:35:00 2492595 929
Вот, кстати, давно наблюдаю тут говноедов пропагандирующих продукты ждетбреинс. Обычно в норме разрабам побоку кто где работает в том числе и работодателям, но не этим отбросам.
Маркетолог ждетбрейнс, залогинься.
Аноним 20/10/22 Чтв 12:35:20 2492596 930
Аноним 20/10/22 Чтв 12:57:41 2492624 931
>>2492431
А что есть такого в шторме чего нет в визуале?
Аноним 20/10/22 Чтв 14:41:42 2492729 932
>>2492624
Под vscode Intellisense под PHP вроде вообще нет, либо низкоуровневый. В свою очередь, не работает функции 'go to Definition' (пкм), 'go to References', (короче серии GOTO), функции Peek (например для css я использую расширение CSS Peek). Подсказки.
И рефакторинг низкоуровневый (могу ошибаться, я зеленый еще в php)

Все решается установкой расширений, но качественные нужно искать, это немножко заебисто. Но со времнем microsoft тупо вставляет эти расширения по умолчанию, либо пишет свои которые ахуеть какие качественные (live preview от microsoft буквально на моих глазах стал просто конфеткой).

Но если рабочую область настроить под себя, выучить shortcut's - Code - это очень мощный инструмент. Есть встроенная возможность сохранять settings на Github, т.е. Использование своего конфигурации везде на любых компах.

Недавно поставил иконки 'Material Theme Icons" от Equinsico, со встроенноц темой dark+, вообще в phpstorm не хочу заходить. Много привлекательных фишек, и все очень быстро.

Короче, чтобы им пользоваться вместо шторма, нужно немного настроить, и узнать точно ли intellisense будет конкурентноспособным.
Аноним 20/10/22 Чтв 15:03:22 2492743 933
>>2492595
Полуебок, назови мне хотя бы одну контору, в которой пишут на пхп и не используют шторм.

>>2492729
Вы внатуре ебанутые. Так и представляю себе: кароч приходит фрезеровщик на собес, его там спрашивают ну че ты фрезер то видал вообще, умеешь, могешь? А он грит мол не нихуя фрезер тяжелый, сложный я им не пользуюсь. Вот у меня есть напильник нахуй, вот это огонь. У него ручка КРАСНАЯ и на ней сбоку пиздатая НАКЛЕЙКА, а у фрезера рукоятки серые, скучные.

Я даже хуй знаю как это объяснять бля. Сказать что ты не пользуешься штормом это примерно как пиздануть что ты клавиатурой не пользуешься. Ты конечно охуенно превзошел всех клавиатуронормисов, но работу то блядь делать надо, сука.
Аноним 20/10/22 Чтв 15:17:45 2492757 934
>>2492743
Ну объясни тогда, что может шторм и что не может vs code. Давай, по фактам, прям по списку.

Я и не говорю что от шторма откажусь, просто пока недостатков ВООБЩЕ не вижу, кроме ~intellisense из коробки
Аноним 20/10/22 Чтв 18:22:38 2493017 935
>>2492880
У меня бы тоже желудок заболел если бы мой хозяин был мелкобуквенным хуесосом.
Аноним 20/10/22 Чтв 18:36:04 2493029 936
Аноним 20/10/22 Чтв 19:05:18 2493050 937
>>2492757
>что может шторм и что не может vs code
удобный и наглядный резолв гит-конфликтов
наглядный список изменений при гит пулл
интеграция с хдебагом
Аноним 20/10/22 Чтв 19:06:50 2493052 938
>>2492757
>что может шторм и что не может vs code
нормальный клиент для поцгреса из коробки
Аноним 21/10/22 Птн 12:07:45 2493830 939
>>2492743
>назови мне хотя бы одну контору
Вайтишник, никакая контора не регламентирует окружение в котором работает программист. Всем похуй где ты пишешь код, главное чтобы таски закрывались.
А теперь иди нахуй, тупое хуйло, и не пиши больше своей детской хуиты на моём программаче.
Аноним 21/10/22 Птн 12:09:12 2493832 940
>>2493050
Это всё через плагины ставится.
Аноним 21/10/22 Птн 12:10:30 2493833 941
>>2493832
Причём перечисленное тобой он умеет из коробки.
Аноним 21/10/22 Птн 12:48:35 2493866 942
16548107548870.mp4 1181Кб, 576x848, 00:00:08
576x848
>>2493830
>Бла бла бла
Ну ты же говоришь что VSС пиздаче и к тому же бесплатный. Должно быть дохуя фирм, в которых в качестве IDE для пхп используют только VSС.
Назови хотя бы одну, или ты заваливай ебало, кукаретик ни дня в IT не работавший.
Аноним 21/10/22 Птн 12:59:51 2493873 943
Screenshot 2022[...].png 26Кб, 394x252
394x252
Screenshot 2022[...].png 27Кб, 442x256
442x256
Screenshot 2022[...].png 35Кб, 1504x286
1504x286
>>2493832
Бля, биокарлики. Вы вообще понимаете разницу между вещью сделанной кем-то чисто по фану на энтузиазме и коммерческим проектом?
Аноним 21/10/22 Птн 15:12:25 2494153 944
>>2493832
какая разница что откуда ставится, если оно по итогу не то и работает не так?
Аноним 21/10/22 Птн 15:14:20 2494170 945
>>2493833
он из коробки умеет "что-то похожее", а не то же самое
Аноним 22/10/22 Суб 00:43:32 2494749 946
>>2492729

Я тестировал phpactor (вместе с sublime), переход к definition там есть (он есть и в саблайме но кривой так как учитывает только имя метода и не смотри на класс), поиск references вроде тоже есть. Есть переименование переменных/методов, есть переименование и перенос классов но последнее по моему надо делать через командную строку (что может быть даже удобнее когда тебе надо много классов переименовать скриптом).

Но есть конечно и косяки, например, трейты слабо поддерживаются (но код открытый, можно легко допилить).
Аноним 22/10/22 Суб 00:45:22 2494750 947
>>2492743

Ну вот смотри в phpactor такие вещи как переименование или перенос класса (с обновлением ссылок на него), переименование методов доступны из командной строки. Если мне надо переименовать 200 методов я могу это сделать скриптом на баш или питоне. Твой phpstorm так может или там надо руками 200 раз переименовывать?
Аноним 22/10/22 Суб 00:47:01 2494751 948
>>2493050

В phpstorm если я не путаю 3-панельный просмотр конфликтов. А я например привык к 4-панельному потому что он гораздо нагляднее.

> наглядный список изменений при гит пулл

ну фиг знает зачем оно нужно можно и в CLI посмотреть командой git diff
Аноним 22/10/22 Суб 01:17:34 2494757 949
>>2494751
>привык к 4-панельному потому что он гораздо нагляднее
где такой?

>>2494751
>> наглядный список изменений при гит пулл
>ну фиг знает зачем оно нужно
ты делаешь пулл на мастере и видишь совокупный дифф по всем стянутым коммитам. то есть наглядно видишь что наговнокодили в репу твои коллеги. при этом тебе не нужно знать какой был коммит до пулла, сколько коммитов ты стянул и тд
Аноним 22/10/22 Суб 01:18:11 2494758 950
>>2494750
>Твой phpstorm так может или там надо руками 200 раз переименовывать?
второе
Аноним 22/10/22 Суб 08:06:24 2494824 951
>>2494749
>Но есть конечно и косяки, например, трейты слабо поддерживаются (но код открытый, можно легко допилить).
Бля, допили братишка. И фичи из восьмой версии тоже, атрибуты там, именованные параметры, множественные типы.

Ток ты это. Побыстрее пожалуйста. А то мы с пацанами уже на VSC, а плагины то не обновлялись по пять лет, то ишью игнорят. Такие контрибьютеры как ты нам нужны. Так победим.
Аноним 22/10/22 Суб 16:00:14 2495265 952
>>2494824
Ты спецом выбрал какие-то ноунейм плагины которые никто не поддерживает? Молодец, умееш в фильтрацию, программист наверное хороший
Аноним 22/10/22 Суб 16:06:48 2495277 953
Screenshot20221[...].png 129Кб, 720x1440
720x1440
Screenshot20221[...].png 117Кб, 720x1440
720x1440
>>2494824
Конкретно к кому ты обращался, phpactor - 9 минут назад коммит - вау пять лет нахуй.
Phpactor VSC - 10 сентября - вау ахуеть пять лет назад, разраб умер
Аноним 22/10/22 Суб 16:17:29 2495296 954
Screenshot 2022[...].png 493Кб, 2360x1300
2360x1300
Screenshot 2022[...].png 383Кб, 2368x1310
2368x1310
>>2495265
Заебался фильтровать, братишка.
Аноним 22/10/22 Суб 16:19:29 2495301 955
>>2495277
Так ты короче допиливать не будешь? Как же нам тогда с VCS братишками трейты писать на восьмом пхп?
Аноним 23/10/22 Вск 06:17:32 2496002 956
>>2494757

>>привык к 4-панельному потому что он гораздо нагляднее
> где такой?

Например в свободном KDiff3 (но у него есть свои косяки).

В 4-панельном просмотрщике выводятся:

- оригинальная версия кода
- код с изменениями в одной ветке (твой код)
- код с изменениями в другой ветке (их код)
- код с результатом

Я не пользовался просмотрщиком в phpstorm, но в open source есть просмотрщик, похожий визуально на него (meld) с такими же скругленными указателями и в 3 панелях мне тяжело ориентироваться.
Аноним 23/10/22 Вск 06:18:47 2496003 957
>>2494757

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

git fetch
git diff master origin/master

Это можно сделать в консоли, но редко когда полезно (для меня) потому что там обычно очень много изменений.
Аноним 23/10/22 Вск 08:06:51 2496009 958
psresolveConfli[...].png 45Кб, 1600x728
1600x728
>>2496002
>>2496003
Бля, это как объяснять слепому с рождения мальчику что такое Тадж-Махал.

Диффф в шторме ИНТЕРАКТИВНЫЙ. Это не просто разноцветный текст. По нему работает навигация (та самая которой до сих пор нет для VSC), подсветка и шорткаты. Это практически то же окно редактора.

>В 4-панельном просмотрщике выводятся:
В шторме в строках с конфликтом показывается исходное значение. Для этого не нужно целое отдельное окно. В ветке А 500, в ветке Б 1000, в мастере 600. В строке с конфликтом будет написано 600. Первый же блядь скриншот в гугле.

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

Классика жанра это когда для отката релиза заревертили коммит на сотню файлов, а спустя пол года нужно все это опять зарелизить. И реверт реверта тут нихуя не проканает потому что там за пол года сотни тысяч строк поменялось. Как такое без шторма сделать и не наебенить кучу ошибок вопрос к VCS кукоретикам. Какая тут нахуй консоль. Я гитом в консоли уже лет пять не пользовался - все на хоткеях.
Аноним 23/10/22 Вск 19:19:17 2496703 959
>>2496009
>Бля, это как объяснять слепому с рождения мальчику что такое Тадж-Махал.
В точку, братан.
Аноним 23/10/22 Вск 19:20:39 2496705 960
>>2496002
>- оригинальная версия кода
>- код с изменениями в одной ветке (твой код)
>- код с изменениями в другой ветке (их код)
Ну вообще тут достаточно и веток без оригинала, если в них подсвечена дельта.
Аноним 24/10/22 Пнд 10:41:53 2497054 961
>>2496009

> В шторме в строках с конфликтом показывается исходное значение. Для этого не нужно целое отдельное окно. В ветке А 500, в ветке Б 1000, в мастере 600. В строке с конфликтом будет написано 600.

Я видел этот скриншот и он абсолютно нелогичный.

Красным в диффе обычно помечают то, что удалено. То есть в левой панели мы видим что в оригинале была строка с setcookie 500 и она в этой ветке удалена. А в правой панели мы видим что в оригинале была строка с setcookie 1000 и она удалена.

И как это понимать? В оригинале было 500 или 1000?

А, наверно красный цвет тут означает что-то другое, например, место где произошел конфликт. Но тогда если мы выберем вариант А или Б, то он появится в центральной панели и мы больше не сможем увидеть что было в оригинале.

Плюс на скриншоте я не вижу обозначений:

- какие конфликты разрешены, а какие нет. Например на скриншоте, в каком состоянии конфликт? Разрешен или нет?
- в случае если конфликт разрешен, какие строки были взяты из А, какие из Б, а какие отредактированы вручную
Аноним 24/10/22 Пнд 10:48:12 2497057 962
>>2496009

> Я гитом в консоли уже лет пять не пользовался - все на хоткеях.

Я довольно часто пользуюсь. Например, в гите есть такая функция как показ истории изменения диапазона строк. То есть я хочу узнать кто и когда менял строки с 100 по 105 в файле 1.php. Командная строка вполне для этого подходит.

> Как такое без шторма сделать

Я не очень понимаю, как тут помогает шторм.

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

Как я понимаю, в случае с штормом точно так же придется разбирать каждое изменение.

Но это 100% можно сделать без шторма и логика работы будет примерно такая же.
Аноним 24/10/22 Пнд 13:05:46 2497136 963
>>2497054
>Красным в диффе обычно помечают то, что удалено
Все эти цвета в шторме настраиваются, вообще поебать.

>то он появится в центральной панели и мы больше не сможем увидеть что было в оригинале
Если ты внесешь какие нибудь изменения в центральную панель, то строка будет помечена как измененная и при клике будет показано что там было в оригинале.

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

>>2497057
>Например, в гите есть такая функция как показ истории изменения диапазона строк.
Все это есть в шторме. И история для диапазона и аннотации, вся хуйня.

>Я не очень понимаю, как тут помогает шторм.
>Как я понимаю, в случае с штормом точно так же придется разбирать каждое изменение.
>Но это 100% можно сделать без шторма и логика работы будет примерно такая же.
Технически это можно и в виндовсеом блокноте сделать. Ты очень четко вырвал фразу из контекста
>Как такое без шторма сделать и не наебенить кучу ошибок
О том и речь что придется пол дня проторчать в тулзе для резолва конфликтов. И преимущество шторма как раз в том что он увидит во время резолва 99% ошибок: вызовы в никуда, измененные сигнатуры функций и дохуя чего еще. И ты сам сможешь как посмотреть справку, так и перейти прямо по коду, чтобы чекнуть что там поменялось.
Аноним 25/10/22 Втр 09:50:52 2497584 964
>>2497136

> он увидит во время резолва 99% ошибок: вызовы в никуда, измененные сигнатуры функций

Это называется статический анализатор. Есть отдельные анализаторы вроде phpstan или psalm.
Аноним 25/10/22 Втр 12:00:04 2497659 965
>>2497584
>Это называется статический анализатор. Есть отдельные анализаторы вроде phpstan или psalm.
Хватит читать жопой. Речь о том что в шторме все это работает во время резолва конфликтов.
Аноним 25/10/22 Втр 19:33:29 2498007 966
Какой можно реализовать проект для отточения навыков, и, в первую очередь, как проект в резюме?
Файлопомойка, тесты - это достаточно неинтересное, хочется чего-то более уникального.

И в части, как проект в резюме, имеет ли смысл писать полностью с 0, не используя чужих зависимостей? С одной стороны, это (как мне кажется) может показать мои более обширные знания. В ином случае, можно показать знания фреймворка.
Аноним 25/10/22 Втр 20:31:29 2498045 967
>>2498007
Сделай очередь задач с воркерами и апи к ней.
Например скриншотилку, вводишь на фронте урл, бек ставит в очередь задачу на скриншот по этому урлу, воркер подхватывает, делает скриншот, сохраняет в папочку, ты можешь по апи или с фронта смотреть статус твоей задачи и скачать по ссылке результат.
Аноним 26/10/22 Срд 01:16:14 2498222 968
>>2493833
Всем доброго времени суток, занимаюсь самообучением (php) и решил ненароком посмотреть вакансии в своем городе без опыта и увидел ровно одну!!! И то там ебучий битрикс, верстка и J's
Из этого вытекает вопрос - не будет ли правильным решением уйти во фронт и до победного заниматься js'ом и устраиваться уже на трейни/стажёра на фронт?
Обучение давалось сложно, так ещё и вакансии куда то пропали...
Более опытные, подскажите как поступить, руки опускаются.
Аноним 26/10/22 Срд 12:20:55 2498430 969
>>2498007
Сделай магазин, только нормально, с тестами, тонкими контроллерами, отсутствием закоменченого кода и пустых импортов, и вот этим вот всем. Можешь даже в микросервисной архитектуре >>2498045 с советами этого анона.
Аноним 26/10/22 Срд 14:34:29 2498503 970
Снимок экрана о[...].png 213Кб, 1366x768
1366x768
Уговорил товарищ на PhpStorm таки перейти. Теперь вопрос, у кого нибудь есть взломанная версия выше 2021.3.2?

на ubuntu и win завелась, вместе с ja-netfilter-all (там все кряки на все продукты jetbrains заводятся, goland например установил и пакеты платные взломанные тоже есть на php много). На старой версии PhpStorm конечно можно сидеть, просто интересно, это я один такой отсталый?
Аноним 26/10/22 Срд 15:12:16 2498552 971
>>2498503
Просто обнови IDE и все.
Аноним 26/10/22 Срд 15:59:30 2498597 972
Есть консольный php скрипт (A), который запускает второй консольный php скрипт (B). Вопрос: каким образом они могли бы обмениваться данными, кроме очевидного быдловарианта с неким текстовым файлом, который они постоянно проверяют и пишут/читают?

Пока пробовал сделать так

A:
$pipes;
$process = proc_open("php b.php", [["pipe", "r"], ["pipe", "w"]], $pipes);
fwrite($pipes[0], "DATA FROM A");

B:
$data = fread(STDIN, fstat(STDIN)["size"]);

И, вроде бы, всё заебись. Но как провернуть то же самое наоборот, то есть, из дочернего скрипта обратиться к STDIN родительского? Или, может, стоит пойти вообще другим путём? Каким? Проект не особо серьёзный, так что изъебов не требуется. Но и идти самым простым путём с использованием текстового файла не хотелось бы.
Аноним 26/10/22 Срд 16:06:44 2498632 973
>>2498552
Я goland новый ставил, он кряк сходу сломал (в bash было видно, при запуске). Лол, я сейчас обновлю, он java-agent (ja-netfilter-all) сломает нахуй и все.
Аноним 26/10/22 Срд 16:43:37 2498783 974
>>2498597
Что значит "быдловариант"? Все эти pipe'ы тоже файлы так-то. Ну используй базу или кэш если файл не устраивает. Или вообще читай stdout и все.

Я уж не говорю что само использование proc_open гавной воняет. Ты явно пытаешься сделать какую-то поебень. Зачем тебе вообще запускать скрипт в отдельном процессе?
Аноним 26/10/22 Срд 21:05:56 2499111 975
>>2498597
смотря зачем тебе, кроме очевидного текстового файла неожиданно, но на уровне ОС так и реализуется межпроцессное взаимподиействие можешь использовать брокер сообщений какой-нибудь.
Аноним 27/10/22 Чтв 01:27:59 2499237 976
Объясните хейт по поводу факта настройки PHP через php.ini. Что плохого в таком подходе? Какие есть альтернативы?
Аноним 27/10/22 Чтв 10:36:11 2499379 977
>>2498783
>Что значит "быдловариант"?
Это значит, что я нуб и в мою голову сразу же пришёл сверх-очевидный вариант с использованием файла. Но на интуитивном уровне подумалось, что это не самое адекватное решение. Вот есть, скажем, игровой компьютер 4 гига 2 ядра с хардом на 1ТБ. Спрашивается, зачем нужны ссаные 4ГБ оперативки, если есть 1ТБ жёсткого диска? Затем, что работа с оперативной памятью на порядок быстрее, чем с HDD и даже SSD насколько я понимаю.
Аналогично, предположил, что нормальные пацаны используют какой-то более хитрый способ для передачи данных между процессами. А файл - костыль и оверхед.

>Зачем тебе вообще запускать скрипт в отдельном процессе?
Скрипт B - сервис-демон, который должен постоянно крутиться в фоне. Скрипт A - интерфейс (в широком, а не похопэшном смысле слова) к B. Его (A) можно запустить, послать пару команд в B и закрыть. А скрипт B должен продолжать крутиться в фоне.

>смотря зачем тебе, кроме очевидного текстового файла неожиданно, но на уровне ОС так и реализуется межпроцессное взаимподиействие

Сейчас я остановился на https://www.php.net/manual/en/book.sync.php, затестил - вроде всё работает как мне надо. Но, значит, на будущее буду иметь в виду, что вариант с файлом не такой уж и тупой.
Аноним 27/10/22 Чтв 10:42:47 2499383 978
>>2499379
Добавлю, что мои догадки, кажется, были верны. Затестил производительность - дрочка файла через file_put_contents/file_get_contents работает в 500 раз медленнее, чем Sync.
Аноним 27/10/22 Чтв 11:14:40 2499405 979
Добродень, аноны.
Начинаю изучать php. VSCode мне надоел.
Не знаю, может быть уже задавался такой вопрос, но некогда искать ответы.
Подскажите, пожалуйста, как вам NetBeans по сравнению с VSCod'ом? Или лучше сразу ставить Symphony на свой Debian и учиться работать сразу в этом фреймворке?

Заранее благодарен.
Аноним 27/10/22 Чтв 11:50:40 2499431 980
>>2498007

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

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

>>2498597

Через пайпы. Тебе нужно 2 пайпа, один от родителя к ребенку и второй обратно. Но тогда тебе может понадобится асинхронный код, так как данные могут отправляться и приходить по 2 каналам независимо.

Ну то есть например ребенок пишет в пайп 1 и блокируется в ожидании, когда родитель прочтет данные, но родитель в это время пишет в пайп 2 и ждет когда ребенок прочтет данные, но он заблокирован, получается дедлок.

В твоем примере кода тебе надо читать не из STDIN, а из $pipes[1].
Аноним 27/10/22 Чтв 11:56:48 2499434 981
>>2499111

> кроме очевидного текстового файла
> неожиданно, но на уровне ОС так и реализуется межпроцессное взаимподиействие

Вообще, это не так. Для IPC обычно используются не файлы, а: пайпы (каналы), именованные каналы, unix сокеты, сетевые сокеты, сигналы, семафоры/мьютексы, очереди сообщений, разделяемая память. Они обычно эффективнее и удобнее, чем взаимодействие через файловую систему.
Аноним 27/10/22 Чтв 12:09:15 2499439 982
>>2499237

А какие аргументы приводят? Трудно отвечать на претензии, не зная в чем они заключаются.

>>2499379

> Затем, что работа с оперативной памятью на порядок быстрее, чем с HDD и даже SSD

Дружок, она не на порядок быстрее, а на порядки. Вот смотри, пиковая скорость последовательного чтения/записи из разных источников:

- память в Apple M2: 100 Гб/с
- память в системе на 2 (дорогих) AMD Epyc 7601 с 8 планками DDR4: до 250 Гб/с
- (дорогой) SSD подключенный в NVM2: примерно 3,5 Гб/с
- обычный SSD подключенный в SATA III: примерно 550 Мб/с

Также не менее важна latency, то есть задержка между началом чтения и получением данных. Для памяти она составляет порядка 20 нс (если данные не попали в кеш, если попали то наносекунды или даже меньше), а для SSD ~70 мкс.

Плюс, если ты пишешь данные в файл, то ты отнимаешь часть пропускной способности у других программ и они могут от этого работать медленнее.
Аноним 27/10/22 Чтв 12:19:08 2499445 983
>>2499379

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

Ты правильно предположил. Давай я опишу способы IPC (межпроцессного взаимодействия):

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

Плюсы: 1) процесс может остановиться и ждать получения данных и ОС "разбудит" его, когда они придут. 2) если использовать сетевые сокеты, то процессы можно разместить на разных компьютерах и все будет работать без изменений.
Минусы: не оптимально для очень быстрой передачи данных или передачи больших объемов.

- сигналы: процесс может послать другому сигнал. Сигнал не несет никаких полезных данных, но позволяет "разбудить" процесс или, наоборот, прервать его работу, остановить или прибить.

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

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

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

Разделяемая память используется, например в linux для передачи аудио от программы к звуковому демону (а для уведомления используются сокеты) и передачи изображения от программы к X-серверу или wayland-композитору (опять же, используются сокеты для уведомлений об изменениях). В Андроид по моему тоже программа передает данные для отрисовки через разделяемую память.

В твоем случае с демоном наверно удобнее всего использовать каналы/сокеты.
Аноним 27/10/22 Чтв 12:20:39 2499449 984
>>2499405

Symfony это фреймворк, а не IDE. Им нельзя заменить VSCode или Netbeans.
Аноним 27/10/22 Чтв 12:23:13 2499451 985
>>2499379

А, забыл еще добавить для сравнения:

- память в твоем обычном ПК: в районе 10-40 Гб/с.
Аноним 27/10/22 Чтв 13:58:16 2499521 986
>>2499449
Благодаю. Какую айдэи используешь?
Аноним 27/10/22 Чтв 16:47:46 2499673 987
>>2499521
Phpstorm ставь. Там подсказки, готовые предустановленные фишки для поддержки php инфраструктуры и плагины если надо. Меньше дерьма сожрешь чем vscode настроишь, плюс в коммуникациях поможет при серьезной работе. Там глубокая работа с git, базами данных и тд

Я вот распечатал на стену повесил,
https://github.com/LoginovIlya/PhpStorm-hotkeys-ru/blob/master/PhpStorm_Hotkeys_ru.pdf

цвета/шрифты правда такие себе, но можно под себя настроить
Аноним 27/10/22 Чтв 17:22:23 2499724 988
>>2499673
Спасибо, анон! Всех благ тебе.
Аноним 27/10/22 Чтв 19:45:10 2499850 989
>>2440871 (OP)
Пытаюсь через cmd команду
composer create-project laravel/laravel example-app
установить laravel.
В итоге ошибка
curl error 7 while downloading https://repo.packagist.org/packages.json: Failed to connect to 127.0.0.1 port 57186: Connection refused
Что это и как решить?
Аноним 28/10/22 Птн 06:05:12 2500099 990
>>2499850

Эта ошибка очень странная. Похоже что композер хотел скачать список пакетов с repo.packagist.org, но вместо этого сайта подключился к 127.0.0.1, то есть к твоему компьютеру и естественно ничего скачать не получилось.

Чтобы понять, почему так происходит, попробуй выполнить команду

composer diagnose -vvv

И посмотри, нет ли в логе странных ошибок. Можешь его сюда запостить.

Также, проверь, если ты у тебя доступ к packagist. Для этого октрой ссылку https://repo.packagist.org/packages.json в браузере. Там должен либо скачаться JSON файл либо отобразиться на экране.
Аноним 28/10/22 Птн 06:05:54 2500100 991
>>2499850

Если diagnose не покажет никаких ошибок, добавь к команде composer create-project в конец -vvv и посмотри что выведется.
Аноним 28/10/22 Птн 10:58:30 2500144 992
>>2499439
> А какие аргументы приводят? Трудно отвечать на претензии, не зная в чем они заключаются.

Аргументы обычно невнятные. Критику по этому поводу видел именно от анонов. Вот, например, здесь:

>>2454315
Аноним 28/10/22 Птн 11:06:23 2500148 993
Screenshot from[...].png 136Кб, 419x462
419x462
Можете посоветовать какой-нибудь гайд по Docker'у, который прям совсем for dummies? Уже долго пытаюсь понять, как эта штука работает, но особо без успеха. Сделать контейнер по аналогии из туториалов - фигня. Мне бы хотелось какую-нибудь подробную лекцию или статью, где простым языком разжёвывается принципы его работы, аспекты применения и т.д.
Аноним 28/10/22 Птн 13:21:18 2500194 994
>>2500148
принцип работы - виртуалка на уровне ос, а не железа
применение - ебнуть контейнер, чтоб вся залупа подтягивалась сама у всей команды + относительная легкость автодеплоя
теперь иди дальше и смотри гайды по сборке контейнеров, если ты не девопс, то хватит на уровне - так ну в докерфайле подтянули всю хуйню, в докеркомпозе подтянули хуйню из докерхаба, прописали волюмы и переменные окружения
Аноним 28/10/22 Птн 16:08:50 2500319 995
>>2498503
Проще на месяц бесплатную лицензию получить, а потом создать новый аккаунт и повторить
Аноним 28/10/22 Птн 20:12:29 2500561 996
image.png 4Кб, 659x30
659x30
Пыхогоспода, помогите.
Есть один древнючий фреймворк работает на php 4 и fpm , мне надо собрать это говно в докере, единственная репа со старыми версиями которую я нашел, содержит только 5.6, но на ней приложение говна нихуя не работает
Где достать?

cake php 1.3
Аноним 28/10/22 Птн 20:18:02 2500563 997
>>2500561
И да, это не мой класс я не могу импортировать, а класс самого фреймворка. Литералли архив скачанный с их гитхаба. Поэтому вряд ли моя криворукость
Аноним 28/10/22 Птн 21:04:52 2500582 998
Аноним 29/10/22 Суб 07:41:14 2500705 999
>>2500561

Ты можешь скомпилировать php4 из исходного кода. Удачи.
Аноним 29/10/22 Суб 12:40:56 2500759 1000
>>2440871 (OP)
Объясните мне кто-нибудь ебучий паттерн фабрики, я заебался, уже всё перечитал, но не вижу в нём смысла

Допустим "пример из реальной жизни" с рефакторинг.гуру https://refactoring.guru/ru/design-patterns/factory-method/php/example#example-1

Вот функция из класса фабрики. Почему бы просто не сделать это сразу в функции clientCode?

public function post($content): void
{
// Call the factory method to create a Product object...
$network = $this->getSocialNetwork();
// ...then use it as you will.
$network->logIn();
$network->createPost($content);
$network->logout();
}

Если $network является объектом класса, реализующего определённый интерфейс, какая разница, получаем мы этот объект через фабрику, или воздавая напрямую? Фабрики же точно так же, как и эти классы, имеют разные реализации, в зависимости от типа возвращаемого объекта

Пример из описания паттерна тоже не помогает:

"Большая часть существующего кода жёстко привязана к классам Грузовиков. Чтобы добавить в программу классы морских Судов, понадобится перелопатить всю программу. Более того, если вы потом решите добавить в программу ещё один вид транспорта, то всю эту работу придётся повторить."

Зачем для решения этой проблемы создавать фабрику, если можно изначально код привязывать не к классу, а интерфейсу Transport?
Аноним 29/10/22 Суб 12:56:11 2500763 1001
>>2500759
Так ты напиши. Возьми пример с гуру и перепиши его как считаешь правильным. Через руки быстрее дойдет.
Аноним 30/10/22 Вск 06:51:58 2501311 1002
>>2500759

Ты правильно делаешь, что пытаешься разобраться, а не заучивать определения, не понимая их смысла.

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

Если тебе в коде нужно просто создать объект, то конечно, его надо создавать через new. Не нужно изобретать никаких Фабрик.

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

Допустим, что мы пишем систему хранения файлов (куда можно загружать файлы и потом делать по ним поиск). Где-то в глубине этой системы есть класс Indexer, который принимает файл, сохраняет его на диск, создает объект, содержащий информацию об этом файле и сохраняет его в БД. Например, если передать ему аудиофайл, то он создаст и сохранит в БД объект AudioFileInfo, который содержит информацию о длительности, битрейте, используемом кодеке. Если передать картинку, то он создаст объект ImageInfo с размерами картинки, глубиной цвета. И так далее. На каждый тип файла создается свой класс с параметрами таких файлов:

$indexer = new Indexer();
$file = new File('/tmp/image.jpeg');
$info = $indexer->save($file); // Возвращает объект ImageInfo

Код в классе Indexer может выглядеть так:

function save(File $file)
{
$type = $this->getFileType($file);
if ($type === 'image/jpeg' || $type === 'image/png') {
$info =new ImageInfo($file);
}
....

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

Проблему можно было бы решить, если бы создатели класса Indexer не пытались перечислить все известные им типы файлов прямо в этом классе, а вынесли бы создание объектов в Фабрику:

class Indexer
{
function __construct(private FileInfoFactory $factory) {}

function save(File $file)
{
$type = $this->getFileType($file);
$info = $this->factory->getInfoForType($type, $file);
...

В таком случае пользователь может создать свой класс AdvancedFileInfoFactory (наследник FileInfoFactory), который умеет анализировать также файлы 3Д-моделей и передать его в конструктор вместо FileIInfoFactory:

$indexer = new Indexer(new AdvancedFileInfoFactory));
$info = $indexer->save(...);

То есть, Фабрика позволяет пользователю класса или библиотеки влиять на процесс создания объектов где-то внутри библиотеки.

А еще правильнее было бы сделать интерфейс FileInfoFactoryInterface и указать в конструкторе Indexer его, а не FileInfoFactory, так как в этом случае пользователь не обязан будет наследоваться от него.

-----

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

----

Я привел тебе пример со сторонней библиотекой, но такой паттерн можно использовать и внутри своего кода. Например, ты пишешь класс, который используется в нескольких местах кода, но в них он должен создавать немного разные объекты. Ты можешь использовать тут Фабрику.

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

Фабрика - это как раз способ разрешить влиять извне на внутреннюю логику работы класса.

----

Я также попробовал поискать примеры Фабрик из реального кода, но они встречаются довольно редко. В Symfony в компоненте Form для работы с формами есть класс FormFactory. В коде Firefox можно найти классы вроде VideoStreamFactory, WebrtcVideoCodecFactory, image/DecoderFactory.

С большой вероятностью тебе не придется писать Фабрики или фабричные методы.
Аноним 30/10/22 Вск 07:10:38 2501315 1003
>>2500759

> Вот функция из класса фабрики. Почему бы просто не сделать это сразу в функции clientCode?

Я понимаю твой вопрос так: зачем нужен фабричный метод в классе SocialNetworkPoster и наследники вроде FacebookPoster, если мы можем просто передавать объект SocialNetworkConnector в конструктор этого класса:

$poster = new SocialNetworkPoster(new FacebookConnector('login', 'pass'));

Правильно?

Действительно, здесь можно было бы просто передавать Connector в конструктор и обойтись без фабричного метода и класса FacebookPoster. Если ты прочел мой пост выше и понял суть паттерна фабричный метод, то предлагаю тебе подумать, в какой ситуации его не получится заменить на внедрение зависимости через конструктор.

Ответы:
1) например, может быть так, что SocialNetworkPoster передает какие-то аргументы в метод getSocialNetwork(), а тот передает их в конструктор FacebookConnector:

class FacebookPoster
{
function getSocialNetwork(string $proxyServer)
{
return new FacebookConnector($proxyServer, $this->login, $this->password);
}

2) может быть так, что в классе SocialNetworkPoster не один абстрактный метод, а несколько, и их надо подменять для разных соцсетей.

3) может быть так, что объект FacebookConnector "одноразовый", и на каждый новый пост надо создавать новый объект. Тогда мы не можем заранее угадать, сколько объектов FacebookConnector надо создать и передать в конструктор.
Аноним 30/10/22 Вск 10:47:44 2501354 1004
>>2501311
>Я также попробовал поискать примеры Фабрик из реального кода
>С большой вероятностью тебе не придется писать Фабрики или фабричные методы.
Просто никто не называет свои классы "фабрика".
Все сервисы создает фреймворк через DI контейнер, но для любого нестандартного действия, типа получения конфига из базы, придется написать класс "фабрики".
Большинство сущностей создает ОРМ, но только если они уже есть в базе. Если нужно создавать объект с нуля или получать откуда-то снаружи, скорее всего это будет делать отдельный класс.
Плюс в процессе работы с данными придется все время создавать объекты. Так условный сервис "ReadCsv" это по сути фабрика, хоть приписки "Factory" у него нет.
Аноним 30/10/22 Вск 13:25:11 2501406 1005
>>2499237
Хейт в том, что поведение интерпретатора должно зависеть только от кода твоего проекта
Аноним 31/10/22 Пнд 08:20:50 2501822 1006
тред легаси...
Аноним 31/10/22 Пнд 15:57:46 2502128 1007
>>2500759
>Объясните мне кто-нибудь ебучий паттерн фабрики

Есть интерфейс Transport.
Есть класс Car который наследует Transport.
Есть абстрактный класс TransportCreator который абстрактным методом обязывает наследника создать метод buildTransport коий обязан вернуть объект интерфейса Transport.

далее у нас появляется класс CarBuilder наследник абстрактного класса TransportCreator и у тебя этих билдеров могут быть сотни.

Смысл его в том, чтобы создавать объекты в одном классе, а не писать по всему проекту new Object()... Потому как ты при изменении зависимости класса меняешь это в одном месте, а не в сотне.

>если можно изначально код привязывать не к классу, а интерфейсу Transport?
Чтобы наплодить туеву хучу кода и когда нужно будет, что-то поменять в этом классе или интерфейсе, слетать на марс?

На рефакторинг гуру вроде всё предельно ясно описанно, что даже такой долбаёб как я разобрался. Да и дрочить паттерны я считаю гиблым делом т.к один пёс ты их будешь делать крайне редко если вообще будешь.
Аноним 31/10/22 Пнд 19:54:29 2502415 1008
>>2502128

На мой взгляд, объяснено плохо. Смысл Фабрики не в том, чтобы избавиться от new (так как ты просто получишь 100 вызовов метода вместо 100 new), а смысл в том, чтобы можно было влиять на процесс создания объектов путем подмены фабрики.

Про это на сайте по моему не написано.
Аноним 01/11/22 Втр 03:33:06 2502718 1009
>>2502415
>чтобы можно было влиять на процесс создания объектов путем подмены фабрики
Тут да, я перепутал. Фабричный метод это подмена фабрик, а сама фабрика уже решает вопрос создания\изменения объекта в одном месте.
Аноним 01/11/22 Втр 03:55:02 2502720 1010
>>2502415
>смысл в том, чтобы можно было влиять на процесс создания объектов путем подмены фабрики
годно объяснил
Аноним 01/11/22 Втр 15:24:10 2503011 1011
>>2500148
deworker.pro
Скринкаст по slim и react.
3, 4 уроки. Они бесплатные.

Или можешь найти его интенсив на курсхантере по Ларавел. Там он, ебать, часов 5 эти контейнеры мусолит. Правда подача своебразная у Димки, конечно, раньше была.
Аноним 02/11/22 Срд 08:54:49 2503691 1012
>>2500148

Чтобы понять, как работает Докер, придется лучше изучить Линукс, в частности контейнеры и что это такое. Также нужны знания командной строки линукса и основных команд. Без этого за Докер нет смысла браться.

Твоя проблема в том, что вместо чтения официальной подробной документации ты читаешь всякую фигню.

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

Допустим, ты написал программу на PHP - сайт. Ему для работы нужен Линукс и PHP строго определенной версии с строго определенными расширениями (так как ты проверял его только на этой версии и нет гарантий, что он заработает с другой). И теперь ты хочешь переслать его кому-то другому (или развернуть на хостинге).

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

Но большинство дистрибутивов Линукса такое не поддерживают. Они позволяют поставить только самую новую версию PHP, а не ту, которая нужна. Более того, может быть у человека на компьютере есть несколько проектов, и ему нужна для каждого проекта своя версия PHP, но Линукс не позволяет поставить несколько версий одной программы одновременно.

Наконец, у человека может быть вообще не Линукс, а Windows или Мак.

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

А на Виндоуз и Маке Докер запускает виртуальную машину с Линуксом внутри и там разворачивает контейнер.

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

Докер-файл это просто последовательность команд, которые выполняются внутри контейнера, чтобы установить нужную программу. Например, для контейнера с PHP команды могут выглядеть так:

- скачать исходный код нужной версии PHP
- скомпилировать и собрать интерпретатор PHP
- скачать нужные расширения
- скомпилировать их

Вот пример Докер-файла, который устанавливает PHP в пустой контейнер: https://github.com/docker-library/php/blob/master/8.2-rc/buster/cli/Dockerfile . Если ты понимаешь весь этот файл и можешь написать такой с нуля, считай, что ты изучил Докер.

В итоге, если ты хочешь в проекте использовать Докер, то ты делаешь Докер-файлы для всех нужных программ (PHP, mysql, nginx и все остальное) и после этого разработчик может одной командой установить контейнеры с ними к себе на компьютер. Если тебе лень делать Докер-файлы, для многих программ они уже сделаны и можно просто скачать готовый с Docker Hub.

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

Я описал в общем, что такое Докер, теперь иди сначала изучай Линукс, командную строку, как компилировать и собирать программы из исходников, а потом читай документацию по Докеру и тогда ты сможешь во всем разобраться.
Аноним 02/11/22 Срд 09:01:09 2503693 1013
>>2500148

Плюс, в Докере есть, мягко говоря, "странности".

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

команда1 && \
команда2 && \
команда 3

Но это никого не смущает и никто это не исправляет. Умные люди, объясните, почему так сделано?
Аноним 02/11/22 Срд 09:50:43 2503717 1014
>>2503693
>Но это никого не смущает и никто это не исправляет
Так ты один такой шизик. Кому в здравом уме может прийти в голову "исправлять" одну из фишек? Или синтаксически вводить что-то типа транзакций, чтобы тебе красивше было?
Аноним 02/11/22 Срд 09:53:20 2503720 1015
>>2503691
>Если ты понимаешь весь этот файл и можешь написать такой с нуля, считай, что ты изучил Докер.
То, что там написано, не имеет никакого отношения именно к докеру, кроме нескольких базовых команд.
Аноним 02/11/22 Срд 13:42:09 2503883 1016
>>2503717

Какие транзакции? Это же файловая система, а не база данных, и к тому же она создается единственный раз.
Аноним 02/11/22 Срд 14:28:05 2503931 1017
>>2503883
>синтаксически
>что-то типа транзакций
>Какие транзакции? Это же файловая система, а не база данных
Справка есть? Пенсию то хоть получаешь?
Аноним 02/11/22 Срд 14:52:29 2503975 1018
>>2499673
Вряд ли у него есть деньги на пхпшторм, даунич. Поставит он себе ломанную версию позапрошлого года и будет есть прелое сухое говно.
Аноним 02/11/22 Срд 14:55:37 2503979 1019
Аноним 02/11/22 Срд 15:02:25 2503985 1020
>>2503979
Да. И не плачу за это ни копейки, заметь!
Аноним 02/11/22 Срд 18:08:10 2504187 1021
Screenshot 2022[...].png 38Кб, 814x330
814x330
>>2503975
>>2503985
Додстеры, лицензия не на версию, а на период. Просто активируешь на халяву и обновляешь. Если вы, дегенераты даже IDE спиздить не осилили, то вас даже формошлепом не возьмет никто.
Аноним 02/11/22 Срд 18:09:43 2504193 1022
>>2504187
Я раз в месяц фейкопочту регаю и ебашу формочки для кабанчика. Похую мне ваще.
Аноним 03/11/22 Чтв 00:29:00 2504470 1023
>>2504187
>обновлять лицензию каждый месяц с фейкопочтой
>спиздить
Мань, а.
Помнится например с сервисом di.fm подобная хуйня была, давно прикрыли. Ахуенные кодеры в jetbrains.
У кого нибудь есть нормальный кряк? Eval reset работает? Ja-netfilter-all только старые версии тянет
Аноним 03/11/22 Чтв 13:14:34 2504680 1024
Дегенеративное [...].mp4 574Кб, 640x360, 00:00:07
640x360
>>2504470
Ja-netfilter-all отлично работает, скрин с последней версией я скидывал. Хватит троллить тупостью.
Аноним 03/11/22 Чтв 16:25:33 2504836 1025
>>2504680
Ебать сайт jetbra.in открыл, рил работает я свой рот ебал. Так, теперь можно харкать в лицо кто там руками обновляет лицензию каждый месяц.

Чем мне ja-netfilter-all нравится, тем что там можно выставить вручную дату окончания лицензии. Буду новую версию проверять, спасибо анончик
Аноним 03/11/22 Чтв 23:06:54 2505103 1026
Не могу вкурить, как размещать значения data-ref'ов в Задании 10 ОПа: https://github.com/codedokode/pasta/blob/master/html/html.md#%D0%B7%D0%B0%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5-10

Вывел эти значения при помощи псевдо-элемента em::after и функции attr(). Думал зафлоутить получившийся контент, но как ни крути - не выходит его поместить за пределы параграфа именно таким образом, как изображено на примере. Подскажите, в какую сторону копать.
Аноним 04/11/22 Птн 11:30:13 2505287 1027
>>2505103
Php-бояре могут немного в классах бутстраповских поковыряться, аяксик отправить, на крайняк - простенькое на vue что-то набросать, использую готовую верстку. А это - херня какая-то, которая тебе не пригодится никогда.
Аноним 04/11/22 Птн 14:39:59 2505475 1028
>>2505287
Двачую, эти задачки выглядит как дрочьба ради дрочьбы
Аноним 04/11/22 Птн 15:41:24 2505577 1029
>>2505475
Ну когда-то они были, наверное, актуальны. Но щас из "углубленного"достаточно флексы понимать мало-мальски, ну и по доке бутстраповской пробежаться, чтобы понятно было, какие примерно возможности там есть. 90% задач по верстке, которые могут на тебя иногда свалиться перекроешь.
Аноним 04/11/22 Птн 18:04:11 2505678 1030
>>2505103

Если ты используешь float, то ты можешь вытащить его за пределы параграфа отрицательным маргином слева. Вот урок про маргины у флоатов: https://github.com/codedokode/pasta/blob/master/html/float-margins.md

Тут есть небольшой подвох, что мы не знаем размер флоата и непонятно, на сколько пикселей его надо вытащить влево. Это решается заданием фиксированной ширины флоату (условно 50 или 100px).

Второй вариант — использовать абсолютное позиционирование. Там есть такой трюк, что если не указывать top/bottom, то элемент размещается на той высоте, на которой бы он был без позиционирования. Соответственно, мы используем абс. поз. и задаем только left или right (например, right 100%), а положение по вертикали не задаем.

Оба этих способа хорошо бы проверить, как они себя ведут, если на одной строке 2 выносных блока. Скорее всего при обоих способах они наложатся друг на друга, было бы здорово, если бы ты придумал трюк, как можно этого избежать. Мне кажется, тут надо копать в сторону флоатов, так как абс. поз. элементы не могут никак влиять на другие элементы, а флоаты могут влиять друг на друга..
Аноним 04/11/22 Птн 18:08:05 2505682 1031
>>2505475

Отчего же? Хорошее задание, и выноски мне нравятся визуально.

>>2505577

Я не думаю, что эту выноску можно сделать с помощью flexbox. Вы бы прежде чем писать, хотя бы в голове прикинули, как оно должно работать.

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

Бутстрап годится для админок, но я бы не стал сайт с индивидуальным дизайном делать на нем, так как он будет больше мешаться, чем помогать. В крайнем случае, если нужен какой-то модуль из него, можно подключить только его. А то целиком бутстрап очень громоздкий и в нем есть глобальные селекторы и нет неймспейсов, так себе удовольствие на нем что-то верстать.
Аноним 04/11/22 Птн 18:32:30 2505709 1032
>>2505682
>Я не думаю, что эту выноску можно сделать с помощью flexbox. Вы бы прежде чем писать, хотя бы в голове прикинули, как оно должно работать.
Нахера мне эту залупу в голове прикидывать? Пускай верстальщик прикидывает. Мне никто подобную задачу и не подумает ставить.
Аноним 05/11/22 Суб 01:45:32 2506061 1033
>>2505678
Спасибо! Сегодня с утра допёр, как это делать. Вчера вечером позиционирование вообще из головы вылетело.

ОП, а ты можешь перезалить макет для вёрстки, который в последнем задании, плз? По имеющимся ссылкам ничего нет уже. Был бы признателен, если бы на гугл диск забросил.
Аноним 05/11/22 Суб 13:45:50 2506269 1034
var1.png 20Кб, 476x455
476x455
var2.png 19Кб, 506x421
506x421
Добрый день.
Какая функция лучше 1 или 2?
Аноним 05/11/22 Суб 14:09:58 2506275 1035
>>2506269
Очевидно что вариант с типизацией. Без типизации у тебя вообще чушь какая-то написана. -1 каво?

А вообще в идеале у тебя должен быть не чистый массив, а объект типа Collection, у которого и будет функция getLength().
Аноним 05/11/22 Суб 15:13:36 2506309 1036
Аноним 05/11/22 Суб 15:17:34 2506311 1037
>>2506269
Первый пример - пример отвратительного кода.

Если у тебя случилось какое-то неправильное поведение - крайне желательно выкидывать эксепшны.

Потому что у тебя будет такое:

$length = getArrLen([]) + getArrLen(1) + getArrLen([1,2,3]);
В твоём случае это всё выполнится и будет неправильный результат, а ошибку такую очень сложно дебажить.
Аноним 05/11/22 Суб 15:31:42 2506322 1038
Аноним 05/11/22 Суб 15:46:27 2506335 1039
>>2506269

Часто ненужную переменную обозначают как $_.

Второй вариант лучше.
Аноним 05/11/22 Суб 19:30:02 2506598 1040
>>2504680
>>2504836
не знаю как с последней версией, но 22.2.1 а еще голанд сверху спиздил только что активировал, спасибо аноны!
Аноним 05/11/22 Суб 20:40:44 2506661 1041
>>2506322
Да, спасибо, бобра тебе!
Аноним 06/11/22 Вск 00:28:22 2506823 1042
пик.png 2Кб, 437x57
437x57
>>2506275
>>2506311
А сколько функция (метод) должны возвращать типов данных с точки зрения правильного красивого кода, всегда один?
Т.е. если функция возращает инт и стр или инт и бул - это неправильно описанная функция?
>>2506335
Пхпшторму почему-то не нравиться такой вариант, предлагает переименовать в ignored.
Аноним 06/11/22 Вск 00:42:21 2506835 1043
1.png 3Кб, 361x39
361x39
2.png 3Кб, 384x39
384x39
>>2506823
* Т.е. инт или стринг, инт или бул.
Аноним 06/11/22 Вск 01:18:12 2506848 1044
>>2506823
>А сколько функция (метод) должны возвращать типов данных с точки зрения правильного красивого кода, всегда один?
Возвращаемый тип всегда один. В пхп есть возможность не указать тип, тогда возвращаемое значение будет считаться mixed. Это считается дурным тоном и используется только в крайних случаях, в недрах фреймворков или орм, короче в технической обертке далекой от бизнес логики.

Юнион типы нужны не для того чтобы принимать и возвращать "разные" значения (bool|string|Cat|Dog). А для того чтобы принимать и возвращать максимально одинаковые значения, но по техническим причинам с разными типами (int|foat 1 и 1.0 или string|Stringable).

>Пхпшторму почему-то не нравиться такой вариант, предлагает переименовать в ignored.
Не используемых переменных быть не должно. Точка. Используй count() и не еби мозги.
Аноним 06/11/22 Вск 01:39:37 2506856 1045
>>2506848
Спасибо за подробные ответы.
>Используй count() и не еби мозги.
Это понятно, ф-ия для примера.
Аноним 06/11/22 Вск 09:38:49 2506944 1046
>>2506823

С каждым типом данных надо работать по-своему. Например, числа можно складывать, а строки нельзя. У массива можно узнать число элементов, а у числа нельзя.

Если твоя функция возвращает разные типы данных, то тебе придется после ее вызова писать if с проверкой, какой тип мы получили и это очень неудобно. Программисты тебя проклянут за это.

Также, это нелогично. Допустим, у тебя функция рассчитывает срок возврата кредита. Срок это число (дней или месяцев или лет) и других вариантов быть не может.

Поэтому функция должна возвращать один тип данных. Разрешается также использовать null для случая, когда результат не удалось определить. То есть string|null это допустимый вариант.

Из этого правила есть исключения. Например, если у тебя есть функция, которая возвращает последний элемент массива. Так как в массиве может быть что угодно, то и функция может вернуть что угодно. В такой ситуации это нормально, но моему опыту, такое встречается в 1% случаев, а в 99% у тебя должен быть строго определенный тип возврата.
Аноним 06/11/22 Вск 16:34:10 2507168 1047
>>2506944
Ок, спасибо, я понял.
Аноним 06/11/22 Вск 18:01:59 2507239 1048
1667746894425.jpg 13Кб, 1080x252
1080x252
Направили у вас спросить за opencart, почему может быть пикрил? На одном товаре есть текст в плашке, на другом нету.
Аноним 07/11/22 Пнд 04:41:47 2507697 1049
flipphone.gif 430Кб, 500x500
500x500
Аноним 07/11/22 Пнд 04:45:47 2507698 1050
og-image.png 876Кб, 1200x675
1200x675
>>2507697
Ты из PHP-матрицы звонишь?
Аноним 07/11/22 Пнд 10:17:37 2507756 1051
>>2507239

Вряд ли кто-то тебе ответит, так как тут много неизвестных. Ты не написал, как ты реализовал эти плашки, какие возможности opencart использовал, как они хранятся в БД, как выводятся в шаблоне.
Аноним 07/11/22 Пнд 18:34:10 2508105 1052
>>2507756
Все на стандартных средствах опенкарта, как выводятся вот хз, я просто не погромист
Аноним 07/11/22 Пнд 18:48:58 2508121 1053
Напомните пожалуйста "положняк" по этому параметру
>PDO::ATTR_EMULATE_PREPARES
Аноним 07/11/22 Пнд 20:00:02 2508224 1054
>>2440871 (OP)
Как в ларавел происходит импорт файлов по фреймворку?
Везде используются namespace и use соответственно.
use Illuminate\Database\Eloquent\Factories\HasFactory;
Типа такого, при этом сам файл нигде не подключен через include например, как он его видит?
Аноним 07/11/22 Пнд 20:47:53 2508263 1055
>>2508224
composer и psr-0/psr-4 гугли.
Аноним 07/11/22 Пнд 23:38:38 2508383 1056
задача: "Даны два числа
A
и
B
. Вам нужно вычислить их сумму
A
+
B
. В этой задаче для работы с входными и выходными данными вы можете использовать и файлы и потоки на ваше усмотрение."

решение не верное ==>
"<?php
$str=input.txt;
$x=preg_replace ('/[^0-9]/',"",$str);
echo array_sum(str_split($x));"

Вводстандартный ввод или input.txt - это как сделать,через форму? или можно как то по другому.
Например input на питоне есть, а в php как получить данные от пользователя понять не могу.
Аноним 08/11/22 Втр 00:00:43 2508396 1057
>>2508383
$a = (int) readline('Введите число A: ');
$b = (int) readline('Введите число B: ');
echo $a." + ".$b." = ".($a+$b)."\n";
Аноним 08/11/22 Втр 01:15:19 2508445 1058
>>2508396
Спасибо.
Ниже полный текст задачи:

A. A+B 1
Ограничение времени2 секунды
Ограничение памяти64Mb
Вводстандартный ввод или input.txt
Выводстандартный вывод или output.txt
Даны два числа A и B.
Вам нужно вычислить их сумму A+B.
В этой задаче для работы с входными и выходными данными вы можете использовать и файлы и потоки на ваше усмотрение.
Формат ввода
Первая строка входа содержит числа A и B разделенные пробелом.
Формат вывода
В единственной строке выхода выведите сумму чисел A+B


Пример 1
Ввод Вывод
2 2 4
Аноним 08/11/22 Втр 01:17:09 2508446 1059
>>2508383
>>2508396
>>2508445
Решил так.

<?php
$a = trim(fgets(STDIN));
$str = preg_split ("/ /",$a);
$b=$str[0];
$c=$str[1];
echo $b+$c;

Вопрос можно ли это реализовывать проще? Или PHP не предназначен для такого?
Аноним 08/11/22 Втр 01:29:34 2508454 1060
>>2508446
>можно ли это реализовывать проще?
А куда уж проще? 5 строк кода, можно сократить до двух: не назначать $a, $b, $c:
$str = preg_split ("/ /", trim(fgets(STDIN)));
echo $str[0]+$str[1];
Аноним 08/11/22 Втр 01:36:43 2508459 1061
Аноним 08/11/22 Втр 07:29:15 2508538 1062
>>2508454
Можно в одну строчку =)
echo array_sum(explode(' ', trim(fgets(STDIN))));
Аноним 08/11/22 Втр 07:51:38 2508544 1063
>>2508105

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

>>2508121

Некоторые БД поддерживают передачу SQL-запроса и параметров к нему отдельно:

'SELECT x FROM y WHERE z = ?', 123

а некоторые нет. На такой случай PDO имеет эту опцию, которая заставляет PDO самостоятельно подставить (экранированные) параметры в запрос и передать уже собранный запрос в БД:

'SELECT x FROM y WHERE z = 123'

Благодаря этому запросы с параметрами можно использовать с любой СУБД.

Если ты выполняешь один запрос с разными параметрами много раз, то выгоднее не использовать эту опцию (если БД это поддерживает), так как в этом случае в БД будет посылаться один и тот же запрос и она может закешировать план его выполнения.

Параметры это когда ты в запросе ставишь плейсхолдеры вроде

WHERE x = ?

или

WHERE x = :name
Аноним 08/11/22 Втр 07:54:31 2508546 1064
Аноним 08/11/22 Втр 16:17:40 2508892 1065
>>2440871 (OP)
В ларавел в миграциях есть такая запись
Schema::create('calls', function (Blueprint $table) {...}
Как расшифровывается запись Blueprint $table, каким образом класс
Blueprint взаимодействует в функции с объектом $table?
Аноним 08/11/22 Втр 17:18:53 2508942 1066
>>2508892
Объект $table является экземпляром класса Blueprint.
Внедрение зависимостей(Dependency Injection) гугли.
Аноним 08/11/22 Втр 17:27:18 2508950 1067
>>2508892

Это тайп-хинт - указание, какого типа переменную можно передать в функцию: https://www.php.net/manual/ru/language.types.declarations.php

Тут указано имя класса Blueprint, это значит что можно передать только объект такого класса или его наследника.
Аноним 08/11/22 Втр 18:36:28 2509023 1068
>>2440871 (OP)
Как в ларавел накатывать миграцию без создания php файла миграции? Чтобы мне не удалять его каждый раз при накатывании, а то оно пишет class already exists.
Аноним 08/11/22 Втр 19:31:46 2509078 1069
>>2509023
Ты какой херней там занимаешься?
Аноним 08/11/22 Втр 19:56:56 2509096 1070
>>2508892
А что за блюпринт, это какая-то абстракция из ооп типа фабрики?
Аноним 08/11/22 Втр 20:08:04 2509106 1071
>>2509023

Ты скорее всего называешь все миграции одинаково, а надо у каждой свое имя класса.

Обычно каркас миграции создают консольной командой, и она проставляет правильное имя.
Аноним 08/11/22 Втр 20:13:25 2509113 1072
>>2509096

Это объект, который содержит описание изменений, которые надо внести в таблицу, например, какие колонки добавить. Ты добавляешь информацию в этот объект в своей миграции.

Я бы не сказал, что это паттерн, это просто обычный ООП, в котором разные вещи представляются в виде удобных объектов. В данном случае информация об изменениях в таблице представлена объектом Blueprint.

Если ты плохо знаешь ООП, то в шапке есть учебник и в нем глава про основы ООП.
Аноним 08/11/22 Втр 20:31:16 2509133 1073
>>2509106
Ладно, а откатить/накатить определенную миграцию можно? Знаю типа по счету там как-то можно, ну а если у меня их штук 20 было, и я уже не помню какая там за какой была?
Аноним 08/11/22 Втр 20:42:47 2509151 1074
>>2509133
Создавай блядь новую, ленивый хуй. Миграции нужны чтобы на новый сервер переезжать, а не что бы ленивое хуйло колонки туда сюда переименовывало.
Аноним 08/11/22 Втр 21:05:58 2509167 1075
>>2509023
Ты скорее всего не понимаешь для чего вообще нужны миграции. Они используются для того чтобы держать ddl команды в репозитории.
Как было бы без миграций: ты пилишь некий функционал для пользователей для которого тебе требуется таблица users, ты создал ее локально через ddl команду, добавил в нее нужные тебе поля, индексы и тд. залил php код, который добавляет функционал, в репозиторий. Потом твой коллега, у которого тот же проект с бд развернут локально, хочет дополнить твой функционал по юзерам, но в его локальной базе данных нет той таблицы users которую ты создавал, поэтому тебе нужно рассказать как ему создать ту же таблицу с теми же полями. Миграции решают эту проблему, ведь ты можешь заливать их в репу как и весь остальной код.
Отвечая на твой вопрос, ты можешь написать ddl команду(CREATE TABLE) обращаясь напрямую к базе, чтобы не создавать миграцию. Однако это херовая практика ведь ты больше не можешь просто скопировать папку с проектом на другой комп написать artisan migrate и все у тебя все готовые таблички в базе, поэтому работающие миграции никогда не удаляют, или если она больше не нужно то перед удалением ее нужно откатить. Не волнуйся по поводу огромного количества миграций, это нормально и помни если тебе нужно добавить в существующую таблицу(предположим users) поле (предположим name) и ты не можешь позволить себе потерять все данные в бд, тебе нужно создать новую миграцию типо add_name_to_users_table, а не редактировать миграцию create_users_table
Аноним 08/11/22 Втр 21:14:13 2509175 1076
>>2509167
Пынямаю, благодарю.
Аноним 08/11/22 Втр 22:07:32 2509222 1077
>>2509133
Ты хотя бы пытался документацию открывать?
Аноним 09/11/22 Срд 00:06:06 2509350 1078
блог на ларе пойдет как пет-проект?
Аноним 09/11/22 Срд 09:02:07 2509469 1079
>>2509133

Можно откатывать, но только N последних. То есть, нельзя откатить миграцию из середины списка, только с конца. Аналогично с накатить - можно добавлять миграции только последовательно, без пропусков, а не в произвольном порядке.

> и я уже не помню какая там за какой была?

Это записано в БД, в каком порядке они были.
Аноним 09/11/22 Срд 09:37:01 2509482 1080
>>2509350
Блог на ларе тянет на курсач максимум. А учитывая что 99% там можно тупо сгенерит, то на лабу.
Аноним 09/11/22 Срд 09:50:05 2509486 1081
trait - миксины? Или есть какие-то очень важные отличия? Вроде суть одна
Аноним 09/11/22 Срд 10:08:32 2509493 1082
imageit.jpg 19Кб, 640x640
640x640
Приветствую всех Ларавельных. Как можно через tymon jwt отправить в json refresh_token?
Аноним 09/11/22 Срд 10:27:36 2509504 1083
>>2509482
Смотря че туда напихать. Обвешивать те его можно бесконечно всякими приколюхами.
Аноним 09/11/22 Срд 11:48:29 2509553 1084
>>2509504
Перечисляй пхп приколюхи для блога. Поржу.
Аноним 09/11/22 Срд 12:10:58 2509562 1085
>>2509493
Окей, тогда другой вопрос - в sanctum laravel есть геттер refresh_token?
Аноним 09/11/22 Срд 13:55:15 2509645 1086
>>2509553
Да сдался ты мне че тебе перечислять. Мне хватило для устройства на работу, да и поебать.
Аноним 09/11/22 Срд 14:04:19 2509651 1087
Здрасьте анончики. На чём нынче пишут REST-API на пыхе? Laravel? Пишет ли кто-то на голой пыхе?
Аноним 09/11/22 Срд 14:09:46 2509656 1088
image.png 213Кб, 1209x631
1209x631
>>2509562
Генерируй токен, да делай с ним че хочешь.
>>2509651
Да, Лара в основном. Если чет сложное, то Симфони пади. Ну или на микрофреймворке типа slim.
Аноним 09/11/22 Срд 16:25:20 2509819 1089
люблю ларавел
Аноним 09/11/22 Срд 21:06:20 2510099 1090
не люблю ларавел
Аноним 09/11/22 Срд 21:18:02 2510115 1091
Аноним 10/11/22 Чтв 10:03:17 2510448 1092
Аноним 10/11/22 Чтв 10:06:51 2510449 1093
>>2510099
Я как то слышал от мужика с 100лет опыта в пыхе, что, мол, не люблю ларавель потому что нет однозначно "правильного" способа построить код. Если захочется посмотреть структуру каноничного приложения на ларавель - найти такой просто не удастся. Можно вообще сделать проект, в котором /app останется пустой, одну и ту же вещь реализовывать множеством способов. Возможно он имел опыт с более старыми версиями, а может это на самом деле плюс, а не минус
Аноним 10/11/22 Чтв 11:01:40 2510484 1094
>>2510449
А где он есть этот правильные способ и что он ваще из себя представляет?
Аноним 10/11/22 Чтв 23:27:17 2510969 1095
>>2510115
пишу на ларе, в итоге получается симфония, в чем я не прав?
>>2510449
у неё другая проблема основная - попытка всё сделать проще и унифицировано, но только это выливается в: "шаг влево, шаг вправо, отстрел ноги, переписываем с нуля"
Аноним 10/11/22 Чтв 23:31:27 2510973 1096
>>2510969
>в чем я не прав?
Выбираешь не тот инструмент под задачу изначально?
Аноним 11/11/22 Птн 15:25:24 2511325 1097
>>2508446
>Вопрос можно ли это реализовывать проще?

<?php
print eval(preg_replace('/ /', '+', trim(fgets(STDIN))));
Аноним 11/11/22 Птн 15:29:51 2511330 1098
>>2511325
<?php
echo eval('return '.preg_replace('/ /', '+', trim(fgets(STDIN))).';');
Аноним 11/11/22 Птн 17:05:57 2511413 1099
>>2511325
>>2511330
Сам поймешь, какую хуету ты ему посоветовал, или тебе объяснить?
Настройки X
Ответить в тред X
15000
Добавить файл/ctrl-v
Стикеры X
Избранное / Топ тредов