«phpClub» — архив тем ("тредов"), посвящённых изучению PHP и веб-технологий.
Клуб изучающих PHP #115 Аноним 2020/02/12 12:14:48  №1599201 1
php-noob-1.png (33, 500x500)
500x500
cat-cafe-osaka.jpg (155, 1024x683)
683x1024
Acchi-Kocchi-acchi-kocchi-30421025-1007-570.jpg (138, 1007x570)
570x1007
cat-sad.jpg (173, 1024x768)
768x1024
Непонятный сезон стоит за окном, а мы по-прежнему изучаем язык PHP (а также JS/CSS/HTML/SQL), решаем задачки и даже делаем простые сайты! Зачем? Кто-то хочет открыть стартап, кто-то заработать на лапшу быстрого приготовления, кому-то просто нечего делать.

В нашем треде отвечают почти на все вопросы, только бампайте каждые 5 дней.

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

Предыдущий тред был тут: >>1552970 (OP) . Все старые треды есть в архиве: https://phpclub.tech/ (там есть поиск, так что можно легко найти обсуждение какой-то задачи или ответы на свой старый пост) или ищутся в гугле по словам "клуб изучающих php" и в архиваче.

Мейлач лежит? Есть запасной тред на доброчане: /s/res/23225.xhtml#i46467

Форматируй свой код, если хочешь, чтобы его читали (как, написано во втором посте).

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

С чего начать

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

Устанавливать пока что ничего не требуется, разве что редактор кода вроде Sublime Text 3, Notepad++, Visual Studio Code, Netbeans PHP или PhpStorm (с ним будет удобнее).

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

Ты прошел весь учебник? Молодец, но это были лишь основы языка 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
- Еще более сложная и долгая задача на Yii/Symfony: https://gist.github.com/codedokode/8733007
- После нее можно изучать автоматизированное тестирование https://gist.github.com/codedokode/a455bde7d0748c0a351a
- Если ты все решил, переходи к Symfony 3/Doctrine 2
- Почитать про паттерны 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 - это что-то вроде их хабра. Также можно начинать смотреть фильмы и видео на английском.

Также, у нас есть задачи которые позволят тебе изучить или подтянуть до нормального уровня знания 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? Потому что вакансий море, и учить легко.
- Сайт опять упал!!!!! — Не паникуй, а открой http://rghost.ru/6bfCY9lfl и получи личную немного устаревшую оффлайновую копию сайта (можно читать хоть на андроиде без интернета)
- Что надо знать чтобы найти работу - разработчику: PHP, SQL, HTML/CSS, JS, ООП, Git, композер, MVC, фреймворк. Верстальщику - HTML/CSS, JS, jQuery. У нас в треде были люди, которые практически с нуля учились и смогли найти работу.
- Что будут спрашивать на собеседовании если 0 опыта - гонять по теории, по официальному мануалу PHP, давать дурацкие задачки на переворачивание строк, гонять по SQL (транзакции, внешние ключи, напиши запрос), по JS (как сделать анимацию при нажатии кнопки), ну погугли, не ленись
- Можно подробнее про поиск работы, собеседования - нет, ОП писать не будет, но может кто из анонов захочет рассказать. Поищите тред перезвонивших, а также раздел /wrk/
- Сколько времени надо изучать все это? - все зависит от тебя, но не меньше 6-8 месяцев
- Нужен ли ООП, фреймворки, MVC, git, composer? — Да, однозначно. Посмотри любую вакансию.
Аноним 2020/02/12 12:15:54  №1599203 2
grammar.png (56, 500x644)
644x500
Стоит писать код как попало, а аккуратно. Почему? Потому, что на неакуратно написанный код не хочется даже смотреть. Если каждый будет оформлять код как хочет, будет бардак.

Если тебе лень выравнивать код руками, закачай его на http://beta.phpformatter.com/ и нажми «format». Робот исправит выравнивание и отступы в мгновение ока (да, прогресс не стоит на месте). Если ты используешь мощную IDE вроде PhpStorm, там тоже есть функция форматирования кода.

Горячие клавиши для форматирования кода в разных IDE: https://gist.github.com/codedokode/8759492

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

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

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

PSR-1 (рус.): https://github.com/samdark/fig-standards-ru/blob/master/accepted/ru/PSR-1-basic-coding-standard.md
PSR-2 (рус.): https://github.com/samdark/fig-standards-ru/blob/master/accepted/ru/PSR-2-coding-style-guide.md
PSR-12 (англ.): https://www.php-fig.org/psr/psr-12/

Аноним 2020/02/12 12:17:04  №1599205 3
Ответы: >>1599216 >>1612445
Аноним 2020/02/12 12:21:41  №1599212 4
Ответы: >>1599237
Аноним 2020/02/12 12:23:36  №1599216 5
>>1599205

Могу, кстати, сразу несколько советов дать по поводу https://github.com/Vladrigos/StudentList/

- сделай папку public, как описано в задаче, чтобы из браузера не были доступны все файлы проекта
- почитай урок про SQL инъекции и используй плейсхолдеры при подстановке переменных в запрос: https://github.com/codedokode/pasta/blob/master/security/sql-injection.md
- почитай урок по DI и явно передавай объект PDO в StudentGateway вместо использования синглтонов: https://github.com/codedokode/pasta/blob/master/arch/di.md

Аноним 2020/02/12 12:52:36  №1599237 6
>>1599212
Осталось это же через ООП запилить
Аноним 2020/02/12 14:42:28  №1599358 7
ну наконец таки перекатили. и полугода не прошло. анчоусы, подскажите, делаю аякс пагинацию и там такой код https://ideone.com/fRquks
он отсылает меня в шаблон, который парсит в нужной мне разметке уже то, что пришло с контроллера. проблема только в том что сам js код проблем не вызывает и ajax не ловит .fail
вместо этого при переходи на любую из страниц пыха мне выдает что undefined variable т.к. видимо из за того, что с контроллера нихуя не прилетает. так вот с чем связано то что ничего не приходит?
Ответы: >>1600087 >>1605822
Аноним 2020/02/12 14:53:56  №1599369 8
Недавно сделал студентов. Жду негатив <3 https://github.com/Back1ng/students Использовал Singletone для базы данных, как пример антипаттерна, анон сказал попробовать, чтобы знал. Еще и роутинг хотел по другому сделать, но подумал про параметры, и решил сделать так как есть, ведь все равно большего кода тут не будет
Ответы: >>1599501
Аноним 2020/02/12 16:58:01  №1599501 9
>>1599369
У тебя контроллер наследуется от БД, че за пиздец, во всю используются глобальные переменные. Нет тестов.
Пиздец!
Ответы: >>1599681 >>1599739
Аноним 2020/02/12 17:23:53  №1599535 10
Пацаны, я паровозик, который смог.
Давайте вместе порадуемся этому.

Тащемта если отбросить обсер с видимостью переменных в функциях, я ломал голову над знаками, которые должны быть в запросе sql. Стаоался там кавычки поставить, запятые как отдельные символы ставить. Но это оказало проще.
Ответы: >>1605822 >>1605897
Аноним 2020/02/12 19:03:02  №1599681 11
>>1599501
>У тебя контроллер наследуется от БД
Теперь не наследуется

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

>Пиздец!
Понимаю! =)
Ответы: >>1599741 >>1599881
Аноним 2020/02/12 19:49:39  №1599739 12
>>1599501
>Нет тестов
Сейчас бы тесты на студентов писать.
Толсто.
Ответы: >>1599770 >>1605822
Аноним 2020/02/12 19:53:56  №1599741 13
image.png (1, 225x18)
18x225
>>1599681
Нафига вы так пишете? Строки что ли экономите?
Ответы: >>1600042
Аноним 2020/02/12 20:41:33  №1599770 14
>>1599739
Потом удивляемся, почему в проде никто тесты не пишет
Ответы: >>1599791 >>1599795
Аноним 2020/02/12 20:57:55  №1599791 15
>>1599770
Какой прод, шиз? Тут учебный проект.
Ответы: >>1600103
Аноним 2020/02/12 21:01:31  №1599795 16
>>1599770
Тесты заебись писать когда ты сидишь на работе и тебе за это платят, а не с голодухи в поисках вката, или заказа, или обучения.
Т.е. только тогда когда это хоть кому-то нужно.
Ответы: >>1600105
Аноним 2020/02/12 22:09:23  №1599881 17
>>1599681
Глобальные переменные вроде $_SESSION. Не используй их, потому что тесты потом не сможешь написать. Есть всякие библиотеки, которые позволяют работать с сессиями и куки как с объектами, гугли.
Ответы: >>1599954
Аноним 2020/02/12 22:13:47  №1599895 18
Сап /pr. Занимаюсь пыхой уже второй год, ковыряю фреймворки потихоньку, немного зарабатываю на фрилансе, вроде получается. Сейчас я студент последнего курса, поэтому летом уже пора искать работу. Но в моей шараге сейчас есть курс по тестированию веб-приложений на питоне. Стоит ли вкатываться? Или забить и подрочить пых ещё пару месяцев?
Ответы: >>1600051 >>1600322
Аноним 2020/02/12 23:06:41  №1599954 19
>>1599881
>Есть всякие библиотеки, которые позволяют работать с сессиями и куки как с объектами, гугли.
Да ему одного объекта хватит, куда это всё убрать можно. Зачем библиотеки?
Ответы: >>1599962
Аноним 2020/02/12 23:28:22  №1599962 20
>>1599954
Чтобы по psr все было.
Аноним 2020/02/12 23:28:43  №1599963 21
Суп. Подскажите как фронтенд скотине быстренько влететь в пхп, чтоб без всякой воды и говна для полных новичков типа "что такое DOM, бигоу нотейшон и т.д"? Там на удеми может что-нибудь? Надо по работе, там yii2
Ответы: >>1600007 >>1605822
Аноним 2020/02/13 01:33:48  №1600007 22
>>1599963
>что такое DOM
>бигоу нотейшон
Тут нет такого - придётся сидеть как новичок.
Аноним 2020/02/13 04:23:35  №1600041 23
Привет, помогите советом:

Пишу бота, как лучше организовать хранения справочника типов ответа?

Есть родительский класс Response,
есть подклассы ResponseImage, ResponseText
Есть таблица в бд response - история ответов.

Как оргранизовать справочник типов Response, чтобы в дальнейшем, знать как правильно обрабатывать историю ответов из бд.
1. Хранить в отдельной таблице response_type(id, class_name), и получать type_id в дочернем классе каждый раз запросом к этому справочнику (поиск по имени класса)? Это увеличит кол-во запросов к бд, на сколько это существенно?
2. Или прописать типы в родительском классе? Тогда каждый раз создавая новый класс-ResponseNew нужно будет изменять родительский класс.
3. Создать справочник в бд по всем типам, а в дочернем классе прописать только его type_id?
Два последних варианта - это вероятность возникновения коллизий в будущем при поддержке нескольких ботов.
Ответы: >>1605822
Аноним 2020/02/13 04:29:54  №1600042 24
>>1599741
Это случайно получилось, вроде code cleanup в phpstorme
Аноним 2020/02/13 05:45:09  №1600051 25
>>1599895
забей, нахуй не надо. если есть потребность в тестах на питоне - изучай сам.
будет быстрее, эффективней, дешевле.
так что дрочи пых и пытайся щас уже галеру найти где будешь грести, ибо летом после выпуска будет огромная волна студентов, а осенью еще больше. в связи с этим будет как бы проблематично искать будет. алсо, летом все в отпусках и особо вакансий на рынок не выкидывают
Ответы: >>1600062
Аноним 2020/02/13 06:13:43  №1600062 26
>>1600051
Курсы бесплатные если что, от мэйла. Спасибо за совет, анон.
Аноним 2020/02/13 07:17:50  №1600087 27
Аноним 2020/02/13 07:41:18  №1600103 28
>>1599791
Сразу прививаем хуевые практики
Ответы: >>1600426
Аноним 2020/02/13 07:42:14  №1600105 29
>>1599795
Во многих ваках спрашивают за тесты с порога.
Если конечно не хочешь пойти в говноконтору, где нет тестов и всё тестируют вручную
Ответы: >>1600455
Аноним 2020/02/13 11:24:42  №1600316 30
Ответы: >>1600318 >>1605825
Аноним 2020/02/13 11:24:58  №1600318 31
>>1600316
Если что это переделанная.
Аноним 2020/02/13 11:26:05  №1600320 32
>>1599201 (OP)
Дается массив с числами например
[01,0,1,02,2,5,04,4]
Как убрать из него восьмеричные числа типа 01,02,04.
Ответы: >>1605028 >>1605825
Аноним 2020/02/13 11:28:37  №1600322 33
>>1599895
Ребят скажите плиз, как в php фриланс вкатится? Если я уже все основы веба знаю, только опыта нет. Можно где-то беслпатно поработать? Заказики повыполнять, постажироваться
Ответы: >>1600448
Аноним 2020/02/13 13:01:10  №1600426 34
image.png (282, 600x436)
436x600
>>1600103
>учебный проект на 2 с половиной класса
>тесты
Ответы: >>1600439 >>1605899
Аноним 2020/02/13 13:09:10  №1600434 35
Ответы: >>1605825
Аноним 2020/02/13 13:19:03  №1600439 36
>>1600426
>Очень трудно написать 2 с половиной теста
Ответы: >>1600491 >>1600493
Аноним 2020/02/13 13:33:14  №1600448 37
>>1600322
Если ты правда знаешь как верстать, PHP и т.д То ты никогда не согласишься делать что-то забесплатно.
Ответы: >>1600452
Аноним 2020/02/13 13:39:11  №1600452 38
>>1600448
Так у меня практики нету, я не знаю как монетизировать свои умения. Если я не получу денег но получу опыт, который потом смогу монетизировать, это уже хорошо.
Но да, конечно забесплатно делать это крайний вариант
Аноним 2020/02/13 13:44:50  №1600455 39
>>1600105
Сменил три работы - нигде тестов не писали. Что-то где-то про это говорилось на начале проекта, но потом всегда хуй забивали. Да, это плохо, но далеко не везде их пишут.
Ответы: >>1600467
Аноним 2020/02/13 14:01:45  №1600467 40
>>1600455
Сейм на двух работах сидел и сижу без тестов и это хуево. Сам для себя пишу тесты в изолированных кусках кода
Аноним 2020/02/13 14:42:32  №1600491 41
>>1600439
А нах? Знаешь зачем тесты пишутся?
Ответы: >>1600546
Аноним 2020/02/13 14:43:22  №1600492 42
Кто решил все бонусные задачки? Долго решали? Вот собираюсь ими заняться, хочу спросить есть ли ребята которым удалось?
Аноним 2020/02/13 14:44:31  №1600493 43
>>1600439
Иди нах, короч, со своими тестами на студентах, шиз.
Ответы: >>1600548
Аноним 2020/02/13 15:43:05  №1600546 44
>>1600491
Проверить бизнес логику
Аноним 2020/02/13 15:43:32  №1600548 45
>>1600493
Чтоб тебе на продакшене ни одного теста не было, пидор
Аноним 2020/02/13 15:56:18  №1600561 46
https://career.habr.com/vacancies/1000049256

>Зарплата от 200 000 до 300 000 рублей в месяц. Зависит от количества допускаемых вами ошибок (объективно).
>ошибок

Че за нахер?
Ответы: >>1600582 >>1600596
Аноним 2020/02/13 16:01:18  №1600563 47
Как на пхп сайт с http на htpps перевести?
Ответы: >>1600567
Аноним 2020/02/13 16:04:18  №1600567 48
>>1600563
Это уже к веб серверу. Погугли https имя твоего веб сервера. https apache2 Там уже есть инструкции.
Аноним 2020/02/13 16:22:17  №1600582 49
>>1600561
Ну очевидно, что заносчивые люди будут при любом найденном проблемном или спорном моменте качать права и предлагать снизить зп
Аноним 2020/02/13 16:26:09  №1600596 50
>>1600561
Компания еще и полулегальная небось, так как продает акки
Аноним 2020/02/13 21:49:47  №1601092 51
ОПчик, будь добр проверь задачку про регулярки, тема сложная:

https://ideone.com/kieK0K
Ответы: >>1601115
Аноним 2020/02/13 22:06:10  №1601115 52
>>1601092
>регулярки, тема сложная
да нет всего лишь паттерн матчинг, что искать и на что менять
Ответы: >>1601135
Аноним 2020/02/13 22:30:57  №1601129 53
Наверное это нубский вопрос, но все же. Вот допустим есть простой контроллер c тайпхинтом int на айди теста, который берет айди и показывает страничку с описанием и прочей инфой или 404, если тест не найден. Все работает, но вот, допустим, если юзер случайно наберет в адресной строке слишком большой айди, который больше допустимого int в php, то ларавель преобразовывает этот большой айди в строку и соответсвенно выскакивает исключение, что в контролер пришла строка, а не int. Как это пофиксить? Через middleware?
Ответы: >>1601193 >>1601267 >>1603310
Аноним 2020/02/13 23:00:27  №1601135 54
>>1601115
Первый раз с этим сталкиваюсь. В Си такого не было. Хотя с поддержкой сайтов про регулярки не так уж и сложно, но подумать всё равно надо.
Аноним 2020/02/14 02:13:47  №1601181 55
Случайно удалил через DELETE записи в innodb. Как можно быстро сделать откат?
Аноним 2020/02/14 03:35:57  №1601193 56
>>1601129
Я думаю через try catch и typeException, или какие там есть исключения, выдать 404 страницу
Ответы: >>1602133
Аноним 2020/02/14 07:42:37  №1601267 57
>>1601129
Заменить инт на строку?
Ответы: >>1602133
Аноним 2020/02/14 19:05:55  №1602133 58
>>1601267
Тогда уже ошибка при запросе в бд будет.
>>1601193
Я проще сделал. В документации нашел, что можно параметры запроса регулярками в роутере фильтровать и поставил от одной до десяти цифр.
Аноним 2020/02/14 22:22:02  №1602256 59
Аноны, Оп, помогите. Хочу сделать опросник, но не могу придумать структуру бд. Т.е есть вопросы и ответы, но не простые. У вопросов и ответов должны быть последовательности, аля "выберите ваш пол: М, Ж". И к каждому ответу разные ветви опросов. И так можно сделать к каждому ответу. Это вообще реализуемо? Еще хочу попробовать сокеты, на пхп же можно их написать? (думаю сделать простенький чат чтобы потестить) Или же такие вещи реализуют на ноде?
Ответы: >>1602258 >>1602259 >>1602387
Аноним 2020/02/14 22:24:59  №1602258 60
Ответы: >>1603039
Аноним 2020/02/14 22:29:06  №1602259 61
>>1602256
дополню в бородатые времена была программа элиза она хоть и на лиспе но прочитав код поймешь принцип, работала как чатбот.
Ответы: >>1603039
Аноним 2020/02/15 03:10:08  №1602336 62
Подбуханный сеньер в пятницу разбирает требования к вакансиям по PHP и около того. Респонс не требуется, но может быть кому-то будет полезно. Смотреть на скорости 1.25, иначе скучно.

https://www.youtube.com/watch?v=ixfsmWVAD_0
Ответы: >>1602340 >>1602615
Аноним 2020/02/15 03:18:15  №1602340 63
>>1602336
Я просто своего друга учу и делаю ему видео. Если вас тут покажется полезным, могу улучшить звук и закидывать. А так, это не реклама, я просто напился и решил, чобы не поделиться.
Ответы: >>1602344
Аноним 2020/02/15 03:41:03  №1602344 64
>>1602340
извените за ашипки
я проста бухой слигка
Ответы: >>1602346
Аноним 2020/02/15 03:42:03  №1602346 65
>>1602344
инфа для нубов от этого не становится менее ценной
Аноним 2020/02/15 03:44:56  №1602348 66
>>1599185 →
>Проще сделать папку, в ней хранить файлы с именами, соответствующим логинам или id пользователей, а не пытаться это засунуть в конфиг. Если пользователей всего несколько, можно и в конфиг, благо YAML позволяет многострочные тексты. От 150 строк ничего страшного не будет, и при желании можно это вынести в отдельный файл и инклудить его.
Да, пользователей всего несколько - 3-ое (Alice, Bob, Tester). Правило ли будет поместить в services.yaml в поле parameters следующие поля: alice_public_key, alice_private_key и т.д, и поместить в них многострочный текст? Как потом получить доступ к этим параметрам Symfony Console?
Ответы: >>1602372
Аноним 2020/02/15 07:02:55  №1602372 67
>>1602348
Ключи хранятся в отдельной папке. Папка исключена (так как ключи приватные) из систем контроля версий. Ключи берешь через file_get_contents или что-то подобное (к примеру криптобиблиотеки могут принимать файл ключа как параметер). Файлы или именуешь по айдишникам пользователей (как анон выше говорил) или добавляешь в таблицу юзеров поле с именем файла ключа.
Аноним 2020/02/15 07:37:58  №1602387 68
Untitled1.png (40, 1048x649)
649x1048
>>1602256
Что-то типа такого. Три нижних таблицы это если тебе нужно сохранять ответы пользователей (причем каждый пользователь может пройти несколько тестов) для самого теста они не нужны.
Ответы: >>1603039
Аноним 2020/02/15 10:32:21  №1602615 69
>>1602336
Сорре, протрезвел, грохнул этот видос, стыдобра, лучше потом сделаю нормально и трезвым.
Ответы: >>1602686
Аноним 2020/02/15 11:11:18  №1602686 70
Аноним 2020/02/15 13:04:33  №1602882 71
>>1599201 (OP)
Аноны, как лучше обрабатывать тяжёлые POST-запросы, многомегабайтные, с BigData в виде JSON'a?

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

Что посоветуете?
Ответы: >>1603289
Аноним 2020/02/15 13:52:35  №1602977 72
Как в методах полиморфно определить имя класса?
Хочу родительский дженерик-метод, который использует имя класса, но self::class и __CLASS__ возвращают класс-родитель.
Ответы: >>1603086
Аноним 2020/02/15 14:41:08  №1603039 73
Аноним 2020/02/15 15:23:10  №1603086 74
>>1602977
ОК, я понял.
self => static
Ответы: >>1603656
Аноним 2020/02/15 15:25:30  №1603088 75
Когда нужно использовать прослойку для модели аля сервис, репозиторий? Если у меня не особо большой проект - есть ли в этом смысл?
Ответы: >>1603307 >>1605035
Аноним 2020/02/15 17:48:54  №1603289 76
Аноним 2020/02/15 17:59:18  №1603307 77
>>1603088
Репозиторий это абстракция от хранилища. Это нужно чтобы код модели не зависел от конкретного способа сохранения данных.
Профиты будут, соответственно, если хранилище данных придется менять. Некоторые долбоебы думают что это типа переезда с mysql на postgres, но это относится и к переезду на новую версию базы или кешированию.
Так что я рекомендую репозитории использовать всегда. Если проект маленький, то и времени ты на них потратишь немного, а если большой, ну ты понел. Кашу маслом не испортишь.
Ответы: >>1604939
Аноним 2020/02/15 18:05:24  №1603310 78
>>1601129
Просто кастишь значение к числу (int)$veryBigInt и получаешь максимально возможный int https://3v4l.org/3F9GN
Аноним 2020/02/15 19:46:21  №1603376 79
А можно делать запросы к сфинксу через постгрес клиент, а не mysql?
Аноним 2020/02/16 04:08:06  №1603536 80
Ответы: >>1617734 >>1627699
Аноним 2020/02/16 04:38:12  №1603540 81
32064275300x300.jpeg (16, 300x300)
300x300
В статье ОПа по исключениям есть такая заметка: "Исключения имеют и недостатки в сравнении с явным возвратом ошибок. Например, они могут быть выброшены при выполнении любой функции, и сложнее становится угадать, как будет выполняться код."
Не могу понять, что имеется в виду. Если исключение предусмотрено разработчиками в описании определенной функции, то оно сработает при любом вызове этой функции, если в ходе ее выполнения условия для выброса исключения будут удовлетворены. Другими словами, если выражение внутри скобок после if будет равно true (1) в if (expression) { throw new Exception("Yada yada yada"); }, то скрипт будет прерван.
Однако то же самое произойдет в случае с явным возвратом ошибок:
if (expression) { die("Yada yada yada"); }
Помогите понять мысль ОПа.
Ответы: >>1603634 >>1603967
Аноним 2020/02/16 08:47:25  №1603634 82
>>1603540

Явный возврат ошибок это возврат через return.

if (expression) {
return E_NOT_FOUND; // или return new Error('....');
}

Вариант с die() никаких достоинств не имеет и вообще не рассматривается.

Отличия между явным возвратом и исключениями проявляются, когда у нас несколько функций вызвыают друг друга:

function a() { b() ; }
function b() { c(); }
function c() { throw new Exception(".."); }

Глядя на код функции a(), неочевидно, что она может выкинуть исключение. В случае с явным возвратом ошибок в каждой функции стоял бы if + return и это было бы очевиднее.
Ответы: >>1603967
Аноним 2020/02/16 09:49:17  №1603656 83
>>1603086
Угу, позднее статическое связывание.
Аноним 2020/02/16 14:00:32  №1603967 84
>>1603540
>>1603634
Тут все намного сложнее. Выбрасываемые исключения можно прописать в комменте, тот же phpstorm явно просит тебя это сделать.

А дело все в том что исключения используются как продвинутый goto. Сам goto в пхп ничего криминального из себя не представляет, и ничего действительно запутанного сделать не даст. Вот пример, где мы пытаемся из контекста функции перескочить в другое место https://3v4l.org/f2WLK. Как видишь это нихуя не работает.

А вот пример типичного использования исключений https://3v4l.org/X8QGJ. Как видишь, то чего не смог goto вполне себе могут исключения. Как я уже сказал - этот код ТИПИЧНЫЙ и ты будешь писать точно так же.

Причиной, как мне кажется, является отсутствие возможности нормально вернуть несколько значений, т.к. массивы не типизированы и туплов нет. А так же отсутствие промисов или монады maybe из коробки.
Аноним 2020/02/16 14:29:55  №1604012 85
Продолжаю решение задачи про банкомат, про тот вариант, когда задача не решается жадным алгоритмом https://phpbooktest2.ga/l1/mou-ikkai.html , для решении этого , оп дал такой совет , за что большое спасибо !

