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

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

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

[В закладки] Кунг-фу на клавиатуре. Искусство сочетать клавиши

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

Сочетания клавиш для тех, кто хочет войти в IT и не только

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

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

В конце вы увидите, как все эти знания можно использовать при работе с самым популярным на данный момент текстовым редактором Visual Studio Code.

Читать далее
Всего голосов 22: ↑17 и ↓5+20
Комментарии38

Строгая типизация для приложений Vue.js на TypeScript

Время на прочтение16 мин
Количество просмотров30K
Вопрос: Каковы самые слабые места Vue?

Oтвет: На данный момент, наверное, недружественность к типизации. Наш API разрабатывался без планирования поддержки типизированных языков (типа TypeScript), но мы сделали большие улучшения в 2.5.

Вопрос: Тони Хор (Tony Hoare) назвал null ошибкой на миллиард долларов. Какое было самое неудачное техническое решение в твоей карьере?

Oтвет: Было бы неплохо использовать TypeScript изначально, еще когда я начал переписывать код для Vue 2.x.

из интервью "Создатель Vue.js отвечает Хабру"

Недружественность Vue.js к типизации вынуждает применять "костыли", чтобы использовать преимущества TypeScript. Один из предлагаемых в официальной документации Vue.js вариантов — это применение декораторов вместе с библиотекой "vue-class-component".


Я применяю другой вариант "костылей" для решения проблемы строгой типизации в приложениях Vue.js (без декораторов и vue-class-component). Через явное определение интерфейсов для опций "data" и "props", используемых в конструкторе экземпляров Vue-компоненты. В ряде случаев это проще и удобнее.


В данном tutorial, для иллюстрации обоих подходов к типизации (с декораторами и без) используется решение Visual Studio 2017 с приложениями Vue.js + Asp.Net Core MVC + TypeScript. Хотя приведенные здесь примеры можно поместить и в другое окружение (Node.js + Webpack).


Попутно демонстрируется, как компоненту на JavaScript быстро переделать под «полноценный» TypeScript с включенной строгой типизацией.

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

Vue 3 на Typescript

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

vue3+ts


Популярность Typescript растет день ото дня. Javascript нетипизированный язык(или слабо типизированный, если точнее), и одна и та же переменная способна принимать и строку, и число, и даже объект. С одной стороны, это делает язык гибким, с другой, потенциально ведет к многочисленным ошибкам. Typescript создан, чтобы решить эту проблему. Vue старается не отставать от моды, и в новой версии фреймворка была значительно улучшена поддержка языка. Теперь переход на Typescript проще и приятнее, чем был раньше. Хороший повод научиться чему-то новому, тем более, что в требованиях к вакансиям он встречается все чаще и чаще.


В этой статье мы перепишем тестовое задание, которое я разбирал ранее, на Vue 3 и Typescript и вдобавок используем обновленные Vue-Router и Vuex(критики, вы были услышаны).


Update: код в статье был улучшен в соответствии с пожеланиями.

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

Вторая жизнь пыльного Андроида

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

Три мысли всё не давали мне жить спокойно:

1) есть ноутбук, но для работы нужен второй экран
2) давно мечтаю о пульте управления для Photoshop в дополнение к клавиатуре
3) на полках пылятся устаревшие гаджеты, которые продавать глупо, а выкидывать жалко

Решим одно за счёт другого
Всего голосов 59: ↑58 и ↓1+75
Комментарии94

Сделаем худший Vue.js в мире

Время на прочтение5 мин
Количество просмотров16K
Некоторое время назад я опубликовал похожую статью про React, где с помощью пары строк кода мы создали крошечный клон React.js с нуля. Но React — далеко не единственный инструмент в современном фронтенд-мире, Vue.js стремительно набирает популярность. Давайте разберемся, как работает этот фреймворк, и создадим примитивный клон, похожий на Vue.js, в образовательных целях.

Реактивность


Как и React.js, Vue является реактивным, то есть все изменения в состоянии приложения автоматически отражаются в DOM. Но в отличие от React, Vue отслеживает зависимости во время рендеринга и обновляет только связанные части без каких-либо «сравнений».

Ключ к реактивности Vue.js — это метод Object.defineProperty. Он позволяет указывать настраиваемый метод getter / setter для поля объекта и перехватывать каждый доступ к нему:
Читать дальше →
Всего голосов 23: ↑22 и ↓1+30
Комментарии4

6 лучших практик React в 2021 году

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

