• Что умеет выдающийся Frontend разработчик?

    Как человек, делающий и фронт и бэк говорю - бэк проще. На беке ты не паришься вообще с "особенностями" браузеров - у тебя их нет. У тебя вообще практически нет особенностей. У тебя нет необходимости держать в голове пяток яп и разметку(JS, TS, HTML+CSS, CoffeScript, LESS, SCSS) - у тебя есть твой PHP(PYTHON, JAVA) - только один яп. Отдельно идут инструменты сборки - gulp, grunt, webpack - ничего этого нет да и ненужно. Есть композер, который тянет зависимости и все. Тебе ненужно писать километровые конфиги, что бы собрать твое приложение. Линукс тоже знать совсем необязательно - все отлично можно делать и на винде. Ну или развернуть вагрант(докер). Код можно писать где угодно - а вертеться все будет на линуксе. А вот насчет тестирования бэк уделывает фронт на раз-два. Если ты полностью прогнал тестирование (phpunit, codeception) то ты на 99.999% уверен что все пойдет как надо. А вот со фронтом все не так. Ты физически не можешь протестировать ВСЕ браузеры.
    Но есть одно большое но. это конечно мое ИМХО, но всеже - фронт делать интереснее))
    P.S. Забыл упомянуть фреймворки и либы, которые мастхев знать на фронте - React, Vue, Angular и(только камнями не кидайте) jQuery.
    P.P.S Контрольный в голову. Сделали мы клиенту сайт на vue. Сдали, клиент доволен. А потом приходит и говорит - ребята, а на ie8 не работает. А мне очень надо, у меня крупный клиент(бюджетная организация), а у них у всех xp с ie8... (для справки - vue на ie8 не заведется).
    Ответ написан
    7 комментариев
  • Что умеет выдающийся Frontend разработчик?

    Vlad_IT
    @Vlad_IT
    Front-end разработчик
    linux

    Ну, это и фрондендеру нужно часто знать.
    ЯП

    Я сомневаюсь, что он сейчас сильно проще питона или php, JS очень довольно быстро развивается. А если взять в расчет TypeScript, то тем более.
    В целом, если его очень хорошо протестировать, то разработчик уверен на 99.9%

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

    Ну вот просто вообще не правда. Я также могу сказать, что в бэке учить нечего, изучил язык, изучил laravel, а sql даже учить не надо, используй ORM. Справедливое высказывание?

    Теперь в общем. Во front-end много чего можно изучить
    1) Верстка. Хороший front-end'ер должен хорошо верстать, вопреки частому мнению, что этим должен заниматься верстальщик. А верстка это отдельная широкая тема.
    2) SVG, для многих интерактивных приложений, очень полезно использовать svg, а там куча своих особенностей, хаков и.т.д.
    3) Webgl - довольно сложная тема, не знаю, есть ли в бэке что-то аналогичное по сложности.
    4) Canvas - не просто знать, а уметь рисовать то, что желаешь.
    5) Фрейморки, а там тебе для каждого свое разветвление.
    6) Асинхронное программирование, которое для многих php-шников кажется непонятным.
    7) ООП, т.к. в JS завезли классы, да и TypeScript часто нужно использовать.
    8) Шаблоны проектирования - не только для бэкенда.
    9) Webpack+gulp - ну это было.

    Буду дополнять, если что-то еще в голову придет.
    Ответ написан
    6 комментариев
  • Какой js фреймворк лучше выбрать для большого проекта?

    Xuxicheta
    @Xuxicheta Куратор тега Angular
    инженер
    Для крупного проекта Angular предпочтительнее, т.к. задает структуру всего проекта, плюс там типизация по дефолту. Но он сложнее в обучении.
    Для средних размеров vue будет проще.
    А react это сборная солянка, собрать можно что угодно, но поначалу вы будете собирать франкенштейнов, а может и потом тоже.
    Но их всей этой компании react наиболее распространен, это как пхп.
    Ответ написан
    4 комментария
  • Как проверить, что значения уникальны?

    0xD34F
    @0xD34F Куратор тега JavaScript
    const isAllUnique = (...args) => new Set(args).size === args.length;
    
    console.log(isAllUnique(69, 187, 666)); // true
    console.log(isAllUnique(2, 2, 3, 4)); // false
    console.log(isAllUnique(...'ABCDA')) // false
    Ответ написан
    2 комментария
  • Почему низкая скорость ssd на mac mini?

    @Fixid
    Да никак. Если бы вы почитали спецификации CT128M4SSD2, то заметили бы что там указана максимальная скорость записи в 175мб/с, а чтения 500мб/с.
    Вы купили дешевый SSD и получили соответствующую скорость. Докинув 1-2к можно было взять Intel и получить симметричные чтение/запись в 500мб/с
    Ответ написан
    1 комментарий
  • Актуален ли HAML?

    Olek1
    @Olek1
    pug
    Ответ написан
    Комментировать
  • Чему равен контекст в setTimeout?

    alexey-m-ukolov
    @alexey-m-ukolov Куратор тега JavaScript
    Исходя из определений, при вызове функции (даже внутри метода объекта) ее this равен глобальному объекту, в данном случае window.

    Исключением является как раз стрелочная функция, которая захватывает контекст не в момент вызова, а в момент объявления.
    Ответ написан
    1 комментарий
  • Чему равен контекст в setTimeout?

    rockon404
    @rockon404
    Frontend Developer
    Стрелочные функции не создают собственный контекст this, а используют this окружающего контекста, того места где они определены. В вашем случае это контекст вызова log. setTimeout просто вызывает колбек по истечению таймера, по аналогии с вызовом f.apply(null [, args]);
    Ответ написан
    1 комментарий
  • Что представляет из себя правильная декомпозиция javascript кода?

    search
    @search
    мама говорит что я особенный
    Выучите наизусть принципы SOLID. Серьёзно. Юнит тесты пойдут как по маслу. Еще разузнайте поподробнее про separation of concerns - это тоже про разбивку на модули. В общем-то если принимать решения руководствуясь правилами SOLID и постоянно думать о separation of concerns, то дела пойдут на поправку. Только не ждите скорого озарения, пожалуйста. Придётся целенаправленно попрактиковать это годик-другой. Сужу по личному опыту, но признаюсь честно, я слегка туповат. Может у вас есть шанс осилить это дело быстрее.

    Еще можно ознакомиться с тем что такое temporal coupling. Да и вообще coupling. Это про то как делать не нужно.

    Еще можно наизусть выучить мантру "low in coupling and high in cohesion".

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

    UPD

    Забыл сказать, попробуйте писать такой код, который не стыдно выложить в npm. Если у вас получилось написать модуль, который можно подключить к любому проекту через npm, то это хороший признак того что модуль был написан по всем правилам. Да и вобще open source сильно помогает в прокачке "модульного мышления".
    Ответ написан
    Комментировать
  • В чём принципиальный смысл PropTypes/TypeScript/Flow?

    @Interface
    Вы задаете очень общий вопрос, на который полно информации в интернете. Например вот статья: https://habr.com/post/326304/ .

    Вам не понятно в чем профит?
    - меньше ошибок при разработке
    - более адекватный intellisense
    - намного проще рефакторить
    - использовать сторонний код (тайпинги могут (но не должны) частично заменить доки)
    - генерация документации https://typedoc.org/
    - возможность вообще описать где-то сущности, а не опираться на их создание в коде
    и много всего еще.

    Или вы не согласны, что профит есть? Тогда аргументируйте с чем вы не согласны (относительно множества источников в интернете).
    Ответ написан
    1 комментарий
  • Почему функции не исполняется в порядке вызова?

    Stalker_RED
    @Stalker_RED
    Не бардак, а асинхронное выполнение кода, специально чтобы браузер не "зависал" пока ждет ответ от сервера.
    Вы конечно можете переписать все в синхронном стиле, в jq для этого настройка есть (async: false) . Но лучше почитать учебник и понять, а не тормозить.
    Ответ написан
    Комментировать
  • Как вывести переменную без кавычек в js?

    Stalker_RED
    @Stalker_RED
    Туда нужно передавть объект Date или число (timestamp), а не строку.
    Ответ написан
    Комментировать
  • Как сделать 2 одинаковых блока?

    Acaweb
    @Acaweb
    Начинающий Вэб-разработчик
    Вот
    <div class='flex'>
    <div class='right_intro'>1</div>
    <div class='left_intro'>2</div>
      </div>

    .flex {
    align-items: stretch;
    display: -webkit-flex;
    display: flex; }

    .right_intro {
    width: 54%;
    font-family: 'Montserrat', sans-serif;
    font-size: 16px;
    font-weight: 400;
    color: white;
    padding-top: 40px;
    padding-left: 15px;
    position: relative;
    background: blue;
    }

    .left_intro {
    width: 45%;
    background: red;
    }
    Ответ написан
    Комментировать
  • Можно ли быть веб дизайнером и программистом одновременно?

    Vlad_IT
    @Vlad_IT
    Front-end разработчик
    php, js, css, html, cms 1c bitrix, wordpress

    Эта область уже как минимум на три делится.

    Это
    знаю php на среднем уровне

    не коллерирует с этим
    прохожу курс по php от qsoft в skillbox

    Ибо курсов выше новичка не существуют. По крайней мере в skillbox и geekbrains.

    Каждая специализация требует к себе полного внимания. Если будете пытаться изучать две специализации, вероятнее всего, будете максимум мидлом на обоих из них.
    Другие специализации полезно учить, чтобы расширять кругозор. Но хорошо выучить вряд ли получится.
    Ответ написан
    Комментировать
  • Что за библиотека tether.min.js в bootstrap?

    @SergeiB
    Это библиотека для позиционирования. Команда Bootstrap использовала её раньше для позиционирования выпадающих меню (dropdowns), подсказок (tooltips) и всплывающих окон (popovers). Сейчас вместо данной библиотеки используется её более продвинутый аналог - popper.js. Если от него отказаться, перечисленные выше компоненты перестанут работать. В Bootstrap последних версий popper.js включили по умолчанию в файл bootstrap.bundle.js. С другой стороны, если в проекте вы не используете подсказки и всплывающие окна, то можно обойтись и вовсе без popper.js, поскольку выпадающее меню в навигационной панели (navbar) может работать без этого плагина.
    Ответ написан
    Комментировать
  • Как оптимизировать изображения?

    @kupurim
    Вот сервис по сжатию изображений - https://tinypng.com
    Если исходное изображение больше блока, то нужно ресайзить (к примеру у вас картинка 1000x1000, но блок с изображением имеет размеры 200х200).
    А вообще если не ошибаюсь, гугл должен давать уже сжатые картинки (по крайней мере в старой версии так было).
    Ответ написан
    5 комментариев