>Готового решения, наверно, нету.
"Жадный" алгоритм достаточно прост. Мы сначала вычисляем число купюр большого достоинства, потом кол-во купюр чуть меньшего достоинства, и так до самых мелких. "Жадный" алгоритм работает хорошо, когда каждая купюра в N раз больше другой (где N - целое) и когда нет нехватки купюр.
Например: у нас есть 1x5000 и 3x2000, нам надо выдать 6000. "Жадный" алгоритм выдаст 1x5000 и застопорится. Он тут не применим, так как мы не можем заменить 5000-ю купюру несколькими 2000-ми.
Там, где неприменим "жадный" алгоритм, мы вынуждены перейти к полному перебору всех возможных комбинаций купюр. В общем виде алгоритм выглядит так. Обозначим S - сумма, которую надо выдать, k - количество номиналов купюр, N[1] ... N[k] - количество купюры каждого номинала, A[1] .. A[k] - запас купюр каждого номинала:
- берем все возможные комбинации N[1] .. N[k], где N может быть от 0 до A (то есть, учитываем имеющийся запас купюр и не пытаемся брать больше, чем есть)
- для каждой комбинации проверяем:
- если она в сумме дает S, то сумму можно выдать этой комбинацией
Например, если у нас есть 1x5000 и 3x2000, то мы должны перебрать такие комбинации:
- 0x5000 + 0x2000 (я буду писать эту комбинацию сокращенно как (0, 0))
- 0x5000 + 1x2000 (или (0, 1))
- (0, 2)
- (0, 3)
- (1, 0)
- (1, 1)
- (1, 2)
- (1, 3)
То есть, для каждого номинала мы перебираем значения от 0 до запаса этой купюры. Мы фиксируем значение 0x5000 и перебираем все возможные количества более младших купюр, затем фиксируем значение 1x5000 и перебираем более мелкие купюры снова.
Генерацию комбинаций можно реализовать с помощью рекурсии (функции, вызывающей саму себя). Сделаем функцию такого вида:
generateCombinations(array $A, array $N): array
Где $A - массив запасов купюр (A[1] .. A[k]), например, [1 => 1, 2 => 3] для 1x5000, 3x5000, $N - зафиксированные количества старших купюр. Функция вернет массив всех возможных комбинаций, которые начинаются с комбинации в $N.
Поскольку массив комбинаций может получиться огромным, можно вместо его возврата сделать функцию-генератор, которая выдает комбинации с помощью команды yield, не тратя память на хранение огромных массивов.
Количество таких возможных комбинаций легко посчитать: оно равно произведению запасов купюр, то есть (1 + A[1]) x (1 + A[2]) x ... x (1 + A[k]). Я добавил 1, чтобы учесть вариант, когда мы берем 0 купюр данного номинала.
Такие комбинации похожи на "размещения" из комбинаторики ( https://ru.wikipedia.org/wiki/%D0%A0%D0%B0%D0%B7%D0%BC%D0%B5%D1%89%D0%B5%D0%BD%D0%B8%D0%B5 ). Есть готовые "алгоритмы для генерации размещений". У нас не совсем размещение, но очень близкая к нему вещь, можно погуглить эти алгоритмы.
Дальше алгоритм можно оптимизировать. Например, не перебирать комбинации, которые заведомо превышают искомую сумму (вроде комбинации 2x5000, когда надо выдать 6000). Перебирать комбинации не от (0, 0) к (1, 3), а начиная с наиболее близких к искомой сумме.
В любом случае, тут нужна рекурсивная функция. Либо стек.
Для начала, можешь попробовать написать код, который просто выведет все возможные комбинации купюр на экран. А потом уже добавлять проверку, дает комбинация нужную сумму или нет

Я попробовал написать код, который просто выведет все возможные комбинации , рекурсивно не получилось , получилось со вложенными циклами , но если количество номиналов купюр будет от 3 и более , то вложенные циклы никуда не годятся, получается плохой код. Порывшись в гугле нашел , вот такой рекурсивный цикл https://ideone.com/TRasJW , его чуть чуть поменять , и он уже будет выдавать наши комбинации купюр, в самом этом коде я разобрался, но кажется мне , можно сделать рекурсивный цикл намного проще и понятнее, но самостоятельно написать у меня не получилось, поэтому ищу опять совета здесь


Ответы: >>1604086
Аноним 2020/02/16 15:04:49  №1604059 86
Basic Auth не зашквар использовать в 2020?
Разумеется всё на https будет крутиться.
Ответы: >>1604767
Аноним 2020/02/16 15:29:14  №1604086 87
>>1604012

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

Начнем с ситуации с одним кубиком. Тут все просто: функция должна вывести числа от 1 до 6.

Теперь, пусть кубиков два. Тогда функция должна вывести все комбинации, начинающиеся с 1 (1 1, 1 2 ... 1 6), потом, начиная с 2, и так до 6.

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

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

Если ей передан массив с меньше чем N значениями, кроме последнего, то она просто перебирает числа от 1 до 6, добавляет их по очереди к массиву (так, что получается массив на 1 длиннее, чем был передан) и вызвает себя 6 раз с этим новым массивом.

Вот примерный вид функции:

function generateCombinations(int $n, array $values) { ... }

И вот, как она вызывается (для 3 кубиков):

generateCombinations(3, []);

Этот вызов должен сделать такие вызовы самой себя:

- generateCombinations(3, [1])
- этот вызов сделает такие вызовы:
- generateCombinations(3, [1, 1])
- generateCombinations(3, [1, 2])
- ...
- generateCombinations(3, [1, 6])

Далее будут вызываться:

- generateCombinations(3, [2])
- ...
- generateCombinations(3, [6])

Попробуй написать такую функцию, или напиши, если что-то непонятно.

Есть еще другой способ вывести все комбинации без рекурсии. Он проще, но будет менее удобен для решения задачи про банкомат. Делаем массив, состоящий из всех единиц ([1, 1, 1, 1]). Вывыодим его. Увеличиваем последнюю единицу на 1: [1, 1, 1, 2]. Выводим. Если где-то получается 7 - мы сбрасываем ее на 1 и увеличиваем цифру перед ней.

Этот способ тоже можно попробовать.
Ответы: >>1604094 >>1611704
Аноним 2020/02/16 15:30:58  №1604093 88
authors.jpg (92, 1913x864)
864x1913
Совсем пиздец или сойдёт?

Тестовое задание для стажировки.
Ответы: >>1604096 >>1604180 >>1605067
Аноним 2020/02/16 15:31:48  №1604094 89
>>1604086
Благодарю , буду разбираться !
Аноним 2020/02/16 15:32:08  №1604096 90
>>1604093
>Совсем пиздец
Это даже мягко сказано.
Ответы: >>1604102
Аноним 2020/02/16 15:35:46  №1604102 91
Аноним 2020/02/16 16:03:57  №1604152 92
>>1599201 (OP)
> - Сколько времени надо изучать все это? - все зависит от тебя, но не меньше 6-8 месяцев
Это вместе с
> SQL, HTML/CSS, JS, ООП, Git, композер, MVC, фреймворк. Верстальщику - HTML/CSS, JS, jQuery.
?
А если я знаю html, css, js, jquery и git - сколько пхп займёт? Просто в городе пхп требуют в каждой второй вакансии, думаю стоит выучить.
Ответы: >>1604248
Аноним 2020/02/16 16:27:22  №1604180 93
>>1604093
Если строк в массиве будет миллион че будешь делать?
Ответы: >>1604243
Аноним 2020/02/16 17:05:23  №1604243 94
>>1604180
Я уже переделал в foreach.
В первый раз не смог додуматься как оформить прост, поэтому сделал через echo.
Ответы: >>1604870
Аноним 2020/02/16 17:14:44  №1604248 95
>>1604152
Ну тебе осталось выучить SQL, PHP + его ООП, паттерны, хттп\s-протокол, ну и хотя бы один современный фреймворк.
Полгода минимум.
У тебя фактически только фронтенд и бэкенда вообще нет.
Ответы: >>1604256
Аноним 2020/02/16 17:24:01  №1604256 96
>>1604248
Звучит долго. Это время нужно для хорошего уровня или для начального устройства на работу? Просто я видел вакансии в стиле "вы немного знаете пхп и отличаете бэк от фронта? Го к нам на 20к стажёром". Старт меня и такой устроит.
Ответы: >>1604275 >>1607221
Аноним 2020/02/16 17:36:55  №1604275 97
>>1604256
>Звучит долго.
Это только до уровня вкатывальщика-джуна на нормальный современный стек. Потом ещё доучиваться надо на работе.
Времена когда в пыху вкатывались за 2 месяца давным-давно прошли. Сегодня так в js вкатываются.

>Просто я видел вакансии в стиле "вы немного знаете пхп и отличаете бэк от фронта? Го к нам на 20к стажёром".
Не видел таких. Это либо на вротпресс, либо кидалово.
В обоих случаях дно.
Ответы: >>1604315
Аноним 2020/02/16 18:17:02  №1604315 98
>>1604275
>Сегодня так в js вкатываются.
жс только кажется легко там такой ебаный зоопарк с колбеками шо пыха не самое худшее в жизни
Ответы: >>1604325 >>1604613
Аноним 2020/02/16 18:23:25  №1604325 99
>>1604315
Со всяким поработал, да и работаю. В целом в клиент вкатиться проще, может даже за 2 месяца, если не тупишь. Бекенд (не только на пхп, а любой, в жс тоже) гораздо более широкая тема. Работаю лет 10 уже и только интереснее и интереснее становится расти, а конца и края не видно. Сейчас даже сложно представить, какой объем инфы надо освоить в 2020, чтобы уверенно в бекенд залететь.
Ответы: >>1604332 >>1604613
Аноним 2020/02/16 18:28:11  №1604332 100
>>1604325
бекенд не устаревает как фронт за полгода и хайпуется так
Ответы: >>1604333
Аноним 2020/02/16 18:28:28  №1604333 101
Аноним 2020/02/16 20:30:53  №1604613 102
>>1604315
>жс только кажется легко
Он и есть - легко. То же самое, что и Луа, который вообще для мимокроков в индустрии сделан. Собственно поэтому в js такой ажиотаж и много молодых макак.

>там такой ебаный зоопарк с колбеками
Какой зоопарк? Промисы давно завезли. И в чём сложность этих коллбеков?
Там если только с асинком могут быть проблемы, и то только поначалу на ноде той же.

>>1604325
>только интереснее и интереснее становится
Есть такое дело. Чем больше изучаю - тем дальше горизонт.
Ответы: >>1604677
Аноним 2020/02/16 21:14:06  №1604677 103
>>1604613
>жс
>хоть и говно но общего назначения
>Луа
>встраиваемый
температуры нет? спал хорошо? прими таблеточку
Ответы: >>1604691
Аноним 2020/02/16 21:31:01  №1604691 104
>>1604677
>общего назначения
>встраиваемый
Вообще не в ту степь полез.
Оба языка позволяют шлёпать код не заморачиваясь с нормальным ООП. Юным вайтишникам он не понятен и сложен.
Ответы: >>1604740
Аноним 2020/02/16 22:26:24  №1604740 105
>>1604691
>нормальным ООП
ооп как явление костыль фабрики фабрик
>Оба языка позволяют шлёпать код не заморачиваясь
и давно у нас чистые луа вакансии появились?
стек жопаскрипта за последние годы растолстел что скоро больше жабы со спрингом станет, а учитывая вагоны джунов которые повелись на легкость вкота, требования там растут как на дрожжах, это не учитывая подводные айсберги самого языка со слабой типизацией.
Аноним 2020/02/16 23:09:54  №1604767 106
>>1604059
Бампирую вопрос.
Есть смысл базовую аутентификацию на админку ставить на https? Мне по-простому чтоб.
Ответы: >>1604882
Аноним 2020/02/16 23:21:51  №1604769 107
Может знает кто, какие в ДС есть стажировки по php/битрикс кроме qsoft?
Ответы: >>1605069
Аноним 2020/02/17 05:12:44  №1604870 108
>>1604243
Сообщи если тебя возьмут на работу, потому-что если это случится, то я перестану переживать на счёт себя.
Аноним 2020/02/17 05:45:09  №1604882 109
>>1604767
Без https пароли передаются простым текстом. Любой кто снифает твой трафик может его прочиать.
Аноним 2020/02/17 07:18:28  №1604939 110
>>1603307

Все равно не могу понять зачем нужно это храниоище. В той же Ларе есть орм и свои коллекции. Зачем мне еще 1 слой делать, если и так уде все сделано
Ответы: >>1604978
Аноним 2020/02/17 08:25:59  №1604978 111
>>1604939
Ну ведь тебе свои запросы через орм нужно где-то записать.
А потом изменить,
а потом добавить кеширование,
а потом добавить сброс кеша,
а потом добавить добавление в кеш сразу с добавлением в базу
Если у тебя есть репозиторий, то в десяти местах, где ты получаешь свою сущность будет написано просто $item = $items->getById($id), а вся техническая часть будет скрыта под капотом. Я уже не говорю про то, что если его не делать, то у тебя будет жесткая зависимость от ларавелевской орм.
Ответы: >>1605103
Аноним 2020/02/17 08:48:13  №1605001 112
Изучаю пхп что-то прям очень похоже на js по основам и видимо не только на него - возник один вопрос - а зачем перед переменными знак даллара? Ну то есть да, нужно так - но нельзя было проще сам язык сделать, чтобы не понижать скорость написания кода? Let/const/var - это ведь гораздо удобнее, если вслепую печатаешь. Доллар слишком далеко от дефолтного положения рук.
Аноним 2020/02/17 09:18:01  №1605027 113
аноны, есть тут кто работал с опенкартом?
у нюфага есть пару вопросов к вам сразу говорю-гугл не помог
Аноним 2020/02/17 09:22:08  №1605028 114
>>1600320
$result = array_filter($a, function($number) {
return decoct(octdec($number)) == $number;
});
Аноним 2020/02/17 09:30:05  №1605033 115
>>1605001
Потому что на пыхе можно заработать денех
Ответы: >>1605055
Аноним 2020/02/17 09:33:29  №1605035 116
>>1603088
Да делай все на чистом сикуле, зачем все эти ормы и абтстракции?
Аноним 2020/02/17 10:03:55  №1605055 117
>>1605033
Двачую, надо вместо $ ввести b24 и тогда ваще огонь будет
Ответы: >>1605099
Аноним 2020/02/17 10:22:20  №1605067 118
>>1604093
Я смотрю, вы из индии
Аноним 2020/02/17 10:23:02  №1605069 119
>>1604769
>битрикс
Надеюсь, ты понимаешь во что ввязываешься
Ответы: >>1605075
Аноним 2020/02/17 10:24:48  №1605070 120
>>1605001
Переменные платные.
1 переменная - доллар
Массив - размер массива долларов
Объект - сумма полей и массивов в долларах
Ответы: >>1605077
Аноним 2020/02/17 10:31:18  №1605075 121
>>1605069
Я тоже начал рассматривать битрикс, как что-то, что даст старт. Какие подводные? Я конечно пока что на другие вакансии откликаться буду, но что-то везде опыт нужен но я не теряя надежды буду откликаться на вакансии с опытом от года, если в самом описании осознанно не написано о том, что опыт обязателен, а с битриксом не обязательно.
Ответы: >>1605099 >>1605109
Аноним 2020/02/17 10:32:23  №1605077 122
>>1605070
То есть я уже где-то 30 долларов торчу, за использование языка? У меня нет столько денег.
Аноним 2020/02/17 10:54:05  №1605099 123
>>1605055
дристанул на всю борду. спасибо анон, ты сделал мой день

>>1605075
ну вакансий море. поищи хоть что нибудь получше. тот же опенкарт или вордпресс если есть, идеальным вариантом будет october cms
Ответы: >>1605150
Аноним 2020/02/17 10:59:03  №1605103 124
>>1604978
Почитал статьи. Репозиторий - слой для получения данных с бд, а сервис - слой для занесения данных в бд. Я правильно понял?
Аноним 2020/02/17 11:07:00  №1605109 125
>>1605075
Подводные в том, работа с битриксом - не разработка, максимум - веб мастер. Путь к работе на основе фреймворков или кастомных решений закрыт.
Это не говоря про низкую зп и скотские условия работы
Ответы: >>1605150
Аноним 2020/02/17 11:40:17  №1605150 126
>>1605099
> вордпресс
А он лучше? Я думал, что это дно дна, почему-то. Вакансий нет, в любом случае - на удалёнку поди без опыта не возьмут. Мой удел - битрикс газонюх.
>>1605109
> битриксом - не разработка
Пишут "разработка сайтов на платформе 1с-битрикс и доработка crm битрикс24". Врут? Ну и если это не разработка - получается мне это не поможет в дальнейшем устроиться в разработку и лучше дальше искать?
Ответы: >>1605163
Аноним 2020/02/17 11:55:00  №1605163 127
>>1605150
Лучше сразу искать Symfony/Laravel/Yii(крайний случай).
В битриксе уровень кода лаба1.php, только этого кода десятки тысяч строк
Ответы: >>1605171
Аноним 2020/02/17 12:07:36  №1605171 128
>>1605163
Так я только начал изучать пхп и как бы он ни был похож на js, надо вникать во всякие тонкости, mysql изучить, до выбора php фреймворка я пока не дошёл. Есть вакансии с пхп, но для них мне ещё пару месяцев бы дома посидеть, а я не хочу.
А тут попадается вакансия, где вроде как я научусь по крайней мере мне так кажется всему, что нужно для поиска нормальной работы, так ещё и платят какие-никакие никакие деньги - 3к стипендия за обучение, если пройду если нет, то наверное можно сразу выпиливаться, потом за 10к 3 месяца, потом я уже старший газонюх за 18к и может быть, когда-нибудь я дорасту до 30к и к этому моменту свалю от них. Хотя вроде там кому-то до 80к платят.
Суть в том, что на эту вакансию я с чистой совестью подхожу.
Ответы: >>1605289 >>1605346
Аноним 2020/02/17 13:15:22  №1605289 129
>>1605171
Ты спокойно найдешь местную конторку, где тебя возьмут стажером на yii, научат пилить круд (львиная доля работы пхп макаки), а там уже рост пойдет, через пару лет на удаленку выйдешь и будешь спокойно пописывать
Ответы: >>1605465
Аноним 2020/02/17 13:47:34  №1605346 130
>>1605171
пиздец это че за рабские условия труда такие
ни за что к ним не иди, анон.
или проси чтобы платили как норм стажеру 20-35к на первые три месяца
Ответы: >>1605379
Аноним 2020/02/17 14:02:17  №1605372 131
>>1605001
>что-то прям очень похоже на js
Да вообще не похоже. Это ты, скорее всего, пишешь на пхп как на js он позволяет так делать до первого серьёзного проекта.
Аноним 2020/02/17 14:02:58  №1605374 132
sup, программач. аноны, как делать ебучую интеграцию с api сдека ?нихуя непонятно
Ответы: >>1606150
Аноним 2020/02/17 14:06:33  №1605379 133
>>1605346
Меня посадили в первый месяц фуллстек проект делать. lara/vue spa. Все делаю сам, общаюсь с заказчиком и серв настраиваю тоже. за 20. Благо проект не тяжелый и заказчик не ебет.
Ответы: >>1605385
Аноним 2020/02/17 14:08:05  №1605385 134
>>1605379
Кмк, если кушать есть что - за копейки первое время работаь не должно быть проблемой. Хотя 3м за 10к как то мало. 15 хоть
Ответы: >>1605465
Аноним 2020/02/17 15:10:35  №1605465 135
>>1605385
> Хотя 3м за 10к как то мало. 15 хоть
Ну там не факт, что 10 будет. Там от 10, потом от 18, потом от 35. Думаю 15 можно получать на старте.
>>1605289
> Ты спокойно найдешь местную конторку, где тебя возьмут стажером на yii
Так что-то не вижу таких вакансий на основных сайтах с раьотой. Вообще мало стажировок, но куча вакансий с требованием года опыта - на них конечно можно и без опыта попасть, но обычно много всего знать надо, больше чем я знаю в данный момент.
Ответы: >>1605475 >>1605483
Аноним 2020/02/17 15:19:12  №1605475 136
>>1605465
Ясно, понятно.
Можешь забить хуй на 90% требований в вакансиях.
Кадровый голод такой, что многие фирмы, где пишут 1-3 года опыта могут взять стажера на вырост.
Помимо вак стучи в сами фирмы, пиши на почту, звони, расслылай резюме везде, куда сможешь.
Ответы: >>1605507
Аноним 2020/02/17 15:26:31  №1605483 137
>>1605465
Опыт разный бывает. Можешь считать что у тебя он есть, просто это не "опыт коммерческой разработки"
Ответы: >>1605507
Аноним 2020/02/17 15:44:53  №1605507 138
>>1605475
> Помимо вак стучи в сами фирмы, пиши на почту, звони, расслылай резюме везде, куда сможешь.
Надо бы. Просто я хекка-социофоб, таблетки уже давно не принимаю они уже не нужны, но с ними всё было легче и начать что-то социально активное сложно. Причём на собесе могу легко и непринуждённо общаться, а позвонить/написать - невольно откладываю это. Сегодня создал резюме на втором по популярности работном сайте в городе - там есть потенциально подходящие вакансии, буду им писать.
> Кадровый голод такой, что многие фирмы, где пишут 1-3 года опыта могут взять стажера на вырост.
Вот им бы стоило вакансии стажёров создавать. А то слабо ощущается этот голод - в конторе, где я недавно был на собеседовании, сказали что один из 15 человек дальше первого, ознакомительного собеса проходит, а чтобы туда попасть, надо уже некоторые задания решить, которые показывают, что кандидат не случайно откликнулся. То есть навыки то могут быть нужные, но стиль работы не тот и они не дойдут до технического собеса а их 2-3 минимум и тз не получат.
>>1605483
Да, я его указываю, со ссылками и кратким описанием. Но не думаю, что кто-то читает.
Ответы: >>1605661
Аноним 2020/02/17 17:50:18  №1605661 139
>>1605507
>То есть навыки то могут быть нужные
С чего ты это решил? Качество решения любых задач, в том числе стажерских, можешь по этому треду заценить. Разброс очень большой. Очень даже может быть здравым решением пропускать только 1 из 15 решивших, если только он справился хотя бы на четверочку.
Ответы: >>1605671
Аноним 2020/02/17 17:59:35  №1605671 140
>>1605661
Не, сначала дают задания после отклика, их 10-15 и они проверяют знание стека, используемого конторой, умение решать задачи несколькими способами и оптимально, понимание прочих важных для них штук. Вот из 15 тех, кто выполнил все эти задачи, 14 бракуют до технических собеседований и полноценного тз. У них специфический рабочий процесс и если они считают, что кандидат не подходит, он может хоть сколько лет опыта иметь.
Ответы: >>1607443
Аноним 2020/02/17 18:48:53  №1605787 141
Анчоусы, можете меня поздравить. Устроился пхп-макакой в контору. Зарплата средняя по городу. Но есть проблема. Я толком нихуя не знаю. То есть на базовом уровне могу написать анонимный форум типа базовой версии вакабы. Но постоянное ощущение, что меня слишком рано взяли на работу. Что почитать для правильной организации самой структуры кода? На работе проект, которому 12 лет, ООП там и не пахнет, но вот все равно ощущение, что я тупой
Ответы: >>1605828 >>1606038
Аноним 2020/02/17 19:04:32  №1605812 142
У меня есть два вопроса.
На один из них га сайте пхп.нет ответе не написано.
1.
printf ();
как использовать к многобайтовым русским символам?
если (никак) ? "Какие аналоги есть?" : "Анон, молю, подскажи";


2.
Как можно из пхп открыть другой файл?

К примеру, в хтмл можно параметр action="file.php" написать и это сработает.
А чот в пхп я пробовал fopen("page.html") и никак.
Ответы: >>1605831
Аноним 2020/02/17 19:07:27  №1605822 143
>>1599358

Проверь отладчиком в браузере (F12 на вкладке Script или Debugger), что там формируется и передается в переменной obj

>>1599535

У тебя SQL-инъекция в коде. Используй плейсхолдеры.

>>1599739

Вообще, тесты удобно изучать на примере простого проекта ведь.

>>1599963

Можешь попробовать для начала прочесть туториал в мануале: https://www.php.net/manual/ru/index.php

Но дальше тебе надо еще изучить ООП и фреймворки, язык SQL.

>>1600041

Если у тебя есть классы, которые наследуются и ты хочешь их хранить в БД, то есть три паттерна: Class Table Inheritance, Concrete Table Inheritance и Single Table Inheritance.

Они описаны, например, тут http://design-pattern.ru/index.html

Самый простой, наверно, это STI.
Аноним 2020/02/17 19:08:35  №1605825 144
>>1600316

1) Если ты понял, что перед тобой не палиндром, то можно выходить из цикла по break
2) Ставь фигурные скобки после if/else, чтобы не было разночтений, где там начинается и заканчивается блок

>>1600320

Восьмеричные числа никак не отличить от обычных, так как в процессе создания массива они все становятся просто числами, без системы счисления. Если у тебя строки ['06', '7'] - то отличить можно, а если просто числа, то никак. Массив содержит просто числа, без указания системы счисления.

>>1600434

> for ($sumOfCredit += ($sumOfCredit * $percentage); $sumOfCredit > 0

тут слишком много действий, и тяжело читать заголовок цикла. Стоит вынести эти действия из скобок в for() и сделать обычными действиями.

"} else {" пишется в одну строчку.

А так, решено хорошо.
Аноним 2020/02/17 19:09:10  №1605828 145
>>1605787
Рад за тебя, анон.
Ощущение, что ты тупой, обязательно пройдет.

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

Не боись ошибаться, учись на этом.
Ответы: >>1605860
Аноним 2020/02/17 19:12:15  №1605831 146
>>1605812

1) printf выводит русские буквы, но не умеет корректно их выравнивать и считать ширину текста (он считает что 1 символ = 1 байт, а русская буква занимает 2 байта в utf-8). придется писать свою функцию для выравнивания.

2) include/require. Они выполняют код из другого файла, как будто ты вызвал функцию.

В HTML с помощью action=... ты не "подключаешь" файл, а указываешь, на какой URL браузер должен отправить запрос с данными формы (и откуда он должен брать новую страницу для показа), когда пользователь нажмет кнопку отправки.

fopen "открывает" (подготавливает) файл для чтения или записи в него с помощью fwrite/fread. Он не будет выполнять код из файла.
Ответы: >>1605901
Аноним 2020/02/17 19:17:24  №1605847 147
Спасибо.
Значит, выравнивать текст придется не через printf, а через div'ы на странице.

> include/require
Сработает, если я вызываю не пхп, а чистый хтмл?

Алсо. На счет include/require.
Можно ли их использовать на каждой странице для подтверждения авторизации?

Типа, в одном файле авторизовался, перешел на вторую страницу, которая доступна только есть твой $pass == 'password'из БД.
Ответы: >>1605861 >>1605863 >>1605865
Аноним 2020/02/17 19:26:34  №1605860 148
>>1605828
Но я работаю на работе и мне платят за это деньги. Постоянное ощущение, что мне скажут: ты слишком долго и хуево делаешь х, ты нам не подходишь
Ответы: >>1606151 >>1607372 >>1607374
Аноним 2020/02/17 19:26:43  №1605861 149
>>1605847
Не изобретай велосипед, авторизация делается либо сессиями в случае твоего встроенного в шаблоны говнокода, либо всякими токенами в случае стейтлесс апи
Аноним 2020/02/17 19:28:27  №1605863 150
>>1605847
Инклюд подключает кампелированный код, require - в процессе исполнения.
Я вообще все шаблоны подключаю через инклюд
Аноним 2020/02/17 19:29:44  №1605865 151
>>1605847
Вообще да, Антон прав. Используй сессии. Можешь ещё в куке хранить хэш пароля
Аноним 2020/02/17 20:01:38  №1605891 152
Аноны помогите со студентами.

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

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

