• Разработчик недисциплинированно трекает время. Что делать?

    php666
    @php666
    PHP-макака
    Упаси бог работать в столь токсичной среде.
    Сидеть и отчитываться за каждую минуту/час.
    Идеальный информационный концлагерь.
    Ответ написан
    7 комментариев
  • Разработчик недисциплинированно трекает время. Что делать?

    Xuxicheta
    @Xuxicheta
    инженер
    Не выносить мозги разработчику своим трекингом и дать ему спокойно работать.
    Не справляется - увольняйте.
    Ответ написан
    9 комментариев
  • Как правильно разбить функцию на модули внутри класса?

    @galliard
    Выдели в приватные методы того же класса.

    P.S. Наличие в проекте папки с названием Utils - яркий признак говнокода.
    Ответ написан
    2 комментария
  • Перспектива рынка веб разработки с появлением Webflow?

    DevMan
    @DevMan
    перспективы цветут и пахнут: сейчас практически всё мигрирует в веб.

    но задающие подобные вопросы люди обычно стоят где-то в сторонке.
    Ответ написан
    Комментировать
  • Зачем нужен Babel и где его использовать?

    @lomaster
    .NET и веб-разработчик
    Babel.JS – это транспайлер, переписывающий код на ES6 (ES-2015) в код на предыдущем стандарте ES5.
    Он состоит из двух частей:
    • Собственно транспайлер, который переписывает код.
    • Полифилл, который добавляет методы Array.from, String.prototype.repeat и другие.
    https://learn.javascript.ru/es-modern-usage
    Ответ написан
    Комментировать
  • Как правильно выстраивать архитектуру приложения?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    Выучил основы языка, но правильной архитектуре приложений очень мало где учат.


    Нужно научить человека стать опытным специалистом. Есть идеи, как это в принципе делать?
    Получение опыта - длительный процесс. Занимает всю жизнь, поэтому кто-то вас всю жизнь учить не будет.

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

    AMar4enko
    @AMar4enko
    Самый толковый и наиболее широко поддерживающийся способ это svg-спрайты через xlink:href (поищите статью на хабре).
    Смысл в том, что вы берете 100 мелких svg файлов и заталкиваете в один большой, помечая отдельные фрагменты идентификаторами.
    Этот файл загружаете одним XHR-запросом и вставляете в DOM, после чего можете делать
    <svg>
        <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#my-cool-icon"></use>
    </svg>

    У такого способа есть приятный плюс - спрайты можно перекрашивать через css. Извернувшись можно даже красить в два разных цвета (типа один элемент в красный, другой в синий), что невозможно с иконочными шрифтами.
    Используя css в качестве background-image такое не прокатит
    Ответ написан
    1 комментарий
  • Простой учебник по дискретной математике для программистов?

    ThePyzhov
    @ThePyzhov
    iOS Ninja
    Книжка так и называется: Дискретная математика для программистов, Хаггарти
    d42253adb4fe456299477434950d5c88.jpg
    Ответ написан
    Комментировать
  • Почему в EF Core нет OrderBy?

    firedragon
    @firedragon
    Не джун-мидл-сеньор, а трус-балбес-бывалый.
    У вас не подключены библиотеки.

    Using System.Linq
    Ответ написан
    1 комментарий
  • Как обработать исключения в xUnit.net?

    ch1sel
    @ch1sel
    probability is extremely small
    [Fact]
            public void Test2()
            {
                Assert.Throws<ShapeException>(() =>
                    {
                        var rect = new Rectangle
                        {
                            Height = -5,
                            Width = 3
                        };
                        rect.Area = rect.Height * rect.Width;
                    }
                );
            }
    Ответ написан
    2 комментария
  • Как реализовать счетчик "сейчас этот товар просматривают еще N человек"?

    nki
    @nki
    bezkart.ru готовая система лояльности
    Это маркетинговая уловка. Можешь делать рандомный счетчик. Лишь бы пользователь понял, что у него есть конкуренты и быстрее купил нужный товар.
    Ответ написан
    7 комментариев
  • Где найти параллельный алгоритм нахождения максимального паросочетания в графе?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Интересный вопрос. Кмк форд-фалкерсон либо плохо параллелится. Либо после параллелизма просядет в блокировках вершин и ребер, что сделает его худшим по эффективности чем непараллельный.

    Тут надо подумать.
    Ответ написан
    Комментировать
  • Где найти параллельный алгоритм нахождения максимального паросочетания в графе?

    wataru
    @wataru Куратор тега Алгоритмы
    Разработчик на С++, экс-олимпиадник.
    (если речь про двудольный граф)

    Ищите parallel dfs или parallel maximum flow.

    Собственно, параллелизации поиска паросочетаний я нигде не видел. Слишком специфичная задача.

    Однако, есть алгоритм поиска через максимальный поток.
    Если добавить в граф исток, соединенный с левой долей, и исток, соединенный с правой долей, а пропускные способности сделать по 1, то любой поток тут будет равнозначен паросочетанию. Есть алгоритм Форда-фолкерсона, там основная работа - это делать dfs в графе для поиска пути из истока в сток. Собственно, можно распараллелить этот dfs. Это более популярная задача и алгоритмы гуглятся легко.

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

    yarosroman
    @yarosroman Куратор тега C#
    C# the best
    Контейнер хранилище зависимостей. Контейнер служит для разрешения зависимостей, те говорит какую конкретную реализацию подставить. У вас зависимость может быть интерфейс - класс реализация интерфейса, класс - наследник класса, просто класс. Так вот при регистрации вы сопоставляете тип и конкретную его реализацию.
    Например
    container.Register<IRegisterServer,DbRegisterService>();
    container.Register<RegisterVieModel>();
    .......
    //Конструстор ViewModel
    void RegisterViewModel(IRegisterService service)
    {
    }

    Так вот, когда у ioc контейнера вы запрашиваете RegisterViewModel, он смотрит на параметры конструктора и в соответствии с типами в нем зарегистрированными, создаёт и подставляет в конструктор соответствующие типы. Зачем это надо, вы в любой момент можете поменять реализацию или сделать несколько реализаций и регистрировать их в зависимости от параметров запуска или ключей реестра. А вообще инверсия зависимостей служит для избавления кода от связанности. В примере выше, в VM используется не конкретный класс, а некий тип, описанный интерфейсом, если вам надо поменять реализацию, то вы поменяете только строчку реализации, а класс VM останется без изменений. На небольших проектах может и не заметна выгода, но в больших, над которыми несколько человек, даже очень.
    Ответ написан
    Комментировать
  • MVC php на пальцах?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Ох...

    Model View Controller. Да ну его, ему уже 45 лет (придумали в 79-ом году). Давайте лучше про Model View Adapter погокорим. это то что все используют в популярных фреймворках последние лет так 10 так точно.

    mvc-mvp-mvvm-6-638.jpg?cb=1375170002

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

    View - это не только HTML, но и вообще представление в целом, а так же логика его формирования. Шаблонизаторы, фильтры, различные функции/объекты помогаютщие нам сформировать view (например форматирование дат, сериализаторы и т.д.) В подавляющем большинстве случаев "представление" наших данных - это HTTP запросы и HTTP ответы. HTML - э то лишь часть HTTP ответа.

    Model - Это целый слой, который может быть представлен в виде кучи отдельных объектиков, структур и т.д. Его задача - делать дела и хранить/менять состояние системы. Тут легко запутаться потому что термин "модель" много чего значит. Воспринимайте его как "слой логики" а не конкретные объекты. И да - база данных и прочая чушь - это детали реализации этого слоя. "не важные штуки" словом. Туда же и ActiveRecord, ORM-ки всякие. Это деталь реализации и все остальные чуваки (view и controller) о них знать ничего не должны (хотя иногда могут в целях упрощения).

    Controller или адаптер. Это опять же не обязательно один объект. это может быть цепочка адаптеров (еще называют фронт-контроллером, middlewares и т.д.). Его задача весьма простая. Получаем представление данных на входе (HTTP запрос), определяем что надо делать, и просим модель что-то сделать (ни в коем случае не меняем ничего самостоятельно в контроллере, он только просит). Потом мы можем попросить модель вернуть нужный нам кусок состояния, и попросить View сформировать представление (HTTP ответ).

    Как-то так. В целом же это я сейчас описал "идеальный мир". Вся суть этого подхода - разделение логики презентационной и логики приложения. Зачем это надо? что бы было проще жить! Обычно UI приложения или способы взаимодействия с ним меняются почаще логики или как минимум в разные моменты времени. Адаптеры в этом случае служат промежуточным слоем, они ничего сами не делают, это "переводчики". Они просто переводят то, что сказано в запросе в язык понятный приложению и обратно.

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

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    А что вам дадут секунды?
    Вот у вас есть две программы, обрабатывающие одни и те же данные и получающие одни и те же результаты по разным алгоритмам. Первая программа делает это за 10 секунд, вторая за 20. Как оценить, насколько вырастет время обработки при увеличении объёма данных в 10 раз?
    Никак, пока мы не знаем сложности алгоритма. Если первый имеет сложность O(n2), а второй - O(n), то время работы первого вырастет в 100 раз и составит 1000 секунд, а второго - всего в 10 раз (200 секунд). То есть, программа, которая была быстрее на малом наборе данных, внезапно становится гораздо медленнее на большом наборе. И определяющим параметром здесь становится именно вычислительная сложность алгоритма.
    Ответ написан
    1 комментарий
  • Зачем нужно событие если есть делегат?

    petermzg
    @petermzg
    Самый лучший программист
    Так событие и есть делегат, только с дополнительными свойствами из которых самое важное, что вызвать его можно только из класса, где он обьявлен.
    Ответ написан
    1 комментарий
  • Код выполняется в онлайн редакторе python 3, но выдает ошибку в visual studio 2017?

    samodum
    @samodum
    Какой вопрос - такой и ответ
    Pip install dateutil
    не должна быть в коде.
    Ты даже не понимаешь что ты делаешь.
    Это командная строка. Убери её и всё заработает.
    Прочти хотя бы 5 первых страниц любой книги по питону
    Ответ написан
    Комментировать
  • Максимально эффективная методика изучения программирования?

    Adamos
    @Adamos
    Методика наиболее эффективного обучения:
    1. Закрой Тостер
    2. Открой учебник
    3. Пиши код
    4. Закрой Тостер!
    Ответ написан
    4 комментария