Задать вопрос
  • Что делать и куда дальше двигаться веб разрабу после шарашки?

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

    Это норма (с)

    В итоге после написания сильно прогорел

    Что-то рано

    что делать?

    Во первых, выяснить, что вам нравится и чем вы хотите в жизни заниматься.

    Во вторых, если вам все же нравится программирование - то вопрос надо поставить так: "как выделиться среди других джунов?"

    Я эту задачу сделал так: пол года пилил браузерную MMORPG, и хоть по итогу там было ~5% функционала от полноценной игры - этого хватило, чтобы работодатели общались на собеседовании совершенно по другому. Правда, только после того, как понял, что на личные проекты никто не смотрит, и специально просил HR, чтобы перед собеседованием посмотрели мои проекты.

    Когда у меня был пример браузерной MMORPG + на github был сайт-блог на Laravel - процент приглашений был 65% (т.е. 2 компании из 3 собеседований по итогу присылали оффер).

    Ну и самое главное - что я пол года, пока пилил свою MMORPG, получал удовольствие. И сейчас, спустя 5 лет, продолжаю пилить, когда есть время.

    А если вам писать что-то свое на выходных в тягость - стоит задуматься, а ваша ли это область.
    Ответ написан
    Комментировать
  • Как публиковать коммерческие проекты в GitHub?

    @HellWalk
    Никак

    Хотите, чтобы был код на гитхабе - пишите на выходных свои пет-проекты, их код и выкладывайте.

    Большинство просто забивают на этот гитхаб и все. С другой стороны, это возможность выделиться среди других. Но у всего есть своя цена.
    Ответ написан
    Комментировать
  • Возможно ли создать хорошую игру одному?

    @HellWalk
    Мне 14, и это лето я решил посветить изучению языка c++, в то время , как мои одноклассники курят, и считают это чем-то крутым.

    Молодец, далеко пойдешь.

    Я хочу создавать игры на языке c++

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

    возможно ли, создать хороший проект одному?

    Можно.

    И вообще, какой уровень знаний нужен для этого?

    Чем сложнее игра - тем больший объем знаний нужен. Для какой-нибудь змейки нужны базовые знания C++. А для создания 3D MMORPG на своем движке понадобится огромный объем знаний.

    P.S. Главное получать от процесса удовольствие. Если будешь делать игру, а мысли только о том, что "поскорее бы релиз и заработать денег" - скорее всего ничего не добьешься.
    Ответ написан
    Комментировать
  • Какой должен быть Git у начинающего разработчика?

    @HellWalk
    если судить объективно, проекты какой направленности(характера) должны быть в git, что бы заинтересовать компанию?

    Любой направленности. Будут смотреть не на сам функционал, а на качество кода.
    Ответ написан
    Комментировать
  • Как исправить конфигурационный файл phpunit.xml?

    @HellWalk
    Вот пример рабочего phpunit.xml:

    <?xml version="1.0" encoding="utf-8"?>
    <phpunit bootstrap="./vendor/autoload.php"
             colors="true"
             convertErrorsToExceptions="true"
             convertNoticesToExceptions="true"
             convertWarningsToExceptions="true"
             stopOnFailure="false">
        <testsuites>
            <testsuite name="Test Suite">
                <directory>./tests</directory>
            </testsuite>
        </testsuites>
        <filter>
            <whitelist>
                <directory suffix=".php">./src/</directory>
            </whitelist>
        </filter>
    </phpunit>
    Ответ написан
    Комментировать
  • Какой смысл mock объектов для юнит тестирования своего кода?

    @HellWalk
    Смысл моков - эмулировать объекты с определенным поведением.

    Самый банальный пример, помимо http запросов, это эмулирование неправильных объектов.

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

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

    P.S. Если вы недавно знакомы с юнит-тестами - непонимание моков нормально. Если будете стремиться писать надежный код, с качественным покрытием кода тестами (здесь самое сложное - предугадать все плохие кейсы, которые будут пытаться сломать ваш код) - понимание придет.
    Ответ написан
    2 комментария
  • Как передать параметры в массив?

    @HellWalk
    Там массив с данными, могу ли я передать новые значение с помощью curl?

    Можете, если у них есть API с таким функционалом.

    Есть ли документация?

    Спросите это у владельцев того ресурса, которому вы хотите отправлять данные.
    Ответ написан
    Комментировать
  • Markdown Editor или WYSIWYG?

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

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

    Если у вас "всего лишь нужно" - попробуйте любой, их же не сложно подключить и удалить. Но я бы готовился к тому, что если придираться (тут такого функционала не хватает, а тут кнопок слишком много, и отключить их сложно) - придется писать свое.
    Ответ написан
    Комментировать
  • Как реализовать ЧПУ на PHP (движок самописный)?

    @HellWalk
    Вам нужны:
    1. Routing - есть компоненты, которые можно использовать независимо
    2. Контроллеры - чтобы в роутах ссылаться на Контроллер@методКонтроллера
    3. И нужная вам задача делается в рамках обычного функционала нормальных роутеров

    Раз у вас велосипед, можно продолжить велописедить, и написать свой роутинг - например, вот хорошее видео, где показывается, как это делать. Автор видео, после множества примеров, в конце показывает, как подключить и использовать сторонний модуль Aura.Router
    Ответ написан
    2 комментария
  • Как из строки получить два параметра?

    @HellWalk
    $_POST['title'] = 'title-desc-2013-04-28';
    $array = explode('-', $_POST['title']);
    $title = $array[0];
    $desc = $array[1];
    
    var_dump($title); // title
    var_dump($desc); // desc


    Если версия php свежая, можно и так:
    [$title, $desc] = $array;
    Ответ написан
    1 комментарий
  • Как ограничить количество попыток для пользователя?

    @HellWalk
    Итак, у вас есть какой-то ресурс, к которому вы хотите сделать ограниченный доступ неавторизованным пользователям (с авторизованными все понятно):

    1. Сразу нужно понимать, что сделать 100% работающий вариант для всех - невозможно, можно только максимально усложнить спамерам (я бы именно к спаму отнес такую задачу) жизнь.
    2. Чтобы реализовать это, нужно собрать максимум информации об анонимном пользователе (сохранить эти данные и по ним пытаться понять, новый это анонимный посетитель, или старый):
    - Самое банальное - куки на фронте
    - Чуть менее банальное, но тоже легко обходится - ip
    - Дальше можно взять такие параметры, как window.navigator.userAgent с фронта
    - На беке брать $_SERVER['PHP_AUTH_USER']
    - И еще есть всякие хитрые способы, например, кешировать картинку в браузере юзера, со специальным токеном, и по нему проверять. На память не вспомню статью на хабре, но поискать можно

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

    Как вам правильно сказали - компании типа Яндекса и Гугла тратят миллионы для борьбы со спамерами, и 100% результата не достигли, не нужно думать, что у вас это получится. Но попробовать можно - опыт будет полезный.
    Ответ написан
    Комментировать
  • Как перевести страницу с помощью short_code?

    @HellWalk
    Начать нужно с того, на чем проект? Велосипед или фреймворк?

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

    Даже если у вас велосипед - можно использовать Symfony Translations (как отдельный модуль)

    Если же захочется сделать свой велосипед, то конечно, можно, но:

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

    Пример крайне упрощенного самописного модуля мультиязычности можете посмотреть в этом проекте (src/Battle/Translation/)
    Ответ написан
    Комментировать
  • Как в Doctrine, в DBAL указать PDO::ATTR_PERSISTENT => true?

    @HellWalk Автор вопроса
    Проблема с лимитом подключений к базе в тестах решилась добавлением $this->entityManager->getConnection()->close(); в tearDown()

    /**
    * @throws ConnectionException
    */
    public function tearDown(): void
    {
        parent::tearDown();
        // ...
        $this->entityManager->getConnection()->close();
    }


    Забавно, что в официальной документации (с.м. последний пример):
    https://symfony.com/doc/current/testing/database.html

    Указано:
    protected function tearDown(): void
    {
        parent::tearDown();
    
        // doing this is recommended to avoid memory leaks
        $this->entityManager->close();
        $this->entityManager = null;
    }


    Что, по факту, не помогало решить проблему с лимитом подключений.
    Ответ написан
    2 комментария
  • Куда расти в должности, не бросая программирование?

    @HellWalk
    Я упускаю какое-то направление?

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

    Возможно, в компаниях, где вы работали, программисты (условно), получали 100-200, тим-лид 300, и вы думаете, что чтобы вырасти по зарплате - нужно обязательно из программистов уходить в менеджмент.

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

    В общем, развивайтесь в своем стеке до senior+, изучайте английский, выходите на американские/европейские компании - будете писать код и получать в разы больше, чем большинство российских тим-лидов и руководителей.

    P.S. Есть низкооплачиваемые языки, если вы находитесь в таком - можно подумать о переходе на другой, более оплачиваемый.
    Ответ написан
    Комментировать
  • Что требуется от junior php разработчика?

    @HellWalk
    У меня нет примеров работ в github, стоит ли начать загружать туда хоть какие-нибудь примеры выполненного кода?

    Да, стоит, и чем раньше, тем лучше.

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

    А если добавите на гитхаб свой блог на Laravel/Symfony на докере + запрос к какому-нибудь API через Guzzle - мне кажется этого будет уже достаточно, для уровня джуна.

    Это хороший подход или что-то можно улучшить?

    Хороший, только помните, что всем нужен опыт фреймворков. Даже компании которые сидят на каком-нибудь Drupal будут спрашивать про опыт фреймворков. Так что примеры сайтов сразу делайте на фреймворках, про CMS и велосипеды забудьте.
    Ответ написан
    Комментировать
  • Codeception - как отключить очистку базы после выполнения тестов?

    @HellWalk Автор вопроса
    Ответ Pavlvdv напомнил о давно забытой проблеме.

    Проблема возникала только на одной работе, на одном проекте, гибриде Falcon и Laravel (да, и такое делают). Нигде больше, используя Codeception, проблем с очисткой базы после тестов не было.

    Спишем на косячный проект той работы.
    Ответ написан
    Комментировать
  • Почему работодатели заостряют внимание на теории?

    @HellWalk
    Поиск кандидата проходит в двух вариантах:

    Первый - Нужен_срочно_работа_горит!!!

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

    Второй - Нужен, но не срочно

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

    Пытаться логикой понять собеседования из второй группы - лишь тратить попросту время. Забейте.

    Что важно: так это понимать, кем вы хотите стать, и развиваться в этом направлении.
    Ответ написан
    Комментировать
  • Возможно ли подружить Symfony + gRPC + Codeception?

    @HellWalk Автор вопроса
    В общем, все оказалось просто (когда знаешь что делать)

    Необходимо в config/services.yaml в существующую строку:
    exclude: '../src/{DependencyInjection,Entity,Tests,Kernel.php}'

    добавить папку, в которой находятся gRPC-классы, в моем случае это папка src/Grpc и строчка в конфиге выглядит так:
    exclude: '../src/{DependencyInjection,Entity,Tests,Grpc,Kernel.php}'


    Спасибо за наводку по решению BoShurik
    Ответ написан
    Комментировать
  • Как найти "разработчика"?

    @HellWalk
    Посмотрите gamedev-ресурсы - там много энтузиастов делают различные проекты (игры) и ищут людей себе в команду (чаще всего также, за бесплатно, на энтузиазме).
    Ответ написан
    Комментировать
  • Что творится на рынке web разработки для junior?

    @HellWalk
    Что творится на рынке web разработки для junior?

    1. Армия желающих войти в ИТ
    2. Иллюзии, что современная веб-разработка это просто и в неё легко влиться
    3. Нежелание действительно серьезно этим заниматься, и серьезно вкладывать силы в свое портфолио на гитхабе. В соседней теме человек уверен, что один файлик с 80 строками это проект!

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

    При этом реальных людей с опытом (даже тем, что можно получить сидя дома в одиночку) - на рынке труда очень сильно не хватает.
    Ответ написан
    Комментировать