3. Грамотно ли в контроллере при успешной регистрация ставить сессии и куки через глобальную переменную? Читал, что лучше вообще не пользоваться глобальными переменными. Но как тогда сделать?

4. Создавать отдельно хейдер и футер, и затем его подключать в контроллере через инклюд нормальный подход?

В общем я чувствую пробелы в понимании работы MVC, но не знаю, где восполнить эти пробелы.
Аноним 2020/02/17 20:03:52  №1605897 153
>>1599535
Че названия столбцов такие шизоидные?
Ответы: >>1606074
Аноним 2020/02/17 20:06:18  №1605899 154
>>1600426
>использовать print_r вместо написания теста
Ответы: >>1606072
Аноним 2020/02/17 20:10:12  №1605901 155
>>1605831
Разве в пыхе уже не давно ютф8 нативный везде?
Аноним 2020/02/17 20:11:48  №1605902 156
>>1605001
Не пытайся искать логику в этой хуйне, ее нет, пых писал какой-то упоротый жирдяй для своей домашней странички, вангую с тех времен доллары и пошли, а были они там, потому что васянскому интерпритатору было так легче переменные находить
Ответы: >>1605912
Аноним 2020/02/17 20:21:55  №1605912 157
>>1605902
а почему жид компиляцию еще не прикрутили
Ответы: >>1606027
Аноним 2020/02/17 22:56:28  №1606027 158
>>1605912
На хабре читал что от нее прирост в производительности только в теории есть. А на практике чуть ли не в минус идет. Но говорят в 8 версии запилят
Ответы: >>1606034
Аноним 2020/02/17 23:40:44  №1606034 159
>>1606027
>только в теории есть
ага у пыхи же уже производительность как у жабы нечего выжимать(сарказм).
многопоток это отдельное бдсм в текущем виде
Аноним 2020/02/18 00:14:51  №1606038 160
>>1605787
«Чистый код» почитай, хотя бы половину, больше не надо.
Аноним 2020/02/18 02:29:55  №1606069 161
https://ideone.com/MJT2d9

Еще не решил первую задачу в повторениях, объясните я даун или так можно решить? Меня пока что смущает цикл который я сделал, implode не работает почему-то, не могу этого понять. Плюс нет функций для того чтоб сделать первую букву в предложений заглавной, нашел вариант на сайте пыхи.
Сейчас осталось добавить пробелы и вроде решил.
Аноним 2020/02/18 02:33:11  №1606072 162
>>1605899
Вот жеж долбоёбы на ларавеле даже dd ввели для принта.
Таблетки прими, шиз. Тесты не везде нужны.
Аноним 2020/02/18 02:38:49  №1606074 163
>>1605897
Таблетки забыл принять.
Аноним 2020/02/18 05:16:37  №1606097 164
154118960709293.jpg (124, 1240x826)
826x1240
Че ребят как у кого успехи? Олды есть которые заглядывают сюда? Интересно истории какие-нибудь послушать.

Сам ~5 лет назад начинал проходить эти ваши задачи про вектор и прочее, потом работа начала появляться на которой не особо нужен был компьютер саенс, паттерны и алгоритмы (небольшие проекты на codeigniter). В общем не особо что-то прям развивающее, а чисто ебашилово молотком и долотоом так сказать.
Последние полтора года ебашу аутсорсером на легаси проекте, чувствую что опять болото. Да и платят наверное ниже рынка по большому счету. Периодически заглядываю в тред, но отвечать по большому счету некому, либо слишком простые вопросы, либо не моя компетенция или стену текста адовую нужно писать - просто тупо лень.
Аноним 2020/02/18 06:24:14  №1606150 165
>>1605374
ну же,анон,помоги. третий день мозг ебу
Ответы: >>1606280
Аноним 2020/02/18 06:25:49  №1606151 166
>>1605860
сейм щит. гребу уже второй месяц в таком темпе
Ответы: >>1607374
Аноним 2020/02/18 06:30:53  №1606155 167
>>1606097
>Олды есть которые заглядывают сюда?
видимо нет. здесь 90% вопросов моих почему то в игнор улетают ))). судя по всему все олды разбежались по другим тредам и языкам
>Периодически заглядываю в тред, но отвечать по большому счету некому, либо слишком простые вопросы, либо не моя компетенция или стену текста адовую нужно писать - просто тупо лень.
Такая же проблема
Аноним 2020/02/18 07:41:05  №1606187 168
>>1606097
Пару месяцев гребу, ничего тяжелого пока. Хочется паттерны там учить и т.д. Хз че делать
Аноним 2020/02/18 08:02:15  №1606206 169
>>1606097
> Че ребят как у кого успехи?
Ищу работу, пока не очень успешно. Сегодня написала контора, мол приходи, оценишь свой уровень - я не откликался на их вакансии, но поглядывал. Но говорят, что это не очень хорошая контора и там надо будет ебашить как черт. Вакансии у них вечно висят текучка?, так что сначала другие проверю, потом к ним схожу. У них там верстальщик требуется - думаю на него то точно подойду.
> потом работа начала появляться
Через какое время?
Ответы: >>1606253
Аноним 2020/02/18 08:10:09  №1606213 170
>>1606097
Типичная PHP-разработка. Хорошие конторы, наверное, где-то есть (должны же быть), но я не встречал ни разу.
Аноним 2020/02/18 08:39:28  №1606234 171
Сап, двач. Делаю докер-кампот файл для nginx+php.

php:
image: php:7.2-fpm
ports:
- 9000:9000
volumes:
- ./app:/app

Так вот, хлопцы, а если я хочу имидж не php:7.2-fpm, а со своего докерфайла Docker-php, который базируется на
php:7.2-fpm

Мне надо скачать mcrypt.

Как мне это сделать?
Аноним 2020/02/18 09:12:01  №1606252 172
Парни, запилил таблицу для друга-вкатывальщика, где примерно расписал, что надо знать условному джуну, мидлу и сеньеру, чтобы он понимал масштаб проблемы. Технологии взяты не из головы, до этого я потратил время и прошерстил вакансии более или менее, выписав то, что требуют в основной массе.

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

Сразу говорю: понятно, что есть вакансии, где на джуна спрашивают как написать модуль для PHP на Си, как настроить кеширование в nginx по памяти или как бы ты оптимизировал sql-запросы, это понятно. Всё, что я сделал - это достаточно приблизительно, исходя из того, что я бы сам ждал от того или иного уровня.

https://docs.google.com/spreadsheets/d/1FvHiZp9xZRXMvPM4XKUuyrdR9v5vBEVccFx-mEWhnds/edit#gid=0
Аноним 2020/02/18 09:12:23  №1606253 173
>>1606206
>Через какое время?
Я уже не помню, я мб учил дома и месяцами весь этот начальный учебник опа, но по факту играл в игры, а занимался чем-то полезным по 4 часа в неделю.

Хз, сначала пришел в контору в которой была адовая текучка, куча макак делает какие-то там мобильные игры, все это сдабривалось скрытой рекламой для заработка (потом еще вроде как адовый скандал был в отрасли), а пхп отдел из 5 челов должен был лепить под все это дело мелкосайты и дендосы вроде как, ну и внутреконторные админки и всякие отчеты со статистикой. Когда спросили че умеешь - я ответил честно что вообще нихуя и меня взяли. Самым топовым программистом на пхп, помимо тимлида, там без шуток был школьник с 1.5 годом опыта. С одной стороны рили криндж, с другой я мог сидеть и без особых проблем разбираться в любой хуйне. Все понимали что с меня ничего не взять. Правда выдержал я там 2-3 недели всего, потому что ездить было далековато и на общественном транспорте. Кароче ебанули морозы, и я послал стояние на остановке в лесу -35 нахуй.

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

Некст работа уже сама меня нашла. Стоило ради прикола запостить резюме с одной тоолько строчкой, что у меня опыт работы на codeigniter, и все - меня самого уже начали вызванивать раз в месяц. Это не тот скилл который нужно учить сейчас нубу офк. Просто как оп советует, берешь какой-нибудь актуальный фреймворк, делаешь на нем маломальский проект, понимаешь как в нем гонять туда-сюда строчки и вуаля, ты более менее можешь искать что-то.

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

>Сегодня написала контора, мол приходи, оценишь свой уровень
Просто иди и попробуй без сомнений особых. Опять же пока ты не можешь самостоятельно решать бизнес-задачи, то ты сам должен проситься работать за еду. Если тебе скажут что можешь посидеть тут недельку поделать тестовое за бесплатно и позаебывать всех вопросами - соглашайся.
Ответы: >>1606382
Аноним 2020/02/18 09:18:13  №1606257 174
>>1606252
Я как раз думал о чём-то похожем. Но я бы сделал не таблицу, а блок-схему.
Ответы: >>1606258
Аноним 2020/02/18 09:18:58  №1606258 175
>>1606257
Да похуй как это выглядит, главное - суть. Таблица или схема - это дело 15 минут. А изучение - это дело лет.
Ответы: >>1606271
Аноним 2020/02/18 09:20:30  №1606259 176
>>1606252
Глянул одним глазом на таблицу - хуета какая-то.

У тебя в голове каша. Условный Вордпресс и Ларавел, а так же разные субд - это не звенья одной цепи по которой ты идешь. Это как разные профы в линейке, лол. Можно быть суперспециалистом, который никогда не окунался в modx-парашу, и работать за 300кк в секунду в серьезных проектах, а можно быть "мастер на все руки в каждой cms" и работать за дошик в веб-студии "лидере отрасли", где тебя по факту просто перепродают решать проблемы челиков которые не понимают нихуя в разработке.

Лучше бы ты дал ему учебник опа и помогал решать задачу за задачей, повышая уровень сложности, если ты сам конечно чет понимаешь (судя по таблице такой же нубас с кашей в голове, который только через вакансии может примерно представить что там в реальности как устроено)
Ответы: >>1606262
Аноним 2020/02/18 09:24:30  №1606262 177
>>1606259
Спасибо за мнение, но у меня все окей с головой. Если ты изучаешь с нуля, то: ты пишешь сначала PHP-код, потом подрубаешь веб-сервер и делаешь сайт на чистом PHP, потом ты берешь CMS, т.к. она ничего кроме этого не требует, а потом ты берешь фреймворк и оказывается, что там нужны паттерны, ORM, GIT и прочее блядство. Это по возрастающей.

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

Кроме того, я не уверен, что есть вакансии а-ля WordPress Senior.

В общем, я не спорить сюда пришел. И не принес свою таблицу а-ля "смотрите, это лучшее, что есть в мире!". Я попросил помощи дополнить ее, не более того.
Ответы: >>1606284 >>1606289 >>1606402
Аноним 2020/02/18 09:28:55  №1606268 178
>>1606252
микросервисная архитектура и многопоток в пыхе? чего блядь?
Ответы: >>1606272
Аноним 2020/02/18 09:29:56  №1606271 179
>>1606258
Блок-схема удобней, позволяя как создавать связи, так и выделяя области: например выделяя из "разработки сайта" области "фронтэнд", "бэкэнд", которые в свою очередь можно разбить на ещё меньшие части, например "Server Page" и "база данных, в которых будут как параллельные,так и альтернативные пути.
Ответы: >>1606274
Аноним 2020/02/18 09:30:42  №1606272 180
>>1606268
Я сам охуел, но я это видел в вакансиях на сеньера. С микросервисами еще понятно, но многопоток - это пушка. У самого большой стаж работы, но я собираюсь на днях пойти и почитать, что это за зверь. Видимо, имеется ввиду, когда тебе надо написать демона на PHP. Что на мой взгляд, уже пиздец.
Ответы: >>1606281
Аноним 2020/02/18 09:31:16  №1606274 181
>>1606271
Да, согласен с тобой. Если сделаешь, будет годно. Мне лично лень. Мне надо просто примерно обозначить дорогу для нового джуна и всё.
Аноним 2020/02/18 09:36:10  №1606278 182
>>1606097
Не то что бы олд, но опыт есть.
Сижу на поддержке продукта болото с пыхой и жиквери, разработка идет со скоростью улитки.
Между тасками почитываю Чистый код и Чистую архитектуру, пилю пет на современном стеке, прохожу собесы.
Аноним 2020/02/18 09:37:17  №1606280 183
>>1606150
Чем тебе помочь?
Открываешь доку сдека и ебашишь.
По всем вопросам пишешь им в техподдержку, подробно описывая проблему.
Аноним 2020/02/18 09:37:36  №1606281 184
>>1606272
особенность пыхи, хуевая, что каждый скрипт выполняется в отдельном потоке, в той же жабе и тд в памяти поднимаются объекты, висят в ней, треды там чето делают, в пыхе не так, что то распараллелить это костылизм
если языки которые специально сделанные для многопотока или изоморфных приложений которые можно писать не садясь на раскаленный лом, но пыха это хуяк хуяк и в продакшен.
Ответы: >>1606283
Аноним 2020/02/18 09:40:40  №1606283 185
>>1606281
Я даже спорить не берусь, я про многопоток в пыхе слышу первый раз в вакансии. Я про это что-то когда-то читал, но это было давно и там прямо писали - НЕ используете пыху для этого и НЕ используйте пыху для написания демонов, ибо она течет и вылетает без повода.

С джавой знаком, есть пара проектов на спринге, там вопросов нет, все эти атомики, валотайлы и синки, окей. Но, если хотя бы в одной вакансии встретилось требование многопотока в пыхе, надо это посмотреть, как минимум. В конце-концов, в пыхе, похоже, через пару лет будет строгая типизация (с кривой обратной совместимостью), так что почему бы и нет. Мы же тут не ленивые, да?.. :) Почитать никто не мешает, а на собесе можно и блеснуть знаниями, особенно на джуна.
Аноним 2020/02/18 09:42:39  №1606284 186
>>1606262
Пс, не хотел показаться уебком. Просто по факту за каждым вторым пунктом этой таблицы стоит огромное количество человеко часов, которые нужно потратить на изучение, и которые выльются ни во что. С таким планом я бы бросил изучение уже на третий день. Нужно принципы учить и подходы, а инструменты конкретные уже следом под конкретные задачи. Я понимаю хочется как-то систематизировать, что бы облегчить себе понимание опять же происходящего. Но пытаться охватить все - огромная ошибка.

Опять же призноки каши в голове: каким образом Codeigniter - это синьер скилл, если это во первых достаточно простой фреймворк, а во вторых устаревший на 5-10 лет инструмент? На нем сейчас вакансии будут либо только на поддержку, либо клепать по отработанной схеме инет-магазины какие-нибудь конвеерно.
Как у тебя установка пхп на линукс - это мидл-скилл, если это делается еще до начала работы? Ты либо ставишь себе линукс сразу и начинаешь на нем ковыряться и ставишь в первый же день LAMP стек по гайду и уже дальше начинаешь в этом разбираться и пердолиться до бесконечности, либо совсем не паришься и накатываешь себе на винду OpenServer и можешь хоть чередовать обучение/разработку со своей любимой докой-2.

Ты либо ныряешь в вордплесс/modx/joomla если это от тебя требуют по работе и остаешься там до того момента пока не одумаешься (навсегда, лол), либо сразу скипаешь это и учишь более интересные и продуманные вещи.

Битрикс - вообще либо ныряешь навсегда, либо не трогай - она_тебя_сожрет.webm
Ты либо работаешь полноценно на каком-нибудь фреймворке каждый день, и даже при этом и за год не запомнишь все его возможности, и будешь энивей постоянно гуглить документацию, либо не работаешь. Или в чем смысл этого всего вообще? Посмотреть часовой видосик по каждому пункту на ютубе?
Ответы: >>1606291
Аноним 2020/02/18 09:45:55  №1606289 187
>>1606262
>потом ты берешь CMS
Этот этап спокойно пропускаешь, т.к. там нечему учиться в плане разработки.

>я не уверен, что есть вакансии а-ля WordPress Senior
Как же ты ошибаешься. Есть такие макаки, ебашут сайтики на вп со скоростью конвейера. Натянул верстку, накидал плагинов, настроил и готово.
Ничего общего с разработкой на основе фреймворка не имеет.

Есть гораздо более адекватный роадмап по бекенду на английском, легко гуглится
Ответы: >>1606294
Аноним 2020/02/18 09:48:02  №1606291 188
>>1606284

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

> Нужно принципы учить и подходы, а инструменты конкретные уже следом под конкретные задачи.

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

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

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

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

> Битрикс - вообще либо ныряешь навсегда, либо не трогай - она_тебя_сожрет.webm
Подписываюсь. Но вернись в реальность! Если берут только туда, где битрикс, неплохо бы его хоть немного знать.

> Или в чем смысл этого всего вообще? Посмотреть часовой видосик по каждому пункту на ютубе?
Отчасти хотя бы так. Смысл - не знать все на 146%, а пройти собес, показаться уверенным или хотя бы смышленым.
Ответы: >>1606303 >>1606330
Аноним 2020/02/18 09:49:04  №1606294 189
>>1606289
> Этот этап спокойно пропускаешь, т.к. там нечему учиться в плане разработки.
Да, только вакансий - дохуя.

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

> Есть гораздо более адекватный роадмап по бекенду на английском, легко гуглится
Слушай, не в службу, а в дружбу, принеси пожалуйста, я уже уехал и с телефона пишу.
Ответы: >>1606315
Аноним 2020/02/18 09:53:57  №1606303 190
>>1606291
если
>цель: устроиться куда-то
То пилишь круд на yii/laravel/symfony и устраиваешься

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

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

>Если берут только туда, где битрикс, неплохо бы его хоть немного знать
А может не надо туда идти?

>Смысл - не знать все на 146%, а пройти собес, показаться уверенным или хотя бы смышленым
Для этого достаточно написать круд
Ответы: >>1606309 >>1607325
Аноним 2020/02/18 09:56:42  №1606309 191
>>1606303
Бро, извини, я не буду больше с тобой спорить, мы смотрим с разных точек зрения.

> То пилишь круд на yii/laravel/symfony и устраиваешься
Это смотря куда. У меня были собесы, где я проходил сразу, а были, где меня внезапно ебали о том, как внутри устроен ассоциативный массив.

> От таких товарищей держаться максимально далеко.
Не согласен. Для первой работы - это опыт. И еще деньги.

В общем, если смена работы с грузчика на пхпшника это для тебя "не надо туда идти", то ты не забыл, насколько приятнее работать хотя бы за 30-40к в офисе, чем грузить говно в пятерке :)
Ответы: >>1606313 >>1606320
Аноним 2020/02/18 09:58:07  №1606313 192
>>1606309
*то ты не забыл = то ты забыл
Аноним 2020/02/18 09:58:49  №1606315 193
image.png (967, 1250x1664)
1664x1250
>>1606294
>Да, только вакансий - дохуя
А вакансий кассиром еще больше. Но мы же хотим идти код писать и большой рубль получать?

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

роадмап прикрепил
Аноним 2020/02/18 10:00:51  №1606317 194
>>1606315
Так это не роадмап, это просто вилки, откуда и чего начинается. Приоритетов-то нет.

> А вакансий кассиром еще больше. Но мы же хотим идти код писать и большой рубль получать?
Опять же, если речь про первую работу, мое личное мнение - похуй чего и как они там делают. Нужна: а) зарплата, б) хоть какой-то продакшн опыт. Никто не мешает получить его и через полгода перейти куда-то еще.
Аноним 2020/02/18 10:01:43  №1606319 195
>>1606315
Заорал. Мне про Java понравилось. Там технологий больше, чем на всей этой картинке. Хуевая роадмапа, короче.
Аноним 2020/02/18 10:01:43  №1606320 196
>>1606309
>Это смотря куда. У меня были собесы, где я проходил сразу, а были, где меня внезапно ебали о том, как внутри устроен ассоциативный массив.

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

>Для первой работы - это опыт. И еще деньги
Опыт - возможно. Деньги - не такие большие для айти.
Ответы: >>1606326
Аноним 2020/02/18 10:02:52  №1606324 197
>>1606315
>в адекватные сроки запилить проект с нуля
сеньором тебя делает возможность из туманных хотелок заказчика высрать решение его проблем, а на крупный продукт с нуля попасть это еще ой как повезти должно
Ответы: >>1606353
Аноним 2020/02/18 10:03:17  №1606326 198
>>1606320
Повторюсь и пойду по своим делам уже наконец. Вопрос в получении первой работы. Любой. Для человека, который не знает вообще нихуя. Я всё еще считаю, что выучить WP проще, чем фреймворк, т.к. последний тянет за собой другие знания, на WP занимаются добавлением плагинов в wp-plugins. И это точно проще.
Ответы: >>1606327
Аноним 2020/02/18 10:04:21  №1606327 199
>>1606326
А работа кассира еще проще
Ответы: >>1606328
Аноним 2020/02/18 10:04:39  №1606328 200
>>1606327
Демагогия. Хорошего дня.
Аноним 2020/02/18 10:05:11  №1606329 201
>>1606315
Я вот после этой картинки и задумался, почему бы здесь не запилить что-то аналогичное для обучения.. Но она довольно кривая, как мне кажется.
Аноним 2020/02/18 10:05:14  №1606330 202
>>1606291
>Представь ситуацию: человек работает грузчиком в пятерочке, его заебало и он готов куда угодно, но только не так. И тут я такой на белом коне. Что ему посоветовать учить?
О, такие стори есть у меня. раз в полгода-год условный знакомый из 5-очки выходит на связь, спрашивает как растет моя карьера, спрашивает что нужно что бы вкатиться и сколько это займет. Говорю ему что усердных занятий в пару месяцев хватит что бы начать ходить по собеседованиям. Скидываю ему учебник ОП-а этоого треда. И говорю что бы решил для начала самую первую страницу (это 10-20минут) и потом подходил с вопросами дальше. И это не какая-то абстрактная таблица с неведомой хуетой, вот тебе френдли учебник для нуба, сриусли. Просто не ленись и прочитай 1 страницу и открой ideone мать твою!
...
Через пол года знакомый снова выходит на связь, снова рассказывает как его все заебало в его пятерочке и что готов на что угодно, спрашивает как растет моя карьера, спрашивает что нужно что бы вкатиться и сколько это займет...

>Что ему посоветовать учить? Если я ему сразу дам фреймворки, он нихуя не поймет, обделается и забьет.
Учебник ОП-а для начала, сириусли, это все равно лишь примитивы и без этого никуда. Это норм старт в любой ситуакции, хоть он у тебя попадет на разработку в яндекс, хоть станет modx-sinior. Это не требует наката линукса и все задачи включая Вектор можно сделать на ideone и подобных ресурсах между делом хоть с телефона - было бы желание. (я сам так делал 5 лет назад, что уж).

Зачем ты ебешь себе и другим мозг таблицей, которая не имеет никакого отношения к реальности?
Ответы: >>1606339 >>1606348
Аноним 2020/02/18 10:10:20  №1606339 203
>>1606330
> Через пол года знакомый снова выходит на связь, снова рассказывает как его все заебало в его пятерочке и что готов на что угодно, спрашивает как растет моя карьера, спрашивает что нужно что бы вкатиться и сколько это займет...

Как. Блядь. Знакомо. И этот, возможно, из этих. Я его учу уже не первый раз, к слову. Прошло уже полгода с начала "занятий", но он еще не написал свой первый тестовый класс. Я составил эту таблицу, отчасти, уже в отчаянии. Мол, вот, держи, учи вот это, сам, без меня, я сделал, что мог.

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

