Pull to refresh
0
Антон @anttoshka read⁠-⁠only

User

Создаем текстовый редактор на React.js

Reading time 17 min
Views 37K

Привет! Меня зовут Данила, и я фронтенд-разработчик в KTS.

Однажды в одном из своих проектов мне потребовалось реализовать кастомный текстовый редактор на React.js. Задача показалась мне довольно интересной, и я решил рассказать о своем опыте. В статье я поэтапно покажу, как можно создать текстовый редактор с базовыми функциями.

Надеюсь, информация будет полезной и сэкономит кому-то время и силы.

Читать далее
Total votes 17: ↑16 and ↓1 +15
Comments 10

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

Reading time 5 min
Views 19K


Познакомьтесь с Бобом


Боб — чрезвычайно амбициозный и активный разработчик.

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

Боб — квинтэссенция программиста, которой хотят стать многие из нас. Кто ещё заслуживает повышения, если не он? Поэтому Боба повышают до технического руководителя — должности, в которой, по мнению его начальства, он окажется ещё более ценным. И оно имеет все основания так думать. Но это ещё и значит, что ему придётся писать меньше кода и больше управлять ходом движения проекта в целом.
Читать дальше →
Total votes 40: ↑32 and ↓8 +24
Comments 22

Миллион с нуля за 2 года

Reading time 2 min
Views 25K

Всем привет.

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

Читать далее
Total votes 36: ↑3 and ↓33 -30
Comments 66

Невменяемый, необъятный масштаб браузеров

Reading time 3 min
Views 73K

Увидев вот эту публикацию про браузерные войны, я хотел бы представить альтернативное наблюдение за тем, как мы докатились до такой жизни. Но Дрю ДеВолт уже всё сказал за меня.

Начиная с первых войн между Netscape и IE, главным инструментом в конкуретной борьбе браузеров стала функциональность. Вот только стратегия неограниченного роста и расширения — совершенно безумная. Слишком долго мы позволяли ей продолжаться.

С помощью wget я скачал все 1217 спецификаций W3C, опубликованных на текущий момент. Существенная часть из них должна быть реализована в браузере, чтобы современный веб работал. Я подсчитал объём этих спецификаций. Как думаете, насколько сложен современный веб?

Читать далее
Total votes 210: ↑200 and ↓10 +190
Comments 695

[Личный опыт] Фронтенд-инженер из лондонского Facebook: как попасть в FAANG?

Reading time 17 min
Views 19K
Как готовиться к собеседованиям, чтобы устроиться в компанию уровня FAANG? Вместе с Олегом Громовым, фронтенд-инженером из лондонского офиса Facebook (ex. Yandex, Toptal etc.), составили план подготовки по мотивам прошедшего вебинара — опираясь на его личный опыт.

Обсуждаем:

  • плюсы-минусы работы в крупных компаниях,
  • оформление резюме,
  • как проходят скрининг, алгоритмическая и архитектурная секции,
  • какова роль английского и soft skills — на поведенческой секции и в целом на собеседовании,
  • где тренироваться необходимым навыкам для каждого этапа: собрали полезные ссылки.


Читать дальше →
Total votes 23: ↑18 and ↓5 +13
Comments 28

Знакомство с Rome от создателей Babel — компилятор, сборщик, линтер, тесты в одном флаконе

Reading time 3 min
Views 5.3K


Почти две недели назад вышла запись в блоге по поводу Rome.

Rome представляет собой целый набор инструментов — линтер, компилятор, сборщик, тест раннер и даже больше. Нацелен он на JS, TS, HTML, JSON, Markdown, CSS. Проект пытается унифицировать набор инструментов необходимых для фронт-енд разработки.

Rome монолитный и включает все традиционные инструменты фронт-енд экосистемы. Команда разработчиков называет это toolchain. Важным моментом является, то, что это не попытка объединить существующий набор инструментов, а разработать полностью новый набор инструментов. Все это должно быть в одном пакете и единой кодовой базой.

Rome разрабатывается как замена Babel, ESLint, Webpack, Prettier, Jest и прочих.
Читать дальше →
Total votes 10: ↑9 and ↓1 +8
Comments 9

Эффективное тестирование верстки