Написание четкого и удобочитаемого кода необходимо для улучшения его качества. Кроме того, чистый код легче тестировать. Нет причин не потратить пять лишних минут на рефакторинг кода, чтобы сделать его более читаемым.

В этой статье рассматриваются шесть лучших практик рефакторинга 2021 года, чтобы улучшить свой код.

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

Hello, Word! Разрабатываем браузерное расширение в 2021-м

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

Меня зовут Саша Коновалов, я разработчик в компании Oxonit и наставник на программе «Мидл фронтенд-разработчик» в Яндекс.Практикуме.

На примере разработки расширения «Hello, Word» я расскажу, как разрабатывать кроссбраузерное расширение со знаниями современного фронтенда:

  • для чего нужно кроссбраузерное расширение;
  • как его разработать под разные браузеры;
  • модульность кода, как переиспользовать компоненты и как современный фронтенд помогает в разработке расширений;
  • какие инструменты можно использовать для сборки и публикации расширений (webpack, web-ext).

Если вам интересно посмотреть исходники, я разместил их на GitHub.

Структура расширения, о котором я расскажу в статье, близка к проекту SponsorBlock. Этот проект вдохновлял меня во время работы над собственным.

Итак, создадим расширение – Hello, Word!


Hello, Word — это расширение для перевода и запоминания слов. Оно стало прототипом моего пет-проекта Wordzzz, поэтому в посте я буду приводить примеры из него.


Рисунок 1. Описание функциональности
Читать дальше →
Всего голосов 28: ↑28 и ↓0+28
Комментарии11

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

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

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

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

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

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

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

Делаем своими руками: KVM Over IP при помощи Raspberry Pi

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

На Хабре вряд ли стоит рассказывать о программах удаленного доступа к ПК, вроде TeamViewer. Но все это работает лишь в среде операционной системы. А вот доступа к BIOS, возможности установки, переустановки и прочих операций с операционной системой нет. Для всего этого есть иные решения. Одно из самых доступных — KVM Over IP.

Конечно, если покупать брендовую систему, то получится дорого. Но есть иное решение — создание собственной системы на основе «малинки». Это решение предложил разработчик Максим Деваев (Maxim Devaev). Он собирается начать продавать эту систему по $130. Но собрать все это можно и самостоятельно — главное запастись собственными компонентами. Под катом — описание того, как это сделать.
Читать дальше →
Всего голосов 61: ↑61 и ↓0+61
Комментарии46

Как мы накосячили пока делали Бриллиантовый чекаут™ 9 месяцев, а планировали 2

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

В начале 2019 мы собрали аналитику по адресам в заказах и увидели, что бо́льшая часть клиентов заказывает доставку на одни и те же адреса и не устанавливают отложенное время. Они хотят получить заказ «туда же, куда и в прошлый раз и как можно быстрее». Но сделать это не так просто. Поэтому мы решили поменять флоу оплаты заказа и максимально его упростить именно для таких клиентов. Мы назвали этот проект Бриллиантовый чекаут™ и планировали сделать за 2 месяца. А закончили через 9.

И вот почему
Всего голосов 26: ↑24 и ↓2+30
Комментарии23

Типизация Vuex 4 на Typescript для Vue 3

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

Так получилось что изучать Vue я начал месяц назад с версии Vue 3. Предварительно было заявлено что Vue 3 переписана заново на typescript. Признаться того же самого я ожидал и от новой версии Vuex 4 для Vue 3.

Но почему то все оказалось не так как ожидалось. Посмотрев репозитарий Vuex 4
https://github.com/vuejs/vuex/tree/4.0

Мы неожиданно увидим, что он написан на js и в самом конце написаны типы под уже готовый код.

С одной стороны нам как пользователям по идее все равно как написан код - главное чтобы было удобно им пользоваться. И вот тут начинающий пользователь сразу попадает в странную ситуацию при попытке использовать typescript для контроля типов для создаваемых объектов store. Дело в том что типизация создаваемого store в Vuex 4 отсутствует от слова совсем.

В статье я предлагаю свое видение типизации Vuex 4.

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

Всё, о чём должен знать разработчик Телеграм-ботов

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

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

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

Подробный гайд о том, как работать с ботами — под катом.

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

10 английских слов, которые можно использовать вместо скучного «good»

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

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

При этом каждый из синонимов раскрывает немного другие смысловые нюансы. И правильное их использование говорит о высоком уровне языка даже больше, чем правильное использование Present Perfect Continuous. 

Сегодня говорим о синонимах к слову «good» и о том, как правильно их использовать. Поехали.

