Как уменьшали размер VS Code, используя name mangling — сокращение идентификаторов во время сборки
В этой статье рассказывается, как мы обнаружили возможность такой оптимизации, какие подходы рассматривали, и как в конце концов добились уменьшения размера на 20%. Возможно, будет не так много конкретики - я хочу, скорее, рассказать, как в команде VS Code подходят к решению инженерных задач. Тем более, что наше решение, скорее всего, не совсем оптимальное, и уж точно подойдет не всем кодовым базам.
#статья
❤️ Прожимай реакции, если нравится такой формат
👉 Читать статью
В этой статье рассказывается, как мы обнаружили возможность такой оптимизации, какие подходы рассматривали, и как в конце концов добились уменьшения размера на 20%. Возможно, будет не так много конкретики - я хочу, скорее, рассказать, как в команде VS Code подходят к решению инженерных задач. Тем более, что наше решение, скорее всего, не совсем оптимальное, и уж точно подойдет не всем кодовым базам.
#статья
❤️ Прожимай реакции, если нравится такой формат
👉 Читать статью
👍4❤1
String.prototype.startsWith()
Метод
#полезное
Метод
startsWith()
проверяет, начинается ли строка с заданной подстроки.#полезное
👍7❤2
Как показать миллион зданий на карте — и не сломать браузер
В 2ГИС мы аккумулируем огромное количество геоданных, с которыми взаимодействуют миллионы пользователей ежедневно. Анализируя их, мы можем получить ценную информацию и найти важные идеи для развития городов. Эти данные также полезны организациям.
#статья
❤️ Прожимай реакции, если нравится такой формат
👉 Читать статью
В 2ГИС мы аккумулируем огромное количество геоданных, с которыми взаимодействуют миллионы пользователей ежедневно. Анализируя их, мы можем получить ценную информацию и найти важные идеи для развития городов. Эти данные также полезны организациям.
#статья
❤️ Прожимай реакции, если нравится такой формат
👉 Читать статью
❤2👍2🔥2
Функции высшего порядка
Функции могут принимать другие функции как аргументы или возвращать их.
#функции
Функции могут принимать другие функции как аргументы или возвращать их.
#функции
👍5❤2🔥1
Ликбез по распространенным Client-Side уязвимостям
В этой статье мы покажем:
как в разных ситуациях манипулировать веб-сайтом таким образом, чтобы он передавал пользователям вредоносный JavaScript.
как скомпрометировать администратора сайта, отправив ему личное сообщение;
как атаковать разом всех пользователей при помощи комментария под статьей;
как заставить пользователя отправить запрос на действия, которые он не собирается выполнять;
как прослушивать WebSocket-соединения;
#статья
❤️ Прожимай реакции, если нравится такой формат
👉 Читать статью
В этой статье мы покажем:
как в разных ситуациях манипулировать веб-сайтом таким образом, чтобы он передавал пользователям вредоносный JavaScript.
как скомпрометировать администратора сайта, отправив ему личное сообщение;
как атаковать разом всех пользователей при помощи комментария под статьей;
как заставить пользователя отправить запрос на действия, которые он не собирается выполнять;
как прослушивать WebSocket-соединения;
#статья
❤️ Прожимай реакции, если нравится такой формат
👉 Читать статью
❤1👍1
Подробная настройка Content Security Policy
Content Security Policy (CSP) - это механизм безопасности веб-приложений, который используется для сокращения рисков, связанных с атаками, такими как внедрение скриптов (XSS) и выполнение нежелательного кода (инъекция). CSP позволяет веб-разработчикам указывать браузерам, из каких источников разрешено загружать ресурсы, такие как скрипты, стили, изображения, шрифты и другие элементы.
#статья
❤️ Прожимай реакции, если нравится такой формат
👉 Читать статью
Content Security Policy (CSP) - это механизм безопасности веб-приложений, который используется для сокращения рисков, связанных с атаками, такими как внедрение скриптов (XSS) и выполнение нежелательного кода (инъекция). CSP позволяет веб-разработчикам указывать браузерам, из каких источников разрешено загружать ресурсы, такие как скрипты, стили, изображения, шрифты и другие элементы.
#статья
❤️ Прожимай реакции, если нравится такой формат
👉 Читать статью
❤1
Функции обратного вызова
Функция может принимать другую функцию в качестве аргумента и вызывать ее внутри себя.
#функции
Функция может принимать другую функцию в качестве аргумента и вызывать ее внутри себя.
#функции
❤1👍1
RxJS: как операторы высшего порядка упрощают код
В этой статье я покажу, что в HOO нет ничего мифического, и расскажу в каких случаях вам нужно использовать операторы высшего порядка. Сейчас вы подумаете, что это скучный лонгрид, но не торопитесь. Мы рассмотрим всего 4 оператора:
#статья
❤️ Прожимай реакции, если нравится такой формат
👉 Читать статью
В этой статье я покажу, что в HOO нет ничего мифического, и расскажу в каких случаях вам нужно использовать операторы высшего порядка. Сейчас вы подумаете, что это скучный лонгрид, но не торопитесь. Мы рассмотрим всего 4 оператора:
switchMap
, exhaustMap
, concatMap
, mergeMap
.#статья
❤️ Прожимай реакции, если нравится такой формат
👉 Читать статью
Стрелочные функции
Стрелочные функции предоставляют сокращенный синтаксис для определения функций.
#функции
Стрелочные функции предоставляют сокращенный синтаксис для определения функций.
#функции
👍5
Задачи про PEG-парсеры
В итоге я сделалигру программу CrateGram
#статья
❤️ Прожимай реакции, если нравится такой формат
👉 Читать статью
В итоге я сделал
#статья
❤️ Прожимай реакции, если нравится такой формат
👉 Читать статью
❤1
Анонимная функция
Анонимные функции могут быть присвоены переменным и использованы как значения.
#функции
Анонимные функции могут быть присвоены переменным и использованы как значения.
#функции
👍4❤1
Просто о Deep
Одним из возможных вариантов является переход на GraphQL. Это позволит решить три вышеуказанных проблемы. Однако вместе с этим может появиться новый нюанс - общеизвестная проблема N+1, которую часто связывают с использованием GraphQL.
#статья
❤️ Прожимай реакции, если нравится такой формат
👉 Читать статью
Одним из возможных вариантов является переход на GraphQL. Это позволит решить три вышеуказанных проблемы. Однако вместе с этим может появиться новый нюанс - общеизвестная проблема N+1, которую часто связывают с использованием GraphQL.
#статья
❤️ Прожимай реакции, если нравится такой формат
👉 Читать статью
👍2❤1
Добавление server side Open Graph и прочего SEO в существующую SPA
Представьте себе следующую ситуацию: у вас на руках есть SPA с рендерингом полностью на клиенте, и вам необходимо сделать так, чтобы в зависимости от URL было разное содержимое у тега
Например, ваш шеф просит вас сделать так, чтобы при вставке в Телеграм ссылки на французскую версию сайта с query параметром
Как раз в такой позиции я оказался некоторое время назад, и мне на растерзание попался сайт на чистом, старом-добром, клиентском Vue.
#статья
❤️ Прожимай реакции, если нравится такой формат
👉 Читать статью
Представьте себе следующую ситуацию: у вас на руках есть SPA с рендерингом полностью на клиенте, и вам необходимо сделать так, чтобы в зависимости от URL было разное содержимое у тега
<head>
.Например, ваш шеф просит вас сделать так, чтобы при вставке в Телеграм ссылки на французскую версию сайта с query параметром
?hl=fr
появлялась превью с французским заголовком и описанием сайта.Как раз в такой позиции я оказался некоторое время назад, и мне на растерзание попался сайт на чистом, старом-добром, клиентском Vue.
#статья
❤️ Прожимай реакции, если нравится такой формат
👉 Читать статью
👍3
Создание функции
В этом примере функция
#функции
В этом примере функция
greet
принимает аргумент name
и возвращает приветствие.#функции
👍2
Под капотом анимаций в React Native
Это вторая и последняя статья из серии как работает React Native (RN) под капотом, на примере анимаций.
#статья
❤️ Прожимай реакции, если нравится такой формат
👉 Читать статью
Это вторая и последняя статья из серии как работает React Native (RN) под капотом, на примере анимаций.
#статья
❤️ Прожимай реакции, если нравится такой формат
👉 Читать статью
👍2
Бот-сказочник, или как генерировать истории с помощью ChatGPT и Telegram
Представьте, что вам нужно написать художественный роман. У вас есть ключевые идеи, продуманы основные повороты событий, но нет возможности объединить все в одну историю.
#статья
❤️ Прожимай реакции, если нравится такой формат
👉 Читать статью
Представьте, что вам нужно написать художественный роман. У вас есть ключевые идеи, продуманы основные повороты событий, но нет возможности объединить все в одну историю.
#статья
❤️ Прожимай реакции, если нравится такой формат
👉 Читать статью
❤3
Изменение прототипа объекта
Если изменить свойство в прототипе, оно изменится и во всех объектах-наследниках
#прототипы
Если изменить свойство в прототипе, оно изменится и во всех объектах-наследниках
#прототипы
❤4👍1