Книги по программированию

В данном разделе собрана литература, рекомендуемая разработчикам в целях самообразования. В основном это книги и статьи по C#. Примерно разбито по уровням подготовки. Потихоньку буду дополнять данный раздел новыми находками. Если есть какие-то интересные книги которые заинтересовали именно Вас, то пишите в комментариях.

Уровни

Название книги

Автор

Описание

Novice

Code Complete: A Practical Handbook of Software Construction, Second Edition

Steve McConnell

Книга для тех, кто хочет стать профессиональным разработчиком.

 В любом деле делать первые шаги сложно, особенно когда нет того, кто мог бы помочь, научить, объяснить.

Представьте себе начинающего спортсмена без профессионального тренера. Скорее всего из него получиться только любитель.

Если у вас еще нет ментора, то Стив со своей книгой заменит вам его. А если ментор у вас уже есть, то скорее всего его первым

наставлением будет прочитать книгу Code Complete.

 Приятная форма подачи материала. Отсутствие ультимативности. В книге представлено множество исследований, подкрепляющих, данные в книге рекомендации.

Novice

CLR via C# (4th Edition) (Developer Reference)

Jeffrey Richter

Книга является библией по языку C# и платформе .NET. Вы будете перечитывать её с определенной периодичностью в процессе своего становления, как профессионального разработчика. По мере становления многое будет забываться, многое будет оставаться без ответа. Каждый раз, открывая книгу, вы будете укреплять свои знания по платформе и языку, вспоминать забытое и находить ответы на вопросы, оставшиеся когда-то без ответа.

Novice

Effective Java (2nd Edition)

Joshua Bloch

Вы наверное можете удивится, что делает книга по Java в списке литературы рекомендуемой разработчикам на платформе .Net. Достаточно просто заглянуть в содержание книги и названия глав, чтобы понять — эта книга не о Java. Эта книга о том как писать хороший объектно-ориентированный код с помощью языка Java.

Все примеры, приведенные в книги могут быть легко переписаны на C# с минимальными правками. Книга ценна в первую очередь тем, что автор делится своим многолетним опытом, показывая как писать ОО-код, который следует признанным best practices. Книга представляет собой кукбук по наиболее распространенным design issues и как с ними справляться.

Junior

Clean Code: A Handbook of Agile Software Craftsmanship

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

Refactoring: Improving the Design of Existing Code

Martin Fowler

Классическая книга, с которой началось внедрение рефакторингов в массы. Состоит из 2-х частей. Первая часть рассматривает вопросы дизайна и качества кода. Вторая часть представляет собой справочник рефакторингов с примерами. Рекомендуется к прочтению первая часть книги.

Junior → Middle

Test Driven Development: By Example

Kent Beck

Книга представляет собой основной классический текст, детально описывающий динамику работы в TDD. Книга сфокусирована именно на технике, без рассмотрения контекста. Понимание техники это упрощает, но может усложнить понимание того, как TDD вписывается в мир.

Middle

Growing Object-Oriented Software, Guided by Tests

Книга расширяет набор шаблонов проектирования, учит отличать сценарии транзакций от доменной модели, шаблонам взаимодействия с БД и внешними системами, и т.п.

Middle

Dependency Injection Principles, Practices, and Patterns 

by Mark Seemann  (Author), Steven van Deursen (Author) Прекрасный источник знаний по управлению зависимостями. Главный плюс книги в том, что автор делает акцент на общих принципах управления зависимостями и как эти принципы согласуются с ОО принципами. В книге хоть и представлено  несколько наиболее популярных DI контейнеров на платформе .NET, однако автор постоянно акцентирует внимание на то, что DI контейнер всего лишь инструмент. Первая часть книги самая важная, вторая часть посвящена конкретным контейнерам, что не представляет большого интереса.

Middle

C# in Depth (4th edition)

 

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

Скачать в pdf

Книга от Microsoft прикладного уровня теория на практике .Net .

Предприятия все чаще реализуют экономию затрат, решают проблемы развертывания и совершенствуют DevOps и производственные операции с помощью контейнеров. Microsoft выпускает контейнерные инновации для Windows и Linux, создавая такие продукты, как Azure Kubernetes Service и Azure Service Fabric, а также сотрудничая с такими лидерами отрасли, как Docker, Mesosphere и Kubernetes. Эти продукты предоставляют контейнерные решения, которые помогают компаниям создавать и развертывать приложения на облачной скорости и в масштабе, независимо от их выбора платформы или инструментов.

 

 

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

*