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

    sim3x
    @sim3x
    TDD

    Забыли, что делает проект
    Запускаем тесты
    Смотрим, возможно остались ошибки с todo
    Фиксим их
    По пути смотрим на юзерстори
    Находим место, где требуется внести правку в юзерстори
    И далее по циклу

    Если вы не понимаете, что написано в вашем классе - значит он написан плохо
    Перепишите его, так чтоб с первого взгляда на код вы могли понять, что он делает
    Ответ написан
  • Для чего все-таки нужны интерфейсы?

    @kova1ev
    Представь у тебя есть какой-нибудь метод, который принимает в агрументах объект, например, типа User
    doSomething(User user)
    Ты можешь передавать в этот метод любой объект типа User или объекты классов, наследующих User.
    Но можно сделать еще гибче, например описать некий интерфейс UserInteface и указать в определении метода его:
    doSomething(UserInterface user)
    Теперь ты можешь передавать в метод объект любого класса, который реализует интерфейс UserInterface.
    Разумеется, изначальный класс User из этого примера тоже должен реализовывать этот интерфейс.

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

    И, как уже написали выше, один класс может реализовывать несколько интерфейсов.
    Ответ написан
    Комментировать
  • Как связать число со строкой в MySQL?

    Adamos
    @Adamos
    Если у вас в одной ячейке хранится несколько значений, значит, вы не привели данные к нормальной форме. Никакими костылями исправить это не получится (точнее, варианты есть, но они будут еще хуже).
    В данном случае напрашивается отдельная таблица и связь один-ко-многим или многие-ко-многим через нее, банальнейшее решение для SQL.
    Ответ написан
    1 комментарий
  • На чем написать игру?

    index0h
    @index0h
    PHP, Golang. https://github.com/index0h
    на каком языке можно написать игру?

    крестики-нолики на любом, ну практически.

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

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

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

    Для начала я бы конкретизировал, что за игру)). Нельзя подобрать инструмент, если нет понимания, что в принципе необходимо.

    Редакторы и прочие движки не интересны

    А это зря. Если собираешься в игрострой - то как раз эти инструменты очень вероятно пригодятся.
    Ответ написан
    2 комментария
  • Почему не включается ПК после замены термопасты на процессоре?

    tsklab
    @tsklab
    Здесь отвечаю на вопросы.
    Вытащил все комплектующие из корпуса и собрал на столе.
    Только процессор и память (или без неё проверить звуковые сигналы).
    Ответ написан
    Комментировать
  • Фронтенд и бекенд в разных репозиториях или в одном?

    Wolfnsex
    @Wolfnsex
    Если не хочешь быть первым - не вставай в очередь!
    Как хранить исходники вместе или раздельно по разным репозиториям? Какие плюсы и минусы каждого способа?
    Мне кажется тут вопрос не столько в "плюсах и минусах" сколько в здравом смысле. Мне не совсем понятно, что в конечном счёте означает "бекенд на python, фронтэнд на angular". Это два независимых проекта, способных работать автономно друг от друга и "общаться", например, через API, разработка которых происходит параллельно и независимо друг от друга, при этом какие-либо части проектов не пересекаются между собой (например, куски HTML/CSS/JS/etc кода не копируются в бекенд-часть)? Если так - то крайне логично разделить это на два отдельных репозитория, т.к. это по сути два разных проекта, связанных между собой весьма косвенно. Если же у Вас проекты имеют более прочную связь между собой или степень контаминации исходного кода выше той, что я описал ранее - то это один проект и дробить его на множество репозиториев, лично я смысла не вижу никакого (а то мы так дойдём до "давайте хранить HTML-код в одном репозитории, CSS в дургом, JS в третьем и т.д.).

    P.S. Обычно, такие вещи разъясняет штатный тимлид, а не коллеги по форуму :)
    Ответ написан
    5 комментариев
  • Почему столько восторгов вокруг типизации? По-моему без нее намного проще, не?

    Minifets
    @Minifets
    Hello world!!!
    Дополню все остальные ответы, что не стоит путать строгую типизация со статической.

    Typehint-ы в том же php намного упрощают понимание и разработку кода, оставляя его все также слабо типизированным языком.
    Ответ написан
    3 комментария
  • Как сделать сортировку в sql но чтоб одна строка была сверху списка?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Очевидно, что раз id является более приоритетным признаком сортировки, то он и должен идти впереди. Ну и, поскольку TRUE эквивалентно 1, а FALSE - 0, то сортировка по такому условию должна идти в обратном порядке.
    ORDER BY `id` = :id DESC, `date`
    При этом стоит учесть, что индекс при такой сортировке работать не будет. Возможно, что выгоднее будет отдельно получить эту строку, отдельно остальные строки.
    Ответ написан
    Комментировать
  • Простой дебагер php?

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

    в стороннем дебагере нет ничего атипичного и архисложного. не привычно? да. сложно по первой? да. но как только вкатишься, ни на что другое смотреть не захочешь.
    Ответ написан
    Комментировать
  • MySQL Select LIKE - где зарыт СКЕЛЕТ ???

    Sanasol
    @Sanasol Куратор тега PHP
    нельзя просто так взять и загуглить ошибку
    ///// верно ли сверяю
    if($result_mode['vopros'] == "$searchData")


    конечно нет, если там будет "привет", а в запросе "прив"
    База-то результат найдет, а вы этой проверкой результат выбрасываете в помойку.

    PS весь код стоит выбросить в помойку.
    Ответ написан
    3 комментария
  • Как скрыть PHP код на сервере при условии что надо его править?

    Щас предложу вариант, без конкретики но суть вы уловить должны, во первых, если надо править конфиги, вам не обязательно давать доступ к серверу, эти конфиги вы можете сделать редактируеми через какую нибудь веб морду, что касается запуска приложений, вы можете так же сделать пару кнопок, нагардив веб сервер соответствующими правами. Зачем давать доступ рута?
    Ответ написан
    1 комментарий
  • Можно ли делать редиректы из моделей?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Нельзя.

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

    В данном случае тут же станет ясно, что редирект в командной строке - а следовательно и в модели - является бессмыслицей. А любые манипуляции с НТТР протоколом должны совершаться в том единственном компоненте, который отвечает за работу c HTTP - контроллере.
    Ответ написан
    Комментировать
  • Как организовать процесс web-разработки?

    @karminski
    Senior React.JS Developer
    1. У вас должно быть два сервера: один для разработки (локальный), второй боевой (vds).
    2. Установите любую IDE, например от JetBrains. В ней настройте деплой.
    3. Как только на локальном сервере внесли новый код, убедились, что он работает правильно, нажимаете кнопку деплоя в IDE.
    4. Вы у цели.

    Это сценарий для новичков. Далее по мере вашего развития вы сами дойдете и до докера, и до много чего ещё интересного. Удачи.
    Ответ написан
    Комментировать
  • Как бороться со спамом на домашней почте?

    @yayashitoya
    Да и вручную добавлять в спам не вариант, я буду только по часа два или три тратить каждый день на то что бы все эти 500 писем очистить (они же идут в перемешку с нужной мне почтой от людей, а не от спамерских ботов).

    Зато потом оно автоматом в спам начинает уходить.
    Использую один и тот же почтовый адрес 20 лет - все хорошо.
    Просто не ленюсь обучать антиспамовую систему.
    Ответ написан
    1 комментарий
  • Возможно ли обновить ядро в arch linux без перезагрузки?

    dmlogv
    @dmlogv
    Универсальный человек
    Ни разу не возникало проблемы с отвалом модулей после обновления.
    Он же делает mkinitcpio, подкладывая свежеинициализирование ядро для следующей загрузки (в любом случае без ребута никуда), а старое бэкапит, чтобы в случае фэйла можно было загрузится с него.
    Ответ написан
  • Какой язык вы используете в опубликованных на github проектах?

    sim3x
    @sim3x
    Не бойтесь использовать английский
    Никто вас не будет ругать за его плохое знание
    Ответ написан
    2 комментария
  • Что изучать в IT сфере, учась на радиотехнике?

    @pfg21
    ex-турист
    embedded програмирование, embedded linux, IoT
    имхо неплохо было бы познания в С, асме, архитектуре процессора / микроконтроллера, для отладки драйверов.
    специалистов знающих две пограничные сферы всегда будет не хватать.
    Ответ написан
    7 комментариев
  • Какой backend фреймворк использовать для небольшого проекта?

    amark
    @amark
    rush less, feel more
    Я бы посоветовал yii.

    При всем потенциале холливара:
    Если поискать сравнения в интернете, то можно увидеть, что лидирующий в сравнениях аргумент — для для новичков порог входа в yii ниже (если сравнивать с laravel).

    Cms соответственно использовать нельзя,
    — не совсем увидел логики, почему нельзя?
    Ответ написан
    7 комментариев
  • Не могу сортиронуть в PHP?

    0xD34F
    @0xD34F
    На основе этого значения надо менять результат внутри callback-функции передаваемой вторым параметром usort()

    Умножайте результат на +/- 1, в зависимости от переданного значения:

    function array_sort(array &$arr, $key, $sort = 'asc') {
      $sort = $sort === 'asc' ? 1 : -1;
      usort($arr, function($a, $b) use($sort, $key) {
        $a = $a[$key];
        $b = $b[$key];
        return $sort * ($a === $b ? 0 : $a > $b ? 1 : -1);
      });
    }
    Ответ написан
    7 комментариев
  • Названия директорий с точками, могут ли быть проблемы?

    Softer
    @Softer
    Все нормально будет. Даже при переносе на винду.
    Ответ написан
    Комментировать