Skip to content

Instantly share code, notes, and snippets.

View zolotyh's full-sized avatar
🎯
Focusing

Alex zolotyh

🎯
Focusing
View GitHub Profile
@zolotyh
zolotyh / Questions.md
Last active June 11, 2025 11:41
Примерный список вопросов на собеседование

NodeJS

  1. Сколько потоков в NodeJS.
  2. Чем параллелизм отличается от асинхронности?
  3. Можно ли получить рейс кондишн при ассинхронности? Напиши пример кода.
  4. Что такое стримы, зачем они нужны? Какие бывают?
  5. Что такое back pressure?
  6. Для чего нужен модуль cluster, какую проблему он решает
  7. Каую проблему решают async hooks
  8. Как бороться с блокировками event loop?
  9. Как работает сборщик мусора? О чем говорит слабая гипотеза о поколениях?
@zolotyh
zolotyh / ServiceWorkers.md
Created February 27, 2025 12:59
ServiceWorker example

Here’s a full example in React that demonstrates how to check if a file is cached by a Service Worker (using Workbox) and display the cache status to the user.


1. Set Up Workbox in Webpack

Ensure you have Workbox set up in your webpack.config.js:

const WorkboxWebpackPlugin = require('workbox-webpack-plugin');
@zolotyh
zolotyh / План.md
Last active February 17, 2025 17:11
OpenTelemetry и JavaScript. Делаем веб-приложения прозрачными и легко анализируемыми

OpenTelemetry и JavaScript. Делаем веб-приложения прозрачными и легко анализируемыми

1. Введение: Почему Observability — это не просто мода

  1. Эволюция мониторинга: от логирования к трассировке и метрикам.
  2. Проблемы современных распределенных систем: микросервисы, облака, сложность отладки.
  3. Почему Observability — это must-have, а не nice-to-have.
  4. Роль OpenTelemetry в экосистеме Observability.

2. Архитектура OpenTelemetry: как это работает под капотом

Пример 1: Простая диспетчеризация в React

Ситуация: У вас есть компонент, который должен отображать разные элементы в зависимости от типа данных (например, строка, число, массив).

Плохой код (без @arrows/multimethod):

function DataRenderer({ data }) {

План перехода компании на 1000 человек на модель InnerSource


1. Подготовительный этап

1.1. Оценка текущего состояния

  • Анализ процессов: Проведите аудит текущих процессов разработки, инструментов и культуры сотрудничества.

План перехода на модель InnerSource

Введение

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

Этапы перехода

1. Оценка текущего состояния

  • Провести аудит текущих процессов разработки, инструментов и культуры.
  • Оценить готовность команды и руководство к внедрению изменений.
import axios, { AxiosInstance } from "axios"
const dummy = (input: any): any => ({
// Сюда можно добавить логику сериализации
})
class Ticket {
constructor(private api: AxiosInstance) {
console.log(this.api);
}
/** Необходимо реализовать функцию singleChange(str1, str2) -> boolean, которая проверяет, можно ли две переданные на вход строки сделать идентичными за 1 изменение
* (добавление / удаление / замену 1 символа) в любом месте строки.
* Можно не задумываться об оптимальности, просто хочется увидеть продакшен-решение.
Optional: юнит-тесты
Optional: оптимальное решение
* Например:
* singleChange('aa_a', 'ab_a') -> true (b заменяем на a)
* singleChange('cat', 'catt') -> true (добавляем t)
* singleChange('dog', 'dlog') -> true (добавляем l)
* singleChange('horse', 'hors') -> true (удаляем e)
function Hamster() {}
Hamster.prototype.food = [];
Hamster.prototype.feed = function (item) {
this.food.push(item);
};
const speedy = new Hamster();
const lazy = new Hamster();
[
{
"fileSize":338696,
"docType":"spreadsheet",
"coreType":".wasm",
"@timestamp":"2023-01-06T13:52:34.084Z",
"os":"mac",
"browser":"chrome",
"browser_version":"108.0.0.0"
},