Как стать автором
Обновить
5
0
Владимир Проскурин @Vlad_IT

Front-end

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

Вечный RnD: chunk flushing для серверного рендеринга React + WMF

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

Все говорят про webpack-module-federation - микрофронты тут, микрофронты там.
— "А мы уже внедрили", "а мы уже построили микрофронтовую-архитектуру", "мы релизим независимо".

Но начинаешь расспрашивать, "а что сделали", "а как связали" - выходит что за всеми этими броскими фасадами скрывалось добавление вызова ModuleFederationPlugin(...) на уровне рядового потребителя, в лучшем случае с подстройкой конфигурации под локальный и продуктовый стенды. А независимые релизы - обычный авто деплой trunk'а.

На этом фоне доклады, повествующие о динамическом развертывании k8s pod'ов с версиями микрофронтов, указанных в заголовках браузера (на базе argo-cd) производят вау-эффект. Но даже все эти истории имеют один общий недостаток.

На вопрос:
— А как вы реализовали SSR?

Следует ответ:
— Мы не стали этого делать, у нас админка / дэшборд / MVP / *.

Читать далее
Всего голосов 15: ↑14 и ↓1+13
Комментарии11

Стохастический язык программирования на основе алгоритмов Маркова

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

MarkovJunior — это вероятностный язык программирования, в котором программы являются сочетаниями правил перезаписи, а инференс выполняется при помощи распространения ограничений. MarkovJunior назван в честь математика Андрея Андреевича Маркова, придумавшего и исследовавшего то, что сейчас называется алгоритмами Маркова.
Читать дальше →
Всего голосов 139: ↑139 и ↓0+139
Комментарии24

Реализация мемоизации в JavaScript

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

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

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

Перевод первой части учебника Patterns.dev

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

Привет! Меня зовут Айнур, и я frontend-разработчик SimbirSoft. Более 6 лет я работаю над коммерческими проектами, создаю и улучшаю интерфейсы, поэтому в работе достаточно часто использую паттерны проектирования. Неоднократно я обращался за идеями и лайфхаками к книге Patterns.dev, которая содержит очень современный взгляд на шаблоны проектирования, рендеринга и производительности JavaScript.

Авторы Patterns.dev:

Лидия Холли — штатный консультант и преподаватель по разработке программного обеспечения, которая в основном работает с JavaScript, React, Node, GraphQL. Она также занимается наставничеством и проводит личные тренинги.

Эдди Османи — технический менеджер, работающий над Google Chrome. Его команды работают над такими проектами, как Lighthouse, PageSpeed ​​Insights, Chrome User Experience Report и другими.

Материал книги будет полезен не только React-разработчикам, но и всем, кто так или иначе интересуется или сталкивается с frontend-разработкой.

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

Источник: https://www.patterns.dev/
Данный адаптированный материал распространяется на условиях лицензии Creative Commons Attribution-NonCommercial 4.0 International (CC BY-NC 4.0)

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

Самый научный гайд по сну

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

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

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

Например, мне категорически не хотелось расставаться со смартфоном перед сном. Спустя долгие часы изучения этого вопроса я обнаружил, что этого не нужно делать! И ребята, сидящие на диете, можете выдохнуть, метаболизм во сне не отключается. Ниже мы подробно и без воды разберём всё, что касается сна.

Читать далее
Всего голосов 133: ↑127 и ↓6+121
Комментарии134

Полное понимание асинхронности в браузере

Время на прочтение24 мин
Количество просмотров95K
Про асинхронность JavaScript написано много статей, документации и книг. Но вся информация сильно распределена по интернету, поэтому сложно быстро и полностью разобраться, что к чему, и составить цельную картину в голове. Не хватает одного исчерпывающего гайда. Именно эту потребность я и хочу закрыть своей статьёй.

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

Планировщик задач: не замораживаем вкладку при открытии страницы

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

Современные сайты — это сложные проекты, требующие много времени на обработку JavaScript. А современные пользователи — это требовательные люди, готовые убежать к конкуренту при ощущении «что-то сайт подтормаживает». Такое ощущение у пользователя может вызываться большим Total Blocking Time, когда он подолгу не может взаимодействовать со страницей.

Что в такой ситуации делать? На нашей конференции HolyJS Виктор Хомяков из Яндекса рассказал о том, как там делали инициализацию скриптов на странице поиска более дружественной к человеку и не блокирующей UI. А также о том, как и вам уменьшить TBT, не ухудшая другие показатели.

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

Читать далее
Всего голосов 23: ↑22 и ↓1+21
Комментарии13

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

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

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

В этой статье мы подробно рассмотрим мониторинг, расскажем о нескольких примерах использования, дадим рекомендации, а также поговорим о том, как конкретно мониторинг способен повысить безопасность, производительность и надёжность при помощи наблюдаемости.
Читать дальше →
Всего голосов 36: ↑35 и ↓1+34
Комментарии2

Воспитай свой второй мозг. Увеличь продуктивность

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

Наш мозг — крайне загруженная вещь. Наш мозг обрабатывает всю эту ежедневную суматоху: навестить бабушку, купить 100 500 продуктов в магазине, уповать о падении рубля и так далее. В этом урагане информации мы забываем по истине важные для нас вещи.

Хотели бы вы иметь второй мозг? Мозг, способный запомнить всё. Мозг, в котором содержится вся полезная информация из книг, статей, видео, полученная вами?

