• В каких случаях использовать PureComponent?

    maxfarseer
    @maxfarseer
    https://maxpfrontend.ru, обучаю реакту и компании
    Годная статья с хабра (плюс комментарии)
    Ответ написан
    1 комментарий
  • Рефакторнуть код в ООП?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Стоит задача превратить это всё в ООП


    давайте не так, не в ООП а просто в читабельный и поддерживаемый код.

    - избавьтесь от дублирования кода. Вынесите для начала все действия в отдельные функции. Например:

    $("#addComment").css("display", "block");

    и подобные можно заменить как

    // функции хэлперы для устранения дублирования
    function hide(selector) {
       return function () {
            $(selector).css("display", "none");
       };
    }
    function show(selector) {
       return function () {
            $(selector).css("display", "block");
       };
    }
    
    // специализированные хэлперы с говорящими названиями
    var showCommentsForm = show("#form");
    var hideCommentsForm = hide("#form");
    var showAddCommentButton = show("#addComent");
    var hideAddCommentButton = hide("addComment");


    идем дальше...

    var counter = parseInt($("#counter span").html())+1;
              $("#counter span").html(counter);


    Тут явно стоит использовать data-*. Или любой другой способ подсчета. Знать бы еще что считается, судя по всему вам надо посчитать количество сообщений. В этом случае вообще так себе идея так делать.

    $(document).on("click", "input[name='send']", function (){


    лучше случать сабмит формы. Обязательно устраните "глобальный поиск" по селекторам.

    Ну и это не говоря о том что инлайн стили, селекторы на айдишках, шаблоны с дублированием - это путь к боли.
    Ответ написан
    8 комментариев
  • Как правильно разделить разработку веб-проекта на юзер-стори?

    darqsat
    @darqsat
    PM
    Как всегда и везде, люди не до конца изучили agile/scrum и что то постят..

    Ни где четко не прописано что заказчик должен быть вовлечен в процесс.

    В первую очередь, SCRUM это управленческий фреймворк который позволяет упорядочить процессы, наладить коммуникации и поставлять инкременты итеративно.

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

    Если мы говорим о настоящем Agile Scrum, то собираем команду, изолируем её от всего кроме нашего проекта и дальше по методологии:

    (тут есть только 2 простейших процесса где нужен заказчик на 1-2 часа в 2 недели. типичная ошибка, звать его везде как этому учат на дурацких тренингах за 1000$)

    1. Собираем с заказчика хотелки и пихаем в беклог
    2. Собираемся и грумим беклог дробя эпики на мелкие стори или еще мельче эпики
    3. Делаем спринт пленинг и дробим беклог на задачи, поочередно оценивая всё
    4. Согласовываем инкремент и какой Definition of Done
    5. Работаем итерацию попутно проводя дейли статус митинги для синхронизации статусов и раннего выявления проблем
    6. Демонстрируем в конце что получилось, собираем от заказчика фидбек и форматируем беклог, возвращая в него то что не готово и все что не влезло в спринт
    7. Делаем ретроспективу и убеждаемся что копаем в нужном направлении и не делаем ничего лишнего либо добавляем в процессы работы то что стоило бы делать
    8. Возвращаемся к пункту 1

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

    Когда вы начинаете оценивать стоимость и сроки проекта под Agile/Scrum вы наступаете на теже грабли. Если заказчик не знает на что он идет то это не Agile.

    Наши клиенты уже с шишками и готовы платить деньги не представляя стоимости проекта в целом и тем более его сроков. С большего это стартапы. На опыте запуски и провалы хороших проектов. Один из них уже 4й год на рынке и поднял 20 лямов инвестиций в США и сейчас является одним из успешных интернет магазинов в США.

    Изначально на кармане у заказчика было денег понты и работало 2 человека на проект - бекенд и айос и копали-копали пока не выросли до постоянной команды в 5 человек (бекенд, фронтенд, айос, андроид, qa) которые непрерывно работают на проекте и копают спринтами один за другим. И ни кто никого не гонит. Заказчик купается в бабле
    Ответ написан
    Комментировать
  • На сколько реально выучить SWIFT если никогда не учил программирование?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    comics1.jpg
    Ответ написан
    Комментировать
  • Как сделать так, чтобы страница не зумировалась на мобильных устройствах?

    Petroveg
    @Petroveg
    Миром правят маленькие с#@&ки
    Описание есть в спецификации.
    Можно посмотреть и здесь.
    <meta name="viewport" content="user-scalable=0">
    Ответ написан
    Комментировать
  • Какой должен быть порядок следования @media queris при формате "Сначала десктоп"?

    Petroveg
    @Petroveg
    Миром правят маленькие с#@&ки
    Если кто-то путает окно браузера с областью просмотра, да ещё к min-width и min-width экран монитора приплетает — у него не только лыжи не едут, а в голове смазки маловато:)

    1. Обрабатываются все media queries. От первого и до последнего.
    2. Если выполняются условия в нескольких @media, то для конфликтующих правил вступает в силу обычный расчёт каскада (читай приоритет правил).

    Относительно синтаксиса неплохо бы почитать спецификацию, да и вот хорошее описание.
    Ответ написан
    Комментировать
  • Какой должен быть порядок следования @media queris при формате "Сначала десктоп"?

    delphinpro
    @delphinpro Куратор тега CSS
    frontend developer
    Вы правильно поняли. При написании Desktop first - стили пишутся от большего к меньшему.

    media (max-width: 900px){} - правило учитывает только ширину вьюпорта на любом отображающем устройстве.
    media screen and (max-width: 900px){} - правило распространяется только на экраны монитора с соответствующим вьюпортом
    media only screen and (max-width: 900px){} - аналогично предыдущему
    Помимо экранов (screen) могут быть и другие устройства представления информации - print, projection, tv и т.д.
    Ответ написан
    4 комментария
  • Разница между background: url('...') и background: url(...)?

    Petroveg
    @Petroveg
    Миром правят маленькие с#@&ки
    Если в значении функционала url() не присутствуют пробельные символы (пробелы, табуляция, переносы строк), кавычки и скобки, то разницы нет никакой.
    Пример — ссылка, data:uri в кодировке base64.

    Update: После обсуждения с Алексей Уколов внёс коррекцию

    Если же в значении могут появиться пробельные символы, кавычки и скобки, то при отсутствии обрамляющих кавычек их нужно экранировать (каждый символ).
    Если же обрамляющие кавычки есть, то экранировать нужно только внутренние кавычки в том случае, если они аналогичны обрамляющим. Если же обрамляющие и внутренние кавычки разные (например, внутри двойные, снаружи одинарные и наоборот), то никаких дополнительных действий не требуется.
    Пример — data:uri в кодировке utf8.

    Спецификация:
    Parentheses, whitespace characters, single quotes (') and double quotes (") appearing in a URL must be escaped with a backslash so that the resulting value is a valid URL token

    Пример jsfiddle.net/petroveg/cexbhq4e/6

    8192c6b0c21d43afa0b9b164af297655.png
    Ответ написан
    Комментировать
  • Как натянуть свой шаблон на Wordpress движок?

    Прочитайте в WP Codex про создание темы для WP и после уже задайте на Тостере, если такие появятся.
    По-русски: Создание тем
    In English: Theme Development

    Если есть желание сделать сразу хорошо попросите кого-то с Тостера курировать создание этой темы ;)
    Ответ написан
    Комментировать
  • Как натянуть свой шаблон на Wordpress движок?

    @LMI
    Лучше всего посмотреть видеоуроки по адаптации чистого HTML/CSS для Wordpress. Вот сам учился на этом уроке: https://www.youtube.com/playlist?list=PLzi5JvpYf_h...

    UPD: текстовая статья на Хабре habrahabr.ru/post/228523
    Ответ написан
    2 комментария
  • Как в gulp склеить bower компоненты в один файл?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Итак, нам понадобятся модули main-bower-files, gulp-concat, gulp-filter и возможно gulp-order что бы сохранить порядок js файлов.

    var
      gulp = require('gulp'),
      concat = require('gulp-concat'),
      filter = require('gulp-filter'),
      order = require('gulp-order'),
      mainBowerFiles = require('main-bower-files')
    ;
    
    gulp.task('scripts:vendor', function () {
      var vendors = mainBowerFiles();
       
      return gulp.src(vendors)
         .pipe(filter('**.js'))
         .pipe(order(vendors))
         .pipe(concat('vendor.js'))
         .pipe(gulp.dest('dist/'))
      ;
    })


    И примерно так же со стилями. Если вас будет смущать дублирование кода - можете воспользоваться lazy-pipe модулем и сделать все вообще няшненько.
    Ответ написан
    4 комментария
  • Какую музыку во время работы предпочитаете?

    Petroveg
    @Petroveg
    Миром правят маленькие с#@&ки
    Чилл, лаунж, эмбиент, пси, транс, даунтемпо — чаще всего, поскольку есть варианты без вокала и не отвлекают.
    Трип, инди, нью эйдж, альт рок, пост рок, индастриал (это редко) — тут без вокала преимущественно не обойтись, но иногда помогает.
    Ответ написан
    Комментировать
  • Можно ли вставить картинки(base) в css?

    Petroveg
    @Petroveg
    Миром правят маленькие с#@&ки
    Абсолютно везде, где может использоваться URI. например, в правилах
    background-image
    content
    list-style-image

    Важно только помнить про заголовки кодируемого контента
    PNG image/png
    GIF image/gif
    JPG image/jpeg
    SVG image/svg+xml (не забывать в кодируемом контенте указывать пространство имён)

    А так схема одинакова:

    url('data:заголовок;base64,закодированный_контент')


    Примечание
    Можно и другое кодирование указывать. Например, SVG пишем прямо как есть (только с другими кавычками и цветами в rgb() или в rgba()) и указываем utf8.

    url('image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg"><circle cx="5" cy="5" r="5" fill="rgb(0,0,0)"/></svg>')

    К сожалению, в IE вставка SVG напрямую таким образом не работает... Поэтому приходится или в HTML напрямую вставлять, или кодировать в base64. При кодировании тип записи цвета не имеет значения — можно и в HEX.
    Ответ написан
    Комментировать
  • Как понять регулярные выражения?

    Petroveg
    @Petroveg
    Миром правят маленькие с#@&ки
    Книжки лучше бы прочли.
    Джеффри Фридл Регулярные выражения
    Ян Гойвертс, С. Левитан Регулярные выражения. Сборник рецептов
    Ответ написан
    Комментировать
  • Как реализовать данное вращение?

    Petroveg
    @Petroveg
    Миром правят маленькие с#@&ки
    Да вроде несложная — вращение вокруг центра, чьи координаты движутся по круговой орбите.
    Если делать матрицами, то вроде как умножать нужно в порядке смещение-вращение.

    А если реализовывать подручными средствами, то я предпочту двигать систему координат jsfiddle.net/4e4xtLng/1
    Ответ написан
    Комментировать
  • Как вы верстаете Wordpress темы?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    Использование _s - очень правильная идея. Верстка сначала в html - очень неправильная, разве что есть уже свой собственный базовый код, основанный на WordPress. Почему? Потому что WordPress генерит везде кучу своих CSS-классов, и правильно использовать именно их.

    Процесс такой:
    - идея, эскизы на бумаге, продумывание особенностей, модульные сетки, прототип
    - дизайн в фотошопе
    - сборка функциональной части шаблона - подключение нужных плагинов, вывод метаполей, весь кастомный вывод - в общем, необходимо вывести в шаблон (_s) весь реальный контент (или приближенный к реальному), а не верстать с Lorem Ipsum
    - а вот теперь самое интересное - SCSS, mobile first + javascript. В общем, чистый frontend.
    Ответ написан
    4 комментария
  • Как сделать блок с прокруткой, но не overflow?

    Petroveg
    @Petroveg
    Миром правят маленькие с#@&ки
    После разных библиотек остановился на iScroll.
    Ответ написан
    Комментировать
  • Как сделать такое адаптивное меню?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    media queries
    Ответ написан
    Комментировать
  • Что нужно знать помимо javascript для фриланса (в частности на oDesk)?

    Petroveg
    @Petroveg
    Миром правят маленькие с#@&ки
    Имеет ли смысл рассчитывать на работу js-специалиста (т.е. в случае если навыки js используются значительно интенсивнее других)?

    Безусловно

    Возможно ли это на фрилансе?

    Безусловно

    Что лучше учить в связке с js?

    Учить CSS, HTML, SVG, фреймворки, и разного рода интерпретаторы (HAML etc.), препроцессоры (SASS, Stylus etc.).

    Имея базовые знания по CSS, HTML стоит ли нацелится на них и периодически использовать js?

    Без этих знаний никуда.
    Пример: анимация в CSS быстрее, используем её. Для старья используем таймеры.
    Пример: для хорошего соответсвия UX используем элементы формы, из состояния, события.

    Или лучшем будет изучение frontend фреймворков? Необходимы ли при этом будет в дальнейшем много верстать? Насколько перспективна эта сфера деятельности?

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

    Если использовать github-аккаунт как часть портфолио, что наиболее привлекательно будет в нем для работодателя?

    Примеры решения конкретных задач. А разве в гит можно выложить что-то неконкретное?))

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

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

    Возможно ли получить помощь\поддержку в начале пути фрилансера от человека активно этим занимающемся?

    Возможно. Но на условиях подмастерья. Будьте готовы к этому.

    Ну и напоследок чисто-субъективные вопросы на которые я не жду аргументированного ответа, а просто совета, основанного на жизненном опыте:
    Стоит ли нацеливаться на javascript или лучше менять акцент (или вовсе бросать js) на другой язык?

    Ваще непонятный вопрос. Если вы категорически не согласны с концепцией JS — бегите прочь от него. Если всё понятно — зачем спрашивать?

    Стоит ли уповать на фриланс или лучше искать обычную работу?

    Фриланс и есть обычная работа. Вопрос абсолютно не связан с программированием или языком программирования.
    Ответ написан
    2 комментария