> Зачем ты ебешь себе и другим мозг таблицей, которая не имеет никакого отношения к реальности?
Ну опять же, на мой взгляд имеет, еще и какой. Я не хотел бы столкнуться с мидлом, которые пишет на фреймворке и не знает, что такое mod_rewrite.
Ответы: >>1606366
Аноним 2020/02/18 10:13:49  №1606348 204
Ответы: >>1606356
Аноним 2020/02/18 10:17:20  №1606353 205
>>1606324
>сеньором тебя делает возможность из туманных хотелок заказчика высрать решение его проблем
По нормальному этим лид или пм занимаются. Именно разработчику такой скилл только как бонусный идет.
>>1606315
>Сеньером тебя делает способность в адекватные сроки запилить проект с нуля
Тоже нет. Хотя бы потому что адекватных сроков никто в сущности никогда не может заранее назвать. Кроме того условный эникей на вп может в еще более адекватные сроки вложиться. Будет ли он за счет этого хотя бы на уровне условного сеньора на симфе? Нет.
Помидор в первую очередь пишет качественный код в проект, который будет жить, процветать, легко улучшаться (другими сеньорами в идеале, но если мидлы и джунами изи справятся - ваще молодец) и этот код не будет обузой и кандидатом на выпиливание. Конечно так можно и целый проект с нуля запилить, но это будет частный случай. Все, кроме этого - бонусы, которые повышают ценность сеньора, но не являются основополагающими.
Ответы: >>1606360
Аноним 2020/02/18 10:18:55  №1606356 206
Ответы: >>1606357
Аноним 2020/02/18 10:19:26  №1606357 207
>>1606356
Ок, спасибо, прикольно. Никогда этой хуйни не видел. Скину ему, спасибо.
Аноним 2020/02/18 10:21:32  №1606360 208
>>1606353
>легко улучшаться (другими сеньорами в идеале
если твой код может быть понятен только сеньорам, то это хуевый код, идеальный код такой что даже тетя зина прочитав учебник до половины могла его прочитать
Ответы: >>1606382 >>1606393
Аноним 2020/02/18 10:27:05  №1606366 209
image.png (269, 941x863)
863x941
>>1606339
>Я не хотел бы столкнуться с мидлом, которые пишет на фреймворке и не знает, что такое mod_rewrite.

Ну столкнулся и че? У него мб не стояла за пару лет задача которая бы его в это окунула. Повезло пацану что он не пердолился с настройками htaccess и прочей хуетой которая как бы все равно лежит на уровень ниже пхп-программирования.

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

Зато вот возник прецедент и в этот момент он столкнулся - все, вопрос исчерпан и зошквар снят?
Ответы: >>1606368 >>1606376
Аноним 2020/02/18 10:28:37  №1606368 210
>>1606366
> И что - все, зошквар сразу в твоих глазах? Хз вот по мне это все такие маня-стереотипы и подходы, что бы пытаться других людей хоть как-то классифицировать для себя.

Ну, кстати, может ты и прав, я утка и не понимаю этого.
Ответы: >>1606376 >>1606382
Аноним 2020/02/18 10:33:33  №1606376 211
>>1606366
>>1606368
Хотя, в свое оправдание, хотя сейчас на той же Java можно ебашить через спринг бут, но при этом понимание как работают сервлеты и томкат на собесах все равно просят. Зависит от собеса.
Ответы: >>1606384
Аноним 2020/02/18 10:39:33  №1606382 212
154118960709593.jpg (97, 1242x1212)
1212x1242
>>1606360
Пилю ща некий конструктор апи, стараюсь сделать так, что когда меня уволят, то новое апи будет легко собрать даже джуну на которого это скинут. Все больше прохавываюсь в ООП, абстракциях и прочих тайпхинтах, загоняя потенциального дописывателя в такие рамки, что ему просто не в чем будет ошибиться.
Хуйнул не то не в том месте? Лови исключение с описанием того что ты сделал не так и где надо сделать. Доставляет этот процесс прям. Некая крупица творчества есть что ли в отличие от повседневных тасков даже.

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

>>1606253
>Если тебе скажут что можешь посидеть тут недельку поделать тестовое за бесплатно и позаебывать всех вопросами - соглашайся.
А если не скажут, то сам попросись обязательно. Откажут - ну ладно. Но если разрешат, то считай повезло. Главное не слейся, даже если нихуя не понимаешь, спрашивай и гугли. Затупил и нихуя не понятно - попроси совета. Даже если оче стыдно - главное не сливайся так что походил пару дней и исчез (с мыслью о том что недостоин и нужно еще подучить). Глядишь сойдешь за того самого мифического "с огнем в глазах" сотрудника, которого все мечтают к себе нанять на работу.
Аноним 2020/02/18 10:42:11  №1606384 213
>>1606376
>но при этом понимание как работают сервлеты и томкат на собесах все равно просят. Зависит от собеса.
Ребята, которые не понимают что нужно конкретно спросить для понимания, справится ли человек с конкретной текущей работой, спрашивают все что знают сами, что бы не нанять ни в коем случае спеца который будет сильно ниже навыком, ну или стандартную типовую хрень что бы вообще не париться? Ну что поделать. Мы люди - хули с нас взять.
Ответы: >>1606390
Аноним 2020/02/18 10:44:02  №1606390 214
>>1606384
Ну, не совсем, это собес в одну крупную галеру, название которой я не скажу по понятным соображениям. Спрашивают это всех. Спрашивают еще и за софт-скиллы тоже.
Аноним 2020/02/18 10:46:34  №1606393 215
>>1606360
Ты похоже давно не видел ждунов и мидлов. Немыслимо тупят на всем, что сложнее решения в лоб. Из 10 только 1 сможет вообще вникнуть в любую абстракцию сложнее метода в классе, остальные 9 будут заниматься копипастом и даже пытаться вникать не станут. Это на словах и в резюме все красивые с кейвордами в плащах стоят, а на работе оказывается, что код то писать сучары не умеют. Даже когда от а до я решение расписываешь псевдокодом - типа опытные мидлы не могут это в код перенести. Пару раз так и на выход. Вот сегодня какой-то дед травил историю, что почти все пришедшие на собес мидла ларки не знают, как использовать форич. И это уровень макак с популярно фрейма, в целом по больнице получается даже хуже. Вся эта досеньорская толпа вайтишников - обсуживающий мусор, которым скидывается неинтересная и несложная работа. Щас бы ориентироваться на эти хилые умишки, чтоб они не обиделись. Когда кто-то из них начинает качественно расти - его вытягивают и получается еще один помидор, однако это очень редко.
А еще я написал про способность улучшить, а не просто прочитать. Могут даже не читать поидее, для пользователей моего кода всегда есть апихи. Те же, кто захочет развивать должны иметь для этого знания, а не только рабочее место.
>даже тетя зина прочитав учебник до половины могла его прочитать
Так ты и есть тетя зина, которая хочется чтобы сеньоры писали понятный ей код, потому что вторую половину какой-то брошюрки, названной учебником, осилить не можешь. О каких вообще может быть речь? Никакой книжонки, которая сделает из тебя даже джуна по прочтению не существует.
Ответы: >>1606395
Аноним 2020/02/18 10:47:42  №1606394 216
Вижу тут все-таки идет обсуждение работы, хотя когда-то ОП ругал за такое и гнал в перезвоните-тред, где сидят какие-то депрессивные аноны. Поэтому срошу здесь, я уже как год работаю в проекте на yii2, в основном поддержка, недавно я остался единственным разрабом, и я уже не могу видеть этот код, переписывать постоянно падающие модули, тут еще в компании обработка эксель-файлов очень интенсивная, и вместо веб-итеграций, идет какая-то эксель-интеграция. У меня переживание, а вдруг я совсем закопался, работая один, иногда я не могу даже строчку кода выдавить. Анон, как быть?
Ответы: >>1606397 >>1606430
Аноним 2020/02/18 10:48:37  №1606395 217
>>1606393
обоссаной галерой запахло
Ответы: >>1606410
Аноним 2020/02/18 10:49:39  №1606397 218
>>1606394
перегорел, иди ной шоб нанимали или сам уебывай
Ответы: >>1606400
Аноним 2020/02/18 10:52:39  №1606400 219
>>1606397
Спасибо, анон. Думаю вместо или сделать и.
Аноним 2020/02/18 10:53:31  №1606402 220
>>1606262
>потом ты берешь CMS, т.к. она ничего кроме этого не требует,
Это пиздец какое сильное заблуждение. Любая CMS обладает собственной логикой (часто очень порочной), собственной структурой (часто неудачной) и собственными подходами к разработке (часто плохими). Для того, что бы успешно работать в рамках CMS нужно хорошо её знать.

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


Сам я считаю себя достаточно продвинутым специалистом в не к ночи будет помянут Битриксе. Только в последние 2 года удалось с него немножко слезть. Так вот, для того, что бы совладать с этим говном мне потребовалась херова туча знаний и размышлений. И половина постов о хейте Битры в этом треде - моя. В отличие от хабрапидоров, которые не уважают его в стиле стереотипов, я ненавижу его потому что я с ним работал. Я не могу сказать, что 3 года битры были временем, спущенным в унитаз, но я определенно мог бы их потратить более продуктивно.
Ответы: >>1606408 >>1606581
Аноним 2020/02/18 11:00:14  №1606407 221
>>1606315
устаревший пик.
джанга сейчас асинхронной стала
дальше не смотрел
Ответы: >>1606432
Аноним 2020/02/18 11:01:01  №1606408 222
>>1606402
> Дихотомия CMS для нубов, а фреймворк для гуру ложная насквозь. Любой подход требует знаний и опыта. Проблема с CMS в том, что они дают слишком узкоспециализированный опыт, не применимый нигде кроме работы в них же. И именно поэтому тут советуют их избегать.

На первыйз вгляд все верно. Но оказывается, что CMS все же проще и устроиться на работу с ней проще тоже, в отличие от.
Аноним 2020/02/18 11:02:21  №1606410 223
>>1606395
Читал что это норма. Когда на галере под видом мидлов работают джуны, а под видом синьоров - едва ли мидлы. Тут уже продажники пытаются наебать клиента, пытаясь впарить спеца классом ниже за больше бабок. Не нужно людей за это ненавидеть. Они то и рады что их взяли куда-то "синьорами-помидорами", лол.
Ответы: >>1606411 >>1606421
Аноним 2020/02/18 11:07:03  №1606411 224
>>1606410
>Читал что это норма. Когда на галере под видом мидлов работают джуны, а под видом синьоров - едва ли мидлы
да так и есть, на сеньорах маржа выше, отсюда и берутся 21 летние тимлиды-сеньоры.
хотя по факту то они откровенно не тянут.
Аноним 2020/02/18 11:25:23  №1606421 225
>>1606410
Это не имеет отношения к набору, дружище. Не важно, что говорят заказчику, набирать могут по совсем другим принципам и из сеньеров делать pm'ов, например. Короче, мимо.
Ответы: >>1606450
Аноним 2020/02/18 11:34:20  №1606430 226
>>1606394
Меняй галеру.
А то так выгоришь и выпадешь из индустрии.
Сидеть на поддержке легаси - болото
Ответы: >>1606512
Аноним 2020/02/18 11:35:13  №1606432 227
>>1606407
Да, взял устаревший, т.к. в новых какая-то обобщенная несуразица
Аноним 2020/02/18 11:56:54  №1606450 228
>>1606421
>из сеньеров делать pm'ов
разработка и менеджмент вещи разные, многие с возрастом просто туда уходят, ибо заебало писать код, нельзя делать пма из человека с херовыми софт скилами.
Ответы: >>1606451
Аноним 2020/02/18 11:58:17  №1606451 229
>>1606450
Само собой. Кто ж спорит. Ты как будто что-то новое сейчас говоришь.
Ответы: >>1606454
Аноним 2020/02/18 12:01:00  №1606454 230
>>1606451
ты так сказал как будто пм следующая ступень сеньора, как мидл джуна, это вообще другая ветка.
Аноним 2020/02/18 12:14:41  №1606472 231
Все так любят названия джун, мидл, синьер. Но ни одна хуила так и не может привести пример задач, которые решает тот же мидл или синьер. Такая градация если и есть, то только внутри компании
Ответы: >>1606483
Аноним 2020/02/18 12:21:23  №1606483 232
>>1606472
Все просто!
Помидор ходит по офису с кружкой кофе/стаканом смузи, флиртует с хрюшами, скидывает задачи на паровозов в ИТ компаниях(мидлов).

Мидл хуярит сутками по клавишам, метается между желанием сдохнуть и посрать.

Ждун просто как маленький щенок бегает по офису и гавкает "ООП хуйня, давайте писать в функциональщине" за что получает леща и идет на свое место до нового прихода гениальных идей в его голову, опционально пишет Хелло ворлд, забирает остатки пиццы с обеда домой.
Ответы: >>1606543
Аноним 2020/02/18 12:41:32  №1606512 233
>>1606430
Да, снова выхожу на тропу поиска себя.
Ответы: >>1606515
Аноним 2020/02/18 12:45:03  №1606515 234
>>1606512
Мимо тем же занимаюсь.
Уже заебало поддерживать продукт месиво из говна
Аноним 2020/02/18 13:02:54  №1606540 235
В свое время начинал задрачивать питон, потом бросил, но получил предсталение. Еще пощупал джанго, посмотрел пару уроков на ютабе. Вроде ничего сложного. Но еще тогда все советовали пыху изучать и яву. И еще в би кидали пасту про питон и кучу бабла. Так вот, снова хочу вкатиться, но для себя, хотя хз, мб и найду РАБоту, а мб буду кворки делать. Кароч. питон или пыха все таки. А в чем суть реквеста еще. На пыхе делают генераторы сайтов, те можно создавать кучу сайтов по шаблонам. Можно что-то делать подобное на питоне. Или лучше делать на пыхе все таки? Ну и попутно, да, что задрачивать лучше.
Ответы: >>1606545 >>1606692
Аноним 2020/02/18 13:03:19  №1606543 236
Аноним 2020/02/18 13:04:07  №1606545 237
Ответы: >>1606546
Аноним 2020/02/18 13:07:11  №1606546 238
>>1606545
Да, там синтаксис разный. Но суть то одна. Как по мне, пыха ближе к си, визуально. Питон позиционируют проще, хз. Ну нарпимер, на питоне можно написать генератор сайта, или что-то подобное. Ну типо доргена в народе.
Ответы: >>1606580
Аноним 2020/02/18 13:24:15  №1606574 239
Написали с одной конторы, условия устроили. Сегодня звонила эйчарка, побеседовали. Спросила про семейное положение, сказала, что они собирают команду и надо пройти психологические тесты, которые она вышлет на почту. Только после них пригласят или не пригласят на собес. Это норма?
Ответы: >>1606579 >>1606583 >>1606591
Аноним 2020/02/18 13:27:06  №1606579 240
Ответы: >>1606582
Аноним 2020/02/18 13:27:07  №1606580 241
>>1606546
для того чтобы сайтики на питоне писать тебе надо сначала его освоить, а затем уже фреймворке
пыха же была спроектирована таким образом чтобы сразу сайтики писать
тебе решать
Аноним 2020/02/18 13:28:52  №1606581 242
>>1606402
>Любая CMS обладает собственной логикой (часто очень порочной), собственной структурой (часто неудачной) и собственными подходами к разработке (часто плохими)
двачую адеквата. сам щас работаю со всякими cms и понимаю что если ты джун и многих вещей не знаешь - то эта хуйня привьет тебе неправильные практики. например логику в модели прописывать, как это в опенкарте сделано)))
Аноним 2020/02/18 13:29:20  №1606582 243
>>1606579
Там три теста на 120 вопросов. Первый прошел, он показал, что я забитый омеган. Мне как-то стыдно это эйчарке слать, она же результаты попросила.
Ответы: >>1606586
Аноним 2020/02/18 13:29:40  №1606583 244
>>1606574
> Спросила про семейное положение,
Потому что если семья и дети есть - ты не дропнешь работу, как свободный человек.
Если тебя спросят, кем ты видишь себя через 5 лет - помни, крайне важно видеть себя в той же самой конторе, просто на должности повыше.
Ответы: >>1606584
Аноним 2020/02/18 13:30:44  №1606584 245
>>1606583
>Если тебя спросят, кем ты видишь себя через 5 лет
А она спросила) Я ответил, что съебу в машоб из этого вашего веба, как только наберу достаточно знаний))
Ответы: >>1606589 >>1606593
Аноним 2020/02/18 13:32:24  №1606586 246
>>1606582
> Первый прошел, он показал, что я забитый омеган
Интересно насколько это распространено среди айтишников.
> Мне как-то стыдно это эйчарке слать, она же результаты попросила.
Ты ведь в итоге можешь получить работу - отправляй. Может она команду омеганов наберёт и будет комфортно работать с ними, в отличие от нормисов.
Ответы: >>1606601
Аноним 2020/02/18 13:33:14  №1606589 247
>>1606584
Ууу, всё. Не перезвонят. Я так с собеса вылетел.
Аноним 2020/02/18 13:35:03  №1606591 248
image.png (156, 604x604)
604x604
>>1606574
пиздец эти хрюши совсем поехали. а случайно аккаунты на все свои соц сеточки не попросили скинуть? ну чтобы проверить насколько ты адекват. заходят - а там в подписках раковники, на стене пасты про говно, и вот это на аватарке. многие ебнутые галеры так делают, только без твоего ведома
а если закроешь профиль - то сразу все пок пок закрытый человек нам такой нинужон
Ответы: >>1606595 >>1606597 >>1606691
Аноним 2020/02/18 13:35:45  №1606593 249
>>1606584
дата сатанист ты думаешь там ии, хуй там ночевал будешь улучшать таргетированную рекламу.
Ответы: >>1606596
Аноним 2020/02/18 13:36:10  №1606595 250
>>1606591
Она сама вроде адекватной женщиной показалась, а тесты - приказ начальства, якобы.
Аноним 2020/02/18 13:36:38  №1606596 251
>>1606593
за 300кк/нс чо бы и не поулучшать.
Ответы: >>1606603
Аноним 2020/02/18 13:36:51  №1606597 252
>>1606591
А уж если профиль открытый, но пустой...
Аноним 2020/02/18 13:38:27  №1606601 253
Ответы: >>1606614 >>1606630
Аноним 2020/02/18 13:38:53  №1606603 254
>>1606596
за 300 хуев я б сказал, еще найди давай.
Ответы: >>1606606
Аноним 2020/02/18 13:40:59  №1606606 255
>>1606603
У меня знакомый работает в стартапе. Они там привлекали сатаниста за 200к в месяц на три месяца работы, и то этот хуй еще и совмещал (на основной работе у него примерно такой же ценник был).
Ответы: >>1606610
Аноним 2020/02/18 13:43:29  №1606610 256
>>1606606
я к тому шо каждый пиздонист, а их дохера, хочет в дата сатанисты.
Ответы: >>1606618
Аноним 2020/02/18 13:45:23  №1606614 257
Ответы: >>1606621 >>1606630
Аноним 2020/02/18 13:45:50  №1606618 258
>>1606610
похапешников гораздо больше и чо
Ответы: >>1606624
Аноним 2020/02/18 13:46:06  №1606621 259
>>1606614
опросники это не фронтенд они не меняется так быстро
Ответы: >>1606625 >>1606691
Аноним 2020/02/18 13:47:02  №1606624 260
>>1606618
в очо епт, натягивать вротпресс и машобить это дохера разные вещи
Аноним 2020/02/18 13:47:27  №1606625 261
>>1606621
меня сам факт их наличия смущает, и что это приказ начальства. То есть есть некоторые сомнения в адекватности этих людей.
Ответы: >>1606691
Аноним 2020/02/18 13:49:08  №1606630 262
>>1606601
Проходил подобный, только на 300+ вопросов, у психотерапевта. Получился депрессивным шизоидом, склонным к депрессии дополнительно.
>>1606614
> за 2012 год
Mmpi с прошлого века используется и остаётся актуальным. Люди же те же.
Ответы: >>1606665
Аноним 2020/02/18 14:20:24  №1606665 263
>>1606630
>Люди же те же.
нееееет погромисты сверхлюди у них на одну хромосому больше
Аноним 2020/02/18 14:52:04  №1606691 264
>>1606625
я тебе говорил с самого начала
>>1606621
дристанул чет

аноны, сейчас в шаблоне на проекте внезапно наткнулся на такой синтаксис:
<% _.each (model.addresses, function(address) { %>
<%= address.city %>
что это за хуйня и как с ней вообще работать то ? на твиг обработчик это непохоже

>>1606591 - кун
Аноним 2020/02/18 14:53:27  №1606692 265
>>1606540
>Кароч. питон или пыха все таки. А в чем суть реквеста еще. На пыхе делают генераторы сайтов, те можно создавать кучу сайтов по шаблонам. Можно что-то делать подобное на питоне. Или лучше делать на пыхе все таки? Ну и попутно, да, что задрачивать лучше.
Чем тебе Django не подходит?
Аноним 2020/02/18 18:57:17  №1607030 266
Аноним 2020/02/18 19:07:11  №1607043 267
>>1606252
Получается пхп программист должен включать в себя фронтендера? Вроде есть вакансии, где чисто фронтенд требуют и пхп не нужно.
Ответы: >>1607058 >>1607222
Аноним 2020/02/18 19:27:51  №1607058 268
Аноним 2020/02/18 19:53:20  №1607093 269
Аноны, с пхп на питон/руби/джаву/go не тяжело же перекатиться? Ибо судя по "вступлениям в язык", которые я на хабре читаю - все одно и то же, только синтаксис языка разный. Или я хуйню какую то читаю, или что?
Ответы: >>1607231 >>1607252
Аноним 2020/02/18 21:23:55  №1607221 270
>>1604256
>вы немного знаете пхп и отличаете бэк от фронта? Го к нам на 20к стажёром

Очевидно же что наебочка и тебе вообще не заплатят, а под "немного знаете" подразумеваются вполне себе знания вкатывальщика
Ответы: >>1607931
Аноним 2020/02/18 21:24:15  №1607222 271
>>1607043
Фулстеку больше платят. И на пхп мало вакансий, где нужен только пхп.
Ответы: >>1607238
Аноним 2020/02/18 21:30:59  №1607229 272
Шалом, такой вопрос, часто в вакансих вижу язык Go(да и на собесе последнем про него спросили), кто знает зачем пыхеру нужен GO?
Ответы: >>1607489
Аноним 2020/02/18 21:35:46  №1607231 273
>>1607093
писал на жабе больше года, за три дня вкатился в пыху(тип мог накидать сайт и тд), нормально-читабельный код писать начал через 3-4 недели

Все языки похожи(тип паттерны, алгоритмы, ООП, многопоточку ты не изменишь), просто на чем то проще писать под какую то задачу
Ответы: >>1607246 >>1607251
Аноним 2020/02/18 21:44:58  №1607238 274
>>1607222
Чем тот же пхп отличается от питона или руби? Или в этой нише как таковой больше востребованы фуллстеки?
Ответы: >>1607244
Аноним 2020/02/18 21:51:55  №1607244 275
>>1607238
Да фулстек - это всегда плюс. Но пхп-то изначально был заменой перла, чтобы делать сайтики быстрее. Ключевое слово - сайтики. Там html/css по дефолту знать нужно было. А в наше время это react/vue. Ну и один хер, дешевле нанять макаку, которая и то и то может за +40% к зарплате, чем двух чуваков на x2 денег.
Аноним 2020/02/18 21:52:11  №1607246 276
>>1607231
>Все языки похожи
если похожа парадигма и синтаксис, дай тебе лисп или эрланг и ты утонешь в нем
Ответы: >>1607252
Аноним 2020/02/18 21:57:11  №1607251 277
>>1607231
Нахуй ты из жабы вкатился в пыху, ебанутый? Я пытаюсь наоборот выкатиться нахуй из пыхи, она просто днище.
Ответы: >>1607256 >>1607257
Аноним 2020/02/18 21:57:30  №1607252 278
>>1607093
>>1607246
Да, скорее всего так. Не могу рассуждать в этом направление(с одной парадигмы на другую), возможно проблема синтаксиса встанет не так остро(тип за недельку разгребешь), прост все языки на которых я писал были функциональный, процедурные или ооп
Аноним 2020/02/18 22:00:29  №1607256 279
>>1607251
Лоооол, сидишь-пердишь в универе на парах, ждешь чтобы заказчик кость бросил(я помнб тогда вообще за любые деньги работал, тип кому нужна жаба на фрилансе), все друзья писали на пыхе, тип заказов жопой жуй, ща вот второй год сижу на пыхе, с работой вообще проблем нет
Ответы: >>1607258
Аноним 2020/02/18 22:03:03  №1607257 280
>>1607251
кст, мой путь был скорее похож на деградацию
C + asm вставки для AVR8
Потом с++(qt)
Java => android
Пыхы + js
Ответы: >>1607259 >>1607262
Аноним 2020/02/18 22:05:00  №1607258 281
>>1607256
> сидишь-пердишь в универе на парах
А, ну тогда понятно, больше вопросов нет.
Аноним 2020/02/18 22:05:47  №1607259 282
>>1607257
Ставлю свой носок, что ты ничего из этого глубоко не выучил, ни на одной серьезной должности с этим не работал, поэтому и жалеть не о чем.
Ответы: >>1607263
Аноним 2020/02/18 22:09:44  №1607262 283
>>1607257
Примерно так же было. Только андроид после пхп на годик поработал, а до пыхи на шарпе. Плюс питон и го недавно добавились.
Ответы: >>1607264
Аноним 2020/02/18 22:09:58  №1607263 284
>>1607259
с асм и микроконтроллерами просто поигрался
с++ чисто чтобы комп и контроллер связать
жаба для работы(пару заказов), но язык я старался понять как можно глубже, а не просто кодить
пыха - здесь дольше всего

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

Ответы: >>1607265
Аноним 2020/02/18 22:10:27  №1607264 285
>>1607262
Я там пару постов назад про го спрашивал, так зачем он нужен пыхеру?
Ответы: >>1607268
Аноним 2020/02/18 22:14:20  №1607265 286
>>1607263
Ну нормич, в принципе. У меня, на самом деле такой же путь примерно, от C++ в школе до PHP сейчас плачет

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

Особенный разрыв у меня вызывают паттерны в php. Вот нахуя они там, если пхп выполнился и умер? Я на нем давным давно пишу и до сих пор не понимаю, нахуя их знать? СИНГЛТОН в пыхе, блядь, ну серьезно? Какая разница? Если бы это было c/java/c# приложение, которое висит в памяти, то там и правда нужен синглтон. А тут синглтон получается из любого класса просто потому, что пхп завершается после выполнения задачи.

Короче, ладно, чото меня понесло на ночь глядя, пойду спать.
Ответы: >>1607266
Аноним 2020/02/18 22:18:35  №1607266 287
>>1607265
НУ смари, чисто что сейчас смог вспомнить

Всегда использую фабрику в API, всегда юзаю команду для js(если в целом о веб), и вот не знаю можно ли назвать реализацию одного статик метода синголтоном
Ответы: >>1607270 >>1607273 >>1607277
Аноним 2020/02/18 22:19:36  №1607268 288
>>1607264
Не видел, искать не стану.
Не обязательно пыхеру, вообще бекендеру пригодится. Микросервисами на нем можно с легкостью закрывать узкие места, требовательные к производительности. Если микросервис простой планируется, то можно даже не выбирать особо, а сразу писать на го сейчас, не прогадаешь.
Заметная вещь для пхп - roadrunner. Возможная замена php-fpm, хотя на данном этапе многим пхпшникам работать с ним тяжело и непривычно(но многие пытаются), как дело с ним дальше пойдет посмотрим.
Я и роадраннер юзаю и микросервисы на го попиливаю.
Далее лирика.
Некоторые компании сейчас решаются полностью переходить с пхп на го. Правда как по мне это преждевременный шаг, но мир мое мнение не изменит. Перекат опытного пхпшника на го происходит прямо с места, язык очень прост, поэтому это вероятный вариант, куда тебя жизнь и мода заведет в дальнейшем по беку. Даже сейчас в го каждый третий наверное перекатился с пхп.
Ответы: >>1607269
Аноним 2020/02/18 22:21:10  №1607269 289
>>1607268
Оке, спасибо, опять двач выручает
Аноним 2020/02/18 22:21:31  №1607270 290
>>1607266
> Всегда использую фабрику в API
> всегда юзаю команду для js(если в целом о веб)
Чего?

> и вот не знаю можно ли назвать реализацию одного статик метода синголтоном
При чем тут вообще один статик метод и синглтон? Что за шизу ты написал?)))000
Ответы: >>1607274
Аноним 2020/02/18 22:26:02  №1607273 291
>>1607266
> команду
А, блядь, я наркоман, я сначала подумал, что ты про какую-то консольную команду (npm start, блядь, какой-нибудь). Но при чем тут АПИ и фабрика - так и осталось загадкой.
Ответы: >>1607276
Аноним 2020/02/18 22:26:14  №1607274 292
>>1607270
Последнее это попытка пошутить, сори(
-------------
Про команду, это тип когда ты навешиваешь он-действие и потом разбираешь с чего оно прошло(самый банальный пример)

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

-------------

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

Фабричный метод — это порождающий паттерн проектирования, который определяет общий интерфейс для создания объектов в суперклассе, позволяя подклассам изменять тип создаваемых объектов.
Ответы: >>1607278
Аноним 2020/02/18 22:27:11  №1607276 293
>>1607273
ахахха, в такой голос с npm start
Аноним 2020/02/18 22:27:21  №1607277 294
>>1607266
он тебе рассказывает что любая операция в пыхе идет как отдельный тред и падает а ты ему про апи
Ответы: >>1607279 >>1607280 >>1607285
Аноним 2020/02/18 22:28:27  №1607278 295
>>1607274
А, я понял о чем ты, окей, сорри. Уже пол второго, в глаза ебусь. А нахуй тебе создавать тот или иной класс в зависимости от того, что пришло из апи?
Ответы: >>1607283 >>1607289
Аноним 2020/02/18 22:29:38  №1607279 296
>>1607277
мб я что то не оч понимаю, то просьба пояснить, но когда у тебя идешь лапша из вызовов классов, то патерны нужны для больше читаемости, я так предпологал
Ответы: >>1607282 >>1607285 >>1607286
Аноним 2020/02/18 22:31:16  №1607280 297
>>1607277
Этот прав. Хотя хуй с ним уже, под утро я уже сам теряю нить своего же разговора.
Аноним 2020/02/18 22:32:03  №1607282 298
>>1607279
Ну что-то вроде того, мои стенания были скорее о том, нахуя некоторые паттерны именно в пхп. Они там (для меня) выглядят как кобыле пятая нога.
Аноним 2020/02/18 22:33:01  №1607283 299
>>1607278
ну тип я помню делал такие конструкции,пришел запрос в гет параметре у тебя название метода(тип спарсить что то или еще что), ты вызвал класс который нужно(исходя из гет запроса, например через switch вызвал нужный класс), а потом с ним идут операции типовые
Ответы: >>1607287
Аноним 2020/02/18 22:33:42  №1607285 300
>>1607279
>>1607277
Я вот еще одну штуку не понимаю, например, прямо наболело. На кой хуй нужен принцип Барбары Лисков, если в наше время уже есть юнит-тестирование (и вообще тестирование)? Ну нахуя он, ну нахуя, блядь?.. Короче, ладно.
Ответы: >>1607294
Аноним 2020/02/18 22:34:17  №1607286 301
>>1607279
это особенность рантайма пыхи, там нет тредов выполнения как в жабе, скрипт выполнился и умер, потом встал новый и умер и дальше, потому нет и многопотока толком.
Аноним 2020/02/18 22:34:53  №1607287 302
>>1607283
Это какая-то конкретная задача, видимо, может там так и удобнее, не знаю, короче. У меня ощущение, что мы не про фабрику, а про банальный полиморфизм.
Аноним 2020/02/18 22:36:38  №1607289 303
>>1607278

свитч (getParm )

case getParam:
$a = new Что-то
case getParam:
$a = new Что-то
case getParam:
$a = new Что-то

$a->getName();
$a->getAge();

echo все говно


Если очень приземлено или мб я даун и назвал это фабрикой
Ответы: >>1607290 >>1607295 >>1607298
Аноним 2020/02/18 22:37:14  №1607290 304
>>1607289
НУ понятно классы разные
Аноним 2020/02/18 22:43:48  №1607294 305
>>1607285
Хах, надо чаще на двач заходить, сразу пропадает ощущение что ты что-то знаешь в проге
Ответы: >>1607296 >>1607304
Аноним 2020/02/18 22:44:30  №1607295 306
>>1607289
Эээ, нет, это не фабрика, ты просто свичем создаешь. Мог бы и ифами, мог бы и иначе, это не делает такой код фабрикой.
Ответы: >>1607298 >>1607299
Аноним 2020/02/18 22:45:39  №1607296 307
>>1607294
Я скоро свалю из треда и опять будете разбираться какой фреймворк лучше и как запустить PHP, не переживай, хахаха
Ответы: >>1607300
Аноним 2020/02/18 22:47:50  №1607298 308
>>1607289
Дополню >>1607295
Вот тебе пример фабрики на пыхе, найди пять отличий, как говорится )