Читать далее
Всего голосов 19: ↑18 и ↓1+26
Комментарии20

Как мы случайно сожгли $72 000 за два часа в Google Cloud Platform и чуть не обанкротились

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


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

В марте 2020 года, когда COVID поразил весь мир, наш стартап Milkie Way тоже сильно пострадал и почти закрылся. Мы сожгли 72 000 долларов во время изучения и внутреннего тестирования Cloud Run с Firebase в течение нескольких часов.
Читать дальше →
Всего голосов 61: ↑53 и ↓8+68
Комментарии197

Переиспользуемый компонент Svelte: чтобы никому не было больно

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

Переиспользуемый компонент Svelte: чтобы никому не было больно


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


За последние года полтора для фреймворка Svelte уже создано множество различных компонентов, которые можно найти на NPM, GitHub или официальном списке. К сожалению, не все из них правильно "приготовлены" и порой их использование раздует размер бандла приложения сильнее, чем должно быть. А бывает, что такие пакеты просто невозможно использовать, потому что его автор не силён в подготовке пакетов и упустил какие-то важные моменты.


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

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

Автоматизация рыбной ловли для World of Warcraft

Время на прочтение5 мин
Количество просмотров87K
Познакомился с World of Warcraft очень давно и люблю его весь, но одна вещь больше всего не давала мне покоя — рыбная ловля. Это нудное повторяющееся действие, где ты просто нажимаешь на кнопку рыбной ловли и тыкаешь на поплавок раз в 5-15 секунд. Мой навык разработки рос, а ситуация с рыбной ловле так и не улучшалась с каждым годом что я играл, поэтому я решил убить двух зайцев сразу — начать осваивать python и всё же сделать бота для себя.
Читать дальше →
Всего голосов 66: ↑63 и ↓3+60
Комментарии89

WebAssembly: что и как

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


Эта статья основана на моём выступлении на конференции ITSubbotnik, прошедшем 2 ноября 2019 года в Москве.


Вообще я бэкенд программист, но меня заинтересовала эта технология, она позволяет использовать мои знания бэкенда на фронте.


Проблема


Начнём с проблемы, которая решается этой (относительно новой) технологией. Проблема эта — быстро исполнять код в браузере. Быстро — это значит, «быстрее чем JavaScript», в идеале настолько быстро, насколько позволяет имеющийся у нас процессор.

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

Современный курс по Node.js в 2020

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


Дорогие товарищи инженеры, сообщество Метархия представляет вашему вниманию современный курс по Node.js, который включает глубокий разбор всех возможностей и аспектов платформы. Основной упор делается на то, как создавать надежные высоконагруженные сервера приложений и API без привязки к конкретному фреймворку и даже протоколу, т.е. абстрагировать бизнес-логику в отдельный слой. К лекциям прикреплено множество примеров кода, демонстрирующих гибкую структуру приложений и архитектурные приемы, в том числе работу с СУБД через слой доступа к данным, создание интерактивных приложений на вебсокетах, обеспечение безопасности, Graceful shutdown, межпроцессовое взаимодействие, предотвращение утечек памяти, масштабирование и кластеризацию при помощи процессов и потоков. На текущий момент в курсе 38 лекций (около 35 и ½ часов видео), 37 репозиториев с примерами кода, 4 PDF со слайдами. Перед основной частью курса по Node.js нужно сначала освоить хоть частично курс по асинхронному программированию.

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

Думать как фронтенд-разработчик

Время на прочтение7 мин
Количество просмотров14K
Привет, Хабр! У нас стартанул новый поток курса Frontend-разработчик, а я делюсь с вами небольшим чек-листом для фронтендера о том, как мыслить при создании макета, какие вопросы задавать себе самому. Смело кладите её в закладки, если хотите рассказать своему падавану джуну, с какой стороны подойти к дизайну макета, но не хотите тратить своё время на объяснение относительно несложных вещей.

Приятного чтения!
Всего голосов 14: ↑14 и ↓0+14
Комментарии4

Почему мы выбрали MobX, а не Redux, и как его использовать эффективнее

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

Меня зовут Назим Гафаров, я разработчик интерфейсов в Mail.ru Cloud Solutions. На дворе 2020 год, а мы продолжаем обсуждать «нововведения» ES6-синтаксиса и преимущества MobX над Redux. Существует много причин использовать Redux в своем проекте, но так как я не знаю ни одной, расскажу о том, почему мы выбрали MobX.

Почему?
Всего голосов 55: ↑51 и ↓4+71
Комментарии242

Информация

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