Pull to refresh
29
0
Соколов Роман @Peregrinus

User

Send message

Ускоряем сборку веб-приложения с webpack

Reading time14 min
Views44K

По мере того как ваше приложение развивается и растёт, увеличивается и время его сборки — от нескольких минут при пересборке в development-режиме до десятков минут при «холодной» production-сборке. Это совершенно неприемлемо. Мы, разработчики, не любим переключать контекст в ожидании готовности бандла и хотим получать фидбек от приложения как можно раньше — в идеале за то время, пока переключаемся с IDE на браузер.


Как этого достичь? Что мы можем сделать, чтобы оптимизировать время сборки?


Эта статья — обзор существующих в экосистеме webpack инструментов для ускорения сборки, опыт их применения и советы.


Оптимизации размера бандла и производительности самого приложения в этой статье не рассматриваются.

Читать дальше →

10 мифов о бешенстве

Reading time7 min
Views342K
Всем привет.

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

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

Что среднестатистический житель России может навскидку сказать о бешенстве? Ну, есть такая болезнь. В связи с ней чаще всего вспоминают бешеных собак. Старшее поколение скорее всего еще обязательно добавит, что в случае укуса такой собаки придется делать 40 уколов в живот и на несколько месяцев забыть об алкоголе. Вот, пожалуй, и всё.

Давайте разберемся, почему такое отношение к этому заболеванию крайне опасно.
Читать дальше →

Я прочитал 80 резюме, у меня есть вопросы

Reading time6 min
Views115K
У нас не очень простое собеседование. Нужно пройти 3 шага:

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


Я три месяца был тем программистом, который оценивает резюме. Мне есть о чём с вами поговорить.
Читать дальше →

Художественные детские книги про социнжиниринг

Reading time3 min
Views33K


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

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

Собеседование на английском: как правильно рассказать о себе

Reading time5 min
Views58K
Все больше рекрутеров в современных компаниях предпочитают проводить собеседования с соискателями на английском языке. Для HR-специалистов это выгодно, ведь можно одновременно проверить знания английского у соискателя и узнать больше информации о нем.

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

Преподаватели онлайн-школы английского языка EnglishDom поделились мнениями, как построить презентацию самого себя на английском, чтобы вас взяли на работу.
Читать дальше →

Как мы пилили серверный рендеринг и что из этого вышло

Reading time5 min
Views18K

Всем привет! На протяжении года мы переходим на React и задумались о том, как бы сделать так, чтобы наши пользователи не ждали клиентской шаблонизации, а видели страницу как можно быстрее. С этой целью решили делать серверный рендеринг (SSR — Server Side Rendering) и оптимизировать SEO, ведь не все поисковые движки умеют исполнять JS, а те, которые умеют, тратят время на исполнение, а время краулинга каждого сайта ограничено.


Читать дальше →

Разработка простых современных JavaScript-приложений с использованием Webpack и прогрессивных веб-технологий

Reading time19 min
Views34K
Думали ли вы о том, чтобы воспользоваться при разработке своего очередного веб-проекта простейшим из существующих набором технологий? Если это так — значит материал, перевод которого мы публикуем сегодня, написан специально для вас.

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

image

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

Big O

Level of difficultyEasy
Reading time5 min
Views252K
бинарный поиск
Примечание. Сокращенный перевод, скорее пересказ своими словами.
UPD: как отметили в комментариях, примеры не идеальны. Автор не ищет лучшее решение задачи, его цель объяснить сложность алгоритмов «на пальцах».


Big O нотация нужна для описания сложности алгоритмов. Для этого используется понятие времени. Тема для многих пугающая, программисты избегающие разговоров о «времени порядка N» обычное дело.

Если вы способны оценить код в терминах Big O, скорее всего вас считают «умным парнем». И скорее всего вы пройдете ваше следующее собеседование. Вас не остановит вопрос можно ли уменьшить сложность какого-нибудь куска кода до n log n против n^2.

Структуры данных


Выбор структуры данных зависит от конкретной задачи: от вида данных и алгоритма их обработки. Разнообразные структуры данных (в .NET или Java или Elixir) создавались под определенные типы алгоритмов.

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

Здесь мы будем использовать только массивы чисел (прямо как на собеседовании). Примеры на JavaScript.
Читать дальше →

Переписываем тестовое задание для junior frontend на TypeScript и react-hooks

Reading time21 min
Views44K

Привет Хабр, сегодня мы позанимаемся с TypeScript и React-hooks. Данный туториал поможет вам разобраться с основами "тайпскрипта" и поможет в работе над тестовым заданием для фронтендера.


Тестовые задания на проекте "Без Воды" — это возможность получить code-review. Дедлайн для текущего задания — 11 апреля 2019 года.


Читать дальше →

Gatsby.js в деталях

Reading time15 min
Views93K


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

