вторник, 27 ноября 2018 г.

Эффективное программирование на C# - Билл Вагнер (3-е издание)





Недавно купил и прочитал книгу Билла Вагнера - Эффективное программирование на C#. 50 способов улучшения кода (3-е издание). Данная книга актуальна для C# версии 6.0 включительно. 

Я уже довольно давно не покупал бумажных книг. Электронная вот уже более пяти лет служит мне верой и правдой. Да и цены на книги за последние несколько лет заметно подросли. Но захотелось живую, настоящую. Подержать в руках, потрогать за обложку, пощупать за переплет, вдохнуть запах свеженапечатанных чернил. Ну вы меня понимаете... Электронная книга этого удовольствия не даст.

И так - твердая обложка, скромная толщина в 224 белоснежных страницы качественной бумаги. Книгу приятно держать в руках. Она не производит ощущения дешевизны. Что в общем-то соответствует ее цене.

Самое главное - перевод. Не сказал бы что он идеален, но суть книги доносит. Я начинал читать ее еще в английском варианте, но осознание для меня лучше проходит на родном языке. Мне показалось лучшим - прочитать ее на русском, а потом закрепить на английском - заодно улучшить навыки понимания языка. Кроме того в ряде советов встречаются довольно длинные и грузные предложения. Но в оригинале также, поэтому "понять и простить".

Некоторые моменты, которые мне показались странными:
  • Кое-где встречалась копипаста в примерах кодах
  • В самом начале книги дается совет про использование интерполированных строк C# 6.0, в тоже время далее во всех примерах книги автор использует string.Format() (Сам не следует своему совету? Или не было время обновить примеры в книге?).

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

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

На сайте издательства есть оглавление и отрывок из книги, чтобы оценить содержание и перевод:


Зачем читать Рихтера?

Книгу Рихтера (само собой речь идет о CLR via C#) я перечитывал порядка четырех раз в разных изданиях, начиная с C# 2.0. Вот моя первая книга Рихтера еще 2007-го года выпуска:


Немного потерлась, но аккуратное отношение привитое с детства позволяет содержать книги в довольно приличном состоянии.

Свою службу дотнетчиком я начал с чтения Троелсена и Дино Эспозито с его замечательными зелеными книжечками по ASP.NET. И только потом в ход пошел Рихтер. Читать его в качестве первой книги по C# и .NET крайне не рекомендую во избежания порчи психики. К слову в последней версии книги про .NET 4.5 в конце предисловия добавили фото Рихтера с семьей. Видимо это как-то должно успокаивать, что такую книгу написал вполне нормальный человек, у которого даже есть семья и дети. У меня сначала было подозрение на фотошоп или подсадных актеров ))

Увы забывается Рихтер довольно быстро. Материал в его книгах безусловно обязателен к прочтению любым дотнетчиком и полезен для понимания картины. Но для будней рядового разработчика в нем мало прока. Для собеседований - да, поставить галочку для самого себя - да, если спросят коллеги - скажешь - да, я читал Рихтера. Ну и все, поставил на полочку и забыл. 

Резюмирую, зачем читать Рихтера?:
- для прохождения собеседований (!)
- показать более молодым разработчикам какой ты умный
- для беседы с коллегами за рюмочкой чая
- чтобы понять (и благополучно забыть) внутренности платформы .NET и языка C#
- чтобы быть true-дотнетчиком
- для галочки в чеклисте

Собственно сам я недавно перечитывал Рихтера (уже версию .NET 4.5) как раз для прохождения собеседований. Пришлось искать новую работу. Нынешние собеседования предполагают знание внутренностей .NET и C#. Без этого увы никак.

Чтобы каждый день ездить на машине тебе не обязательно помнить устройство двигателя. Ты открываешь капот только для прохождения ТО и в случае внезапной поломки. Все остальное время ты просто ездишь. Вот и с Рихтером также...

Наиболее эффективное программирование на C# - Билл Вагнер (2-е издание)

Закончил чтение очередной книги Билла Вагнера - Наиболее эффективное программирование на C#. 50 способов улучшения кода (2-е издани...