Как стать автором
Обновить
1
0
Александр Ветчинкин @Alexander_Front-end

Frontend developer

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

Не JavaScript’ом единым: как фронтенд-разработчику затащить на собесе

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

Привет! Меня зовут Виталий, я тимлид в KTS, и за годы работы я провел больше 100 собеседований.

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

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

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

Есть только 5 способов создать компанию стоимостью более 100 млрд.$. Какие?

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

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

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

Разница в том, как именно данные компании победили в конкурентной борьбе и создали достаточный барьер, чтобы отгородиться от новых конкурентов и закрыть “окно” для входа других предпринимателей. 

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

Итак, перечислим данные стратегии/эффекты.

Читать далее
Всего голосов 19: ↑15 и ↓4+14
Комментарии16

Реализация сапёра в 100 строках чистого Ruby

Уровень сложностиСредний
Время на прочтение7 мин
Количество просмотров5.8K

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

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

В нашем случае мы проделаем это на примере старого доброго «Сапёра». Помню, как играл в него на Windows XP ещё пацаном. Если и вы разделяете аналогичные воспоминания, то приветствую вас, мои друзья-миллениалы!
Читать дальше →
Всего голосов 33: ↑30 и ↓3+45
Комментарии5

Как за 30 минут улучшить свое резюме?

Уровень сложностиПростой
Время на прочтение3 мин
Количество просмотров22K

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

На старте карьеры каждый испытывает все эти чувства. Давайте начнем немного менять ситуацию с последнего пункта — резюме!

Да, мы не сможем за 30 минут повысить ваш опыт работы на 3 года, но даже в банальном оформлении своего резюме многие делают (или не делают) достаточно странные вещи.

Перейдем к пункту 0...

Меня зовут Дмитрий Иванов, я старший аналитик данных компании билайн, и первое правило хорошего резюме — это простота. Пока мы не идём на позицию ТОПа или вице-президента, давайте оставим излишний формализм за пределами того PDF-файлика, который вы будете рассылать рекрутёрам.

0. Пишите просто и понятно

Не надо делать делать из мухи (3 месяца работы в универской лаборатории) слона (оформить каждый тезис вашего курсача как отдельный научный проект). 3 месяца в лаборатории = 3 месяца в лаборатории. 

Читать далее
Всего голосов 29: ↑18 и ↓11+13
Комментарии22

JavaScript: структуры данных и алгоритмы. Часть 1

Уровень сложностиСредний
Время на прочтение33 мин
Количество просмотров12K


Привет, друзья!


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



Сегодня мы будем говорить о самых простых и популярных структурах данных: односвязном и двусвязном списках, стеке и очереди.


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


Интересно? Тогда прошу под кат.

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

Docker для фронтендера. Часть 1. Зачем?

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

Привет, Хабр!


Несколько месяцев назад я выступал на конференции FrontendConf 2019 с докладом Docker для фронтендера и хотел бы сделать небольшую расшифровку доклада для тех, кто больше любит читать, а не слушать.



Приглашаю под кат всех веб-разработчиков, особенно фронтендеров.

Всего голосов 13: ↑12 и ↓1+18
Комментарии26

Примеры Telegram ботов для личных автоматизаций

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров64K

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

Причем это будут не прям боты, а скорее способы использования telegram-bot-api для решения разных задач.

Читать далее
Всего голосов 37: ↑32 и ↓5+30
Комментарии81

TypeScript: паттерны проектирования. Часть 1

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


Привет, друзья!


Представляю вашему вниманию перевод первой части серии статей, посвященных паттернам проектирования в TypeScript.


Спасибо Денису Улесову за помощь в переводе материала.


Паттерны (или шаблоны) проектирования (design patterns) описывают типичные способы решения часто встречающихся проблем при проектировании программ.


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

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

«Финансово я на самом дне. Какой бизнес мне начать?»

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

Этот заголовок я взял из видеоролика американского предпринимателя Алекса Хормози, который в свои ранние тридцать перевалил за сотню миллионов заработанных долларов и теперь рассказывает, как именно он этого добился, и раздаёт бесплатные советы.

Поначалу я скептически относился к материалам Алекса, т.к. от них отдавало инфоцыганщиной, но с каждым новым выступлением (а у этого парня трудно найти что-то короче 20 минут) проникался всё большим доверием к его словам. Эту статью пишу на основе его 24-минутного видеоролика под заголовком: «I'm Broke, What Business Do I Start?» (я вставил его внутрь статьи).

Я собираюсь пересказать своими словами всё то, чем делится в ролике Алекс, а также примерить его советы на свою деятельность. Тем более я как раз занимаюсь проработкой и запуском новой услуги у себя в Проекторате.

И, если верить Алексу, та схема, которую он предлагает, буквально гарантирует мне пять первых клиентов в результате её применения. Что ж, проверим!

Итак, поехали.

Читать далее
Всего голосов 28: ↑16 и ↓12+11
Комментарии39

Стоит ли игра свеч? Кратко о Single SPA (часть 1)

Уровень сложностиСложный
Время на прочтение12 мин
Количество просмотров6.2K

О проектировании микросервисной архитектуры с использованием фреймворка Single SPA и технологиях, связанных с его использованием.

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

Коварные утечки памяти в React: как можно обжечься на useCallback и замыканиях

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

Я работаю в Ramblr, это ИИ-стартап, где мы строим на React сложные приложения для аннотирования видео. Недавно мне попалась сложная утечка памяти, которая возникает при одновременном использовании замыканий JavaScript и хука useCallback в React. Поскольку я вырос на .NET, мне потребовалось немало времени, чтобы разобраться в происходящем. Поэтому я решил написать этот пост и рассказать вам, чему меня научила эта ситуация.
Читать дальше →
Всего голосов 14: ↑14 и ↓0+22
Комментарии24