<?php
interface Product{
public function GetName();
}

class ConcreteProductA implements Product{
public function GetName() { return "ProductA"; }
}

class ConcreteProductB implements Product{
public function GetName() { return "ProductB"; }
}

interface Creator{
public function FactoryMethod();
}

class ConcreteCreatorA implements Creator{
public function FactoryMethod() { return new ConcreteProductA(); }
}

class ConcreteCreatorB implements Creator{
public function FactoryMethod() { return new ConcreteProductB(); }
}

// An array of creators
$creators = array( new ConcreteCreatorA(), new ConcreteCreatorB() );
// Iterate over creators and create products
foreach ($creators as $creator) {
$products[] = $creator->FactoryMethod()->getName();
}

header("content-type:text/plain");
echo var_export($products);
Ответы: >>1607301
Аноним 2020/02/18 22:48:02  №1607299 309
>>1607295
да, ты прав, ща погугли фабрику, че то я пургу нес
Ответы: >>1607303
Аноним 2020/02/18 22:48:32  №1607300 310
Ответы: >>1607302
Аноним 2020/02/18 22:48:41  №1607301 311
>>1607298
Ну и за методы с заглавной буквы и не отвечающие требованию "это должен быть глагол", надо убивать нахуй, конечно. Как этот код пролез в Вики, блядь, вообще...
Аноним 2020/02/18 22:49:45  №1607302 312
>>1607300
Ваще похуй, как по мне, всё говно.
Аноним 2020/02/18 22:50:31  №1607303 313
>>1607299
Ты еще почитай, например, когда лучше применять билдер, а не конструктор. Ну, в общем, тебя ждет большой удивительный мир, и это хорошо )
Ответы: >>1607305
Аноним 2020/02/18 22:51:45  №1607304 314
>>1607294
есть такое easy to learn hard to master сам столкнулся с ним когда начинал жабу, базовый язык простой как три копейки, но из-за огромного стека фреймворков багаж необходимого пухнет как баул на рынке в 90х, так и с обратным принципом когда начал жевать кложуру, ебать как это так код в виде аст дерева, как писать код и не писать мегатонну хуеты к нему, почему обход одной функцией, это дробило мне мозг а потом пришло просветление.
Ответы: >>1607308 >>1607309
Аноним 2020/02/18 22:51:59  №1607305 315
>>1607303
хах, с другой стороны, мы на пыхе, кому здесь нужны наши патеры, ахах?
Ответы: >>1607307
Аноним 2020/02/18 22:54:33  №1607307 316
>>1607305
Здесь - никому, а на собесах нужны :) Да и вообще, чем больше знаешь, тем лучше ты можешь писать код, независимо от языка. Я когда про паттерны лихо заявил а-ля "нинужна!", я только синглтон имел ввиду. Я бы еще несколько разных туда же в "нинужна!" приписал (обсервер, например, в пыхе он смотрится СТРАННОВАТО), но в целом паттерны - это хорошо.
Аноним 2020/02/18 22:55:37  №1607308 317
>>1607304
а вот честно, я так что задумываюсь о последних проектах, чистоте кода, патернах, чаще всего я вижу это тяп ляп и в продакшн(тип во многих компаниях), один чувак сказал, что пока ты тут будешь правильную архитектуру мутить, конкурент уже приложение состряпает и поэтому все пишут говнокод, так что у меня двоякое чувство про изчение этого всего, может только если для души...
Ответы: >>1607310 >>1607312 >>1607314
Аноним 2020/02/18 22:56:17  №1607309 318
>>1607304
Да там и саму джавку можно учить годами, похоже. Я хотел пройти тесты OCA/OCP (оракловские сертификаты на знание джавы). От функциональщины у меня мозг просто сломался и вытек. Я ее дрочил-дрочил, все эти би-консьюмеры, сапплаеры, стримы и прочее дерьмо. А когда решил пройти демо-тест (не настоящий даже!), то я чуть не заплакал - я просто _не могу_ понять, что будет в результате выполнения запутанного функционального кода, просто, сука, НЕ МОГУ.
Ответы: >>1607311 >>1607312
Аноним 2020/02/18 22:57:39  №1607310 319
>>1607308
Угу. А когда твой конкурент через год сделает продукт лучше и работающий правильнее, то ты будешь локти кусать, т.к. ты свой говно-код уже поправить не сможешь никак, не начав писать с нуля. Почитай про проекты, которые от этого загнулись. ВНЕЗАПНО, например, официальный клиент ICQ. И у меня есть серьезные подозрения, что многие проекты мелко-мягких испытывают эти проблемы прямо сейчас, например.
Ответы: >>1607311
Аноним 2020/02/18 22:59:44  №1607311 320
>>1607309
в жабе куча теор. говна, я когда к собесу готовился, я думал захлебнусь от всего этого,
>>1607310
мнение не мое, а чувака на которого работал, я так понял он про то, что главное пораньше запуститься, а тип дальше хоть потоп
Ответы: >>1607313
Аноним 2020/02/18 23:01:18  №1607312 321
>>1607308
дело даже не чистоте, дело в костылях, многословности, я накладываю эти слои абстракции, а потом я увидел что есть что то где нет этих фабрик которые делают фабрики, писать приятно.
>>1607309
это даже не функциональщина, это огрызки
многопоток в мутабельном языке это боль, изоморфное приложение это как сесть на раскаленный лом.
Ответы: >>1607316 >>1607318
Аноним 2020/02/18 23:03:43  №1607313 322
>>1607311
>в жабе куча теор. говна
устаревшего теор говна, обратная совместимость же
Аноним 2020/02/18 23:04:28  №1607314 323
>>1607308
У меня есть просто охуенная история по этому поводу, кстати. Прямо вот из первых рук. Напишу и пойду спать все-таки.

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

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

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

Мне сказали, что это долго-дорого, а значит нинужно. И вместо этого выкатили еще кучу всяких новых фич в разработку.

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

Мы еще 2 месяца ебались и пытались все исправить (тесты нам писать так и не дали), после чего я просто дропнул эту контору.

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

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

Наверняка, я как тимлид тоже накосячил много, но я хотя бы понимал, к чему все идет. Но позиция руководства а-ля "это же всего лишь ПХП, вы ПРОСТО пишите код и ПРОСТО добавляйте еще тонну функционала со сроками позавчера" меня убила, никогда такого не видел.
Аноним 2020/02/18 23:07:52  №1607316 324
>>1607312
> это даже не функциональщина, это огрызки
Ну я кроме джавы и пыхи ничего толком не знаю, на си - только баловался. Функциональщину в джаву подвезли по принципу "чтоб было как у всех", насколько я помню.

> изоморфное приложение
Я сейчас загуглил, пишут, что это приложение, когда сервер может рендерить фронт. Чо? Пояснишь?
Ответы: >>1607317 >>1607319
Аноним 2020/02/18 23:10:02  №1607317 325
>>1607316
>Запомнился один момент, когда мы под какого-то клиента срочно-срочно перепиливали кусок до глубокой ночи. На утро состояние проекта было такое: старое сломалось, новое работает через жопу, что делать, непонятно, сроки - вчера.

ХАХХАХА, такая жиза
Аноним 2020/02/18 23:10:34  №1607318 326
>>1607312
> мутабельном языке
И вот это поясни, пожалуйста. Я понимаю, что такое мутабельный-иммутабельный объект, например, в концепциях того же String/StringBuilder в джавке, но что такое ЯЗЫК?
Ответы: >>1607322
Аноним 2020/02/18 23:11:18  №1607319 327
>>1607316
>Чо? Пояснишь?
просто пример есть некий тяжелый сервис, скриптов много и ты видишь какую нибудь крутилку при загрузке, изоморфное при первом запуске делает это на сервере и отсылает браузеру, который в это время фоново поднимает скрипты и нет лага при запуске, когда страница открылась а скрипты нет.
Ответы: >>1607321
Аноним 2020/02/18 23:14:08  №1607321 328
>>1607319
То есть мы говорим про обычный Server Side Rendering? А почему это называется таким умным словом "изоморфное"?
Ответы: >>1607322 >>1607324 >>1607324
Аноним 2020/02/18 23:17:52  №1607322 329
bvb.JPG (16, 361x219)
219x361
>>1607321
потому что дальше оно работает на клиенте как обычное приложение и на сервере и на клиенте.
>>1607318
я создал список 1 2 3 добавил к нему 4, список не изменился, а функция конж вернула новый список, не меняя старый.
Ответы: >>1607332
Аноним 2020/02/18 23:19:20  №1607324 330
>>1607321
>>1607321
Выдержка с хабра

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

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

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

И в конце отдать JS bundle. В этот момент у нас будет собран на клиентской части и поднят фронтенд-клиент, который в свою очередь дальнейшую коммуникацию может осуществлять с бэкенд-сервером предыдущим, допустим, через RESTful API.
Ответы: >>1607331
Аноним 2020/02/18 23:19:34  №1607325 331
>>1606303
Что такое круд? НЕ в первый раз слышу
Ответы: >>1607326
Аноним 2020/02/18 23:21:30  №1607326 332
Аноним 2020/02/18 23:27:26  №1607331 333
>>1607324
Я может совсем отупел, но

> котором каждая взятая строка может исполнятся как на сервере, так и на клиенте.

Что это за хуйня. Если буквально, то весь код должен быть написан на JS и бекенд на ноде, блядь? Или я отупел все таки.
Ответы: >>1607333 >>1607334
Аноним 2020/02/18 23:29:01  №1607332 334
>>1607322
> я создал список 1 2 3 добавил к нему 4, список не изменился, а функция конж вернула новый список, не меняя старый.

Ты хочешь сказать, что есть языки, где все объекты иммутабельные или что?.. Я ничего кроме пыхи и джавки не знаю, там ты можешь кодить как хочешь в этом отношении.
Ответы: >>1607340
Аноним 2020/02/18 23:29:51  №1607333 335
>>1607331
тут с картинками https://habr.com/ru/company/oleg-bunin/blog/319038/

Слухайте, мб кто шарит, а какие есть еще подходы для HighLoad?

Ща просто проект взяли, обещают до 10к запросов в день, тип как сделать так чтобы сервак не лег и при этом сбалансировать все(время/производительность), мб статью на хабре или еще что, а то не знаю куда сунуться

Есть пара мыслей про очереди или Round robin DNS(тима зеленая так что накидывайте даже что то очевидное, мб мы этого не знаем)
Ответы: >>1607335 >>1607338
Аноним 2020/02/18 23:30:20  №1607334 336
>>1607331
>JS и бекенд на ноде
нуб трапа
Ответы: >>1607337
Аноним 2020/02/18 23:31:01  №1607335 337
>>1607333
> 10к запросов в день
С каких пор это хайлоад?
Ответы: >>1607339
Аноним 2020/02/18 23:31:47  №1607337 338
>>1607334
Ну я, может быть, по дефолту беру в качестве клиента - браузер. Мы же в пхп треде. В чем подвох, объясняй давай, я спать хочу )))000
Аноним 2020/02/18 23:31:50  №1607338 339
>>1607333
>10к запросов в день.
Это очень мало. Даже в минуту это не много. Разве что у вас на каждый запрос выполняется какой-то тяжелейший пиздец.
Ответы: >>1607342
Аноним 2020/02/18 23:32:03  №1607339 340
>>1607335
простите за название, для серваков за 160р это хайлоад
Ответы: >>1607343
Аноним 2020/02/18 23:32:40  №1607340 341
>>1607332
да все объекты иммутабельны, они не меняются, если х = 5 то оно и будет 5, а если ты ниже напишешь что х = 6 то оно просто затрёт предыдущее а не поменяет.
Ответы: >>1607341
Аноним 2020/02/18 23:34:16  №1607341 342
>>1607340
Забавно. Надо посмотреть это будет. А нахуй они так сделали, им память не жалко или что?
Ответы: >>1607346
Аноним 2020/02/18 23:34:48  №1607342 343
>>1607338
по запросу идет поиск по карте, довольно тяжелый, около секунды ответа

то есть, забить, и написать обычный код особо не парясь(сказать купите сервера по мощнее)?
Аноним 2020/02/18 23:35:06  №1607343 344
>>1607339
> для серваков за 160р это хайлоад
В смысле, блядь? Хайлоад - это хайлоад. Говно-сервер - это говно-сервер.
Ответы: >>1607344
Аноним 2020/02/18 23:37:23  №1607344 345
>>1607343
не особо шарю, думал что highLoad это просто высокая нагрузка на сервер

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

Ответы: >>1607345
Аноним 2020/02/18 23:38:53  №1607345 346
>>1607344
Нууу... Слушай, ну да, хайлоад - это высокая нагрузка. Только обычно это что-то в духе "100 миллионов обращений в сутки", а не 10к. И речь там идет о том обычно, когда просто добавляя железо (нормальные сервера, а не говно-виртуалки) ты не можешь решить проблему какого-нибудь "узкого места" в своем говнокоде.
Ответы: >>1607349 >>1607352
Аноним 2020/02/18 23:39:22  №1607346 347
>>1607341
у тебе данные еще ни разу не перемалывало просто
Ответы: >>1607348 >>1607351
Аноним 2020/02/18 23:39:58  №1607348 348
>>1607346
Я не понимаю что ты пишешь, постоянно приходится переспрашивать.
Аноним 2020/02/18 23:40:30  №1607349 349
yPSkXrhjstk.jpg (31, 400x400)
400x400
Ответы: >>1607350 >>1607351
Аноним 2020/02/18 23:41:40  №1607350 350
zrwxqL7.jpg (6, 236x236)
236x236
>>1607349
Да, блядь, даже сказать нечего. Что такое нахуй "перемалывало" данные? В мясорубке или что? Ты наркоман, дружище, или пьян или чего?
Ответы: >>1607351 >>1607356
Аноним 2020/02/18 23:42:53  №1607351 351
Аноним 2020/02/18 23:43:11  №1607352 352
>>1607345
слухай, а можешь просто терминов накидать из области распределения нагрузок(или статью или просто наводочку какую-то), ну тип у меня есть 5 дедиков, как между ними распределить нагрузку например?
Ответы: >>1607353 >>1607354
Аноним 2020/02/18 23:44:53  №1607353 353
>>1607352
Извини, я в этом не разбираюсь. Самый сильный проект, над которым довелось работать, это новостной сайт с 2 миллионами посещений в сутки. И там он спокойно работал на одном (но производительном) физическом сервере вместе с базой данных даже, просто всякие кеширования в nginx были настроены правильно и всё. Мне даже рассказать нечего особо про этот проект, сложных запросов даже не было (select where, update where, пара джоинов, нечего оптимизировать, короче).
Ответы: >>1607357
Аноним 2020/02/18 23:46:12  №1607354 354
>>1607352
Алсо, сейчас работаю над проектом, где как раз около 10к посещений в сутки, он вообще на виртуалке крутится и не пердит, всё окей, хотя накручено там будь здоров (и должно бы уже тужиться, но нет). Так что я хуй знает. Если что найдешь - кидай в тредю.
Аноним 2020/02/18 23:50:52  №1607356 355
>>1607350
пишешь ты дурачек распаралливание и тебе нужно колдовать с приоритетом, потоки нужно синхронизировать, данные надо копировать, какие волатилы какие нет, в мутабельности если наебешься они начнут давать кашу и ты будет копать как джамшут ища где ты объебался.
в иммутабельности у тебя вообще нет эти проблем, ни одной блядь, ты просто настраиваешь ссылочные типы, для больших систем или атомы если много не надо и все блядь, и не парится что какой то поток изменит переменную не так или не вовремя и все остальные потоки получат хуйню.
Ответы: >>1607360
Аноним 2020/02/18 23:51:48  №1607357 356
>>1607353
Я стараюсь что то читать, смотерть по этой теме, но реально не работал пока, вот что слышал

Round robin DNS - тип разные выдавать ip адреса
Совать в очередь и оттуда забирать как только обработал и так контролить потоки

Еще про БД - про ноды и репликации

Просто тема интересная и я уверен пригодится, я так то зеленый, тупо третий год на фрилансе сижу какие то конченные проекты выполняю
Ответы: >>1607361
Аноним 2020/02/18 23:53:29  №1607360 357
>>1607356
А, ну примерно понял, ок.
Аноним 2020/02/18 23:54:25  №1607361 358
>>1607357
Мы может о разном...
> Round robin DNS - тип разные выдавать ip адреса
А при чем тут хайлоад? Это ж обычный cdn, если я правильно понял.
> Совать в очередь и оттуда забирать как только обработал и так контролить потоки
И какая разница, если у тебя эта очередь под нагрузкой забьется и последний вставший будет ждать 10 лет?
А так да, тема хорошая, изучай.
Ответы: >>1607362
Аноним 2020/02/18 23:58:21  №1607362 359
>>1607361
хых, материала и направления бы кто подкинул
>А так да, тема хорошая, изучай.

Round robin DNS - я так понял, у тебя 3 дедика, а с dns сервера ты просто выдаешь их последовательно, тем самым распределяю нагрузку

CDN просто статику выплевывает по примеру какой нить jquery библиотеки
Ответы: >>1607364 >>1607365
Аноним 2020/02/19 00:00:08  №1607364 360
>>1607362
> Round robin DNS - я так понял, у тебя 3 дедика, а с dns сервера ты просто выдаешь их последовательно, тем самым распределяю нагрузку

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

В общем, чтобы ты совсем обиженный не ушел, загуглил за тебя. Попробуй поискать лекции с этих конф: https://www.highload.ru/
Ответы: >>1607365 >>1607367
Аноним 2020/02/19 00:02:53  №1607365 361
>>1607364
>>1607362
> а с dns сервера
Разница между нами, кстати, в том, что я читал о другой схеме: днс всегда указывает на один сервер, твой. Но уже он следит за нагрузкой и вызывает самый менее нагруженный дедик, где уже реально находится бекенд. Что-то вроде прокси-который-следит-за-нагрузкой. Как организовать - в душе не ебу, только читал.
Ответы: >>1607368
Аноним 2020/02/19 00:03:29  №1607367 362
>>1607364
хах, так это я оттуда это и услышал, там чуваки могут 2 часа тереть что сфинкс лучше эластика, или лекция по снижению нагрузки где чувак очевидные вещи час затирает(по типу не пиши 2 вложенных цикла без необходимости), так что это тоже не панацея от незнания в области хайлоад
Ответы: >>1607369
Аноним 2020/02/19 00:05:25  №1607368 363
>>1607365
а ты не больше времени потеряешь на доставку пакетов, вики вот что говорит:
В простейшем случае Round robin DNS работает, отвечая на запросы не только одним IP-адресом, а списком из нескольких адресов серверов, предоставляющих идентичный сервис. Порядок, в котором возвращаются IP-адреса из списка, основан на алгоритме round-robin. С каждым ответом последовательность ip-адресов меняется. Как правило, простые клиенты пытаются устанавливать соединения с первым адресом из списка, таким образом разным клиентам будут выданы адреса разных серверов, что распределит общую нагрузку между серверами.
Аноним 2020/02/19 00:06:09  №1607369 364
>>1607367
Луль. Я вообще лекции не люблю, одна вода обычно и нихуя непонятно и конкретики нет. Я попробовал книги на амазоне глянуть, нихуя нет тоже. В общем, я тоже по этой же причине в свое время забил на хайлоад - слово громкое, а конкретики как-то и не найти.
Аноним 2020/02/19 00:12:32  №1607372 365
>>1605860
Прекрати так думоть, сейчас же!
Ответы: >>1607374
Аноним 2020/02/19 00:18:12  №1607374 366
>>1605860
>>1606151
>>1607372
Синдром самозванца. Я уже лет 10 работаю и до сих пор все время жду пинка под зад, но, что характерно, в итоге ухожу обычно сам.
Ответы: >>1609330
Аноним 2020/02/19 00:18:29  №1607375 367
Ответы: >>1607376
Аноним 2020/02/19 00:19:39  №1607376 368
>>1607375
чо сделать-то надо?
Ответы: >>1607378
Аноним 2020/02/19 00:21:52  №1607378 369
>>1607376
Исправить текст и предложения (Сделать первые буквы в предложений заглавными) и расставить пробелы после знаков препинания.
Ответы: >>1607379 >>1607382
Аноним 2020/02/19 00:22:32  №1607379 370
>>1607378
лол, а мы рандомным кодом делимся ?
Ответы: >>1607380
Аноним 2020/02/19 00:23:24  №1607380 371
>>1607379
Не, просто скидываю ОПу чтобы проверил.
Аноним 2020/02/19 00:25:36  №1607382 372
>>1607378
Какой-то дроч ради дроча. Скорее всего ты все это может сделать одной-двумя регулярками.
Ответы: >>1607383
Аноним 2020/02/19 00:27:08  №1607383 373
>>1607382
Я не опытный в регулярках. Потом переделаю когда наберусь ума.
Ответы: >>1607384
Аноним 2020/02/19 00:28:17  №1607384 374
>>1607383
Назови принципы ООП, не глядя в гугл.
Ответы: >>1607386
Аноним 2020/02/19 00:32:52  №1607385 375
А где вообще есть нормальная инфа по регуляркам, а то я читаю документацию на сайтах с онлайн редактором, а на сайтах какая то слишком она базовая, тип чтобы комплексно, я пытался пройти курс теории рег. выражений из теории алгоритмов, но как то не пошло, че то дедок сложно все объяснял?
Аноним 2020/02/19 00:37:37  №1607386 376
>>1607384
Что за допрос внезапный? Ну насколько я знаю ООП это исплользование объектов, в которых заключена информация для использования на протяжений всей программы. То есть мы берем объект, в нем вся нужная нам информация которой можно манипулировать.
ООП не знаю. Вот собираюсь изучить.
Ответы: >>1607387 >>1607389
Аноним 2020/02/19 00:39:21  №1607387 377
>>1607386
как можно сделать что то сложнее CLI приложки без ооп?
Ответы: >>1607390
Аноним 2020/02/19 00:40:54  №1607389 378
>>1607386
А, окей. Я уж хотел тебя подловить, но ты вообще дно. Вопрос был наводящий, который должен тебя заставить задуматься, что лучше - дрочить рандомные задачи, которые никому нахуй не нужны или изучать то, что спросят на собеседовании. Удачи.
Ответы: >>1607391
Аноним 2020/02/19 00:42:01  №1607390 379
Ответы: >>1607392
Аноним 2020/02/19 00:46:56  №1607391 380
>>1607389
Тут спорить нет смысла. Решать задачи обязательно, плевать какие. Они помогают закрепить материал и развивают мышление в этом направлений. Без разницы какие задачи. А если спросят на собеседований о какой то теме я её уже буду знать на автомате.
Мне не нужно получить крутую работу, мне нравится то что я делаю.
Ответы: >>1607394
Аноним 2020/02/19 00:47:02  №1607392 381
>>1607390
ухххх, подловил, ну если придраться, то это тоже CLI.

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


мемас на эту тему, с которого я долго орал https://github.com/torvalds/linux/pull/335

Ответы: >>1607394
Аноним 2020/02/19 00:51:54  №1607394 382
>>1607391
Да хуйня это все. Просто берешь и пишешь проект. Можешь получать тот же кайф, только все навыки будут "боевые", а не абстрактные, непонятно кому нужные.

