Добро пожаловать в тред изучающих PHP. Тут мы изучаем этот язык (а также JS/CSS/HTML/SQL) и учимся делать сайты. Зачем? Кто-то хочет открыть стартап, кто-то заработать на лапшу быстрого приготовления, кому-то просто нечего делать.
Это тред для начинающих. Слово «классы» у тебя ассоциируется только со школой, а в аттестате тройка по математике? Ты наш человек.
Предыдущий тред был тут: >>2687463 (OP). Старые треды можно найти в гугле по словам "клуб изучающих PHP".
Если что-то непонятно, запости код и попроси подсказку или поищи задачу в архиве тредов.
Какой редактор использовать
Простые задачки можно решать в онлайн-песочницах вроде onlinephp.io , но для программ посложнее лучше установить редактор. Есть (дорогая) IDE PhpStorm, есть бесплатный Netbeans и VSCode, условно-бесплатный Sublime Text. Чтобы в последних получить автодополнение для PHP, нужно установить и настроить PHP language server.
Также, у нас есть задачи которые позволят тебе изучить или подтянуть до нормального уровня знания JS/HTML/CSS/SQL. Решай их параллельно с задачами выше.
- скачать учебник: зайди на https://github.com/codedokode/phpbook, нажми зеленую кнопку Code -> Download ZIP, распакуй на рабочий стол и открой index.html - что будут спрашивать на собеседовании, если 0 опыта - будут гонять по теории, по официальному мануалу PHP, давать дурацкие задачки на переворачивание строк, гонять по SQL (транзакции, внешние ключи, напиши запрос), по JS (как сделать анимацию при нажатии кнопки), ну погугли, не ленись - сколько времени надо изучать все это? - все зависит от тебя, но не меньше 6-12 месяцев
Если вам не ответили в предыдущем треде, напишите тут.
Переработал шапку, убрал устаревшую информацию, и постарался оставить только важное. Если считаете, что стоит что-нибудь добавить или поменять, то предлагайте. Также можно предлагать картинки для следующего треда (хотя мне и эти нравятся, особенно со слоном).
Информацию про многопоточность и какой вид типизации используется в PHP я убрал, потому что, как мне кажется, это не важно ни начинающим, ни тем, кто использует язык в работе.
>>2761936 Потому что мы не хотим тут выращивать себе реальных конкурентов. Ненужные задачки про работников и сдачу в автомате - пожалуйста, а годноту пуская сами ищут.
Его новые скринкасы не для новичков, как по мне, а старые курсы с нуля слушать - нереально. Хотя есть годный курс роликов по ООП старенький. Я на нем начал осознавать, че вокруг происходит примерно.
Ну а так, да - те, кто уже мальца соображает и потыкался в какой-нить Ларе - пиздуйте на https://deworker.pro/ Курс он этот, наверное, до конца так и не доведет, но того, что там есть - за глаза для вката.
А зачем вообще учить php, если в роадмапе на php есть js? Я новичок и для меня выглядит странно, что для получения работы на одном языке надо ещё и выучить другой. Как будто php не самодостаточный.
>>2762050 Ну так везде, хоть в пхп, хоть в шарпе, хоть в жабе. Даже на го надо жс.
Но есть вакансии чисто бэк, только их 1/4 рынка. Просто зная и фронт и бэк у тебя больше шансов на вкат. Ну и по факту раз уж ты веб-разраб, то будь добр хотя бы немного знать фронтенд.
Приветствую, php господа, подскажите, есть ли какие-то общие принципы устройства на работу для прогера с опытом 2 года. Перебрал почти 250 заявок на hh, всего штук 10 приглашений, 3 собеса, и все молчат. Что после приглашения на hh, где пишут - мы рассмотрим, ожидайте, что после собеса. В чем хуйня кроется? Я уже от скуки свой проект начал пилить пишу на js
Это странно, что ты сделал 250 откликов и получил всего 10 приглашений (4%), имея опыт в 2 года. Очевидно, есть какая-то проблема в отправляемых тобой откликах, из-за которой почти все HR их игнорируют. Может быть, у тебя что-то не так в резюме? Оно оформлено по всем правилам, ты постарался подать себя наиболее удачно, кратко, упомянул все свои плюсы и достижения?
Попробуй на hh сделать поиск по резюме других разработчиков и сравни их со своим. Есть ли какие-то различия?
Может, ты долго тянешь и отправляешь отклики слишком поздно?
Может, отсутствуют какие-то важные навыки или, наоборот, есть что-то лишнее, что лучше убрать?
Нет ли каких-то завышенных требований с твоей стороны, вроде "тестовые задания не делаю"?
> и все молчат. Что после приглашения на hh, где пишут - мы рассмотрим, ожидайте, что после собеса. Значит, либо нашли кандидата лучше, либо ты чем-то не подошел.
>>2762127 Без регистрации функционал ограничен. Еще там вот премиум какой-то. На sql-ex есть тема на форуме для каждой задачи, где можно разные решения посмотреть и обсуждения, можно скорости запросов сравнивать, можно на разных базах запросы писать. Есть типа учебник, который с прицелом на эти задачи написан. Сотни полторы бесплатных задач, еще столько же платных рейтинговых с сертификатом там и прочей лабудой. Но бесплатных более чем достаточно, чтобы прохавать эту жизнь с самого низа.
>>2762122 >В чем хуйня кроется? Хуя знает, вкатывался тогда же, когда и ты хотя я тебя наверное путаю с другим аноном, ибо два треда были похожих недавно. Откликнулся на штук 7 вакансий. Два раза присылали тестовые. Второе тестовое заебись сделал. Через неделю работал уже. И это без какого либо опыта. И при том, что мне уже бабки на макентош деревянный копить надо.
Резюме у меня ваще было инженера, блять, механика. Я правда откликался в первые часы публикации вакансии. А ты поди там месячной давности предложения дрочишь, которые закрыты на самом деле давно.
Ожидания по зарплате поди неадекватные себе там проставил.
Сегодня пришло письмо на почту по поводу вакансии битриксоида, хотя у меня на хх вообще 0 упоминаний битрикса, нахуя они мне написали? В битриксе все настолько плохо, что она ищут хоть кого-то?
>>2762187 Пояснишь подъеб? Звучит слишком обще. Если так говорить то фронтенд и нужен для получения данных с бека и выведения их в кнопочки и формочки. Если уж очень обобщить. Так что ты имеешь в виду?
>>2762193 А в где подъеб? Ты бегаешь по тредам и спрашиваешь, как работу найти вроде. Значит хуйней занимался 2 года. За это время уже фулстеком мог стать крепким - было бы желание.
Какие-то там банальнейшие действия расписал в целые простыни, да еще и с повторами. Хз, таких как ты за забором тысячи у компаний. А ты еще и старый
>>2762213 А оно все связано. Тебе нечего писать-то. Вот ты и высасываешь из пальца для объема все, что можешь.
А мысль самая банальная - рыночек уже не тот. Ты либо постоянно развиваешься, либо идешь в битрикс бултыхаешься в болоте с вкатунами. Ну серьезно, чел, в 2к23 - хтмл, сисесе, фигма и мало-мальски вью.
Ну как ограничен, только готовое решение нельзя увидеть, а свое писать и проверять можно. А по твоей ссылке без регистрации вообще сделать ничего нельзя плюс шрифт мелкий какой-то.
Но тут конечно еще вопрос в качестве задач, чем они различаются.
>>2762326 >Ну как ограничен, только готовое решение нельзя увидеть, а свое писать и проверять можно. А по твоей ссылке без регистрации вообще сделать ничего нельзя плюс шрифт мелкий какой-то Бля, ну если мелкий шрифт и регистрация перевешивают все, что я выше перечислил, то в пизду нахуй, я руки умываю.
Ок, выглядит не так плохо, как я представлял. Почему же такой низкий процент ответов, интересно.
Попробуй еще искать вакансии не только на HH, но и например в Телеграм-каналах, на каких-то других площадках (например, Хабр-карьера).
Ты пометил телефон как не предпочтительный способ связи. Но HR может быть удобнее позвонить и сразу что-то выяснить, а не ждать ответа на почте. Я советую сделать телефон тоже предпочтительным. Делай так, чтобы твое общение с HR шло как можно быстрее и без задержек с твоей стороны. Откликайся на вакансии как можно раньше, в первую очередь на самые новые.
В опыте работы ты описал свои задачи. Но ты не описал, какая от этого была польза в итоге. Мне кажется, это тоже надо не забывать, а то ты там что-то рефакторил, а зачем - непонятно. Напиши хотя бы что-то в стиле "в итоге стало удобнее ориентироваться в коде, названия компонентов стали более понятными, структура более логичной".
То есть в идеале описать, что ты сделал и что это дало в итоге.
Ну и не стоит писать совсем какие-то мелкие вещи в стиле "переименовал 1 переменную". Рефакторинг - можно, а совсем простые вещи не надо.
"добавляю лоадеры, модальные окна и пагинацию на странице;" - это не тянет на "ключевой" навык. Максимум можно упомянуть в опыте работы про это.
В сопроводительном тексте ты в ключевых навыках не указал верстку. То есть, получается, адаптировать готовый макет ты можешь, а с нуля верстать не умеешь? Надо срочно научиться, хотя бы основам, и указать это в резюме: "верстка макетов, с поддержкой адаптивности для разных устройств".
То же самое касается Vue/React, ты написал, что умеешь исправлять баги в готовом приложении, а свое с нуля напишешь? Я думаю, что сможешь, просто ты зачем-то об этом умолчал. Так и пиши: "создание и доработка приложений на фреймворках Vue и React", "отладка и проверка API с помощью Postman".
Можешь добавить "не боюсь работать с легаси кодом, при необходимости рефаторить его".
" оптимизировать старый код под новые задачи" - тут должно быть не "оптимизировать", а "адаптировать". Оптимизируют производительность, расходы или какие-то другие показатели.
Не знаю, есть ли такая возможность на HH, но там теги идут в перемешку, вот бы их как-то упорядочить (сначала CSS, потом JS, потом библиотеки) для более удобного чтения.
В тексте "О себе" нет разбиения на абзацы (пустой строкой), все идет сплошной стеной, неаккуратно. То же самое в опыте работы.
По поводу опыта работы, там есть фраза
> - перенос css классов в module.css;
Как я понимаю, module.css это какое-то внутреннее название, которое постороннему ничего не говорит. Лучше написать что-то вроде "более удобная организация размещения CSS-кода". А то мы не знаем что у вас там за файл с названием module.css.
> на основании нового дизайна ( работал с Фигмой).
Здесь у скобки пробел лишний. И еще там в паре мест запятые пропущены.
> Оптимизация компонентов проекта (добавление новых входных параметров в компоненты и удаление Легаси кода)
Здесь "добавление новых параметров" это совсем мелкая задача, в стиле "переименовал переменную". Легаси пишется с маленькой буквы.
>>2762082 Я увидел, что ты соглашаешься с аноном выше. Посчитав, что ты ирл разраб, решил спросить у тебя, а не у вкатуна, но вижу ошибся, ведь ты типичный вкатун-токсик. Ссу тебе на ебало, гандонище. Срыгни нахуй отсюда.
битриксоиды выручайте вкатыш на минималках, случайно удалил эту ебанину/bitrix/components/bitrix/socserv.auth.split ,где ее можно скачать ?или скиньте сам файлик
>>2761920 (OP) Пиздец, я кажется рос и взрослел вместе с этим тредом. Сколько ему лет? Не верю, что это только #133. Мне кажется я видел эти php-треды c узнаваемой первой пикчей с года этак 2014 если не раньше...
>>2762410 Срыгни нахуй ебло блять. Мне похуй на твоего куколдсеева, ты мне по Зандстре что-то дельное и аргументированное ответь. Но ты не ответишь, ведь ты не читал и вообще говно ты а не разраб. Просто нахуй срыгни тварь.
Посоветуйте какой-нибудь пример проекта на гитхабе, сделанного на этом фреймворке, пожалуйста. Чтобы большой и по фен-шую с бест практикс. Сам найти не смог, везде либо что-то обучающее на три контроллера, либо жуть от индусов.
>>2762805 >Laravel >по фен-шую с бест практикс Ларавел это квинтессенция хуяк-хуяк в продакшен. По максимуму используй динамизм пыхи __get, __set, __call, method_exists, gettype и т.д . Но такого ты в тырнете не найдешь. Вместо этого ты найдешь натягивание на ларку ддд и гексагональной архитектуры чере одно место. При том что долбаебы, которые это творят, должы были знать что ларка косплеилась с рельсов. Для ларки больше подходят все грязнохаки 1) Манкипатчинг 2) Динамическая типизация 3) Кодогенерация 4) Это все только при строгом прорабатывании в проекте и дальнейшем соблюдении convention over configuration. 5) Это все только при наличие тестирования всего и вся
>>2762888 В ответе твоем трясется. Адекватный бы человек ответил так - у Ларочки лучшая в мире документация, просто делай, как там написано, и получится конфетка.
>>2762899 А ты не будь ларавельшиком. Нужно различать разные паттерны и подходы. Конечно ларке не избежать ухода от изначальной идеи фреймворка, в котором уже все есть готовое, если максимально придерживаться соглашений. Потому что пыха сама стремится к жаве, а не к рубям на рельсах. Например выпил форм и хелперов из ларки был с этим связан скорее всего.
Аноны, поясните, что значит разработчик Битрикс? Это я должен буду пилить какие-то расширения для CMS хуиты на базе Bitrix Framework? Если так, то получается и для Bitrix24(CRM) я тоже буду пилить расширения?
>>2763150 Можно писать модули под коробочный битрикс24, а можно под облачный интеграции на ларке, ноде, питоне. Зависит от работодателя. Я устраивался как-то на тайпскрипт на бэке и реакт на фронте.
Стоит ли задумываться о перекате из php во что-то, что может иметь большую востребованность в будущем, тем самым вырвавшись из ловушки "знаешь только php -> хочешь перекатиться в Java/C#/Go/TS/и т.д., потому что новых больших проектов на php в перспективе скорее всего не предвидится -> бросать php страшно, ведь в других языках ты и вовсе не имеешь никакого опыта -> возвращаешься к php"?
Стоит ли игра свеч и переката, нужно ли об этом задумываться, либо лучше наоборот углублять экспертизу в родной пыхе? Да, например в Java скорее всего новых проектов не намного больше, чем на php, но у нее и изначальный охват намного шире, например взять хотя бы банковскую сферу.
P.S. Я не хочу сказать совершенно ничего плохого про php. Хотелось бы просто переложить часть яиц из корзины php еще в какую-то корзину, на всякий случай, так сказать. Какую стратегию выбрать? Может быть просто добавить к php основательные знания какого-нибудь Реакта?
>>2764261 Ну так перейди на го, пока еще есть вакансии. Правда с понижением грейда, ну и подумаешь поработаешь годик за 60-80к вместо 150. Другое дело что и вакансий на го в мире на порядок меньше чем на шарпе или джаве
>>2764274 >А че остались еще те, кто к пыхе не освоил какой-нить вронтенд фреймворк? Я имею в виду освоить на таком уровне, когда реакт можно использовать как полноcтью независимую от php платфору, а не только лишь фронтенд.
>>2764261 Да фиг пойми вообще. Кто-то говорит - давай в PHP, работы до фига, новичку проще вкатиться. И тут же в другой ветке - все новые проекты на GO, Node.js, python, не учи PHP ни в коем случае.
Чел, вкат сейчас закрыт для новичков на любом стеке. Печально но факт, или въебываешь с утра до вечера годик-два в надежде наебать работодателя что уже мидл, или иди в плиточники
>>2764742 Главное - направление, мистер вкатунец. Изучать надо сферу, в которой работать собрался, а не язык. Ну че вот ты там учить в PHP? Если что-то одно в направлении освоил, то на другое перекатишься без проблем особых. А с чего начинать - это ты на XX пиздуй и потом вкатывайся в 1с
Вы используете классы, библиотеки, которые писали в предыдущей конторе и подписывали документ об интеллектуальной собственности (все что там было написано, принадлежит компании)?
Вы лучше покажите проект на ларе на гитхабе, который прото нормальный. Это не намёк на то, что ларавел плохой, а просто мне нужен пример, на что равняться при написании своих проектов
>>2765638 >нормлаьно писать можно даже на вордпрессе А нужно? Можно каллиграфическим почерком вывести говном на ободке унитаза пожелание доброго дня, только кому оно нахуй обосралось?
У нормальных людей принято каллиграфически писать на открытках, а в унитаз срать. То что ты свой вордпресс-унитаз решил расписать под хохлому это как раз "не нормально".
>>2765695 >, а в унитаз срать Ну так и срать можно нормально, а можно так, что дерьмо даже на потолке будет. Так что про хохлому - мимо. Или ты, когда видишь, что нужно писать не на Единственном Святом И Правильном Богоподобном Фреймворке, сразу же начинаешь косплеить эху TYT.BCE.HACPEM?
>>2765986 >Ну так и срать можно нормально, а можно так, что дерьмо даже на потолке будет Так и сри нормально, и не булькай блядь.
>когда видишь, что нужно писать не на Единственном Святом И Правильном Богоподобном Фреймворке Когда я это вижу я спрашиваю: почему? Я спрашиваю: почему мы пишем не на "святом", зачем это нам? Просто так даже мухи не срут. И ответ в 99% случаев: сэкономить. Сделать быстрее, заплатить меньше.
В этой ситуации от исполнителя требуется принять правила выбранного унитаза, его жопе принять форму выбранного унитаза и побыстрее посрать. Какой ты при этом танцор и какие у там тебя яйца никого не ебет. Если ты вместо сранья начнешь плясать, тебе совершенно по делу предьявят хуй к носу.
>>2764261 Зачем ты здесь спрашиваешь? Ты же не знаешь кто тебе пишет. Иди на qna.habr.com или в другое подобное место. Или просто почитай статьи людей в теме, например профильных компаний и других кто связан с IT. Или посмотри вакансии. Я вот открыл HH и по запросу PHP получил на первой же странице больше десятка вакансий для новичков.
Учись работать головой. Ты же хочешь стать программистом, там думать надо. Ты же не в совке чтобы за тебя думали. На PHP работает около 80% всех сайтов в мире. Это о чем то говорит? Наверное о том, что он еще очень долго будет основным языком интернета.
>>2767750 >Я вот открыл HH и по запросу PHP получил на первой же странице больше десятка вакансий для новичков. Невыдуманные истории о которых невозможно молчать...
Что с долбанным битриксом? Как сделать чтоб левое меню было такое же как и выпадающее? Почему выводится меню из другого раздела? И там и там (в папке) есть файл .left.menu, но с разными пунктами. При сброске кэша происходит обратная ситуация, меню компании отображается в разделе партёрам, пик 3-4.
>>2768233 Дизайн, да, калл, шаблон из коробки. Короче проблему решил выключением кэширования у этого компонента, хз насколько это правильно. Может битриксойды подскажут.
Сколько сейчас мидл+ на пыхе на удалёнке в России получает? Смотрю на рыночек, и он явно не про 300к/сек. Мне кажется, максимум уже можно выжать это около 200к, а так 120~150 стандартная расценка для ДСов. Много говновакансий с 250+ на сеньёра, но будем честны, они либо висят годами, либо не для вас написаны. Если честно, то я понятия не имею, для кого они написаны, профи уровня god обычно такие суммы забугром начинают зарабатывать, а если не начинают, то это уже вопрос, того ли уровня прогер на самом деле или нет.
>Зато грузится сразу, а на как SPA Бля, ну с торреном еще сравни. "Зато грузится сразу, а не как 2гб видео". Связь какая? Дизайн говна, какая нахуй SPA, селюк?
>Выглядит получше современного смузи дизайна с одной кнопкой на полэкрана А эта кнопка в пол экрана сейчас с тобой в одной комнате?
>>2770770 >Сколько сейчас мидл+ на пыхе на удалёнке в России получает? Столько примерно и получает. 300к это заход на тимлида.
>Много говновакансий с 250+ на сеньёра, но будем честны Согласен, 250к это копейки. А вакансии меньше 300к это по определению говно ебаное. Созданы они чтобы запутать наивных профи уровня god пхп сеньоров. Ну и чтобы среднюю зп сбить.
Помогите пж, у меня есть несколько вопросов. Как убрать то, что пункты дублируются? После замены ссылки /company/ на /company/index.php или /company при нажатии на пункт выдаётся ошибка 404 nginx. Второй вопрос, как убрать постоянное подсвечивание пункта "О компании" при переходах на другие страницы/разделы? И 3, как сделать так чтоб при переходе на другие разделы, меню оставалось общим, а не уменьшалось до пунктов выбранного раздела?
>>2771344 Не думаю что тут дело в вёрстке, скорее в логике работы с битриксом. Из кода тут хрен знает что скидывать, вот код компонента левого меню: <?if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();?>
был опыт на пыхе несколько лет назад, сейчас есть необходимость вернуться. Что сейчас с рыночком для средних программистов без какого либо охуенного опыта?
Аноны такая хунта не понимаю как пофиксить в битриксе,заимпортировал в директорию аплоад папку с элементами каталога,все загрузил как по гайду и у меня хуйня как на пиках, типо в самом каталоге все ок, все товары и разделы показывает, но как только перехожу в любой из них , нихуя, я уже хз, до импорта делал все по гайду этого же ютубера, но там так же нихуя не вышло, думал заимпортировав готовый ,чтото изменится, куда рыть?
Тебе надо изучать документацию. Чтобы знать, как работает Битрикс и его модули и увидеть, где ошибка. Для проблем с версткой (что-то криво отображается) можно использовать, например, инструменты разработчика в браузере (F12). Ну то есть, как ни крути, минимум надо знать Битрикс, а плюсом делательно знание HTML/CSS и в идеале еще и PHP.
Без этого ты так будешь тупить на каждой проблеме.
Еще возможно, что ты просто невнимательно следовал гайду и пропустил какой-то шаг. Или просто в гайде ошибка. Или он рассчитан на другую версию Битрикс, или нужно поменять какую-то настройку.
>>2772196 >Что сейчас с рыночком для средних программистов без какого либо охуенного опыта? Ну вот какой, блять, ты ответ ожидаешь, средний программист. Пускай будет - нормально.
>>2773919 >контроллер примера не нарушает принцип единственной ответственности? Ну давай определение - как ты этот принцип понимаешь. А потом пиши, почему у тебя возникли подозрения в его нарушении.
>>2773919 >И использование require __DIR__ можно ли назвать правильным решением? Можно назвать, а можно не назвать. Ты четко суть формулируй. Откуда этот вопрос? Почему сомнения?
>И можете объяснить поподробней, как понять, сколько нужно контроллеров, моделей? Где их располагать? Как должна выглядеть структура проекта? Клонируешь себе репу Laravel, Yii2 или Symfony. Открываешь доку\гайды\бестпректис\внутренности самого фреймворка и не ебешь мозза хероборой самописной. А если прям хочеться поебать, то потом уже накатываешь Slim, обмазываешь его любым говном, каким только хочешь и как хочешь, и возишься с ним.
>>2774084 В Битрикс конторах ты по большей части как раз таки будешь кнопки красить и прикручивать карусельки на жиквери и всё это мышкой через админку или по фтп Работая с этим говном ты будешь всегда фуфелом и чмошником в глазах остальных фронтендеров и бекендеров.
>>2774104 Это БАЗА, которую никогда не сможет осознать и принять чмонька, который вкатился в свои 16-20 лет на удаленку, и который за всю жизнь тяжелее хуя в руках ниче не держал.
> контроллер примера не нарушает принцип единственной ответственности?
Ты считаешь, что он отвечает за несколько вещей сразу? За какие именно?
> И использование require __DIR__ можно ли назвать правильным решением?
В больших проектах лучше использовать автозагрузку, но здесь минимальный пример, чтобы не писать автозагрузчик (и не объяснять новичкам, что это такое), использован require.
> И еще класс Post является моделью? Почему?
Он является частью "модели". "Модель" в MVC это код, который содержит бизнес-логику, то есть ту логику, ради которой пишется приложение, например: показ объявлений, поиск объявлений, добавление оъявлений и тд.
> An MVC model contains all of your application logic that is not contained in a view or a controller. The model should contain all of your application business logic, validation logic, and database access logic.
Заметь, что у слова "модель" есть 2 смысла: 1) это часть MVC-приложения, содержащая всю бизнес-логику 2) это класс, который является моделью (эквивалентом) какого-то реального объекта, например модель Товара в магазине, модель Пользователя форума. Такой класс еще назвают сущность (entity)
> сколько нужно контроллеров
Сколько у тебя можно сделать действий на сайте. Например, просмотр объявления - 1 контроллер, добавление объявления - второй, удаление - третий регистрация - четвертый, итд.
> моделей?
Сколько нужно для реализации бизнес-логики. Модель будет включать в себя:
- сущности, вроде Объявление, Пользователь, Категория - классы для загрузки и сохранения сущностей в БД - классы для валидации данных - классы для выполнения операций над сущностями
> Открываешь доку\гайды\бестпректис\внутренности самого фреймворка и не ебешь мозза хероборой самописной.
Ну ты и чушь пишешь. Обычно разарботчики фреймворка предполагают что ты уже знаешь ООП, MVC, HTTP, SQL, валидацию форм и тд и не обяъсняют такие базовые вещи, а лишь объясняют, как они реализованы в фреймворке. Если ты не зная основ полезешь в документацию по фреймворку, то ты половину не поймешь.
>>2774146 >Сколько у тебя можно сделать действий на сайте. Например, просмотр объявления - 1 контроллер, добавление объявления - второй, удаление - третий регистрация - четвертый, итд. КРУДы выходят из чата?
>>2774020 >Клонируешь себе репу Laravel, Yii2 или Symfony. Не, вот на это забей. Бери ТОЛЬКО Лару. Я уж все перечислил, чтобы местные шизики не тряслись. Но именно для вката начального Лучше лары ниче не придумали. А на симфонистов поехавших - пояиг.
>>2774104 >>2774142 Лол, я 10 лет хуярил перфоратором и тянул кабеля, так что не надо мне пиздеть про гречневую работу. Вкатился сначала в местную битрикс парашу за 30к, поскольку в моем мухосранске нет больше нихуя для начинающих, сразу понял какое это дно и через 4 месяца перекатился на удаленку в реальсы за 60к, предварительно немного подрочив рельсы. Работая в этой ебучей студии первый месяц я получал сертификаты и занимался хуйней, потом остальное время красил кнопки, причем каждый второй проект без гита на говнохостинге и даже фтп не везде, трекаешь чуть ли не поминутно и ебут мозги за то что мало часов закрыл. Какое говно я там только не видел, каждый раз ты разгребаешь эти авгиевы конюшни. Ну нахуй, как перекатился так и приятнее работать стало
>>2774749 >Работая в этой ебучей студии первый месяц я получал сертификаты и занимался хуйней, потом остальное время красил кнопки, причем каждый второй проект без гита на говнохостинге и даже фтп не везде, трекаешь чуть ли не поминутно и ебут мозги за то что мало часов закрыл. Какое говно я там только не видел, каждый раз ты разгребаешь эти авгиевы конюшни. >Ну нахуй, как перекатился так и приятнее работать стало Всяко лучше, чем перфоратором долбить
>>2774202 Пока что я отдрочил курсы длинной примерно по 10 часов по каждой хуйне (CSS/HTML/MySQL) (по MySql еще и задачки решал из разных источников). Запилил на пыхе по гайду Форму для Регистрации и авторизации, РЕАЛИЗОВАЛ хуйни типа пикрил
Пикрилейтеды подключены к базе данных на phpmyadmine. К JS пока не притрагивался, еще хочу по MySQL закончить один мини курсик. К битриксу соответственно тоже не притрагивался
>>2775054 В какой-то степени да, я всю область объехал и соседние тоже, каждый раз разный объект, смонтировал оборудование и съебался. Сборка и расключение шкафа тоже умственная работа как написание кода. Это 100% лучше чем ковырять битрикс и по сути тоже самое что и клепание нормального кода с точки зрения получения удовольствия от работы, только более подвижная работа, если будет равная зарплата то есть смысл выкатиться обратно и работать руками.
>>2774146 Спасибо. >Ты считаешь, что он отвечает за несколько вещей сразу? За какие именно? Скрипт инициализации, который подключает классы Post и PostService. Подключения представления. То есть контроллер включает в себя и Post, и PostService и шаблон для вывода списка объявлений. Я запутался и не понимаю как сделать контроллер таким образом, чтобы он отвечал только за какое-то одно действие, а не еще за инициализацию чего-то.
А есть какой-то правильный вариант расположения контроллеров, моделей и т.д? Типа все контроллеры в одну папку, все модели в другую? Шаблоны в третью?
>>2775770 >я всю область объехал и соседние тоже Если шило в жопе и любишь запаковывать\распаковывать\грузить оборудование, трястись в дороге по 16 часов, контачить со всякими местными "инженерами\бригадирами\начальниками" то тогда конечно. у меня на установке тахов, глонасс и ДТ было так
Сап, какая есть годная библиотека, которая бы парсила урл и делала из него объект? Понятно, что самому такое можно написать, но наверняка есть готовое решение. Также нужна библиотека для работы с файловой системой. Сорри за нубский вопрос.
Коллеги как дебажить метод в который приходит запрос от строннего приложения? В пет-проектике я разбирал всё вардампером, а здесь мне нужны заголовки от другого приложения
>>2776129 Запрос приходит не в "метод", а на веб сервер. А данные сервера попадают в пхп через суперглобальные массивы $_SERVER, $_GET, $_POST, $_FILES, $_COOKIES.
> То есть контроллер включает в себя и Post, и PostService и шаблон для вывода списка объявлений.
Нет, он их не включает, а вызывает. Ведь код Post описан в отдельном классе, а не прямо в скрипте контроллера.
> А есть какой-то правильный вариант расположения контроллеров, моделей и т.д? Типа все контроллеры в одну папку, все модели в другую? Шаблоны в третью?
Да, примерно так и делают.
В большом проекте моделей много и их дополнительно разделяют на отдельные папки, например: новости, форум, статьи итд. То есть, если проект большой, то мы разбиваем его на модули.
>>2776178 >>2776552 Нарисовал картинку - как мне отловить где мое приложение сыплется. Если что в роли клиента я сам могу быть, т.е. дергать стороннюю приложуху, чтобы оно слало мне запросы
>>2776559 Во первых: что за "приложение". Ты его сам написал? Там есть логгер, фремворк? Что это блядь вообще?
Во вторых: что значит "пук среньк"? Что за ошибка? Если ошибки нет в ответе, то где обработка исключений?
В третьих: где твое приложение? Оно на каком-то сервере? Ты можешь его локально поднять? Там есть дебаг режим? xdebug так-то надо включать на сервере, он должен быть в составе пхп. А если все это локально, то можно просто зафорсить отображение ошибок в Index.php и все.
>>2776649 Плюсов много: зп выше, стигму пхп макаки отмываешь, задачи интереснее. Минус только один: го говноязык для дегенератов. Писать на нем физически больно. А если следовать ебанутым правилам комунити типа однобуквенного названия переменных, то совсем хуево становится.
>>2776663 Никак. Ты начинаешь с того что переписываешь на го какой-то сервис на текущей работе. Потом другой. потом ты пишешь только на го. Потом ты ищешь работу на го имея пару лет опыта.
>>2776658 > А если следовать ебанутым правилам комунити типа однобуквенного названия переменных Да ну, скорее это для назло джавистам уши морозятся. Я думаю, там норма как на пыхе, переменные в одно-три слова. Там же неймспейсы есть?
Стоит ли для портфолио написать круд на чистом пхп с использованием ооп и мвс, если для 90% вакансий в моей мухосране не требуется фрейморк? Или пох, сразу написать бложик на ларе?
То есть тут из подводных битрикс? Уверенные знания и опыт программирования на PHP Хорошие знания MySQL, проектирования структуры базы данных Понимание принципов ООП и MVC Хорошие знания JavaScript Знание HTML/CSS Опыт работы с системой контроля версий git
>>2777543 Чел, херочка из любой неайтишной конторы с битриксом может из любой ей понравивщейся вакухи требований к себе надергать, да хоть кафку с кубером. Ты только догадаться сможешь если рядом с кафкой вдруг окажется знание экселя.
Вообще, вордпресс хуже Битрикса, так как он предназначен для блогов и что-то более сложное делать на нем просто нелогично. В плане кода там примерно такое же качество, как в Битриксе, все на функциях, массивах и хуках. Я-то думал, ты объективно можешь предложить хорошую альтернативу, а тебе просто лишь бы Битрикс облаять.
>>2777599 >Вообще, вордпресс хуже Битрикса, так как >В плане кода там примерно такое же качество >Я-то думал Еще раз, маркетолох. Уебывай со своей каловой массой, она нахуй не никому не нужна. Джумла, магенто, опен карт, во что ни ткни будет на голову лучше калового битрикса. Сначала моча, потом говно, потом блевотина, потом опять сто метров говна, потом идет битрикс.
>>2777440 Везде проталкивают интеграцию с 1С, он на слуху из-за Битрикс 24 но никто из заказчиков не видит разницу с бус, для госконтор есть сертификат от товарища майора и его указывают в тендерах. Короче тупо маркетинг от компании монополиста бухгалтерского софта
>>2776595 >Во первых: что за "приложение". Ты его сам написал? Там есть логгер, фремворк? Что это блядь вообще? Написали мои кал-леги, фреймворк - cakephp 4 пиздец и логгер monolog. Хостится оно по идее на стороннем сервере, но для разработки запускаем локально. Стороння залупа - это облачный битрикс24, клиент кликает кнопку, в нём вызывается событие - битрикс отправляет запрос к нашему приложениюпо заранее известному адресу - приложение получает запрос, а дальше возвращает должно возвращать ответ битриксу. >Во вторых: что значит "пук среньк"? Что за ошибка? Если ошибки нет в ответе, то где обработка исключений? Ошибка есть но возвращается она битриксу - я как раз пытаюсь её перехватить, чтобы понять что идёт не так. Мне посоветовали ngrok - как я понимаю, это дополнительное звено между нашим приложением и битриксом, оно создает публичный адрес, битриксу мы прописываем этот адрес - типа вот тут стороннее приложение, а ngrok уже редиректит на запрос на локалхост, где и развернуто приложение. Вот внутри нгрока я вижу что возвращается 500. Я пытаюсь понять где конкретно в коде происходит ошибка.
>>2778258 1) ставишь xdebug 2) в конфиге xdebug xdebug.start_with_request=yes 3) Настраиваешь пхпшторм для работы с xdebug 4) ставишь беркпоинт в обработчике 5) запускаешь в пхпшторм прослушку 6) нажимаешь свою кнопку в битриксе
>>2778258 >Написали мои кал-леги, фреймворк - cakephp 4 пиздец и логгер monolog Так что в логах?
>Стороння залупа - это облачный битрикс24, клиент кликает кнопку, в нём вызывается событие - битрикс отправляет запрос к нашему приложениюпо Что тебе мешает отправить запрос самому, вместо битрикса?
>>2778258 Я не вижу зачем тут xdebug. Что толку локально дебажить, может там база от прода чем-то отличается. Есть конкретный запрос, есть его логи. Открываешь логи на серваке и читаешь. Если логи не пишутся, то добавляешь свой код, который их пишет https://book.cakephp.org/4/en/core-libraries/logging.html#using-monolog и все. Какие нахуй ngrok'и вообще.
В такой ситуации тебе надо самостоятельно имитировать запрос от Битрикса (это скорее всего веб-хук). Я бы использовал для этого утилиту командной строки curl по типу:
curl -X GET 'http://localhost:5000/webhook/'
Если у тебя настроен xdebug, то ты можешь использовать его для отладки. Если нет, то просто используй var_dump или echo.
>>2761920 (OP) Что в GRASP для Создателя означает фраза: "содержит(contains) или агрегирует(aggregate) объекты A?" Это про композицию и агрегацию? Но суть агрегации заключается в том, что объект может существовать из вне и передается через конструктор, разве нет? И что значит "записывает(records) объекты A;". Как записывает?
>>2778460 Двачаю, надо просто сымитировать запрос на эту хуйню и поглядеть на чем падает, а вообще лучше подойди к более опытному коллеге и вытирая сопли скажи что ты обосрался
>>2778978 >Но суть агрегации заключается в том, что объект может существовать из вне и передается через конструктор, разве нет? Ну и? Вопрос то в чем или какое-то противоречие? Объект или создается или передается - похую. >И что значит "записывает(records) объекты A;". Как записывает? Пиздец, ты вот представь как твои вопросы со стороны выглядят. Ни контекста нихуя, блять. Че записывает, куда, блять, записывает. Подразумевается, видимо, что мы это херобору наизусть помним и сходу вспоминаем из какого контекста эти 2 слова вырваны.
>>2778978 >Это про композицию и агрегацию? Это про то что объект B работает с объектами типа A.
>Но суть агрегации заключается в том, что объект может существовать из вне Суть агрегации в том что несколько объектов превращаются в один
>И что значит "записывает(records) объекты A;". Как записывает? В переменную записывает.
Не знаю чем там у тебя в башке насрано, но паттерн описывается одним предложением: Если объект типа B уже взаимодействует с объектами типа A, то можно ему позволить создавать объекты типа A. Все блядь. Какие-то нахуй конструкторы приплел, какое-то извне, хуйню, малафью.
Сап, недавно вкатился в php, поставил Федору, поставил стак LEMP. Может кто объяснит почему в большинстве гайдов и туторов юзают xampp и есть ли между ними существенная разница в перформансе?
>>2779500 >поставил стак LEMP. Может кто объяснит почему в большинстве гайдов и туторов юзают xampp и есть ли между ними существенная разница в перформансе? Чел, 2015 давно уже прошел.
Двачик, помогай! Дано время в Unix Timestamp. Необходимо отсчитать 4 дня, но только на рабочее время (понедельник - пятница и с 9 до 18). Например: если время пн 12:00, должно выдать пятница 12:00, а если время среда 5:00, то вторник 9:00. Тому кто поможет могу скинуть соточку на нямку.
Аноны, нужна помощь с установкой Swoole. Ебусь с этой хуйней весь день. Я установил расширение, в phpinfo оно показывается, но в IDE классы swoole not find. В чем может быть дело?
>>2780226 Проблема в том что это китайская дрисня без вменяемой документации и крупного англоязычного комьюнити. Сам факт что ты на двачи приперся с этими проблемами должен был тебе все объяснить.
>>2780351 И да, обычно в типовых букингах всё гораздо топорнее: у нас есть справочник рабочих дней/выходных дней. Необязательно прям реально справочник, мб это виртуальные объекты, генерируемые по заданным правилам, когда салон работает, аля сб-вс выходные, + праздники ( 1-3 января, 9 мая и т.д.) + санитарные дни, + форсмажоры, и прочее. И происходит банальная выборка рабочих дней на +4 вперёд. Не знаю, нахуя я это писал, и причем тут вообще пехепе
>>2780354 Шизик, нахуя писать какие-то условия, с каким-то циферками, матрицами хуятрицами, когда можно просто буквально написать "+4 рабочих дня" и всё?
>>2780360 Ебанько, я в первом же посте написал. https://3v4l.org/0fLU5 '+4 weekdays' добавляет именно четыре рабочих дня, с переносом. Пиздец, ты бы хоть погуглил как weekday переводится. С кем блядь я сижу в одном треде, пизда.
Мне не нравится постановка задачи. В реальности, скорее всего, придется учитывать праздники и переносы рабочих дней (плюс ситуации вроде нерабочий месяц из-за коронавируса). Получается, тогда надо сделать карту рабочих/нерабочих дней и по ней ходить.
>>2780361 Да блядь, а мы в Израиле находимся, и там выходной пятница - суббота. А у тебя в говнокоде какие-то ссаные weekdays прописаны. Вообще нихуя не очевидно, говно, а не решение. Завтра приходит клиент. и говорит, что у него теперь выходные дни - это среда и пятница, просто потому что, а у тебя в говнокоде weekdays. Ахуенное решение, очень гибкое
>>2780365 >рабочее время (понедельник - пятница >Мне не нравится постановка задачи >Да блядь, а мы в Израиле Срыгни в свой кибуц, жидок. Хуево быть тобой, у нормальных людей выходные в нормальное время.
>>2780369 Ну и в этом прикол, что БУДНИЙ ДЕНЬ под капотом у меня может быть не будним, а по коду этого вообще не очевидно. Пробегу глазами и не замечу. Это архаичное решение из девяностых, если не нулевых, я бы его использовать точно не стал бы
>>2780372 Куда ты нахуй пробежишь, чучело. Под капотом у тебя пивандепала с кальмарами. >Это архаичное решение из девяностых, если не нулевых Ты блядь слова в предложении расставить не в состоянии.
Поставленная задача решается буквально в одну строчку.
На то что ты там себе выдумал какую-то другую задачу всем строго поебать. Давай и дальше вместо того чтобы помочь человеку высирай охуительные телеги про израиль, будешь точно так же попущен и нахуй послан.
>>2780365 Кадзуха это универсальный копиум для слабых аккаунтов, потому что он максимально простой, сильно бафает урон и встает затычкой в любую команду Но уже буквально на аккаунтах которым хотя бы год-два и есть приличный ростер зв чемпов и ключевые зв С типа поварихи, фишль и т д он нахуй не нужен, потому что любой контент включая дырку без каких-либо усилий давится уроном В итоге его форсят либо криворуки, которые не умеют билдить чемпиков и им не хватает урона, либо ньюфаги
>>2780683 >Посните. Каким образом и почему PHP используется в финтехе? >финтеха выходит где-то второе место после джавы Откуда ты это взял вообще? Пхп это в 99% случаев сайтики. Приведи мне хоть один пример финтеха где пхп это не бекэнд для сайтика.
>>2780813 И? В сбере могут быть всякие лендосы и у них еще десятки проектов не связанных с финансами. Например в сбермаркете и домклике рельсы используют, сбер авто на гошке пишут.
Заебала эта ваша пыха. Деньгами тут не пахнет, есть более денежные языки с большими возможностями, актуальными на данный момент развития айтишечки. Единственное, что есть в пыхе - это дешёвая рабочая сила. В остальном язык либо уступает, либо примерно такой же, как остальные. Ну что там, с реляционными бд он быстрее работает? Не факт, сейчас пдо везде +- работают стабильно. И то, на фоне редисов и эластиксерчей это уже не так критично. Че ещё, большая библиотека велосипедов из коробки? А нахуй она нужна, только тормозит всё. Фреймворков море завезли куда хочешь, делай - не хочу. В чём там ещё плюс был?
>>2783300 Количество вакансий, в том числе вкатун-френдли - что имеет прямое отношение к >дешёвая рабочая сила , но всё равно имеет вес.
В качестве примера, на hh в моём Зажопинске по запросу: PHP - 16 вакансий JavaScript - 14 С# - 8 Java - 6 Python - 6 С++ - 5 При этом половина вакансий вылезших по не-PHP запросам тоже хотят PHP, в первую или вторую очередь - кроме очевидного большого пересечения с JS там вакансии по типу "знание одного из PHP/Java/C++ и опыт работы с фреймворками, желательно Yii2", "разработчик PHP (Laravel) со знанием DevOps, Python будет плюсом" и тому подобное. Потолок указываемых зарплат - 150-200к, большая часть таких предложений - внезапно - тоже PHP вакансии.
Ruby, Go и тем более всяких Scala, Clojure и Elixir тут нет. Только одна жирная конторка упоминает Go после C#, Java, С++ и TypeScript как возможный вариант.
>>2783300 >Заебала эта ваша пыха. Как она могла заебать если ты даже не вкатился? Ты реально думаешь, что если начнешь писать на другом языке то начнется ебать карнавал и веселье? Ты точно так же будешь сидеть и по восемь часов в сутки выжигать глаза кодом. Если ты этого не можешь, то тебе в программировании делать нехуй. Иди в манагеры или скрам мастера.
>Деньгами тут не пахнет Пахнет
>есть более денежные языки с большими возможностями, актуальными на данный момент развития айтишечки Есть
>Единственное, что есть в пыхе - это дешёвая рабочая сила >какой-то поток сознания Сына. Пхп выбирают для старта потому что ты можешь тупо пропустить половину того что нужно знать на "более денежных языках с большими возможностями". Вкатуну на пхп просто не надо знать нихуя про структуры данных и алгоритмическую сложность. Да и CS вообще. Его никто не будет ебать загадками на поиск в бесконечном ряду или какими-то графами. Его никто не будет ебать вопросами про перфоманс. Все что нужно знать про перфоманс пхп макаке - это то что нельзя делать запросы в цикле. Его даже никто не будет ебать вопросами как там эта пыха ебаная внутри устроена. Звалы, опкоды и прочая дрисня никому нахуй не нужна. Синтаксис знаешь? Охуенно.
Вкатуну на пхп нужно всего три вещи: 1) Осилить ООП. 2) Научиться минимально простым SQL запросам. 3) Высрать тудулист или бложик на фреймворке, который половину кода за него генерит, а документация у которого - брошурка на 100 страниц. Все. Приходи и получай свою сотку. Ты не осилил прийти и взять? Ну иди питон макакам расскажи свои проблемы. У них там конкурс тысяча пицценосцев на место.
>>2783953 Ну это-то нереально сложная хуйня. Тебе же надо с отбойным молотком пробиваться да?
Ебанько, ты даже не представляешь насколько этот процесс проще чем твоя будущая повседневная работа. Тебе всего-то надо срать своим резюме везде и отвечать на типовые вопросы на собесах.
Если ты не в силах делать правки в резюме, гуглить вопросы на собесе, на которые ты не смог ответить и оценивать меняется ли количество откликов, как ты код писать собрался?
Если ты не можешь следовать очевидному и простому алгоритму, то как ты собрался свои алгоритмы выдумывать? Пиздец. Злое айти не пускает в себя даунича. Так блядь переставай тупить.
>>2783979 Дура ебаная, я вкатился больше года назад. А ты со своими 3 пунктами на хуй можешь пойти - это требования из 17 года.
И вкатился я с первого же нормального собеса именно потому что не был из тех ебанатов, которые уверены, что достаточно знать только тот кал, который ты обозначил.
>>2784003 >ООП, SQL, фреймворк >кал Стало даже любопытно, а какой такой НЕ кал ты знал, когда проходил тот собес? Представил, как ты заявляешь: хватит про этот ваш кал меня спрашивать, я знаю ТАКОЕ... и проиграл в голос.
блять как заебала эта дрочь , тут даже до кодерства еще не дошел, как эта залупа с установкой и подключением всякой поебени просто отбивает все желание.вот хуйли при подключении пхпшторма по sftp при создании битрикс проекта, при тесте конекта в ssh конфигуриции connection ok, но в окне sftp меня ждет пик.уже тресет нахуй
Ну так везде, хоть в пхп, хоть в шарпе, хоть в жабе Даже на го надо жс Но есть вакансии чисто бэк, только их / рынка Просто зная и фронт и бэк у тебя больше шансов на вкат Ну и по факту раз уж ты веб-разраб, то будь добр хотя бы немного знать фронтенд
>>2784003 Можно поинтересоваться, что еще нужно знать для успешного вката кроме ООП
>Вкатуну на пхп нужно всего три вещи: >1) Осилить ООП. >2) Научиться минимально простым SQL запросам. >3) Высрать тудулист или бложик на фреймворке, который >половину кода за него генерит, а документация у которого - >брошурка на 100 страниц.
>>2785409 Vue 3 \ React Docker'ом крутить-вертеть нормально. Соображать надо шустро, как разные сервисы между собой стыковать\настраивать. Для начала - хотя бы поднять апишку на Ларе и фронт на Наксте 3. Чтобы это все работало нормально.
Чистые бекендеры буквально не нужны теперь с развитием инструментов разработки и продвинутого поиска с помощью неросетей. Через пару лет вакансий просто не будет. В этом ты можешь сейчас прямо убедиться, открыв ХХ. Теперь ты должен быть и фронт и бек и девопс - веб разработчик одним словом. Ну это если ты дальше своего носа хочешь смотреть.
Но это, конечно, имхо подтверждающееся вакансиямы на срыночке. Ты можешь и этими тремя пунктами ограничиться от гуру, который вкатывался 8 лет назад. Авось еще проскочить успеешь.
>Docker'ом крутить-вертеть нормально. Нужно знать всего одну команду "docker-compose up" чтобы поднять локальный сервак. Все. Никто не доверит вкатуну "крутить вертеть". Самоубийц даже среди самых тупорылых кабанов нет.
>Соображать надо шустро Надо.
>сервисы между собой стыковать\настраивать Не будешь ты нихуя стыковать. Вкатуна же как раз для того и нанимают, чтобы сервисы стыковать. Ну чтоб риски повысить. Пусть прод полежит, продажи постоят, а лиды познакомятся с конкурентами.
>Для начала - хотя бы поднять апишку на Ларе и фронт на Наксте 3. Чтобы это все работало нормально. Я об этом в пункте 3 и написал. Накст кстати тут нахуй не нужен.
>Чистые бекендеры буквально не нужны теперь с развитием инструментов разработки и продвинутого поиска с помощью неросетей >Я нихуя не знаю про бекэнд поэтому его заменят нейросети Даже криворуких фронтендеров, которые нихуя не знают, нейросети не заменят. До тех пор пока не появится кто-то кто поручится деньгами за качество генерируемого нейропарашей кода, программистам можно даже не чухаться. До сих пор никто не попытался. А попытки будут. Вот после череды наебов, проебов и банкротств в этой сфере можно будет задаваться этим вопросом. Пока нет варианта страхования от проеба из-за бреда нейросети, можно считать что нейросеть для коммерческой разработки не существует.
>Теперь ты должен быть и фронт и бек и девопс Тебя девопс на свой сервак тупо не пустит. Он тебя не собеседовал, ты у него испытательный срок не проходил. Он блядь башкой отвечает чтобы серваки работали, схуяли он пустит какого-то пхп вкатуна че-то там шаманить и настраивать? В нормальной конторе у программиста даже на запись в прод базу прав нет. Потому что это не его зона ответственности. Составляешь запрос, пишешь тикет. Чтобы было видно кто проебался если что-то пойдет не так.
TL;DR чушь от человека, который в этом нихуя не понимает. Из полезного только: знать фронт, если хочешь делать задачи по фронту и шустро соображать. Охуенное открытие.
>>2785593 >А html и css типа не надо? В общих чертах надо. Это хуеву тучу лет даже не обсуждается. Чи рофл? >Не будешь ты нихуя стыковать. Стыкую. >Нужно знать всего одну команду "docker-compose up" чтобы поднять локальный сервак. Все. Никто не доверит вкатуну "крутить вертеть". Самоубийц даже среди самых тупорылых кабанов нет. Кручу-верчу. >До тех пор пока не появится кто-то кто поручится деньгами за качество генерируемого нейропарашей кода, программистам можно даже не чухаться. Суть в том, что теперь разраб, который мальца соображает, может справляться со смежными задачами в разы эффективней, дурашка. И все меньше необходимости в том, чтобы держать кучу узконаправленных спецов. >Тебя девопс на свой сервак тупо не пустит. Он тебя не собеседовал, ты у него испытательный срок не проходил. Дура, вакансии открой - вкатану один путь НА ГАЛЕРЫ ВАСЯНСКИЕ, где сидит три калеки на все руки мастера.
Сука, вы внатуре маня-ебанаты, деформированные до нельзя.
>Из полезного только: знать фронт, если хочешь делать задачи по фронту и шустро соображать. Охуенное открытие. Значть как можно больше, чтобы обойти сотни конкурентов на повороте. Все, дура, ты в своем мирке живешь, тебе больше не отвечаю.
>>2785683 >Стыкую. Что ты блядь стыкуешь? Кальмар с пивандепалой?
>Кручу-верчу. Конкретно. Что ты там блядь крутишь и кому?
>Суть в том, что теперь разраб, который мальца соображает, может справляться со смежными задачами в разы эффективней, дурашка. Но ты то блядь нихуя не соображаешь. Ты просто решил что оно будет так. Ты блядь даже не писал этот бек никогда, и не девопсил нихуя.
>Дура, вакансии открой - вкатану один путь НА ГАЛЕРЫ ВАСЯНСКИЕ >где сидит три калеки Бля, ты даже не понимаешь что такое галера и как они функционируют. Погуглил бы хоть, чучело.
>Значть как можно больше, чтобы обойти сотни конкурентов на повороте Ага. Так и представляю. Принимают повара в столовку на заводе. А он начинает лечить: ну я кароч станки могу чинить. Какие станки? Что чинил? Ну это моя первая работа, я кароч книжку читал. Так что если сломается станок, то я готов. Вы приняты, пожалуйте к станку.
Дегенеративное хуйло, ты понимаешь разницу между: "фронт 4 года опыта, бек 3 года опыта, админил серваки два года" и "пук среньк я вкатун кароч курс прошел, могу у вас в перерывах между обучением программированию прод админить"?
Скорее всего, в IDE надо как-то подключить стабы или еще что-то для поддержки Swoole. Погугли, нет ли расширения к IDE, если нет, то можешь попробовать написать его сам.
Тебя никто не заставляет использовать PHPStorm вообще-то.
Также, ты там совсем с дуба рухнул, подключаться к серверу по sftp И редактировать там файлы? Если там нет гита, то просто настрой синхронизацию файлов со своим компьютером.
Не везде нужна квалификация сеньора. Вот представь задачу: обновить пользовательское соглашение, поменять на сайте все ссылки на него. Тут дороговато такую мелочь сеноьорами закрывать, а вкатун самое то.
Или сделать лендинг с формой сбора контактов. Опять же, сеньору делать больше нечего, как статические лендинги клепать.
Да и вообще, нужна золотая середина. Брать одних сеноров - будет хорошо, но дорого. Брать одних вкатунов на низкооплачиваемую стажировку 10 ч в день - сломают все. Нужно найти баланс, где мы получаем достаточный уровень качества, но с минимумом затрат.
>>2785888 Причем тут вообще нахуй сеньоры? О чем ты вообще? Речь о том что никто в здравом уме не посадит пхп джуна на первой работе админить серваки, для этого блядь админ есть со своими джунами на подсосе. Какие нахуй сеньоры блядь? Какая середина?
Есть csv файл с числами вроде 0031000,0031999... и когда считываю их и пытаюсь преобазовать их из строк в массивы с помощью mb_str_split, то в начале первого массива появляеся дополнительный элемент с пустой строкой вроде ["", "0", "0", "3", ...]. В чем дело, знает кто?
Год работал на ларавеле, сейчас есть 2 офера, один на ларе, второй на симфони. Стоит ли перекатываться на симфони, если условия и зп на этих оферах одинаковые?
>>2786332 Слишком мало информации. Что они на симфони пишут? Как они на симфони пишут? Что за симфони в конце концов? Что за контора? Просто так прыгать на слово симфони нахуй надо. Придешь, а там сидят два долбоеба, которые сами этот симфони впервые видят и ебашут код хуже чем на ларавеле.
>>2786587 Лол. Сразу видно вкатуна. Весь прикол в том что эти челы не дадут тебе навести порядок. Это значит признать что они говнокодеры, которые проебали время и деньги. Нееет. Они будут тебе максимально мешать. Я был пару раз в таких ситуациях. Кому-то придется съебаться, мирного решения тут нет.
В первый раз я наблюдал как новый тимлид разгонял каких-то криворуких уебанов. После некоторого времени бесполезных споров он поехал к владельцу бизнеса и сказал чтобы он провел независимый аудит этого говнокода. Через недельку этих хуеплетов, человек шесть их было, попросили на выход с вещами. Но тогда и кода было немного и хуеплеты были неорганизованные.
А во второй меня как раз наняли "привести код в порядок". Еще испытательный не прошел, я понял что никто мне порядок навести не даст. Побазарили с cto и он в итоге признался что хотели постепенно говнокодеров по одному заменить, но чет там бюджет пук среньк и вот я тут один как фуфел. В итоге уволился с отступными.
>>2786831 Лол. Сразу видно вкатуна. Было бы желание, любому можно руки выпрямить, ссылаясь на стандарты и грамотно их вводя в разработку. Но у тебя самого видимо какие-то хоумрулы и отсутствие софт скиллов. Я тоже в одной шарашкиной конторе работал, которая из шарашкиной в что-то более зрелое апнуться захотела. Наняли одного профи на тимлида за оверпрайс, вроде толкового, вроде начитанного и опыт имеет. Только как руководитель он говно полное. Через некоторое время почуял свою власть и начал тупо обсирать всех попало и банить пры без объяснения причин. Работа просела, люди охладели, начали разбегаться, он тоже вскоре уволился, т. к. понял, что как руководитель не выводит. Денег нет, людей нет, шарашкина контора вернулась туда, откуда начинала. Вывод: иногда на вещи надо глядеть не только со стороны своей колокольни в белом пальто
За лямбды и map/filter/reduce среднестатистические PHP разрабы будут сразу морду бить или ничего, можно использовать в совместной работе при подходящем случае?
>>2786980 Можно, почему нет. Иногда даже желательно. Тот же ларавель анонимные функции много где использует и всячески поддерживает это дело. Даже слышал мнение, что работать с коллекцией через .each правильнее и быстрее, чем как с массивами через foreach пробегаться. Другое дело строчные анонимные функции, их никто не знает толком, да и не читабельно они как-то выглядят.
>>2786940 >Было бы желание, любому можно руки выпрямить, ссылаясь на стандарты и грамотно их вводя в разработку. Но у тебя самого видимо какие-то хоумрулы и отсутствие софт скиллов. Лол, ну и какие мне нужно скиллы применить чтобы ты сказал: "извини, братишка. Ты прав во всем, а я нет, зря быканул"? Твой пост опровергает твой же тезис про выпрямление рук любому. Ты лично готов спорить до усрачки. Невозможно переубедить человека, который просто считает себя правым на двощах. А уж когда от этого зависят бабки или уважение вообще тупик.
>почуял свою власть и начал тупо обсирать всех попало и банить пры без объяснения причин Согласен, хуйня полная. С тем же успехом он мог бегать по офису и компы выключать. Он долбоеб.
>Денег нет, людей нет, шарашкина контора вернулась туда, откуда начинала. Отличное подтверждение моего тезиса. Люди сидят в говне - не надо к ним лезть с вилкой. Ничем хорошим это не кончится. Не надо пытаться "навести порядок" надо сразу проходить мимо к нормальным людям.
>>2787309 >надо сразу проходить мимо к нормальным людям. Да ты же карьерист, социальный дарвинист, ещё наверное и эйджист в довесок. Пиздос, какие же гнилые люди в этой сфере крутятся... >Твой пост опровергает твой же тезис про выпрямление рук любому. Ты лично готов спорить до усрачки. Невозможно переубедить человека, который просто считает себя правым на двощах. А уж когда от этого зависят бабки или уважение вообще тупик. Не надо мне приписывать свои заслуги. Твоя позиция как минимум на том же уровне находится, что и моя, т.к. мы оба ссылаемся на личный опыт. И я не утверждаю, что ты прям полностью не прав, но мнение, что надо идти по головам и общаться только с лучшими из мира сего, я принять не могу, это попахивает раздутым эго и чрезмерным перфекционизмом к работе с высокими требованиями к окружающим. По сути все люди готовы переучиваться, просто надо найти нужный подход и потратить ресурсы на это, зачастую не такие уж и большие. Ну а если не получается - ок, возможно ты сам в этом вопросе не компетентен, не обладаешь нужными софт скилами, чтобы команду в нужном направлении вести. Ок, но в таком случае тебя тоже назвать хорошим специалистом сложно. Я бы даже сказал, что с такими людьми как ты лучше не работать по твоему же правилу.
>>2787578 >Да ты же карьерист, социальный дарвинист, ещё наверное и эйджист в довесок. И че ты порвался? Выбираешь компанию в которой дальше работать - социальный дарвинист? Типа когда на работу устраиваешься не надо даже название гуглить или что? Человек спросил: стоит ли выбрать компанию где используют другой фреймворк, очевидно не для того чтобы кого-то осчастливить, а чтобы строить карьеру. Он по твоему получается охуевший социал-карьерист-эджист? Ну ты и шизик.
>что надо идти по головам и общаться только с лучшими из мира сего Ты это мнение выдумал, я такого не говорил. Я привел тебе в пример наш спор, потому что точно такой же спор будет над тем самым говнокодом. Бесполезный и бесконечный. Кому-то придется уступить. Либо тебе завалить ебало и говнокодить как все, либо говнокодерам начать писать нормально. И говнокодеры будут сопротивляться изо всех сил. И я сразу сказал что таких ситуаций нужно избегать. Нервов и здоровья они не добавят. Откуда ты высрал "идти по головам" я хуй пойму. Куда идти по головам? Нахуя идти по головам?
>По сути все люди готовы переучиваться, просто надо найти нужный подход и потратить ресурсы на это, зачастую не такие уж и большие. А мой тезис что нет не все. Что есть охуевшие ебланы, которые заебись устроились и нихуя не хотят. И весь прикол в том чтобы это понять ДО устройства в компанию, а не после.
>нужными софт скилами Ты заебал с этим бессмысленным баззвордом "софтскилы". Я тебя еще раз спрашиваю, какие мне нужно волшебные софт скиллы применить чтобы ты сказал: "извини, братишка. Ты прав во всем, а я нет, зря быканул"?
>чтобы команду в нужном направлении вести Чтобы вести команду нужно обладать позицией тимлида. Если тимлид уже есть, то поведешь ты туда куда он скажет.
>>2787964 Сори, не хочу дальше спорить с некомпетентными людьми, у которых правда только одна - своя собственная. Можешь считать себя победителем по жизни
>>2787858 Не, это адекватные прайсы, так оно и есть сейчас в ру сигменте. Вот разброс цен на hh, это включая и синьоров, и джунов, и мидлов. Синьоры примерно от 200к получают, джуны до 100к. Все что между - мидлы. Причем тут стоит сделать оговорку, что резюме синьоров от 300к зачастую висят годами и/или ищут релокантов
> Еще испытательный не прошел, я понял что никто мне порядок навести не даст. Побазарили с cto и он в итоге признался что хотели постепенно говнокодеров по одному заменить, но чет там бюджет пук среньк и вот я тут один как фуфел. В итоге уволился с отступными.
То есть ты деньги получил, а задачу, ради которой Компания выдала тебе кредит доверия, не выполнил. Это твой личный провал.
Критерий выбора должен быть: легко ли читать код? Понятно ли намерение автора? Я иногда использую map (для простых преобразований), иногда пишу цикл.
reduce не люблю, так как его тяжело читать, и я не помню, какой аргумент что значит, и надо в голове преобразовывать его в цикл. Может, это только я такой, а для всех остальных он прозрачен и понятен.
Алсо, вместо function используй стрелочные функции, читать тяжело.
Ну например: люди плохо офрмляют код. Можно ввести стандарты оформления, и автоматическую проверку стиля. Но не в приказном порядке, а вынеся сначала на обсуждение. Если кто-то против, то выяснить, как это помешает ему работать, снизит производительность или что-то еще. То есть, попробовать разобраться в проблеме.
И естественно, общение всегда должно быть уважительным, без переходов на личности и принижения.
> Ты заебал с этим бессмысленным баззвордом "софтскилы". Я тебя еще раз спрашиваю, какие мне нужно волшебные софт скиллы применить чтобы ты сказал: "извини, братишка. Ты прав во всем, а я нет, зря быканул"?
Софтскиллы как раз включают умение побеседовать с человеком, понять его мотивацию и ценности, найти способ убедить его в необходимости изменений.
Ну то есть, разговор надо начинать в таком стиле: мне кажется, у нас в проекте есть такая-то проблема. Из-за нее получается то-то и то-то. Я думаю, мы могли бы поменять то-то и то-то и в итоге получится то-то и то-то. Есть ли у вас какие-то возражения? Может быть, это как-то помешает вам выполнять ваши задачи? Есть ли идеи, замечания?
>>2788610 >То есть ты деньги получил, а задачу, ради которой Компания выдала тебе кредит доверия, не выполнил. >деньги получил >Еще испытательный не прошел Читать научись. Задачи тебе ставит твой тимлид. И делаешь ты то что тимлид тебе скажет. Если нет задач на рефакторинг никто тебе переписывать код не даст. И уж поверь при серьезном подходе ты даже свой мердж реквест в мастер сам не сможешь смерджить. Так вот, задач на рефакторинг не было. В связи с этим и был задан вопрос: хули я тут делаю? Ответ я озвучил. Пожали руки и разошлись. Не все что хочется можется.
>>2788615 >>2788616 >>2788619 Охуенные разговоры внутри твоей головы. Так все заебись складывается. Сам себе все объяснил, сам согласился. Главное вежливо. Давай в реальность вернемся. Задам теперь тебе тот же самый вопрос. Какие мне нужно волшебные софт скиллы применить чтобы ты сказал: "извини, братишка. Ты прав во всем, а я нет, зря быканул"?
Вот не пойму, как красиво создавать проекты? Допустим в IDE создаём пустую папку для проекта, но затем нам надо в консольке набрать команду для создания проекта фреймворка и получается вложенная папка. Например, /MyProject ..../MyFrameworkProject Как делать красиво, чтобы папка проекта соответствовала папке фреймворка без всяких тупых вложенностей?
>>2788713 Так ясен пень она вложенная, ты же в папке проекта. Можешь в консоле написать cd.. подняться на уровень выше и создать папку. Только если это папка относится к этому проекту зачем ее хранить не в папке с проектом?
>>2788807 >VS Code бесплатный, легковесный, быстро работает, не лагает и не тормозит, минималистичный интерфейс и полностью на русском языке.
Твой выбор конечно, но если сократить тезисы-то 1) бесплатный 2)не тормозит 3) интерфейс
3 пункт - джет бреинсы уже ввели новый минималистичный ui в начале года, он супер минималистичный. Но в любом случае, можно настроит ьвсе под себя, можно убрать любой элемент который тебе не нравится. А по поводу не тормозит - не могу сказать, у меня вроде средне-комп сейчас, 32 гб оперативы недавно воткнул только, т.к. контейнеры много жрут. 2 проекта открыты в phpstorm - полет нормальный. ну и 1 пункт да, таки платный. Если анон тебя не смущает первый пункт, то все же попробуй перекатиться, потому что шторм куда удобнее. Я сам пользовался vs кодом для Go, это небо и земля.
>>2790280 Первый пункт ключевой. У тебя просто нет возможности пользоваться платным продуктом. Я слышал про кряки, но там могут быть вирусы или чего похуже.
>>2790308 >или чего похуже Оперативу у тебя выкачают всю.
>Я слышал про кряки Варез, юкоз, софтопомойка, эмо, дветыщиседьмой.
Откуда вы блядь лезете? Или у вас в амиго гугл поиска нет? Лицензия на шторм бесплатно "покупается" за пару минут https://github.com/libin9iOak/ja-netfilter-all с помощью перехвата запросов к серваку лицензий. Никаких "кряков" там нахуй не надо.
Решил тут посмотреть Лаврика, которого в комментах нахваливают. Какое же говно всё таки! Пишет лютейший говнокод, в отладочных целях использует echo, а не var_dump. Домашки ничему не учат, просто надо повторить его говнокод и закрепить говнокодистый стиль.
>>2791521 Я смотрю мотивационные видео, где говорят, что программирование это просто и его может осилить любой, главное потратить больше времени, если сразу не получается.
Почему в браузере открываю код с созданием таблицы и она создаётся, а вот если из консоли выполняю код, то ошибка 1 пик? Кстати мой 2 язык после жс, прикольный
Я мидлак в своей компании. Но помимо it мне еще нравится учить людей, еще будучи пиздюком я кайфовал обучая своего отца владению ПК. Вот сейчас подумываю, может занятся менторством? Но я не знаю, вдруг моих зананий недостаточно будет. По этому думаю найти челика с минимальными знаниями верстки и попробовать потренить на нем. Ему бесплатный ментор, а мне опыт менторства, ну и чсв свое потешу офк. Где можно такого челика найти? у меня был один, но он хуй положил в итоге, уже 2 месяца не пишет. Видать не справился с mysql.
>>2792067 Есть же много онлайн-школ, куда можно устроиться можно на частитчную занятость, где ты менторить будешь и какую-то копейку получать за это. Например - хекселт, там не надо лекции начитывать, а именно помогать в освоении материала. На хуйдой конец вот, "волчья" таблица с менторами, но чтобы туда попатсь надо платить 🤡 https://it-volki.notion.site/b369c1ad87f84165954165289be5a0ce
>>2792083 хз, на самом деле у меня куча проектов на mysql, практически все так что мб это и говно мамонта, но это стандарт. >>2792170 >Есть же много онлайн-школ, да, но я хотел сначала хотя бы одного довести до конца. Я не особо уверен, что я на том же уровне, на котором преподы из этих школ.
>>2792456 не, ты не понял. html академия, там курсы. и я проходил их курсы по php, и мне понравилась подача материала и практические задачи. А именно - что ты не делаешь абстрактные задачи, а просто пилишь сайтик, попутно внося в него новые фишки. Верстка там готова, как и js
>>2792466 У меня есть некоторые навыки по Php, html, css и я хочу дальше развиваться с последующим трудоустройством. Если тебе нужен такой ученик, то я готов)
>>2792067 Анон ленив и туп (c) Я думаю будет продуктивней набрать 4-5 анонов в какую-нибудь конфу / дискорд и раздавать и задачи, что бы хотя бы один дожил до хорошего для тебя результата. Мы на джиу-джитсу по крайней мере так делали. Главное персональные рамки выставить, вроде X минут персонального времени на анона, раз в Y дней, в определенное время дня. Иначе будет "Тренер, мне розовую капу или мальчикам только синюю?" "Тренер, меня махатся завут после школы, мне идти?" и т.п. Если решишь я присоединюсь. Если решишь, то я с вами.
Битриксойды, в чём дело? Почему при добавлении компонента "каталог" раздел сайта и меню вёрстка ломается? В остальных разделах вёрстка показывается как надо(пик 3).
>>2792337 прикольно, но неочевидно. Типа, если я передаю атрибут с указанием его публичности, он становится свойством объекта, - нихуя не интуитивно понятно. Да и аннотации ставить неудобно
>>2792887 Вангую, что у тебя там какие-то контейнеры лишние появляются, или стили из шаблона компонента конфликтуют с твоими собственными, или ты рукожоп, и не смог нормально верстку внедрить, вот у тебя она и разъехалась
>>2793398 Дело не в скорости, а в том что содержимое двойных кавычек может сделать то, чего ты не планировал. Они же блядь волшебные: переменные в них парсятся, выражения парсятся, спецсимволы. Экранирование экранирования. Любая опечатка может привести хуй пойми к чему.
Поэтому пока без двойных кавычек нельзя - используются одинарные. Как только нужно добавить какой-нить перенос строки - пожалуйста: 'Zalupa-' . $lupa . "\n"
>>2793385 Попробовал удалить стили шаблона компонента, не помогло. С версткой я думаю нет проблем потому что опять же, на других страницах и разделах она отображается нормально. Попробовал поставить другой системный шаблон и вёрстка встала как надо, но бля, это не решение, да и список разделов инфоблока всё равно покасило... Попробовал тупо воткнуть не комплексный компонент, а отдельно catalog.section.list и вроде более менее то что нужно (пик 3). Как теперь добиться такой же результата с комплексным каталогом?
>>2793681 Да никак, он предлагает судорожно искать в гугле статейки или ответы на стаковерфлоу от индусов вместо того, чтобы просто прочитать хорошо структурированную книгу и потом шлифануть знания если нужно
>>2793681 А так и написал. Сначала формулируешь проблему. Потом гуглишь и вникаешь в методы её решения. Пробуешь решить. Не получается? Уточняешь вопрос. Если нужно, то разбиваешь его на несколько и снова гуглишь. Постепенно понимаешь, как решить и таки решаешь.
Это тот же самый процесс, которым программисты занимаются большую часть времени - пребывают в ахуе от того, что нужно родить неведомую ёбаную хуйню, которую непонятно как делать вторая часть - нуная рутина, которая жутко надоело, но её надо закодить, если не получилось спихнуть на джуна. Если ты не научился этому, то зубрёжка книг не поможет. Не думайте, что вызубрив десяток книжек по языку, алготитмам, базам данных и прочему используемому стеку, вы просто сядете и будете "писать код". Так не бываает. Честно.
>>2793709 Разве я запрещал читать книги и проходить курсы? Да на здоровье. Но никакой курс и никакая книга не заменит тебе сделанный проект. >от индусов А чем вкатывальщик лучше индусов? Ты хоть как-то сначала сделай, а потом поймёшь, что хуйня и переделаешь. Это нормально. И почему нужно копировать именно индусов? И почему со стековерфло "копировать", а после курсов и книг "делать самостоятельно"? Нихуя же не так. После книг и курсов падаваны часто пасуют перед реальными задачами, потому что успешно копировали на курсах то, что делает препод, и думали, что в реальном проекте будет то же самое.
>>2792547 >>2792641 Окей анончики, давайте попробуем, может что и выйдет. Наберу ~5 человек с минимальными знаниями.те кто чувствуют, что они выше среднего-вам в этом лягушатнике вряд ли будет интересно. Оставлю тг для связи @Brave_new_world_1932
>>2794832 Плотно знаком с Python и немного с JS, C# и Go. Начал разбираться с PHP и мне тоже очень нравится, хотя причин для этого вроде бы и нет, а для обратного есть.
>>2795380 Первое верно, хотя я не то хотел спросить, но впрочем похуй, сути дела это не меняет. Если бы я спросил чем отличается РеквизитФормыВЗначение от ДанныеФормыВЗначение - ты бы тоже не ответил, расслабься. Главное для тебя это понять, насколько сильно ты ошибаешься в >Не знаю насчёт пхп, но 1c легче чем питон в разы. В разы что-то не получается пока, хотя бы в один раз.
>>2795395 Ебанько, ты понимаешь разницу между "языком" и "стандартной библиотекой"? Какая нахуй разнице чем там отличаются встроенные функции? Пидор тупой, ты про язык че-нить высрешь седня?
>>2761920 (OP) В моих пердях на хх часто пишут про пхп 7.4+ Я вкатун, чё мне учить то и на чём тренить? Самую свежую версию качать и изучать курсы-книги по 8+ или искать всё для той версии?
Мне посоветовали найти сетевое сообщество РНР, чтобы можно было делиться с ним информацией и получать обратную связь и рекомендации. Пойдёт этот тред в качестве такого сообщества?
>>2796210 Я осилил джаву, но меня спринг выбесил. В РНР хотя бы есть выбор фреймворка и если симфони не заходит, то можно писать на ларавеле или вообще на вордпрессе. Свобода! А в джаве духота, за тебя всё уже выбрали и надо как зубриле всё заучивать. А я никогда не любил зубрёжку. Я - творческая личность и хочу самовыражаться в коде.
>>2796210 Пыха нормальный язык, там ничего экстраординарного нет по сравнению со всеми остальными. Разве что есть какие-то общие упрощения и нюансы, например, вместо списков, коллекций и прочих подобных типов данных есть только некий универсальный "массив". Но, во-первых, байтоёбством в пыхе не занимаются, а во-вторых, в новых версиях пыхи весь всеми любимый синтаксический сахар для байтоёбства уже завозят. В восьмой перечисления завезли, например.
>>2796426 >Я осилил джаву, но меня спринг выбесил. >выбесил Что ха хуйню я читаю? Тебе 13? Что блядь значит выбесил? Ты несколько лет 5/2 по десять часов в день выжигал глаза кодом, а потом тебя "выбесил спринг" и ты все бросил? Каво?
>В РНР хотя бы есть выбор фреймворка и если симфони не заходит Куда он не заходит блядь? Ты не "пишешь на симфони" ты просто пишешь код.
>Свобода! А в джаве духота, за тебя всё уже выбрали и надо как зубриле всё заучивать. А я никогда не любил зубрёжку. Я - творческая личность и хочу самовыражаться в коде. Ну собственно таких вот пахомов(творческих личностей) в пхп полно. Здраститя! Я тебе покушать написал - битрикс называется. Свобода есть говно.
>>2796433 >Пыха нормальный язык, там ничего экстраординарного нет >Пыха нормальный язык, там ничего нет Пофиксил тебя
>Разве что есть какие-то общие упрощения и нюансы, например, вместо списков, коллекций То есть вместо нормальных типов, которые проверяет компилятор и находит ошибки - весь кал крашится в проде.
>Но, во-первых, байтоёбством в пыхе не занимаются Да да дженерики это ведь про байтоебство. Мы пхп макаки ржаные гречневые. Мы для каждого типа класс руками напишем. Зря мы что-ли доллар ебаный пишем постоянно? Тут закал говнокодерский, формошлепский. Какие нахуй коллекции? Мы на массивах все нахуярим. У нас и язык гениальный, ты только перни и он все ключики перегенерит, пересоберет. И как хорошо - никто не знает почему очередное дерьмо в проде падает. А нам и не надо, за нас язык думу думает, типы выбирает-приводит. Сами мы што – маленькие. Двойное равно ставим, а язык-батюшка дальше сам угадывает.
>уже завозят Я это слышал когда седьмая версия вышла. лет через десять можно будет наконец выкинуть две трети пхп кода на планете. А пока - работать суки, бойлерплейт сам себя не напишет.
>>2796631 Я когда увидел конфигурацию бинов через xml, то долго не мог поверить, что это реально существует. Кому в здравом уме могла вообще придти в голову такая идея - переносить код из джавы в xml!? Такое ощущение, что просто кабанчики наслушались спринг-евангелистов и стали насильно внедрять этот спринг. Этот Борисов даже не программист, а обычный болтун-манагер.
>Ну собственно таких вот пахомов(творческих личностей) в пхп полно Значит я наконец нашёл язык по себе.
>>2796760 >Кому в здравом уме могла вообще придти в голову такая идея >Такое ощущение, что просто кабанчики То есть ты напиздел что осилил джаву и не понимаешь зачем нужен спринг? Доеб про xml это что-то уровня "скучных обоев". Конфигурация лежит в конфиге, вася. Какая хуй разница в каком формате этот конфиг xml или yml?
>Этот Борисов даже не программист, а обычный болтун-манагер Это ты про человека, который чуть ли не единственный кто реально пишет код прямо на сцене? Блядь, да он в видосе "Spring-построитель" онлайн в течении двух часов, буквально тыкая ебалом в каждую проблему с которой сталкивается программист, написал уменьшенную версию спринга. И объяснил так что даже дебилу понятно что там и зачем. Я блядь на джаве не пишу и то весь видос подмечал что в пхп фреймоврках все из спринга напизжено. Это блядь насколько надо нихуя не понять чтобы такую чушь высрать.
>Значит я наконец нашёл язык по себе. >наконец Пиздец. Давай сразу в битрикс. Рыжиков, лысый ты хуесос, принимай пополнение.
>>2796847 Одно дело понять, другое принять. Я понял нафига это сделано, но я смотрю дальше и понимаю, что это тупой подход. Всё можно делать элегантно с помощью ООП. У тебя код будет проверяться ещё на стадии компиляции, а не тормозить и падать при каждом запуске. Ты ещё поди и на ломбок надрачиваешь? Как же они круто сделали в божественной джаве, что через аннотации можно писать чуть меньше кода! А то, что это лишняя и бесполезная зависимость, которая замедляет код, никого походу не беспокоит.
Я смотрел свежее интервью с Бородой и он там рассказывал, что нифига не программировал, а только болтал языком всю жизнь. Скилл болтологии у него настолько прокачен, что все верят, что он реально программист.
>>2787004 >Даже слышал мнение А ты не мнения слушай, а исходники открывай и читай (пик 1), фантазёр. Внутри обычный foreach крутится. Объясни мне как просто foreach может быть медленнее foreach + вызов функции, в котором он крутится? Не говоря уже о том, что коллекция это дополнительный объект-обёртка над содержимым, которое представлено массивом (пик 2).
>>2787004 >правильнее И что в твоём понимании - правильнее? Правильнее то, что более оптимально решает конкретную задачу, никаких правильно/неправильно в вакууме не существует. Пиздец ты гуманитарий с магическим мышлением.
>>2796959 >Одно дело понять, другое принять. Я понял нафига это сделано, но я смотрю дальше и понимаю, что это тупой подход. Всё можно делать элегантно с помощью ООП. Бля, так ты не вкатился в джаву? Ты код вообще писал, маня? Каким хуем ты собрался "элегантно" зависимости по коду прокидывать? Ты понимаешь что без фреймворка тебе придется либо все прокидывать через конструктор, либо создавать внутри? Уже имаджинирую "элегантный" конструктор на двадцать параметров. Бля, о чем я говорю. Это очевидная хуйня для любого кто писал систему хотя бы из десятка классов.
>Ты ещё поди и на ломбок надрачиваешь? >это лишняя и бесполезная зависимость, которая замедляет код То есть ты еще и не знаешь как ломбок работает? Это блядь просто кодогенерация на этапе компиляции. Ты вообще задумался хоть на секунду каким хуем он по твоему "замедляет код"? А самое смешное что джава этот ад с бесконечными аннотациями уже прошла. Наигрались, обосрались, сделали выводы и пошли дальше. А вот в пхп все это только начинается. Причем в виде фарса. Если ты думал что ломбок что-то там замедляет, то имаджинирую твое ебало когда ты узнаешь как пхп с аннотациями работает и насколько это медленно.
>Я смотрел свежее интервью с Бородой и он там рассказывал, что нифига не программировал, а только болтал языком всю жизнь. Очень интересно. Нахуя мне информация что какой-то твой протык умеет красиво пиздеть? Хотя глядя на то насколько ты не понимаешь че несешь, возможно на самом деле этот борода ебейший программист и чето невъебенное написал. Вообще нихуя не удивлюсь если так.
>>2797443 Говнокодом как правило называют трудноподдерживаемый, немасштабируемый код, но всё может поменять тот факт, что этот код и не нужно будет модифицировать/расширять, и при этом от решает свою задачу. Всё идёт от задачи, говнокод - очень относительное понятие, и в вакууме он существовать не может.
>>2797691 Хватит оправдываться говнокодер. Ты когда никто не видит боком ходишь? Или может шаркаешь, ножки от земли совсем не поднимаешь? Ясен хуй нет. Потому что чтобы дойти куда надо надо идти НОРМАЛЬНО. Вне зависимости от того увидит ли кто-то этот поход или нет. То что ты не умеешь нормально ходить - это причина, а не оправдание. Учись блядь делать нормально и не неси хуйню.
>>2797755 И это мне пишет кусок говна, который СЛЫШАЛ что Collection::each() быстрее foreach работает. Я хуею с дауна-вкатуна. Завалил бы уже ебальник и не позорился.
>>2797903 >Серьёзно? Как определил? По лечке про "относительно" и "вакуум". Ничто не истинно - все относительно. И это чучело еще кого-то обвиняло в магическом мышлении.
>И это мне пишет кусок говна, который СЛЫШАЛ что Collection::each() Ты еще и еблан. Во первых я тот пост не писал. А во вторых , стекломойный ты долбаеб, я и на твой пост про форыч не отвечал. Потому что блядь и макаке понятно что обертка дает оверхед, даже если там всего один опкод дополнительный.
Как можно заходить на сайт на локалхосте (127.0.0.1) через другие айпишники локальной подсети вроде 127.0.0.2-3? Хочу для тестов посеменить на локалхосте с постингом с разных айпишников.
>>2797936 Дегенерат, который вводит 15 слоёв абстракций в то время как в задаче написано "нужно быстро накидать простенький скрипт чтобы протестировать гипотезу" - ты?
>По лечке про "относительно" и "вакуум". Ничто не истинно - все относительно. Ну ты дегенерат, это и так очевидно. Обтекай.
>>2798078 >Дегенерат, который вводит 15 слоёв абстракций в то время как в задаче написано "нужно быстро накидать простенький скрипт чтобы протестировать гипотезу" - ты? Дегенерат, который выдумал очередное соломенное чучело, ты? Простенький != говнокод. А самое главное: чтобы писать быстро нужно писать хорошо. Писать кал всегда медленнее.
>Ну ты дегенерат, это и так очевидно. Обтекай. Как же говнокодера корежит.
всем ку, а что делает программист php, ну понятно сайты клепает.. но это значит что надо иметь навыки делать красивые сайты(дизайн и прочее) или я ошибаюсь?
>>2798668 По поводу стилей просто глянь респонсив и адаптив верстку и посмотри библиотеки компонентов как реализуются компоненты типа карусели только если у тебя на проекте будет mui то тебе пизда там сложна там ещё и редакс стейт менеджер и реакты появляются всякие и тайпскрипт..., и жс асинхронный тоже нужно знать, это сейчас на всех сайтах есть (даже здесь посты загружаются автоматически так). А дизайн можно просто спиздить с похожего сайта мимо
>>2798609 >>2798668 превед медвед! Не, php програмист это подъем серверов и зарядка картриджей, ну и кулер уметь починить в офисе))) А бэкенд это уже питон и кресты, кто красивые сайты делает нинаю, наверное деффки)) Йа криветко
Анонушка, а что сложного-то в циклах? Цикл это просто повторение одних и тех же действий несколько раз (бывает, повторить N раз, а бывает, повторять, пока какое-то условие верно или неверно).
По умолчанию в программе команды выполняются строго по очереди, сверху вниз. Используя if, ты можешь делать ветвления, то есть пропускать какие-то команды в зависимости от условия. Ну а цикл просто позволяет выполнять команды несколько раз подряд.
Вот для примера простой цикл, который выводит строчку, пока $i меньше 10:
$i = 0; // Пока $i меньше 10, повторять действия в фигурных скобках while ($i < 10) { echo "i равно $i\n"; $i += 1; }
echo "Все, хватит\n";
Попробуй выполнить эту программу, поменять в ней что-то. Часто встречается ситуация, как выше, что у нас есть переменная и она на каждом шаге цикла как-то меняется (увеличивается на 1, например). Тогда мы можем использовать цикл for. Вот версия той же программы с for:
for ($i = 0; $i < 10; $i += 1) { echo "i равно $i\n"; } echo "Все, хватит\n";
Сравнив 2 версии программы, ты можешь увидеть, что мы просто перенесли команды $i = 0 и $i += 1 в шапку цикла for.
А в твоем сервере настроена поддержка выполнения PHP-кода? Может быть, он только раздает статические файлы и не выполняет код? Мало установить PHP, тебе надо еще настроить и запустить php-fpm и научить nginx перенаправлять запросы к скриптам на php-fpm.
Есть пара способов, как с этим справиться. Во-первых, ты можешь просто поискать другие уроки на ту же тему (циклы в PHP). Может быть, там будут объяснять их более понятно. Но даже если там тоже будет непонятно, после 4-5 уроков на одну и ту же тему ты, скорее всего, разберешься.
Во-вторых, "непонятно" часто бывает от того, что пропскают более простые вещи и берутся за сложные. Ну, например, не выучили, что такое переменная, и не могут понять, как работает цикл с переменной. Тогда надо немного вернуться назад и изучить то, что не знаешь.
Ты бы сравнил верстку HTML и CSS там, где есть проблема, и там, где все ок, и может быть было бы ясно, из-за чего верстка ломается. Используй средства разработчика в браузере.
>>2799104 >неудобно Неудобно когда прод упал и никто не знает почему.
>Интерполяция в последнее время появилась и в JS, и в Питоне. Ну жди когда питоновские подахуеют от неожиданных багов и тоже возьмут за правило писать через конкатенацию.
>А в PHP она давно уже была, так-то. А еще в пхп давно динамическая типизация. И хули? Ничего кроме багов она никому не принесла.
1С это не только язык, это фреймворк для разработки приложений. То есть изучать только язык, не изучая платформу 1С, не имеет никакого смысла, я не уверен даже, можно ли программу на нем запустить в консоли без среды разработки. Наоборот, ты изучаешь платформу 1С и в рамках ее, как небольшое дополнение к ней, язык программирования 1С и язык запросов к БД 1С. То есть язык 1С это что-то вроде языка макросов в какой-то малоизвестной программе.
>>2799119 Мне поебать на твою "платформу", я говорю про ЯЗЫК. Если ты, чучело, не в состоянии прочитать в википедии что такое язык, то съебу уже нахуй отсюда.
Ну до этого была в Си статическая типизация и в сравнени и с ним PHP был просто на голову выше: не надо мучительно по 10 раз везде указывать типы, не надо освобождать память, можно возвращать из функций строки и массивы произвольной вложенности. Можно делать сайты в несколько раз быстрее и выйти на рынок, пока конкуренты мучаются с Си.
Пол Грехем вообще один из первых стартапов писал на Лиспе (никакой типизации в принципе там нет), и, по его утверждениям, повышенная скокрость разработки давала им преимущество перед теми, кто использовал Си:
> Our hypothesis was that if we wrote our software in Lisp, we'd be able to get features done faster than our competitors, and also to do things in our software that they couldn't do. And because Lisp was so high-level, we wouldn't need a big development team, so our costs would be lower. If this were so, we could offer a better product for less money, and still make a profit. We would end up getting all the users, and our competitors would get none, and eventually go out of business. That was what we hoped would happen, anyway.
> What were the results of this experiment? Somewhat surprisingly, it worked. We eventually had many competitors, on the order of twenty to thirty of them, but none of their software could compete with ours.
> и тоже возьмут за правило писать через конкатенацию.
До интерполяции писали через sprintf (строки форматирования были в языках с незапамятных времен). Интерполяция это тот же sprintf, только более удобный.
Наоборот, я не понимаю, в чем плюсы конкатенации? Больше писать, тяжелее читать.
>>2799136 >Ну до этого была в Си статическая типизация Ну да, а между си и пхп никаких других языков и не было. Маня, к сегодняшнему дню консенсус сложился: динамическая типизация провалилась полностью. Никакой пользы от неё нет, только баги.
>Можно делать сайты в несколько раз быстрее Бля, так ты даже не вкатился. Если бы хоть пол годика поработал, знал бы что написание буков в программировании это меньше десяти процентов времени. И даже в этих десяти процентах девяносто процентов кода пишет за тебя ide.
>>2799139 >До интерполяции писали через sprintf Прямо сейчас пишут через спринтф. Просто потому что эа функция кроссязычная.
>Наоборот, я не понимаю, в чем плюсы конкатенации? Больше писать, тяжелее читать. Один раз половишь багу из-за неожиданного знака доллара в тексте - поймешь. Конкатенация делает всего одну вещь. И точно также должна вести себя любая твоя функция и объект.
Работаю фронтом примерно сенькой в достойной конторе. Намекают чтобы я лез в postgress и симфони. Типо и рукастей будешь и вообще не помешает. А я вот хз даже. Есть ли смысл в фулстаки лезть, да ещё в другой язык. Насколько востребован фулстак с пхп в гейропе? Планирую перекат и мне надо максимально назваться востребованных навыков для переката, а не для своего кабана.
>>2799179 Фуллстак это наеб на даллары. Это не просто означает что "вот я могу вот это а еще вот это". Это означает что ты должен делать и то и это в соляного. То есть либо кому-то похуй на сроки (чего не бывает), либо кто-то кроит бабки (что бывает почти всегда).
Когда тебе предлагают вместо условного фронта за 200 или бека за 200 стать фуллстеком за 300 у тебя автоматически должен возникать вопрос: а схуяли не взяли фронта и бека за 400? Экспертность выше, скорость работы выше. 100к это копейки, там только налогов в два раза больше.
Вывод: кто-то хочет скроить себе эти 100К пытаясь заставить тебя выполнить двойной объем работы. Если тебя такое устраивает, и ты сам кого хочешь наебешь, то вперед. А если просто хочешь работать без потогонок, ебанутых дедлайнов и прочего дерьма, то сразу нахуй.
>>2799182 В компании сейчас нет проблем с деньгами. В моей команде 3 Бэка и 2 фронта. Один бэкендер ещё фулстачит понемногу. И вот мне на перформанс ревью СТО говорит уже какой раз изучать бд и бэкенд. Типо вот пилят ребята бэкендеры таски масштабные. А ты вот выполнил свою часть фронтовую и надо на бэке контроллер поправить и типо дергать бэкендера ради этого нецелесообразно. Вот такие аргументы.
И в подскастах мы обречены тоже говорили что фулстаки особо ценятся. И даже не потому что денег нет у компании, а потому что обладают большей экспертизой и легко в лидов/СТО/principal мутируют.
Курс на стэпике про sql я в любом случае гляну. Хотя бы базовые навыки получу. Но про глубокое погружение в пхп очень сильно сомневаюсь. У меня на работе есть ещё вояджинг по командам. Могу вообще в команду с го уйти и там понабраться опыта. В общем сложно.
>>2799183 Речь не о том что надо знать, а что не надо. Если уж на то пошло sql и манагеру знать не помешает.
Речь о том что на тебя просто хотят нагрузить больше работы. Не знаю может ваш cto охуенный мужик или харизматичный, вот ты уши и развесил. Я тебе как человек со стороны говорю: имеет место очевидная манипуляция. Вместо того чтобы нанять еще бекэнд программистов пытаются нагрузить доп работой фронтендеров. Еще раз. Речь идет не о том что там было бы хорошо знать для общего образования. Речь о том что из вас хотят выжать больше работы за то же количество времени. Тебя такое устраивает или нет? Ты этот вопрос для себя должен решать, а не "верить ли в лечку про ценность фуллстаков".
В качестве проверочки можешь спросить cto на сколько фуллстеку надбавочка будет. Сравни с зп доп бекэндера в штат и делай выводы.
Померял бы и показал результат, я бы тогда мог твой код запустить и показать, где ты ошибаешься.
Но скорее всего ты ничего не мерял, о внутреннем устройстве PHP ничего не знаешь, и придумал сам себе, что один способ быстрее другого.
Поиска там нет, строка разбирается на этапе компиляции в байт-код.
Плюс, нечестно мерять только время выполнения кода. Надо еще мерять время, потраченное человеком на чтение/написание/понимание кода. Ну то есть, если вариант A требует на 5 мкс времени процессора меньше, чем Б, но при этом человек тратит на 3 секунды больше, чтобы его понять, то вариант А хуже. Потому что 5 мкс времент процессора практически ничего не стоят, а 3 секунды работы программиста далеко не бесплатные.
Дополню, точнее надо мерять не только зарплату программиста за потраченное время, но и недополученную прибыль. То есть, пусть фича приносит X денег в час, а зарплата программиста Y в час. Если из-за конкатенации программист потратил n лишних секунд, и выложил фичу позже, то компания потеряла:
- зарплату программиста в размере Y / 3600 × n денег - прибыль в размере X / 3600 × n
При этом более запутанный код может привести к тому, что другие программисты, работающие с ним, тоже потратят лишнее время, и убыток увеличится.
>>2799508 >Если он осилит бекенд, то он будет более востребован на рынке труда и будет получать большую зарплату. Так это его cto просто хотел чтобы он был более востребован на рынке труда. И зарплату ему очень хотел повысить. Вон оно че. Все-таки классный он мужик получается. Ни секунду не сомневался что он просто хотел зп того недостающего бекендера отдать хорошему парню.
>>2799510 >А почему двойной? Раньше ты верстал фронтенд 8 часов в день, сегодня ты 4 часа верстаешь, 4 часа бекенд кодишь. Где тут двойной объем? Ты читать не умеешь? "у тебя автоматически должен возникать вопрос: а схуяли не взяли фронта и бека". Нахуя тебе переплачивают за твои 8 часов в день? Я лохов, которые просто так деньги раздают пока не видел. Значит лох тут именно ты.
Пиздец, как маленькие. Вы вообще не в состоянии оценить ситуацию со стороны менеджмента? Люди за каким-то хуем отказываются от разделения труда, которое даже не удваивает производительность, а утраивает минимум. Люди платят больше бабок, хотя экспертность сотрудника в каждой конкретной области падает. И они типа просто будут сидеть и смотреть как у тебя копится очередь задач? Поторапливать вас будут, ебаный ваш рот. И бонусы получать за экономию бюджета. И это если не просто спиздят скроенные бабки.
>>2799499 >Плюс, нечестно мерять только время выполнения кода. Потому что "мерять" надо в аптайме прода. Из-за ебучей интерполяции могут возникнуть баги, на поиск которых уйдут дни. А из-за конкатенации нет. Вот и все. Просто и понятно.
Семь-восемь лет назад я, уже тогда велоковозрастный долбоёб, решил поменять свою жизнь офисного червя, сел сиднем дома, открыл для себя этот тредик и в нём проводил месяцы. Буквально стартовая страница браузера была для меня. Тут были все мои друзья, тут был ОП, который приходил и проверял задания со своего сайта, спасибо ему большое.
Удивлён снова увидеть его сайт в шапке, этот ОП правда тот самый, или уже десятое поколение codedokode-ОПа?
В общем, с тех пор прошло оче много времени, я успел стать наносеком в России, переехать в западную европу как синиор-помидор и продолжаю помидорить тут.
Как-то рандомно вспомнил, что много лет назад поменял свою жизнь благодаря рандомным челикам, которые не ленились обсирать поправлять и наставлять меня.
Можете задавать ответы, как по поводу жизни хуй не сосу, но пизду не прочь, так и про пыху и работу, буду отдавать долг анонимусам.
>>2799843 >буду отдавать долг анонимусам. Стань моим ментором тогда. О себе: фронтендер почти год опыта. Хочу перекатиться в фулстеки, в перспективе фул бекенд, немного фронтенда. Если ты согласен - напишу контакты.
>>2799968 приватный менторинг за большие бабосы только, а пока могу дать совет не перекатываться во фулстеки.
Это jack of all trades, в нормальных конторах не котируется, пацаны не уважают. Да и хорошо разбираться в обеих областях не будешь, по верхам тут, по верхам там.
Задавай вопросы тут, если есть конкретные какие-то
>>2800085 >а пока могу дать совет не перекатываться во фулстеки А вкатываться в фулстек как идея? С дальнейшим перекатом конечно же. Просто больше пул вакансий + прощупать можно чё там на фронте.
>>2800085 > пока могу дать совет не перекатываться во фулстеки Чё даже ноду на полшишечки для своих потребностей не надо? У меня просто иногда загорается желание стать фулкеком, якобы лучше котироваться на рынке буду и зп больше. Но блять, другой язык учить не хочется, ведь это, как ты правильно сказал, распыление. Да ладно похуй на тот язык, меня синтаксисом и конструкциями не удивишь, учить окружение и инструменты, подходы и тд, это пиздец долго, но маячит мысль, что оно того стоит якобы. Хуй знает. Можешь по этому поводу детально расписать?
Какие может наставления дашь? Нормальная ли тактика по 5 часов в день ( помимо работы, на работу часов 5 уделяю в день, уже придрочился) учиться? Я просто не знаю что у тебя спросить то даже, ты же бекендер на пыхе.
>>2799968 >>2800085 А мне похуй, бабки есть. Расскажу, научу безвозмездно. Единственное условие: не проебываться без предупреждения в никуда и соблюдать расписание. Если в состоянии, то заходи https://discord.gg/Xc3R8hxtRD .
>>2800105 Как самый первый вкат норм идея, узнаешь как работают обе стороны, но второе место я бы искал уже в чём-то одном.
>>2800108 Ноду на полшишечки для своих потребностей - это не совсем фулстек. Во всех местах, где мне приходилось работать, уважаемый себя JS-прогер умел поднять ноду и сделать что-нибудь простое в виде сервер-сайд рендеринга для своего реактоговна. (локально для дева, конечно же)
Если тебя интересует бекенд, ты можешь перекатиться в компанию, где пишут бекенд на ноде, но учти, что очень часто в таких местах микросервисы, и часто они написаны на разных языках. Что-то на ноде, что-то на го, что-то на пыхе (да, такое не раз встречал). Иными словами, если не любишь и не хочешь учить разные языки, то бекенд не лучший выбор. Средний бекер работает с несколькими языками стабильно, средний фронт - с одним (ну с двумя, если считать TS). А язык и тулинг (фреймворки, подходы, часто используемые либы и прочее) действительно долго учить.
Но уверен, что бывают места, где чистая нода и ничего больше, если поискать.
Фулстеки не котируются на рынке. Хз о каком ты рынке говоришь на самом деле, в ДС-ах и европах фулстеки в топ компаниях редки, так как разделение труда очень выражено.
На бумаге тактика-то норм, но мы-то знаем, что 5 часов в день каждый день никто не сможет учиться. Сгоришь через неделю и потом вернёшься через две недели и поймёшь, что всё забыл. Так уж все устроены
Лучшей тактикой будет уделять каждый день минимум час-полтора занятиям, не ограничивая себя, если лежит душа в какой-то день продолжить.
>>2799101 Ну да, дело было в бутстрапе почему то именно в том разделе он подключался автоматически даже с дефолтным шаблоном. Кстати не знаешь как сделать чтоб в главном меню так же отображались подпункты из левого меню? Короче в разделе "компания" так же как и в разделе "каталог"? У главного тип меню верхнее, у левого - левое, у подменю - левое подменю.
>>2800264 Где-то полгода сидел дома и задрачивал самостоятельного. Плюс я уволился для этого дела, так что на работу время не уходило. Связей не было, искал работу через HH, нашёл где-то недели за 4, за это время сходил на собеседований 6. Под беком что имеешь в виду?
> Ни секунду не сомневался что он просто хотел зп того недостающего бекендера отдать хорошему парню.
Я не понимаю, почему ты решил, что у фуллстека зарплата длолжна равняться сумме зарплат бекендера и фронтендера. Он что, по 16 часов работает или одновременно по 2 задачи делает?
Что касается причин, они могут быть разные. Может, у них нет столько задач, чтобы оправдать найм еще одного бекендщика на фуллтайм.
> Значит лох тут именно ты.
Нет. Ты растешь и получаешь новые навыки, становясь более привлекательным. Работодателю не надо искать нового человека, для которого он не сможет обеспечить 100% загрузки. Плюс, исчезают проблемы с коммуникацией и пинг-понгом между двумя сотрудниками. Это же сплошной win-win.
Приведи пожалуйста примеры багов из-за интерполяции, из-за которых "ложится" весь прод и причина которых не очевидна из логов, которые сыплются в твой телеграмм в реальном времени.
А что ты так боишься других яызков? Ты мог бы просто для расширения кругозора, например, выделить 20 минут в день за завтраком и читать про какие-то другие языки. Может, какие-то идеи подчерпнешь.
Плюс, чем больше ты изучаешь программирование, тем больше похожих вещей находится в разныых языках. Условно, тот же оператор if практически везде есть и точно так же назвается и работает.
>>2800398 Да запросто, вот тебе списочек говнеца https://3v4l.org/QBVVf . Что из этой хуйни может ВНЕЗАПНО сработать и если да, то как? И это мы еще нихуя не начинали.
>>2800397 >Я не понимаю, почему ты решил, что у фуллстека зарплата длолжна равняться сумме зарплат бекендера и фронтендера. А я не понимаю откуда ты это взял. Я такого не говорил.
>Что касается причин, они могут быть разные. Может, у них нет столько задач, чтобы оправдать найм еще одного бекендщика на фуллтайм. Это и называется кроилово. Почему фронтендера должно ебать что кому-то че-то там не хватает? Он сидит кайфует. Это проблема менеджмента, что они хотят сделать больше работы меньшим количеством людей.
>Нет. Ты растешь и получаешь новые навыки, становясь более привлекательным. Какая нахуй привлекательность. У тебя просто появляется больше вариантов, это да. Но нахуя оно вообще нужно вопрос открытый. Фронту с опытом и так предложений хватает. А время не резиновое. Если выбор стоит изучить что-то новое в своей области или какое-то дерьмо на беке, который ты еле знаешь, выбор очевиден.
>Работодателю не надо искать нового человека, для которого он не сможет обеспечить 100% загрузки. А нахуя тебе 100% загрузки? У тебя времени дохуя свободного? Или этот работодатель тебе долю в бизнесе предлагает? Если предлагает, то можно и подумать. Только вот в 99% случаев ищется ишак, на которого можно повесить все и сразу.
>>2802363 Вот именно. Я у себя в ide настроил форматирование по psr и навсегда про него забыл - код автоматически форматируется. Любой код сниффер опять же по умолчанию по пср настроен. Все либы и фреймворки написаны по пср. И тут значит ты придумал охуенный формат. А как всем в тиме ему следовать? Перенастраивать автоформатирование, перенастраивать сниффер, SonarQube. А нахуя, напомни?
Все, что не начинается со знака доллара? Но у тебя претензия просто к тому, что кто-то может не знать языка. Но такой человек и в любом другом месте может сделать ошибку. Например, при вызове метода вместо $object->method напишет $object::method. Что же теперь, вызовы методов запретить?
Ты из-за того, что кто-то может не знать язык, и не заметить проблему при тестировании, предлагаешь отказаться от удобного способа и перейти к неудобному (писать много линих кавычек, которые ломают глаза при чтении). Глупость же.
Обычно на работе есть стандарт кодирования и надо ему следовать, а не изобретать свои стандарты. Если стандарта нет, то желательно следовать PSR-1 и PSR-12, а там метод форматируется так: https://www.php-fig.org/psr/psr-12/#44-methods-and-functions
Если каждый будет писать как хочет, в коде будет бардак.
>>2803125 >Все, что не начинается со знака доллара? Нет, не угадал. Ну то есть ты настолько тупой, что вообще не понимаешь что происходит? Минимально сложный пример тебя ставит в тупик? Там буквально один класс одна константа одна функция и одна лямбда. В реальном коде всего этого будут тысячи.
>Но у тебя претензия просто к тому, что кто-то может не знать языка. Не было у меня такой претензии, ты её выдумал. Я говорю о том что содержимое строки влияет на поведение интерполируемых переменных. Опечатки, пробелы, неожиданные символы. Все это не обязательно упадет, а может молча выполнить не тот код, который ты хотел. И если ты думаешь что опечаток не будет, то ты никогда нихуя не писал.
>Например, при вызове метода вместо $object->method напишет $object::method. Что же теперь, вызовы методов запретить? Ты вообще языка не знаешь, да? Это нельзя "перепутать", пхп выдаст ошибку. Бля ты похоже даже не понял про что мой пример вообще был. Ебать ты тупой.
>Ты из-за того, что кто-то может не знать язык Это про тебя.
>не знать язык, и не заметить проблему при тестировании, предлагаешь отказаться от удобного способа и перейти к неудобному Ты конечно тупенький. Но я еще раз повторю. Никого не ебет, что там тебе удобно, а что нет. Важно чтобы сервис, который приносит бабки, работал и приносил бабки. Ты, в силу своего скудоумия даже представить не можешь какие проблемы может создать интерполяция. Так тебе дядя альберт с двадцатилетним опытом работы на этом говноязыке все раскидал.
>>2803130 Почему сделали расстановку скобочек в одном случае с новой строки, в другом на той же строке? Почему нельзя было сделать единообразно как в джаве?
>>2805366 И в чем проблема? У тебя каргокульт. Я знаю английский и уже давно могу даже художественную литературу нормально читать. У меня английский просто хобби, и если бы я его не учил - мало бы что потерял. Вкатывался еще без него.
Не получилось вкатиться в JS с 6 попыток, бросал спустя 1-30 дней изучения, и так 6 раз примерно. Может в PHP у меня что то получится? Хы. Хотя бы можно будет брать заказы "под ключ", раз уж не получилось стать новомодным фронтером на реактах всяких. Да и возраст уже не тот, почти 30 лвл а я только умею хорошо верстать и больше ничего. Так ещё и не знаю как работу найти, укр фриланс по понятным причинам для нас прикрыли, а на ру фрилансах просят огромные бабки за премиум аккаунт ((( сижу без работы и денях в общем. Мотивации ноль ваще... Но делать что то надо. А то блин обидно, что даже не могу знакомым ничего сделать, ибо всем нужно всегда под ключ, фуллстак, а я обоссаный верстальщик ((( не скажу же что я могу только дизайн сверстать))) это кринж и сложно объяснить простым смертным (не кампютерщикам епта) Пожелайте мне удачи пж>>2761920 (OP)
>>2805703 Всё основное (CS, алгоритмы) спокойно учится на кириллических рунах. Крупные серьезные языки и, собственно, пхп, а не хайповые однодневки, тоже. Возможно, какой-нибудь новый-молодежный фреймворк, выпущенный день назад, еще не перевели, но весь разговор начался с учебника по пхп выше, к которму единственная претензия это "он жи не на английском". То есть, налицо каргокульт, а также высокомерные выебоны перед вкатуном. Английский, конечно, пригодится и с ним будет проще, но это точно не обязательный скилл, без обладания которым никуда. Те же алгоритмы с матаном важнее английского, хотя тоже можно обойтись и без них.
Аноны, как вы справляется со страхом перед интервью/собеседованием. Почему даже перед ебучим тестовым hr хотят устраивать созвоны? Все в погромировании это вытворяют? До этого работал в сфере видеомонтажа, так там ни разу не приходилось с кем то общаться по голосовухе/видеосвязи, тупо переписки.
>>2805850 >Аноны, как вы справляется со страхом перед интервью/собеседованием. Хлопни стопку коньяка/водки или поприседай-отжимайся, можно еще по щекам себя похлопать
>>2805776 Я пролистал "учебник" выше - это кринж-компиляция от Васянов для Васянов, к современным учебным материалам и программированию не имеющая никакого отношения.
Продолжать дискуссию с пидорашкой, которая отстаивает факт, что можно обойтись без английского в современной разработке я не буду. Говорю без негатива пидорашка - состояние души, уж уточню, а то какой-то ты больно нежный, просто на своём веку таких встречал я какое-то количество и примерно представляю ваш кругозор и представление о разработке.
Всем вкатунам также совет - обходите таких додиков стороной, ютуб каналы таких додиков и подавно.
https://hh.ru/vacancy/85039211 Мнение? Кто там говорил что битриксойдом проще? Тут натуральные анальные игрища перед заветным устройством (но на этом страдания не закончатся, ведь это битрикс).
>>2805980 >Я пролистал "учебник" выше - это кринж-компиляция от Васянов для Васянов, к современным учебным материалам и программированию не имеющая никакого отношения.
Посоветовал бы тогда уж ультернативу какую-то(с задачками).
>>2806086 Programming PHP - Rasmus Lerdorf, Kevin Tatroe, Peter MacIntyre Pro PHP Programming - Peter MacIntyre, Brian Danchilla, Mladen Gogala PHP and MySQL Web Development - Luke Welling, Laura Thomson PHP Objects, Patterns, and Practice - Zandstra
>>2806115 Я ни на что конечно не претендую, всего лишь тупой вкатун. Вот такое мнение у меня сложилось Задачек нет, книжки похожи не на учебники а на документацию, старые(кроме последней).
>>2806169 Первая книга написана одним из создателей языка и хорошо разжевывает базу абсолютно нулевому вкатуну. Вторая еще глубже погружает в язык. В третьей полно наглядных примеров для практики. Четвертая популярно поясняет за ООП. Это уже классика.
>>2761920 (OP) Битриксойды тут? Не в курсе как подключить js скрипт для модуля в админке? Есть Bitrix\Main\Page\Asset::getInstance()->addJs(); но он подключает js в head, а мне нужно в body, так как как я понял скрипт срабатывает быстрее, чем успевают отобразиться элементы.
Здравствуйте, добрейший вечерок. Мой вопрос по CMS Wordpress.
У меня в Wordpress хранятся посты с 2021 по 2023 год.
Дело в том, что я хотел бы вывести на страницу список ссылок с этими годами. Чтобы была первая ссылка 2021, вторая ссылка 2022, третья ссылка 2023. И затем в 2024 году добавить 2024.
Как это правильно сделать?
На ум два пути приходят:
1) Программный код, который из базы данных выковыривает за какие годы были посты, а затем выплевывает на страницу ссылки 2021, 2022, 2023. И в 2024 году этот код автоматически увидит новый пост за 2024 год и добавит ещё и ссылку на 2024.
2) В рукопашечку заебашить ссылки на 2021, 2022, 2023. А затем каким-нибудь шорткодом тоже в рукопашчеку через админку въебать ссылку 2024, когда наступит 2024 год
>>2807707 Спасибо, нашел. Надо бы в шапку треда. Правда у меня антивирус ругался
С https://3.jetbra.in/ перешел по первой попавшейся ссылке, скачал архив, извлек в корень диска C. Выполнил c:\jetbra\scripts\install-all-users.vbs. Прописал -javaagent:C:\jetbra\ja-netfilter.jar=jetbrains в c:\Program Files\JetBrains\PhpStorm 2022.3.1\bin\phpstorm64.exe.vmoptions. Запустил Storm, в окне активации ввел ключ с той же ссылки. Можно идти по любой ссылке, ключ везде один.
За что вообще берут деньги с пользователей шторма? Он же ничего не даёт. Все фреймворки - это отдельный плагин и за отдельную цену, а само ядро шторма - это бесплатная коммьюнити идея. Получается шторм - это просто развод людей на бабки?
Сап, нормально ли что вставка 1к элементов работает пиздец медленно на встроенном веб сервере лары? Задача состоит в том чтобы вставлять по 3к слов и потом ебашить по ним поиск через связанную таблицу. Сделал индекс по словам, целесообразно ли сделать индекс еще и по колонке в таблице которая связывает эти слова и статьи?
>на встроенном веб сервере лары Каво? Встроенном куда? О чем речь вообще?
>Задача состоит в том чтобы вставлять по 3к слов и потом ебашить по ним поиск через связанную таблицу. Сначала я обрадовался что выяснил что за элементы. Потом опять загрустил когда прочитал про "поиск".
>Сделал индекс по словам Первая понятная фраза за весь пост. Какой индекс-то? Обычный b-tree или полнотекстовый вроде GIN?
>целесообразно ли сделать индекс еще и по колонке в таблице которая связывает эти слова и статьи? Я думал что больше меня удивить нельзя, но меня удивили. Это типа мы собираем статьи выбирая слова из колонки в базе? Оригинальный способ. А главное можно очень здорово сэкономить место на повторяющихся словах.
А если серьезно, без попыток понять что ты там пытаешься сделать, то: Только что чисто из любопытства я в постгрес, который запущен на моем компудахтере впидарасил 10кк записей. Запрос выполнялся 40 секунд. То есть 250к записей за секунду. Хули там у тебя так "пиздец медленно" работает загадка.
>>2808941 Он лагучий и тормозной. А ещё платный, а кряки - это всегда риск нарваться на проблемы посерьёзнее. Мало ли там какой-нибудь троян, собирающий пароли и данные кредитных карточек.
>А ещё платный, а кряки Для шторма нет "кряка". Есть либа, которая перехватывает запросы к лицензионному серверу. Я уже заебался угарать с дебилов, которые до сих пор в 2007 живут. >>2790447
>>2808950 >в 2007 живут Я тогда вообще в блокноте писал на РНР. А эклипс (такая же иде на джаве как и шторм) еле-еле запускался на моём старом компе, работать с ним было тоже мучительно. Так что я выбираю легковесные решения, чтобы работать с комфортом.
>>2809058 Шутишь что ли? VS Code запускается мгновенно и ест от 200-500Мбайт, а шторм запускается полчаса, потом ещё полчаса индексирует какую-то залупу, даже если у тебя проект из одного файла хеллоуворда и жрёт со старта 4 гига.
>>2808973 >еле-еле запускался на моём старом компе Ну как работал так и заработал. Как копался в блокноте без нормальной навигации и подсветки синтаксиса, так и остался на каличном компе.
>Так что я выбираю легковесные решения, чтобы работать с комфортом. Ну так пхпшторм и есть комфорт. На твоем старом компе конечно он может и тормозит. Но на современном железе все летает мгновенно.
Рассказывать насколько шторм лучше каличного васянского вскода это как рассказывать о калейдоскопе слепому мальчику.
>>2809103 Ну это просто жирная хуйня. Пикрелейтед сколько жрет шторм в моем проекте.
>>2809132 Бля, только начну забывать что нахожусь в пхп треде так мне сразу напоминают. Макакен, "выделено для приложения" и "непосредственно занято" это разные вещи. Выделено там может быть хоть все мои 32 гига. А реально занято данными 200 метров. И на перфоманс влияют только эти 200 метров.
>>2809140 Ну запусти на старом компе и увидишь твои "выделено" реально сжирают всю ОЗУ и комп начинает дико лагать, потому что это всё свопится на диск. При этом шторм ещё постоянно за каким-то фигом обращается к разным частям этой памяти и диск практически всегда загружен под 100%.
>>2809150 Во первых: мой старый комп с четырьмя гигами оперативы остался в 2007. Во вторых: "свопится" он начнет когда вся эта выделенная память будет заполнена.
>>2809171 Я в 2007 был амудешник. Оперативу докупал постоянно. Помню ставил x64 семерочку чтобы БОЛЬШЕ оперативы засунуть.
Как сегодня делать что-то для веба без 16гб минимум и ссд я хуй пойму. Надо же локально все виртуалки поднимать. Локально все билдить, вебпаки хуяки гонять, пхпксы и прочую дрисню.
>>2809110 "Васянский" vscode написан выпускниками Беркли, Принстона и Гарварда, работающими на топовую и крупнейшую компанию с репутацией. Кем написан "комфортный" похапесторм? Быдлокодерами для быдлокодеров, которые нелепо оправдывают забагованную жирную блотварь. Алсо, судя по тому, что ты в каждом посте пытаешься показать как ты богат и уязвить своего собеседника, у тебя очень серьезные комплексы. Странно только, что ты лицензию на свой пхпсторм не купил. Нищеброд, что ли?
>>2809226 Ебанько. Никто не говорит что сам vscode хуево написан. Он блядь написан не для пхп. А все плагины, которые для пхп есть это васянские поделия на коленке, попытки сделать что-то чтобы было как в шторме.
>Странно только, что ты лицензию на свой пхпсторм не купил. Мне её работодатель предоставляет. Рассказываю тебе, еблану, положение вещей: в коммерческой пхп разработке существует только пхпшторм. Потому что только он регулярно обновляется и поддерживается перманентно. Потому что только в шторме учтены все "приколы" и "ебанутости" пхп.
>>2809711 >А твой пхпсторм написан на Java А должен быть написан на пхп что-ли? И кто тут троллит тупостью?
Маня, ну ты бы хоть поинтересовался что это за язык такой тайпскрипт. Это язык созданный и продвигаемый самим микрософтом блядь. Vscode сука для того и создан чтобы быть основной средой разработки для тайпскрипта. Только поддержка этого языка в vscode и написана >выпускниками Беркли, Принстона и Гарварда, работающими на топовую и крупнейшую компанию
С какими же тупорылыми хуесосами приходится сидеть в одном треде. А все потому что когда вкатывался выбрал пхп ебаный.
>>2809757 >intelliSense >ну кароч синтаксис подсвечивает как у дидов в нотепад++ в 2007 Пиздец, мне стыдно когда ты пишешь. На это просто неприятно смотреть, ты сам себя обсыкаешь. Это мерзко.
>>2809645 ебать ты, конечно. Так-то я с тобой согласен, что после Идеи/Пхпшторма не хочется пользоваться вскодом, но так-то он вполне подходит для ЛЮБОГО языка.
Ну а путать написана для и написана НА - это такое...
>>2809927 Ничего не перепутано лол. Вскод написан именно на и именно для. Они блядь писали редактор на тайпскрипте чтобы было удобно писать на тайпскрипте. Поддержку c# еще написали. Догадаешься почему или ссылку на википедию надо? И там прямо сейчас пиздец, отзывы с одной звездой все сломано всему пизда. "Very poor professionalism by the dotNET Team".
Имаджинирую ебало программиста, когда какая-нибудь залупа для пхп в вскоде начинает баговать, а в разделе поддержка ссылка на гитхаб ишшуес. Он туда заходит, а там пикрелейтед.
>а вот ваш вскод написан НА жс >анон подыгрывает шизофренику: а твой пхпшторм написан НА джаве >пациент начинает маневрировать: а он должен быть написан на пхп?
>позже пациент забывает про свои маневры (сказываются прием прописанных врачом галоперидола и природная олигофрения в степени дебильности): вскод написан НА тайпскрипте - написано НА == написано ДЛЯ Чёт в голосину.
>>2809926 Да в подкасте "мы обречены" был пхпшник примерно с твоим опытом и мыслью уехать вот как раз в прошлом году, а челик этот в этом треде учился на пыху и вкатывался. Ты, кстати, сам как думаешь, сейчас актуально вкатываться в пыху на рынке рф или лучше жс/питон/что-то ещё? К тому же, на пыхе по сути ничего интересного кроме веба и данных нет, мб я не прав, исправте.
Я вакансию увидел там написано, что нужен верстальщик на битрикс и modx revolution. Требуется знать html, css, js, jquery, less, sass, scss, git, webpack, parcel, vue, bootstrap.
требуется опыт работы с cms bitrix и modx revolution
Подскажите что вот надо знать и уметь по битриксу чтоб вкатиться?
>>2810318 Требуется знать html, css, js, jquery, less, sass, scss, git, webpack, parcel, vue, bootstrap + нужен опыт работы с cms bitrix и modx revolution.
>>2810318 Ты правильно догадался. Это такая загадка. Среди всех этих слов спрятано несколько, которые надо знать, а остальные просто чтобы тебя запутать. Отгадывай правильные слова и вкатывайся в битрикс.
>>2810082 Интересно, а скинь выпуск, хочу глянуть. На пыхе есть бекенд, если тебе бекенд не интересен, то не актуально. Если он тебе интересен, то там бекенд поинтереснее, чем жс/питон можно найти. Но на жс/питоне море других вакансий, которых на пыхе нет
Если под "вебом" ты имеешь в виду хтмл рендеринг, то я такое тыщу лет не трогал вообще, онли классик бекенд, т.е. перекладывание джейсонов.
В целом, если бы я сейчас вкатывался с нуля, я бы смотрел в сторону Го, но пыха норм вариант тоже. Тут главное не прогадать с местом и не попасть на легаси и прочий кал.
RSS это вообще-то Resident Set Size, то есть то, что использует оперативную память (а не пространство в своп-файле).
Самый правильный способ мерять память - это PSS (Proportional Set Size), но в Винде его нет. А хуже всего измерение памяти сделано на Маке - там есть колонка Memory в диспетчере задач, но я не смог найти техническое (не для даунов) объяснение, что именно там считается.
Все зависит от того, как ты вставляешь. Если ты каждую запись вставляешь отдельной транзакцией, то это небыстро. Лучше почитать советы по bulk insert, например
> Я думал что больше меня удивить нельзя, но меня удивили. Это типа мы собираем статьи выбирая слова из колонки в базе? Оригинальный способ. А главное можно очень здорово сэкономить место на повторяющихся словах.
Очевидно же, что он делает обратный индекс для поиска.
>>2811541 Да нет, нихуя не очевидно. Если строк до миллиона, то пусть делает LIKE и не выебывается. А если больше, то пусть использует базу для поиска по тексту: эластик или сфинкс.
>>2811537 >Также, у PhpStorm редактируемый дизайн всегда был. Я помню, там еще быыла панель с которой можно убрать все кнопки, и вообще саму панель убрать, и вообще все нахуй убрать или перекрасить под себя. Пофиксил
>>2811537 >вроде дополнения для разрешения конфликтов, в котором всего 3 панели (вместо нужных 4) А хули не пяти? Пиздец просто. Трехоконный резов у разрабов вскода пять лет на коленях просили и они его наконец-то высрали. Но всегда найдется еблан не такой как все. Надо ему больше окон, хуй знает зачем правда и в трех все видно, но блядь надо.
>>2809150 Кстати да, HDD диск при запуске шторма начинает дико скрипеть и кряхтеть, помимо памяти с процом ещё и диск жрет, не иде а стресс тест какой-то
Почему задачу про список студентов https://github.com/codedokode/pasta/blob/master/student-list.mdНадо в ООП стиле делать? Там же просто отправить данные в базу, вывести их, и редактировать (отправить новые), процедурным нельзя обойтись или я что-то упускаю
>>2812225 Ты упускаешь что весь код на пхп пишется в ооп стиле. Все билиотеки, все фреймворки. И на работе ты будешь писать только ооп код. В пхп даже автозагрузчик работает по принципу файл = ооп класс.
Ты уже споришь просто из принципа. Трехпанельный интерфейс по типу meld (с скругленными линиями) выглядит красиво, но неудобенб так как в нем трудно понять, как было и кто что поменял.
А надо 4 панели:
- как было в оригинале - как поменял я - как поменяли они - что получилось в итоге
Можешь попробовать сделать процедурно, но скорее всего лапша получится. Например, как ты представишь данные о Студенте? Массивом что ли? Это же уродливо, так как в массиве непонятно какие поля есть, какого они типа, что с ним можно делать итд.
В программировании часто встречаются штуки, у которых есть свойства, напрмер:
Товар со свойствами "цена", "размер", "вес", "цвет", "название" Звездолет со свойствами "текущие координаты", "текущая скорость", "содержимое трюма" Рейс со свойствами "аэропорт вылета", "аэропорт назначения", "длительность"
И так далее. Их удобно представлять объектами, для этого объекты и придумали. Не надо представлять их в виде лапши из массивов. Приведу один простой пример. Допустим, у тебя есть функция, принимающая объект Student:
saveToDb(Student $student)
Ты сразу видишь, что это объект Student, можешь увидеть какие в нем есть поля, какого они типа. А без объектов:
saveToDb(array $student)
Ничего не понятно. Какой массив нужен, с какими полями - сиди гадай, особенно если это огромное приложение и студент дальше в 20 разных функций передается.
>>2812555 >Если строк до миллиона, то >А если больше, то Читать научись, умник хуев. Как же заебали хуеплеты, которые только пиздеть горазды. Ты проверил свои слова, уеба? Нет? Так нахуй ты варежку разеваешь тогда?
>>2812557 KDiff3 шизик, как ты заебал. Ты срешь здесь своим говном мамонта года три уже.
>как было в оригинале Есть. >как поменял я Есть. >как поменяли они Есть. >что получилось в итоге Тоже есть.
Все там легко понять кто и куда поменял. Так в шторме дифф еще и интерактивный. Там можно по коду навигацию делать, все подсказки во время диффа работают и стат анализ. А самое смешное, так это то что в вскод точно блядь такой же дифф теперь. Да и вообще везде походу. Один ты сидишь как еблан со своими окошками ебучими.
аноны,нужна помощь. у меня в браузере php файлы обрабатываются как текстовые. php и apache я скачал из репозитория. при подключении к локалхост открывается html страница с формой и при нажатии на submit происходит GET запрос к php файлу и он открывается как текстовый. Пробовал писать какую то хуйню в httpd.conf и в .htaccess в DirectoryRoot, перезагружал службу, но ничего не менялось. Но в Ubuntu Server все работает нормально без танцев с бубном.
>>2809738 >Это язык созданный Не язык, а обертка над JSом
>быть основной средой разработки для тайпскрипта Пилишь такой микромягкими целую IDE для одной помойки под названием TS, а потом делаешь модули для других ЯПов, лул.
Ебутся коты, я в треде полгода не был, помню тут даже в компиляторы упарывались и скорость выполнения бинарного дерева, а он скатился битрикс помойку с тайпскрипт выблядками.
>>2815455 >пхп параша >помню тут даже в компиляторы упарывались >скорость выполнения бинарного дерева Ты тред не перепутал? Конпеляторы чего? Это пхп параша. Всегда ей была.
>Пилишь такой микромягкими целую IDE для одной помойки под названием TS >а потом делаешь модули для других ЯПов Ты за эти пол года совсем от стекломоя ослеп? Вся соль в том что "модули для других ЯПов" пишут васяны в свободное от пивандепалы время.
>помойки под названием TS Ну и каким же надо быть конченым чтобы даже пытаться сравнивать прекрасный современный язык тайпскрипт с пхп калом. В тайпскрипте строгая типизация, энумы, туплы, дженерики, промисы, опшены, паттерн матчинг. Конпелятор сука. Который ДО запуска ошибки ищет. В пхп рот в говне. Кряхтя за пять лет спиздили ридонли поля и энумы. А забыл, юнион типы еще и стрелочные функции. Все. Этот язык только для битрикс помойки и годится.
Признавайтесь, кто в YLab на обучении битриксу щяс? Уверен хоть кто-то есть, всё-таки 80 чел. поток. Хотя вчера на стриме было всего 35 стабильных зрилов. В принципе как обычно на стажировках по битриксу половина отлетает после первой же лекции.
>>2816921 Не, записи уже нет. Следующий поток через 4 месяца, в середине января примерно.
1 месяц обучение, 1 месяц стажировка. На обучении по битриксу обычно ~60-80 человек, на стажировке где-то 10-15 человек.
На обучении 4 лекции, после каждой дают задание, на задание дают 4-5 дней. Делаешь все задания, потом проходишь собеседование ~30-40 минут, потом тебя принимают или не принимают на стажировку. На стажировке делается совместный проект, созвоны каждый день 10-30 минут вечером.
В коцне если всё чётко сделал, как они хотят, то вроде как должен быть еще один собес, потом уже берут на работу тк рф 30к/мес, с увеличением зп по мере роста грейда каждые 3-6 месяцев. Я до конца не доходил, дропнул стажировку почти в самом начале, т.к. рнн шиз. До стажировки изи дойти, задания довольно простые. На стажировке просто надо немного в общение, мне тяжело с этим.
Описывать темы смысла нет, всё очень просто. Но сама работа на битриксе говно, это я думаю все знают, там вечно что-то идет не так. Буквально каждый день.
У них есть и другие направления: python, java, react. Но на них уже по 300-500 человек, на стажировке по 50-100 человек. Плюс ребята там поскиловее, шансов очень мало пройти. Надо быть действительно пиздатым и по хардам и по софтам.
В битриксе проще. Порог не оч высокий, хотя требуют они че-то охуевше много, смотри пикрил. Плюс к пикрилу они еще на ххсру писали про MVC + дизайн паттерны, что уже как бы нихуя себе как много для стажера по БИТРИКСУ.
В целом ниче сложного. Думать там особо не придется. Нужно просто знать что и как пишется. Как конструктор.
>>2816967 Ну 300-350 на синьке, на ведущем 500к+ как нехуй, спецов по битриксу мало, а проектов легаси дохуиллион. Новые тоже бывают, но там уже франкенштейны из лары среакта вью.
Если вы восхищаетесь Python так же, как и я, и задумываетесь о карьере Python-разработчика, вам понадобится наша дорожная карта по Python. В августе 2023 года этот ЯП возглавил рейтинг популярнейших языков
>>2817171 >>2817393 >>2817451 Куда идут то блять, никто уже никуда не идет, айти умерло. Тут кроме набежавших с пикабу мелкобуквенных уебанов вроде тебя никто не сидит уже. Уже и курсы свои рекламируют в треде ебнутые. Вам тут блять медом намазали что вы слетелись или что.
Не нашел, где спросить за "лекарство от жадности" для шторма и идэи, версия шторма 2022.2.2 и идеи любую подходящую, где мои бородатые года, когда не было зазорным ставить что-то ломаное, но не поощряю, просто реально возможности купить нет, у меня лично.
>>2817733 >В пхп тоже джунов дохуя? Я думал, что тут их меньше всех
Их сейчас везде до хуя, тут спасибо продаванам говнокурсов которые пихали свою рекламу про легкий вкат в айти и 300к из каждого утюга последние пять лет
>И что джуну делать? опыт крутить?
Можно но вряд ли поможет, сейчас даже мидлам с реальным опытом тяжко.
У тебя Apache не настроен, чтобы запускать PHP при обращении к скриптам. Нужно установить и включить модуль Апача, который за это отвечает. В Дебиане он называется, например, libapache2-mod-php.
После установки в конфиге Апача нужно разрешить этот модуль, и дальше обычно все работает из коробки, если нет, то нужно прописать в конфиге Апача директивы: какие файлы передавать на обработку PHP и тд.
В тайпскрипте все проверки только на этапе компиляции, а в рантайме проверок нет. С большой вероятностью джун поставит в коде тип Any, и вся твоя стройная система типов рассыплется как карточный домик.
Вспомни вопросы, на которые неуверенно отвечал и отполируй их до идеального знания. Параллельно делай свой пет-проект на гитхабе.
Но, конечно, причина может быть и не в знаниях, а например: не то образование, наличие уголовных дел, не возвращенные кредиты, странное поведение, не деловой стиль общения, и тд.
А также, возможно, там просто был кандидат лучше тебя, у которого больше опыта, у которого хорошие рекомендации и просто выбрали его. Ты же понимаешь, что кандидатов может быть 100, а выберут только одного. И тебе надо быть лучше этих 99.
>>2819746 Ебать ты гений. Эт че, если джун-долбоеб в джаве поставит тип Object, то "вся твоя стройная система типов рассыплется"? А в го interface{}? Ай беда, джуны-долбоебы разрушают строгую типизацию на планете.
Ебальник завали, еблан. В пхп нет проверок вообще. Вот это натуральный кал.
>>2819762 Это кал и не кал одновременно. Есть свои плюсы, а минусы можно перекрыть, хоть и не полностью. Самый простой способ узнать возможности перекрытия это прочитать Зандстру, далее уже развивать и ветлить свои навыки.
>>2820160 >Это кал и не кал одновременно. Есть свои плюсы, а минусы можно перекрыть Это кал. Плюсы в сравнении с тайпскриптом перечисли.
>прочитать Зандстру, далее уже развивать и ветлить свои навыки Твои навыки никого не ебут. Без жестких ударов по еблу компилятором хуйню будут пороть ВСЕГДА. И не только джуны. Сонаркуб немного помогает, но все равно приходится тыкать ебалом как маленьких котят чтобы исправили свой кал.
> Исходные данные: 30 лет, высшее образование по специальности логистика, 10 лет опыта работы в логистике, в т.ч. 5 лет на руководящих позициях. Июнь 2021 - приняла решение учиться и менять сферу на frontend, выбрала одну из многочисленных онлайн-школ и записалась на курс.
> Итог: апрель 2023 - получила оффер на позицию junior frontend-разработчика на полный день с официальным трудоустройством.
>>2821554 Ты написал хуйню. Асинк и авэйт это просто синтаксический сахар. Хочешь используй, хочешь не используй.
А ты на серьезном ебале заявил: наш велосипед ездит только назад, а руль заварен. Вот вы там на своих велосипедах как хотите катаетесь, а мы только взад. Охуенное преимущество. Сразу захотелось говна навернуть (нет).
Почему хваленный PHPStorm не даёт ни какого облегчения при создании проектов и запуске? Мне также приходится всё ручками в консоли писать. В той же идее для джавы достаточно зеленую кнопку нажимать и всё само запускается, а тут ноль сервиса. За что они вообще такие деньги дерут? За лагающий текстовый редактор!?
>>2822967 >Мне также приходится всё ручками в консоли писать Что "всё"? Пикрелейтед создание пхп проекта в шторме. Выбрать зависимости можно, выбрать композер пакет можно. Хули тебе еще надо?
> Асинк и авэйт это просто синтаксический сахар. Хочешь используй, хочешь не используй.
Ты тоже ничего не понял. В PHP ты пишешь бизнес-логику с помощью синхронного кода. Тебе не надо писать await или мучаться с промисами, когда ты хочешь что-то дернуть из БД. В Node ты не можешь писать логику с помощью синхронного кода. Ты вынужден везде использовать промисы или await. Поэтому на PHP писать бизнес-логику удобнее. А на Node До появления Го было удобнее писать асинхронные чатики.
>>2823881 >В Node ты не можешь писать логику с помощью синхронного кода Че за хуйню ты написал? Что значит "писать логику"? Причем тут нахуй нода? Кто тебя вынуждает писать асинк?
>>2823882 На мой взгляд расстановка скобочек у классов и методов не удобная. Я уже привык оставлять их на той же строке, а PSR вынуждает меня переучиваться, а я не могу, не получается.
>>2824117 Дурачек, никто ниче руками не форматирует. Нажимаешь хоткей и иде все форматирует за етбя. А еще пизже настроить автоформат при коммите. Так ты даже не увидишь как этот код должен по всем этим правилам выглядеть. Написал как удобно, а запушил как надо.
>>2824224 Там же выдают макпуки с работы с уже установленным ПО и всякими прогами, которые мониторят чем занимаешься, скрины рабочего стола отправляют начальству.
>>2761920 (OP) Аноны, написал на php задачу, и мне оставил коллега замечание: вот упрощенный пример того, что написано для задачи: private function setIsTestProperty(bool $isTest): void { if (!$isTest) { return; } $this->orderIsTest>setValue('Y'); }
И вызов этого метода: $isTestOrder = $this->getIsTest(); $this->setIsTestProperty(!is_null($isTestOrder));
Коллега говорит: "Может лучше сделать проверку перед вызовом метода?" if ($isTestOrder) $this->setIsTestProperty(); Ведь "При передаче параметра внутрь метода под него выделяется дополнительная память."
Тимлид говорит, что это экономия на спичках и так делать не нужно. Кто прав? Мне то легко исправить то, что говорит коллега, но лид говорит, что так делать нецелесообразно, не будут же они перед каждым вызовом функции делать условие (вот тут может я неправильно говорю, и я что-то не так понял). И как правильно привести аргумент лиду или коллеге, почему нужно сделать так, а не иначе?
>>2825453 А хули тут думать. Пусть докажет. Литерали пусть проведет измерения сколько памяти выделяется, сколько памяти экономится. Имаджинирую его ебало когда он поймет что при каждом запросе количество выделяемой памяти разное, а профит меньше этой погрешности.
>>2825506 >>2825536 Я так грубо не могу, аноны. Лол, мне реально нужно грамотно написать, почему это не выгодно. Мне не сложно добавить это условие, если это действительно даст какой то буст к оптимизации, но все говорят, что ничего это не даст, а почему, я ответить не могу. Ладно хоть задачи из спринта закончились для моего уровня, поэтому я могу уделить время этому вопросу, но он уже 3 день не апрувает МР. Я ему должен ответить, а что ответить я не знаю, говорю, что это не выгодно, он все равно пишет сделай так.
>>2825545 >Я так грубо не могу, аноны А он может. Либо пусть пруфает что он прав, ты напишешь код, который он хочет и будешь тыкать ему в ебло этим доказательством когда он сам будет в такой же ситуации (а он будет).
Либо пусть он сам что хочет пишет и коммитит. Пусть подрывает свое очко и пишет этот говнокод сам, чтобы каждый видел что за хуесос автор этой дебильной идеи (и это будешь не ты).
Ну или терпи и сглатывай. Это жизнь, пацан, один раз прогнешься и это чмо будет тебя продрачивать непрерывно.
>>2825545 У твоего коллеги очевидный ОКР или другая шиза, и видно что он тупой и не может формулировать свои мысли. Потому что иначе он бы мог привести в пользу своего варианта аргументы: - он более очевидный - сеттер имеет крайне неочевидную логику, принимая bool и устанавливая 'Y'
Но раз уж он выбрал срать под себя, ссылаясь на расход памяти, то скажи ему:
+ sizeof(char) раз у нас булево значение в переменной.
Это очень маленький объем памяти, и им как правило пренбрегают при написании коммерческого кода в PHP. В противном случае имеет смысл полностью пересмотреть политику работы с памятью на проекте, чтобы в дальнейшем подобные вещи можно было сразу писать правильно с Вашей точки зрения и не останавливать рабочий процесс ради длительного аппрува. Потому что предложенная Вами оптимизация неочевидна с точки зрения той же экономии памяти: если переписать предложенный Вами вариант кода как:
$this->getIsTest() && $this->setIsTestProperty();
то мы избежим создания переменной и упростим AST, убрав оператор IF. Для избежания таких неочевидных моментов прошу Вас сформулировать детальную и непротиворечивую политику по работе с памятью, чтобы мы могли последовательно ей следовать.
>>2826064 Какой-то слишком избирательный ОКР. Так в общем-то весь код написан. Даже ембеддед на плюсах. Такие оптимизации в лучшем случае задача компилятора, а в худшем на такое всем похуй.
Значит до этого этот черт видел точно такую же конструкцию тыщу раз и все было нормально. А как только дело дошло до аппрува пулл реквеста человека рангом ниже начался ОКР.
Никакой это не ОКР. Это ВОСПАЛЕНИЕ ПИДОРСТВА. Пока что в легкой форме. Лечится постановкой на место внутремышечно.
>>2826294 В том-то и дело что он не может. Власть это вопрос веры в неё тех кто ей подчиняется. Тут не важно даже что требуют сделать, да хоть попрыгать или в ладоши похлопать. Важно чтобы нагибаемый подчинился. Признал власть над ним. Не за авторитет, не за знания. А самое наитупейшее "я сказал, ты ебальник завалил и сделал".
Очевидно что никто тут ничего "оптимизировать" не хочет, и сам в последствии так код писать не будет. Просто омегу в очередной раз пробуют на прогиб. И я просто хочу напомнить, что есть все права и возможности отказаться и в этой хуйне не участвовать.
>>2826064 >>2825536 >>2825506 Ну я попросил его показать источник, который показывает, что его способ добавляет производительность, он написал, что: 1) Вызывается метод (тратится процессорное время и память) 2) В него передается переменная (тратится дополнительная память) 3) Внутри метода обрабатывается условие-проверка переменной При этом метод с переменной вызывается абсолютно для всех заказов, в том числе не тестовых, которых большинство.
>>2826064 Многие реагируют агрессивно, после моего вопроса, но я вот честно не могу адекватно ответить ему, чтобы он понял, почему он не прав, потому что я сам не могу понять, почему он не прав. Твой пример с $this->getIsTest() && $this->setIsTestProperty(); как то дает понимание (хотя он бы не сработал, так как роут возвращает строку, а не булевое значен, и false бы воспринялся как true да-да, это так работает тут, но сейчас это не важно, тот человек, кто это делает уволился. Ну вот это я вообще не понял >Расход памяти на передачу $isTest в функцию через стэк равны размеру структуры: >https://github.com/php/php-src/blob/0d7ef87bf64b52c959ba8c15d6b4b39a331e9980/Zend/zend_types.h#L315C7-L315C7 >+ sizeof(char) раз у нас булево значение в переменной. >Это очень маленький объем памяти, и им как правило пренбрегают при написании коммерческого кода в PHP. Почему им пренебрегают? И что описано в твоей ссылке? Почем лид не вмешивается в "спор", потому что, скорее всего он хочет, чтобы я написал ему сам в чем он не прав. Но аргумент лида я привел, а коллега в ответ пишет вот это. Я могу скопировать твое сообщение, но я без понятия, что описано в твоей ссылке. Все отвечают на этот вопрос агрессивно, но по простому, почему коллега не прав, никто ответить не хочет. >Это очень маленький объем памяти, и им как правило пренбрегают при написании коммерческого кода в PHP. Ну мал и мал, в чем проблема сэкономить эту малость? Ты только не думай, что я с тобой спорю, я просто хочу услышать простой ответ.
>Ну я попросил его показать источник, который показывает, что его способ добавляет производительность, он написал, что: >1) Вызывается метод (тратится процессорное время и память)
Метод вызывает в любом случае.
>2) В него передается переменная (тратится дополнительная память)
Передай по ссылке, лол. И предложи все переменные передавать по ссылке в будущем, чтобы не было расхода памяти на копирование.
>3) Внутри метода обрабатывается условие-проверка переменной >При этом метод с переменной вызывается абсолютно для всех заказов, в том числе не тестовых, которых большинство.
И это хорошо - потому что если какой-то еблан в другом месте забудет сделать обработку тестовых-не тестовых, то у вас тестовые данные могут в прод уйти или наоборот тестовые операции пройдут над продовыми данными. Конечно в нормально кодовой базе это моветон, но у вас, я так понял - говно.
>Многие реагируют агрессивно, после моего вопроса, но я вот честно не могу адекватно ответить ему, чтобы он понял, почему он не прав, потому что я сам не могу понять, почему он не прав.
Он абсолютно прав формально. Но на практике такой хуйней никто никогда не занимается. Если человек занимается такой хуйней - у него или ОКР(он литералли видит как синеющие хрипящие переменные задыхаются от нехватки памяти, и ему физически хуево от каждой лишней переменной), или он просто хочет из принципа. Или ты еблан, который о чем-то умалчивает.
> Твой пример с $this->getIsTest() && $this->setIsTestProperty(); как то дает понимание (хотя он бы не сработал, так как роут возвращает строку, а не булевое значен, и false бы воспринялся как true да-да, это так работает тут, но сейчас это не важно, тот человек, кто это делает уволился.
Ты тоже будешь абсолютно формально прав с позиции экономии памяти, но писать такой код - долбоебизм.
>Ну вот это я вообще не понял >>Расход памяти на передачу $isTest в функцию через стэк равны размеру структуры: >>https://github.com/php/php-src/blob/0d7ef87bf64b52c959ba8c15d6b4b39a331e9980/Zend/zend_types.h#L315C7-L315C7 >>+ sizeof(char) раз у нас булево значение в переменной. >>Это очень маленький объем памяти, и им как правило пренбрегают при написании коммерческого кода в PHP. >Почему им пренебрегают? И что описано в твоей ссылке?
Это сишная структура представляющая переменную в PHP. Ее размеры в памяти:
68 байт, поскольку будет инициализирован только указатель на bool, добавим еще несколько байт, ну пусть будет 80 байт лишней памяти. 80 байт, которые существуют только в области видимости текущей, а потом удаляются сборщиком мусора. Если такая мелочь правда важна, то просто пройдись по его последним коммитам и потыкай ему во все временные переменные, во все передачи не по ссылке, и т.п. - там литералли каждый коммит разъебать можно будет.
> Почем лид не вмешивается в "спор", потому что, скорее всего он хочет, чтобы я написал ему сам в чем он не прав.
Потому что лид вероятно не хочет портить отношения с долбоебом, или тебя пытаются в лучших традициях спидорашьей дедовщины научиться отстаивать свое мнение.
> Но аргумент лида я привел, а коллега в ответ пишет вот это.
> Я могу скопировать твое сообщение, но я без понятия, что описано в твоей ссылке. Все отвечают на этот вопрос агрессивно, но по простому, почему коллега не прав, никто ответить не хочет.
>>Это очень маленький объем памяти, и им как правило пренбрегают при написании коммерческого кода в PHP. >Ну мал и мал, в чем проблема сэкономить эту малость? Ты только не думай, что я с тобой спорю, я просто хочу услышать простой ответ.
если человеку правда важна экономия памяти, то так лучше. Идеальный вариант - одновременно выкидывает из функции setIsTestProperty проверку на тестовость, радуя ЧСВ коллеги, и тут же дает ему щелчок по носу в виде уебищного is_null($this->getIsTest()), которое формально экономит память.
>>2826420 Спасибо, анон >Метод вызывает в любом случае. if ($isTestOrder) $this->setIsTestProperty(); В таком случае ведь не всегда вызовется метод $this->setIsTestProperty(); >который о чем-то умалчивает. Ну я тебе сказал, что у нас проблемы с оптимизацией, вот поэтому он скорее всего так реагирует на выделение памяти. Я удивлен, почему за всю его работу (год) в компании он кинул тред именно мне с таким замечанием. Как будто он хочет внедрить эту идею через меня. Если что, >Он абсолютно прав формально. Но на практике такой хуйней никто никогда не занимается. Ну вот как это понимать?Ты понимаешь, что с моей стороны выглядит как: ну этим можно заниматься, возможно, это даст результаты, но никто этим не занимается, потому что не хочется. В твоем примере !is_null($this->getIsTest()) && $this->setIsTestProperty(); есть один нюанс, читаемость ухудшается, а в его нет. >68 байт, поскольку будет инициализирован только указатель на bool, добавим еще несколько байт, ну пусть будет 80 байт лишней памяти. Вот эти байты даже миллисекунд не экономят?
>>2826444 >>Метод вызывает в любом случае. >if ($isTestOrder) >$this->setIsTestProperty(); >В таком случае ведь не всегда вызовется метод $this->setIsTestProperty();
Это уже другой вопрос. Изначально был вопрос про память.
>Ну я тебе сказал, что у нас проблемы с оптимизацией, вот поэтому он скорее всего так реагирует на выделение памяти. Я удивлен, почему за всю его работу (год) в компании он кинул тред именно мне с таким замечанием. Как будто он хочет внедрить эту идею через меня. Если что
Честно я уже затрудняюсь ответить кто из вас двоих более долбоеб.
>>Он абсолютно прав формально. Но на практике такой хуйней никто никогда не занимается. >Ну вот как это понимать?
У меня средний процесс пхп на проекте занимает 50 мб. Грубо, если я сэкономлю 100 таких переменных как у тебя, то это вызовет экономию 8 кб памяти. Т.е. это сэкономит 0.00016% памяти. И то для этого все переменные должны быть в одном скоупе. А в случае одной переменной это сэкономит аж 0.00000016 % памяти. Т.е. это неэффективный способ оптимизации. И к нему не прибегают нигде кроме монстров типа VK где свой полупых-полусишечка.
> Ты понимаешь, что с моей стороны выглядит как: >ну этим можно заниматься, возможно, это даст результаты, но никто этим не занимается, потому что не хочется.
Этим никто не занимается потому что это неэффективно. Если человек считает, что экономия такого количества байт оправдана, то и хуета типа:
>В твоем примере !is_null($this->getIsTest()) && $this->setIsTestProperty(); есть один нюанс, читаемость ухудшается, а в его нет.
Ну не бывает все сразу, нужно жертвовать или читаемостью или памятью. Другой вопрос кто именно определяет в какой мере и в какую сторону жертвовать. Вот прямо и спроси его где проходит грань между читаемостью и оптимизацией и почему решает ее он, а не тимлид или ты.
>>2826468 >Честно я уже затрудняюсь ответить кто из вас двоих более долбоеб. Вот нафига этот сарказм? Сам спросил, а ты "Честно, я уже затрудняюсь", бла-бла-бла. Ладно, спасибо за ответы, пойду спать, посмотрим, что в понедельник будет
>>2827601 Голанг проще, чем РНР. Там нет толком ООП, нет исключений, не надо учить паттерны всякие. Единственное - это горутины, но они настолько простые, что проще многопоточки не бывает. Но с другой стороны на РНР проще писать готовые сайты, так как многое уже есть в самом языке, а на голанге надо всё с нуля писать.
Архитектура ноды. В ноде сетевые операции реализованы асинхронно и это приходится учитывать при написании кода. Такое ощущение, что тебе как маленькому, надо все пояснять.
Докер это такой извращенный (но популярный) способ упаковать программу со всеми зависимостями, плагинами в образ. Например: у вас в команде используется PHP версии 8.1 с расширениями X, Y и Z. Разработчики используют разные ОС, и без докера им придется гуглить, как в их ОС ставить PHP, как к нему установить расширение, а в неудачном случае, еще и как его компилировать, а это не всем комфортно.
Хуже того, может получиться так, что разработчик работает над 2 проектами, и ему надо 2 разных версии PHP, а стандартно в его ОС две версии одной программы поставить нельзя (в линуксе такая проблема есть).
Наконец, часто нужна не одна программа, а много: PHP, Postgres, Elasticsearch, все со своими настройками. В случае с Докером ты просто пишешь несколько конфигов, а твои коллеги запускают Докер и он все устанавливает и запускает как указано в конфигах.
То есть, чтобы установить все нужные программы, с Докером достаточно набрать одну команду. А без Докера все придется ставить и настраивать вручную, и нужны сисадминские скиллы.
Так а на макбук как нужные программы нужной версии с нужными настройками установить? Они сами там волшебным образом появятся? А на сервере, где тесты прогоняются? Это надо отдельно человека нанимать, деньги ему платить, зачем это делать, если можно использовать Докер и не платить?
А ты не пробовал измерять время выполнения кода в двух вариантах? Без измерений это будут пустые рассуждения.
Вот, как это можно сделать:
$start = microtime(true); for ($i = 0; $i < 1_000_000; $i++) { первый или второй вариант кода; } $t = microtime(true) - $start; var_dump($t);
То есть мы выполняем код миллион раз и меряем общее время. Почему миллион? Потому что код выполняется слишком быстро и 1 раз мы просто не заметим (так как точность microtime ограничена).
Но, допустим, я возьму с потолка, один вариант кода выполняется на 50 наносекунд быстрее другого и требует на 50 байт больше памяти. Надо ли его использовать?
Ответ - нет. Надо смотреть, какой вариант проще и понятнее. Так как более сложный код увеличивает время на чтение кода, на правки в нем. Время разработчика не бесплатное - 1 секунда времени при з/п в 500 р/час стоит 500÷3600 = 13,8 копеек.
То есть, каждая лишняя буква в коде стоит денег - время на написание и время на чтение другими разработчиками.
Более того, сложный код повышает вероятность допустить ошибку, а на то, чтобы ее заметить, найти и исправить, уйдет далеко не одна секунда. Ошибки стоят денег твоей компании. Также, плохой код влияет негативно на настроение разработчика и снижает мотивацию.
А сколько стоит экономия 50 наносекунд времени процессора? В Яндекс-облаке ( https://cloud.yandex.ru/docs/compute/pricing#prices ) час работы процессора стоит примерно 1 рубль. 50 нс стоят 0, 000 005 копейки. Разумеется, эти 50 нс тратятся не 1 раз, а при каждом выполнении кода. Как домашнее задание, можешь посчитать, сколько раз должен выполниться код, чтобы затраты времени на написание одной лишней строки окупились бы.
Наконец, давай посмотрим на это с точки зрения инвестиций. Вот бизнес платит разработчику зарплату. Что, с точки зрения бизнеса, лучше:
- если разработчик напишет новую фичу, которая позволит привлечь больше клиентов, или исправит баг, из-за которого клиенты уходят - или если разработчик весь месяц будет добавлять if в код, чтобы сэкономить 50 байт памяти на каждый if
То есть: пиши приятный, понятный, читабельный код, который очевиден и в котором трудно сделать ошибку при правке.
Вот еще пример, как предложенный коллегой вариант вредит:
Допустим, завтра у нас поменяется условие и в функции будет не if (!$isTest), а более сложное условие. Тогда тебе придется пройтись по коду, найти все «оптимизирующие» if и исправить условие в них. Представь, сколько это будет стоить. И как легко там допустить ошибку, на исправление которой тоже уйдет время (найдена ошибка - надо исправлять - сроки публикации сдвигаются - прибыль теряется).
Потому, что скрипт обычно потребляет 10-30 мегабайт памяти, и 50 байт (или сколько там уходит) - это капля в море.
Не стоит усложнять код, чтобы сэкономить 0,0000..% памяти. Тем более, я бы не сказал, что память сейчас дорогая - в Яндекс-облаке 1 час аренды 1 Гб памяти стоит 39 копеек (это аренда сервера, если у тебя свой сервер куплен, то память еще дешевле обходится). Ну посчитай, сколько денег сэкономит экономия 50 (или 500) байт памяти. И сравни с стоимостью времени программистов, потраченной на эту оптимизацию.
Также, если память для аргумента функции выделяется на стеке, то она автоматически освобождается после завершения функции. То есть это временное выделение памяти, перед вызовом любой функции мы выделяем память на стеке, кладем туда аргументы, вызываем функцию, а когда она вернется, память освобождается (это логично, функция завершилась и ее аргументы больше никому не нужны).
> И что описано в твоей ссылке?
По ссылке код интерпретатора PHP на языки Си. То есть, PHP, который выполняет твою программу, сам написан на Си и его исходный код можно увидеть на гитхабе, чтобы понять, как он внутри устроен и что происходит при вызове функции.
> Ну мал и мал, в чем проблема сэкономить эту малость?
Вот представь, что прошло 20 лет и ты стал владельцем бизнеса. У тебя есть, условно, 100 000 рублей, за которые программист готов поработать 2 часа. На что лучше потратить эти деньги: на экономию 500 байт памяти или, например, на внедрение новой фичи, исправление бага?
Или представь, что ты студия. Заказчик дал тебе X рублей и ждет, когда ты сделаешь ему сайт. Какая тебе лично прибыль, если ты потратишь время и деньги на экономию 500 байт? Ты просто больше времени потратишь, а денег тебе за это не дадут.
Если стоит задача оптимизации, то выгоднее оптимизировать то, что даст больше экономии.
Допустим, ты можешь переделать код как тебе советуют, сэкономил 0,000001% памяти, хотя на этот скрипт никто и не жаловался. Или ты нашел место, где много данных загружается в память, из-за чего скрипт ее ест гигабайтами и падает, и переделал на потоковую обработку, снизив потребление до 100 мегабайт (условно, сэкономил 95% памяти).
Ну подумай головой, если стоит задача оптимизации, то на что лучше будет потратить время? Оптимизацию всегда начинают с анализа: в каком месте оптимизация даст максимальный эффект? В каком месте ее сделать проще при этом?
Перестановки if местами это не оптимизация. Это идиотизм.
Проблемы с оптимизацией возникают не из-за лишнего вызова функции, а из-за кривых алгоритмов (например: загружают в память 100 000 строк из базы через ORM хотя можно загружать последовательно, или в обход ORM). Ну подумай сам, если у вас алгоритм кривой и ест память гигабайтами, то как экономия 80 байт исправит проблему? Сколько таких 80-байтовых оптимизаций надо сделать, чтобы сэкономить хотя бы 1 гигабайт? Сколько рабочего времени на это уйдет? Сколько оно будет стоить?
Учись мыслить как капиталист сначала опечатался и написал копиталист, по моему смешно получилось уже.
Си желательно изучить сначала, чтобы понимать память, указатели, байты, двоичную арифметику, стек, кучу. Ну может, конечно, ты умный и уже все это знаешь.
Добрый день. Phpstorm предлагает дополнять некоторые функции или методы атрибутом #[Pure].
1) Насколько необходимо применение атрибутов на практике? 2) Как часто вы их применяете. 3) Нужно ли мне добавлять их в такие несложные задачки и последующие задачи из учебника?
>>2830684 Это старая бесполезная хуйня, которую придумали когда атрибуты в пхп только добавили. На волне энтузиазма думали что щас как запилят че нить крутое с этими атрибутами. Но дальше заглушек https://github.com/JetBrains/phpstorm-attributes дело не пошло.
Если коротко, то нахуй не надо. Тем более что эта инспекция pure на самом деле не тот pure, который общепринят https://youtrack.jetbrains.com/issue/WI-56211 . Отписка охуенная, мол да название неправильное, но зато коротко. Поменяем когда будет пиздец. Даже им самим на эти атрибуты поебать кароч.
Аноны, я полный нуль в php, который начал разработку своего "интернет-магазина". Это не какой-то коммерческий проект, а обычное говноподелие для локальных нужд. Данный "магазин" нужен для нашей ДнД компашки, чтобы покупать себе игровые вещи за игровую валюту во время игры. Собственно вопрос, наверняка кто-то из вас писал такие проекты в качестве портфолио, не могли бы вы поделиться своим кодом? Я бы хотел разобраться как все устроено и сделать нечто похожее. В гугле выдаются только инфоцыганщина или копролиты вековой давности
>>2831806 Алсо, с пониманием самого языка проблем нет. Я уже писал для себя генератор аватарок, редактор .png-файлов с примитивными функциями цветокоррекции, парсер формата для игровых карт от ДнД и т.д. Мне хочется понять именно общую структуру интернета-магазина, т.е. через какие контроллеры пользователь взаимодействует с моделью, как формируется "отображение" для пользователя, как не обосраться с безопасностью и т.д.
>>2831806 Просто набери в гугле "ларавель магаз за пять минут" и не еби мозги. Ты типа хочешь чтобы тебе тут в одном посте как заебись жить рассказали?
>>2831808 > Я уже писал для себя генератор аватарок, редактор .png-файлов с примитивными функциями цветокоррекции, парсер формата для игровых карт от ДнД и т.д.
Покажи код чтобы знать какое у тебя понимание пыхи
>>2831908 >Ты типа хочешь чтобы тебе тут в одном посте как заебись жить рассказали? Я хотел ваши велосипеды без фреймфворков посмотреть.
>>2831994 >Покажи код чтобы знать какое у тебя понимание пыхи Да что там показывать? Обычные классы с полями, методами, конструкторами/деструкторами.
>редактор .png-файлов с примитивными функциями цветокоррекции Например, в данном случае имеем поля согласно спецификации формата png и методы, аля readFromFile(), writeToFile(), changeBrightness(-+value) и т.д.
Вообще, по идее "pure" (чистая) функция - это функция, результаты которой зависят только от переданных аргументов. То есть, если ты ее вызовешь с теми же аргументами, то получишь тот же результат.
То есть, такая функция не может использовать генератор случайных чисел, текущие дату/время, читать что-то с диска, из базы, делать запросы по сети, обращаться к операционной системе и тд.
Этот атрибут Pure, судя по всему, что-то не стандартное, а привязанное к PhpStorm. Наверно, не стоит его использовать. А предупреждение можно отключить в настройках.
Ну давай я тебе сейчас придумаю структуру. Не очень понятно, как должен выглядеть магазин, но пусть будет так:
- главная со списком категорий - категории, в каждой выводятся товары - при клике на товар открывается страница с ним - на странице товара кнопка "купить", при нажатии сразу покупается товар и списываются деньги - авторизация (форма логина)
Сначала надо спроектировать БД и модели. Очевидно, нам нужна:
- модель товара - модель категории - модель пользователя - модель, связывающая пользователя с купленными товарами (то есть, нужна таблица, хранящая, кто и что купил) - модель для учета денег (при покупке или пополнении счета добавляется запись, так что доступна полная история)
Если ты используешь ORM, то на этом модели закончены, если нет, то тебе надо написать классы для сохранения этих моделей в БД и загрузки оттуда.
Дальше, сервисы. Сервисы позволяют выполнять операции над моделями, я вижу такие сервисы:
- авторизация (проверяет логин, заголинивает и разлогинивает) - покупка (записывает факт покупки и вносит запись списания денег со счета, позвоялет получить список купленных товаров) - счет (позволяет получать информацию по истории списаний и пополнений денег)
Теперь контроллеры:
- контроллер главной - контроллер просмотра категории - контроллер страницы товара и покупки - контроллер логина - и, может, контроллер для личного кабинета, где можно смотреть историю покупок
Вопрос может странный. У меня нет социалки ИРЛ, из дома не выхожу, обычно по чатиках её удовлетворяю. Т-к. отвлекаться от дела не хочу я отовсюду покикался. Собственно где можно найти на заменну какой-то уютный полутематический чатик по пыхе/вебдеву? А может заодно и друзей по интересам. В телеге нашёл какие-то чаты но там фул нормисы ебанные сидят, с машинами на аватарках.
>>2835094 Да чё сразу урод. Тред устраивает Мне нужно именно общение, чтобы заменяло ИРЛ. Ну там вопросы задавать 24 на 7, мб с кем-то пообщаться на другие темы. Тред немного другое всё же
Почему используют $ при объявлении? Доллар при объявлении свойства не так уж и нужен, и без него бы можно было обойтись. Наверно, по историческим причинам. В первых версиях PHP поля объявлялись с помощью слова var:
class X { var $x;
var значит "переменная", наверно, поэтому и доллар использовался.
Кстати, в статических свойствах доллар используется, чтобы отличить переменную от константы:
>>2761920 (OP) Кто-нибудь шарит за принцип единственной отвественности? Везде писали, что это про то, что "Модуль должен иметь одну и только одну причину для изменения". Но Роберт Мартин поправляет и говорит, что это про то, что "Модуль должен отвечать за одного и только за одного актора." То есть принцип про другое.
Вопрос для вкатившихся, заранее извиняюсь за глупый вопрос, так как я сам будущий вкатун масленок. Стоит ли вкатываться с битрикса? Мне он не особо нравится в плане профессионального роста и изучения, душа больше лежит на ларавель или симфони, хотя если придется, носом воротить не буду, годик или пол года поработать могу. Глянул вакансии, для битриксоидов их тьма тьмущая даже без опыта. Суть вопроса вот в чем, будет ли ценность условным 6 месяцам - году опыта коммерческой разработки на этой CMS, или оно того не стоит и лучше поплотнее поучиться и запрыгнуть не в первую попавшуюся галеру?
>>2839075 Битрикс просто устарел лет на 10-15. То есть если и пойдешь стажироваться, всегда помни, что в современном мире так сейчас никто не пишет, как это до сих пор реализуется в битриксе. Например, сейчас в моде везде ddd, в битриксе же код писали в такую эпоху мамонтов, что его в принципе невозможно тестами покрыть, не переписав половину ядра. Или миграции - их тупо нет в оффициальной сборке, вообще. mvc там условное, на psr клали хуй, документация описана наполовину, намного проще самому залезть под капот и посмотреть. А там зачастую ад и израиль, если что. Я бы пошел на стажировку тупо ради опыта работы в команде, с репозиториями поработать там, в целом кухню внутреннюю пощупать, как мелкие проекты пишутся от проектирования до разработки. Но, опять же, если контора делает сайты на битриксе, долго там лучше не засиживаться
>>2839234 Ну вот и я о том же, не хочу ковыряться в этом болоте, но если не будет вариантом, чисто для опыта коммерческой разработки и работы в команде на пол годика залететь думаю можно. Чтобы потом выделяться на фоне остальных джунов, которые без опыта.
>>2839235 Тдд не применимо в ооп языках. И уж тем более в пхп. Не видел ни одной пхп макаки, которая пользовалась бы тдд. Максимум попробовали, поняли что нихуя не получается и бросили.
>>2839457 Не понел прикола. Причем тут вообще язык, это же больше про разработку, типа сначала тесты напишем, потом логику под них. Причем в пыхе с её задачами уровня крудошлепства над тестами даже думать не надо особо. Всё там применимо в большинстве случаев
>>2839748 Ты не можешь написать тесты не указывая классы тестируемых объектов. У тебя тесты упадут с ошибкой. А если ты сначала будешь создавать объекты, то это не тдд ни хуя.
Тдд работает когда ты тестируешь функцию принимающую array, а возвращающую vector. Ты можешь написать работающий тест, а потом его пройдет любая реализация соблюдающая эти типы.
В нормальных ооп языках есть дженерики. Ты можешь (и должен) писать код, который будет работать с любым типом. В такой ситуации тоже можно сначала написать работающий тест, а потом условно любую реализацию.
В кале говна, под названием пхп, ты так сделать не можешь. Можешь вообще типы нахуй убрать, и бегать как еблан угадывать что куда нужно передать. Многие кстати так и делают (без тдд, просто по тупости). Именно поэтому пхп заслуженно держит марку говноязыка с параши.
>>2839827 Всё еще не вдупляю прикола. Что для тебя тдд и каком тестировании вообще идет речь? Для меня это по большей части процесс разработки с написанием функциональных тестов вначале и допиливания под них логики в конце. То есть пришел тимлид, говорит: хочу вот такой вот апи метод - на входе передаю такой вот массив данных, он у тебя пересчитывается, в базу записывается, и возвращается такой-то результат. Вы посидели, родили под это дело тесты: что и куда должно к тебе улетать, что записаться, что на сторонний ресурс отправиться, и что должно прийти в ответ. И дальше уже подгоняем и реализуем сам метод. Причем тесты вообще могут на чем угодно написаны быть, на питоне или голанге. Для меня это и есть по большей части тдд.
Если ты про юнит тесты, опять же, вместо дженериков используй интерфейсы, используй наследование. Вполне себе хватает для большинства нужд. С подгрузкой нужных интерфейсов и классов в современных фреймворках особо не заморачиваются, всё происходит под капотом, ты про это даже не думаешь.
>>2840265 >Что для тебя тдд и каком тестировании вообще идет речь? Для меня Вообще похуй что там для тебя. Тдд про юнит тесты. Точка.
>То есть пришел тимлид, говорит: хочу вот такой вот апи метод >Вы посидели, родили под это дело тесты >Причем тесты вообще могут на чем угодно написаны быть Это не "тесты" вообще, это acceptance criteria. А это как бы основная часть ТЗ, которая должна быть написана перед тем как таска вообще к тебе попала. Погугли как на кукумбере работа апи проверяется. Это все пишется без тебя, а потом когда ты свою работу закончил, манагер смотрит что acceptance проверка прошла, тогда таска принимается.
>Если ты про юнит тесты, опять же, вместо дженериков используй интерфейсы, используй наследование. Ты тупой? Чтобы использовать интерфейс или класс-наследник его нужно НАПИСАТЬ ПРЕД НАПИСАНИЕМ ТЕСТА. А первое и главное правило тдд гласит: "Never write a single line of code unless you have a failing automated test." Это блядь не я выдумал, это цитата автора подхода. Вся суть в том что структура кода должна подстраиваться под тесты. "TEST DRIVEN" ебаный рот.
>С подгрузкой нужных интерфейсов и классов в современных фреймворках особо не заморачиваются, всё происходит под капотом, ты про это даже не думаешь. Куда подгрузка, ебанько? Тебе нужно use класса в тесте прописать, иначе тест не запустится блядь. А тебе сука нужно сначала запустить тест, убедиться что тест не прошел, а потом писать класс.
>>2839827 >>2840386 >Ты тупой? Чтобы использовать интерфейс или класс-наследник его нужно НАПИСАТЬ ПРЕД НАПИСАНИЕМ ТЕСТА. А первое и главное правило тдд гласит: "Never write a single line of code unless you have a failing automated test." GPT грит, что ты не прав. Оправдывайся. >Это блядь не я выдумал, это цитата автора подхода. Вся суть в том что структура кода должна подстраиваться под тесты. "TEST DRIVEN" ебаный рот. Ваще поебать, что там авторы подхода думают. Про ооп тоже много всякого думоли
>Test-Driven Development (TDD) также может использоваться для функционального тестирования, хотя в этом контексте процесс немного отличается. Функциональное тестирование обычно проверяет, как весь ваш приложение взаимодействует с системой в целом, в отличие от юнит-тестирования, которое проверяет отдельные компоненты или функции.
>Вот общий процесс TDD для функционального тестирования:
>Определение требований: Начните с определения функциональных требований, которые вы хотите проверить. Это могут быть конкретные сценарии использования вашего приложения.
>Написание тестовых случаев: Для каждого функционального требования напишите тестовый случай, который проверяет, что требование выполняется. В функциональных тестах обычно используются библиотеки для автоматизации тестирования веб-приложений (например, Selenium, Cypress для веб-приложений) или библиотеки для API-тестирования (например, Postman, Guzzle для HTTP API).
>Запуск тестов: Запустите тесты. В этот момент все тесты должны провалиться, так как требуемая функциональность еще не реализована.
>Реализация кода: Напишите минимальный объем кода, необходимый для того, чтобы тесты начали проходить успешно. Этот код может включать изменения в вашем приложении или создание новых функций.
>Запуск тестов снова: После написания кода снова запустите тесты. Они должны проходить успешно, что указывает на то, что требуемая функциональность была успешно реализована.
>Рефакторинг (по желанию): Если необходимо, проведите рефакторинг вашего кода, чтобы сделать его более читаемым и поддерживаемым.
>Повторение: Повторите этот процесс для каждого функционального требования или сценария использования.
>Использование TDD для функционального тестирования позволяет убедиться, что ваше приложение выполняет требования и работает правильно в контексте реальных сценариев использования. Это также помогает предотвратить регрессию, когда новые изменения в коде могут ломать существующую функциональность.
>Примеры функционального тестирования могут включать в себя автоматизированное тестирование веб-страниц, проверку работоспособности API или сценарии использования приложения от начала до конца.
Тупо обоссан чат GPT, лол. Не хотел бы я быть тобой, чмо косолобое.
>>2840386 >Never write a single line of code unless you have a failing automated test. Причем тут вообще отсутствие класса. Тест и должен не пройти же, т.к. класс отсутствует.
>>2840436 "Пройти" - значит выполниться и сообщить что результат ассерта false. А если класса не будет, скрипт тупо свалится с ошибкой, нихуя не протестировав.
> The single-responsibility principle (SRP) is a computer programming principle that states that "A module should be responsible to one, and only one, actor." The term actor refers to a group (consisting of one or more stakeholders or users) that requires a change in the module.
Допустим, к тебе приходит финансист, просит что-то сделать, ты меняешь код модуля, затем к тебе приходит маркетолог, просит добавить рассылку, ты снова правишь тот же модуль. Это нарушение принципа SRP, так как ты меняешь один модуль по просьбе нескольких разных ролей (финансист, маркетолог). Получается, твой модуль отвечает и за расчет денежных потоков, и за рекламные рассылки.
> When you write a software module, you want to make sure that when changes are requested, those changes can only originate from a single person, or rather, a single tightly coupled group of people representing a single narrowly defined business function. You want to isolate your modules from the complexities of the organization as a whole, and design your systems such that each module is responsible (responds to) the needs of just that one business function.
То есть, Роберт Мартин предлагает делить приложение на модули так, что каждому подразделению или сотруднику соответствует свой модуль. Когда один сотрудник просит что-то поменять, ты редактируешь связанный с ним модуль, а не модуль другого сотрудника.
Как я это понимаю: допустим, у нас компания для заказа еды и у нее есть сайт. На его разработку влияют:
- отдел контента: они добавляют товары, решают, как должна выглядеть карточка товара - рекламщики: они хотят, чтобы на сайте были баннеры с горячими предложениями, чтобы проводились акции, чтобы были купоны на скидку - email-маркетологи: они делают рассылки, чтобы привлекать пользователей - SEO-специалисты оптимизируют сайт для поисковых систем - отдел доставки доставляет еду - управленцы анализируют, насколько эффективно работает сайт, где теряются покупатели
И, соотсветственно, твой сайт должен быть разбит на модули так, чтобы каждому отделу соответствовал бы свой модуль.
Но принцип SRP часто применяют на более низком уровне, например: у класса должна быть своя зона отвественности, функция должна делать что-то одно. Тут я не уверен, что мы можем это как-то привязать к людям. Тут просто мы не хотим в одном классе или функции смешивать разные задачи.
>>2840505 Ты ебнутый или под пивасом сидишь? Я тебе бля о чем пишу? То что вы "родили" с вашим тимлидом не тест, а формулировка тз. А ты назвал это тестом. А теперь заявляешь что формулировка тз это не тест. Да ну нахуй? Тебе об этом кто-то рассказал? Проспись, макакен.
>>2840508 Тут несколько челиков сидят, челик. Я не он. А по поводу родов, это ты уже ко всякому говну прицепляешься. Да, я не стал расписывать весь процесс разработки, ограничившись только "родами тестов", потому что и не важно, что там и как согласуется. Основная мысль была в том, что тесты в любом случае рожаются до написания логики, в этом основная мысль TDD. Давай еще мне претензию кинь, что мы с тимлидом спринты не расписали, оценку не дали, и т.д. и т.п.
>>2840504 >Так а что тебе мешает придумать название объекта? Создавать такой класс не требуется, так как твоя задача пока только написать тест. Давай пример теста, который тестирует не созданный класс.
>А как ты напишешь тест, не указывая названия функции? Ты сам себе противоречишь. В нормальных языках можно указать сигнатуру функции как тип. Указываешь входящим параметром метода теста сигнатуру функции и все. Что туда передашь, то и будет тестироваться. Пока настоящей функции нет можно передать лямбду, которая нихуя делать не будет. Тест будет работать.
>Ну это бред. Допустим, мне нужна функция, определяющая угол между двумя векторами. Как я сделаю, чтобы она "работала с любым типом"? Баляяя. Каждый раз забываю с какими животными я в загоне. Вектор это "массив". И вектора с разным содержимым это разные типы. Код самого вектора написан с помощью дженериков, чтобы блядь можно было вектор со строками создать и вектор с дробными числами, и работали они одинаково.
Короче. Пропустим бред про "угол". Функция работающая с векторами и так работает с "любым" типом, содержимое векторов может быть каким угодно. Я блядь потому вектор в своем примере и привел. Твой ебанутый вопрос звучит примерно так: вот моя функция соединяет две строки, как я сделаю чтобы она принимала фамилии и названия городов?
>>2840503 Да, спасибо да объяснения, в целом я все понял, но проблема в том, что мне, как новичку, немного трудно понять куда именно добавлять какие-то функции. Типа мне все функции какого-то отдела помещать в один класс? Или делить классы даже для одного отдела? Но ладно, смысл вопроса был в другом.
>Но принцип SRP часто применяют на более низком уровне, например: у класса должна быть своя зона отвественности, функция должна делать что-то одно. Тут я не уверен, что мы можем это как-то привязать к людям. Тут просто мы не хотим в одном классе или функции смешивать разные задачи.
Вот что Мартин пишет по этому поводу
>Из всех принципов SOLID наиболее трудно понимаемым является принцип единственной ответственности (Single Responsibility Principle, SRP). Это, вероятно, обусловлено выбором названия, недостаточно точно соответствующего сути. Услышав это название, многие программисты решают: оно означает, что каждый модуль должен отвечать за что-то одно. >Самое интересное, что такой принцип действительно существует. Он гласит: функция должна делать что-то одно и только одно. Этот принцип мы используем, когда делим большие функции на меньшие, то есть на более низком уровне. Но он не является одним из принципов SOLID — это не принцип единственной ответственности.
То есть он говорит, что это не SRP. В чем мой вопрос. Получается, что сообщество программистов неправильно поняла смысл слов Мартина? Он то имел ввиду то, что ты описал в первой части сообщения, а многие приняли за истину вторую часть твоего сообщения. Хотя они могут противоречить друг другу. Ведь если следовать принципу из второй части, то класс должен содержать одну причин для изменений. То есть класс отвечает за одно действие. Вот это меня и путает. Многие хвалят Мартина и его SOLID, а получается, что одновременно с этим все неправильно понимают его смысл?
>>2840627 >Но ладно, смысл вопроса был в другом. Я тут так написал, как будто обесцениваю твой ответ, анон >>2840503 Ты офигенно все написал, спасибо за ссыль и объяснения (а то мне труждно было разобраться с переводом, что там описано)
Что нужно знать PHP программисту чтобы работать в продуктовой компании, помимо основ? ООП, паттерны gof, poeaa, докер, nginx, mysql и прочее что по 100 раз написано - понятно.
1. А еще что? OAuth2 нужно? Чтобы мог использовать библиотечку, или чтобы с нуля написать? 2. Вот еще пишут в вакухах про хайлод, а что тут нужно знать? 3. REST/SOAP? Это просто контроллеры отдают json по url? Как их делают? Вот допустим yii2 и там как обычные пишем? 3. Что еще знать нужно? 4. Вот допустим задача сделать фильтр товаров в поиске, ну как в dns-shop, это в какую сторону вообще копать? Если все эти свойства принадлежат группе, а товар добавляется в группу и уже все свойства известны. 4.1. А хранить как это все в БД? Как сейчас хранят? EAV? Как в mysql так и постгресе? 4.2. А вот допустим задача интегрировать такие товары у которых куча атрибутов как в dns с 1C - как это делают? Как обеспечивают целостность данных, чтобы в магазин с бд в 1С синхронизировлся, мот туда пришло, а там купили и все возможные комбинации. 5. Ну и насколько нужно упарываться паттернами? GoF, PoEAA - от Фаулера и т.д? 6. Что еще нужно знать про распеределеные системы? Мол сессия одна - храним в редисе и на всех доменах мы гуляем свободно или разные БД на разных серверах. 5. Ну и в целом какие у вас задачи по пхп ежедневные и сложные какие были - можно этот пунк более подробно написать?
Задача: на сайте должена быть форма для бронирования времени (10 слотов по 15 минут). И есть гугло календарь с именем xxxxx. То есть, нужны два эндпонта: взять все события из календаря и показать на странице, и второй - добавить новое событие в календарь.
Блядь, ебучее гуглоапи, я ненавижу эту помойку. И я НИХУЯ не понимаю. Там что вообще требуется? Куда это прикручивать?
Пошёл по пути composer require google/apiclient:^2.15.0. По идее - это SDK. Ты ему - хуяк, он в ответ - пиздюль. А у меня либо ошибки странные валятся, либо пишет, что недостаточно прав для добавления задачи в календарь, хотя все права есть.
>Ты ему - хуяк, он в ответ - пиздюль Тупорылый ты хуесос, ты можешь, сука ты пробитая, внятно изъясняться? Какие блядь ошибки? Что ты вообще делаешь чтобы эти ошибки получить?
Ты блядь когда высирался сюда ты че ждал, дегенеративное хуйло? Телепатического проникновения в твой ебучий календарь и проверки: есть ли там права или ты просто еблан слепой?
Ты, блядь потасканная, ссылку на метод дал. Ты его выполнять пробовал? Там блядь на странице пикрелейтед форма, для тестового запроса. Что ты туда пишешь? Что тебе пишет?
>>2843442 >ты можешь, сука ты пробитая, внятно изъясняться? Так в том-то и дело, что когда могу внятно описать пробему - это равно её решению. Я вполне умею гуглить. Но тут просто сам не понимаю, что именно не понимаю. Проблема расплывчатая.
>>2843468 Залупа у тебя расплывчатая. Ты блядь можешь код показать? Ошибки свои расплывчатые скопировать можешь? Может тебе с твоим расплывчатым ебалом на кассу в пятерочке пойти?
> В нормальных языках можно указать сигнатуру функции как тип. Указываешь входящим параметром метода теста сигнатуру функции и все. Что туда передашь, то и будет тестироваться. Пока настоящей функции нет можно передать лямбду, которая нихуя делать не будет. Тест будет работать.
Ну тогда вместо класса можно интерфейс описать и передать. Но по моему, это глупость, не надо в тест ничего передавать, просто пишешь тест как будто такой класс уже есть и все.
> Вектор это "массив". И вектора с разным содержимым это разные типы.
Вообще, нет. Есть абстрактные векторные пространства, например, где векторами могут быть функции или многочлены. И "угол" там может вычисляться по другим приниципам.
Ты упираешься и споришь просто чтобы спорить. Ну давай возьмем другой пример: функция, которая принимает список объектов-Задач и определяет N наиболее приоритетных с точки зрения экономики (наиболее прибыльные). Расскажи, как ты заставишь ее вместо "списка Задач" принимать что угодно, например, список чисел.
У меня ощущение, что ты потерял нить разговора, и поэтому пишешь ерунду, давай я тебе напомню, где ты ошибаешься.
Ты пишешь:
>>2839827 > Ты можешь (и должен) писать код, который будет работать с любым типом. В такой ситуации тоже можно сначала написать работающий тест, а потом условно любую реализацию.
Я тебе указываю, что ты ошибся:
> Ну это бред. Допустим, мне нужна функция, определяющая угол между двумя векторами. Как я сделаю, чтобы она "работала с любым типом"?
Ты невнимательно читаешь мой ответ, и не видишь слова "угол" между векторами. "Вектора" здесь, ествественно, вектора из математики, а не массивы из Си++, потому что у массивов из Си++ скалярного произведения (и, соответственно, углов) никаких нету. Но ты, не желая признавать ошибку, пытаешься переходить на личности:
> Каждый раз забываю с какими животными я в загоне. Вектор это "массив". И вектора с разным содержимым это разные типы. Код самого вектора написан с помощью дженериков, чтобы блядь можно было вектор со строками создать и вектор с дробными числами, и работали они одинаково.
Ну давай, расскажи мне как ты найдешь угол между двумя массивами из строк. Или массивами из чисел, но разной длины. Напиши (на любом языке) код такой функции, которая находит угол между векторами, но принимает не 2 объекта класса Вектор, а любые типы данных и при этом все равно корректно работает. Покажи, как тебе здесь помогут дженерики.
Хинт: это то же самое, что пытаться написать функцию, делящую на ноль и получающую корректный результат.
> То есть он говорит, что это не SRP. В чем мой вопрос. Получается, что сообщество программистов неправильно поняла смысл слов Мартина?
Возможно. SOLID вообще штука, написанная в таких абстрактных терминах, что люди зачастую ориентируются не на первоисточник, а на пересказы и "лучшие практики".
> Ведь если следовать принципу из второй части, то класс должен содержать одну причин для изменений. То есть класс отвечает за одно действие.
Не за одно действие, так как одно действие это один метод. А за одну задачу. Например, класс для расчета маршрута доставки еды должен заниматься только этим, а не еще какими-то другими вещами (например, генерацией купонов на скидку на следующий заказ).
С нуля писать точно не стоит, а знать принципы хорошо бы.
> про хайлод, а что тут нужно знать?
Хорошо бы иметь опыт работы с ним. Ну можно поискать статьи в интернете про особенности хайлоад-проектов.
> REST/SOAP? Это просто контроллеры отдают json по url?
Вообще, REST это концепция, но часто под ним понимают лишь "отдавать JSON и использовать методы вроде PUT". Ты бы мог погуглить, например, principles of REST API и прочесть в оригинале, а не в пересказе.
Что касается SOAP, то это вполне себе стандарт и он описан.
> Вот допустим yii2
Я бы советовал ориентироваться на Symfony или Laravel. Yii2 ты разве что в легаси встретишь.
> Вот допустим задача сделать фильтр товаров в поиске, ну как в dns-shop, это в какую сторону вообще копать?
В БД обычно для товаров со свойствами используют Entity-attribute-value. Для реализации поиска БД подходит плохо, используй Manticoresearch или Elasticsearch.
> А вот допустим задача интегрировать такие товары у которых куча атрибутов как в dns с 1C - как это делают?
Зависит от того, как эти данные в 1С хранятся. Наверняка, там есть какое-то API для обмена данными.
> Ну и насколько нужно упарываться паттернами?
Во многих случаях паттерны нужны в первую очередь для библиотек. Многие паттерны просто вредные, например, Синглтон. Лучше бы не заучивать паттерны, а понимать приципы, зачем эти паттерны придуманы? Какую проблему они решают? Как иначе можно решить проблему?
> Что еще нужно знать про распеределеные системы?
Смысл распределенной системы в том, что данные хранятся не в одном месте, а "распределены" по нескольким местам. Зачем? 1) для юекапа (чтобы не потерять, если сервер с данными взорвется) 2) для распределения нагрузки (если один сервер не справляется).
Но это сразу же приносит множество проблем. Возьмем проблемы, которые появляются, если вместо одной БД использовать несколько:
- когда данные в одном месте, их легко искать - один SQL запрос. Если они распределены, то тебе надо либо как-то "угадать", на каком сервере их искать, либо делать поиск на всех серверах параллельно (создает большую нагрузку). Ну например, у тебя соцсеть и ты хочешь показать пользователю последние посты его друзей. Но эти посты хранятся на разных серверах, как ты это сделаешь?
- часто нужны связанные данные, например: комментарий и данные пользователя-автора. Но в распределенной системе они могут храниться на разных серверах.
- если данные продублированы на нескольких серверах, то тебе надо при изменении найти и обновить все копии данных, чтобы не было противоречий.
- проблема согласованности изменений: представь, что у тебя банк, пользователь делает перевод другому, и тебе надо обновить счета обоих. Счета хранятся на 2 разных серверах. Ты обновил счет первого пользователя (списал деньги), но скрипт упал и не успел зачислить их второму пользователю. Что делать? Если бы счета были на одном сервере, ты бы мог использовать транзакцию и изменения бы откатились, а с двумя независимыми серверами как?
- проблема распределения нагрузки. У тебя соцсеть. Ты разделил всех пользователей на 10 групп и разнес на 10 серверов. Но одни пользователи более общительны, чем другие, и одни сервера перегужены, а другие простаивают.
То есть, если ты можешь хранить все данные на одном сервере, то ты очень сильно упрощаешь себе жизнь.
Я бы советовал тебе попробовать сначала самому придумать схему распределенной системы, допустим, схему огромной соцсети, как бы ты хранил данные, как бы ты их искал. А потом почитать про лучшие практики и посмотреть, где ты наделал ошибок.
Распределенные системы гораздо сложнее, чем просто "хранить сессии в редисе".
Кстати, говоря про сессии в редисе, как ты защитишься от такой проблемы: допустим, у тебя игра и в сессии хранится число попыток выиграть приз. Максимально разрешено 3 попытки. Когда пользователь делает попытку, скрипт:
- читает сессию из редиса - делает розыгрыш - увеличивает число попыток на 1 и сохраняет сессию в редис
Но хитрый пользователь отправил параллельно 10 запросов. Они все параллельно прочитали сессию, сделали 10 розыгрышей и параллельно записали в сессию , что была сделана 1 попытка (а не 10).
> акие у вас задачи по пхп ежедневные и сложные какие были
Разобраться в недокументированном запутанном коде и догадаться по какой логике он работает.
Что сложного в API? читаешь документацию, делаешь все по ней, проверяешь что все работает и в продакшен
Что тебе непонятно? Скопируй предложение из документации и напиши, что в нем непонятно.
> Документация в виде
Это документация к SDK (автоматически сгенерированная). Тебе надо сначала прочитать документацию по API ( https://developers.google.com/calendar/api/guides/overview ) и понять, какие методы нужны. Затем в SDK найти класс, который делает эти вызовы.
То есть, прочитай сначала документацию по API, только потом по SDK.
>>2844855 ты наверное серьёзный хуесос сидишь такой с очками и думаешь что самый крутой но я написал прикол сарказм потому что ебанат спросил хуйню а такой же ебанат мне сейчас отвечает
>>2844941 Долбоебина, ты все никак не угомонишься, шизофреник? Какие алгоритмы в PHP? Ты вообще в курсе что встроенные функции быстрее в дохуя раз, потому-что они на С++ написаны, а не интерпретируются, хуесос? Ты в курсе что PHP служит для автоматизации бизнеса и программеры работают с готовыми решениями, а не с низкоуровневыми. Школьник дегенерат, Java/PHP - это для готовых решений, а не байтоебство и написание библиотек как в С++.
Малолетний дурачек, съеби из треда пока по жопе не получил
Как вообще у вас нагрузка на работке? Как примерно рабочий день у вас выглядит? Успеваете ли вы ещё пожить после работы? Есть ли смысл двигаться в сторону фулстака надеясь на то, чтобы проёбывать на работке?
>>2844516 Если я правильно понял, то нужно перенести создание объектов в функцию, многоточие для того, чтобы ты сам дописал: $q1 = new Question(); $q1->text = $q1->points = $q1->answers = ... $questions[] = $q1; Потом также $q2 и $q3
Потому что один вопрос = один объект. Хочешь создать 3 вопроса, создай 3 объекта.
Один объект хранит информацию об одном вопросе.
> почему у них одно и тоже название
Название $q это название не объекта, а переменной. Мы сначала создаем с помощью new первый объект и с помощью $q = сохраняем его в переменную $q:
$q = new Question; // new это оператор создания нового объекта
Затем, используя переменную $q, мы задаем свойства объекта:
$q->text = 'Какого цвета стоп-кран в самолете?'; ...
Затем мы помещаем объект из переменной в массив:
$questions[] = $q;
Теперь мы хотим создать второй вопрос. Мы могли бы сделать для него новую переменную, но зачем? Объект первого вопроса в переменной $q нам больше не нужен, и мы можем создать и поместить в нее второй объект:
$q = new Question;
> почему вместо кода многоточие
Мне показалось, что и так понятно, что там за код и его можно не писать.
Важный момент: не путай объект и переменную. $q это не объект, а переменная, в которую мы поместили объект. Когда мы пишем:
$x = 3;
Это же не значит что $x это число 3. $x это переменная, в которой сейчас временно хранится число 3. То же и с объектами.
Я наверно неясно выразился. Я имел в виду, что $q это не название объекта, а название переменной. Когда мы пишем $x =3, это же не значит, что $x это название числа 3? Это название переменной, в которую мы поместили число 3.
У объектов, как и у чисел или строк, нет названий. Названия (имена) есть у переменных.
Специально предупреждаю, а то вдруг на собеседовании нечаянно скажешь такое.
>>2845454 Во первых. Поэтому эта параша и работает так медленно. Если хотябы средний проект эта хуйня зависимости грузит десять минут. Написали бы на си как нормальные люди и всем было бы заебись.
А во вторых. Ебанашка, причем тут нахуй композер? Ты блядь каждый день композеры пишешь? Ты, паскуда, формошлеп и бездарная код макака. Сидит пердит про алгоритмы какие-то, пиздуй форму логина верстать, чучело ебаное.
>>2845449 Я тут залётный в треде, но ты такое вряд ли сам на пыхе будешь писать, с гораздо большей вероятностью готовую библиотеку подключишь. Эффективно задачу на графах написать довольно проблемно, мидлу на пыхе это скорее всего не под силу будет.
Челик просто закидывает шрифты в папку assets и затем с помощью вебпука шрифты попадают в папку build внутри папки assets. И Я НИХУЯ НЕ ПОНЯЛ, КАК ТОГДА ВОРДПРЕСС ПОЙМЕТ ЧТО НАДО ЮЗЕРУ ОТПРАВЛЯТЬ ФАЙЛЫ ШРИФТОВ???
В ОБЩЕМ У меня такая проблема, что когда я запускаю локальный веб-сервер MAMP и захожу в браузер и набираю localhost, то в Инструменте Разработчика во вкладке Source есть стили, js-файлы, жиквери. Вот показываю на приложенной картинке. А ШРИФТОВ ТО НИХУЯ НЕТ. Когда я смотрю вкладку Source то там шрифтов не вижу и когда захожу в Network и обновляю страницу то вижу там только стили, js, и нихуя нет шрифтов.
ПОДСКАЖИТЕ, ПОЖАЛУЙСТА, как правильно без плагинов класть шрифты в вордпресс, чтоб вордпресс знал что эти файлы шрифтов надо высрать юзеру вместе с картинками, стилями и жабаскриптом?
Чтоб найти первую работу PHP вебмастером достаточно ли знаний перечисленных в шапке? Просто в шапке ничего не говорится о микросервисах. В 2к24 всё ещё есть работа для новичков с монолитами на PHP без микросервисов?
>>2853273 1) Шапка старая. Если видишь объявление массива через array(), то этот код доллар по 30 видел.
2) На собесах сегодня могут спрашивать любую хуйню, от бинома ньютона, до формы люков канализационных. Это по большей части лотерея и забег на терпение и выносливость.
3) На реальной работе, область видимости джуна это функция или класс. Он пилит свою маленькую фичу, и разницы ему нет микро там или макро. Код тот же самый.
>>2854549 Вас, дураков, по двести на место. А надо взять одного. Причем отказать остальным так, чтобы они думали что это они хуевые, а не вы просто наугад выбираете.
> Челик просто закидывает шрифты в папку assets и затем с помощью вебпука шрифты попадают в папку build внутри папки assets.
Да, вебпак склеивает исходные файлы в один и кладет его в build.
> НЕ ПОНЯЛ, КАК ТОГДА ВОРДПРЕСС ПОЙМЕТ ЧТО НАДО ЮЗЕРУ ОТПРАВЛЯТЬ ФАЙЛЫ ШРИФТОВ???
Вордпресс ничего не отправляет. В файле main.css, скорее всего, есть CSS-правило @font-face, а в нем прописана ссылка на файл шрифтов. Браузер, увидев эту ссылку, загружает шрифт.
То есть, вопрдпресс ничего не отправляет. В CSS-файле указывается ссылка на шрифт и браузер сам его скачает.
> как правильно без плагинов класть шрифты в вордпресс, чтоб вордпресс знал что эти файлы шрифтов надо высрать юзеру
Надо использовать CSS_правило @font-face, либо использовать Google Fonts и CSS-код с правилами @font-face, который он предоставляет. Я советую сначала научиться подключать руками, а только потом использовать готовые сервисы вроде Google Fonts.
>>2761920 (OP) Сейчас в проекте, в котором приходится спрашивать у коллег как выполнить ту или иную задачу легаси код?, потому-то если попытаешься сделать сам, то ты не факт, что найдешь где нужно делать правки, а если и найдешь, то окажется, что ее нужно делать по другому. Что делать в таком случае? Можно как то уменьшить зависимость от вопросов к коллегам? Мне сказали, что вкат в их проект примерно год, и то это не значить, что ты все будешь знать в проекте. Проект бывшй битрикс, переделанный на свои нужды, но админка и прочее юзаются
>>2858010 >Что делать в таком случае? Можно как то уменьшить зависимость от вопросов к коллегам? Я вижу два варианта: 1) Разобраться в рабочем проекте. 2) Получать ответы на свои вопросы, которых сначала будет много, а потом меньше.
Очевидно, что ты лучше анонов знаешь:
- как часто и сколько возникает вопросов неделю; - уровень сложности вопросов; - сколько нужно времени для их обсуждения; - как в твоей компании организован процесс работы с новичками; - как лучше данную проблему вынести на обсуждение с коллегами (на совещании, при личном обсуждении).
Следовательно, нужно чтобы тебе систематически уделяли время и нужно подумать о том как лучше это сделать. Т.е. ты подходишь с вопросами вначале недели в 15:00 и/или ..., и/или ... И те к кому ты подходишь, нормально это воспринимают, как заранее обговоренную рабочую ситуацию.
Котаны, реквестирую помощь для самых маленьких и тупых. Задача с исправлением заглавных букв и препинания из учебника Как правильно сделать preg_split, чтобы точки (разделители предложений в регулярке) не сжирались при сплите?
Чувствую что можно проще, но смог родить только костыль с отловом точек в отдельный элемент массива тут https://onlinephp.io/c/29eae
1) У тебя код некорректно работает с этой фразой (не вставляет пробелы):
$text = "много их в Петербурге,молоденьких дур,сегодня в атласе да бархате,а завтра , поглядишь , метут улицу вместе с голью кабацкою...в самом деле ,что было бы с нами ,если бы вместо общеудобного правила:чин чина почитай , ввелось в употребление другое,например:ум ума почитай?какие возникли бы споры!";
2) array() не пиши так, используй [].
3) Я не помню, если там в учебнике просмотр вперед и просмотр назад в контексте регулярных выражений, возьми почитай про это и поделай упражнения. Потому что при совпадении компонента регулярного выражения с текстом происходит захват текста, а в данном случае нужно только совпадение. А когда используется просмотр вперед или назад нет захвата текста.
Если не получиться то можешь использовать: $text = preg_split('/(?<=[.!?])(?=[\w\s])/u', $text, -1, PREG_SPLIT_NO_EMPTY);
есть сайт на Битриксе, нужно через API редактировать информацию о товарах. Но как? у битрикс24 есть какое-то апи, оно подойдёт? может есть ещё варианты?
>>2859925 сайт по продаже товаров, допустим одежды, там есть каталог товаров. на сайте сейчас установлен только обычный битрикс, без срм. Нужно апи, чтобы как-то редактировать информацию о товарах на этом сайте, например из пхп скрипта на другом сайте. я так так понимаю у обычного Битриксе нету подобного апи и нужно подключать битрикс24
>>2859910 Возможно я не правильно написал, имел ввиду, что ты использовал устаревший синтаксис:
// Старый синтаксис (длинный), объявляем массив при помощи ключевого слова array() $array = array( "foo" => "bar", "bar" => "foo", );
// Новый синтаксис (короткий), появился в версии PHP 5.4 $array = [ "foo" => "bar", "bar" => "foo", ];
Полагаю, что ты не понял в чем разница между (запись похожа, но смысл разный):
$arr = []; // что равнозначно $arr = array(); пусть это будет пример 1
и
$arr[] = ...; // а это пример 2
В 1-м примере мы при помощи квадратных скобок (или ключевого слова) объявляем пустой массив и присваиваем его переменной $arr. Объявим массив с различными значеними и присвоим его переменной:
Во 2-м примере мы в массив записываем значения, при этом они добавляются в конец массива:
$arr[] = 10.5; $arr[] = -1; $arr[] = 0; $arr[] = 'string'; $arr[] = null; $arr[] = ['str1', 'str2']; // в 5-й элемент записан массив из двух элементов.
По регуляркам из задачи. Твои не разбирал (так как слишком переусложнено, не нужны в данном случае просмотры вперед, назад, инвертированные просмотры), напишу как делал я.
Функция preg_replace($pattern, $replacement, $subject) принимает как строки так и массивы строк.
$pattern - содержит массив из трех строк (трех регулярок) ['/1/', '/2/', '/3/'] 1-ая - ищем два и более идущих подряд пробелов, 2-ая - ищем пробел и сразу за ним любой из символов .,:;!? (здесь нужно вспомнить что такое символьная группа) и запоминаем символ (здесь нужно вспомнить как запоминать то что совпало компонентом регулярки или со всей регуляркой); 3-я - ищем любой из символов .,:;!? (снова символьная группа) и любую букву сразу за ним и запоминаем (и символ и букву).
$replacement - содержит массив из трех строк, которые подставляются при совпадении с регулярками. ['1', '2', '3'] 1 - подставляем один пробел; 2 - подставляем символ который запомнили; 3 - подставляем символ, который запомнили, пробел и букву которую запомнили.
>>2862331 дорогой php-ооп шиз дам тебе пару советов все атрибуты делай приватными и иногда не обращайся к ним для изменения нельзя $user->name=john ты делаешь метод setName в который передаешь имя и делаешь getName так называемые геттеры и сеттеры сука ты ослиная
Ещё тоже самое с часами и не передавай ты array тебе же выше писали щас уже все крутые модные ребята делают метод setHours и туда список кидают в квадратных скобках уебан ты гнилозубый
почему вторая функция не шлет запросы? ошибок никаких не выводится, тупо не доходят запросы (во второй функции нужно чтобы курл отправляя запрос не ждал ответа
>>2866620 1) Апи выдает данные постранично, сто записей на страницу. Ты используешь итератор чтобы работать с результатом как с одиночными записями, автоматически подгружая новые страницы.
2) Нужно прочитать двухгигабайтный файл. Ты используешь yield и работаешь с нужным количеством строк за раз, не грузя всю требуху в память.
3) Ты просыпаешься обоссавшись и обосравшись, потому что нормальной асинхронности в пхп кале нет.
>>2761920 (OP) Плохая ли практика использовать composer для роутинга проектов для "Списка студентов"? И как я правильно понял, нужно использовать библиотеку для этого? Типа Symfony. Routing? Или по другому?
>>2868660 Я до темы отправки сообщений не еще дошел, но в чем сакральный смысл \n в одинарных кавычках, спрашиваю без рофла?
Вот ты много раз конкатенируешь этот символ в одинарных кавычках, т.е. без интерполяции, соотвественно подставляется символы \n, а не собственно перевод строки.
из описания функции mail() Примеры ¶ Пример #1 Отправка письма.
Использование функции mail() для отправки простого письма:
<?php // Сообщение $message = "Line 1\r\nLine 2\r\nLine 3";
// На случай если какая-то строка письма длиннее 70 символов мы используем wordwrap() $message = wordwrap($message, 70, "\r\n");
Пытаюсь сделать студенческий лист, класс Student в файле classes.php в корне, там же login.php, index.php Почему-то при открытии index.php пишет ошибку Fatal error: Uncaught Error: Class 'Student' not found in C:\OSPanel\domains\studentlist.local\public_html\index.php:10 Stack trace: #0 {main} thrown in C:\OSPanel\domains\studentlist.local\public_html\index.php on line 10.
>>2868566 Мне Тим лид сказал, чтобы я не лез в .htaccess для создания роутинга правда потом уточнил, что что-то там все равно нужно настроить , но скорее всего мне показалось, что он сказал, что не обязательно библиотеку использовать для роутинга
2) На твоем втором пике содержание письма похоже прочитано как text/plain, а должно было как text/html. Соответсвенно, возможно отправлен некорректный заголовок.
// Для отправки HTML-письма должен быть установлен заголовок Content-type $headers[] = 'MIME-Version: 1.0'; $headers[] = 'Content-type: text/html; charset=iso-8859-1';// замени на charset=UTF-8
// Дополнительные заголовки $headers[] = 'To: Mary <mary@example.com>, Kelly <kelly@example.com>'; $headers[] = 'From: Birthday Reminder <birthday@example.com>'; $headers[] = 'Cc: birthdayarchive@example.com'; $headers[] = 'Bcc: birthdaycheck@example.com';
>>2869146 >Тим лид сказал, чтобы я не лез в .htaccess для создания роутинга Правильно сказал. .htaccess может задать только редиректы, нормальный роутинг в нем не сделаешь.
>не обязательно библиотеку использовать для роутинга Я тебя и спрашиваю: а что бля использовать то? Ты либо сам пишешь либу для роутинга, либо берешь готовую. Какие еще варианты у тебя?
Content-Type это явно заголовок, а ты передаешь его в теле письма. Чтобы делать полноценные HTML-письма, да еще и с вложениями, тебе надо либо изучить формат MIME-писем (писем, состоящих из частей), либо использовать библиотеку вроде Symfony Mailer, которая умеет собирать письмо как надо.
Общий формат письма примерно такой:
Общие заголовки письма
заголовки первой части соедржимое (текст) первой части
Ой, ошибся, Content-Type похоже в теле и надо передавать, просто ты \n в одиночных кавычках поставил. И вроже в письмах надо использовать \r\n вместо \n.
С письмами такая история. Исторически формат письма был такой (он описан в RFC 5322):
заголовок: значение (например, To: ivan@example.com) заголовок: значение (например: Subject: hello)
текст письма, текст письма
То есть, вначале шли заголовки, потом пустая строка и все остальное считалось телом письма и отображалось как есть. Письмо могло быть только простым текстом, без HTML и картинок, и в нем нельзя было использовать не-латинские символы.
Для решения этих проблем придумали формат MIME. В этом формате ты указываешь в заголовках Mime-Version: 1.0, а в теле вместо простого текста идут несколько частей, каждая со своими заголовками, отделенная друг от друга символами boundary. А для передачи не-латинских символов были придуманы коды вроде =3F. Таким образом, стало можно использовать HTML, картинки, прикладывать файлы и использовать нелатинские символы.
> Плохая ли практика использовать composer для роутинга проектов для "Списка студентов"?
Нет, но только композер используется не для роутинга, а для установки библиотек, в том числе для роутинга.
> И как я правильно понял, нужно использовать библиотеку для этого? Типа Symfony. Routing? Или по другому?
Тут три варианта:
1) Можно использовать возможности веб-сервера. То есть, ты делаешь файл index.php для вывода списка и register.php для страницы регистрации и редактирования. А роутинг тут делает веб-сервер. То есть, если ты заходишь на http://example.com/register.php, то веб-сервер вызывает нужный файл, вот и весь роутинг.
2) Можно сделать более сложный самодельный роутинг. Ты настраиваешь сервер, чтобы он всегда дергал index.php независимо от URL, а в этом файле ты анализируешь $_SERVER['REQUEST_URI'] и вызываешь нужный файл или функцию в зависимости от URL, например, если URL равен /register, то вызваешь контроллер регистрации
3) Можно настроить сервер, чтобы он всегда дергал index.php, а дальше использовать стороннюю библиотеку для роутинга.
> , потому что нормальной асинхронности в пхп кале нет.
По моему, тут один и тот же семен заходит в тред каждую неделю, чтобы пожаловаться, якобы PHP нет асинхронности (на самом деле есть, просто она никому не нужна, кроме жалобщиков). И когда ты спрашиваешь этого семена, а где есть нормальная асинхронность, он называет убожество вроде Ноды, на которой бизнес-логику вообще писать невозможно из-за того, что там через строчку идет await async. А еще в Ноде можно делить на ноль и обращаться к несуществующим свойствам и она даже ошибку не выдает. А еще убогие нодо-писатели вместо стандартных импортов используют устаревшую убогую поделку require.
Можно установить программу типа mailcatcher, которая принимает соединения на этот самый порт. А также, можно использовать Gmail или другую почту, которая поддерживает SMTP, только не с 25 портом, а с другим, и с шифрованием.
Если твой код вызывает sendmail, то тестировать вообще легко, просто пишешь свой скрипт и подсовываешь вместо sendmail. Мне это вариант нравится намного больше, чем ставить какие-то mailcatcher, который наверно несколько гигов весит (в докере).
Прежде чем обзывать людей шизами, ты бы разобрался. Анон только начал изучать ООП и не дошел еще до приватных полей и методов. Дойдет позже и разберется. И, кстати, публичные поля это не так и плохо, они в Расте используются, в Питоне и тд.
>>2870015 >Ты используешь итератор >тут нужны не короутины, а генератор Мудила, а генератор это что по твоему? Это итератор выполненный в виде корутины.
>на самом деле есть На пхп нельзя одновременно читать stdin и писать в базу. Точка.
>убожество вроде Ноды, на которой бизнес-логику вообще писать невозможно Ну раз нода хуевая, значит асинхронности в ней нет, а в пхп есть. Шах и мат. Ну, хотя, от еблана который не знает что генератор это корутина и есть, другого и не ожидалось.