12 сервисов для прокачки насмотренности и поиска идей от руководителя команды дизайна Selectel

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

Привет, Хабр! Меня зовут Алина, я руководитель отдела дизайна в Selectel. Слышали когда-нибудь, что главное в нашей работе — вдохновение? Я тоже, поэтому в этой статье расскажу, какое место на самом деле оно занимает в дизайн-процессе наряду с насмотренностью и опытом. А еще — поделюсь конкретными источниками и подсказками из практики нашей команды, которые помогают создавать крутые визуалы каждый день.
Читать дальше →
Всего голосов 30: ↑29 и ↓1+37
Комментарии1

Анимация SVG-элемента path

Время на прочтение5 мин
Количество просмотров123K
Думаю многие видели обзоры игровых консолей нового поколения от Polygon (Vox Media). Это те, где консоли отрисовывались в стиле blueprint'ов:

PlayStation 4

Обзоры выглядели круто, довольно необычно и ново. О том как реализована основная фишка обзоров — SVG анимация, как сделать нечто подобное самому, и какие ещё «секретные» возможности скрывает старый добрый SVG в плане анимации элемента path — можно узнать под катом.
Читать дальше →
Всего голосов 64: ↑62 и ↓2+60
Комментарии15

Багфикс человека: как фиксить баги, которые мешают работать

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

Почему у людей не получается взять — и выполнить задачу? Откуда берутся заминки, неправильные оценки и прокрастинация? Почему люди не понимают друг друга, хотя вроде бы не дураки и общаются на одном языке?


Как оказалось, причина у всего этого одна — когнитивные искажения. Вот про них и поговорим.


image
Читать дальше →
Всего голосов 46: ↑43 и ↓3+40
Комментарии48

Перейди по ссылке, и я узнаю твой номер

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров51K

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

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

Но что если вы не хотите оставлять свой номер на сайте, который просто открыли? Поговорим на примере одного из таких сервисов - dmp.one. Важно: автор рекомендует открывать этот адрес во вкладке инкогнито с включённым uBlock Origin с кастомными правилами (о них ниже), иначе есть риск попадания вашего телефона в базу.

Читать далее
Всего голосов 134: ↑132 и ↓2+162
Комментарии88

Мегагайд: культура работы с Git

Уровень сложностиПростой
Время на прочтение16 мин
Количество просмотров34K

Привет всем! Меня зовут Юля, я фронтенд-разработчик, наставник на курсах по JS и React и организатор профессионального сообщества Tbilisi JS. В Практикуме я помогаю студентам на курсе «React-разработчик».

За время работы в разных компаниях и над разными проектами я поняла, что Git — это не только (и не столько!) знание самой технологии и конкретных команд, но и определённая культура взаимодействия, практики, подходы, договорённости. Всё это помогает участникам команды лучше понимать друг друга и работать быстрее и чётче.

Поговорим как раз об этом — о том, что формирует культуру работы с Git: начнём с конвенций именования коммитов и закончим практиками работы в пуллреквесте. В конце статьи я поделюсь полезными ссылками на интерактивные обучалки, шпаргалки и гайды.

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

Создаем веб-сайт, будто на дворе 1999 год

Уровень сложностиПростой
Время на прочтение16 мин
Количество просмотров37K

Задумывались ли вы когда-нибудь о том, как жилось веб-разработчикам 20+ лет назад, когда всемирная паутина была явлением совершенно новым, а чтобы войти в неё, приходилось некоторое время слушать специфические звуковые сигналы, JavaScript и CSS воспринимались скорее как диковинка, а не как привычные средства разработки веб-сайтов, а самым популярным браузером был Internet Explorer? Что ж, вероятнее всего, нет... Но, если у вас найдется несколько свободных минут и вы захотите разобраться в очередной бесполезной штуке — эта статья вас не разочарует!

Читать далее
Всего голосов 65: ↑64 и ↓1+83
Комментарии84

Почему вам не нужна версия для слабовидящих

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

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

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

Читать далее
Всего голосов 28: ↑27 и ↓1+33
Комментарии18

Чёрная магия трансформов, или об оптимизации анимаций на CSS

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

Иногда Frontend-разработчики сталкиваются с тем, что для оптимизации производительности нужно написать волшебное свойство translateZ(0) или will-change. Анимации перестанут зависать, ничего не будет лагать и мир станет чуть ярче. ✨

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

Память в браузерах и в Node.js: ограничения, утечки и нестандартные оптимизации

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

Интро: почему я написал эту статью


Меня зовут Виктор, я разрабатываю страницу результатов поиска Яндекса. Несмотря на внешнюю простоту, поисковая выдача — сложная штука: на каждый запрос генерируется своя уникальная страница, на которой в зависимости от запроса может присутствовать блок Картинок, Карты, Переводчик, видеоплеер и многие другие компоненты. Все они должны запускаться и работать в памяти обычных бюджетных телефонов, которые использует большинство наших пользователей. Браузерам должно хватать ресурсов, чтобы пользователь не видел вот такого:



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


Разрабатывая проект на JavaScript (TypeScript, ClojureScript или каком-то другом языке, транслируемом в JavaScript), мы привыкли создавать объекты, массивы, строки и вообще писать код, как будто память бесконечна. Это не так. Я расскажу о видах проблем с памятью, о том, какие ограничения мы часто забываем и как их можно преодолеть. В ответ браузеры и пользователи скажут вам спасибо.


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

Информация

В рейтинге
3 994-й
Откуда
Россия
Дата рождения
Зарегистрирован
Активность

Специализация

Frontend Developer
Senior
TypeScript
React
JavaScript
HTML
CSS
Webpack
Redux