>>1607392
Ну, ладно, я просто доебался, ты прав, без ООП уже даже не плюнуть никуда, в объект попадешь.
Да, я тоже долго орал с long long :D
Ответы: >>1607400
Аноним 2020/02/19 01:12:21  №1607400 383
>>1607394
Ты меня никак не переубедишь. Понимаешь, я настолько конченный, что решаю это всё в Виме, на который я устанавливал плагины и вручную устанавливал зависимости.
Ответы: >>1607402
Аноним 2020/02/19 01:12:48  №1607401 384
Да что говорить, я даже Вим скомпилировал.
Аноним 2020/02/19 01:13:33  №1607402 385
>>1607400
Я занимался этой хуйней, когда мне было 20. Сейчас я использую то, что действительно удобно и не занимаюсь хуйней. Короче, ты не про работу, ты так, дроч для себя, пока родители кормят, я понимаю. Тогда уж лучше учи нормальный язык, а не пхп.
Ответы: >>1607403 >>1607404
Аноним 2020/02/19 01:16:34  №1607403 386
>>1607402
Ну я тебя понял, нужно как то стремиться монетизировать изучая то что используется на рынке, так?
Ответы: >>1607405
Аноним 2020/02/19 01:20:32  №1607404 387
>>1607402
Ты какой то ебаный ноунейм который несет хуйню. Не ебу чего ты добился, но явно не результатов с таким мышлением. Ты наверно один из вкатывальщиков? Что хуево да?
Ответы: >>1607405
Аноним 2020/02/19 01:21:58  №1607405 388
>>1607404
Нет. А вот ты несешь хуйню, это уж точно, вим, хуим. Ебанутый, не?

>>1607403
Если хочешь вкатиться - ясен хуй, надо использовать то, что на рынке. Если не хочешь, то похуй, хоть дрочи вприсядку.
Ответы: >>1607406 >>1607407
Аноним 2020/02/19 01:24:57  №1607406 389
>>1607405
Ну понятно всё с тобой, обыкновенный додик. Заебись вкатился? Как в конторе? Ебут нормально? Как полёт? Сколько таким говнокодерам как ты башляют? Ммм.
Ответы: >>1607408
Аноним 2020/02/19 01:25:59  №1607407 390
>>1607405
Хотя сомневаюсь что ты вообще можешь хоть что-то кодить. Залетыш.
Ответы: >>1607408
Аноним 2020/02/19 01:27:08  №1607408 391
>>1607406
Да все хорошо, спасибо, что спросил. А по поводу вима, был у нас один фронтендер в команде, который работал через вим и считал себя очень крутым, когда на ретро обсуждали вопрос, что неплохо бы иметь единый кодстайл и решили попробовать сделать это через плагины к IDE, всем было смешно и забавно, ему особенно.

>>1607407
Да конечно не могу, расслабься уже, шизик ебаный.
Ответы: >>1607409
Аноним 2020/02/19 01:30:53  №1607409 392
Ответы: >>1607410
Аноним 2020/02/19 01:31:52  №1607410 393
>>1607409
Орнул. Найс аргументы :) Удачи тебе, шизик, в жизни будет не легко, когда вырастешь.
Ответы: >>1607413
Аноним 2020/02/19 01:55:59  №1607413 394
>>1607410
Господи какой ты дегенерат, пиздец просто.
Ответы: >>1607415
Аноним 2020/02/19 01:56:18  №1607414 395
Есть же такие ебанутые.
Аноним 2020/02/19 01:58:26  №1607415 396
>>1607413
> Господи какой ты дегенерат, пиздец просто.
Господи какой ты дегенерат, пиздец просто.
Ответы: >>1607419
Аноним 2020/02/19 02:11:28  №1607419 397
>>1607415
Ты даже не понял где ты обосрался.
Ответы: >>1607422
Аноним 2020/02/19 02:18:08  №1607422 398
>>1607419
> Ты даже не понял где ты обосрался.
Ты даже не понял где ты обосрался.
Аноним 2020/02/19 02:47:09  №1607428 399
Ответы: >>1607430 >>1607433 >>1607522
Аноним 2020/02/19 02:51:46  №1607430 400
>>1607428
Почитай про области видимости
Аноним 2020/02/19 03:00:59  №1607433 401
>>1607428
Переменная $paymentTotal объявлена в цикле for и видно её только там. При выходе из цикла переменная пропадает. Тебе нужно объявить её в теле цикла.
В функций у тебя так же идёт возврат двух значений, после того как выполняется выражение $paymentTotal, следующее за ним выражение return $month пропадает, потому-что за ним успевает первое, которое завершает функцию.
Тебе нужно объявить $paymentTotal в теле функций, либо $paymentTotal = null, либо $paymentTotal = 0.
Почитай как тебе уже сказал анон про области видимости и очередность исполнения. А так же немного про функций.

https://www.php.net/manual/ru/language.variables.scope.php
https://www.php.net/manual/ru/functions.returning-values.php
Ответы: >>1607522
Аноним 2020/02/19 04:12:52  №1607443 402
>>1605671
лол, 15 задач в месяц можно абсолютно бесплатно скидывать на джунов )
Аноним 2020/02/19 04:55:01  №1607448 403
Аргументом в функцию-обработчик передается только один обьект - $exception. Однако затем происходит обращение к методу на обьекте $e: error_log($e->__toString()). Анон, подскажи, как подобное возможно. Откуда в функции взялся обьект $e?
Ответы: >>1607546
Аноним 2020/02/19 05:11:34  №1607452 404
Блин, как вы заливаете базу данных на сервак?

А то у меня база данных из 5 таблиц, сохранил в файл экспорта SQL - всего 50к строк.
База примитивна - там даже связей нет.

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

Вот сейчас на хостинге при открытии любой базы или таблицы (не только залитой а вообще в том числе старых) пишет ошибки про
Undefined index: HMAC_secret
вот примерно так:
https://pastebin.com/CKbgp94v

Я не понимаю что не так и как теперь исправлять (это на рабочем хостинге - неужели тоже похерило)
Ответы: >>1607564 >>1607593 >>1607611
Аноним 2020/02/19 06:18:58  №1607489 405
>>1607229
часть функционала с пыхи переводят зачастую сейчас на го. связано это с тем что дает возможности которых нет в пхп, а все заново собирать с нуля это не варик
Аноним 2020/02/19 07:15:28  №1607522 406
>>1607433
>объявить её в теле цикла.
В теле функций*
>>1607428
Аноним 2020/02/19 07:17:51  №1607524 407
Как можно сайтики тестить?
Вот у меня есть ламповая тудушечкавнутри она с mysql работает, и я хочу проверить как оно вообще будет работать при 1000/10000 запросах, сервак xampp на шиндоус.
Пока я только додумался на жс тестик написать чтоб оно само формочки заполняло и кнопочки нажимало.
Ответы: >>1607629 >>1607640 >>1607699
Аноним 2020/02/19 07:53:31  №1607546 408
>>1607448

Это ошибка в коде. Неправильно написано название переменной.
Аноним 2020/02/19 08:22:16  №1607564 409
>>1607452
Скорее всего проблемы с конфигурацией БД у тебя на локальной версии и в проде, надо внимательно проверить версии, настройки, доступы. И еще лучше работать через консольные команды: mysql -u username -p database_name < file.sql
Аноним 2020/02/19 08:40:09  №1607593 410
>>1607452

Похоже на баг в PhpMyAdmin, попробуй другую версию или другую программу вроде adminer. Или заливать дамп из консоли (если умеешь):

cat /tmp/dump.sql | mysql -hhost -uuser -p database_name

Если дамп сжат gzip:

cat /tmp/dump.sql.gz | gunzip | mysql -hhost -uuser -p database_name
Аноним 2020/02/19 09:06:55  №1607611 411
>>1607452
mysqldump -uuser -ppassword db_name > file.sql
mysql -uuser -ppassword db_name < file.sql
Чего ты мучаешься, блядь.
Аноним 2020/02/19 09:07:04  №1607613 412
Привет пхп, делал задачку про заглавные буквы и сейчас я не понимаю, как троеточие в регулярку засунуть
https://ideone.com/SY7llL вот мое решение, у которого возникли проблемы
Аноним 2020/02/19 09:18:14  №1607629 413
Аноним 2020/02/19 09:25:19  №1607640 414
Аноним 2020/02/19 09:56:54  №1607679 415
Пиздец, что за шиз ночью тред засрал?
Аноним 2020/02/19 10:11:59  №1607699 416
>>1607524

apache benchmark (просто долбит запросы в одну страницу, совсем простая штука)
siege (делает запросы по списку)
Yandex Tank (навороченная штука с админкой): https://yandex.ru/dev/tank/

Должен предупредить, что логично тестировать нагрузку не на windows, а на линукс (обычно сервера на нем работают). Логично тестировать не примитивное приложение, а что-то посложнее и ближе к реальности.

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

Но в общем-то, стоит попробовать, хотя бы чтобы научиться.
Аноним 2020/02/19 10:28:49  №1607723 417
поругайте за код и объясните как лучше написать :c

<?php

\terror_reporting(-1);
\theader('content-type: text/plain; charset=utf-8');

\t$text = 'А роза упала на лапу Азора';
\t$result = '';

\t$text = mb_strtolower($text);
\t$text = str_replace(' ', '', $text);
\t$lenght = round((mb_strlen($text)/2), 0, PHP_ROUND_HALF_EVEN);

\tfor($i = 1; $i <= $lenght; $i++) {
\t\tif(mb_substr($text, $i-1, 1) != mb_substr($text, -$i, 1)) {
\t\t\techo 'это не палиндром... :c';
\t\t\tbreak;
\t\t} else if($i == 10) {
\t\t\techo 'это палиндром!!1';
\t\t}
\t}

?>

ну или вот https://ideone.com/xrUXeG
Ответы: >>1608695 >>1613639
Аноним 2020/02/19 11:17:38  №1607816 418
Реквестирую помощи.

Короче.
Есть несколько файлов:
1. логин/регистрация
2. список сообщений
3. Страница с формой добавления сообщения.

Все работает, как и должно на стороне php. Но есть один нюанс (как в анекдоте).

Хтмл-формы стакаются, блять, при переходе от файла к файлу.

Залогинился -> форма с логином пропала, показались посты через инклюд ("посты пхп"). Ок.

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

Как сделать?
Ответы: >>1607827
Аноним 2020/02/19 11:23:32  №1607827 419
>>1607816
Самое просто не инклудить форму добавления поста, а с нее редиректить
Ответы: >>1608265
Аноним 2020/02/19 11:23:57  №1607829 420
Screenshot120.png (32, 990x482)
482x990
Нихуя себе блять.
Ковариантность и контрвариантность 600 лет ждал блядь. Сколько я граблей об это говно сломал.

Типизированные члены тоже пушка. Правда не понятно почему callable нельзя.

Расширения на сиське тоже охуенно.

Предзагрузка тоже пушка.

Блядь, да пых становится прям охуенным языком
Ответы: >>1607853 >>1607867 >>1608123
Аноним 2020/02/19 11:41:11  №1607853 421
>>1607829
Нет бы знак доллара убрать при объявлении переменной.
> стрелочные функции
Как в жс? Делали бы сразу синтаксис в точности как у жс, было б удобнее.
Ответы: >>1618156
Аноним 2020/02/19 11:47:52  №1607867 422
Аноним 2020/02/19 12:00:08  №1607895 423
Phalcon норм?
Ответы: >>1609287
Аноним 2020/02/19 12:35:29  №1607931 424
>>1607221
> Очевидно же что наебочка и тебе вообще не заплатят
Почему не заплатят? Особенно если
> под "немного знаете" подразумеваются вполне себе знания вкатывальщика
Если что, под стажёром я не имел ввиду работу без оформления, а минимум зп 15к - нельзя разве себе выбрать вкатыша и обучить его за эти деньги? Особенно учитывая, что откликнутся многие, а выберут того, кто уже более менее разбирается.
Аноним 2020/02/19 12:53:53  №1607947 425
А ооп для пхп будет таким же, как и для жс? Это же подход к программированию в отрыве от конкретных языков?
Ответы: >>1607955 >>1608080
Аноним 2020/02/19 13:01:09  №1607955 426
>>1607947
В js вроде бы другое ооп чем в пхп.
Ответы: >>1608079
Аноним 2020/02/19 15:02:44  №1608079 427
>>1607955
Там оно хранит ссылку на родителя, прототипное называется
Аноним 2020/02/19 15:04:51  №1608080 428
>>1607947
Есть объект, в нем ссылка на радотилея, цепочка может быть длиной .

И когда ты какой-нибудь туСтринг вызваешь он проходится как по списку, до того как не найдёт
Аноним 2020/02/19 16:26:10  №1608123 429


>>1607829
>Ковариантность и контрвариантность 600 лет ждал блядь.
Двачую блять
Аноним 2020/02/19 17:22:35  №1608175 430
>>1599201 (OP)
Yii2-аноны есть итт? Аноны, есть ли либы/софт для того чтобы все таблицы+связи из дампа постгрис базы превратить в миграции?
Ответы: >>1608217
Аноним 2020/02/19 17:43:28  №1608217 431
Ответы: >>1608245
Аноним 2020/02/19 17:51:11  №1608245 432
>>1608217
Это находил, но пока что не юзал, последний комит пару лет назад и их количество вызывает опасение, может есть какой-то общепринятый инструмент для таких задач? В любом случае - спасибо за ответ, анон.
Аноним 2020/02/19 17:54:43  №1608265 433
>>1607827
Спасибо. Помогло отчасти, но завтра узнаю, в чем были причины.

Так же спасибо анонам, которые рассказали про сессию и печенье.

Аноним 2020/02/20 00:11:19  №1608695 434
Аноним 2020/02/20 06:40:54  №1608796 435
Аноны, помогите. Юзаю Eloquent , без ларавел
Не понимаю как сделать транзакцию.
Без ларавел фасад DB чет не работает. Как сделать транзакцию мож кто знает?
Ответы: >>1608875
Аноним 2020/02/20 08:22:23  №1608875 436
>>1608796
П.С.
Мне нужна банальная вещь - одним запросом добавить строки сразу в несоколько таблиц. Что бы или все таблы обновились, или откат.
Используя PDO я использовал транзакции.
В Eloquent транзакции по документации доступны из фасада DB ларавел. Я же использую Eloquent отдельно в slim.
И я забуксовал.
Ответы: >>1609176
Аноним 2020/02/20 12:08:19  №1609093 437
анчоусы, прошу помощи. накидайте советы по тому как мне лучше всего дебажить модель и видеть что в нее прилетает то ? контроллер или представление могу, а вот модели чому то не выводятся если юзаю там print_r();exit();
Ответы: >>1609096 >>1609177 >>1609290
Аноним 2020/02/20 12:12:41  №1609096 438
>>1609093
Если ты пишешь print_r();exit(); и у тебя не белый экран - значит ты не в том месте пишешь это.

Сначала напиши в начале файла, сразу после <?php что бы узнать инклудится он вообще или нет
Далее погружаешься вниз, пишешь в конструкторе, что бы узнать создается ли вообще данный класс, потом в предполагаемом методе и так далее. Вплоть до нужного тебе if() или строчки.
Ответы: >>1609207
Аноним 2020/02/20 12:19:48  №1609099 439
Как написать скрипт. Надо чтобы - есть файл, в нем содержимое. Надо сделать например 1к таких же файлов, только нужно нужное название файла и желательно чтобы контент был как-то рандомизирован. И все это надо на серваке.
Ответы: >>1609153
Аноним 2020/02/20 12:58:17  №1609153 440
>>1609099
Сделай через system
Например for на нужное кол во
system(cat /dev/urand >$ i.txt)
Аноним 2020/02/20 13:07:36  №1609176 441
Ответы: >>1609277
Аноним 2020/02/20 13:08:31  №1609177 442
Ответы: >>1609207
Аноним 2020/02/20 13:41:37  №1609207 443
>>1609096
ну вот я обычно и занимаюсь таким реверс инженирингом. но чет нихуя не выходит пока что сейчас лел. надо просто переписать api, и он плотно зашит в стандартные системные файлы. и вот хуй знает как его искать и где че вызывать.

>>1609177
расскажи поподробней. не очень понял тебя
Ответы: >>1609225
Аноним 2020/02/20 14:09:21  №1609225 444
Аноним 2020/02/20 15:41:45  №1609277 445
>>1609176
Запости решение, мб кому будет интересно.
Аноним 2020/02/20 15:53:20  №1609287 446
>>1607895
Предлагали ваку в ТОРе с фалконом?
Аноним 2020/02/20 15:58:01  №1609290 447
Ответы: >>1609614
Аноним 2020/02/20 16:33:31  №1609320 448
Пацаны, а есть ли в ПХП аналог innerHTML из JS, чтоб обновлять инфу, не перезагружая страницу? Пусть и с задаваемой периодичностью (было ы весьма удобно).
Ответы: >>1609474
Аноним 2020/02/20 16:41:40  №1609330 449
Ответы: >>1610902
Аноним 2020/02/20 16:50:00  №1609352 450
для-вайпа.jpg (195, 1042x827)
827x1042
Ответы: >>1609821
Аноним 2020/02/20 18:09:47  №1609474 451
>>1609320
>обновлять инфу, не перезагружая страницу
Нет. Только если по Ajax подтягивать обновлённую инфу.
Аноним 2020/02/20 19:36:50  №1609614 452
>>1609290
Пхп это серверный блять язык. Что за хуйню ты несёшь? А к базе данных из браузера через джаваскрипт подключаться не хочешь?
Ответы: >>1609644 >>1609949
Аноним 2020/02/20 19:55:36  №1609644 453
>>1609614
> А к базе данных из браузера через джаваскрипт подключаться не хочешь?
Хипстеры уже додумались до такого в своём Firebase.

мимо
Ответы: >>1609820
Аноним 2020/02/20 22:37:02  №1609784 454
Нужно ли знание линукса пхп разработчику? Стоит ли вкатиться, или нет?
Ответы: >>1609860
Аноним 2020/02/20 22:57:05  №1609804 455
Jj
Аноним 2020/02/20 23:46:51  №1609820 456
>>1609644
это просто сервер в облаке, к базе данных подключается сервер по запросу
Аноним 2020/02/20 23:46:52  №1609821 457
>>1609352
Иди нахуй отсюда, даун.
Аноним 2020/02/21 03:34:25  №1609860 458
>>1609784
Работать с командной строкой надо уметь, так как порой возникает необходимость в конфигурировании веб-серверов, большая часть которых работает на ОС Linux. Если у тебя стоит винда, можешь 2 ОС поставить себе Kubuntu, и учиться писать код пхп в ней.
Ответы: >>1609864
Аноним 2020/02/21 03:59:17  №1609864 459
>>1609860
>Kubuntu
Иди нахуй с такими советами.
Аноним 2020/02/21 04:43:33  №1609875 460
>>1599201 (OP)
Есть API, которое выдает товарные фиды в виде XML и JSON. Необходимо брать эти данные, нормализовывать, и потом ложить в базу. Как лучше такое выполнять, что использовать? Ни разу с таким не сталкивался. Еще проблема в том, что данных очень много. Нужно как то фильтровать. Или пилить админку, чтобы можно было выбирать какую часть фида загружать. Как вообще в PHP работать с XML и JSON?
Ответы: >>1610069 >>1610243 >>1610390
Аноним 2020/02/21 07:23:36  №1609949 461
>>1609614
Дебажишь прямо на продакшене?
Аноним 2020/02/21 09:12:50  №1610044 462
Аноним 2020/02/21 09:29:11  №1610069 463
>>1609875
Json делается так:
1. Через курл или файл гет контент грузишь контент.
2. Затем jsondecode и работаешь как с объектом
Ответы: >>1610389
Аноним 2020/02/21 11:50:39  №1610243 464
>>1609875
такая же проблема, анон. только вот мне наоборот со сторого api который работает через xml как раз надо перевести на новый, который как раз на json. легче было бы с нуля написать, но нет же, заказчику нада чтобы старый перелопачивали
в итоге сижу целую неделю ниче не написал и толком не выяснил как эта залупа работает. хуй знает че делать и как ловить. все раскидано по файлам и что то идет с пхп файлов, что то с js, что то блять вообще с <script type=text/html>
я отчаился, анонсы
Ответы: >>1610389
Аноним 2020/02/21 12:32:51  №1610306 465
Пацаны, добрый вечер в хату. Подскажите, пожалуйста, можно ли не через композер, а архивом (как, например, вордпресс) установить Laravel на хостинг?
Ответы: >>1610392
Аноним 2020/02/21 13:59:53  №1610389 466
>>1610069
Пасиб

>>1610243
Собери в кучу все и выполняй нормализацию. Мне как бы тоже самое предстоит делать. Только я пока с xml и json вообще не работал.
Аноним 2020/02/21 14:01:27  №1610390 467
Ответы: >>1610393
Аноним 2020/02/21 14:02:42  №1610392 468
>>1610306
Почему нет? Только это неудобно.
Ответы: >>1610427
Аноним 2020/02/21 14:03:52  №1610393 469
>>1610390
Не знаю. Пока только вникаю что к чему. Спасибо, гляну.
Аноним 2020/02/21 14:34:01  №1610427 470
>>1610392
А как это сделать? Скачать архив с фреймворком и просто залить на хостинг через файловый менеджер я правильно понимаю?
Ответы: >>1610434
Аноним 2020/02/21 14:39:27  №1610434 471
>>1610427
Обычный виртуальный хостинг с доступом через панель?
Ответы: >>1610609
Аноним 2020/02/21 16:06:10  №1610524 472
Знает кто аналоги acmp.ru для PHP? Ну чтобы задачки решать.
Ответы: >>1610532 >>1610558 >>1612509
Аноним 2020/02/21 16:18:30  №1610532 473
>>1610524
Не язык определяет программиста. Попробуй написать обычные задачи
Ответы: >>1610550
Аноним 2020/02/21 16:35:47  №1610550 474
>>1610532
??? Acmp удобен тем, что там есть проверяющая система, есть рейтинг. Просто в стол писать не интересно.
Ответы: >>1610760
Аноним 2020/02/21 16:42:33  №1610558 475
Ответы: >>1610675
Аноним 2020/02/21 17:26:37  №1610609 476
>>1610434
Да free-хостинг от бегет
Ответы: >>1610677
Аноним 2020/02/21 18:16:47  №1610675 477
>>1610558
>codewars?
Не нравится. Интерфейс неудобный, русского языка нет, задачи не совсем олимпиадные.
Ответы: >>1610912
Аноним 2020/02/21 18:19:16  №1610677 478
Аноним 2020/02/21 19:25:30  №1610760 479
>>1610550
Скидывай нам свой код и ссылку на задачу. Я буду писать почему ты говноед
Ответы: >>1611109
Аноним 2020/02/21 21:02:42  №1610902 480
>>1609330
Всегда что-то идет не так. То фирма теряет бабки и предлагает урезать ЗП, то меняется начальство на неадекватов, то ищется работа получше, а то меня заебывает работать в офисе.
Аноним 2020/02/21 21:13:30  №1610912 481
>>1610675
>русского языка нет
Сударь, вы зажрались

>задачи не совсем олимпиадные
Причем тут php? Олимпиадники на питоне пишут
Аноним 2020/02/21 21:32:08  №1610930 482
Давайте пилить свои прохладные по собесам - кто, на чем запоролся, кого, в какой позе имели.
Меня вот эйчарка обоссала за то, что я до 30 лет ни разу официально не работал, а потом тимлид засмеял, когда я не смог быстро на бумажке написать обход дерева в ширину с выводом вершин по уровням. Уже потом, идя домой обоссаный и осмеянный, понял, что задача для 3-го класса.
Ответы: >>1611041 >>1612509
Аноним 2020/02/21 23:48:24  №1611041 483
>>1610930
да нахуй ты себя так приложил
Аноним 2020/02/21 23:52:05  №1611042 484
Посоны, вот в JavaScript есть такая охуенная вещь облегчающая написание скриптов как JQuery, а какая на этом же уровне альтернатива идёт для написая кода в PHP? Чтобы так же удобно и покайфу обращаться к формам, DB и вообще к всяким готовым ништякам тупа так же в 1 строчку решая большинство задач, посмотрел для начала Laravel и чёто меня блевать потянуло от того как там всё уёбищно и измучено по сравнению с ванильным кодом, ещё и помимо виртуального сервера нужно кучу дерьма и консоль ставить

В общем какая лучшая паралель jquery есть на php? Для написая простых задач и скриптов, а не ебли с сложными сайтами с нуля, чисто чтобы баловаться приятными ништяками для себя и надрачивать как ты удобно сделал считая себя сверхразумом являясь дауном учитывая что такие задачи у остальных не занимают даже 1% напряга мозга
Аноним 2020/02/22 04:09:41  №1611109 485
>>1610760
Смотри сам не обосрись, умник.
Аноним 2020/02/22 04:11:17  №1611110 486
>>1611042
>консоль ставить
Какую консоль?
Ответы: >>1611348
Аноним 2020/02/22 04:13:31  №1611111 487
>>1611042
>Посоны, вот в JavaScript есть такая охуенная вещь облегчающая написание скриптов как JQuery, а какая на этом же уровне альтернатива идёт для написая кода в PHP?
JQuery создавался для того, что один код работал в разных браузерах. В то время код для разных браузеров отличался.
Ответы: >>1611348
Аноним 2020/02/22 07:24:55  №1611216 488
>>1611042
>Чтобы так же удобно и покайфу обращаться к формам, DB и вообще к всяким готовым ништякам тупа так же в 1 строчку решая большинство задач
Но ведь это и есть Laravel, чем не понравился тебе?
Ответы: >>1611348
Аноним 2020/02/22 09:36:51  №1611313 489
Идиотский вопрос, но вот "установка" ларавеля это по сути скачивание архива с исходным кодом блог аппа и подтягивание зависимостей, верно? А когда я собственно говоря уже сто тыщ изменений внес в сорцы, то тогда "установка" моего проекта это получается скачивание моего измененного разросшегося кода блог аппа без папки вендор, и последующая установка зависимостей композером?
Ответы: >>1611317
Аноним 2020/02/22 09:39:05  №1611315 490
>>1611042
Если хочешь писать как на ванильной пыхе, то попробуй CodeIgniter, очень тупой и прямолинейный фреймворк
Ответы: >>1611348
Аноним 2020/02/22 09:43:51  №1611317 491
>>1611313
В общем да. Плюс база, сервисы (если используешь, типа редис, еластик) и подобное.
Аноним 2020/02/22 10:47:10  №1611348 492
>>1611110
Ну терминал

>>1611111
Но ведь как он охуенно сокращал код, и синтаксис понятный и приятный

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

