Автор этой статьи, Клаудио Бернаскони, поделился собственным списком лучших по его мнению книг, которые стоит прочесть разработчику, пишущему на C#. Он решил, что таким образом этот список пригодится не только ему самому, но и сообществу. Представляем вам перевод списка.
C# in Depth
Автор — Джон Скит.
Как эту книгу ни похвали, все равно будет мало. Джон Скит известен своим активным участием в сообществе StackOverflow. Его труд «C# in Depth» впервые был опубликован в 2008 году, а в настоящее время вы можете купить уже четвертое издание.
Джон знаменит своим умением объяснять сложные материи очень простым и понятным языком. Могу сказать, что большей частью своих знаний о работе C# и о том, как использовать различные особенности этого языка, я обязан именно этой книге.
Книга «C# для профессионалов» структурирована таким образом, чтобы осветить все доступные функции C# хронологически — в порядке их появления в версиях C#, начиная со 2-й и заканчивая 7-й. Таким образом читатель, независимо от того, когда он вошел в мир .NET, может проследить развитие языка.
Лично у меня книга во втором издании. Я прочитал ее дважды от корки до корки и извлек много пользы. Так что я рекомендую эту книгу каждому серьезному C#-разработчику, желающему поглубже погрузиться в изучение этого языки и платформы .NET.
Чистый код
Автор — Роберт Сесил Мартин. Название книги в оригинале — «Clean Code».
Эта книга не о C#. Она предназначена для разработчиков вообще и ориентирована на качество кода. Собственно, данная книга уже стала классикой, впервые она вышла еще в 2008 году. Свой экземпляр я купил в 2012 году и к настоящему времени прочел его уже многократно.
Роберт С. Мартин освещает базовые и продвинутые способы улучшения качества кода ваших программ. Некоторые из принципов, упоминаемых в книге, уже внедрены в самых популярных IDE, другие в среде опытных разработчиков считаются просто проявлением здравого смысла.
Тем не менее, есть также темы и техники, применять которые мне не доводилось, но я узнал о них, прочтя эту книгу. Я бы рекомендовал труд Роберта С. Мартина всем начинающим и даже опытным программистам, заинтересованным в написании поддерживаемого и высококачественного кода.
Хотя этой книге уже больше 10 лет, советы из нее все еще применимы в современной разработке программ. К тому же, ее материал не ограничен каким-то одним языком.
The Pragmatic Programmer
Авторы — Эндрю Хант, Дэвид Томас.
Эта книга впервые была выпущена в 1999 году. И это одна из моих любимых книг прошлого века, содержание которых до сих пор вполне применимо в разработке.
Главной темой книги авторы выбрали мастерство разработчика. В своем произведении они дали много ценных советов на предмет того, как можно улучшить разработку, какие подходы следует применять. Хант и Томас учат вещам, которым не учат в традиционной образовательной системе, в том числе в университетах. Это книга для практиков.
«Программист-прагматик» это книга более высокого уровня, чем «Чистый код». Она освещает все темы, касающиеся разработки ПО, включая разработку спецификаций, отношения с заказчиками, управление командой, инструменты разработчика и процедуру тестирования.
Идеальный программист
Автор — Роберт Сесил Мартин. Название книги в оригинале — «The Clean Coder».
Книга «Идеальный программист» была выпущена как продолжение супер-популярной книги «Чистый код». Первая книга главным образом освещает качество кода и такие вещи как нейминг и структурирование кода, а вторая должна служить в качестве руководства для профессионального программиста.
Вышла эта книга в 2011 году. На момент написания этой статьи она входит в топ-10 книг в категории разработки ПО на Amazon.
Роберт С. Мартин пишет о дисциплинах, техниках, инструментах и мастерстве в целом. В книге есть главы об улаживании конфликтов, о том, как работать с нерациональными менеджерами, как бороться с творческим кризисом и как избежать выгорания.
Из этой книги я почерпнул много вещей, которые активно применяю в своей повседневной жизни.
Когда я искал свою первую работу разработчика, я фокусировался только на качестве своего кода. Эта книга помогла мне понять, что разработка программ это не только код. Это люди, команды и коммуникация между ними. Коммуникация имеет ключевое значение для создания функциональных команд, способных производить высококачественное ПО.
Я рекомендую эту книгу каждому, кто хочет поближе познакомиться с процессом разработки программ и улучшить свои коммуникационные навыки, чтобы доводить проекты до конца, работать в здоровой среде и продвигаться по карьерной лестнице.
Чистая архитектура
Автор — Роберт Сесил Мартин. Название книги в оригинале — «Clean Architecture».
Я хотел бы заявить, что Роберт С. Мартин не выступает спонсором этой статьи, и я клянусь, что это последняя его книга в моей подборке.
Я просто не мог не упомянуть эту книгу. В ней разбирается тема крупных систем. Прочитав ее, вы узнаете, как создавать такие системы с нуля и как осуществлять рефакторинг уже существующих систем, чтобы привести их в соответствие с современными правилами. Также из этой книги вы узнаете, каким образом все рекомендованные в ней подходы помогают улучшать качество программ в целом.
Обсуждаемые в книге концепции относятся к объектно-ориентированным языкам программирования, но некоторые из них также могут применяться и в функционально-ориентированных.
В книге «Чистая архитектура» вы найдете определения дизайна ПО и архитектуры ПО, а также пояснение различий между ними. Далее, там описываются различные парадигмы структурного, объектно-ориентированного и функционального программирования.
Принципы дизайна, описанные в книге, включают все принципы SOLID.
В фокусе этой книги — подход под названием «кричащая архитектура»: архитектура должна быть видима для разработчика, когда он работает над проектом.
Я считаю, что «Чистая архитектура» это книга продвинутого уровня, так что рекомендую ее опытным разработчикам, которые уже посвятили несколько лет разработке программ. Начинающим будет очень сложно понять описываемые в ней высокоуровневые принципы.
В целом, я советую читать книги Мартина именно в таком порядке, в каком они здесь изложены: сначала «Чистый код», потом «Идеальный программист», а уж затем «Чистая архитектура».
От редакции Techrocks. Также рекомендуем обратить внимание на книгу «Принципы, паттерны и методики гибкой разработки на языке C#» (авторы — Роберт Мартин и Мика Мартин).
C# Smorgasbord
Автор — Филип Экберг.
«C# Smorgasbord» это первая книга Филипа Экберга.
Книга предназначена для опытных C#-разработчиков, желающих добиться более глубокого понимания внутренней работы C# и узнать, как лучше всего использовать фреймворк .NET.
В книге есть главы, посвященные parallel extensions, написанию модульных тестов и применению их для ускорения разработки. Также есть отличная глава об асинхронном программировании с async и await, а также о динамическом программировании.
Во второй части разбирается использование Reflection. Также есть базовая информация о платформе Roslyn.
Книга была выпущена довольно давно, и часть ее контента уже устарела. Но я все равно считаю, что она полезна для C#-разработчиков, стремящихся получше разобраться в указанных темах.
Паттерны проектирования
Авторы — Эрик Фримен, Элизабет Робсон. Также в создании книги принимали участие Кэти Сьерра и Берт Бейтс. Название в оригинале — «Design Patterns» (серия «Head First»).
Большинство разработчиков знакомы с шаблонами проектирования по книге «Приемы объектно-ориентированного проектирования. Паттерны проектирования» (авторы — Эрик Гамма, Ричард Хелм, Ральф Джонсон, Джон Влиссидес).
Должен признаться, что мне эта книга не нравится. Мне не по вкусу ни стиль ее написания, ни иллюстрации, ни примеры.
А вот «Паттерны проектирования» освещают эту тему куда понятнее. Эта книга хорошо передает саму цель применения паттернов и поясняет, когда нужно их использовать. И, что более важно, — когда их НЕ нужно использовать, т. е., в каких случаях паттерн не подходит для решения проблемы.
Эту книгу я купил еще во время стажировки и думаю, что это единственная книга (из тех, что я тогда покупал), стоившая заплаченных за нее денег.
Примеры кода в книге «Паттерны проектирования» написаны на Java, но их можно с легкостью применить ко всем объектно-ориентированным языкам, включая C#.
Если вы хотите узнать больше о паттернах проектирования или узнать что-то новое, например, познакомиться с каким-то необычным паттерном, я настоятельно рекомендую приобрести книгу Фримена и Робсон.
От редакции Techrocks. Возможно, вас также заинтересует книга «Паттерны проектирования для C# и платформы .NET Core» (авторы — Гаурав Арораа, Джеффри Чилберто).
Путь программиста
Автор — Джон Сонмез. Название книги в оригинале — «Soft Skills: The Software Developer’s Life Manual».
Джон Сонмез, автор книги, сам прошел через все описанное в ней. Он работал на разных должностях в сфере разработки, занимался консультированием, вел блог и канал на YouTube, создавал курсы.
Основное отличие книги Сонмеза в том, что он говорит не только о том, как повысить качество кода. Он рассказывает, как разработчику «продавать себя», управлять своими финансами, инвестировать деньги, заниматься фитнесом, а также говорит о здоровье и об отношениях.
Цель книги — помочь читателю улучшить те сферы своей жизни, которые обычно не на слуху, но очень важны, если вы хотите стать успешным разработчиком. Эту книгу отличает широта тем, а также жизненные примеры, приводимые автором для их раскрытия.
К этой книге я возвращался не единожды, перечитывая отдельные главы. Могу смело рекомендовать ее каждому разработчику, желающему добиться большего профессионализма и получить большую степень свободы в своей карьере.
Искусство автономного тестирования
Автор — Ошероув Рой. Название книги в оригинале — «The Art of Unit Testing».
Рой Ошероув обновил свою популярную книгу и опубликовал ее второе издание в конце 2013 года.
Книга представляет читателю процесс создания автоматизированных тестов, с написания первого теста и до поддержки надежных наборов тестов. Рой дает определения многих широко используемых терминов, касающихся модульного тестирования, включая mock-и и stub-ы.
Также есть отдельные главы, посвященные использованию тестовых фреймворков, таких как Moq, FakeItEasy и Typemock Isolator. Книга включает много примеров кода, написанных на C#, что делает ее очень понятной и подходящей для начинающих.
Я купил себе еще первое издание и проштудировал его от корки до корки. Временами я возвращаюсь к этой книге и перечитываю главы, касающиеся моих рабочих задач, или когда хочу убедиться, что использую в моих наборах тестов наилучший подход.
Советую эту книгу всем, кто хочет побольше узнать о TDD (разработке через тестирование) и автоматизированном тестировании, и, конечно же, всем C#-разработчикам.
Эффективное программирование на C#. 50 способов улучшения кода
Автор — Билл Вагнер. Название книги в оригинале — «Effective C#: 50 Specific Ways to Improve Your C#».
В третьем издании своей книги Вагнер освещает широкий спектр тем как начального, так и продвинутого уровня, а также дает много советов.
Во вступлении к книге Вагнер говорит, что его целью было дать 50 рекомендаций, которые помогут профессиональным разработчикам использовать C# более эффективно.
Чтобы извлечь пользу из данной книги, нужно иметь определенный уровень понимания языка C#. Читатель должен быть знаком с базовыми функциями языка и платформой .NET.
В книге описываются идиомы языка, которые можно использовать в своем коде. Есть советы по управлению ресурсами, работе с дженериками и LINQ.
Этой книги у меня нет, я читал ее в университетской библиотеке. Могу сказать, что хотя некоторые базовые приемы и были мне уже известны, из книги я почерпнул много новых, более продвинутых.
Очень рекомендую эту книгу каждому C#-разработчику.
От редакции Techrocks. А мы рекомендуем обратить внимание на другую книгу того же автора — «More Effective C#». В ней рассматривается C# 7.0.
Вот и все, спасибо за внимание! Надеюсь, мой список поможет другим разработчикам подобрать хорошую книгу себе, на подарок другу или просто чтобы поставить на полку в офисе, чтобы произвести впечатление на коллег.
[customscript]techrocks_custom_after_post_html[/customscript]
[customscript]techrocks_custom_script[/customscript]