Как стать автором
Обновить
1
0

Пользователь

Отправить сообщение

Карманная книга по TypeScript. Часть 8. Модули

Время на прочтение6 мин
Количество просмотров15K

image


Мы продолжаем серию публикаций адаптированного и дополненного перевода "Карманной книги по TypeScript".

Другие части:



Обратите внимание: для большого удобства в изучении книга была оформлена в виде прогрессивного веб-приложения.


Определение модуля


В TS, как и в ECMAScript2015, любой файл, содержащий import или export верхнего уровня (глобальный), считается модулем.


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


Модули выполняются в собственной области видимости, а не в глобальной. Это означает, что переменные, функции, классы и т.д., объявленные в модуле, недоступны за пределами модуля до тех пор, пока они в явном виде не будут из него экспортированы. Кроме того, перед использованием экспортированных сущностей, их следует импортировать в соответствующий файл.

Читать дальше →
Всего голосов 18: ↑18 и ↓0+18
Комментарии2

Идеальный инструмент для создания прогрессивных веб-приложений или Всё, что вы хотели знать о Workbox. Часть 1

Время на прочтение30 мин
Количество просмотров11K

Что такое Workbox?


Workbox (далее — WB) — это библиотека (точнее, набор библиотек), основной целью которой является "предоставление лучших практик и избавление от шаблонного кода при работе с сервис-воркерами" (далее — СВ).


Если вы впервые слышите о СВ, то перед изучением данного руководства настоятельно рекомендуется ознакомиться со следующими материалами:



WB предоставляет следующие возможности:


  • предварительное кэширование
  • кэширование во время выполнения
  • стратегии (кэширования)
  • обработка (перехват сетевых) запросов
  • фоновая синхронизация
  • помощь в отладке

На что похож WB API?


Ниже приведены примеры основных подходов к разработке прогрессивных веб-приложений (приложений, в которых используются возможности, предоставляемые СВ).

Читать дальше →
Всего голосов 36: ↑27 и ↓9+18
Комментарии3

Минимальное PWA

Время на прочтение6 мин
Количество просмотров21K

Какие характеристики должны быть у web-приложения, чтобы соответствовать критерию "прогрессивное"? Понятно, что, как и обычные web-приложения, прогрессивные строятся на базе "большой тройки" web-технологий - HTML/CSS/JS. Но что именно делает web-приложения прогрессивными?

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

Читать далее
Всего голосов 31: ↑29 и ↓2+27
Комментарии11

От внедрения зависимостей к отказу от зависимостей

Время на прочтение27 мин
Количество просмотров19K

У функционального программирования есть одна большая проблема — о нем очень непросто рассказывать. Попытки донести людям что-то с использованием терминов типа «зигохистоморфный препроморфизм» легко сводят неподготовленного слушателя с ума.



Марк Симан — автор популярной книги Dependency Injection in .NET, автор бесчисленных блог-постов. На DotNext 2017 Moscow Марк рассмотрел применение dependency injection в классическом объектно-ориентированном дизайне и объяснил, почему его необязательно (даже нежелательно) использовать в функциональном программировании. Следом за этим он наглядно показал, как использование приемов функционального программирования устраняет необходимость в использовании моков и стабов в модульном тестировании и позволяет полностью выбросить мусор из прямого перечисления зависимостей.


Под катом — перевод доклада и видео. Далее повествование будет от лица Марка.

Всего голосов 35: ↑35 и ↓0+35
Комментарии11

Разгоняем JS-парсер с помощью WebAssembly (часть 1: базовые возможности)

Время на прочтение7 мин
Количество просмотров4.7K

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

Такой код на тестовом нормализованном наборе показывает время порядка 48ms на 6.3MB или около 130MB/s, что примерно в 11 раз быстрее наивного варианта со .split.

Но всегда остается вопрос: "А еще быстрее - можно?"

