• Насколько хорошей практикой считается использование и классового и функционального подходов в одном проекте?

    kirbi1996
    @kirbi1996
    Так себе практика, нужно в одном стиле писать. Если вдруг находишь решение своей проблемы на классах то просто переписываешь её на функции и хуки. Сейчас связка функции и хуки считается хорошим тоном
    Ответ написан
    Комментировать
  • Насколько хорошей практикой считается использование и классового и функционального подходов в одном проекте?

    magerrrr
    @magerrrr
    JS Software Engineer
    С точки зрения React, эти два компонента эквивалентны. В официальной документации React ничего не сказано о планах отказываться от компонентов классов в ближайшем будущем. Поэтому можете не беспокоиться  —  переписывать весь код вам не придётся. Но отвечая на Ваш вопрос, изучив документацию React и Medium, а также поучавствовав в коммерческих проектах, хочу отметить, что хорошей практикой будет поддержка кодовой базы в едином стиле насколько это возможно. Пусть не сразу, пусть постепенно, но переход к функциональным компонентам будет верным. Функциональные компоненты позволяют писать код элегантнee.

    Советую почитать интересную свежую статью, где сравниваются функциональные и классовые компоненты и рассматриваются Хуки.

    Более новые версии React могут начать добавлять в функциональные компоненты возможности несовместимые с классовыми, оставляя последние в невыгодном положении, как это было с первыми до версии 16.8.

    "Мы намерены охватить все возможные варианты использования классов в хуках, но мы всё ещё будем поддерживать классовые компоненты в обозримом будущем. В Facebook десятки тысяч компонентов, написанных в виде классов, и у нас нет абсолютно никаких планов их переписывать. Вместо этого мы начинаем использовать хуки в новом коде параллельно с классами" — документация React
    Ответ написан
    Комментировать
  • Как лучше организовать структуру проекта с разными репозиториям?

    @Denioo
    Создаете отдельный репозиторий под каждую платформу одну из причин вы уже назвали:
    все может превратиться в кашу.

    Другая это то что будет сложно отслеживать прогресс/коммиты.

    С одной стороны проект один и хочется как то сгруппировать все в одном месте

    Для этого и есть гитхаб/гитлаб все в одном месте)
    Ответ написан
    Комментировать
  • Как сделать вложенные асинхронные запросы?

    Проблема в моменте с await items.map(...)
    т.к. map возвращает массив - а не промис - то никакого ожидания не происходит. Можно как посоветовали выше не использовать .map, или воспользоваться Promise.all:
    let result = await Promise.all(items.map(async (item) => {}))
    Ответ написан
    Комментировать
  • Следует избегать if .. else .. конструкций?

    @d-sem
    По ситуации и вкусу.

    Если вся логика одна строка, то уместней тернарный оператор.
    Если в if будет return или exception, то else не нужен.

    Если считаете нужным использовать else, то используйте.

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

    saboteur_kiev
    @saboteur_kiev Куратор тега Карьера в IT
    software engineer
    "когда я устроюсь на работу"

    "Думал там меня буду учить"


    Вас в школе/институте сильно учили?
    С чего вдруг на работе, где вас никто не обязан учить, будет кто-то этим заниматься.

    На работе - в лучшем случае дают возможность самообразованию. У тебя есть задачи, на которых ты получаешь опыт. Все. В смысле все остальное - в твоих руках.
    Галеры бывают разные. Бывают отличные, бывают не очень. Можешь поискать работу в другом месте, где проект посложнее, где есть код ревью и тесты. Но учиться всегда будешь сам.
    Ну и по поводу софт скиллов - они тоже нужны, если хочешь стать лидом.
    Ответ написан
    Комментировать
  • Как уйти с галеры и найти нормальную работу?

    @Sergey750il
    Потому что так многие и работают. Статьи на Хабре о "крутых" разработчиках в большинстве не имеют отношения к реальной жизни.
    Ответ написан
    Комментировать
  • Как уйти с галеры и найти нормальную работу?

    @d-sem
    9 месяцев коммерческого опыта конечно маловато, но все равно нужно попробовать искать нормальную работу с нормальными процессами. Скорее всего там будет команда разработки с лидом и синьорами. Тестировщики. И скорее всего это будет достаточно большая компания или зрелый продукт, где уже пришли к тому, что экономия на качестве приводит к лишним тратам на эксплуатации и модернизации. И где возможно даже применяется по делу Scrum. Возможно, это даже будет удаленка так как коронавирус способствовал её распространению. Скорее всего это будет там где большой и сложный фронтенд, качество которого прямо отражается на доходах компании.

    Если не получится найти - надо дорабатывать опыт. Развиваться. Добирать необходимый опыт в петпроектах (например, сделать качественный todo покрытый тестами). И по мере накопления опыта пытаться снова.
    Ответ написан
    1 комментарий
  • Как правильно делать планирование проекта?

    @Stalinko
    PHP'шник и фрилансер до мозга костей
    У меня уйдет 5 часов , у новичка 10 часов, а у профи 1 час..

    Это решается размером часовой ставки. По вашему примеру у вас ставка должна быть в 2 раза выше чем у новичка и в 5 раз меньше чем у профи.

    Мне кажется не правильно давать оценку - относительно того времени сколько я собираюсь потратить.

    Бывает фиксированная цена и почасовая оплата. Что вам ближе - выбирать вам.
    В любом случае обычно делается примерная оценка по времени.
    Ответ написан
    Комментировать
  • Как правильно делать планирование проекта?

    Robur
    @Robur
    Знаю больше чем это необходимо
    Мне кажется не правильно давать оценку - относительно того времени сколько я собираюсь потратить


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

    нет, но если вы верстаете быстро и можете сделать за час то что новичок делает 5, значит ваша оценка - 1 час, стоимость - (стоимость новичка х5)

    Профи платят больше не потому что они дольше работают :)
    А потому что их оплата (время х стоимость) в итоге будет дешевле. 1час*$100 это выгоднее, чем 10 часов * $20.

    В офисе , знаю , была какая-то формула

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

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

    fomenkogregory
    @fomenkogregory
    Юниор софтварный инженер
    Нормальноe решение, не вижу ничего костыльного.
    на so такие же ответы
    https://stackoverflow.com/questions/45666762/searc...
    https://stackoverflow.com/questions/46805836/how-t...
    вот пакет, если самому лень писать
    https://www.npmjs.com/package/react-native-search-...
    Ответ написан
    Комментировать
  • Как сгруппированные элементы одного массива добавить элементам другого массива?

    RAX7
    @RAX7
    const projects = Array.from(
      { length: 10 },
      (_, i) => ({title: `proj_${i}`, id: i})
    );
    
    const runs = Array.from(
      { length: 100 },
      (_, i) => ({title: `task_${i}`, id: i, pid: randomInteger(0, 10)})
    );
    
    const data = projects.map(proj => ({
      title: proj.title,
      tasks: runs.filter(t => t.pid === proj.id)
    }));
    
    console.log(data);
    
    
    // utils
    function randomInteger(min, max) {
      let rand = min + Math.random() * (max + 1 - min);
      return Math.floor(rand);
    }
    Ответ написан
    1 комментарий
  • Как сгруппированные элементы одного массива добавить элементам другого массива?

    Надо как то отсортировать эти 2 массива

    Тут не сортировка нужна, а преобразование данных в новый массив.
    const data = projects.reduce((acc, curr) => {
      const copy = {...curr}
      copy.description = runs.filter(r => r.projectId === curr.id)
      acc.push(copy)
      return acc
    }, [])
    Ответ написан
    1 комментарий
  • Как сгруппированные элементы одного массива добавить элементам другого массива?

    0xD34F
    @0xD34F Куратор тега JavaScript
    const result = Object.values(runs.reduce(
      (acc, n) => (acc[n.projectId]?.description.push(n), acc),
      Object.fromEntries(projects.map(n => [ n.id, { ...n, description: [] } ]))
    ));

    или

    const result = projects.map(function(n) {
      return {
        ...n,
        description: this[n.id] ?? [],
      };
    }, runs.reduce((acc, n) => ((acc[n.projectId] = acc[n.projectId] ?? []).push(n), acc), {}));

    или

    const result = projects.map(n => ({
      ...n,
      description: runs.filter(m => m.projectId === n.id),
    }));
    Ответ написан
    Комментировать
  • Как можно хранить отсчет времени на клиенте?

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

    Отдельный вопрос - когда меняется дата. Есть варианты:
    1. в полночь;
    2. в момент, когда Пользователь ввёл число в инпут.
    Ответ написан
    Комментировать
  • Как можно хранить отсчет времени на клиенте?

    KataevAS
    @KataevAS
    https://learn.javascript.ru/localstorage
    Направляю: есть такой объект Date. Пользователь пушит в localstorage такой объект с заданной датой (через указанное количество дней), при загрузке страницы создаётся новый объект Date с текущей датой и сверяется с той, что в localstorage.
    Ответ написан
    Комментировать
  • Почему на ставится запятая?

    Vlad_IT
    @Vlad_IT Куратор тега JavaScript
    Front-end разработчик
    splice возвращает массив удаленных элементов из массива. А т.к. второй параметр deleteCount в splice у вас 0, то ничего не удалилось, значит splice возвращает пустой массив.
    PS: Но определенно, использовать splice для решения вашей задачи является ошибочным.
    Ответ написан
    2 комментария
  • Альтернатива вузовскому диплому программиста?

    @yuriysan
    1 Как преподаватель вуза вижу что вуз заставляет тебя позаниматься тем чем тебе не хочется но полезно.
    2 при этом есть разные вузы в точки зрения качества
    Вывод: идти в магистратуру в хороший вуз типа итмо и тп (только я не знаю а можно ли)

    3 с точки зрения максимального влияния на жизнь &важно попасть в хорошую компанию.
    Возможно быстрее всего сработают курсы с последующим трудоустройством, например geekbrains
    Ответ написан
    Комментировать
  • Альтернатива вузовскому диплому программиста?

    @spas2001
    Разработчик ПО
    Знаете, люди получают и второе высшее. А пять лет не такой большой срок по сравнению с жизнью. Отучитесь и увидите зачем. Я думаю, что если просто получить немного денег, то учится незачем. Если цель - полноценно жить и развиваться в профессии, то высшее образование необходимо. Потом уже можно дополнить что-то курсами, но без базы они мало что дадут. А крики про то что образование лишнее - это просто недостаток развития. И мой совет - специальность выбирайте не только IT, а обратите внимание на инженерные, там часто программы более продуманные.
    Ответ написан
    Комментировать