Я правильно понимаю, сейчас всё пришло к тому что вся работа возложена на браузер пользователя? Сервер отдаёт только каркас страницы и джейсон с данными, а уже браузер тонной библиотек парсит его и вставляет в по сути пустую страницу, типа сняли нагрузку с серверов, отдав им только работу с бд, и то этйо бд управляет ещё тонны говна с костылями которые они называют вмс и хвалят за скорость написания, по сути просто накладывая на чистые js и php тонны уродского синтаксиса их фреймворков чтобы быстрее высрать говно, спихнуть это под видом технологий лошку клиенту и съебаться в туман насрав что это куча костылей и говна которые неоптимизированы от слова совсем, пример сейчас это ютуб и твич, где у тебя грузится просто фон и уже куча скриптов на скрипте начинают верстать страничку и всё это дерьмо логает если у тебя не компьютер хотя бы старее 2017 года
Ответы: >>1611353 >>1611363 >>1611416
Аноним 2020/02/22 10:49:34  №1611353 493
>>1611348
>конструкторами
контроллерами
fix.
Аноним 2020/02/22 10:55:55  №1611363 494
>>1611348
>сняли нагрузку с серверов
Нет, дело в том, что браузерный клиент давно перестал быть единственным. Чистые апишки пилятся для взаимодействия с любым клиентом. При этом сср нужен самим фронтам, хоть и костыльно выглядит на первый взгляд (и на второй тоже). Причины, правда, не то чтобы критичные были, но уж пусть так. Кроме того это дело все кешируется насколько может. Нагрузка на бек важна конечно, но сср там малую роль играет.

Из всего тобой сказанного - тебе нужен вротпресс.
Ответы: >>1611374
Аноним 2020/02/22 11:03:31  №1611374 495
>>1611363
>вротпресс
Это понятно, но хочется для себя для удовольствия пописать всякие ништяки не находясь на вордпрессе, да даже просто на локальном сервере например парсер написать, на чистом php не то, слишком выгвиглазно, а увидев все эти структуры и взаимодействия этих костылей на том же ларавеле просто блевать хочется а не писать, по этому и захотелось найти что-то типа jquery на js, но только для php, чтобы так же логично, красиво, просто и удобно
Ответы: >>1611387
Аноним 2020/02/22 11:12:22  №1611387 496
>>1611374
Тебе зря так кажется.
Если хочешь либу для парсинга/работы с DOM на пхп, то SimpleDOM может подойти. Древний он правда.
https://github.com/ziadoz/awesome-php#scraping
В этой секции еще можешь глянуть.
>так же логично, красиво, просто и удобно
Жиквери не является образцом логики, простоты и удобства. Недаром сейчас предпочитают при прочих равных писать просто на ваниле. Сейчас жиквери - рудимент.
>логично
Логики там не нужно. Это же библиотека, она ни на что такое не претендует. В давнее время упрощалась работа, но сейчас это уже лишнее. ты даже не представляешь насколько.
>красиво
Красоты тоже нет никакой. В самом лучшем случае становится чуть меньше кода, чем на ваниле, но он красивым от этого не становится.
>простоты
Вот это мб. Совсем не умея в ванилу вкатывались ведь предки нынешних фронтов в живквери. Значит простая.
Ответы: >>1611452 >>1611452
Аноним 2020/02/22 11:38:01  №1611416 497
>>1611348
Тогда slim посмотри. Из коробки тупо роутер, все нужное тебе подключаешь сам.
Ответы: >>1611419 >>1611452
Аноним 2020/02/22 11:39:02  №1611419 498
>>1611416
Слим наоборот для тех, кто понимает что делает и как это готовить.
Аноним 2020/02/22 12:16:39  №1611452 499
>>1611387
>>1611416
Спасибо за ссылки, уже что-то, поизучаю.

>>1611387
>Жиквери не является образцом логики, простоты и удобства
Ну почему же, $("#2ch").click(function()) логичнее, красивее и удобнее же чем document.querySelector("#2ch").onclick = function()
Или $.getJSON("2ch.json", function()) чем ебаться с громадным XMLHttpRequest, не буду даже его рассписывать

Вот и хочется нечто подобное охуенное для сокращения и PHP
Ответы: >>1611455
Аноним 2020/02/22 12:20:24  №1611455 500
>>1611452
>чем ебаться с громадным XMLHttpRequest
fetch погляди.
>$("#2ch").click(function()) логичнее, красивее и удобнее же чем document.querySelector("#2ch").onclick = function()
Чуть короче и что еще?
Ответы: >>1611458
Аноним 2020/02/22 12:26:27  №1611458 501
>>1611455
На fetch пока не смотрел бы, так как многие до сих пор деревянными браузерами пользуются

Это ленивые премеры были, попробуй например сделать на ваниле скрипт вкладок и на jq, он будет в разы приятнее и короче на jq, не суть, я просто ищу что-то подобное для php, или ты намекаешь что проще писать на чистом php, так как текущие фреймворки все вырвиглазное дерьмо с помойнейшим синтаксисом для макак пушечного мяса
Ответы: >>1611464 >>1612509
Аноним 2020/02/22 12:36:47  №1611464 502
>>1611458
>проще писать на чистом php, так как текущие фреймворки все вырвиглазное дерьмо с помойнейшим синтаксисом для макак пушечного мяса
В некотором смысле да, но тебе я не это пытаюсь сказать точно. Странно, что ты реально простым фреймам так противишься, где очень многое уже сделано за тебя.
>На fetch пока не смотрел бы, так как многие до сих пор деревянными браузерами пользуются
Полифилы решают. Ну и если уж прямо говорить - ты зачем к жиквери в 2020 прилип? В наше время цветут вью, реакт и ангуляры всякие. Они гораздо мощнее, проще и выразительнее будут, чем либа с декораторами над ванилой.
Аналогия жиквери и чистого пхп даже ближе, чем ты думаешь.
Ответы: >>1611477
Аноним 2020/02/22 12:45:23  №1611473 503
>>1611042
ASP.NET MVC Framework с Entity Framework
Аноним 2020/02/22 12:50:57  №1611477 504
>>1611464
>простым фреймам так противишься
Я просто ужаснулся увидев то как делают сайт на ларавеле, это просто бездушно, никакой ламповости, в общем после всего увиденного сложить ощущение что все просто хотят всё свалить друг на друга, фрот на бек, без на фронт, и в итоге этого перекладывания ответственности получается просто дерьмище, доходит просто до какаго-то маразма и уродования языкаи без того уродливого

Все эти вью, реакт и ангуляр как минимум просто противоречат и не дружат с SEO как минимум, вся твоя страница превращается просто в фейк, а весь сайт в одностраничник, где всю работу переложили на фронт и железо пользователя, грузя данные и верстая всё находу, в что-то мерзкое и лагучее
Ответы: >>1611486 >>1613324
Аноним 2020/02/22 12:56:32  №1611486 505
>>1611477
>не дружат с SEO как минимум
Как раз для этого есть специально придуманный сср спа приложений.
В остальном минусов нет, кроме большей сложности разработки, но это мало кого уже волнует.
>делают сайт на ларавеле
На фреймах писать можно вообще по разному. Хотя это не слишком очевидно из концепции, но так оно и есть. Я вот видел сайты на ларке, где в каждом эндпоинте die юзался и прочая мимофреймовая херня. Ну красота, чо. Зато на ларочке няшечке. И такого полно везде.
Аноним 2020/02/22 14:23:15  №1611557 506
>>1611042
Пиши на ваниле и не выебывайся.
Только далеко ты не уедешь без либ и фреймов
Аноним 2020/02/22 16:20:37  №1611704 507
>>1604086
>Если попробовать обобщить это, то можно придумать такую функцию: пусть она получает на вход массив с >зафиксированными значениями на кубиках слева.
Но в примере твоей функции, она получала на вход пустой массив

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

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

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

>Попробуй написать такую функцию, или напиши, если что-то непонятно.
Ну вообщем , при моих оставшихся вопросах получилось как-то так https://ideone.com/JPEs7m , нормально ли ? Тут есть проблема , в том , что по завершении вызовов функции с массивом одного и двух значений при 3 кубиках, допустим:
generateCombinations(3, [1]) и generateCombinations(3, [1,1]), эти массивы тоже у меня бы выводились , если бы я не написал условие if (count($values) == $n) . Коментарии, которые с 21 по 33 строчку это я оставил для себя

>Есть еще другой способ вывести все комбинации без рекурсии.
Решил вот так https://ideone.com/AyUsGV , нормально ? Программа сама заканчивается по завершению циклу , но у меня возник вопрос, а если бы я захотел остановить цикл при значениях [5, 5, 5,] , при этом перебор остается осуществляться до [6,6,6], но я его как-бы останавливаю на других значениях , как лучше это было бы сделать, я в комментариях оставил свой вариант через array_filter и функцию stop , и просто с помощью цикла
Ответы: >>1612508
Аноним 2020/02/22 17:00:03  №1611731 508
Аноны, подскажите, не понимаю как правильно работать с базой данных. А точнее логику работы с соединением к БД.
Я подключаюсь к БД с помощью eloquent и capsule.
В пхп после выполнения скрипта соединение обрывается? Или каждый раз при обращению к базе создается подключение, которое если явно не закрыть - повисает?
Поясните пожалуйста за соединения с БД
Ответы: >>1612508
Аноним 2020/02/22 17:16:02  №1611750 509
Я php джун без знаний и опыта, уже почти месяц откликаюсь на вакансии, делаю тестовые, хожу по собеседованиям, порой меня даже хвалят, но до сих пор ни одного оффера. Меня скоро выпрут из общаги, бабки заканчиваются, а я даже к родителям не смогу уехать, они не могут меня больше содержать. Я уже было совсем приуныл, вакансии почти закончились, новых нет, молюсь Богу каждый день.
И тут короче мне дают тестовое найдите ошибки в 27 строчках, а там ошибки типа ';' вместо ',' написано и прочее, для даунов на 15 минут. Сделал я его, пригласили на собес, иду весь трясусь нервничаю, захожу зажусь, а hr мне после пары вопросов про мою общительность и дальность от дома говорит: "ЭЭЭ, ну вообщем, приходи во вторник, зарплата 40к, официально. " И я просто охерел тогда, сидел не знал что сказать. Просто без собеса без ничего. Одно тестовое на 15 минут. А в других конторах ебали только так и не взяли.
Теперь получается моя жизнь спасена, я успешно вкатился, бабки не проблема, думаю теперь о будущем.
Ответы: >>1611888 >>1612170
Аноним 2020/02/22 17:18:22  №1611752 510
Если я создам код внутри рамки по типу:
<фрейм>
<? некоторый кот ?>
</фрейм>

К примеру, там будут данные из БД и их надо время от времени проверять.

И сделаю кнопку для перезапроса инфы к коду внутри фрейма, то она будет обновлять данные в рамке, или все равно придется обновлять всю страницу?

Мне уже тут говорили за ajax, но у меня свой путь шиноби возник интерес именно к такому способу. Сработает ли?
Ответы: >>1612171 >>1612300 >>1612508
Аноним 2020/02/22 18:27:37  №1611888 511
>>1611750
Рандомное волконогокормление.
Ответы: >>1611895 >>1611901
Аноним 2020/02/22 18:30:59  №1611895 512
Ответы: >>1611905
Аноним 2020/02/22 18:34:46  №1611901 513
>>1611888
п.с. рад за тебя. Сам некоторое время назад интереса ради откликнулся в одну конторуна реакт + нода. Сходил пообщался , дали тестовое,сделал как смог. В ответ на почту скинули что тестовое принято. И запланируют встречу с гендиром. Через пару недель пригласили, пообщался с их гендиром. Он приятное впечатление оставил. По итогу предложили месяц оплачиваемой стажировки, и если продолжим - то 70к зп. А я в основном на пхп пишу, и не пипец опытный. Да и на вакансию откликнулся потому что нода интересна, и я с ней немного пердолюсь. А так у меня и сейчас есть работа, которая оч уютная и хорошая.
Тестовое - что то типа фуллстак тудухи - морда реакт, бек на ноде.
Ответы: >>1611919 >>1612009
Аноним 2020/02/22 18:35:44  №1611905 514
>>1611895
А то что нужно ходить на собесы, делать тестовые , и подскакивать кабанчиком.
Что тот аноны если он не ты совершенно правильно и делал.
Аноним 2020/02/22 18:42:58  №1611919 515
>>1611901
Я может тоже потом перекачусь во фронт/фуллстек. А то что-то php-шникам намного меньше платят.
Ответы: >>1612055
Аноним 2020/02/22 19:37:19  №1612009 516
Ответы: >>1612033
Аноним 2020/02/22 19:58:23  №1612033 517
>>1612009
Нет, регион, ближе к югам.
Аноним 2020/02/22 20:21:28  №1612055 518
>>1611919
Скорее просто ниша для начинающих не самая денежная. Небольшие сайтописательские конторы.
Ответы: >>1612163
Аноним 2020/02/22 21:48:15  №1612163 519
>>1612055
php сеньеры получают в среднем на 20к меньше java и javascript синьоров
Аноним 2020/02/22 22:04:13  №1612170 520
>>1611750
Поздравляю. Как-то так оно и случается.
Аноним 2020/02/22 22:05:17  №1612171 521
>>1611752
>Сработает ли
Возьми, да проверь. Руки отсохнут пару строк написать, да код запустить?
Аноним 2020/02/23 07:43:23  №1612300 522
>>1611752
Во фрейме у тебя находится отдельная страница.
someApprentice 2020/02/23 10:32:59  №1612400 523
https://github.com/someApprentice/Crypter

Написал часть кода с шифрованием и использованием библиотеки openpgp.js. Приложение получилось нагруженным, и на дешифровку нескольких сообщений сразу (например при подхвате связки из 20 сообщений с бэкенда) уходит от 4 до 8 секунд. Это не очень userfriendly, и я принимаю решение создать секретные чаты, как в телеграме — только в них сообщения будут шифроваться, и они будут создаваться по запросу пользователя.

Изначально я хотел шифровать приватный ключ хэшом (SHA-512) от пароля и сохранять его в локальном хранилище под ключом shadow, и затем дешифровать им приватный ключ каждый раз при инициализации приложения, а ключ сохранять в памяти. Но выяснилось, что дешифрованый ключ переведённый в ASCII-armor имеет другую структуру/контент в отличие от зашифрованного. Поэтому, я принял решение шифровать ключ простым паролем и просто сохранить дешифрованный ключ в IndexedDB при залогинивании.

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

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

User:
uuid,
email,
name,
hash,
private_key,
public_key,
revocation_certificate,
last_seen

// Нужно добавить ещё urlname, которое будет уникальным идентификатором пользователя по URL запросу (прим. @alice).

// Может быть ещё нужно добавить поле online: BOOLEAN


Conference:
uuid,
updated, // время когда конференция последний раз обновилась (появилось новое сообщение)

// Нужно добавить поле type: ENUM('private', 'public', 'secret')

// Нужно добавить поле last_message, чтобы в интерфейсе можно было вывести его, а так же чтобы можно было отсортировать их по последнему сообщению, а не по колонке update. Колонку update можно будет удалить.


// Содержит в себе ссылки на конференции для каждого пользователя.
// Она нужна чтобы у каждого пользователя была своя "копия" конференции. Или можно сказать своё представление конференции, т.к. она содержит специфичную для каждого пользователя информацию (такую как количество непрочитанных сообщений или количество сообщений в общем конкретно для этого пользователя)
// Изначально идея создания этой таблицы была, то что пользователь может удалить отдельно для себя эту конференцию, а у его собеседника она останется. (В популярных мессенджерах это так и работает — можно удалить конференцию либо только для себя, либо и для собеседника тоже, т.е. конференция и все сообщения в ней удаляться вообще.)
Conference_Reference:
uuid,
user,
conference,
participant, // Ссылка на собеседника, в случае приватной конференции, для публичных это поле остаётся пустым. Нужна чтобы получить конференцию по собеседнику за 1 запрос и является денормализацией (см. ниже таблицу Participants)
unread // Количество непрочитанных сообщений у данного пользователя
count // Количество сообщений в общем для данного пользователя. (Ведь сообщения, так же как и конференции, можно удалять как и только для себя, так и вообще)

// Таблица всех получателей для определённой конференции. Изначально создавалась для публичных конференций где количество получателей больше 2-ух, а для приватных, она осталась как представление конференции из всего лишь 2-ух собеседников. Для приватных конференций можно опустить.
Participant:
uuid,
conference,
user


Message:
uuid,
author,
readed
date,
type: ENUM('text/plain', 'audio/ogg', 'video/mp4') // Либо текстовое, либо голосовое, либо видео сообщение
content: TEXT // Содержит либо простой текст для текстового сообщения, либо URL на медиа-файл для голосового/видео сообщения
consumed: BOOLEAN // Определяет было ли прослушано/просмотрено аудио/видео сообщение
edited: BOOLEAN // Было ли отредактировано сообщение
readed_at: TIMESTAMP WITH TIMEZONE // Определяет когда сообщение было прочитано и нужно чтобы получить все прочитанные сообщения в момент когда клиент был в офлайне, чтобы обновить их локальном хранилище

// Нужно добавить поле edited_at


// Тоже самое что Conference_Reference (т.е. имеет ту же идею под собой)
Message_Reference:
uuid,
conference, // Нужно перенести в таблицу Message
user,
message


Message_Attachment:
uuid,
type: ENUM('image', 'audio', 'video', 'file', 'forwarding', 'reply'), // Либо изображение, аудио, видео, файл, пересылка сообщения, либо ответ на сообщение
message,
src // Содержит либо URL на файл для изображений/аудио/видео/файлов, либо uuid сообщения для пересылки/ответа


Какие запросы нужно выполнить:

1. Получить последние 20 Конференций для конкретного пользователя, вместе с последним Сообщением и вместе с Получателем если есть (в случае приватной конференции), и вместе с Получателями в случае с публичной конференции:

SELECT
conference.uuid,
conference.updated
conference_reference.unread,
conference_reference.count,
participant.uuid AS participant_uuid,
participant.name AS participant_name,
participant.urlname AS participant_urlname,
participant.public_key AS participant_public_key,
participant.last_seen AS participant_last_seen,
m.uuid AS last_message_uuid,
m.author AS last_message_author,
m.readed AS last_message_readed,
m.date AS last_message_date,
m.type AS last_message_type,
m.content AS last_message_content,
m.consumed AS last_message_consumed,
m.edited AS last_message_edited,
m.readed_at AS last_message_readed_at,
m.updated_at AS last_message_updated_at,
ps.uuid AS participants_uuid,
ps.name AS participants_name,
ps.urlname AS participants_urlname,
ps_public_key AS participants_public_key
ps.last_seen AS participants_last_seen
FROM conference
INNER JOIN conference_reference ON conference.uuid = conference_reference.conference
INNER JOIN user AS participant ON conference_reference.participant = participant.uuid
INNER JOIN message AS m ON conference.last_message = m.uuid
INNER JOIN participant AS pu ON pu.conference = conference.uuid
INNER JOIN user AS ps ON pu.user = ps.uuid
WHERE conference_reference.user = :uuid
ORDER BY conference.updated DESC;

Такой запрос вернёт количество строк равный количеству Конференций помноженных на количество Получателей. pic-1. Как сделать лимит на первые 20 конференций, а не на первые 20 строк (при условии что используется Doctrine)?


2. Получить Конференцию по Получателю, вместе с получателем.

Примерно такой же запрос, только выборка будет WHERE conference_reference.participant = :uuid.

3. Получить последнее 20 Сообщений для определённой конференции для конкретного пользователя, вместе с конференцией и автором.

Doctrine и DQL конечно же упрощают написание таких больших запросов как я написал выше, поэтому я напишу его:

SELECT m
FROM Crypter\Entity\Message m
INNER JOIN Crypter\Entity\MessageReference mr WITH m.uuid = mr.message
WHERE m.conference = :conference AND mr.user = :user
ORDER BY m.date DESC

4. Получить первые 20 непрочитанных Сообщений для определённой конференции для конкретного пользователя, вместе с конференцией и автором.

Примерно такой же запрос, только выборка будет помимо прочего ещё и по полю readed и author:

...AND m.readed = FALSE AND m.author != :user.

5. Получить первые 20 Сообщений начиная с данного таймстампа (получить новые сообщения), для определённой конференции для конкретного пользователя вместе с конференцией и автором

Примерно такой же запрос как и в 3-ем запросе только добавляется ещё и выборка по дате: ...AND m.date > :date

6. Получить последние 20 Сообщений начиная с данного таймстампа (получить старые сообщения)... -//-

Такой же запрос только наоборот: AND m.date < :date

7. Получить все прочитанные Сообщения с определённого момента.

Такой запрос нужно чтобы обновить локально сохранённые сообщения (в IndexedDB), которые были прочитаны пока клиент был в офлайне.

SELECT m
FROM Crypter\Entity\Message m
JOIN Crypter\Entity\MessageReference mr WITH m.uuid = mr.message
WHERE mr.user = :user AND readedAt > :date
ORDER BY m.date DESC


Думаю, что нормализованная структура определена и осталось её оптимизировать. Пожалуйста, научите меня этому.
Ответы: >>1612440 >>1612570
Аноним 2020/02/23 10:58:32  №1612440 524
15812237674180.png (596, 643x820)
820x643
Аноним 2020/02/23 11:00:23  №1612445 525
>>1599205

Я вижу, появилась папка public. Это хорошо. Если это еще не сделано, то стоит сделать ее корневой папкой веб-сервера (чтобы DocumentRoot указывал на нее), чтобы из браузера в принципе нельзя было обращаться к файлам за ее пределами. Стоит также это упомянуть в README, можно даже вставить туда нужный кусочек конфига сервера. И перенести в папку файл htaccess.

> `studentLocal` enum('l','n') NOT NULL COMMENT 'l - local, n - not local

Можно было использовать строки local/nonlocal вместо букв ради читабельности. Они будут занимать в базе ровно столько же, так как ENUM хранит в таблице номер выбранного варианта, а не сам текст.

Для email, возможно, стоит добавить уникальный индекс в базе, чтобы нельзя было вставить одинаковый.

> studentName

Обычно не стоит добавлять в поле название таблицы. Вот, если что, SQL guide, где даются рекомендации по названиям: https://www.sqlstyle.guide/ru/

> ini_set('display_errors', 1);

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

> require_once(ROOT.'/app/components/Router.php');
> require_once(ROOT.'/app/components/autoload.php');

Логичнее сначала подключать autoload - вдруг он понадобится при подключении роутера.

> https://github.com/Vladrigos/StudentList/blob/master/app/components/autoload.php
здесь можно сделать одну функцию, которая будет в цикле перебирать варианты префиксов. Также, можно добавить эти пути в include_path и использовать встроенный в PHP автозагрузчик (spl_autoload).

> $uri = explode("?", $_SERVER["REQUEST_URI"])[0];

Можно просто с помощью parse_url взять компонент PHP_URL_PATH.

> //удаляем первый элемент массива и добавляем Controller
> $controllerName = array_shift($segments).'Controller';
Лучше сразу писать имя контроллера в routes.php, тогда можно будет переходить к нему по клику в IDE и искать роут поиском по имени класса. Не стоит писать в коде кусочки от имен классов/функций вместо полного имени. Так как в этом случае поиском по полному имени нельзя найти все места, где используется класс.

> 'main$'
Тут не должно быть ^main$ ?

> $isRegister = isset($_COOKIE['student']);
Стоит сделать отдельную функцию/метод для определения залогиненности, и собрать все, что связано с авторизацией, в один класс, а не размазывать эту логику кусочками по коду.

> StudentGateway::getStudents
> StudentGateway::getSearchStudents

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

Также, стоит отказаться от статических вызовов и почитать урок про DI: https://github.com/codedokode/pasta/blob/master/arch/di.md

> return 1;

Если это признак, что страница существует, то может, стоит сделать тут константу вроде PAGE_EXISTS или хотя бы использовать true (истина). Так как цифра 1 обозначает количество, и непонятно, чего тут одна штука.

> return $_GET['page'] * $this->limit

Стоит использовать intval() для принудительного преобразования в число. Неизвестно что может придти от пользователя.

> if(isset($_POST['submitInput']))
Можно проверять $_SERVER['REQUEST_METHOD'] https://www.php.net/manual/ru/reserved.variables.server.php