Чтобы приблизиться к возможностям "железа", но по-прежнему остаться в инфраструктуре JavaScript, сегодня мы научимся решать эту задачу с использованием WebAssembly и SIMD-инструкций, постаравшись по пути споткнуться обо все подводные камни.

Читать далее
Всего голосов 24: ↑24 и ↓0+24
Комментарии13

Популярные заблуждения о C#

Время на прочтение11 мин
Количество просмотров67K

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

Читать далее
Всего голосов 93: ↑90 и ↓3+87
Комментарии63

Как делают вакцины

Время на прочтение15 мин
Количество просмотров42K

Появление векторной вакцины Sputnik V внесло некоторую сумятицу в типичное представление о вакцинах как о некой дозе ослабленных или дезактивированных патогенов, внедренных для тренировки иммунитета. Еще больше вопросов породил тот факт, что именно векторная вакцина появилась первой, а более простые и привычные варианты подоспели позднее. Ну и вопрос на засыпку: в чем проблема налаживания выпуска всех этих вакцин и почему в массовом доступе они только начинают появляться?

Под катом — расшифровка лекции специалиста по промышленным биотехнологиям, которая прошла при поддержке ярославской Точки при ЯрГУ. В ней — подробно о типах вакцин, механизмах их работы и способах массового производства.

Читать далее
Всего голосов 46: ↑45 и ↓1+44
Комментарии23

Производительность TypeScript

Время на прочтение15 мин
Количество просмотров17K

Есть лёгкие способы конфигурирования TypeScript для ускорения компиляции и редактирования. И чем раньше их внедрить, тем лучше. Также есть ещё некоторые популярные подходы к изучению причин медленной компиляции и редактирования, некоторые исправления и распространенные способы помочь TypeScript-команде в расследовании проблем.
Читать дальше →
Всего голосов 37: ↑37 и ↓0+37
Комментарии4

Как разработчикам проходить валютный контроль: пошаговая инструкция

Время на прочтение7 мин
Количество просмотров19K

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

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

Читать далее
Всего голосов 31: ↑31 и ↓0+31
Комментарии27

Удалёнка за доллары: а меня возьмут?

Время на прочтение6 мин
Количество просмотров68K

Удалёнка за доллары: а меня возьмут?


Удалёнка в хорошей зарубежной компании — крутая штука. Сидя даже где-то далеко в провинции, можно зарабатывать большие деньги: от $3,000 в месяц на средненькой позиции в неизвестной компании до $186,000 в год на позиции senior programmer в Basecamp.


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


У меня получилось так же: спустя почти два года тимлидерства в американской компании, я уехал в другую страну — но по-прежнему считаю удалёнку «за доллары» очень крутым вариантом занятости, по многим пунктам даже существенно лучше переезда за границу.


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

Читать дальше →
Всего голосов 52: ↑46 и ↓6+40
Комментарии80

Как я два раза подряд искал работу на карантине

Время на прочтение9 мин
Количество просмотров31K
В этом году, так вышло, я два раза находился в поиске работы. Мне довелось испытать приключение в виде полностью удалённого устройства на работу, полностью удалённой адаптации и такого же удалённого расставания с коллегами. У меня накопился опыт наблюдения за этим интересным и важным процессом, и я спешу поделиться им с вами.

Мой бэкграунд: Москва, frontend senior, большой опыт и высокие притязания по зарплате (примерно 10-15% верхних предложений рынка).

image
Читать дальше →
Всего голосов 71: ↑71 и ↓0+71
Комментарии82

Новичкам фондового рынка: честные разговоры о трейдинге

