• Чем лямба-выражения лучше анонимных классов?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Java
    Седой и строгий
    Даже не уходя глубоко в дебри, очевидно, что лямбда компактнее

    someButton.addActionListener(e -> JOptionPane.showMessageDialog(this, "Hello!"));

    чем анонимный класс

    someButton.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent e) {
          JOptionPane.showMessageDialog(this, "Hello!")
      }
    });
    Ответ написан
    Комментировать
  • Как вы относитесь к флексам в гридах?

    @coderxx
    keep calm and learn js
    Я вам больше скажу - оно так и задумывалось.
    Ответ написан
    4 комментария
  • Как попросить повышение до тимлида / руководителя отдела?

    inoise
    @inoise Куратор тега Карьера в IT
    Solution Architect, AWS Certified, Serverless
    Team lead это не повышение. Руководитель отдела это вообще мифическая должность. А ещё есть CTO и вы - точно не он. И ни один из них.

    Развивайтесь, изучайте, но пока вы смотрите на это как иначе повышение - света в конце туннеля нет
    Ответ написан
    2 комментария
  • Как попросить повышение до тимлида / руководителя отдела?

    vt4a2h
    @vt4a2h
    Senior software engineer (C++/Qt/boost)
    Ну, на мой взгляд, старший разработчик, это не тот, кто просто знает архитектуру проекта, продукт и т.п. Это всё и обычный разработчик знать должен. Основная разница между старшим разработчиком и обычным -- это те самые социальные навыки или soft skills. Как у вас с этим обстоят дела? А попутно ответьте на вопрос: на какую часть бизнеса компании и как вы влияете и какова зона вашей ответственности? Я к тому, что тимлид -- это не только об управлении, и даже наверное не совсем об управлении... Вероятно, вам ещё рано становиться лидером команды.
    Ответ написан
    1 комментарий
  • Как попросить повышение до тимлида / руководителя отдела?

    rockon404
    @rockon404
    Frontend Developer
    Могу лишь сказать, что хорошо знаю архитектуру текущего проекта, хорошо знаю бизнес-логику и продукт.

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

    jamakasi666
    @jamakasi666 Куратор тега Linux
    Просто IT'шник.
    Безопасное извлечение(отмонтирование) придумали для слабаков.
    Сильно вероятно что файлы не успели еще физически записаться на диск т.к. запись идет кэшированно. Т.е. перед тем как вытащить флешку нужно было дать команду sync или отмонтировать диск(при отмонтировании тоже происходит sync ). Можете попробовать конечно востановить файлы но я думаю что шансов достаточно мало.
    Ответ написан
    2 комментария
  • С какого языка программирования начать изучение back-end?

    Atanvar
    @Atanvar
    Frontend developer
    Изучай Ruby либо Python, оба языка просто отличны, не советую даже смотреть в сторону пхп.
    Ответ написан
    3 комментария
  • Пример использования структурных шаблонов в React.js?

    miraage
    @miraage
    Старый прогер
    Декоратор. Многие HOC являются декораторами/прокси.

    Фасад. В мире React фасадами я бы назвал селекторы. Мы прячем комплексную структуру стора (причем, неважно, что используется - flux, redux, context, whatever) за простыми функциями-геттерами. Это могут быть как обычные геттеры, так и вычисляемые значения.

    Медиатор. Допустим, есть форма с двумя полями с датами "начало" и "конец". Первому нельзя ставить значение выше второго, и наоборот, второму нельзя поставить значение ниже первого. Тут и вступает в бой основной компонент формы, который является медиатором, и назначает разное поведение этим компонентам, в зависимости от их значений. Сами они друг про друга не знают.

    Обсервер. Тот же HOC connect из react-redux, по сути, является обсервером. Изменился mapState - ре-рендер компонента.

    Адаптер. Можно поверх сложных UI элементов (range, datepicker, etc..) писать еще свои адаптеры, которые будут иметь определенный программный интерфейс. Это позволит менять сторонние библиотеки (мало ли, автор забросит поддержку), сохранив при этом программный интерфейс внутри приложения.

    В самом React еще другие паттерны. Например, slot pattern, render props.
    Ответ написан
    Комментировать
  • Ide под Linux для Java разработки?

    GavriKos
    @GavriKos
    Ну так и под линуксом сидят на том же. И объяснения почему такой выбор - такие же. Хорошая удобная IDE, которая ставится без проблем.
    Ну или всякие страшные vim с emacs.
    Ответ написан
    1 комментарий
  • Ide под Linux для Java разработки?

    Под Linux продукты JetBrains тоже заточены. Их IDE по моему мнению очень удобны.
    Ответ написан
    Комментировать
  • Ide под Linux для Java разработки?

    @Fixid Куратор тега Linux
    Ну так вот вам Free Community версия для Linux
    https://www.jetbrains.com/idea/download/#section=linux
    Отличная IDE, хороший функционал за бесплатно, куча плагинов и фич.
    Использую pycharm, datagrip, goland, phpstorm. Все стоит своих денег, аналогов особо нет
    Ответ написан
    Комментировать
  • Свобода выбора или работа программистом в НИИ - что для вас лучше?

    @kazmiruk
    На месте ТС избежал бы этого совета Drno по следующим причинам:
    - отсутствие фундаментального образования не позволит (ладно, будем честны, усложнит в разы) вам стать высокооплачиваемым специалистом (наблюдал множество раз когда человек с 5 годами опыта не может сказать какая сложность get у списка и хэшмапа и что луче использовать. Мб для "фрилансить на апворке" это не важно, но тем не менее)
    - отсутствие образование закроет (или в значительной степени усложнит) для вас выбор работодателей по всему миру (очень редкий работодатель захочет брать кого-то без диплома и заморачиваться вашей визой + отсутствие диплома является причиной отказа в ворк пермите во многих странах Европы. Иногда можно заменить опытом, но тоже не всегда срабатывает)
    - будучи студентом я работал с первого курса: сначала это были шабашки, а затем по специальности со второго курса. И я был настолько же свободным, как и фрилансер после 11 класса.

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

    Отвечая на ваш исходный вопрос - по мне лучше региональный универ. Если это не "Рога и Копыта", конечно, а какой-то более менее нормальный ВУЗ. Привязка к работодателю - очень жестко может исказить ваш опыт и умения после чего вы не сможете влится в нормальную разработку и будет трудно переучиться
    Ответ написан
  • Свобода выбора или работа программистом в НИИ - что для вас лучше?

    MalkovVladimir73
    @MalkovVladimir73
    Fullstack (node + vue.js)
    1. Обязательно иди в ВУЗ в мск, забудь про регионы
    2. Выбирай тот ВУЗ в который проще пройти на бюджет (устроит любая около ИТ тематика). Желательно чтобы ВУЗ был не требовательным и не мешал самообучению. На диплом всем все равно будет параллельно
    3. Учи программирование сам, не рассчитывай на мистическую "базу программирования", которую, якобы, дают ВУЗы
    4. Параллельно ищи бесплатные курсы/стажировки/школы программирования и иди туда, если сможешь пройти конкурс (hh школа, программы яндекса и т.д)
    5. После бакалавриата иди искать работу, если не останешься в компании, где пройдешь практику (а именно так с толковыми новичками и бывает)
    Ответ написан
    Комментировать
  • Как быстрее читать данные в JS: через JSON или XMLHttpRequest?

    @LemonFox
    stateless mind
    XMLHttpRequest - это клиентское апи для общения клиента и сервера. Json -формат данных, монга - nosql-бд. Это разные вещи.
    Я бы хранил данные в бд, по апи (через XMLHttpRequest) получал данные с сервера в формате json.
    Вопрос очень странный
    Ответ написан
    6 комментариев
  • Как адекватно оценить свой уровень?

    de-iure
    @de-iure
    just a crazy lawyer
    99% людей наплевать на ваш уровень... он возможно немного интересен коллеге за соседним столом, по причине зависти или жадности... непосредственному начальнику (отдела разработки), чтобы знать вашу грузоподъемность... а остальные в этом ничего не понимают, люди на которых вы работаете ничего не понимают, люди которые будут использовать ваши труды ничего не понимают, часто и коллеги и непосредственные руководители не понимают... важен результат, который от вас хотят... а не ваш уровень.

    у людей есть задачи, которые нужно решить (не важно как, какими методами, технологиями... важен результат!), есть деньги, которые они готовы заплатить... кроме задач которые нужно решить, есть косвенная задача - сэкономить деньги, если у вас получается и то и другое вы, по Паретто, круче чем у 80% таких как вы...
    Ответ написан
    Комментировать
  • Оценка своего уровня. Как улучшить код?

    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 комментариев
  • Проекты для разбора новичку, для обучения, есть годные?

    rockon404
    @rockon404 Куратор тега React
    Frontend Developer
    Открываем github в поиске вводим:
    1. React redux real world
    2. React redux weather app
    3. React redux reddit/twitter/youtube/etc client
    4. React redux dashboard
    5. React redux starter. Бойлерплейты тоже очень полезно изучать. Скачиваем. Открываем package.json изучаем каждый пакет в зависимостях. Отвечаем на вопросы: Что это? Зачем оно тут? Как используется? Необходимо ли оно вам? Если не, то выпиливаем без следа.

    По всем пунктам смотрим именно те проекты, у которых есть какое-никакое количество звезд и форков.

    Читаем все свежие статьи по теме.

    React Redux links
    Ответ написан
    1 комментарий
  • Как назначить первого зарегистрированного пользователя админом по умолчанию?

    DevMan
    @DevMan
    можно и проверять: вряд ли юзеры будут регистрироваться тысячами каждую минуту.

    обычно используют один из 2-х сценариев: дефолтный юзер, созданный автоматом или на этапе установки/инициализации запрашивают необходимые данные, по которым и создается юзер.
    Ответ написан
    3 комментария
  • Какая есть must have книга по JavaScript?

    devellopah
    @devellopah
    eloquentjavascript.net отличная книга, читал второе издание, а уже третье вышло.
    Ответ написан
    Комментировать