• Какой стиль программирования выбрать, чтобы не вникать спустя время в проект?

    inoise
    @inoise Куратор тега PHP
    Solution Architect, AWS Certified, Serverless
    Документацию писать надо) вот и весь секрет
    Ответ написан
  • Как вам такая идея диплома?

    DevMan
    @DevMan
    а смысл в чём? это не худ.литература: хорошие, отработанные решения принято копировать; реюзабельность кода - преимущество, а не недостаток.

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

    любой код, используищий libcurl - плагиат.
    любой код, использующий популярный для платформы Х пакет для работы с У - плагиат.
    просто потому, что с ними невозможно работать иначе.
    и, если ваш руководитель не будет так далек от программирования как только возможно (я таких встречал), он скажет: "окстись, чувак". и, надеюсь, не будет при этом сдержан в выражениях.
    Ответ написан
    Комментировать
  • С чего начать разработку онлайн игры с использованием клиента сторонних разработчиков?

    profesor08
    @profesor08
    Тратишь такой годы, а потом придет правообладатель и ты удаляешь весь свой труд. Профит.

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

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Посчитать
    $arr = [1,2,3,4,5,5,4,1,2,1,2,5,2,2,3,2];
    $cnt = [];
    foreach ($arr as $val) { //Считаем
    	$cnt[$val] = @$cnt[$val] + 1;
    }
    print_r($cnt);
    
    $answer = 0;
    $max = 0;
    foreach ($cnt as $key=>$val) if ($val > $max) { //Ищем максимум
        $max = $val;
        $answer = $key;
    }
    print_r('Answer: '.$answer);
    Ответ написан
    5 комментариев
  • Возможно ли найти заказчиков зная HTML и CSS?

    Zoominger
    @Zoominger
    System Integrator
    Нет, не возможно.
    Вы просто будете в задних рядах молящих о работе за еду, причём шансы у вас абсолютно нулевые даже на бесплатную работу.
    Ответ написан
    6 комментариев
  • Что выбрать: информационную безопасность или программирование?

    Zoominger
    @Zoominger Куратор тега IT-образование
    System Integrator
    Идите на программирование, параллельно учите C#.
    Ответ написан
    Комментировать
  • Нужен ли класс в этом случае? Или можно держать функцию особняком?

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

    Кроме того, авторы видеокурсов в большинстве своем - неграмотные имбецилы, которые с трудом понимают код, который пишут. Кроме шуток. Пример. Вот так пишут обезьяны:
    $i = 0;
        $newsList = array();
        while($row = $result->fetch()) {
          $newsList[$i]['id'] = $row['id'];
          $newsList[$i]['title'] = $row['title'];
          $newsList[$i]['date'] = $row['date'];
          $newsList[$i]['author_name'] = $row['author_name'];
          $newsList[$i]['short_content'] = $row['short_content'];
          $i++;
        }
        return $newsList;

    Реально, макаки.
    Этот гамадрил где-то сам увидел обучающий материал из 1990-х годов прошлого века, запомнил его, и теперь лепит уже в свои "обучающие ведидео".
    при том что если бы он понимал смысл этого кода, то написал бы просто
    $newsList = array();
        while($row = $result->fetch()) {
          $newsList[] = $row;
        }
        return $newsList;

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

    return $result->fetchAll();

    Поскольку все уже написано до нас - надо только руку протянуть и использовать готовое.

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

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

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

    abstract class Model {
        protected $table;
        protected $db;
        public function __construct($db) {
             $this->db = $db;
        }
        public function find($id) {
            $sql = "SELECT * FROM `$this->table` WHERE id=?";
            $stmt = $this->db->prepare($sql);
            $stmt->execute([$id]);
            return $stmt->fetch();
        }
    }
    class News extends Model {
            protected $table = 'news';
    }
    $news = new News($db);
    $article = $news->find($id);


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

    Если хочется нормальных обучающих материалов, рекомендую канал Дмитрия Елисеева, https://www.youtube.com/user/ElisDN/videos
    Ответ написан
  • Как обновить уникальное поле?

    be_a_dancer
    @be_a_dancer
    Backend/Fullstack Developer
    Так. Вопрос по слагу решается просто unique:table,id_to_ignore.
    Все безобразие, что вы понаписали решается двумя строками.
    $validatedFields = $request->validate($rules);
    $model->fill($validatedFields);
    Ответ написан
    6 комментариев
  • Как получить часть ссылки?

    @dimuska139
    Backend developer
    Не надо извращаться с регулярными выражениями. Для работы с урлами есть специальная функция parse_url

    <?php
    $url = 'https://vk.com/public33333333';
    $parsedUrl = parse_url($url);
    
    echo $parsedUrl['host'] . $parsedUrl['path']; // vk.com/public33333333

    P.s. если url с get-параметрами, то
    echo $parsedUrl['host'] . $parsedUrl['path'] . '?' . $parsedUrl['query']
    Ответ написан
    4 комментария
  • Как хранить атрибуты "товара" в laravel, если есть общие и уникальные атрибуты?

    @potkot
    PHP программист
    Я бы сделал (да и делал) так:
    Общие поля прямо в таблице Товары
    Атрибуты (характеристики): Таблица характеристик, Таблица привязки характеристики к категории, Таблица значений характеристики для товара.
    Ответ написан
    2 комментария
  • Есть ли аналог htmlacademy или javarush для начинающих PHP-разработчиков на русском языке?

    @MasterMike
    Приплыли.
    Курсы html-академи (которая, кстати, является русскоязычной калькой буржуйского ресурса и после которых даже верстальщиком не устроиться) производят приятное впечатление.

    Что дальше?
    Курсы по php, где учат делать запросы к бд в цикле?
    Ответ написан
    7 комментариев
  • Программистами рождаются или становятся?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Становятся. В результате долгого и упорного труда.
    Ответ написан
    2 комментария
  • Качество работы штатного программиста. Как оценивать?

    zoonman
    @zoonman
    ⋆⋆⋆⋆⋆
    У нас небольшая компания, пилим свой сайт, црм и подобные штуки для внутреннего использования.

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

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

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

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

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

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

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

    Что посоветуете?

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

    Итак, что же нужно сделать в такой ситуации.

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

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

    2. Внедрить юнит и интеграционное тестирование, как часть процесса разработки. Разработка будет в 2-3 раза дольше. Это нормально. Зато качество кода существенно улучшится и количество ошибок уменьшиться. Внедрение тестирования достаточно болезненный этап и занимает около года на перестройку мышления.

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

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

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

    NYMEZIDE
    @NYMEZIDE
    резюме - ivanfilatov.ru
    Зависит от того, насколько вы себя цените. Выкладывать на помойку свое резюме?
    Хорошие, достойные компании никогда не полезут туда искать себе персонал.

    Хотя на днях слышал новость, что кто-то искал работников в Тиндере... Это дурдом.
    Ответ написан
    3 комментария
  • Как организовать обращение к API с задержкой?

    opium
    @opium
    Просто люблю качественно работать
    Во первых используйте много проксей
    Во вторых что вам мешает делать тупо sleep 2
    Чтобы подождать две секунды
    Ответ написан
    4 комментария
  • Как реализовать передачу данных из js в action yii2?

    irishmann
    @irishmann
    Научись пользоваться дебаггером
    AJAX
    Ответ написан
    Комментировать
  • Как правильно составить план самообучения?

    inoise
    @inoise Куратор тега Карьера в IT
    Solution Architect, AWS Certified, Serverless
    1. Гуглить по тостеру никого не учили видимо, опять
    2. Выбирай что хочешь - перспективны не технологии, а люди с головой, не задающие таких вопросов
    3. Люди, идущие в IT за деньгами не зарабатывают
    4. Нет универсальных или проверенных тропинок - пробуй, набивай шишки и учись на них. Будут конкретные затычки в процессе - задавай тут, не стесняйся
    Ответ написан
  • Создание онлайн компилятора?

    riot26
    @riot26
    <:З )~~
    Если знаешь как компилировать из терминала — exec(). Другой вопрос как ты защитишься от выполнения вредоносного кода на сервере, а это тебе точно будет не по силам.
    Ответ написан
    4 комментария
  • Какой язык сейчас актуальный в gamedev?

    Zoominger
    @Zoominger
    System Integrator
    Скажу сразу c# я не люблю, как и компанию microsoft и их продукции (не кидайте палки),

    Это пройдёт с возрастом.

    Ответ: C#.
    Ответ написан
    2 комментария
  • Есть курсы по адаптивной верстке с быстрым стартом?

    @noeer
    Насчет boostrap, - решение верное. Очень облегчает жизнь верстальщика.
    Но если верстать собираетесь разово, то лучше нанять специалиста, т.к. комплексный курс по бутстрапу будет стоить денег. И плюс, с первого раза все-равно качественно не сверстаете.
    Ответ написан
    Комментировать