Время на прочтение12 мин
Количество просмотров125K
Блог RUVDS на Хабре видел всё: популяризацию JavaScript и крутые переводные материалы, яхтинг, вопросы образования и профессионального развития, бургеры, сыры, пиво и календари с кибердевушками. Задумка поговорить об основах трейдинга и работы на фондовом рынке возникала у нас давно, и вот почему. Большинство компаний, пишущих на биржевую тематику, имею чёткую цель: получить клиентов для своих инструментов и брокерских счетов, а значит, в их статьях инвестирование — исключительно привлекательное занятие, которое должно стать хобби каждого гика. Единственное, что мы можем предложить начинающим трейдерам — это VPS с торговыми платформами, и у нас нет мотивов представлять мир торговли на фондовом рынке как средство разбогатеть. 

Мы решили сделать серию статей об основах торговли и наиболее популярных активах для новичков. Честно, без воззваний нести деньги брокеру или открывать свой счёт в конкретном банке. Ну а решать, ваш это путь или нет, — исключительно вам. Иногда гораздо выгоднее и даже быстрее освоить новый стек разработки и прокачать свою заработную плату и стабильный доход до нужного вам уровня.

Всего голосов 71: ↑48 и ↓23+25
Комментарии46

10 интересных репозиториев на GitHub, полезных любому разработчику

Время на прочтение4 мин
Количество просмотров82K
Представляем вам перевод статьи Simon Holdorf, опубликованной на сайте medium.com. В ней вы найдете ссылки на полезные репозитории, с помощью которых можно прокачать навык разработки ПО.


Фото с ресурса Unsplash. Автор: Vishnu R Nair

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

Каждый из них имеет множество звезд на GitHub, что только подтверждает их популярность, актуальность и полезность. Одни репозитории научат вас чему-то новому, благодаря другим вы сможете создать какие-то классные штуки. В целом, используя их, можно основательно прокачать навык разработки программного обеспечения.
Читать дальше →
Всего голосов 88: ↑83 и ↓5+78
Комментарии14

Вывод типов в TypeScript с использованием конструкции as const и ключевого слова infer

Время на прочтение5 мин
Количество просмотров54K
TypeScript позволяет автоматизировать множество задач, которые, без использования этого языка, разработчикам приходится решать самостоятельно. Но, работая с TypeScript, нет необходимости постоянно использовать аннотации типов. Дело в том, что компилятор выполняет большую работу по выводу типов, основываясь на контексте выполнения кода. Статья, перевод которой мы сегодня публикуем, посвящена достаточно сложным случаям вывода типов, в которых используется ключевое слово infer и конструкция as const.


Читать дальше →
Всего голосов 41: ↑40 и ↓1+39
Комментарии4

Домашний кинотеатр на Raspberry

Время на прочтение6 мин
Количество просмотров117K
Так случилось, что решил я упростить себе вопрос он-лайн просмотра фильмов, вариант стандартного смарт ТВ меня не устраивал, а постоянно торчащий кабель HDMI для подключения к ноутбуку раздражал. Решение моей проблемы я увидел в приобретении Raspberry Pi 4, который можно аккуратно спрятать за корпусом телевизора.
Читать дальше →
Всего голосов 32: ↑26 и ↓6+20
Комментарии164

Тагир и Егор: интервью с Тагиром Валеевым

Время на прочтение14 мин
Количество просмотров9.3K


В 2019-м зрители JPoint крайне впечатлились докладом «Атомарный рефакторинг» Тагира Валеева (lany). Демонстрация того, как можно нестандартно использовать средства IDE для рефакторинга, взорвала многим мозг и при этом была практически полезна — а в итоге по зрительским оценкам доклад стал лучшим на конференции. Можете сами посмотреть видеозапись.


А в онлайн-трансляции JPoint 2019 у Тагира взял интервью другой спикер Егор Бугаенко (yegor256), и благодаря этому зрители трансляции узнали другие интересные вещи. Например, какой «ход конём» помог Тагиру при собеседовании в JetBrains или как он использовал Stack Overflow для популяризации своей библиотеки.