> $student = new Student($_POST['name'], $_POST['surName'],
Значения в $_POST могут отсутствовать или быть не строкой. Стоит писать хотя бы strval($_POST['x'] ?? '') или сделать функцию для их безопасного получения.

> Validator::formatStudent($student); //trim, firstToUpper имя/фамилию
Это, строго говоря, не задача валидатора. trim() удобнее делать в функции получения данных из _POST. Или можно сделать функцию-помощник, которая сделает нужные преобразования.

> //генерируем куки
> $cookie = md5(rand(0, 10000)) . md5(rand(0, 10000));
Это надо выносить в отдельную функцию с понятными названием, и комментарий не понадобится. Также, md5 тут бессмысленнен. У тебя возможны всего 10000 x 10000 вариантов значений, и md5 не увеличивает их количество, а лишь удлиняет код, но там все равно будет лишь 10000 вариантов. То есть ты только удлиняешь код, не повышая число вариантов. Для безопасности надо, чтобы каждый символ в коде выбирался случайно и независимо от других.

Также, в RegistrationController есть 2 больших куска почти одинакового кода, которые стоит объединить.

Для пола и local/nonlocal стоит сделать константы в Student, а не Validator. Это же свойства студента, а не особенности валидации. То есть, эти константы имеют смысл только для валидации, или они могут пригодиться и в других случаях? Да, могут. Значит, им место не в валидаторе.

> (int $limit, int $offset, $order = NULL, $as = NULL)

Тип стоит поставить для всех аргументов и для возвращаемого значения.

> $query = $query . "ORDER BY $order ";
Здесь SQL-инъекция. Почитай урок по ним и сделай проверку по белому списку разрешенных значений.

> //как то переделать что бы каунт получать
Как вариант, можно сделать аргумент, в который передается, что вернуть: либо RETURN_COUNT, либо RETURN_ROWS. Либо же использовать 2 отдельных функции.

> INSERT INTO student VALUES(DEFAULT,:name, :surname,
Надо явно указать названия полей после student, а то у тебя нет гарантии, что ты их вставляешь в правильном порядке.

> return new Student($stmt['studentName'], $stmt['studentSurname'],
...
> else
> {
> return 0;
> }

Есть значение null для обозначения отсутствующего объекта. А 0 - это число, оно обозначает количество.

> $stmt->fetch(PDO::FETCH_ASSOC)['COUNT()'];
Есть fetchColumn(), и другие функции, изучи.

> $db->query("UPDATE student SET studentName = '{$student->getName()}',
SQL инъекция тут.

> (':studentName' => $student->getName(),
> так почему то не работает
Надо разобраться, какая ошибка выводится и почему.

> catch (PDOException $e)
> print "ERROR: Нет соединения с базой данных";
Неправильная работа с исключениями. Ты не пишешь в лог ошибок информацию о сути проблемы, которая хранится в $e, и теряешь эту информацию. Разработчик и не узнает, что на сайте была проблема.

Также, для PDO надо включить режим ERRMODE_EXCEPTION, иначе он не сообщает об ошибках.

https://github.com/Vladrigos/StudentList/blob/master/app/components/Uri.php
Тут плохо то, что класс использует $_GET, он должен быть независим от этой переменной и получать параметры явно. А так, ты смешиваешь в кучу логику получения данных от пользователя и логику обработки этих данных. Это две независимых логики.

У тебя нет объекта и состояния. По идее, ты должен создавать объект, в нем хранятся данные и ты с этим объектом работаешь, так:

$uri = new Uri(.....данные....);
echo $uri->getPage();

Что-то у тебя пока слабовато с ООП, может тебе задачки про ООП-гостиницу или ООО Вектор надо порешать?

> public static function checkGetHave($key, $value)
Можно назвать hasElement/findElement.

> //очень похоже на костыль, не придумал как лучше
> //Если в массиве есть хоть 1 ошибка
> foreach($errors as $error)
Удали из массива пустые значения с помощью array_filter или цикла и проверь, пуст ли результирующий массив.

> return $errors;
> return 0;
Логичнее возвращать значения одного типа, например, пустой массив, так как проще работать, когда ты знаешь, что вернется только массив и ничего больше.

> if(strlen($name) > 25
Надо использовать mb_strlen, strlen считает байты, а не символы. Протестируй.

> return "Ошибка, поле содержит недопустимые символы!";
Нужно больше информации, например, какие символы допустимы или недопустимы. А то непонятно.

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

> https://github.com/Vladrigos/StudentList/blob/master/app/views/404.html
А ты выдаешь код статуса (состояния) HTTP 404 для этой страницы? Ведь число 404 важно не показать на экране (людям-то оно не нужно), а отдать роботам в нужном поле ответа.

> href="<?php Uri::setPageUri($i);?>
Здесь по идее тоже надо использовать htmlspecialchars, символ & например надо экранировать как & amp ; .

> ?php if($currentStudent && $currentStudent->getGender() == VALIDATOR::GENDER_FEMALE) { echo 'checked'; } ?>
Лучше использовать <?= и тернарный оператор. Не нужно использовать echo в шаблонах вообще.

> maxlength="25"
Здесь есть небольшой недостаток: длина поля (25) дублируется в нескольких местах кода, в валидаторе и тут. Хорошо бы это исправить.

Так, пока для начинающего неплохо, но надо исправить замечания, чтобы второй раз на те же грабли не наступать.
Аноним 2020/02/23 11:44:41  №1612508 526
>>1611752

Фрейм это как отдельная вкладка и он может загружаться независимо от основной страницы.

>>1611731

Да. Все соединения закрываются, открытые файлы закрываются при завершении скрипта автоматически.

Обрати внимание, что во многих БД вроде MySQL/MariaDB, долгий запрос не завершается при отсоединении. Если ты запустишь запрос, который выполняется 24 часа, он продолжит выполняться, хотя ответ на него отдавать уже некуда. Используй настройку таймаута в БД для борьбы с этим.

>>1611704

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

Это значит, что пока ни одно значение не зафиксировано и все кубики надо перебирать.

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

Если у нас 3 кубика, а в функцию пришел массив [1, 4, 2] то перебирать ничего не надо - надо просто вывести комбинацию 1, 4, 2 так как все значения на 3 кубиках зафиксированы. А если бы пришло [1, 4] то это значит что на первых 2 кубиках значения зафиксированы (1 и 4), а третий нам надо перебирать. А если пришло [] то надо перебирать значения всех трех кубиков.

Функция перебирает значения за раз только на одном кубике. И вызвыает себя для перебора остальных значений. Допустим, у нас 3 кубика и пришел массив [1] (зафиксированное значение для первого кубика). Тогда функция перебирает значения второго кубика, фиксирует их, вызывая саму себя с такими массивами:

- [1, 1]
- [1, 2]
- [1, 3]
...
- [1, 6]

> Ну вообщем , при моих оставшихся вопросах получилось как-то так https://ideone.com/JPEs7m , нормально ли ?

Ты правильно сделал функцию. Как раз, как я описал. Только один цикл тут лишний:

> for ($z = 0; $z < $n; $z++) {
> if (count($values) == $z) {
Если присмотреться, то понятно, что этот if срабатывает только один раз, а переменная $z нигде не используется и цикл по $z ничего не делает, и его можно убрать. Цикл - это повторение несколько раз, у тебя же код внутри if выполняется всегда ровно один раз и цикл не нужен.

> Тут есть проблема , в том , что по завершении вызовов функции с массивом одного и двух значений при 3 кубиках, допустим: generateCombinations(3, [1]) и generateCombinations(3, [1,1]), эти массивы тоже у меня бы выводились

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

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

> Решил вот так https://ideone.com/AyUsGV , нормально ?

Да.

> у меня возник вопрос, а если бы я захотел остановить цикл при значениях [5, 5, 5,] , при этом перебор остается осуществляться до [6,6,6], но я его как-бы останавливаю на других значениях , как лучше это было бы сделать,

Проще всего сравнением массива, то есть if ($combination === [5, 5, 5]) (мануал https://www.php.net/manual/ru/language.operators.array.php ). Или if ($combination[0] >= 5 && $combination[1] >= 5 ....).

Если ты смог генерировать комбинации кубиков, то ты можешь попробовать теперь сделать функцию-генератор, выдающую комбинации кубиков, а затем и купюр, с помощью yield. Погугли "генераторы в PHP". Можно и без генераторов, но тогда ты будешь писать все в одной огромной запутанной функции, а так у тебя одна функция будет генерировать комбинации купюр, а другая их проверять - код будет чище.

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

- не перебирать число, которое заведомо превышает требуемую сумму. Например, если надо выдать 2300, то нет смысла пробовать комбинации вида 5x500, 6x500 итд (и перебирать комбинации более мелких купюр при 5x500 тоже нет смысла). Или, если мы уже зафиксировали комбинацию 4x500 и перебираем 100-е купюры, то не брать более 3-х купюр.

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

- начинать перебор с ближайшего к сумме значения. Например, если нам надо выдать 2400, то мы начинаем с 4x500, потом пробуем 3x500, 2x500 .. 0x500. В таком случае, первая полученная комбинация будет соответствовать тому, что дает "жадный" алгоритм. А если она не подошла, то мы начинаем менять количества купюр и пробовать другие варианты.
Ответы: >>1635470 >>1635530
Аноним 2020/02/23 11:45:45  №1612509 527
>>1611458

Не нравятся большие фреймворки - используй микрофреймворки вроде Slim или собери свой фреймворк из компонентов Симфони.

>>1610930

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

>>1610524

Есть codeforces от Дурова: https://codeforces.com/blog/entry/79

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

Ответы: >>1613581
Аноним 2020/02/23 12:34:30  №1612570 528
>>1612400

Для мессенджера советую в README добавить скриншоты/гифки, описание основных фич (что тут есть сложного и крутого), будет хорошее демо для собеседований. Перечислить использованные технологии и библиотеки. И подключенных ботов. README сухой и краткий и не очевидно, что за ним сложный интересный проект. А может получиться хорошая реклама твоих навыков, которая выделяет тебя среди других разработчиков.

> Приложение получилось нагруженным, и на дешифровку нескольких сообщений сразу (например при подхвате связки из 20 сообщений с бэкенда) уходит от 4 до 8 секунд.

Это можно пофиксить на уровне UI:

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

Наконец, можно рассмотреть вариант переписать/подключить декодер на WebAssembly (заодно освоишь эту технологию), или asm.js (фаерфоксовая старая версия для выполнения машинного кода). NaCl не буду рекомендовать, так как он x86-only. Должно ускориться.

Имхо, компромисс, выбранный Телеграм - неудачный. Шифровать надо 100% сообщений. Но, конечно, это тебе решать.

> Нужно добавить ещё urlname

Это можно назвать login или slug.

> Может быть ещё нужно добавить поле online: BOOLEAN

А можно сделать отдельную таблицу online_users (uuid, last_seen). Плюс: при обновлении статуса пользователя (пришел/ушел) мы не трогаем тяжелую таблицу users, а только эту. Она будет меньше users, так как обычно онлайн только часть пользователей и так как тут мало колонок. Кто знает, может она целиком в RAM поместится. Просто даю как идею, не гарантирую, что это будет лучше.

> updated, // время когда конференция последний раз обновилась (появилось новое сообщение)

Может, last_event_time? Хотя, updated тоже норм.

> participant, // Ссылка на собеседника, в случае приватной конференции, для публичных это поле остаётся пустым.

Не лучше ли назвать partner/other_party?

> date,

Может, лучше писать send_time?

И еще по схеме БД - а не слишком ли много метаданных в открытом виде? Может, есть смысл хранить метаданные сообщения как JSON и шифровать, и хранить шифротекст в единственной колонке metadata ?

> 1. Получить последние 20 Конференций для конкретного пользователя, вместе с последним Сообщением и вместе с Получателем если есть

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

> Получить последние 20 Конференций для конкретного пользователя, вместе с последним Сообщением и вместе с Получателем если есть (в случае приватной конференции), и вместе с Получателями в случае с публичной конференции:

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

> Такой запрос вернёт количество строк равный количеству Конференций помноженных на количество Получателей. pic-1. Как сделать лимит на первые 20 конференций, а не на первые 20 строк (при условии что используется Doctrine)?

По моему, в Доктрине это есть. Там LIMIT применяется к основной сущности запроса, но это делается за счет оборачивания запроса в какую-то сложную конструкцию. Попробуй проверить, вроде:

$qb->select('a', 'b')->from('a')->leftJoin('a.b', 'b')->setMaxResults(10);

И посмотреть, какой запрос он сформирует. Это по идее должно вернуть 10 сущностей a независимо от числа приджойненных b.

Так, по идее - группировка нужна, наверно. Либо выборка в 2 запроса: сначала список конференций, потом список последних сообщений в них.

Увы, Доктрина - не самый быстрый способ делать запросы.

> Думаю, что нормализованная структура определена и осталось её оптимизировать. Пожалуйста, научите меня этому.

- нужно освоить команду EXPLAIN и прочитать мануал по тому, как понимать ее результаты (слова для поиска: postgres analyze query plan)
- прогнать запросы через эту команду и понять, эффективно они работают или нет (я смогу подсказать что-то). В идеале мы хотим: выборка из одной таблицы с LIMIT по индексу, который оптимизирует WHERE и ORDER.
- для тестирования было бы здорово сделать генератор, который нагенерирует произвольное число пользователей, конференций, сообщений. По ним прогонять запросы по одному и параллельно для измерения реальной производительности. Для Доктрины такой генератор делается, например, на основе Faker и https://github.com/thephpleague/factory-muffin. Хорошо оптимизированный запрос выполняется тысячами в секунду.

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

- БД работает хорошо только пока индексы помещаются в память. Размер индексов можно как-то увидеть, не помню как. А если таблица помещается в память - то вообще все чудесно. Хайлоад обычно предполагает, что все влезает в память, кроме может быть редко используемых данных. Помещаются данные в память или нет - очень важный фактор, влияющий на производительность.
- скорее всего, может понадобиться больше денормализации. Денормализовать удобнее всего то, что никогда не меняется (вроде uuid получателя сообщения). Так как иначе надо будет думать об обновлении денормализованных полей.
- может понадобиться кеширование, если денормализация и индексы не помогут. Смотри на это как на последнюю надежду, так как при кешировании появляется проблема сброса/обновления кеша и она очень сложна.
- возможно, вместо запросов с джойнами быстрее будет сделать несколько отдельных запросов.

Индексы для начинающих: https://ruhighload.com/%D0%98%D0%BD%D0%B4%D0%B5%D0%BA%D1%81%D1%8B+%D0%B2+mysql

Если есть конкретные вопросы, уточняй.
Ответы: >>1613334
Аноним 2020/02/24 04:18:32  №1613310 529
Анончик, чем синхронизировать локальную папку с sftp на debian?

Раньше пользовался правкой файлов по ftp через notepad++, на линуксах же в правки по sftp имеют 2.5 приложения, да и те осваивать месяц
Аноним 2020/02/24 05:49:02  №1613324 530
>>1611477
Да, двачую анон, складывается такое впечатление, что это какой-то рынок для гиков, нердов, но им вместо чего-то обычного впаривают реакты, вью, свелт или еще что-то, это все обрастает конференциями, курсами. Целая кампания какая-то. А ведь нужно то отобразить страницу с текстом или сделать удобную форму.
Ответы: >>1613444
someApprentice 2020/02/24 06:35:23  №1613334 531
>>1612570
>Для мессенджера советую в README добавить скриншоты/гифки, описание основных фич (что тут есть сложного и крутого), будет хорошее демо для собеседований. Перечислить использованные технологии и библиотеки. И подключенных ботов. README сухой и краткий и не очевидно, что за ним сложный интересный проект. А может получиться хорошая реклама твоих навыков, которая выделяет тебя среди других разработчиков.

Я хочу свой стартап закончить. Если не получиться, то оформлю README, в качестве запасного плана.

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

>Имхо, компромисс, выбранный Телеграм - неудачный. Шифровать надо 100% сообщений. Но, конечно, это тебе решать.
Мне нужно подумать об этом.

Приведите пожалуйста аргументы почему нужно шифровать 100% сообщений?

В противовес, здесь есть недостаток - нельзя сделать поиск по сообщениям.

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

И поделюсь сырыми мыслями которые крутятся у меня сейчас на этот счет:

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

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

Пока вопрос:

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


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


>> Нужно добавить ещё urlname
>
>Это можно назвать login или slug.
Или username. Я только что посмотрел в api телеграма, и это называется так https://core.telegram.org/bots/api#user


>> participant, // Ссылка на собеседника, в случае приватной конференции, для публичных это поле остаётся пустым.
>
>Не лучше ли назвать partner/other_party?
А можно назвать ещё проще и лаконичней - party? Это может подразумевать под собой как раз другую сторону:

https://translate.google.com/?source=osdd#auto/ru/party

>Noun
>③ a person or people forming one side in an agreement or dispute.

>соучастник partner, accomplice, accessory, accessary, party, associate
>участник party, participant, member, partner, participator, partaker
>сторона side, party, hand, part, way, aspect


>> date,
>
>Может, лучше писать send_time?
>
>И еще по схеме БД - а не слишком ли много метаданных в открытом виде? Может, есть смысл хранить метаданные сообщения как JSON и шифровать, и хранить шифротекст в единственной колонке metadata ?

>Может, лучше писать send_time?
А почему нельзя назвать просто и лаконично date? Разве на очевидно что это дата сообщения?

>И еще по схеме БД - а не слишком ли много метаданных в открытом виде? Может, есть смысл хранить метаданные сообщения как JSON и шифровать, и хранить шифротекст в единственной колонке metadata ?
Какие метаданные, помимо даты, вы хотели бы чтобы шифровались?

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


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

Это как раз решает проблему с кешированием выше и проблему с сортировкой ниже.


По поводу оптимизации:

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

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

Сейчас у меня есть такие вопросы:

Как тестируются параллельное выполнение запросов?
Если написать скрипт, например на PHP, который будет обращаться к БД, он будет выполнять одну команду за другой, императивно. Нужно что-то, что будет выполнять запросы параллельно. Как это сделать?

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

И ещё я сейчас поймал себя на мысли, что ничего не знаю о том когда данные хранятся в RAM, я всегда думал что записи хранятся на диске. Я погуглил этот вопрос, и создаётся впечатление что PostgreSQL решает автоматически когда хранить данные в RAM а когда на диске, и предпочтительнее в RAM. Это верно?


>- для тестирования было бы здорово сделать генератор, который нагенерирует произвольное число пользователей, конференций, сообщений. По ним прогонять запросы по одному и параллельно для измерения реальной производительности.
А у меня есть подобный генератор, который заполняет базу тремя пользователями (Alice, Bob и Tester) и заполняет по сотне сообщений между ними: (☣ Warning! Code with a smell! ☣) https://github.com/someApprentice/Crypter/blob/master/api/src/Command/PopulateCommand.php

Следовало бы увеличить количество пользователей до сотен и количество сообщений до тысяч?

Будет ли лучше если я вместо выполнения HTTP-запросов создам объекты с помощью Faker и factory-muffin, и выполню все запросы к БД напрямую?
Ответы: >>1619949
Аноним 2020/02/24 07:56:17  №1613373 532
Как-то забил на программирование, кроме задачек на codewars, но начал читать литературы (учебники, сайты и т.д.) в промышленных масштабах. Такое чувство, что скоро на меня снизойдёт просветление.
Аноним 2020/02/24 09:37:12  №1613444 533
>>1613324
Нет никакой кампании, лол. Это просто обычные попытки стандартизировать используемые подходы. На фронте у PHP щас только ДВА фреймворка осталось - Symfony для корпората и Laravel для стартапов - выбирай, где хочешь больше работать, и учи. Оба они показывают, как надо писать на этом языке - это PHP в его лучшем виде. Если тебе по-прежнему кажется, что они сделаны плохо и лучше писать самому, то либо ты очень крутой спец, который может одной левой на Slim построить крутую систему под конкретные задачи, либо школьник.
Ответы: >>1614080
Аноним 2020/02/24 12:13:23  №1613581 534
>>1612509
>Есть codeforces от Дурова
От Дурова? Интерфейс конечно ужасный. Непонятно где задачи и как вообще пользоваться сайтом.
Аноним 2020/02/24 13:38:39  №1613639 535
>>1607723
>} else if($i == 10) {
А если я строку изначальную поменяю на другую?
Аноним 2020/02/24 16:58:52  №1613853 536
>>1599201 (OP)
аноны, прошу совета.

мне почти 30.

образование 9 классов. да и то формально.

работаю на дно-работе. зарабатываю копейки. и всё меня устраивало.

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

и я рассматриваю как вариант вкат в php-программинг.

но у меня реально крайне хуёво с образованием ( в т.ч. с физ-мат науками ).

тем не менее вот эту задачу ( с которой тут, я сморю, многие ебутся ) я решил за 20 минут на онлайн-интерпретаторе.

имея из опыта в этой области только 1 прочитанную в детстве ( пролистанную ) книженцию по языку си для школьников.

<Школьник решил купить айфон и для этой цели взял кредит. Сумма кредита — 40000 р., банк в начале каждого месяца (включая первый) начисляет 3% от остатка долга за пользование кредитом и 1000 р. комиссии (да, а ты думал, обойдешься процентами?). После этого, в конце каждого месяца, наш герой идет в банк и пытается выплатить долг, но он не может заплатить более 5000 р за раз (сэкономленных на школьных завтраках). Вопрос, когда он избавится от долга? Во сколько школьнику обошелся айфон?

что посоветуете?
Ответы: >>1613862 >>1613864 >>1614635
Аноним 2020/02/24 17:06:06  №1613862 537
>>1613853
Учи выкатывайся хуле
Ответы: >>1613871
Аноним 2020/02/24 17:07:49  №1613864 538
>>1613853
>что посоветуете?
Ебашь, что сказать, сперва погромирование, затем догоняй математику, по типу пикрелейтед книги почитай, если есть где-то жесткие пробелы в знаниях, то заделывай их.
Ответы: >>1613871
Аноним 2020/02/24 17:18:45  №1613871 539
>>1613864
>>1613862

уточню.

возможно ли устроиться работать php-шником, имея познания в области физ-мат наук на уровне примерно начальной школы?

Ответы: >>1613889 >>1614964
Аноним 2020/02/24 17:37:57  №1613889 540
>>1613871
Конечно
Ты же не ракеты собрался пилить
Аноним 2020/02/24 18:00:24  №1613932 541
Платиновый вопрос. Какую IDE из бесплатных посоветуете?
Ответы: >>1613941 >>1614407
Аноним 2020/02/24 18:04:02  №1613941 542
Ответы: >>1613958
Аноним 2020/02/24 18:18:31  №1613958 543
>>1613941
Ее допиливать ебанно
Ответы: >>1614244
Аноним 2020/02/24 19:47:06  №1614057 544
Аноны, это снова я, спасибо за ответы, многое понял для себя и разобрал кашу

Я пришёл к такому выводу, что сейчас всё пришло к тому, чтобы отделить взаимодействие разработчиков фронта и бека, каждый делает по своему и как может, а если не может, то его просто заменяет другой, главная их цель это использование стандарта между собой, который в основном сейчас это JSON, то есть задача бека вывести данные из БД в формате JSON, а фронта принять их, спарсить и вывести на экран тонной фреймворков, вся нагрузка на железо теперь распределилась на сторону клиента, а взаимодействие бека и фронта на реализации создании джейсона и его вывода на страницу, я всё правильно понял?

Посмотрев ютуб, понравилась концепция создания интернет магазина, где вся суть в том чтобы получив данные из GET/POST запроса сконвертировать нужные данные в JSON и получив их вывести на экран, весь магазин в итоге сводится к 3-х страничнику, главная/корзина/страница товара, но всё это конечно заебись если ты не собираешься индексироваться в коисковиках, иначе над беком придётся сильно ебаться чтобы он ещё и страницы генерировал, хотя бы при 1 запросе

>>1611042-хуй
С выбором фреймворка пока не определился, смотрел ютуб, но все предложения сохранил в закладки, пока для себя определился что первым делом нужно будет попробовать Slim, то есть я так понял нужно просто найти фреймворк который превратил основной функционал в функции, файл которых нужно будет просто подключить и уже пользуясь ими писать короткий код
Ответы: >>1614128 >>1614837 >>1616210
Аноним 2020/02/24 20:01:55  №1614080 545
>>1613444
Может ли Symfony конкурировать где-нибудь в энтерпрайзе с Джавой?
Ответы: >>1614105
Аноним 2020/02/24 20:19:39  №1614105 546
>>1614080
Со Spring вполне может. Но Java - это не только Spring, экосистема Java вполне может покрывать все нужды энтерпрайза и даже больше, в то время как PHP нет.
Ответы: >>1614112 >>1614143
Аноним 2020/02/24 20:23:33  №1614112 547
>>1614105
Имеется в виду, что Java - это BigData, ML, concurrency, highload и куча всего еще, что может быть в составе крупного энтерпрайза. А PHP - это только веб.
Аноним 2020/02/24 20:32:49  №1614128 548
>>1614057
>первым делом нужно будет попробовать Slim
Плохой выбор. Для новичка нужно брать что-то готовое, созданное по лучшим практикам, и разбираться, как все устроено внутри - Laravel, Symfony, все остальное сейчас - легаси.

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

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

>понравилась концепция создания интернет магазина
Это одна из дефолтных сфер, где доминирует PHP - e-commerce (мелкий/средний бизнес).
Ответы: >>1614552
Аноним 2020/02/24 20:42:06  №1614143 549
>>1614105
Значит ли это, что при необходимости можно относительно безболезненно перекатиться с PHP на Джаву? (в контексте веба)
Ответы: >>1614164
Аноним 2020/02/24 21:01:55  №1614164 550
>>1614143
Да, можно. Причем, может быть так, что Java после PHP не понравится, но примеры таких перекатов среди моих знакомых есть - один из них щас в СберТехе 200к получает, перекатился 2 года назад где-то.
Аноним 2020/02/25 00:19:21  №1614244 551
>>1613958
Это же охуенно, анон. Когда с пыхи будешь слезать, то даже ide не придётся менять.
Ответы: >>1614464
Аноним 2020/02/25 08:19:22  №1614407 552
Аноним 2020/02/25 09:06:22  №1614464 553
>>1614244
С Идеей будет то же самое, если до этого писал на PHPStorm.
Аноним 2020/02/25 10:00:48  №1614552 554
>>1614128
Ну а в остальном я правильно понял? Бекенду нужно высрать джейсон из базы, а фронту пропарсить его и отрисовать?
Ответы: >>1614615 >>1615139
Аноним 2020/02/25 10:54:14  №1614615 555
Аноним 2020/02/25 11:38:30  №1614635 556
>>1613853
Аааа, помню тебя, а это я с ней неделю ебался пока не погуглил решение.
Аноним 2020/02/25 15:14:17  №1614833 557
анчоусы, подскажите такой момент с ассоц массивами. https://ideone.com/eYintb вот пример где мне надо сложить два массива. но не просто сложить, а чтобы по ключу значения из второго массива как бы встроились в первый. так вот как это реализовать? нагуглить как вы понимаете нихуя не смог везде только одна ебучая конкатенация
Аноним 2020/02/25 15:19:14  №1614837 558
>>1614057
скинь как этот видос где пишут этот магазин. интересно пиздец как стало
Ответы: >>1616876
Аноним 2020/02/25 15:23:29  №1614838 559
>>1599201 (OP)
Подскажите, я на laravel могу красиво крудошлепить используя его инструменты(всякие курсы-хуюрсы качаю и смотрю, как строят приложения) и композерем тащить нужные зависимости , но когда нужно создать какой-нибудь модуль - я обсираюсь и пизжю решение из инета. Так вот, собственно, вопрос: как научится (мыслить логически, хз) создавать модули? Как прокачать этот скил? Логические задачки решать или что? Или это нормально в начале и все дальше все поедет? Чувствую себя идиотом.
Ответы: >>1614852 >>1614879
Аноним 2020/02/25 15:38:31  №1614852 560
>>1614838
или во фронтэнд переучиваться? лол
Ответы: >>1614880
Аноним 2020/02/25 16:06:08  №1614879 561
>>1614838
Декомпозируешь функционал и пилишь потихонечку. В конце концов любая таска сводится к множеству атомарных тасок типа "сделать запрос в бд" или "обрезать строку".
Аноним 2020/02/25 16:06:43  №1614880 562
>>1614852
Во фронтенде та же херня. Дают тебе таску на человеко-день и ебись с ней как хочешь
Аноним 2020/02/25 17:09:46  №1614912 563
>>1599201 (OP)
Ребята, а есть кто работает дома? На каких сайтах ищите работу? Что обычно делаете по работе (сайты или что?).
Ответы: >>1615113
Аноним 2020/02/25 17:22:08  №1614920 564
>>1599201 (OP)
Изучив Php, реально ли работать дома? Или будешь мало получать, и придется работать на дядю-контору каждый день в офисе?
Ответы: >>1614966
Аноним 2020/02/25 18:47:25  №1614964 565
>>1613871
Да. В веб-разработке каждый второй такой лол
Аноним 2020/02/25 18:48:19  №1614966 566
>>1614920
Первые пару лет в офисе лучше. Потом можешь перекатываться на удалёнку.
Ответы: >>1614972
Аноним 2020/02/25 18:52:41  №1614972 567
>>1614966
Почему лучше в офисе? Лучше, но необязательно - правильно понимаю?
Ответы: >>1615000
Аноним 2020/02/25 19:23:35  №1615000 568
>>1614972
>Почему лучше в офисе?
А сам как думаешь, есть мысли? Научишься взаимодействовать с разработчиками и вообще с людьми, если сычуешь.
Ответы: >>1615005
Аноним 2020/02/25 19:30:15  №1615005 569
>>1615000
Зачем взаимодействовать с разработчиками какими-то с офиса, если во фрилансе ты сам на себя работаешь?
Не сычую
Ответы: >>1615008