• В React больше не нужно подключать его?

    @abberati
    frontend-разработчик
    В двух ответах выше вам написали что-то не то. В react v17 запилили новый jsx transform. И с версии 17 на самом деле просто больше не нужно импортировать React

    https://reactjs.org/blog/2020/09/22/introducing-th...
    Ответ написан
    Комментировать
  • Какие на самом деле типы данных в javascript?

    bingo347
    @bingo347 Куратор тега JavaScript
    Crazy on performance...
    Как я понимаю в js два основных типа данных

    Согласно спеке в JS есть 8 типов данных:
    • object - все объекты и функции (в реальности во всех имплементациях у функций свой тип function)
    • string - строки
    • boolean - логические значения (true и false)
    • number - числа с плавающей запятой двойной точности (в других языках это double или float64)
    • bigint - целые числа (int64) с поддержкой длинной арифметики
    • symbol - спец тип, каждое значение которого уникально
    • undefined - юнит тип с единственным значением undefined, значение по умолчанию во многих случаях
    • null - юнит тип с единственным значением null (в реальности во всех имплементациях null имеет тип object), задумывался и используется как аналог null pointer/null reference в других языках


    Что происходит с типом данных когда str конкатинируется со строкой 'Vova' ?
    с типом данных ничего не происходит. Значение получается новое, по крайней мере так должно быть согласно спеке и так все выглядит для рядового js разработчика.
    На самом деле самый распространенный js движок v8 именно со строками делает под капотом разную магию, зная, что строки никогда не меняются он умеет их представлять в виде массива срезов (множества кусочков лежащих в разных местах), избегая тем самым дорогого копирования памяти. В данном примере result будет состоять из двух срезов, которые указывают на представление кода в памяти, притом первый кусок будет указывать на ту же память что и str. Но если result "доживет" до момента, когда сборщик мусора будет делать дефрагментацию памяти, то после нее он уже будет указывать на целую самостоятельную строку.

    Вопрос вот в чем, так ли примитивы перезаписываются если с ними выполняются какие-то операции? Меня интересует сам алгоритм создания, что происходит внутри
    Примитивы никогда не перезаписываются, по крайней мере пока они "живы" (пока сборка мусора не признает их мусором в виду отсутствия ссылок на память где они лежат). Все манипуляции с переменными под капотом почти всегда (о том когда нет - напишу ниже) являются простыми манипуляциями над указателями (ссылками).

    Являются ли примитивные типы объектами?
    С точки зрения спеки - нет, не являются. У них должны появляться объектные обертки в момент обращения к их полям (через точку или квадратные скобки).
    На деле, если сделать как в спеке - все будет жутко тормозить. Поэтому в v8 почти все является объектом (правда не совсем таким, как мы видим объекты со стороны js), а соблюдение спеки для примитивных типов достигается через иммутабельность.
    Исключением являются null и undefined, у которых нет ни полей, ни прототипа. Для них хранится только информация о типе.
    Так же после оптимизаций jit компилятора числа могут избавится от объектных оберток, когда оптимизируемый код их не использует, тем самым избавляясь от разыменовывания указателя, при этом bigint может превратится в int64, а number в float64 или int32 в зависимости от использования. Так же, массивы состоящие только из чисел одного типа могут быть сведены к настоящим массивам из чисел, но этого эффекта можно достичь и до оптимизаций, если использовать типизированные массивы.
    Ответ написан
    3 комментария
  • Как запускать git pre-push через husky по условию?

    Lynn
    @Lynn
    nginx, js, css
    Husky так настроить нельзя, но можно «настроить» команду которую он запускает что бы она проверяла изменения. Самым популярным на сегодня способом, наверное, можно назвать использование lint-staged.

    // package.json
    {
      "husky": {
        "hooks": {
          "pre-push": "lint-staged"
        }
      }
    }


    // lint-staged.config.js
    module.exports = {
      './client/public/app-react/src/**/*.js': () => 'jest ./client/public/app-react/src --coverage',
    }
    Ответ написан
    4 комментария
  • Где брать картинки по типу 1000x1000 для верстки?

    @MadridianFox
    Web-программист, многостаночник
    Ответ написан
    Комментировать
  • Redis vs SQLite vs PostgreSQL

    CKOPOBAPKuH
    @CKOPOBAPKuH
    Молоток vs Кувалда vs Отвёртка

    Я решил выяснить, какой из инструментов лучше. Представил одинаковую задачу — ударять себя по большому пальцу ноги. Отвёртку решил держать за ручку и ударять наконечником, так как неудобно держать за наконечник и ударять ручкой. Для молотка и кувалды это одинаковые схемы. Запросы: ударить по большому пальцу и измерить время, сколько болит.

    Результат: если ударить больно, то палец болит. В чём же тогда прелесть отвёртки? Понимаю, что она подходит для узконаправленных задач, например, только откручивание или закручивание, т.е. для ограниченных задач. В остальном одни минусы: и держать неудобно, и площадь поражения невелика, и по пальцу я попал только с третьего раза.

    PS: Что вы используете для надёжного перманентного отбивания пальцев? Холивар классический русский молоток vs молоток из икеи можно опустить, разницы между ними практически не будет.
    Ответ написан
    4 комментария
  • Какие книги прочитать по js в 2020?

    @AlexCraft
    Software engineer
    У книг есть одна проблема - они устаревают еще на стадии подготовки к изданию. Книги лучше читать по совсем фундаментальным вещам, которые не меняются: алгоритмы, паттерны и т.д. То, что Вы ищете не найти в книгах (быстро устаревает). Читайте живые стандарты: MDN, JavaScript.info, доки по React / Vue / Angular. Меняйте тип источника: не заходит документация — смотрите курсы с практикой (Youtube, Udemy), слушайте подкасты.
    Ответ написан
    Комментировать
  • Какой есть буржуйский ресурс с адекватной аналитикой для выбора востребованного языка/платформы для изучения?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    как я вижу, веб-разработка, в качестве ремесла, неуклонно загибается.

    Только если для вас веб-разработка - это натягивание шаблонов на wordpress. Почти все enterprise-системы сейчас имеют web-интерфейс и многие из них сейчас строятся на микросервисах - а это тоже web. Так что web не только не умирает, а захватывает другие сферы программирования, активно выдавливая например десктопную разработку.

    Работать и изучать приходится всё больше, а платят всё меньше.

    Web-разработчики интернет-банкинга, например, сильно не понимают, о чём вы.

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

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

    Грубо говоря: что сейчас стоит начать учить, чтобы через полгода был вал заказов и море бабла? ))

    Так это не работает. Неважно что вы изучаете, важно как. Можно быть отличным специалистом по давно устаревшему коболу и иметь собственную яхту, а можно быть посредственным специалистом в прогрессивных востребованных технологиях и работать за копейки. Факт, что я ещё не встречал людей, способных стать профессионалом экстра-класса за полгода.

    Где сейчас бум идет, или намечается?

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

    DevMan
    @DevMan
    во времена, когда все больше софта мигрирует в вэб, и бизнес вместе с ним, вэб-дев конечно же загибается.
    либо вы живёте в альтернативной реальности, либо у вас ущербное понятие о вэб-деве.

    что бы вы не учили, но если вы ноль в этой сфере, то и через полгода, и через два, у вас будет столько же заказов. и это не зависит от сферы.
    Ответ написан
    Комментировать
  • Где найти работу джуниору по Java/C#/PHP/JavaScript?

    на самом деле и для джунов работы на удаленке много, просто создайте резюме на всех платформах и не бойтесь прийти в компанию на мизерную зп. через полгода и зп и уровень программирования вырастет. и не бойтесь того что вы из глубинки, я вообще в живу в на самом краю России и это не помешало устроться на первую работу на удаленке (неделю искал вакансию), хотя разница во времени 9 часов.
    Ответ написан
    Комментировать
  • Где найти работу джуниору по Java/C#/PHP/JavaScript?

    @RuComMarket
    Битрикс FullStack разработчик
    5 лет на фрилансе, это срок) может вы слабо себя оцениваете? научитесь накручивать себе цену, скорее всего в какой-то узкой направленности вы уже не джуниор, а смело можете выставить себя мидлом, главное за что-нибудь уцепиться, что реально даст толчок в опыте и стаже, а если будет или есть пару проектов, которые не стыдно показать, то готовьтесь брать билет из глубинки в какой-нибудь город, где есть спрос на разработчиков. В глубинке не получится нормально получать рост в данном направлении, там слишком низкий потолок.
    Ответ написан
    Комментировать
  • Насколько важен атестат об окончании школы для трудоустройства в сфере GameDev?

    GavriKos
    @GavriKos Куратор тега Разработка игр
    Сам аттестат - пофиг. А вот без знания теоремы Пифагора вы в геймдеве никому не нужны. Я серьезно. Проекции, геометрия, тригонометрия, векторная алгебра - это все нужные вещи.

    Как пруф - моя любимая статья на хабре - https://habr.com/ru/post/131931/
    Ответ написан
    1 комментарий
  • Насколько важен атестат об окончании школы для трудоустройства в сфере GameDev?

    saboteur_kiev
    @saboteur_kiev Куратор тега Разработка игр
    software engineer
    Давай сделаем так.

    Можешь написать игрушку, например простейший волейбол - чтобы шарик по экрану перемещался согласно законам физики, то есть чтобы он нормально ускорялся, замедлялся, подпрыгивал и визуально это бы выглядело натурально?

    (подсказка, для этого надо бы разобраться в математике, включая теорему Пифагора, тангенсы, котангенсы).

    Школьная программа ОЧЕНЬ простая по сравнению с современным программированием. Если ты даже с этим не можешь справиться - как ты можешь в юнити что-то реально работающее делать?

    > меня возьмут на работу по GameDev без атестата?
    На работу берут тех, кто умеет что-то делать.
    На любой работе (неважно, геймдев или бизнесдев), есть огромное количество унылых и неинтересных задач.
    Поэтому то, что ты возьмешься, изучишь темы 8-9 класса и закончишь школу, это будет доказательством как минимум того, что ты умеешь работать над собой, заставлять себя делать неинтересные вещи и доделывать их, а не кидать на полпути.

    Я бы взял к себе на работу человека, который не закончил институт, и к моменту окончания школы может показать готовые интересные законченные проекты.

    Но я бы не взял к себе человека, который не может закончить даже школу, и учась в 8-9 классе не имеет готовых рабочих интересных проектов.
    Ответ написан
    Комментировать
  • Как себя направлять в обучении, почему через 4 года опыта работы я все еще плохо программирую?

    PageAuditRU
    @PageAuditRU
    Senior SEO Анализатор
    Вам на работе нужен ментор и код-ревьюер.

    ПС: я тридцать лет программирую. И каждый раз, когда пересматриваю свой код, написанный год назад, восклицаю, что за отстой тут написан - либо можно проще написать, либо понятнее, либо вообще код не должен работать.
    Ответ написан
    Комментировать
  • Как себя направлять в обучении, почему через 4 года опыта работы я все еще плохо программирую?

    firedragon
    @firedragon
    Не джун-мидл-сеньор, а трус-балбес-бывалый.
    Нет кода нет мнения. Выложите на гитхаб или попросите отревьювить их.
    Это наиболее правильная практика.
    Ответ написан
    Комментировать
  • Как получить все placemarks карты в Yandex.Maps, если есть только инстанс самой карты Map?

    @iKest
    map.geoObjects.each(function (geoObject) {
    if (geoObject.properties.get('type') == 'point') {
    // do something
    ...
    return false;
    }
    });

    Как то так...
    Ответ написан
    Комментировать
  • Зачем модификаторы доступа в react-typescript?

    @abberati
    frontend-разработчик
    А они и не нужны. В реакте классы используются не в классическом стиле, а просто для получения доступа к внутренним методам. В современных реалиях пишем без классов на хуках — они отлично типизируются и не используем классы.
    Ответ написан
    1 комментарий
  • Какую cms для сайта лучше выбрать?

    @strelok011
    Если уж подходить именно с точки зрения объединения реакта с cms, то от системы управления нужна только админка с бэкендом. Такие cms называются headless cms.
    https://habr.com/ru/post/444600/
    Ответ написан
    1 комментарий
  • Нормально ли иметь много React компонентов в небольшом проекте?

    neuotq
    @neuotq
    Прокрастинация
    Сразу отмечу что Юрий Бура отличный профессионал своего дела, курс его не изучал, но беглый взгляд показал что поход у него хороший, системный и он старается все же доносить суть. Главная целье его курса научиться пользоваться реактом, понять суть современного подхода к фроентенду в целом.
    Далее уже по существу. Нужно погрузится в саму историю и причны появления Реакта. Инженеры в facebook в одно время сильно замучались строить интерфейсы, генерировать всё эту ерунду было сложно, еще проблемы уязвимостей (куча форм, для комментарией, постов, картинко и тп), недобный и громозкий PHP код заставил их задуматься об упрощении. Хотелось писать интерфейс как обычну функцию с параметрами, поэтому они придумали xhp, которые позволил буквально писать формы сразу в php (hack), легко, наглядно. Быстро видно что происходит, меньше ошибок, и легко использовать код формы (вместе с всей ее логикой построения, это и генерация формы на основе данных, и тп) заного много раз. Этот же подход был очень удобен и для других частей интерфейса, меня, списка постов и тп.
    И это, с развитием новых концепций, браузеров, технологий и требований к быстроте интерфейса вдохновила их перенести этот концепт на JS, так родился React. Его революционность была в том, что на выходе резко упростились любые манипуляция с интерфейсом на фронтенде, сильно упал порог входа, получили легко читаемый и понятный код для решения практических задач (понятно, что при желании можно и тут засрать, но до этого в принципе большенство интерфейсов на js писалось через большие муки, с кучей неудобного кода, компромисами и тд и тп, а теперь все это взял на себя реакт).
    Что мы имеем:
    есть какая-либо часть интерфейса, логически независимая от других, с определенной структурой внутри - делаем компонент. Компонент это не только то, что мы обязательно будем использовать повторно (например), но понятная логически обособленная часть интерфейса, у которой может быть своя логика внутри, и своя функция на сайте снаружи.
    Ничего страшного если сразу всё не продумал или на определенном этапе что-то идёт не идеально и тп.
    Конечно хорошо иметь план на проект и проектировать многие вещи сразу, но рефакторинг, пивоты, изменения - вот реальность жизни.
    Так что не волнуйся, первое что сделай измени восприятие самого интерфейса и приложения в целом. Теперь ты делаешь не сайт на html, а приложение с интерфейсом. Вот когда в таком ключе смотреть, то намного легче.
    Ответ написан
    Комментировать
  • Как лучше писать стили CSS Modules или Styled Components?

    taliano
    @taliano
    Cижу здесь потому что не хочу работать. That's it.
    CSS-in-JS на хайпе, а уж конкретно styled-components, glamorous или aphrodite это уже вкусовщина
    Ответ написан
    Комментировать