Reading time 15 min
Views 27K
Тестировать полезно. Тесты позволяют в автоматическом режиме безопасно рефакторить код и гарантируют его работу. Тесты – это живая документация: если информация в Wiki или в Confluence может устареть, то тесты всегда актуальны. Также многие крутые практики связаны с тестированием. Например, самотестирующийся код или разработка через тестирование (TDD), когда тесты пишутся перед кодом, а некоторые практики DevOps и Extreme Programming применимы только в условиях хорошего покрытия проекта тестами.



Но написать простые тесты, которые будут помогать в написании кода и не срывать дедлайны, задача сложная. Она становится ещё сложнее, если учесть, что нам приходится тестировать вёрстку. Это не два JSON сравнить: здесь не работают простые подходы «вызову функцию, проверю результат» — тестирование UI сложнее. Как эффективно и правильно тестировать верстку и писать для неё тесты, чтобы они были полезны, а дедлайны не горели, расскажет Максим Соснов (crazymax11), ведущий разработчик в СКБ Контур.
Total votes 21: ↑21 and ↓0 +21
Comments 15

Коротко о this в функциях javascript

Reading time 4 min
Views 25K

Предисловие


На просторах интернета довольно много информации о том, как работает this, но мне всё время не хватало буквально чуть-чуть, чтобы до конца в этом разобраться.
Возможно, именно эта статья станет для вас той, которая расставит всё по полочкам!

Без лишних слов


Мы разберем как простые, так и сложные примеры — так что всем будет интересно.
Читать дальше →
Total votes 17: ↑12 and ↓5 +7
Comments 11

Оптимизация производительности фронтенда. Часть 1. Critical Render Path

Reading time 14 min
Views 41K

Здравствуйте. Меня зовут Ник, я фронтенд разработчик (жидкие аплодисменты). Кроме того, что я пишу код, я преподаю в Школе программистов hh.ru.


Записи наших лекций от 2018-2019 учебного года можно посмотреть на youtube


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



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


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


  1. Зачем думать о производительности
  2. FMP, TTI + подробнее в докладе
  3. Critical render path, DOM, CSSOM, RenderTree
  4. Шаги по улучшению производительности первой загрузки + подробнее в докладе
Читать дальше →
Total votes 19: ↑18 and ↓1 +17
Comments 10

Как использовать десктоп без десктопа? Обзор Samsung DeX

Reading time 4 min
Views 57K
Привет, Хабр.

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

Решение пришло случайно при просмотре одного из обзоров — интерфейс Samsung DeX, позволяющий использовать в десктоп-режиме собственный смартфон.



Данная статья набрана и сверстана на смартфоне. Для тех кому интересно, как это работает, продолжение под катом.
Total votes 49: ↑47 and ↓2 +45
Comments 169

Module Federation в Webpack 5, плагин для обмена модулями между Javascript приложениями, описание и пример

Reading time 4 min
Views 44K
В пятой версии сборщика Webpack появился набор плагинов для обмена модулями между Javascript приложениями.

Эта статья — краткое описание и пример на основе двух небольших приложений построенных на фреймворке ReactJS.

Плагин Module Federation позволяет приложению экспортировать один или несколько модулей в отдельный JS файл. Отличный способ строить микрофронтенд приложения. Сторонние приложения могут импортировать себе готовые модули, это могут быть например реакт компоненты. Причём, импорт зависимостей Webpack берёт на себя. Отличие от NPM в том, что импорт в runtime.
Читать дальше →
Total votes 4: ↑4 and ↓0 +4
Comments 4

IT — это средний класс с натяжкой. И как НЕ надо проводить собеседование с программистом

Reading time 4 min
Views 25K
Много лет опыта в разработке (или любом другом айти направлении). Десятки пройденных очных собеседований. Работа в крупных IT компаниях с высочайшей культурой кода. Навыки, которым позавидовал бы любой разработчик из силиконовой долины: НИЧЕГО из этого не даст вам шанса пройти собеседования у таких людей. И дело не в компетенции…

image
Читать дальше →
Total votes 35: ↑17 and ↓18 -1
Comments 76