Сейчас готовится новый JPoint, и стала известна новая тема, с которой приедет Тагир: в этот раз он закроет конференцию выступлением «Заменят ли роботы программистов». А мы тем временем подумали, что прошлогоднее интервью слишком интересное, чтобы оставлять его только зрителям трансляции — и для Хабра сделали текстовую расшифровку.

Читать дальше →
Всего голосов 37: ↑35 и ↓2+33
Комментарии15

Разработка WebGPU-приложений

Время на прочтение12 мин
Количество просмотров24K
WebGPU — это один из современных API, предназначенных для работы с компьютерной графикой. Среди других подобных API можно отметить Vulkan, DirectX 12 и Metal. То, что в сфере веб-графики появляются подобные решения, даёт пользователям веб-приложений те же возможности, которые есть у пользователей обычных приложений. А именно, это повышение скорости работы программ благодаря использованию видеоускорителей, это сокращение числа проблем, вызываемых графическими драйверами, это появление новых возможностей веб-приложений. Подобные возможности могут опираться как на расширенные функции браузеров, так и на спецификацию.



Надо сказать, что сейчас разработка под WebGPU — это занятие не для слабонервных. Это — один из самых сложных графических API, доступных в вебе. Но неудобства, связанные с разработкой, сглаживает то, что применение WebGPU означает рост производительности, и то, что это — стандарт, а значит можно рассчитывать на то, что в будущем он никуда не денется. Обратите внимание на то, что спецификация WebGPU всё ещё находится в разработке. Поэтому то, о чём пойдёт речь ниже, со временем может измениться.

Здесь мы, осваивая возможности WebGPU, займёмся разработкой приложения Hello Triangle на TypeScript.

Вот репозиторий, в котором можно найти всё необходимое для начала работы с WebGPU.
Читать дальше →
Всего голосов 38: ↑38 и ↓0+38
Комментарии10

Как начать заниматься Bug Bounty

Время на прочтение6 мин
Количество просмотров23K
Друзья, в этом месяце Otus запускает набор на новый курс — «Безопасность приложений». В преддверии старта курса традиционно подготовили для вас перевод полезного материала.




Как начать заниматься Bug Bounty? Этот вопрос весьма распространенный, и я продолжаю получать его в сообщениях день ото дня. Я не могу ответить на каждое сообщение, поэтому решил написать статью и отправлять всех новичков читать ее.

Я занимаюсь Bug Bounty уже пять лет. Тем не менее, есть множество вещей, которых я не знаю, да и сам я не эксперт, поэтому прошу не считать эту статью советом от эксперта. Я просто поделюсь тем, чего достиг за последние 5 лет, совершенствуя свои навыки день ото дня.
Всего голосов 14: ↑13 и ↓1+12
Комментарии6

Гайд для фрилансеров: самые частые вопросы по работе ИП

Время на прочтение13 мин
Количество просмотров37K
В ноябре мы задумали собрать большой пост о том, как жить, если ты индивидуальный предприниматель (ИП). Мы попросили пользователей Хабра набросать нам вопросы из серии «хотели знать, но боялись спросить». Получился отличный список.

Ответить на вопросы мы предложили нашим друзям из Тинькофф Бизнеса — они сами регистрируют ИП и знают все юридические тонкости. Главный бонус: в течение недели в комментариях будет дежурить mat-ulyana, которая ответит на любые дополнительные вопросы.

image
Читать дальше →
Всего голосов 52: ↑52 и ↓0+52
Комментарии47

Создаем готовый для опенсорса проект на Angular в пару кликов

Время на прочтение3 мин
Количество просмотров5.6K
Недавно я публиковал статью о том, как быстро настраивать npm-пакеты перед публикацией в opensource. В ней я разобрал настройку версионирования, CI, построение воркфлоу и удобный деплой на страничку с демо. Все советы той статьи распространяются и на библиотеки Angular. Но все же специфика Ангуляра не позволит вам развернуться сходу.

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


Читать дальше →
Всего голосов 30: ↑29 и ↓1+28
Комментарии0
1

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность