• Как отлаживать javascript без console.log?

    psixodyb
    @psixodyb
    Хочу, чтобы мой сын стал полубогом Frontend'a
    Видео
    Мне оно помогло научиться дебажить правильно.
    Ответ написан
    Комментировать
  • Распараллеливание процесса верстки между верстальщиками?

    paulradzkov
    @paulradzkov
    Дизайнер, верстальщик, начальник отдела UI
    Распределить работу покомпонентно.
    Любые макеты можно разобрать на следующие компоненты и этапы.

    0. Создается общий репозиторий для проекта.
    Все работы ведутся сразу в нем. Чем чаще делаются коммиты, тем раньше вылезут и будут исправлены проблемы. У каждого компонента есть свой css/less/sass файл, чтобы легче управлять кодом и избегать merge-конфликтов.

    1. Основные строительные блоки:
    - Типографика и стили для контента (таблицы, цитаты)
    - Элементы форм + стили валидации
    - Декоративная графика (иконки, плашки)
    - Модульная сетка (сразу респонсив)

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

    2. Повторяющиеся компоненты:
    - Навигация
    - Ленты новостей, событий, блогпостов, результатов поиска, чего угодно
    - Типовые формы (логин, регистрация, поиск)
    - Табы
    - Слайдеры
    - и так далее

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

    После этих двух этапов у команды готов UI-kit проекта.

    3. Предварительная сборка всех шаблонов страниц с реальным контентом

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

    4. Редкие кастомные компоненты и модификации

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

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

    Обо всем этом говорят Atomic Design, ITCSS и многие другие методологии.
    Ответ написан
    Комментировать
  • Есть аналоги Wordpress но попроще?

    miraage
    @miraage
    Старый прогер
    OctoberCMS посмотрите.
    Ответ написан
    Комментировать
  • Как тестировать вёрстку автоматически?

    dimasmagadan
    @dimasmagadan
    есть вот такая штука
    galenframework.com
    но я ее не осилил: для моих задач слишком навороченное. если будут по ней вопросы, мне лучше не задавать.

    вот тут про них обзорная статья, если документацию читать долго
    https://www.smashingmagazine.com/2015/04/visual-te...
    Ответ написан
    Комментировать
  • Какие есть обучающие ресурсы по фронтенд разработке?

    edward04
    @edward04
    Начинающий ninja frontend
    https://www.youtube.com/channel/UC7enHM_oJRYJOnyJr...
    https://www.youtube.com/channel/UCZeU17nbVfzczAkJV...
    https://www.youtube.com/channel/UCHHw70vvbfyM6xJQo...
    https://www.youtube.com/channel/UCIIt69f5D44s2cdb9...
    tohtml.it/post/74511047203/markup-process

    По нему скучаю искренне и иногда сижу на подоконнику с лате и смотрю на капли дождя, стекающие по стеклу:
    https://www.youtube.com/channel/UCdnFX7mzgup9moXG2...
    Это для общего развития:

    https://stepic.org/course/%D0%90%D0%BD%D0%B0%D0%BB...

    Похожий вопрос:
    Какие задачи нужно уметь выполнять на JS начинающему?

    Ваша библия:
    https://developer.mozilla.org
    Можно докинуть еще:
    webref.ru
    htmlbook.ru
    Просто случайная ссыль
    https://docs.google.com/document/d/1kehaJKKRo7zxYp...
    Еще одна:
    https://github.com/ihorzenich/html5checklist
    Еще какая то штука
    https://github.com/dypsilon/frontend-dev-bookmarks
    Лучшие практики тостеровцев
    Как вы начинаете вёрстку сайта?
    Инструменты
    fredsarmento.me/frontend-tools

    После пары часов выпускания пара из ушей, включить на всю громкость и хоть как то отвлечься от этой жизни
    https://www.youtube.com/channel/UCY0C6A3t3RTUN3BB6...

    На freecodecamp.com неплохо алгоритмы можно потренить

    Ну и конечно
    learn.javascript.ru

    PS
    еще это
    Какие ресурсы с новостями по web-разработки вы знаете?

    PSPS
    Не отвечаю за качество контента под ссылками, может кое что уже outdated.

    https://vk.com/video79753760_171233585

    Удачи, брат
    Ответ написан
    4 комментария
  • Как соединить Angular и Node.js( Express)?

    wolf47
    @wolf47
    Айтишник, немного програмирую на JS
    Я начал использовать mean.io. Прикольное решение, mean означает mongo express angular nodejs.

    Основные вещи уже реализованы в ядре, вам только остается сделать свой пакет
    Ответ написан
    4 комментария
  • Почему symfony такой медленный?

    @jaxel
    Потому-что сервак надо нормально настраивать. Для голой симфони норма - 0.1 сек. На php7 - 70 мс.

    В первую очередь включить opcache и перейти на nginx
    Ответ написан
    Комментировать
  • Как правильно развернуть окружение через Docker?

    nazarpc
    @nazarpc
    Open Source enthusiast
    Всё отдельно - Nginx, php-fpm, Node.js. Каждый контейнер имеет свой публичный API, в данном случае это порт, на котором он слушает. Потом контейнеры общаются между собой, к примеру, Nginx перенаправляет запросы на php-fpm или Node.js если нужно.
    Ответ написан
    Комментировать
  • Как вы храните закладки на страницы скриптов, статей, программ и прочих интересностей?

    @DP-Studio
    20 лет веб-разработки
    Будете ржать, но я для этого поставил отдельный вордпресс на хостинге и во всех браузерах которыми пользуюсь вывел на панель кнопку "опубликовать" (есть такая фишка у вордпресса). Удобно, правда -))) Не теряется, доступно везде из любого браузера, можно свои комментарии при публикации добавить, поиск внутренний вордпрессовский если что работает -)))
    Ответ написан
    6 комментариев
  • С чего начать учить JavaScript в контексте IoT, работы с данными и Node.js, а не фронтендов веб-приложений?

    dimonchik2013
    @dimonchik2013
    non progredi est regredi
    ну Фланаган - классика же, какая разница, в каком контексте, JS есть JS,

    по Node на русском книг 5 есть, две точно достойны внимания
    8bf49c850b5a4f7c9177aeba98fa05b5.jpgbe4af8e66cc74ee0a19c7ffba9d33522.jpg
    Ответ написан
    2 комментария
  • Попросили проверить код, на что смотреть нужно?

    index0h
    @index0h
    PHP, Golang. https://github.com/index0h
    Смотря зачем)). Я когда делаю Code Review критерии следующие:

    * Безопасность:
    - Каждый аргумент метода простого типа должен проверяться на тип в случае его проксирования и на граничные значения в случае обработки. Чуть что не так - бросается исключение. Если метод с кучкой аргументов на 80% состоит из поверки из аргументов - это вполне норм))
    - Никаких trigger_error, только исключения.
    - Исключения ДОЛЖНЫ быть человеко-понятны, всякие "Something went wrong" можно отдавать пользователю, но в лог должно попасть исключение со стектрейсом и человеко-понятным описанием, что же там пошло не так.
    - Каждый аргумент (объект) метода должен быть с тайпхинтингом на этот его класс, или интерфейс.
    - За eval как правило шлю на **й.
    - @ допускается только в безвыходных ситуациях, например проверка json_last_error.
    - Перед работой с БД - обязательная проверка данных.
    - Никаких == и !=. Со swtich - единственное исключение, по ситуации.
    - Если метод возвращает не только bool, а еще что-то - жесткая проверка с ===, или !== обязательна.
    - Никаких условий с присваиваниями внутри. while($row = ...) - тоже идет лесом.
    - Магические геттеры/сеттеры разрешаются только в безвыходных ситуациях, в остальном - запрещены.
    - Конкатенации в sql - только в безвыходных ситуациях.
    - Параметры в sql - ТОЛЬКО через плейсхолдеры.
    - Никаких глобальных переменных.
    - Даты в виде строки разрешаются только в шаблонах и в БД, в пхп коде сразу преобразуется в \DateTimeImmutable (в безвыходных ситуациях разрешено \DateTime)
    - Конечно зависит от проекта, но как приавло должно быть всего две точки входа: index.php для web и console(или как-то по другому назваться) - для консоли.

    * Кодстайл PSR-2 + PSR-5 как минимум, + еще куча более жестких требований (для начала все то что в PSR помечено как SHOULD - становится MUST)
    - В PhpStorm ни одна строчка не должна подсвечиваться (исключением является typo ошибки, например словарик не знает какой-то из аббревиатур, принятых в вашем проекте). При этом разрешается использовать /** @noinspection *** */ для безвыходных ситуаций.
    - Если кто-то говорит, что пишет в другом редакторе и у него не подсвечивается, на эти отговорки кладется ВОТ ТАКЕЕЕНЫЙ мужской половой **й и отправляется на доработку)).

    * Организация кода:
    - Никаких глобальных функций.
    - Классы без неймспейса разрешаются только в исключительно безвыходных ситуациях.

    * Тестируемость (в смысле простота тестирования) кода должна быть высокая.
    - Покрытие кода обязательно для всех возможных кейсов использования каждого публичного метода с моками зависимостей.

    * Принципы MVC:
    - Никаких обработок пользовательского ввода в моделях, от слова совсем.
    - Никаких ***ть запросов в БД из шаблонов.
    - Никаких верстки/js/css/sql-ин в контроллерах.
    - В моделях НИКАКОЙ МАГИИ, только приватные свойства + геттеры с сеттерами.
    - В моделях разрешено использовать метод save(при наличии такого разумеется) только в исключительных ситуациях. Во всех остальных - либо insert, либо update.

    * Принципы SOLD:
    - Никаких божественных объектов умеющих во все.
    - Если метод для внутреннего пользования - private, никаких public.
    - Статические методы разрешаются только в случае безвыходности.

    * Принцип DRY разрешено нарушать в случаях:
    - Явного разделения обязанностей
    - В тестах (каждый тест должен быть независимым, на сколько это возможно)

    * Работа с БД:
    - Запрос в цикле должен быть РЕАЛЬНО обоснован.
    - За ORDER BY RAND() - шлю на***й.
    - Поиск не по ключам (конечно если таблица НЕ на 5 строк) запрещен.
    - Поиск без LIMIT (опять же если таблица НЕ на 5 строк) запрещен.
    - SELECT * - запрещен.
    - Денормализация БД должна быть обоснована.
    - MyISAM не используется (так уж)) )
    - Множественные операции обязательно в транзакции, с откатом если чо пошло не так.
    - БД не должна содержать бизнес логики, только данные в целостном виде.
    - Не должно быть нецелесообразного дерганья БД там, где без этого можно обойтись.

    * Кэш должен очищаться по двум условиям (не по одному из, а именно по двум):
    - Время.
    - Протухание по бизнес логике.
    Разрешается по только времени в безвыходных ситуациях, но тогда время - короткий период.
    - При расчете ключей кэша должна использоваться переменная из конфигурации приложения (на случай обновлений кэш сбрасывается кодом, а не флашем кэш-сервера). В случае использования множества серверов - это очень удобный и гибкий инструмент при диплое.

    * О людях:
    - "Я привык писать так и буду дальше" - не вопрос, ревью пройдешь только когда поменяешь свое мнение.
    - "Я пишу в vim-е и мне так удобно" - здорово, код консолью я тоже в нем пишу)) но есть требования к коду, если в них не сможешь - не пройдешь ревью.
    - "Я скопировал этот страшный метод и поменял 2 строчки" - это конечно замечательно, но по блейму автор всего этого метода ты, так что давай без говняшек, хорошо?
    - "Оно же работает!" - вот эта фраза переводится примерно так: "да, я понимаю, что пишу полную хрень, но не могу писать нормально потому, что руки из жо", я правильно тебя понял?))
    - "У меня все работает!" - рад за тебя, а как на счет продакшна?
    - "Там все просто" - не используй слово "просто", от слова "совсем". Вот тебе кусок кода (первого попавшегося с сложной бизнес логикой), где там ошибка (не важно есть она, или нет)? Ты смотришь его уже 2 минуты, в чем проблема, там же все "просто"))

    * Всякое:
    ActiveRecord (это я вам как в прошлом фанат Yii говорю) - полное говно, примите за исходную. По факту у вас бесконтрольно по проекту гуляют модельки с подключением к БД. Не раз натыкался на то, что в тех же шаблонах вызывают save, или update (за такое надо сжигать).
    То, что используется Laravel - это печально((. Что бы выполнить требования приведенные выше, приходится "воевать" с фреймворком.

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

    UPD

    Формализировал данные критерии по ссылочке: https://github.com/index0h/php-conventions
    Ответ написан
    55 комментариев
  • Хорошая задача для укрепления знаний и практики в JavaScript?

    isqua
    @isqua
    Научу HTML, CSS, JS, BEM и Git
    Плюсую codewars.com, там интересные задачи на логику, алгоритмы и тонкости языка. Но это всё-таки не продуктовые задачи. Можно их много решать, но так и не научиться делать то, что обычно нужно на работе. Они развивают другое.

    Обычно все пишут туду-приложения, но это уже скучно и затёрто :) Я рекомендую попробовать написать аудиоплеер. Сайт, на котором можно послушать музыку. Можно даже авторизовывать пользователя через last.fm и например рекомендовать ему музыку на основе его предпочтений, или даже сразу включать её (подтягивая треки из вконтакте).
    Ответ написан
    1 комментарий
  • Какие есть практические курсы\уроки по html5 + css3 + javascript?

    @chirskiy_mixail
    Очень давно занимаюсь версткой, имею огромный опыт
    https://www.htmlacademy.ru/ те, что за подписку платные, очень хорошо обучают в игровом стиле, js к сожалению только в 2 посл. где keksogram, а HTML + CSS очень много, особенно animation
    Ответ написан
    Комментировать
  • Как эффективно изучать JS?

    @Scribblex
    Я рекомендую изучать JS примерно таким путем:
    – чтение learn.javascript.ru (чтение и, естественно, практика);
    – параллельное прохождение модулей по JS на codeschool;
    – держите перед глазами актуальные вопросы для собеседования JS-разработчика (habrahabr.ru/post/239065/), стараясь на них ответить;
    – читайте хороших авторов: Дуглас Крокфорд, Джон Рейзиг, Стоян Стефанов;
    – найдите на GitHub людей, которые согласятся ревьюить Ваш код, я серьезно!

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

    Желаю успеха!
    Ответ написан
    10 комментариев
  • Как вы выбираете что нужно изучить?

    IonDen
    @IonDen Куратор тега IT-образование
    JavaScript developer. IonDen.com
    Есть база: EcmaScript 5 и CSS(3) - надо знать
    Есть будущее: EcmaScript 2015 и CSS3(4)+ - надо поглядывать и быть в курсе
    Есть популярные расширения CSS: LESS/SASS/Stylus и т.д. - выбрать что-то одно и изучать использовать.
    Популярные расширения JS: EcmaScript 2015 on Babel, TypeScript, CoffeScript и т.д. - я бы выбрал EcmaScript, так как 2 зайцев одним выстрелом.
    Есть известные фреймворки CSS: Bootstrap - приятно знать
    Есть известные JS фреймворки: jQuery - обязательно знать, SPA-фремворки/библиотеки (Angular, Ember, React, Backbone и т.д.) - обязательно начать что-то изучать и использовать.
    Так же не стоит забывать про системы сборки: Grunt/Gulp/Webpack и т.д. обязательно начать изучать что-то из этого.
    Плюс всегда стоит помнить о работе в команде (даже если вы сейчас работаете один): это Git и GitHub/Bitbucket - тоже обязательно изучать.
    + я не затронул кучу других вопросов: оптимизация, алогоритмы, сетевые протоколы, особенности работы браузеров и т.д.
    + для общего развития полезно изучать еще какой-то язык, помимо JS

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

    @maxyc_webber
    Web-программист
    Просто что интересно то и изучаешь. У тебя еще мало опыта, потому делай так. А дальше жизнь сама начнет подсказывать, что нужно изучить
    Выбери какую нить технологию и изучай ее. в процессе изучения поймешь, что не понимаешь как работает, например, mysql. Начинаешь с ней разбираться параллельно с основным
    короче само все прийдет )
    Ответ написан
    2 комментария
  • Как сделать Wordpress очень быстрым?

    @eskrano
    копать в штакетник и немного в сжатие исходного кода, а если глубже то, выбросить вордпресс к чертям .
    Ответ написан
    7 комментариев
  • Стоит ли работать программистом?

    Логика проста:

    1) Самое главное - есть ли интерес к данной работе, любили ли в школе решать задачи по физике/математике/информатике? Именно любили, а не просто решали. Лично я любил сидеть за формулами, графиками, интересными задачами, в то время как другие гуляли и пили пиво

    2) Отсюда вытекает - чувствуете ли в себе такие качества как любознательность, усидчивость и эммм... занудство, дотошность. Если нет - то эта работа не для Вас. Поскольку, чтобы выловить проблемный баг нужно именно сидеть на попе ровно и спокойно выискивать его часами, при этом не напрягаясь и не нервничая.

    3) Про дедлайны - не везде критично. Лично я делаю свою работу качественно, пишу красивый код, а баги чужого кода готов выискивать и править часами. Поэтому мне прощают опоздания, и другим в таких случаях тоже как правило.

    4) Перспективы и удобное рабочее место - тут уже всё будет зависеть от тебя. Есть две крайности:

    1. Можно устроиться в чмошную айти контору, где будут убогие задачи, убогое рабочее место со старым компом и маленьким монитором, где рядом будут сидеть быдло-программисты воняющие дешёвыми сигами (дымом) и бегать на перекур каждые 5 минут да и просто башорг читать тупить да байки травить как они "весело бухали на выходных" невольно намекая а ты такой задрот чем занимался интересным?
    З/п 20-100 000р в месяц

    2. А можно устроиться в компанию аля гугл, где печеньки и фрукты на каждом шагу, а люди, работающие там "какают радугой" (других туда не берут).
    З/п от 3000$ в месяц где-то

    Конечно можно найти золотую середину, но лично я решил, что допустим раз уж мне не суждено работать в местах аналогичных пункту 2, то я буду работать на фрилансе, сам организовывать себе рабочее место, покупать технику какую хочу, есть когда и что захочу, то есть такой маленький гугл в отдельно взятой квартире без быдла и прочих башоргов/ сигарет.
    Ответ написан
    Комментировать
  • Стоит ли работать программистом?

    copist
    @copist
    Empower people to give
    Я тут всем пролайкал ответы. Отвечу и сам.

    Денежный вопрос стоял остро, первые несколько лет, пока я сортировки пузырьками писал сам и фантазировал на тему своего мегакрутого фреймворка, который на поверку был 10% от Yii или Zend Framework.

    Затем мега скачок. И в стартапах поработал, и в интерпрайзе, и на фрилансе. Почему-то всё стало легко. И дедлайны легко переживаю. Постепенно выбрал себе специализацию: веб-архитектор и backend-разработчик.

    Самообразование идёт без проблем. За технологиями, в общем-то слежу, но не рвусь знать вообще всё. Тут прочитал книгу, тут статью, там попробовал покодить, здесь знаю у кого спросить. Хорошие умные ребята встречались, многому научили, всегда помогут. В общем, я в тренде и я не один, если что - не закопаюсь.

    Знаю 15+ языков программирования, в разной степени.

    Что я всегда за собой замечал - всё в IT всегда было в удовольствие. И сервера ставил, и интернет-магазины делал с интересом, и веб-порталы кодил.

    Ответом на часть твоих вопросов будет следующее:
    * Чтобы нравилась работа, делай то что нравится тебе
    * Чтобы стОило, делай то, что нужно другим
    * Когда первое и второе совпадут, ты будешь финансово обеспечен и морально удовлетворён

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