Звучит прекрасно, не так ли? Может, когда‑то и казалось сказками, однако не сейчас.

Хочу всё знать!
Всего голосов 70: ↑63 и ↓7+56
Комментарии111

Прокачивайте математику – вот как это поможет при программировании

Время на прочтение6 мин
Количество просмотров33K
Пол Орланд исследует, как можно прокачать навыки программирования, развивая математическую подготовку и всё лучше разбираясь в том, как сохраняется связь между математикой и программированием.

Эта статья адресована всем, кто хочет улучшить математические навыки, но в особенности программистам, желающим применять математические навыки в повседневной работе.
Читать дальше →
Всего голосов 55: ↑27 и ↓28-1
Комментарии44

Как на практике работать над перфомансом веб-приложения: опыт Авто.ру

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

Советов «как ускорить веб-приложение» в интернете немало. Но при попытке применить их на деле может вспоминаться мем «делойте хорошо а плохо не делойте». Ситуации очень различаются, и универсальные рецепты плохо подходят. 

Поэтому на нашей конференции HolyJS Наталья Стусь поделилась тем, как выглядела работа над производительностью не в «вакууме», а конкретно в случае Авто.ру. Конечно, раз всё индивидуально, вы не сможете тут же сделать всё в своём проекте «точно так же». Но вот извлечь какие-то полезные принципы и понять, на что обратить внимание, вполне можно. Участникам конференции доклад понравился, и теперь для Хабра мы сделали его текстовую версию (а для тех, кто предпочитает видео, доступна запись).

Далее повествование — от лица Натальи.

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

Как запоминать иностранные слова

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

На факультете иностранных языков (!) в досмартфоновую эпоху меня называли «ходячий словарь», хотя память вроде средняя. Поделюсь тактиками, которые я использовал.

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

эмоции (у него сложная фамилия, но я запомнил легко: она забавно звучит);

ассоциативные связи (у него сложная фамилия, но я запомнил легко: у друга была похожая).

Эмоции

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

Читать далее
Всего голосов 31: ↑28 и ↓3+25
Комментарии41

Ты можешь лучше: как избавиться от вины, что ты недостаточно хорош

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

Многие отличные специалисты, руководители и предприниматели живут с ощущением, что они могли бы быть более эффективными и результативными. Работать больше, добиваться лучших результатов, учиться быстрее. Это постоянное ощущение дефицита рождает чувство вины: «Я мало стараюсь, другие в мои годы достигли большего, надо прилагать еще больше усилий». Чувство вечной вины и стыда — изматывающее и разрушающее. Можно ли с ним что-то сделать?

Читать далее
Всего голосов 60: ↑56 и ↓4+52
Комментарии29

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

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

Фреймворки вам требуются не для всего, но в случае их использования есть ряд способов, позволяющих добиться максимального быстродействия. В данной статье речь пойдёт о пяти шаблонах загрузки данных, которые при уместном применении позволят значительно повысить производительность приложений или сайтов.
Читать дальше →
Всего голосов 43: ↑39 и ↓4+35
Комментарии2

Асинхронность, конкурентность, параллельность, многопоточность — разбираемся «по понятиям» :)

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

Эта статья представляет собой краткий (шутка!) конспект одноименного (почти) вебинара, недавно проведенного автором.

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

Ну и немного раскрыть глаза на то, что, оказывается в PHP есть и асинхронность, и многопоточность, и в общем-то не нужно ждать мифической версии PHP 10, чтобы начать их использовать уже прямо сейчас!

Лонг-рид с кодом ждёт вас!
Всего голосов 31: ↑31 и ↓0+31
Комментарии19

Процесс запуска и проведения АВ-тестов

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

Приветствую, уважаемые читатели Хабра. Меня зовут Николай Французов, я digital-аналитик в компании Tele2, занимаюсь сбором и анализом данных, построением дашбордов и проведением А/В-тестов.

Я хотел бы рассказать вам о том, как мы проводим тесты в нашем проекте, и поделиться опытом, возможно, логикой проведения и приведенными процессами вы сможете воспользоваться в ваших проектах, а python-фишечки по расчету fixed horizon и анализу результатов пригодятся в ваших исследованиях.

Структура

- Кратко про А/В-тесты

- Процесс проведения —  первая часть, работа аналитика данных. Расчет fixed horizon и формирование ТЗ;

- Процесс проведения —  вторая часть, работа аналитика стрима проекта. Настройка;

- Процесс проведения —  третья  часть, сбор данных, анализ результатов и выводы.

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

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

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

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

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

Многопоточность на фронте: абсурд или прекрасное архитектурное решение?

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

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

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

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

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

Как всё успевать: 10 проверенных принципов борьбы с хаосом задач

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

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

За долгие годы работы в IT такие методики и принципы выработались и у меня. Например, «Принцип пустого почтового ящика». Или «Принцип постепенного проявления». Они проверены временем и помогают мне успешно ориентироваться в окружающем потоке задач. В этой статье я хочу поделиться с вами этими принципами. Возможно, какие-то из них покажутся вам полезными и пригодятся.

Читать далее
Всего голосов 51: ↑48 и ↓3+45
Комментарии26

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

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


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


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


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


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


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

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

Информация

В рейтинге
Не участвует
Откуда
Москва, Москва и Московская обл., Россия
Зарегистрирован
Активность