Ответы пользователя по тегу Веб-разработка
  • С помощью каких технологий лучше разработать визуальный Drag&Drop конструктор?

    @SuperOleg39ru
    Front-end разработчик
    Существуют drag&drop библиотеки и для ванильного js, и для фреймворков.

    Вот топовая библиотека - https://bevacqua.github.io/dragula/

    Вот библиотека для использования с React - react-dnd.github.io/react-dnd

    React или Angular нужны вам для создания аккуратной, модульной и расширяемой кодовой базы. Но если вы ими не пользовались, или опыта немного, конечно в начале их использование притормозит работу, но в конечном счете оно того стоит.
    Ответ написан
    1 комментарий
  • Angular 1.6.4 $watchGroup возвращает пустые строки для старых значений. Не пойму в чём дело?

    @SuperOleg39ru
    Front-end разработчик
    Рекомендую вам отказаться от $watchGroup и $watch, вместо этого на инпуты добавьте ng-change, и уже в функциях-обработчиках делайте все что вам угодно.

    Причины:
    1) Полностью контролируете процесс
    2) Нет потери производительности из за watch'еров
    Ответ написан
  • [code-review] JS галерея, какие замечания?

    @SuperOleg39ru
    Front-end разработчик
    Добрый день!

    1) Для удобства оформите библиотеку как npm пакет.
    И что бы этот пакет можно было использовать разными системами сборки, можно использовать формат определения модуля UMD

    2) При создании экземпляра const gallery = new Gallery({}) - неплохо бы иметь доступ к управлению галереей через JS, например:
    gallery.pause();
    gallery.next();


    Возможно вам захочется добавлять слайды на лету, это тоже отдельный метод.

    3) Так же, можно добавить изменение настроек на лету, gallery.setOptions({})

    В связи с этим можно сделать вывод, что нужен более объекто-ориентированный код, то есть вы создаете класс Gallery, который имеет методы для управления, сохраняет свойства себе в контекст (this), например:

    var defaultOptions = {
      ...
    }
    
    privateMethod() {
      ...
    }
    
    function Gallery(options) {
      this.options = extend(defaultOptions, options);
      this.interval = this.createInterval();
      ...
    }
    
    Gallery.prototype.init = function() {
      ...
    }
    
    Gallery.prototype.next = function() {
      ...
    }
    
    Gallery.prototype.createInterval= function() {
      ...
    }
    
    function extend(a, b) {
      ...
    }


    То есть, всю логику вы разделяете на отдельные функции, которые являются методами класса Gallery, если нужен публичный доступ к этой логике, либо выносите эти методы и свойства наружу, если их нельзя менять пользователям.
    Ответ написан
    3 комментария
  • Как ставить темы для Ангуляра?

    @SuperOleg39ru
    Front-end разработчик
    Если тема = верстка + отдельные angular компоненты, скорее всего вам надо:

    1) Сделать корневой роут, который будет содержать только файл шаблон с версткой общей разметки админки, и там указать место, куда будут выводиться роуты-потомки (контент конкретных страниц)

    2) Angular компоненты темы (скорее всего они будут оформлены в один модуль) подключить в зависимость вашего основного модуля приложения

    // пример роутов, использую ui-router
    $stateProvider.state('admin', {
      template: '...', // содержит <div ui-view></div> для вывода потомков, например роута home
    })
    
    $stateProvider.state('home', {
      parent: 'admin',
      template: '...',
      controller: '...'
    })


    // Пример как выглядит angular тема INSPINIA
    export default angular.module('inspinia', [ ])
        .directive('...', ...)
        ...
        .name;
    Ответ написан
    Комментировать
  • Как влиться в тренд нынешней веб-разработки?

    @SuperOleg39ru
    Front-end разработчик
    Добрый день!

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

    flexbox, grid layout
    - это css из современных стандартов. Что бы знать, когда применять - вы должны знать версии старых браузеров, которые необходимо поддерживать на вашем проекте, и соответствующую поддержку этих стилей. Например, формировать элементы на flexbox на порядок удобнее, чем на float, но в IE9 вы уже использовать flexbox не можете.
    Немного о новинках в css тут.
    Поддержка браузерами тут.

    gulp, webpack и пр.
    - это инструменты, которые созданы для облегчения рутинных задач.
    Для верстки очень удобно использовать gulp - вы описываете задачи, такие как создание локального сервера, мгновенная перезагрузка страницы при изменениях, минификация ваших файлов, и прочее.
    Посмотрите отличный скринкаст от Ильи Кантора!

    препроцессоры
    - представьте, что вам чего-либо не хватает в html и css.
    Например, вы хотите разбивать большие html файлы на множество мелких, или вам нужно вставить в html динамическое содержание - для этого созданы html шаблонизаторы. Вы используете в работе синтаксис конкретного шаблонизатора, затем тот же gulp автоматически собирает эти файлы в обычный html, который понимает браузер.
    Аналогичная ситуация с css, препроцессоры позволяют разбивать файлы на мелкие, и собирать в один, доступны переменные и функции, и многое другое.
    Популярный шаблонизатор Pug
    Один из css-препроцессоров Stylus

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

    Ну и конечно статьи и подкасты:
    https://habrahabr.ru/
    jsraccoon.ru

    https://soundcloud.com/web-standards
    https://radiojs.ru/

    Конкретные статьи и ресурсы для новичка:

    frontender.info/a-baseline-for-front-end-developers
    frontender.info/a-guide-to-flexbox
    css-live.ru/articles-css/pravilnye-kontrolnye-toch...
    https://medium.com/russian/%D0%BE%D1%82-%D0%BD%D1%...
    https://medium.com/russian/%D0%BE%D1%82-%D0%BD%D1%...
    https://habrahabr.ru/company/zfort/blog/321214/
    https://frontendmasters.gitbooks.io/front-end-hand...

    Дерзайте!
    Ответ написан
    6 комментариев