• Стоит ли переходить на React.PureComponent по-умолчанию?

    PQR
    @PQR
    React.PureComponent реализует метод shouldComponentUpdate таким образом, что он делает поверхностное сравнение props и state (не глубокое). Вот собственно код:
    https://github.com/facebook/react/blob/c8fbdac2271...
    shouldUpdate =
                !shallowEqual(prevProps, nextProps) ||
                !shallowEqual(inst.state, nextState);


    Что такое shallowEqual? Это по сути сравнение оператором === каждого элемента из prevProps с каждым элементом из nextProps. На всякий случай дам ссылку на реализацию для полного понимания: https://github.com/facebook/react/blob/6963ea4bfcd...

    В итоге всё зависит от структуры ваших props. Если в props вы передаёте объекты которые иногда мутируются, т.е. по ссылке они равны ===, но внутри какие-то данные поменялись (что само по себе выглядит странно в экосистеме redux + reselect, но вполне возможно технически), тогда использование PureComponent вам всё поломает, т.к. на экране какие-то компоненты перестанут перересовываться!

    Если же у вас всё по уму, данные которые передаются через props являются скалярными типами (string, int, float, bool) или immutable объектами, тогда смело используйте PureComponent - в некоторых случаях он поможет избавиться от лишних вызовов render.

    Важное замечание: PureComponent нужно использовать только для так называемых presentational components, т.е. для тех компонент, которые НЕ обёрнуты в вызов redux connect().

    Для container components (т.е. тех компонент, которые обёрнуты в redux connect()) нет смысла наследоваться от PureComponent, т.к. метод connect() оборачивает ваш компонент своей реализацией shouldComponentUpdate, которая также использует shallowEqual. Если вы по недосмотру унаследуете container component от PureComponent - ошибок не будет, но это не имеет никакого смыла, т.к. ваш код по сути будет дважды делать shallowEqual, а зачем делать лишнюю работу?

    Подводя итог, рецепт такой:
    - presentational components наследуем от React.PureComponent
    - container components (которые обёрнуты в redux connect()) наследуем от старого доброго React.Component
    Ответ написан
    1 комментарий
  • Как сверстать макет с неравномерной сеткой?

    delphinpro
    @delphinpro Куратор тега CSS
    frontend developer
    Держите codepen.io/delphinpro/pen/BWJEgG
    Простая линейная структура. В определенных пределах можно менять положение плиток, не меняя css код.
    Если еще помозговать, можно расширить эти пределы, добавить другие размеры плиток. Но на это нужно время, которого у меня нет.
    Ответ написан
    Комментировать
  • Как быстро и эффективно освоить Node.js+Express?

    @skyhead
    Я оказался в такой же ситуации, бро!
    Большинство книг - неочём. Скринкаст Кантора - вообще неочём.
    Из всего, что я на данный момент нашёл толкового это пара курсов с udemy.
    The Complete Node.js Developer Course (2nd Edition)
    The Web Developer Bootcamp
    (они есть на рутрекере)
    Ответ написан
    Комментировать
  • Что почитать про адаптивную верстку?

    @Allan11
    Фронтенд
    «Отзывчивый веб-дизайн» Итан Маркотт
    Небольшая книга, в ней с примерами рассказано что и как.
    Ответ написан
    1 комментарий
  • Что нужно освоить веб разработчику чтобы облегчить себе жизнь?

    tot0ro
    @tot0ro
    Front - end developer
    1. IDE
    2. xdebug
    3. git
    4. composer
    5.bower
    6.npm/bower
    6. less/stulys/sass
    7. grunt/gulp/webpack
    8. apache/nginx
    9. apc/opcache/memcache/varnish etc
    10. bootstrap
    11. VIM!!!!!!!!!
    12. English!!!!!!!!!!
    13. Все дырки через границу
    14. Умение не читать ИТ литературу русских программистов за исключением Макарова, Индутного
    15. Ненавидеть Попова
    Ответ написан
    40 комментариев
  • Что почитать по структуре проекта на angularjs?

    TekVanDo
    @TekVanDo
    Javascript Developer
    Почитать можно тут
    Из того что бегло увидел:
    - Не использовались директивы (с версии 1.5 компоненты)
    - Не использовался controller as синтаксис
    - Лучше использовать ui-router вместо штатного роутера
    - Аяксовые манипуляции принято выносить в сервисы
    - Ну и по мелочи (получение данных лучше делать на стадии роутинга)
    Ответ написан
    3 комментария
  • Как сделать такой эффект фона?

    GM2mars
    @GM2mars
    codepen.io/MarcoGuglielmelli/pen/lLCxy
    На слабых тачках в фаерфоксе тормозит. Но можно крутить параметры.
    Ответ написан
    3 комментария
  • Как нужно делать рассылку со своего сайта (сервера)?

    @xtreme
    Снимаю порчу по SSH :)
    1. Изучить рекомендации по рассылкам у крупных почтовых сервисов (Google, Yandex, Mail.ru). При подготовке писем для рассылки строго следовать их рекомендациям.
    2. Зарегистрироваться в postmaster.yandex.ru, postmaster.mail.ru, чтобы следить за ходом рассылки писем.
    3. Отлавливать недоставленные письма, убирать их из листов рассылки, дабы не мусорить.
    4. Сделать механизм отписки от рассылки (это один из критериев пункта 1), причем 100% работающий в один клик.
    5. Мониторить нажатие кнопки "Спам" в вышеуказанных почтовых сервисах, также сразу исключать их из будущих рассылок.

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

    Обязательное условие - соблюдать все почтовые правила и не пренебрегать цифровыми подписями - SPF, DKIM, DMARC, правильные записи в DNS (A, MX, PTR).
    Ответ написан
    10 комментариев
  • Поздний старт в ИТ - есть ли шансы?

    zo0m
    @zo0m
    full stack developer
    какой-то вы неуверенный слишком
    я собеседовал достаточно много студентов и возраст скорее играет на вас
    "Что делал? тебе столько лет, а где опыт?", конечно спросят, только не для того чтобы вас топить, а для того чтобы понять что за человек сидит.
    Если на собеседованиях будете хорошо отвечать -- у вас нет причин не попасть куда-угодно.

    псц, ПОЗДНИЙ СТАРТ в 26 ??? я видел взрослых мужиков за 40 полностью меняющих работу на IT, а вам 26...

    чувак иди проспись
    Ответ написан
    6 комментариев
  • Что такое такое rest api?

    @eandr_67
    web-программист (*AMP, Go, JavaScript, вёрстка).
    API социальных сетей - это вполне типичные примеры реализации REST API.

    REST (RESTful) - это общие принципы организации взаимодействия приложения/сайта с сервером посредством протокола HTTP. Особенность REST в том, что сервер не запоминает состояние пользователя между запросами - в каждом запросе передаётся информация, идентифицирующая пользователя (например, token, полученный через OAuth-авторизацию) и все параметры, необходимые для выполнения операции.

    Всё взаимодействие с сервером сводится к 4 операциям (4 - это необходимый и достаточный минимум, в конкретной реализации типов операций может быть больше):
    1. получение данных с сервера (обычно в формате JSON, или XML)
    2. добавление новых данных на сервер
    3. модификация существующих данных на сервере
    4. удаление данных на сервере

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

    Для каждого типа операции используется свой метод HTTP-запроса:
    1. получение - GET
    2. добавление - POST
    3. модификация - PUT
    4. удаление - DELETE

    Т.е. :

    GET-запрос /rest/users - получение информации о всех пользователях
    GET-запрос /rest/users/125 - получение информации о пользователе с id=125
    POST-запрос /rest/users - добавление нового пользователя
    PUT-запрос /rest/users/125 - изменение информации о пользователе с id=125
    DELETE-запрос /rest/users/125 - удаление пользователя с id=125
    Ответ написан
    20 комментариев