• Хочу стать хорошим программистом,как быть?

    Zoominger
    @Zoominger Куратор тега IT-образование
    System Integrator
    О б-же, опять простыня с исповедью и опять этот вопрос из серии "возьмите меня за ручку и поведите в большой мир".
    В двух словах, пожалуйста. Ни один айтишник не будет тратить время на чтение такого большого текста, тут не блоги.
    И да, русский язык бы подучить. Не то, чтоб я бомбил от этого, но хорошая грамота вырабатывается большим объёмом прочитанного, а без чтения учить языки программирования будет туговато.
    Ответ написан
    8 комментариев
  • Хочу стать хорошим программистом,как быть?

    Moskus
    @Moskus
    Я не знаю, кто сказал вам, что у вас логический склад ума - то, что вы пишете, больше всего похоже на крайне эмоциональный и несвязный "поток сознания". Ничего личного, просто фактичнское наблюдение. Вы, например, очень много внимания уделили тому, что вас бесит, какая у вас паника, и так далее. Ни разу при этом не упомянули, например, что вам нравится самому что-то упорядочивать, исследовать, систематизировать. А это то, что как раз определяет этот самый "логический склад".

    Поймите, что, во-первых, программист учится всегда, потому что постоянно что-то меняется в его работе. Во-вторых, он постоянно ищет решения новых проблем самостоятельно, а не применяет решения, которые ему показали во время учёбы. И, в-третьих, программирование на 90% состоит из рутины, которая никак не тянет на развлечение.

    Я не исключаю, что вы сможете, наконец, справиться с всем этим избытком эмоций, обуздать тягу к немедленной гратификации (вознаграждению за совершенные действия), избавиться от эффектов современного воспитания, которое вы получили, но что в вас останется после этого, я сказать не могу. Могу только сказать, что вам на вход в профессию понадобится больше сил и времени, чем если бы вы уже сейчас могли спокойно ковыряться с интересом в каких-то (пусть и самых простых) задачах, проводя за этим часы. Маленький совет: забудьте о том, что видеокурсы существуют, вообще. Только печатная информация: книги, статьи. Видео крадёт время.
    Ответ написан
    10 комментариев
  • Видеокурсы PHP С Русскими субтитрами?

    php666
    @php666
    PHP-макака
    Вот почему на тостере трут все самые интересные темы, а темы, поощеряющие лень и тупость - оставляют?
    Книги читала, там интересно но и много воды. и скучно.
    Если скучно - иди на мамбу, там весело. Заработаешь больше, чем в айти, за пару часов. И нарушение слуха будет не помеха.

    И да. 99% всех курсов делаются дилетантами для дилетантов.

    Программирование - удел людей, умеющих изучать все самостоятельно. Читать в первую очередь. А не смотреть "веселые картинки".
    Ответ написан
    Комментировать
  • Russian VAT on Upwork - привет, работа в белую?

    @Stalinko
    PHP'шник и фрилансер до мозга костей
    Всё сильно зависит от технической реализации и желания ФНС ловить фрилансеров.

    В моём представлении сама по себе оплата НДС Upwork'ом ещё не значит, что они будут передавать данные о доходах фрилансеров. Они обязаны будут передавать данные о своих доходах. Хотя при желании одно из другого получить вполне реально. Это что касается количества денег.

    Сам факт некоего неопределенного дохода проверить будет очень легко, ведь Upwork обязан будет сообщить, кто приобрёл его услуги (оплатил комиссию). А единственная услуга на Upwork - это возможность заработать.

    Думаю, для тех, кто работает в белую, эта новость только к лучшему. Никаких больше налоговых сусликов и "налогов на гугл".
    Ответ написан
    1 комментарий
  • Как определить окончание работы ряда Job задач в laravel?

    @izheme
    Познаю мир
    Ну а какие варианты? Фронт где-то далеко в системе клиент-сервер. Если фронт закончил запрос к серверу, то для него, что очередь там, что не очередь. Т.е. в вопросе два момента:
    1. Как фронт получает обновление статуса: либо обращается к нужному ендпоинту, либо поднимает веб-сокет соединение и слушает.
    2. Как бэкенд понимает, что Job готов. Насколько я помню, в Laravel есть события для этого. Дальнейшая реализация обработки событий зависит от того, как фронт "слушает" изменения - выставляешь ты флаг для ендпоинта или отправляешь событие в сокет.
    Ответ написан
    4 комментария
  • Какую специализацию выбрать прямо сейчас?

    webinar
    @webinar
    Учим yii: https://youtu.be/-WRMlGHLgRg
    Но, насколько я могу судить, туда придется идти очень долго, поэтому я выбрал фронтенд.

    Я хотел стать хоккеистом, но оказалось, что это не просто и я стал сторожем. Вот думаю попробовать заняться хоккеем, может это поможет мне стать хоккеистом? Как думаете? Или продолжать сторожить и оно само все образуется?
    Вам бы в "ток шоу участвовать". Там псевдопроблемы любят.
    Ответ написан
    2 комментария
  • Правильным ли будет мое решение для крупного проекта?

    @BorisKorobkov
    Web developer
    Laravel (как и чистый PHP) прекрасно умеет работать с БД.
    API не нужно, лишнее усложнение.

    Клиент (браузер)
    ↑↓ post-, get- запросы
    example.com (любой ЯП и фреймворк на ваш выбор) - отвечает за валидацию, запросы к БД, отрисовку данных, ответ клиенту
    ↑↓ запрос к бд
    Database Server (любая БД на ваш выбор)
    Ответ написан
    2 комментария
  • Как ограничить шаблонизатор в Laravel?

    @Kostik_1993
    Web Developer
    Blade это обертка, которая несет в себе незначительные отличия от нативного php

    В вашем случае вам лучше посмотреть в сторону Twig или Smarty, у последнего точно есть возможность отключения нативных методов языка и опционально ими управлять. В моем опыте он как раз использовался для тех целей что преследуете вы
    Ответ написан
    1 комментарий
  • Как протестировать метод, который вызывает методы другого класса?

    alexey-m-ukolov
    @alexey-m-ukolov Куратор тега PHP
    class MyTest extends \PHPUnit\Framework\TestCase
    {
        public function testDoSomethingOne(): void
        {
            /** @var \PHPUnit\Framework\MockObject\MockObject $mockOfA */
            $mockOfA = $this->getMockBuilder(A::class)->getMock();
    
            $mockOfA->expects($this->once())
                ->method('setData')
                ->with(20);
    
            (new B)->doSomething($mockOfA, 1);
        }
    
        public function testDoSomethingTwo(): void
        {
            /** @var \PHPUnit\Framework\MockObject\MockObject $mockOfA */
            $mockOfA = $this->getMockBuilder(A::class)->getMock();
    
            $mockOfA->expects($this->once())
                ->method('setData')
                ->with(10000);
    
            (new B)->doSomething($mockOfA, 100);
        }
    }


    The practice of replacing an object with a test double that verifies expectations, for instance asserting that a method has been called, is referred to as mocking.

    https://phpunit.de/manual/6.5/en/test-doubles.html
    Ответ написан
    2 комментария
  • Как вывести данные из БД с ключами?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Разумеется, такой режим есть. И разумеется, он совершенно неизвестен тем, кто учил похапе по видеокурсам.
    PDO умеет возвращать данные в десятках разных форматов, и в частности индексировать выборку первым полем указанным в запросе
    $data = $stmt->fetchAll(PDO::FETCH_UNIQUE);
    В случае, если нам нужен словарь то для этого есть режим, который возвращает не вложенные массивы, а одномерный массив, который состоит из пар ключ-значение
    $data = $pdo->query("SELECT id, name FROM table")fetchAll(PDO::FETCH_KEY_PAIR);
    Ответ написан
    Комментировать
  • Какую технологию новичку проще и разумнее всего изучить самостоятельно для удаленной работы?

    @evgeniy_lm
    Большой жизненный опыт мне подсказывает, что из плохого дизайнера получится отвратительный программист.
    Ответ написан
    8 комментариев
  • Заменил свою фотку в профиле UpWork на чужую и теперь он хочет чтобы я выполнил видео звонок для подтверждения. Что делать?

    @Kostik_1993
    Web Developer
    обожаю апворк, реально мне нравится как они к этому относятся, везде бы так банили все было супер, может и в ВК или Инстаграме было интереснее. А то куда не кинь то фоейки то однотипные гавнопаблики со шлаком. А так раз поставил фотку, не твоя забанили, зато честно все
    Ответ написан
    Комментировать
  • Почему зависает composer update?

    silentvick
    @silentvick Автор вопроса
    В общем, с помощью флага --profile удалось установить причину. Все упиралось в недостаток памяти. Увеличил объем RAM до 1Гб (было 384Мб) и update успешно завершился. Пик использования памяти при этом был равен 569.84Мб.

    Дополнительно, для тех, кто в будущем столкнется с подобной проблемой, на github я обнаружил еще одну возможную причину такого зависания. Суть ее, как я понял, заключается в том, что при большом количестве зависимостей composer может "зависать" из-за большого количества их возможных комбинаций. Такое случается очень редко, но теоретически возможно. Решение в данном случае: задать требования более строго. Например, использовать более конкретные рамки версий, или вообще указать точную версию.
    Ответ написан
    Комментировать
  • Как сохранить все выбранные чекбоксы в базу?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Базовые знания - потрачено...
    У вас инпуты с одинаковыми именами, соответственно передаются они один за другим на сервер, где воспринимаются как переменные с соответствующим именем. Логично что последний зачеканый чекбокс тупо затрет предыдущее значение переменной с тем же именем.
    Самое простое решение - добавить "индивидуальности" именам полей.
    так в скрипте будет выводиться как многомерный массив c ключом категорией:
    <input type="checkbox" name="seller[categ][<?php echo $category['category_id']; ?>]" checked="checked" value="<?php echo $category['category_id']; ?>"/>

    так будет выводиться как многомерный массив c автоинкрементным ключом:
    <input type="checkbox" name="seller[categ][]" checked="checked" value="<?php echo $category['category_id']; ?>"/>

    а так как обычный массив:
    <input type="checkbox" name="seller_categ_<?php echo $category['category_id']; ?>" checked="checked" value="<?php echo $category['category_id']; ?>"/>
    Ответ написан
    3 комментария
  • В laravel проекте лучше использовать CDN или Storage?

    inoise
    @inoise
    Solution Architect, AWS Certified, Serverless
    CDN не хранит данные, file storage не парсит, object storage не хранит файлы, laravel не CDN. Детализируйте вопрос
    Ответ написан
  • Как персонифицировать Cover Letter клиенту под столь простые задачи?

    dimonchik2013
    @dimonchik2013
    non progredi est regredi
    Hello, Jimmi
    I'm not a monkeycoder
    I worked on a project like this a while back
    you can see my product here and here
    Je ne mange pas six jours
    Ответ написан
    2 комментария
  • Как быстро въехать в чужой проект?

    @stratosmi
    Подливают масла в огонь и архитектурные моменты: какие-то свои термины для описания функционала, свои правила наименования, построения и прочего.

    Это нормально.
    Регулярно сталкиваюсь там, где есть постоянный коллектив - свои собственные только ими употребляемые внутренние термины.
    Например, в одной косметической компании клиенты зовутся словом "тётки".

    Никаких документаций по проекту, комментариев к столбцам в БД нет. Плюс область самих программ совершенно не знакомая.

    Это совершенно нормально.
    Типовая ситуация.

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

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

    Ты вовсе не глупость показываешь свою.
    А выясняешь особенности уникального проекта.

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

    Кто кроме тебя самого знает что тебе непонятно.

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

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

    Alex_Wells
    @Alex_Wells
    PHP/Kotlin
    Второе - не совсем по теме Eloquent'а. Он про магию, и тут скоупы приходятся к месту. А если нужны будут еще условия? Ну, допустим остаите первым вызов этого метода, а если нужны будут еще условия в виде методов? Вот для чего были созданы скоупы, так что первый вариант - однозначно лучше.

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

    Далее: почему бы не сделать $user->products()->whereSlug($slug)? Учитывая контекст, смею предположить что именно такой запрос вам нужен не так уж и часто, а значит это - неплохое решение. Нужен будет эктив - ну добавляете скоуп в модель Product и имеете счастье, типа $user->products()->whereSlug($slug)->isActive(). Последние два метода относятся к конечной модели Product, а значит их дублировать не нужно, а вот релейшены в разных моделях (
    $user->products(), $page->products(), $something->products()
    ) - нужно, так что это правильный вариант.

    Тем более, Product не должен быть ответственен за методы юзера (как в вашем втором варианте), а если туда напихать еще несколько от разных моделей, со всякими $active = true - получится каша.

    TL;DR: Придерживайтесь того, что предлагает Eloquent, и будет вам счастье.
    Ответ написан
    22 комментария
  • В каком классе писать логику столкновений двух объектов?

    hack504
    @hack504
    Нигде. В парадигме ООП и снежинка и варежка и сцена - описывают только свое поведение методами и свойствами. Введите ещё одну абстракцию - мир(или физика), которая содержит все эти объекты и описывает поведение их взаимодействия.
    Сцена детектит столкновение снежинкой и варяжкой - передает миру, а тот в свою очередь удаляет снежинку, запускает анимацию варяжке, запускает в сцене радостный звуковой щелчок.
    Таким образом, если в дальнейшем реализовывать дополнение "Грачи прилетели", то легко реализуется логика столкновения варяжки и помета => помёт остается, варяжка замирает, в сцене грустный звук "ооу"
    Ответ написан
    Комментировать