Читать дальше →

Вычисляемое видео в 755 мегапикселей: пленоптика вчера, сегодня и завтра

Reading time19 min
Views86K


Какое-то время назад автору довелось читать лекцию во ВГИК, и в аудитории было много людей с операторского факультета. Аудитории был задан вопрос: «С каким максимальным разрешением вы снимали?», и дальше выяснилось, что примерно треть снимала 4К или 8 мегапикселей, остальные — не более 2К или 2 мегапикселя. Это был вызов! Мне предстояло рассказать про камеру с разрешением 755 мегапикселей (raw разрешением, если быть точным, поскольку конечное у нее 4К)  и какие феерические возможности это дает для профессиональной съемки.

Сама камера выглядит так (этакий маленький слоник):



Причем, открою страшную тайну, чтобы сделать этот снимок искали ракурс получше и человека покрупнее. Мне доводилось щупать эту камеру вживую, скажу, что она выглядит намного крупнее. Снимок ниже с Йоном Карафином, с которым мы примерно одного роста, более точно передает масштабы бедствия:



Кому интересны принципиально возможности вычисляемого видео о которых редко пишут — вся правда под катом! )
Читать дальше →

Собеседование для фронтенд-разработчика на JavaScript: самые лучшие вопросы

Reading time9 min
Views213K
Недавно мне довелось побывать на встрече участников проекта FreeCodeCamp в Сан-Франциско. Если кто не знает, Free Code Camp — это сообщество, нацеленное на изучение JavaScript и веб-программирования. Там один человек, который готовился к собеседованиям на позицию фронтенд-разработчика, попросил меня подсказать, какие вопросы по JavaScript стоит проработать. Я немного погуглил, но не смог найти подходящего списка вопросов, на который я бы мог дать ссылку и сказать: «Разбери эти вопросы и работа твоя». Некоторые списки были близки к тому, что мне хотелось найти, некоторые выглядели очень уж простыми, но все они были либо неполными, либо содержали вопросы, которые вряд ли кто станет задавать на реальном собеседовании.

image
Читать дальше →

Собираем бандл мечты с помощью Webpack

Reading time18 min
Views69K
JS-приложения, сайты и другие ресурсы становятся сложнее и инструменты сборки — это реальность веб-разработки. Бандлеры помогают упаковывать, компилировать и организовывать библиотеки. Один из мощных и гибких инструментов с открытым исходным кодом, который можно идеально настроить для сборки клиентского приложения — Webpack.

Максим Соснов (crazymax11) — Frontend Lead в N1.RU внедрил Webpack в несколько больших проектов, на которых до этого была своя кастомная сборка, и контрибьютил с ним несколько проектов. Максим знает, как с Webpack собрать бандл мечты, сделать это быстро и конфигурировать так, чтобы конфиг оставался чистым, поддерживаемым и модульным.


Расшифровка отличается от доклада — это сильно усовершенствованная пруфлинками версия. По всей расшифровке рассыпаны пасхалочки на статьи, плагины, минификаторы, опции, транспайлеры и пруфы слов докладчика, ссылки на которые просто не поставить в выступление. Если собрать все, то откроется бонусный уровень в Webpack :-)

Создаем несложный шахматный ИИ: 5 простых этапов

Reading time4 min
Views44K


Перевели для вас статью Лори Хартикка (Lauri Hartikka) о создании простейшего ИИ для шахмат. Она написана еще в 2017 году, но базовые принципы остались теми же. Все файлы, которые использовал Лори, тоже доступны.

Простой искусственный интеллект, который умеет играть в шахматы, можно создать на базе четырех концепций:

  1. 1. Перемещение;
  2. 2. Оценка доски;
  3. 3. Минимакс;
  4. 4. Альфа-бета-отсечение. На каждом этапе работы с алгоритмом будет использоваться одна из них, это позволит постепенно совершенствовать игровые способности ИИ.
Читать дальше →

Про одного парня

Reading time14 min
Views192K
История реальная, я все видел своими глазами.

Несколько лет один парень, как и многие из вас, работал программистом. На всякий случай напишу так: «программистом». Потому что он был 1Сником, на фиксе, производственной компании.

До этого он пробовал разные специальности – 4 года во франче программистом, руководителем проектов, умел закрывать по 200 часов, одновременно получая процент с проекта, за руководство и немного занимаясь продажами. Пробовал самостоятельно разрабатывать продукты, был начальником IT-отдела в большой компании, численностью 6 тысяч человек, примерял разные варианты применения своей кавычечной профессии – программиста 1С.

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

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

Шесть бесплатных автоматизированных платформ для изучения программирования

Reading time3 min
Views112K

Привет, сообщество! Мы в Хекслете составили список из пяти бесплатных автоматизированных онлайн-платформ для новичков.


На русском:


