diff --git a/Knowledges/Библиотека/Книги/Git для профессионалов.md b/Knowledges/Библиотека/Книги/Git для профессионалов.md index 09cd948..ef496bb 100644 --- a/Knowledges/Библиотека/Книги/Git для профессионалов.md +++ b/Knowledges/Библиотека/Книги/Git для профессионалов.md @@ -6,13 +6,13 @@ - Чакон Скотт - Штрауб Бен Количество страниц: 530 -Прогресс: 0 -Формат: +Прогресс: 530 +Формат: Бумажная Обложка: Библиотека/Книги/covers/pro-git.jpg -Начата: -Закончена: -Оценка: -Сложность: +Начата: "2025" +Закончена: "2025" +Оценка: "10" +Сложность: "8" Теги: - it - git diff --git a/Knowledges/Библиотека/Книги/SQL. Быстрое погружение.md b/Knowledges/Библиотека/Книги/SQL. Быстрое погружение.md new file mode 100644 index 0000000..c4b932c --- /dev/null +++ b/Knowledges/Библиотека/Книги/SQL. Быстрое погружение.md @@ -0,0 +1,56 @@ +--- +Тип: Книга +Статус: Прочитано +Название: SQL. Быстрое погружение +Автор: + - Уолтер Шилдс +Количество страниц: 224 +Прогресс: 224 +Формат: Бумажная +Обложка: Библиотека/Книги/covers/sql-quickstart.jpg +Начата: "2025" +Закончена: "2025" +Оценка: "8" +Сложность: 6/10 +Теги: + - it + - programming + - sql + - databases +Категории: + - базы данных + - программирование +Источник: +Ссылка: +--- + +![[covers/sql-quickstart.jpg]] + +# SQL. Быстрое погружение + +## 📖 О книге +Доступное введение в SQL для тех, кто хочет быстро освоить работу с базами данных. Уолтер Шилдс объясняет основы реляционных БД, синтаксис запросов и работу с данными без лишней теории. Книга подойдёт разработчикам, которым нужно уверенно писать запросы, аналитикам и всем, кто хочет понять, как данные хранятся и извлекаются. Примеры практичны и применимы сразу. + +--- + +## 🧠 Ключевые идеи +- **Реляционная модель**: таблицы, строки, столбцы и первичные ключи — базовые абстракции, на которых строится всё остальное +- **SELECT — сердце SQL**: фильтрация (WHERE), сортировка (ORDER BY), группировка (GROUP BY) и агрегатные функции покрывают 80% повседневных задач +- **JOIN как связывание таблиц**: понимание INNER, LEFT, RIGHT JOIN и их разницы — ключевой навык для работы с реальными схемами данных +- **Подзапросы и CTE**: вложенные запросы и `WITH`-выражения делают сложную логику читаемой и переиспользуемой +- **DDL vs DML**: CREATE/ALTER/DROP управляют структурой, INSERT/UPDATE/DELETE — данными; важно понимать оба уровня + +--- + +## 💬 Важные цитаты + + +--- + +## 💡 Как применить в моих проектах + + +--- + +## 🔗 Связанные заметки +- [[Высоконагруженные приложения. Программирование, масштабирование, поддержка]] diff --git a/Knowledges/Библиотека/Книги/covers/algorithm-design-manual.jpg b/Knowledges/Библиотека/Книги/covers/algorithm-design-manual.jpg new file mode 100644 index 0000000..202542f Binary files /dev/null and b/Knowledges/Библиотека/Книги/covers/algorithm-design-manual.jpg differ diff --git a/Knowledges/Библиотека/Книги/covers/design-for-developers.jpg b/Knowledges/Библиотека/Книги/covers/design-for-developers.jpg new file mode 100644 index 0000000..0b2784a Binary files /dev/null and b/Knowledges/Библиотека/Книги/covers/design-for-developers.jpg differ diff --git a/Knowledges/Библиотека/Книги/covers/gof-patterns.jpg b/Knowledges/Библиотека/Книги/covers/gof-patterns.jpg new file mode 100644 index 0000000..d698e5b Binary files /dev/null and b/Knowledges/Библиотека/Книги/covers/gof-patterns.jpg differ diff --git a/Knowledges/Библиотека/Книги/covers/sql-quickstart.jpg b/Knowledges/Библиотека/Книги/covers/sql-quickstart.jpg new file mode 100644 index 0000000..6231433 Binary files /dev/null and b/Knowledges/Библиотека/Книги/covers/sql-quickstart.jpg differ diff --git a/Knowledges/Библиотека/Книги/covers/testing-javascript.jpg b/Knowledges/Библиотека/Книги/covers/testing-javascript.jpg new file mode 100644 index 0000000..a40940a Binary files /dev/null and b/Knowledges/Библиотека/Книги/covers/testing-javascript.jpg differ diff --git a/Knowledges/Библиотека/Книги/covers/unit-testing.jpg b/Knowledges/Библиотека/Книги/covers/unit-testing.jpg new file mode 100644 index 0000000..955b8d7 Binary files /dev/null and b/Knowledges/Библиотека/Книги/covers/unit-testing.jpg differ diff --git a/Knowledges/Библиотека/Книги/Алгоритмы. Руководство по разработке.md b/Knowledges/Библиотека/Книги/Алгоритмы. Руководство по разработке.md new file mode 100644 index 0000000..23fe81c --- /dev/null +++ b/Knowledges/Библиотека/Книги/Алгоритмы. Руководство по разработке.md @@ -0,0 +1,56 @@ +--- +Тип: Книга +Статус: Прочитано +Название: Алгоритмы. Руководство по разработке. 3-е изд. +Автор: + - Стивен Скиена +Количество страниц: 848 +Прогресс: 848 +Формат: Бумажная +Обложка: Библиотека/Книги/covers/algorithm-design-manual.jpg +Начата: "2025" +Закончена: "2025" +Оценка: "8" +Сложность: 10/10 +Теги: + - it + - programming + - algorithms + - computer-science +Категории: + - алгоритмы + - программирование +Источник: +Ссылка: +--- + +![[covers/algorithm-design-manual.jpg]] + +# Алгоритмы. Руководство по разработке. 3-е изд. + +## 📖 О книге +Один из главных академических трудов по алгоритмам, написанный для практикующих разработчиков. Книга состоит из двух частей: первая — теория и практика проектирования алгоритмов (сортировка, графы, динамическое программирование, эвристики), вторая — каталог из 75 классических алгоритмических задач с готовыми решениями и ссылками на реализации. В 3-м издании расширены разделы по рандомизированным алгоритмам, хешированию и квантовым вычислениям. + +--- + +## 🧠 Ключевые идеи +- **Алгоритм = правильная структура данных + правильная техника**: выбор структуры данных часто важнее выбора алгоритма — хорошая структура делает алгоритм тривиальным +- **Каталог задач как ключевой инструмент**: большинство реальных задач сводятся к известным алгоритмическим проблемам; умение распознать задачу важнее знания алгоритма наизусть +- **Динамическое программирование через рекуррентность**: DP — это управляемый перебор с мемоизацией; ключ — правильно определить подзадачу +- **Эвристики для NP-полных задач**: не все задачи требуют точного решения; жадные алгоритмы, имитация отжига, генетические алгоритмы дают приемлемый результат на практике +- **Анализ сложности как язык**: O-нотация — не формальность, а инструмент коммуникации и принятия решений при проектировании систем + +--- + +## 💬 Важные цитаты +> «Правильный алгоритм — это тот, который решает задачу. Хороший алгоритм — тот, который делает это эффективно. Но сначала нужно убедиться, что вы решаете правильную задачу.» + +--- + +## 💡 Как применить в моих проектах + + +--- + +## 🔗 Связанные заметки +- [[Грокаем алгоритмы]] diff --git a/Knowledges/Библиотека/Книги/Дизайн для разработчиков.md b/Knowledges/Библиотека/Книги/Дизайн для разработчиков.md new file mode 100644 index 0000000..e25bd70 --- /dev/null +++ b/Knowledges/Библиотека/Книги/Дизайн для разработчиков.md @@ -0,0 +1,57 @@ +--- +Тип: Книга +Статус: Прочитано +Название: Дизайн для разработчиков +Автор: + - Стефани Стимак +Количество страниц: 304 +Прогресс: 304 +Формат: Бумажная +Обложка: Библиотека/Книги/covers/design-for-developers.jpg +Начата: "2024" +Закончена: "2024" +Оценка: "6" +Сложность: 4/10 +Теги: + - it + - programming + - design + - css + - ux +Категории: + - разработка программного обеспечения + - веб-дизайн +Источник: +Ссылка: +--- + +![[covers/design-for-developers.jpg]] + +# Дизайн для разработчиков + +## 📖 О книге +Практическое руководство по дизайну для тех, кто умеет писать код, но теряется перед Figma и цветовыми палитрами. Стефани Стимак объясняет базовые принципы дизайна — типографику, цвет, layout, пространство — на понятном разработчику языке. Книга не делает из программиста дизайнера, но даёт достаточно знаний, чтобы создавать приятные интерфейсы самостоятельно и грамотно общаться с дизайн-командой. + +--- + +## 🧠 Ключевые идеи +- **Типографика — основа читаемости**: выбор шрифта, межстрочный интервал и иерархия заголовков влияют на восприятие контента сильнее, чем цвет +- **Цветовые модели и контраст**: понимание HSL, цветовых колёс и требований доступности (WCAG) позволяет строить палитры осознанно, а не наугад +- **Принципы layout**: сетки, отступы, выравнивание — не эстетика, а инструменты визуальной иерархии, которые направляют взгляд пользователя +- **Исследование пользователей**: даже минимальное UX-исследование (карты путей, персонажи) помогает принимать более обоснованные дизайн-решения +- **Дизайн-системы для разработчиков**: компонентный подход в дизайне параллелен компонентному подходу в коде — токены, переменные, переиспользуемые блоки + +--- + +## 💬 Важные цитаты +> «Хороший дизайн незаметен. Плохой дизайн кричит о себе.» + +--- + +## 💡 Как применить в моих проектах + + +--- + +## 🔗 Связанные заметки + diff --git a/Knowledges/Библиотека/Книги/Паттерны объектно-ориентированного проектирования.md b/Knowledges/Библиотека/Книги/Паттерны объектно-ориентированного проектирования.md new file mode 100644 index 0000000..41e1117 --- /dev/null +++ b/Knowledges/Библиотека/Книги/Паттерны объектно-ориентированного проектирования.md @@ -0,0 +1,64 @@ +--- +Тип: Книга +Статус: Заброшена +Название: Паттерны объектно-ориентированного проектирования +Автор: + - Эрих Гамма + - Ричард Хелм + - Ральф Джонсон + - Джон Влиссидес +Количество страниц: 448 +Прогресс: +Формат: Бумажная +Обложка: Библиотека/Книги/covers/gof-patterns.jpg +Начата: "2024" +Закончена: +Оценка: "10" +Сложность: 10/10 +Теги: + - it + - programming + - patterns + - oop + - design-patterns +Категории: + - разработка программного обеспечения + - проектирование +Источник: +Ссылка: +--- + +![[covers/gof-patterns.jpg]] + +# Паттерны объектно-ориентированного проектирования + +## 📖 О книге +Культовая книга «Банды четырёх» (Gang of Four) — Гамма, Хелм, Джонсон и Влиссидес. Именно она ввела в обиход понятие «паттерн проектирования» применительно к ООП и описала 23 классических паттерна. Книга считается обязательной для каждого программиста, но читается тяжело: академический стиль, примеры на C++ и Smalltalk, высокая плотность концепций. Лучше воспринимается после практического опыта с проектированием. + +--- + +## 🧠 Ключевые идеи +- **Паттерн = имя + проблема + решение + последствия**: стандартизированный словарь для обсуждения архитектурных решений в команде +- **Три категории**: порождающие (Abstract Factory, Builder, Singleton...), структурные (Adapter, Decorator, Proxy...), поведенческие (Observer, Strategy, Command...) +- **Принцип «программировать на интерфейс, а не на реализацию»**: зависимости от абстракций делают систему гибкой и расширяемой +- **Предпочитайте композицию наследованию**: паттерны вроде Decorator и Strategy показывают, как добавлять поведение без иерархий наследования +- **Открыто/закрытый принцип в действии**: хорошо спроектированные паттерны позволяют расширять поведение без изменения существующего кода + +--- + +## 💬 Важные цитаты +> «Программируйте в расчёте на интерфейс, а не на реализацию.» + +> «Предпочитайте композицию объектов наследованию классов.» + +--- + +## 💡 Как применить в моих проектах + + +--- + +## 🔗 Связанные заметки +- [[Чистая архитектура]] +- [[IT/Паттерны/Декоратор]] +- [[IT/Паттерны/Стратегия]] diff --git a/Knowledges/Библиотека/Книги/Принципы юнит-тестирования.md b/Knowledges/Библиотека/Книги/Принципы юнит-тестирования.md new file mode 100644 index 0000000..bd7970c --- /dev/null +++ b/Knowledges/Библиотека/Книги/Принципы юнит-тестирования.md @@ -0,0 +1,59 @@ +--- +Тип: Книга +Статус: Прочитано +Название: Принципы юнит-тестирования +Автор: + - Владимир Хориков +Количество страниц: 320 +Прогресс: 320 +Формат: Бумажная +Обложка: Библиотека/Книги/covers/unit-testing.jpg +Начата: "2025" +Закончена: "2025" +Оценка: "9" +Сложность: 7/10 +Теги: + - it + - programming + - testing + - tdd +Категории: + - разработка программного обеспечения + - тестирование +Источник: +Ссылка: +--- + +![[covers/unit-testing.jpg]] + +# Принципы юнит-тестирования + +## 📖 О книге +Одна из лучших книг о юнит-тестировании на практике. Владимир Хориков (Microsoft MVP) разбирает не просто «как писать тесты», а «что делает тест хорошим». Центральная идея — тесты должны проверять поведение, а не реализацию. Книга охватывает стили тестирования, работу с моками, архитектуру тестируемого кода и интеграционные тесты. Ориентирована на C#/.NET, но принципы универсальны. + +--- + +## 🧠 Ключевые идеи +- **Четыре свойства хорошего теста**: защита от регрессий, устойчивость к рефакторингу, быстрая обратная связь, удобство сопровождения — и между ними неизбежный компромисс +- **Тестировать поведение, не реализацию**: тест, завязанный на детали реализации, хрупок — он будет ломаться при рефакторинге, не обнаруживая реальных багов +- **Моки — инструмент, не цель**: злоупотребление моками приводит к тестам, которые проверяют взаимодействие объектов вместо бизнес-результата +- **Классическая vs лондонская школа TDD**: классики тестируют единицы поведения, лондонцы — единицы кода; автор отдаёт предпочтение классическому подходу +- **Интеграционные тесты дополняют, не заменяют**: они покрывают то, что юнит-тесты не могут — взаимодействие с БД, файловой системой, внешними сервисами + +--- + +## 💬 Важные цитаты +> «Тест, который не может сломаться при наличии бага, бесполезен. Тест, который ломается без бага, вреден.» + +> «Цель юнит-тестирования — обеспечить устойчивый рост проекта, а не максимальное покрытие кода.» + +--- + +## 💡 Как применить в моих проектах + + +--- + +## 🔗 Связанные заметки +- [[Чистый код]] +- [[Идеальная работа. Программирование без прикрас]] diff --git a/Knowledges/Библиотека/Книги/Тестирование JavaScript.md b/Knowledges/Библиотека/Книги/Тестирование JavaScript.md new file mode 100644 index 0000000..dd4d006 --- /dev/null +++ b/Knowledges/Библиотека/Книги/Тестирование JavaScript.md @@ -0,0 +1,57 @@ +--- +Тип: Книга +Статус: Прочитано +Название: Тестирование JavaScript +Автор: + - Лукас Коста +Количество страниц: 592 +Прогресс: 592 +Формат: Бумажная +Обложка: Библиотека/Книги/covers/testing-javascript.jpg +Начата: "2024" +Закончена: "2024" +Оценка: "10" +Сложность: 7/10 +Теги: + - it + - programming + - testing + - javascript +Категории: + - разработка программного обеспечения + - тестирование +Источник: +Ссылка: +--- + +![[covers/testing-javascript.jpg]] + +# Тестирование JavaScript + +## 📖 О книге +Комплексное руководство по тестированию JavaScript-приложений от Лукаса Косты. Книга охватывает все уровни: от юнит-тестов до end-to-end, от тестирования фронтенда до серверного кода. Автор объясняет не только «как» писать тесты, но и «зачем» — как выстроить культуру качества в команде. Используются Jest, Cypress, Testing Library и другие современные инструменты. + +--- + +## 🧠 Ключевые идеи +- **Пирамида тестирования**: юнит-тесты — быстрые и дешёвые, интеграционные — балансируют скорость и охват, e2e — медленные, но проверяют реальный пользовательский опыт +- **Тестирование поведения, а не реализации**: тесты должны имитировать то, что делает пользователь, а не проверять внутренние детали компонентов +- **Testing Library как стандарт**: запросы через доступные роли и метки (getByRole, getByLabelText) делают тесты устойчивее и ближе к реальному UX +- **Моки и стабы с умом**: изолировать зависимости нужно там, где они замедляют или усложняют тесты, а не везде подряд +- **Continuous Testing**: тесты в CI/CD как обязательная часть процесса — быстрая обратная связь предотвращает регрессии на ранних этапах + +--- + +## 💬 Важные цитаты +> «Тесты — это не затраты, это инвестиции. Они экономят время в долгосрочной перспективе.» + +--- + +## 💡 Как применить в моих проектах + + +--- + +## 🔗 Связанные заметки +- [[Принципы юнит-тестирования]] +- [[Рефакторинг кода на JavaScript]]