Пользователь пока ничего не рассказал о себе

Достижения

Все достижения (17)

Наибольший вклад в теги

Все теги (87)

Лучшие ответы пользователя

Все ответы (154)
  • В чём принципиальный смысл PropTypes/TypeScript/Flow?

    @Interface
    Вы задаете очень общий вопрос, на который полно информации в интернете. Например вот статья: https://habr.com/post/326304/ .

    Вам не понятно в чем профит?
    - меньше ошибок при разработке
    - более адекватный intellisense
    - намного проще рефакторить
    - использовать сторонний код (тайпинги могут (но не должны) частично заменить доки)
    - генерация документации https://typedoc.org/
    - возможность вообще описать где-то сущности, а не опираться на их создание в коде
    и много всего еще.

    Или вы не согласны, что профит есть? Тогда аргументируйте с чем вы не согласны (относительно множества источников в интернете).
    Ответ написан
    1 комментарий
  • Можно ли считать выполнение xmlhttprequest запроса работой в отдельном потоке?

    @Interface
    Дисклеймер:
    С веб-воркерами (и чем-то подобным) все и так понятно, поэтому далее я пишу вне их использования

    Ответ на ваш вопрос сильно зависит от понимания заголовка. Если мы говорим про браузер или какую-то его часть - то вполне вероятно это действительно работа в отдельном потоке. Только это работа браузера, а не javascript. Вот например статья про node.js https://codeburst.io/how-node-js-single-thread-mec... (достаточно прочитать Top Highlight)
    The main event loop is single-threaded but most of the I/O works run on separate threads, because the I/O APIs in Node.js are asynchronous/non-blocking by design, in order to accommodate the event loop.

    Таким образом про node.js можно сказать, что оно - многопоточное приложение. Но вот с точки зрения javascript-а, то есть как-бы изнутри него - node.js - однопоточный. Иными словами: весь JavaScript код и в браузере и в ноде позиционирует себя как однопоточное приложение. И исполняется так же. Но какие-то операции вне языка (I/O или тот же xhr) могут быть реализованы как угодно браузером. Это строго говоря вопрос больше про устройство среды исполнения.

    Я подвис, но мой ответ был, что JS можно считать многопоточным и я так предполагаю из-за наличия xmlhttprequest запросов (в простонародии ajax).
    - строго говоря это не так. Хотя мне кажется это не далеко от истины. Если мы поговорим, что язык многопоточный, я думаю мы имеем ввиду, что языком поддерживается работа с потоками, а не то как он устроен изнутри или как изнутри устроена среда его исполнения. Потому как какая-нибудь сборка мусора может выполняться в отдельном потоке, но это не делает сам ЯЗЫК много поточным.

    Вопрос: Относится ли WebAPI к движку JavaScript и корректно ли утверждать, что фактически xmlhttprequest выполняется в отдельном потоке от остального кода JavaScript?

    - Нет. Это API которое браузер предоставляет внутрь движка. Это можно проследить взяв например node.js и сравнив с браузерным js. Так, например, в node.js доступны внутренние модули (fs, http, path etc.)., а также другие фичи, такие как process.argv и так далее, в то время как в браузере есть WebAPI, например, fetch. При этом в браузере нет require('path'), зато в ноде нет fetch.

    И это при том что и браузер (chrome) и node.js работают на одном движке (V8).

    В node.js нет доступа к xhr, что уже может навести на мысли о том, что это не часть движка.

    Важное замечание: я думаю сравнивая node.js и браузер, можно сформировать какое-то представление о том, что из себя представляет чистый движок js, но тем не менее это не полностью достоверно. Потому как, например, и там и там есть совместимые друг с другом setInterval и setTimeout, однако (если мне не изменяет память) они не входят в движок.

    Если хочется четче понять где проходит граница, но не так сильно чтобы читать спеки - можно попробовать встроить движок самостоятельно. V8 или SpiderMonkey (в Firefox'е) умеют встраиваться в другие приложения и если встраивать их самостоятельно - и API внутрь движка (причем конкретной его реализации, а не абстрактного понятия) нужно будет прокидывать самостоятельно - тогда можно будет увидеть, что в голом движке не будет ни setTimeout, ни alert, ни console.log, ни document ни даже require и т.д.
    Ответ написан
    1 комментарий
  • Реально ли устроиться Junior C++ Программистом не имея профильного образования\сертификатов?

    @Interface
    Прохождение учебника может почти ничего не значить - делайте свои проекты, это может стать существенно более значимым толчком в развитии.

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

    Если никто не пишет / не отвечает - значит резюме не достаточно впечатляющее или просто нет вакансий.

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

    @Interface
    Прежде всего нужно понять - действительно ли быстрее?

    Есть замечательный доклад на эту тему: https://www.youtube.com/watch?v=HPFARivHJRY - очень рекомендую к просмотру.

    На вскидку:
    - движок может выкидывать тот или иной кусок бенчмарка
    - движок может реализовывать какой-либо кэш и считать один раз

    P.s. в мозиле результаты другие: победил lodash, что иронично потому что у него под капотом indexOf
    Ответ написан
    4 комментария
  • Как начать разрабатывать игры или написать свой игровой движок?

    @Interface
    Как начать разрабатывать игры или написать свой игровой движок?

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

    Несложно представить игровой движок для написания которого не нужно знать физику абсолютно. (движок для крестиков-ноликов, кроссвордов, судоку, текстовых квестов или уже серьезный движок для игр в стиле Diablo, Fallout (1-2-T) и т.д.).

    Сложнее представить движок без математики, как в прочем и все программирование. Однако, часто бывает достаточно классов 5-8 математики чтобы писать что-то вполне серьезное, если оно не требует этой математики. Простенький платформер или скролл шутер не потребует от вас знания тригонометрии, например.

    Довольно ожидаемо, что если под своим движком вы подразумеваете продукт уровня UE, Unity или чего-то отдаленно сопоставимого, или даже простейший 3д движок написанный с нуля, то остается пожелать вам удачи.

    Я бы советовал начать с практики, то есть начать его постепенно писать, понимая, что через месяц/год все придется выкинуть и (опционально) начать с нуля. А там уже сформируются конкретные вопросы и теория будет ложиться лучше на фундамент проб и ошибок.
    Ответ написан
    Комментировать

Лучшие вопросы пользователя

Все вопросы (38)