• Как реализовать алгоритм построения линии с обходом препятствий?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    1. Алгоритм плоской укладки графов: здесь
    2. Иерархический подход для автоматического размещения ациклических графов: здесь

    Должно это помочь: https://flowchart.js.org/
    Ответ написан
    Комментировать
  • Вставка текста в PhpStorm c включенным плагином IdeaVIM. Как правильно?

    amerov
    @amerov
    Web Developer
    touch ~/.ideavimrc
    echo "set clipboard=unnamedplus" >> .ideavimrc
    Ответ написан
    Комментировать
  • Сайт с упражнениями по SQL?

    Bandicoot
    @Bandicoot
    Вась-программист
    Можно пощелкать задачки здесь: https://www.hackerrank.com/domains/sql/
    Ответ написан
    Комментировать
  • Сайт с упражнениями по SQL?

    @immaculate
    Программист-путешественник
    Ответ написан
    Комментировать
  • Зачем в PHP нужна рефлексия?

    @Nc_Soft
    <?php
    
    class Stp008 {
       /**
        * Вытащи этот текст проще, че это сделал я
        */
    	public function get() {
    
    	}
    }
    
    $reflection = new ReflectionClass('Stp008');
    $method = $reflection->getMethod('get');
    echo $method->getDocComment();
    Ответ написан
    Комментировать
  • Что нужно знать в javascript что-бы начать изучать react?

    fakey0u
    @fakey0u
    (javascript) => ['Node.js', 'React']
    • базовый синтаксис, встроенные методы массивов, синтаксический сахар в виде классов, es6 +-
    • как функционирует DOM,
    • событийную модель,
    • зачем нужно SPA
    • базовое понимание REST архитектуры
    Ответ написан
    6 комментариев
  • Насколько легко трудоустроиться программисту в 40+, 50+ итд лет?

    @Matar
    что то какой то бред написали )
    я пошел в программисты в 37 (!) лет. Причем, сознательно шел на слом своего мозга, ибо до этого 15 лет работал гуманитарием в сфере рекламы и маркетинга.
    И когда я пошел устраиваться на работу, на меня все смотрели не как на прыщавого джуна, а с уважением.
    Возрастных ограничений не увидел вообще, когда менял вторую работу программиста, то оценивался именно опыт как программирования, так и опыт тупо возрастного опыта.
    сейчас я заведую it отделом. справа от меня сидит программист 25 лет, слева 27 лет.
    Причем оба сильнее меня, как спецы. А начальник я. А почему? Потому что опыт )
    вот таки дела, малята )
    Ответ написан
    2 комментария
  • Как повысить уровень программирования?

    Jeer
    @Jeer
    уверенный пользователь
    Привет!
    Фраза "я не могу в яваскрипт" очень общая. Хоть многие поливают говном этот волшебный язык, я считаю его одним из самых красивых и выразительных. Расскажу, как у меня было, начал на нём писать в явовской системе J2SE, где js был внутренним скриптовым языком (тогда же прочитал книгу с носорогом, самую популярную у начинающих, ну и не дочитал, мне нужен был только синтаксис). В работе были прям основные вещи: объявление переменных, циклы, условия, работа со списками. В принципе, задачи не сложные, всё решалось и ладно.
    Затем была веб-разработка. Имея некие основные навыки включиться было не сложно. Возникаемые задачи решались гугл + стак оверфлоу. Но на выходе получалось, прям вот как вы говорите, некрасивый код. Поддержка его была, в основном, так называемым кастыльным программированием. Затем я прочитал книгу jQuery (o'really с Петром I на обложке), ну как прочитал, пролистал, можно сказать. И дело в том, что я узнал всего лишь больше jQuery-функций, вроде бы ничего, но для меня это было нечто новое. Я просто узнал, что можно делать не одним топорным способом, а есть еще и другие варианты. У меня даже запросы в гугл стали более изящными, более чёткими что ли. Затем я прочитал книгу "Графика на JavaScript" (всё тот же O'Really). Там интересные вначале оптимизации, но сама организация кода, я так никогда не делал и мне понравилось. Хотя я не занимался графикой, я просто хотел посмотреть на яваскрипт с другой стороны. И не прогадал. Тогда же наткнулся на статейку с хабра, ООП в яваскрипт. Таких статеек много, не знаю, какую читал именно я. Но объеденил что было в книге и пользуюсь по сей день. Повторюсь, я просто не знал, что так можно было.
    После этого я решил посмотреть в сторону node.js, купил какую-то маленькую книжку, поигрался, понял, что всё сырое, что-то не понравилось, для себя поковырялся, ну и забросил. Но я опять не пожалел, что уделил этому своё какое-то свободное время :) после этого я стал разбираться в callback'ах, я до этого примерно знал, что это такое, но не работал с этим, никак не использовал. А тут узнал, что можно и так, и это вполне законно и это работает не только в ноде, но и в клиенте.
    Теперь иногда только попадаются статейки с хабра или гт, в одной был продвинутый node.js, там рассказывалось, к примеру, про асинхронный код, promise и прочее. Сейчас я не пользуюсь этим, но хотя бы узнал, что так можно. И если мне что-то понадобится, я полезу в гугл, но теперь я хотя бы смогу сформулировать то, что хочу.
    Еще недавно наткнулся на статью (приведу хоть одну ссылку) https://habrahabr.ru/post/154105/ - функциональное программирование в js. Раньше я из-за интереса смотрел что это такое, опять же, просто для себя, не очень понравилось, решил не тратить на это много времени. А тут вполне понятным языком, для чайников, да еще и на примерах яваскрипта. Я ни в коем случае не призываю становиться функциональщиком, я лишь говорю, что есть разные подходы и их нужно посмотреть хотя бы для ознакомления.
    Подводя итог: практика необходима, она у меня была всегда, хотя js никогда не был моим основным языком. Книги нужны и книги важны, тут уже сказали, и мне очень нравится эта фраза "хотите быть писателем, много читайте". Посмотрите на язык с другой стороны. То есть, если вы занимаетесь клиентским js+jQuery, попробуйте написать игру на html5 (space invaders или др.), ну или другие варианты, примеры я привёл. Тематические рассылочки с хабра и gt позволяют держаться в тонусе. И самое последнее - упорство и время
    Ответ написан
    Комментировать
  • Паттерны проектирования?

    @vkdv
    Паттерны - это реальные инструменты, позволяющие добиться реализации концепции объектно-ориентированного проектирования и принципов SOLID

    Ссылка на SOLID

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

    Один из наиболее часто встречающихся мне примеров, это пример принципа "Принцип открытости/закрытости" , когда класс - описывающий некую сущность(например модель комментария) , описывает только свои базовые назначения( создание, удаление, редактирование), при этом такие механизмы, как модерация, прикрепление файлов, лайки , реализуется другими классами и "прикручиваются" к классу моделей через интерфейсы и наследование/ трейты / примеси

    При этом :
    1) Никак не изменяется код класса "Комментарий" (кроме подключения интерфейса) и в будущем мы добавляем поведения без изменения класса + стабильность системы, гибкость
    2) Каждый класс имеет свое четкое назначение + легкость модификации, порядок
    3) Комментарии наследуют некоторое поведение, путем подключения поведения, но также могут поступать любые другие классы - сущности (посты, блоги итп) , то есть интерфейс и реализация лайков универсальна, и весь функционал работы лайков находится только (строго!!!) в одном месте + легкость модификации, Универсальность, стабильность, интуитивная понятность

    Из википедии :

    Признаки плохого проекта
    Закрепощённость: система с трудом поддается изменениям, поскольку любое минимальное изменение вызывает эффект "снежного кома", затрагивающего другие компоненты системы.
    Неустойчивость: в результате осуществляемых изменений система разрушается в тех местах, которые не имеют прямого отношения к непосредственно изменяемому компоненту.
    Неподвижность: достаточно трудно разделить систему на компоненты, которые могли бы повторно использоваться в других системах.
    Вязкость: сделать что-то правильно намного сложнее, чем выполнить какие-либо некорректные действия.
    Неоправданная сложность: проект включает инфраструктуру, применение которой не влечёт непосредственной выгоды.
    Неопределенность: проект трудно читать и понимать. Недостаточно четко выражено содержимое проекта.

    Оттуда же про SOLID

    Избавиться от "признаков плохого проекта"[4] помогают следующие пять принципов SOLID:

    Принцип единственной ответственности (The Single Responsibility Principle)
    Существует лишь одна причина, приводящая к появлению класса.

    Принцип открытости/закрытости (The Open Closed Principle)
    «программные сущности … должны быть открыты для расширения, но закрыты для модификации.»

    Принцип подстановки Барбары Лисков (The Liskov Substitution Principle)
    «объекты в программе должны быть заменяемыми на экземпляры их подтипов без изменения правильности выполнения программы.»

    Принцип разделения интерфейса (The Interface Segregation Principle)
    «много интерфейсов, специально предназначенных для клиентов, лучше, чем один интерфейс общего назначения.»

    Принцип инверсии зависимостей (The Dependency Inversion Principle)
    «Зависимость на Абстракциях. Нет зависимости на что-то конкретное.»
    Ответ написан
    2 комментария
  • PhpShorm - анализатор кода сходит с ума?

    @deliro
    За 5к-строчные пхп файлы автора нужно предавать анафеме. А код сжигать дотла.
    Ответ написан
    9 комментариев
  • Как визуализировать причинно-следственные связи?

    eZhrv
    @eZhrv
    Growth Hacking, Agile marketing, A/B testing
    Внимание:
    Предлагаемый вариант соответствует только одному критерию в рамках вопроса.
    Ищу программу, сервис, решение для визуализации причинно-следственных связей для построения блок-схем больших алгоритмов.

    Программа Flying logic
    71b3779f80e900f8f20fc1466e4.jpg
    flyinglogic.com

    Одна из многих крутых книг на тему
    Теория ограничений Голдратта. Системный подход к непрерывному совершенствованию
    https://www.ozon.ru/context/detail/id/33290433/
    Ответ написан
    Комментировать
  • Как визуализировать причинно-следственные связи?

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

    загуглите:
    диаграмма циклической причинности

    моделирование системной динамики

    диаграмма системной причинности

    системные диаграммы

    моделирование систем

    нечеткая когнитивная карта


    книги:
    искусство системного мышления

    азбука системного мышления


    программы:
    Vensim

    Powersim

    iThink


    ссылка на мой вопрос: он кстати похож на ваш.
    Ответ написан
    2 комментария
  • Где можно найти задания для программиста?

    @di23
    codewars.com
    Ответ написан
    Комментировать
  • Как автоматически удалять запись из бд через 10 минут?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Вариант 1 - ставить время бронирования, запускать крон раз в минуту, удалять все неподтверждённые бронирования старше 10 минут.
    Вариант 2 - запустить шедулер MySQL и вместе с бронированием создавать событие на его удаление при отсутствии подтверждения.
    Ответ написан
    1 комментарий
  • Git: объясните «на пальцах» разницу между rebase и cherry-pick?

    Все красиво объяснил Nkly777, только в блоке PS merge с rebase перепутаны.
    Добавлю картинок.

    git rebase devel - собачка на молнии - "сшивает" коммиты по дате их создания
    (ветка devel "растворяется" в основной ветке)
    518b8dbce1cd4f96b30de9782ae38fcd.png
    git merge devel - пожарная лестница, все коммиты ветки devel крепятся в конец, образуется пересечение
    (devel остается отдельной веткой, к которой можно вернуться)
    1ba8186d879d46ff85ea7c1e192328e2.png
    git chery-pick idea - забрать коммиты из ветки idea
    2717e3091f644ef2954aa2de4514f446.png
    Ответ написан
    2 комментария
  • Предварительная загрузка изображений на jquery?

    Предзагрузка в JS выглядит таким образом:

    var image = new Image();
    
    image.src = "image.jpg";

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

    new Image().src = "image.jpg";

    Для большего удобства можно написать функцию, которая загружает изображения указанные в аргументах:

    function preloadImages() {
      for (var i = 0; i < arguments.length; i++) {
        new Image().src = arguments[i];
      }
    }
    
    preloadImages(
      "images-1.jpg",
      "images-2.jpg",
      "images-3.jpg"
    );
    Ответ написан
    Комментировать