Небольшая подборка книг, которые мы можем порекомендовать к ознакомлению.
-
The Object-Oriented Thought Process By Matt Weisfeld
- Описание: Данная книга начинается с самых базовых понятий в мире ООП, формирует представление о том, что такое типы, как они работают и из чего они состоят. Также книга содержит информацию о паттернах проектирования и SOLID.
- Для кого: От 0 до Джуна. Для тех, кто уже освоился с основами лучше взять более профильные книги.
-
"C# 12 and .NET 8", "Pro C# 10 with .NET 6", "C# 12 in a Nutshell"
- Описание: Три книги трёх разных авторов, которые очень сильно пересекаются и выбор между ними во многом вкусовщина
- Для кого: Для тех, кто умеет использовать базовые C# конструкции и нуждается в более глубоком понимании языка и платформы. В качестве справочников подойдёт даже опытным разработчикам.
- Programming with Types By Vlad Riscutia
- Описание: Книга о том, как использовать типы. Начиная от концепции типизации, продолжая Primitive Obsession, обобщёнными типами и заканчивая математическими типами.
- Для кого: Рекомендуется прочитать всем. Часто разработчики недооценивают важность типов и эта книга позволит сдвинуться дальше в понимании. Для тех, кто уже нашёл общий язык с типами это будет отличной структуризацией, книжкой для референса и первым шагом к математическим типам и книге Бартоша Милевского.
- Clean Code
- Описание: Книга о том, как писать чистый код. Она содержит множество практических советов и примеров, которые оформлены в виде правил Do and Don't, так что их можно as is добавлять в code style.
- Для кого: В первую очередь это книга для начинающих разработчиков и тех, кто хочет для себя подсветить новые возможные улучшения в своём подходе к коду. Для опытных разработчиков эта книга поможет структурировать свои внутренние "я так чувствую" и упростит превращение внутреннего чувства прекрасного в кодстайл.
- Unit Testing Principles, Practices, and Patterns By Vladimir Khorikov
- Описание: Несмотря на название, книга не только о юнит-тестировании. В данной книге рассказывается о решении одной из главных проблем тестирования - работа с зависимостями.
- Для кого: Рекомендуется прочитать всем.
- Dependency Injection Principles, Practices, and Patterns By Steven van Deursen
- Описание: Книга развенчивает мифы о DI, идеально для тех, кто думает, что DI - это использование контейнеров. Во многом дополняет книгу Хорикова.
- Для кого: Рекомендуется прочитать всем.
- Паттерны проектирования на платформе .NET \nBy Sergey Teplyakov
- Описание: Классическая книга по паттернам, охватывающая большую часть необходимых знаний по паттернам. После прочтения может выступать справочником.
- Для кого: Рекомендуется прочитать всем.
- Category Theory for Programmers By Bartosz Milewski
- Описание: Это книга не про программирование. Она буквально про теорию категорий. Но это отличный пример знаний математики, которые заставят пересмотреть понимание кода, его структуры.
- Для кого: Для тех, кто морально готов к математике и хочет улучшить качество своего кода.
- Clean Architecture By Robert C. Martin
- Описание: Книга о том, как строить архитектуру кода, писать расширяемый код, который будет легко поддерживать и тестировать.
- Для кого: Рекомендуется прочитать всем, кто уже дошёл до задач, когда нужно проектировать больше 5 сущностей.
- Microsoft .NET: Architecting Applications for the Enterprise \nBy Dino Esposito
- Описание: Книга описывает основные элементы архитектуры приложений и как их писать на платформе .NET.
- Для кого: Рекомендуется прочитать всем, кто сталкивается с архитектурой приложений, клиент-серверными приложениями и т.п.
- Implementing Domain-Driven Design By Vaughn Vernon
- Описание: Книга содержит много практических примеров и рекомендаций по проектированию сложного домена.
- Для кого: Для разработчиков, которым требуется проектировать сложные домены.
- Concurrency in C# Cookbook By Stephen Cleary
- Описание: Основы конкурентности в .NET.
- Для кого: Рекомендуется прочитать всем.
- Pro .NET Memory Management By Konrad Kokosa
- Описание: Одна из лучших (и актуальная, в отличие от Рихтера) книг о том, что происходит внутри .NET. Книга покрывает не только работу с памятью, но и GC, особенности работы .NET Runtime.
- Для кого: Для желающих погрузиться во внутренности .NET и тех, кто хочет научиться лучше работать с памятью. Но порог вхождения довольно высокий.
- Pro .NET Benchmarking By Andrey Akinshin
- Описание: Главная книга из мира бенчмаркинга. В ней содержатся не только рекомендации по использованию BenchmarkDotNet (основной библиотеки для бенчмаркинга в .NET), но и большое количество теории по статистике и анализу результатов.
- Для кого: Для тех, кто много занимается профилированием и оптимизацией кода.
- Exploring the .NET Core 3.0 Runtime, Pro .NET Framework with the Base Class Library By Roger Villela
- Описание: Две книги, которые описывают BCL и Runtime .NET. Эти книги
- Для кого: Для разработчиков, которые хотят погрузится во внутренности .NET.
- Apps and Services with .NET 8 By Mark J. Price
- Описание: Книга даёт краткий обзор различных технологиям и библиотекам, которые используются в .NET: ASP, Blazor, gRPC, GraphQL, SignalR.
- Для кого: Для разработчиков, которые хотят расширить свои знания о платформе, ознакомиться с новыми технологиями, которые часто используются в .NET. Это позволит понять различные концепции, которые могут быть адаптированы даже в те проекты, где не используются напрямую эти технологии.
- Clean Coder, Clean Craftsmanship By Robert C. Martin, The Pragmatic Programmer By Andrew Hunt
- Описание: Эти книги содержат в себе огромное количество опыта, которое накопили авторы за время своей карьеры. Данные книги - это хороший способ не ждать, пока самому придётся столкнуться с проблемами, а заранее подготовиться к ним. В книгах освещаются вопросы коммуникации, командой работы, тестирования, планирования, оценки, подходам к работе
- Для кого: Рекомендуется прочитать всем.
- Creating Software with Modern Diagramming Techniques By Ashley Peacock
- Описание: Важные части управления проектом - это управление знаниями, фиксация договорённостей, шаринг информации между участниками. И все эти пункты тесно связаны с диаграммами. Данная книга содержит минимальный набор информации о диаграммах, поможет применять их в повседневной работе для тривиальных сценариев. Является отправной точкой для более глубокого ознакомления с диаграммами.
- Для кого: Рекомендуется прочитать всем, кто ещё не знаком с диаграммами (т.е. не читал UML Distilled).
- UML Distilled By Martin Fowler
- Описание: Полноценный свод знаний по UML, который описывает стандарты, типы диаграмм, их назначение и применение. Позволит расширить арсенал инструментов и подходов к диаграммам, чтобы под специфические задачи выбирать более подходящие инструменты.
- Для кого: Рекомендуется для тех, кому приходится часто сталкиваться с диаграммами и кому нужно улучшить их качество.
- Code Ahead By Yegor Bugayenko
- Описание: Данная книга написана в формате рассказа, где главный герой описывает свой опыт работы в новой команде, выявления проблем в управлении проектом. Книга легко читается и является хорошим первым шагом для знакомства с принципами управления проектами.
- Для кого: Для тех, кто хочет начать делать первые шаги в управлении проектами и процессами.
- Clean Agile: Back to Basics By Robert C. Martin
- Описание: Книга описывает принципы Agile, и опыт их применения в различных проектах.
- Для кого: Для тех, кто хочет начать делать первые шаги в управлении проектами и процессами.
- Software Engineering at Google By Titus Winters
- Описание: Книга содержит множество глав, которые описывают различные процессы и подходы к разработке ПО в Google. Хорошо подходит для ознакомления с основными процессами в проектах, их назначение и применение.
- Для кого: Для тех, кто хочет ознакомиться с процессами разработки ПО, узнать как это делается в крупных компаниях.
- Continuous Delivery By Jez Humble
- Описание: Книга про CI/CD, описывает принципы, подходы и практики, которые позволяют ускорить процесс разработки и улучшить качество кода средствами автоматизации и процессов.
- Для кого: Для тех, кто занимается управлением процессами разработки и хочет улучшить их.
- Righting Software By Juval Löwy
- Описание: Первая часть книги описывает дизайн системы: как выделять компоненты, как декомпозировать большую систему на отдельные разрабатываемые модули. А вторая часть книг описывает дизайн проекта: как планировать, оценивать, выстраивать план и порядок разработки, оценивать сложность, стоимость и риски.
- Для кого: Для разработчиков, которым приходится сталкиваться с задачами проектирования и управления проектами или большими модулями, их оценкой, декомпозицией, выстраиванием процесса разработки.
- Software Requirements By Karl Wiegers
- Описание: Книга описывает процесс сбора и анализа требований к ПО, их документирование и управление. Книга содержит множество практических советов и примеров, которые помогут улучшить процесс сбора и анализа требований. Данная книга не является книгой по разработке. Но она поможет разработчика улучшить понимание требований и улучшить коммуникацию с аналитиками.
- Для кого: Разработчиков, которые занимаются работой с требованиями, коммуникацией с аналитиками, реализацией сложных требований.