Экспертиза
Подробный обзор основ, технологий, фреймворков, инструментов и инженерных практик, которые я использую для создания промышленного ПО.
Полный набор технологий
- Языки программирования
- Фреймворки и среды выполнения
- Библиотеки интерфейса и состояния
- Качество и тестирование
- React Testing Library
- Модульное тестирование
- Инструменты разработчика
- Специализированные технологии
- Arduino
- Глубокое обучение
- Embarcadero RAD Studio
- Unity
- Виртуальная реальность
Основы
- Языки программирования
- Структуры данных
- Линейные структуры данных
- Массивы
- Связные списки
- Стеки
- Очереди
- Хеш-таблицы
- Нелинейные структуры данных
- Двоичные деревья
- AVL-деревья
- Кучи
- Префиксные деревья
- Графы
- Неориентированные графы
- Алгоритмы
- Алгоритмы поиска
- Линейный поиск
- Двоичный поиск
- Троичный поиск
- Поиск прыжками
- Экспоненциальный поиск
- Алгоритмы сортировки
- Пузырьковая сортировка
- Сортировка выбором
- Сортировка вставками
- Сортировка слиянием
- Быстрая сортировка
- Сортировка подсчётом
- Блочная сортировка
- Проектирование ПО
- Принципы проектирования
- Объектно-ориентированное программирование
- Простота
- Единственная ответственность
- Принцип открытости–закрытости
- Подстановка Лисков
- Разделение интерфейсов
- Инверсия зависимостей
- Внедрение зависимостей
- DRY
- KISS
- Абстракция
- Инкапсуляция
- Композиция
- Полиморфизм
- Паттерны проектирования GoF
- Порождающие паттерны
- Прототип
- Одиночка
- Фабричный метод
- Абстрактная фабрика
- Строитель
- Структурные паттерны
- Компоновщик
- Адаптер
- Декоратор
- Фасад
- Легковес
- Мост
- Заместитель
- Поведенческие паттерны
- Снимок
- Состояние
- Итератор
- Стратегия
- Шаблонный метод
- Команда
- Наблюдатель
- Посредник
- Цепочка обязанностей
- Посетитель
- Интерпретатор
- Качество и тестирование
- Модульное тестирование
- Инструменты разработчика
Back-end разработка
- Стек JavaScript / TypeScript
Front-end разработка
- Языки программирования
- Библиотеки интерфейса и состояния
- Качество и тестирование
- React Testing Library
- Модульное тестирование
Мобильная разработка
- Языки программирования
- Мобильные фреймворки
Я выбираю full-stack архитектуру с учётом продукта, предметной области, интеграций, команды и эксплуатационных требований. Для многих продуктов я использую Node.js или Next.js с React и добавляю React Native, когда требуется мобильное приложение. Когда лучше подходят экосистема Java и корпоративные интеграции, я использую Spring Boot с React и при необходимости React Native.