Настало ли время покинуть виртуальный дом [React'a]?

Reading time 4 min
Views 11K
Аудио версия на русском (яндекс.музыка) / iTunes

Разберём что не так с фреймворками как подходом и каким может быть следующий этап развития фронтенд архитектуры.

Картинка в посте, смысловой нагрузки не несёт
Читать дальше →
Total votes 27: ↑13 and ↓14 -1
Comments 78

Доклад «42». Большой конспект

Reading time 23 min
Views 25K
Привет, Хабр, меня зовут Вадим Макишвили. В 2014 году я выступил с докладом «36». Рассказывал про кризис среднего возраста, признавался в собственных слабостях и делился способами, которые помогли мне совладать со страхами. Сразу после выступления друзья стали надо мной подтрунивать, мол, давай каждые десять лет по продолжению. Я отшучивался, мол, обязательно сделаю. Но, вообще-то, не собирался, потому что каждые десять лет рассказывать всему миру про свои страхи — скучно.

Однако несколько месяцев назад на конференции YaTalks в Екатеринбурге я выступил с новым докладом. В заголовке число 42, и возникает вопрос: «Неужели Макишвили — автор одной темы?» Нет. Самокопания не было. А что было? И можно ли «42» считать продолжением «36»?

Мой рассказ имеет отношение к предыдущей лекции лишь косвенно. В «42» я детально обдумываю тему, которой тогда едва коснулся. Но если кому-то удобнее думать, что «42» — вторая серия, пусть так. Тогда впереди ещё и третья, которая не будет иметь ничего общего ни с первой, ни со второй, ну разве что автор — я, и название тоже окажется каким-то числом.

«42» — точно не про кризис среднего возраста.


— Здравствуйте, друзья. Мне очень много хочется вам рассказать. Так много, что первая версия этого доклада длилась два часа. Но организаторы сказали мне — Макишвили, не наглей. Короче, вы со мной здесь на час. Я постараюсь, чтобы вам не было ни скучно, ни грустно.
Читать дальше →
Total votes 46: ↑44 and ↓2 +42
Comments 20

Памятка по борьбе с алкоголем или Как пережить фуршеты

Reading time 20 min
Views 174K
Тут вот праздники скоро. Спросил недавно друг «как мне это все пережить?». Я сначала объяснял, а потом решил написать статью на Хабр. Рассказанное — услышит один человек, а написанное — прочитают сотни!

Меня, если честно, достаточно сильно раздражают всевозможные застолья. Потому что гораздо приятнее посидеть с паяльником или читая книгу, а не "… хорохорясь, ерепенясь и валяясь, как колода..." провести выходные. Но традиции-с, будь они неладны, формировались столетиями и не умея пить — бывает достаточно сложно вписаться в коллектив, найти нужный подход и т.д. Особенно грешат этим делом всевозможные руководящие кадры из старого поколения. Что же делать тем, для кого алкоголь и необходимость его употреблять — это просто лишняя головная боль? Самый простой ответ — НЕ ПИТЬ, но на практике полностью это очень сложно реализовать. Эффективнее в наших реалиях принять тезис «алкоголь — просто инструмент» и учиться с ним правильно работать и использовать для решения своих задач с минимизацией ущерба для здоровья.

Статью кладем в закладки и рассылаем всем друзьям, подчиненным и т.д. и т.п. Есть время подготовиться и встретить новогодние корпоративы во всеоружии. Практически уверен, что многое из описанного активно используют те, кто «не напиваться» обязан по долгу службы. Простой же обыватель чаще про это не думает, полагаясь на удачу и легкую руку. И чаще всего оказывается в проигрыше. Предупрежден = вооружен, поэтому под катом читаем, как победить в битве с алкоголем.

Читать дальше →
Total votes 191: ↑155 and ↓36 +119
Comments 478

11 факторов и лайфхаков, которые повысят вашу эффективность

Reading time 6 min
Views 3.9K
В этой статье я рассмотрю устоявшиеся практики, которые помогают экономить такие ресурсы как время и энергию разработчика.

На исследование этого вопроса давно меня вдохновляла книга «Как Герман Греф учил слона танцевать», в которой описываются различные процессы оптимизации производства, такие как lean-менеджмент и кайдзен. В то время вобрав в себя большое количество функций и процессов, я столкнулся со своей 100%-й загруженностью, при которой ощутимо прослеживалось влияние различных факторов на мою производительность и приходилось выбирать и эксперементировать, чтобы выиграть время. Это было особенно интересно с точки зрения управления ресурсами, так как большая часть «произодства» находилось внутри одной головы.
Читать дальше →
Total votes 22: ↑5 and ↓17 -12
Comments 54

[Обновлено в 10:52, 14.12.19] В офисе Nginx прошел обыск. Копейко: «Nginx был разработан Сысоевым самостоятельно»

Reading time 7 min
Views 313K

Другие материалы по теме:


Eng version
Что значит наезд на Nginx и как это отразится на индустрииdeniskin
Open source — наше всё. Позиция Яндекса по ситуации с Nginxbobuk
Официальная позиция Программных комитетов Highload++ и других IT-конференций на претензии к Игорю Сысоевуolegbunin


По информации от одного из сотрудников, в московском офисе опенсорс-разработчиков Nginx проводят обыски в рамках уголовного дела, истцом по которому выступает Рамблер (ниже официальный ответ пресс-службы компании по этому вопросу и подтверждение наличия претензий к Nginx). В качестве доказательств приводится фото постановления о производстве обыска в рамках уголовного дела, возбужденного 4 декабря 2019 года по статье 146 УК РФ «Нарушение авторских и смежных прав».

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


Как предполагается, истцом выступает компания Рамблер, а ответчиком пока «неустановленная группа лиц», а в перспективе — основатель Nginx Игорь Сысоев.

Суть претензии: Игорь начал работу над Nginx, будучи сотрудником Рамблера, а только после того, как инструмент стал популярен, основал отдельную компанию и привлек инвестиции.

Почему Рамблер вспомнил о своей «собственности» только спустя 15 лет — неясно.
Total votes 797: ↑794 and ↓3 +791
Comments 1457

Ключевое слово this в JavaScript. Полное* руководство

Reading time 6 min
Views 40K
* скорее всего, я что-нибудь да упустил, но уверен, в комментариях мне это подскажут

Эту статью я пишу для своих личных нужд. Планируется, что она будет содержать в себе ответы на все вопросы, которые мне задают студенты на эту тему. Если она пригодится кому-то ещё — здорово.

image

Содержание.

  1. Введение
  2. Заблуждения о this
  3. Как определить значение this
Читать дальше →
Total votes 26: ↑24 and ↓2 +22
Comments 30

Книга «Совершенный алгоритм. Графовые алгоритмы и структуры данных»

Reading time 8 min
Views 15K
image Привет, Хаброжители! Алгоритмы — это сердце и душа computer science. Без них не обойтись, они есть везде — от сетевой маршрутизации и расчетов по геномике до криптографии и машинного обучения. «Совершенный алгоритм» превратит вас в настоящего профи, который будет ставить задачи и мастерски их решать как в жизни, так и на собеседовании при приеме на работу в любую IT-компанию.

Во второй книге Тим Рафгарден — гуру алгоритмов — расскажет о графовом поиске и его применении, алгоритме поиска кратчайшего пути, а также об использовании и реализации некоторых структур данных: куч, деревьев поиска, хеш-таблиц и фильтра Блума.

В данном посте представлен отрывок «Фильтры Блума: основы»
Читать дальше →
Total votes 22: ↑22 and ↓0 +22
Comments 6

Десять заповедей React компонентов

Reading time 11 min
Views 11K

the-10-component-commandments


Написано Kristofer Selbekk, в сотрудничестве с Caroline Odden. Основано на лекции с таким же названием и с теми же людьми, состоявшейся на встрече ReactJS в Осло в июне 2019 года.

От переводчика — оригинальное название The 10 Component Commandments не упоминает React, но большинство примеров и рекомендаций относятся именно к реакту, к тому же статья выложена под react тэгом и написана реакт разработчиками.


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


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

Читать дальше →
Total votes 18: ↑17 and ↓1 +16
Comments 0
1

Information

Rating
Does not participate
Location
Киев, Киевская обл., Украина
Date of birth
Registered
Activity