HTML Academy
«Академия» учит верстать сайты. Основной контент в формате подписки (390 рублей в месяц) и интенсивов (от 12500 рублей), но есть несколько бесплатных автоматизированных курсов по основам HTML, CSS и JavaScript.


В HTML Academy не столько задания для прокачки в программировании, сколько для знакомства с основами веб-разработки. Но это идеальный формат для тех, кто никогда не писал код и хочет попробовать. Большое количество веб-разработчиков начинало путь именно здесь.


Code Basics
Это новый бесплатный сервис от Хекслета. Его основная идея — через решение простых заданий прямо в браузере погружать новичков в основы программирования. Сейчас есть уроки по PHP, JavaScript и Python, ближайшее время появятся — новые. Платформа подойдет лучше всего для изучения основ синтаксиса, и меньше — для прокачки алгоритмов.


Обучение построено вокруг чередования небольших порций теории (3-4 абзаца) и закрепления практики в тренажере. У каждого практического задания есть решение учителя, которое можно сравнить со своим после успешного прохождения и раздел для обсуждения задания.

Читать дальше →

Fuck Up story: как я разочаровался в digital-услугах для бизнеса и проимел своё дело (ну почти)

Reading time14 min
Views58K
Это была славная охота.

Моя жизнь была посвящена ИТ-сфере. Я был инженером, создававшим интересные продукты для больших промышленных компаний. Моей географией была вся Россия, я вживую видел цеха КАМАЗа, ВАЗа и других автогигантов. Но всему в нашей судьбе настаёт предел, и я выгорел. О причинах расскажу как-нибудь в другой раз. Главное, что я, опытный разработчик и техник, ушёл на вольные хлеба и, поскольку у меня появилась семья, решил сделать бизнес — свой магазин товаров для детей, по особым принципам. В общем, как многие из программеров, сделать то, чего не достаёт мне среди предложений на рынке. И знаете, что? Я выяснил, что найти простейших, базовых, нужных профессионалов-подрядчиков очень сложно. Миллион фрилансеров и фирм, а выхлоп… Это был квест, и о нём я должен поведать миру. Не ходите по моим граблям.


Это самое лучшее, что описало моё состояние
Читать дальше →

Фронтенд наносит ответный удар: топ-10 (?) докладов HolyJS 2018 Piter

Reading time6 min
Views13K


Привет Хабру! Мы уже выложили на YouTube видеозаписи докладов HolyJS 2018 Piter, а для вас сделали (не совсем) традиционную подборку самых лучших из них по мнению посетителей конференции.

Как обычно, наверху «младшие» доклады, в конце — с самым высоким рейтингом. Конечно, это не значит, что один доклад намного хуже другого: оценки всей подборки в диапазоне от 4,28 до 4,56. Если посмотреть число отзывов, или поменять методику расчета, места могут легко поменяться. В общем, смотрите всё!

Под катом — и видеозаписи лучших докладов, и ссылки на их презентации, и короткие описания, и ссылка на полный плейлист.
Читать дальше →

Секреты JavaScript-кухни: специи

Reading time5 min
Views10K
Взгляните на следующие фрагменты кода, решающие одну и ту же задачу, и подумайте о том, какой из них вам больше нравится.
Вот первый: Вот второй:
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
 .filter(int => isEven(int))
 .filter(int => isBiggerThan(3, int))
 .map(int => int + 1)
 .map(int => toChar(int))
 .filter(char => !isVowel(char))
 .join('')
// 'fhjl'
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
 .filter(isEven)
 .filter(isBiggerThan(3))
 .map(plus(1))
 .map(toChar)
 .filter(not(isVowel))
 .join('')
// 'fhjl'
«Готов поспорить, что второй вариант отличается гораздо лучшей читабельностью, чем первый», — говорит автор материала, перевод которого мы сегодня публикуем. По его словам — всё дело в аргументах методов filter() и map().



Сегодня мы поговорим о том, как перерабатывать код, подобный первому примеру, так, чтобы он выглядел как код из второго. Автор статьи обещает, что после того, как вы поймёте, как это работает, вы будете относиться к своим программам по-новому и не сможете не обращать внимания на то, что раньше могло показаться вполне нормальным и не требующим улучшения.
Читать дальше →

Практика применения прокси-объектов в JavaScript

Reading time7 min
Views31K
Возможно, вы слышали о том, что в JavaScript ES6 появились новые объекты — так называемые прокси. Тем, кто знает о том, что такое прокси-объекты, и умеет с ними работать, они могут принести немалую пользу. Сегодня мы публикуем перевод материала, который направлен на то, чтобы объяснить всем желающим особенности работы с прокси-объектами JS на множестве примеров.

image

Также откройте в новой вкладке наш предыдущий пост: JavaScript-прокси: и красиво, и полезно
Читать дальше →

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Date of birth
Registered
Activity