• Актуальный язык для удаленки?

    zoonman
    @zoonman
    ⋆⋆⋆⋆⋆
    Английский.
    Ответ написан
    Комментировать
  • Где можно прокачать ES6-8?

    Stalker_RED
    @Stalker_RED
    Делай задачки на codewars и потом сравнивай свои решения с топовыми.

    Когда видишь что какой-то js-ниндзя сделал в три строчки, а у тебя почему-то получилось 20 - разбирай его код на кусочки и все непонятное пробивай по MDN.
    Ответ написан
    Комментировать
  • Где можно прокачать ES6-8?

    Можете глянуть freecodecamp, целый раздел посвящен es6.
    Так же можно просто писать знакомые задачи с возможностями es6+
    Ps вот кстати статья, мало ли: ES6 по-человечески
    Ответ написан
    8 комментариев
  • Что написать для тренировки на js с нуля?

    vladislavkolodka
    @vladislavkolodka
    Backend .NET Developer | FullStack in the past
    Лично я бы, если с нуля, не писал бы сразу проект, а начал с демок. Так как знаний на начальных этапах чтоб сделать правильно еще не хватает, и по сути учишься костыли писать. Можно взять learn.javascript.ru, повыполнять задания к статьям, сделать свои небольшие демо проекты к каждой статье (а идеи точно появяться в ходе изучения этих статей, так же как и вопросы на которые можно получить ответ попробовав что-то в тех же демках). А вот потом уже думать о том чтоб написать что-то более крупное, для закрепления изученного материала.
    Ответ написан
    Комментировать
  • Книги по основам программирования/по сути программирования?

    igorux
    @igorux
    Никлаус Вирт «Алгоритмы + структуры данных = программы»
    Ответ написан
    Комментировать
  • Книги по основам программирования/по сути программирования?

    mbelskiy
    @mbelskiy
    Software Developer
    Пожалуйста, читайте: https://ru.hexlet.io/pages/recommended-books
    Ответ написан
    Комментировать
  • Как в Crome DevTools можно просматривать все события страницы?

    @xtress
    Web-dev
    Выполните в консоли monitorEvents(document.body); Увидите все события по мере их появления. Если надо фильтровать - второй аргумент для этой функции: monitorEvents(document.body, 'click'); - покажет все клики.
    Ответ написан
    3 комментария
  • Оценка своего уровня. Как улучшить код?

    rockon404
    @rockon404 Куратор тега React
    Frontend Developer
    1. Используйте const вместо let для определения переменных которые не переопределяются в коде. Это помогает снизить когнитивную нагрузку с человека читающего код и негласный стандарт в React разработке.

    2. Такие вещи как globalStyles и конфигурацию store лучше вынести в отдельные файлы. Они могут со временем хорошо разрастись.
    По поводу globalStyles, вы вообще можете вынести их в отдельный css файл.

    3. Вместо:
    {
      isModal
      ? <Route path="/auth" component={AuthPopup} />
      : null
    }

    лучше:
    {isModal && <Route path="/auth" component={AuthPopup} />}


    4. Вместо:
    function mapDispatchToProps(dispatch) {
        return {
            autoLogin: () => dispatch(autoLogin()),
            getBrowser: () => dispatch(getBrowser()),
            getMedia: () => dispatch(getMedia())
        }
    }


    лучше:
    const mapDispatchToProps = {
      autoLogin,
      getBrowser,
      getMedia,
    };


    5. Точки с запятыми в конце то есть, то нет. Определитесь и приведите код к одному виду.

    6.
    & label {}
    & input {}
    & span {}

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

    7. Почему папка со страницами называется Containers? Дань бойлерплейтам?

    8. Использование trailing comma является хорошей практикой.

    9.
    import {combineReducers} from 'redux';
    import photoReducer from './photoReducer';
    import authReducer from './authReducer';
    import globalReducer from './globalReducer';
    
    export default combineReducers({
        photoReducer, authReducer, globalReducer
    })


    Все таки приятней работать с хранилищем в котором ключи не имеют в названии слова reducer:
    import {combineReducers} from 'redux';
    import photo from './photoReducer';
    import auth from './authReducer';
    import global from './globalReducer';
    
    export default combineReducers({
      photo, 
      auth,
      global,
    });


    10. Забудьте вообще, что в языке есть возможность использовать вложенный тернарный оператор:
    return e === 'invalid-email' ? 'Неверно указан e-mail'
        : e === 'user-not-found' ? 'Указанный e-mail на найден'
        : e === 'wrong-password' ? 'Неверный пароль'
        : e === 'email-already-in-use' ? 'Указанный e-mail уже используется'
        : e === 'network-request-failed' ? 'Нет подключения к интернету'
        : e === 'operation-not-allowed' ? 'Произошла ошибка, попробуйте снова'
        : e === 'popup-closed-by-user' ? 'Окно авторизации закрыто пользователем'
        : e === 'account-exists-with-different-credential' ? 'Аккаунт уже существует с другими данными, используйте другой способ авторизации'
        : e

    Это одна из самых худших практик в JavaScript разработке. Тут лучше подойдет конструкция switch case

    11. Константы actionTypes лучше вынести в папку constants и разложить по разным файлам, иначе со временем у вас там будет свалка.

    12. Вместо:
    import {SET_ACTIVE, CHANGE_VALUE, SET_DEFAULT, UPLOAD, UPDATE_IMAGE, SET_IMAGE_ERROR, SET_LIKE, SET_COMMENT, ADD_ARTICLE_SUCCESS, FETCH_ARTICLES_START, FETCH_ARTICLES_SUCCESS, FETCH_ARTICLES_ERROR} from '../actions/actionTypes';

    Лучше:
    import {
      SET_ACTIVE,
      CHANGE_VALUE,
      SET_DEFAULT, UPLOAD,  
      UPDATE_IMAGE,
      SET_IMAGE_ERROR,
      SET_LIKE,
      SET_COMMENT,
      ADD_ARTICLE_SUCCESS,
      FETCH_ARTICLES_START,
      FETCH_ARTICLES_SUCCESS,
      FETCH_ARTICLES_ERROR,
    } from '../actions/actionTypes';


    13. Попробуйте внедрить библиотеку reselect. И для получения значения из store вместо записи вида:
    function mapStateToProps(state) {
        return {
            browser: state.globalReducer.browser
        }
    }


    использовать селектор:
    const mapStateToProps = state => ({
      browser: browserSelector(state),
    });
    Ответ написан
    12 комментариев
  • Хочу очень научиться программировать на JS, с чего начать? что учить и как учить?

    Stalker_RED
    @Stalker_RED
    1. Научись гуглить.
    Нет, это не шутка, этот совет тебе еще не раз дадут, и будут правы. Попробуй просто написать "обучение javascript" или "javascript бесплатные курсы" или еще что-нибудь, прояви свою фантазию, не стесняйся!

    2. В долгосрочной перспективе выгоднее учить программирование вооще, а не именно на js. И вообще js в качестве первого языка довольно сомнительный выбор, хотя сейчас понабегут javascript-fullstack-senior-developers и будут это утверждение оспаривать.

    Если в гугл не получилось, то начни с learn.javascript.ru и mdn.

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

    Возможно до всего этого придется подтянуть основы: как вообще эти копутеры работают, что там за сети и интернеты бывают, вот это все. Книжки Таненбаума довольно доходчиво все объясняют, не смотря на то, что они довольно древние. Основы не изменились, только добавилось кой-чего по мелочи. Читаются довольно легко. Если какие-то моменты совсем непонятные - пролистывайте, потом можно перечитать.
    Ответ написан
    Комментировать
  • Какова суть фреймворков и библиотек?

    customtema
    @customtema
    arint.ru
    В программировании есть хороший подход, как Dont Repeat Yourself. Бессмысленно каждый раз изобретать велосипеды - имеющиеся модули складывают в библиотеки и используют повторно.

    Наборы библиотек называют фреймворками. Фреймворки, как правило, специализированные - каждый под свою задачу. От QT и GTK, до YII2 и ThreeJS.

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

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

    Коллеги, которые фреймворками брезгуют - не адекватны. Изобретение велосипедов полезно только для образования. В реальной работе оно несет проблемы:
    1. Неоправданная трата ресурсов, денег и времени
    2. Больше уязвимостей, создают менее качественные приложения


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

    werevolff
    @werevolff
    1. Фрэймворк - это каркас приложения. Библиотека - это готовый код. Фрэймворк предоставляет разработчику архитектуру, на которой выстраивается приложение. Библиотека не предоставляет архитектуры. Ты вызываешь её, чтобы получить результат в отдельной части своего приложения.
    2. Можно использовать несколько фрэймворков. Каждый фрэймворк отвечает за своё приложение или свою часть проекта. Например, можно сделать админку сайта на Angular.js а клиентскую часть - на React. Можно одну страницу сделать на React.js, вторую - на vue.js. одну и ту же часть проекта на разных фрэймворках делать не получится. Какой выбрать - вопрос опыта. Пока не начнёшь писать - не поймёшь.
    3. Некоторые библиотеки могут заменить фрэймворки, имея полный набор абстракций доя решения задачи. Можно ли сравнивать библиотеки и фрэймворки? Это зависит от параметров сравнения. Если можешь обосновать что ты сравниваешь, то не вижу проблем. Но, для обоснования надо иметь опыт работы и решения прикладных задач.
    4. Ничего не могу посоветовать: выбор библиотеки или фрэймворка - это ответственность разработчика. Если разработчик с этим вопросом идёт на тостер, то дешевле посоветовать другого разработчика.
    P.S. Не стоит зацикливаться на ванильном JS. Стоит выбрать фрэймворк и работать с ним. Понимание придёт с опытом.
    Ответ написан
    Комментировать
  • Какова суть фреймворков и библиотек?

    sHinE
    @sHinE
    веб-разработчик, php/js/mysql и сопутствующее
    Про отличие фреймворка и библиотеки видел такую фразу и она мне понравилась:
    Библиотеку ты вызываешь из своего кода, а фреймворк наоборот вызывает твой код.
    Ответ написан
    Комментировать
  • Какова суть фреймворков и библиотек?

    @stratosmi
    1) Фреймворк, как правило, рекомендует (а некоторые и навязывают) определенную организацию структуры кода, да. За это он тебе тоже кое-что дает - берет на себя типовую работу, что повторяется из проекта в проект, зачем ее делать каждый раз заново.

    Да, функционал их разный. От минималистичного до всеобъемлющего.

    Вполне можно использовать на одном сайте фрейморк CSS для верстки, фреймворк JS для динамики, фреймворк для бекенда. Если фреймворк для CSS и фреймворк для JS еще, возможно, и могут мешать друг другу (но как правило не мешают), то фреймворк для бэкенда функционирует на сервере как вообще независимая от CSS/JS вещь (CSS/JS фунционируют в браузере, а не на сервере).

    2) Да. Если они специализированы на разных проблемах (Zurb Foundation для CSS и Vue.js для JS и Yii для PHP, например).

    Но если они занимаются сходными вещами (например, React и Vue) то целесообразность такого применения непонятна. Более того - они запросто могут мешать друг другу. Нужно смотреть по ситуации.

    3) Библиотеки - весьма конкретно-местный инструмент. Потому более независимы от проекта.
    Фреймворки же нацелены на большую автоматизацию решения ваших проблем в какой-то конкретной ситуации, а вас от них более зависимыми (что не плохо, учитывая приносимую фреймворками пользу, просто нужно учитывать).

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

    4) Штатные API выбранного сервиса карт (Yandex Maps, 2GIS Maps, OpenStreet Maps и пр.). Эти API реализованы в виде библиотек. Фреймворки тут вообще не при делах.

    P.S.:
    2GIS специализированный сервис:
    В 2GIS очень хорошо представлены предприятия\фирмы\организации (в городах, где 2GIS присутствует), лучше прочих. Между городами 2GIS нет в принципе.
    Ответ написан
    Комментировать
  • Какова суть фреймворков и библиотек?

    Stalker_RED
    @Stalker_RED
    Библиотека это инструмент или набор каких-то инструментов.
    Бибилиотека для скачивания видео с ютуба
    Бибилиотека для кропа и ресайза картинок
    Бибилиотека для определения города по IP

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

    "набор для постройки скворечника"
    В комплекте молоток, гвозди, столярный клей, 20 деревянных досточек разных форм и расцветок и инструкция с тремая вариантами скворечника на выбор.

    Или вот два фреймворка:
    Ezva9I.pngzC6ZHT.png
    Можно ли их использовать вместе? (Конечно, никто не запрещает)
    Можно ли из этих деталей построить что-то совсем другое, не такое как в инструкции? (Конечно да)
    Можно ли с этими фреймворками использовать детали еще и из этого?
    lGjE1A.png
    (конечно можно, но придется что-то придумать для совместимости деталек. Быть может придется применить клей, изоленту, пластилин или жвачку. Или шуруповерт, или сварочный аппарат. Но ни в один комплект эти дополнительные инструменты не входят, как и скиллы к ним.)

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

    @mletov
    Вы знаете, у нас в команде похожая ситуация. Нас 3 программиста, пишем в основном бэк, а к морде требования обычно минимальные, поэтому везде бутстрап. Из нас троих опыт работы верстальщиком в веб-студии есть только у меня, остальные как вы: вроде тоже не первый год работают, по верстке что-то правят, подгугливают, но как что-то чуть посложнее - спрашивают у меня.

    Курсы, книги, менторы и т д - это, конечно, хорошо.
    Но самая реальная польза - сверстайте из psd 3-5-10 макетов pixel perfect. И без всяких бутстрапов. После энного макета постигните дзен и все поймете. И чем макеты будут разнообразнее, чем больше в них адаптивности и хитрых элементов - тем лучше. По непонятным моментам спрашивайте на тостере. А так, судя по опыту коллег, иметь "некоторые представления о css" и подгугливать можно до бесконечности.
    Ответ написан
    1 комментарий
  • Какие можно почитать книги "по самому низкому уровню" компьюетров?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Базовое знакомство: здесь.
    Затем, начните с этой книги.
    Также, советую почитать этот блог и этот форум.
    Ответ написан
    4 комментария
  • Какие можно почитать книги "по самому низкому уровню" компьюетров?

    DexterHD
    @DexterHD
    Software Engineer, Teamlead, CTO
    Сначала читаете
    "Чарльз Петцольд Код - Тайный язык информатики".
    В ней будут даны принципы от изобретения реле до современных процессоров.
    Далее:
    "Э.Таненбаум - Архитектура компьютера"
    "Э.Таненбаум - Современные операционные системы"
    "Э.Таненбаум - Сети"
    Ответ написан
    Комментировать
  • Какой хороший курс по JS (для среднего уровня)?

    tundramani
    @tundramani
    learn.javascript.ru
    +
    фленагана справочник
    +
    годы тяжелой практики
    Ответ написан
    2 комментария