В данном разделе собрана литература, рекомендуемая разработчикам в целях самообразования. В основном это книги и статьи по C#. Примерно разбито по уровням подготовки. Потихоньку буду дополнять данный раздел новыми находками. Если есть какие-то интересные книги которые заинтересовали именно Вас, то пишите в комментариях.
Уровни |
Название книги |
Автор |
Описание |
Novice |
Code Complete: A Practical Handbook of Software Construction, Second Edition |
Steve McConnell |
Книга для тех, кто хочет стать профессиональным разработчиком. В любом деле делать первые шаги сложно, особенно когда нет того, кто мог бы помочь, научить, объяснить. Представьте себе начинающего спортсмена без профессионального тренера. Скорее всего из него получиться только любитель. Если у вас еще нет ментора, то Стив со своей книгой заменит вам его. А если ментор у вас уже есть, то скорее всего его первым наставлением будет прочитать книгу Code Complete. Приятная форма подачи материала. Отсутствие ультимативности. В книге представлено множество исследований, подкрепляющих, данные в книге рекомендации. |
Novice |
Jeffrey Richter |
Книга является библией по языку C# и платформе .NET. Вы будете перечитывать её с определенной периодичностью в процессе своего становления, как профессионального разработчика. По мере становления многое будет забываться, многое будет оставаться без ответа. Каждый раз, открывая книгу, вы будете укреплять свои знания по платформе и языку, вспоминать забытое и находить ответы на вопросы, оставшиеся когда-то без ответа. |
|
Novice |
Joshua Bloch |
Вы наверное можете удивится, что делает книга по Java в списке литературы рекомендуемой разработчикам на платформе .Net. Достаточно просто заглянуть в содержание книги и названия глав, чтобы понять — эта книга не о Java. Эта книга о том как писать хороший объектно-ориентированный код с помощью языка Java. Все примеры, приведенные в книги могут быть легко переписаны на C# с минимальными правками. Книга ценна в первую очередь тем, что автор делится своим многолетним опытом, показывая как писать ОО-код, который следует признанным best practices. Книга представляет собой кукбук по наиболее распространенным design issues и как с ними справляться. |
|
Junior |
Robert C. Martin |
Даже плохо написанный код может работать. Однако если код не является «чистым», это всегда будет мешать развитию и улучшению кодовой базы, отнимая значительные ресурсы на его поддержку и «укрощение».
Эта книга посвящена хорошему программированию. Прочитав книгу, вы узнаете много нового о коде. Более того, вы научитесь отличать хороший код от плохого. 3 причины почему стоит обратить внимание на эту книгу и прочитать её: дядюшка Боб — всем известный деятель в мире разработки, и в частности это именно он причастен к созданию принципов S.O.L.I.D. Вы узнаете, как писать хороший код и как можно переписать плохой код в хороший. При этом не составит труда узнать об этом, т.к. книга легко читается благодаря интересному стилю изложения автором книги. Рейтинг 4,3 на Amazon при наличии 502 отзывов, среди которых огромное количество положительных отзывов. |
|
Junior → Middle |
Design Patterns: Elements of Reusable Object-Oriented Software |
Erich Gamma (Author), Richard Helm (Author), Ralph Johnson (Author), John Vlissides (Author), Grady Booch (Foreword) |
Книга дает базовые знания, которые важны в каждодневной работе и для понимания большинства последующих книг. |
Junior → Middle |
Martin Fowler |
Классическая книга, с которой началось внедрение рефакторингов в массы. Состоит из 2-х частей. Первая часть рассматривает вопросы дизайна и качества кода. Вторая часть представляет собой справочник рефакторингов с примерами. Рекомендуется к прочтению первая часть книги. |
|
Junior → Middle |
Kent Beck |
Книга представляет собой основной классический текст, детально описывающий динамику работы в TDD. Книга сфокусирована именно на технике, без рассмотрения контекста. Понимание техники это упрощает, но может усложнить понимание того, как TDD вписывается в мир. |
|
Middle |
Книга расширяет набор шаблонов проектирования, учит отличать сценарии транзакций от доменной модели, шаблонам взаимодействия с БД и внешними системами, и т.п. |
||
Middle |
by Mark Seemann (Author), Steven van Deursen (Author) | Прекрасный источник знаний по управлению зависимостями. Главный плюс книги в том, что автор делает акцент на общих принципах управления зависимостями и как эти принципы согласуются с ОО принципами. В книге хоть и представлено несколько наиболее популярных DI контейнеров на платформе .NET, однако автор постоянно акцентирует внимание на то, что DI контейнер всего лишь инструмент. Первая часть книги самая важная, вторая часть посвящена конкретным контейнерам, что не представляет большого интереса. | |
Middle |
|
Jon Skeet |
Каждый грамотный .NET разработчик должен быть в курсе общего развития .NET платформы и данная книга проведет тебя через все нововведения C#. Благодаря своей структуре, книга позволяет увидеть целостную картину и структурировать новые или существующие знания. Можно также заметить, каким путем идет развитие языка C#, прогнозируя при этом будущие изменения, вплоть до C# 8.0. Другими важными особенностями книги являются стиль и глубина изложения и автор фокусируется на одной возможности языка (one step at a time), что позволяет читателю легче погрузиться в рассматриваемую тему и правильно ее понять. То есть книга позволяет прокачивать более глубокие знания по применению новых фич в новых версиях C#, что позволяет писать более чистый, разумный и читабельный код. В принципе, книгу не обязательно читать от корки до корки; изложение построено таким образом, что можно выбрать интересующую тему и углубиться в чтение. P.S. Инструменты которыми мы пользуемся каждый день, такие как Resharper, также будут тебя наводить на использование этих новых фич и ты должен уже быть знаком с ними. |
Middle → Senior |
Domain-Driven Design: Tackling Complexity in the Heart of Software
|
Eric Evans | Серьезная книга о моделировании предметной области и дизайне. Книга описывает важность Проектирования по модели и использование Единого Языка, языка единого для разработчиков, аналитиков, тестировщиков и Экспертов предметной области.
Понятия, используемые Экспертами предметной области должны находить отражение в дизайне системы. Книга делает большой акцент на том, что хороший дизайн, построенный на хороших моделях невозможен без понимания предметной области.
Прочтение книги может занять не один месяц, это не набор паттернов проектирования, это серьезный труд о том, как постепенно погружаясь в предметную область и все лучше и лучше понимая ее, отражать эти углубленные знания в разрабатываемой системе. |
Middle → Senior
|
Implementing Domain-Driven Design
|
Vaughn Vernon | Серьезная книга о моделировании предметной области и дизайне. В отличие от книги Эванса более практична, проводит разработчика через проектирование Саас по методологии ДДД.
Некоторые разработчики рекомендуют начать с нее, а не с Эванса, но, на наш взгляд понять, почему принимаются те или иные решения сложно без прочтения книги Эванса.
Ведь книга Вернона базируется на тех концепциях, что изложены в книге Эванса. Собственно и название отражает этот факт — Implementing Domain-Driven Design, как бы подчеркивая практичность по сравнению с фундаментальным трудом . |
Middle → Senior
|
Working Effectively with Legacy Code
|
Michael Feathers |
Ценность данной книги начинаешь понимать, когда приходишь на проект, которому 7+ лет. Книга учит подходам, которые помогают разработчику вносить изменения в сложную, запутанную и слабо структурированную кодовую базу с уверенностью.
Очевидно, что подходы базируются на ТДД, а сам автор дает такое определение — To me, legacy code is simply code without tests. Книга очень практична и содержит большое количество примеров. Используя ТДД, автор также показывает ошибки, которые допускают разработчики, пытаясь написать хороший объектно-ориентированный код. |
Для ознакомления
|
Definitions and Pattern Summaries
|
Eric Evans |
Книга по DDD прикладного уровня |
Для ознакомления
|
https://github.com/heynickc/awesome-ddd#free-ebooks |
Множество литературы по DDD
|
|
Для ознакомления
|
.NET Microservices: Architecture for Containerized .NET Applications |
Книга от Microsoft прикладного уровня теория на практике .Net . Предприятия все чаще реализуют экономию затрат, решают проблемы развертывания и совершенствуют DevOps и производственные операции с помощью контейнеров. Microsoft выпускает контейнерные инновации для Windows и Linux, создавая такие продукты, как Azure Kubernetes Service и Azure Service Fabric, а также сотрудничая с такими лидерами отрасли, как Docker, Mesosphere и Kubernetes. Эти продукты предоставляют контейнерные решения, которые помогают компаниям создавать и развертывать приложения на облачной скорости и в масштабе, независимо от их выбора платформы или инструментов.
|
|
|