Giter Site home page Giter Site logo

designpatternsbookissues's Introduction

DesignPatternsBookIssues

Questions/typos/bugs in my book "Design patterns in .NET"

designpatternsbookissues's People

Contributors

sergeyteplyakov avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar

designpatternsbookissues's Issues

Опечатки

  1. стр 58. В описании паттерна Посредник используются три сущности - LogFileReader, LogSaver, LogImporter. Но в последнем абзаце написано LogFileSaver вместо LogSaver.
  2. стр 59. В последнем абзаце написано LogFileImporter вместо LogImporter.
  3. стр 60. В первом абзаце написано LogFileSaver вместо LogSaver.
  4. стр 61. В третьем абзаце написано LogFileSaver вместо LogSaver.
  5. стр 62. Рис 3.4. Тут я не уверен. Разве посредник в явной реализации не должен знать о коллегах? Может и не знать?
  6. стр 113. рис 7.1. Reseiver...

Пока все. :)
Страницы у книжки очень тонкие, просвечиваются...
Но главное чтобы материал был познавательный. Спасибо.

Upd1:
7. стр 217. первая строка листинга. LogImportRuleRejectOldEbtriesWithLowSeverity <- разделителей не хватает

книга

выложили бы свою книгу в свой репозиторий

Visitor issues from Qbit86

  1. В листинге 6.1 в методе SaveLogEntry() что-то не в порядке с веткой else. Должно быть
if (simpleLogEntry != null)
    SaveSimpleLogEntry(simpleLogEntry);
else
    throw new InvalidOperationException(...);

А лучше сделать метод «плоским», добавив returnы вместо else.

  1. Комментарий названия паттерна от Скотта Мейерса в статье «My Most Important C++ Aha! Moments...Ever»: «Then, one day, I made a fundamental realization: the Visitor Pattern has nothing to do with visitation.»

Оригинал пожеланий: http://rsdn.ru/forum/education/6052091.1

Создать пост с перечнем ссылок, используемых в книге

BB>Добрый день.
BB>Читаю сейчас Вашу книгу, нравится, но есть такой вопрос-пожелание. Вы часто в тексте приводите ссылки на свои или чьи-то статьи, к которым хотелось бы позднее вернуться. Было бы очень удобно, чтобы где-нибудь, например, в Вашем блоге был полный перечень этих ссылок в том порядке, в котором они встречаются в книге. Сейчас по прочтении трети книги возвращаться и сканировать текст на наличие ссылок довольно проблематично.

Отсюда: http://rsdn.ru/forum/education/6058043.1

Опечатки

Страница 98, список в верхней половине, пункт 4: «когда на наблюдатель» -> «когда на наблюдателя»
Страница 177, последний абзац текста: «Xunit» -> «xUnit»

Опечатки и замечания

Опечатки:

  0. стр. 58 и 59: не хватает круглых скобочек на диаграммах для оператора foreach, например вместо "foreach line in ReadLog()", должно быть "foreach(var line in ReadLog())"
  1. стр. 115: в следующем предложении слово "Стратегия" должно быть заменено на слово "Состояние".

В .NET Framework конечные автоматы применяются в огромном числе классов, но классической реализации паттерна "Стратегия" среди открытых (public) типов .NET Framework я не нашел.
2. стр. 130: на диаграмме в тексте ".Net version?", слово .NET должно писаться большими буквами.
3. стр. 156: слово "Timespan" должно писаться как "TimeSpan". В слове "FromMilliseoncds" опечатка, должно быть "FromMilliseconds"
4. стр. 162: в почтовом адресе "[email protected]" пропущена буква "t", эта же ошибка повторяется на нескольких других страницах.
5. стр. 174: в слове "autofac" первая буква должна быть заглавной, так как это имя библиотеки. Пруф
6. стр. 193: на диаграмме слово "PurelyAsynclogSaver" должно писаться, как "PurelyAsyncLogSaver"
7. стр. 194: слова "fromsinobj" и "boolMoveNext" должны писаться как "from s in obj" и "bool MoveNext"
8. стр. 196: слова "varcc" и "newCustomCollection" должны писаться как "var cc" и "new CustomCollection". Также слово "ReadonlyCollection" должно писаться как "ReadOnlyCollection".
9. стр. 198: на диаграмме в словах "ExecuteNonQuerty", "querty", "SqlServerFasade" опечатки
10.стр. 204: слово "boolQuotaReached" должно писаться как "bool QuotaReached"
11.стр. 206: слово "awast" должно писаться как "await"
12.стр. 208: слова "IntermediateLanguage" и "Unityinterceptors" должны писаться как "Intermediate Language" и "Unity interceptors"
13.стр. 211: на диаграмме слово "WhriteString" должно писаться, как "WriteString"
14.стр. 206: слово "LogImportRuleRejectOldEntriesWithLowSeverity" должно писаться как "LogImportRule RejectOldEntriesWithLowSeverity", так же похоже, что в предложении
Фабричные методы, такие как Use, Or и And, предназначены для создания ...
допущена смысловая ошибка, вместо слова "Use", надо использовать слово "Import"
15.стр. 222: слова "publicvoidSaveLogEntryAtTheBackend" и "newLogSaverClient" должны писаться как "public void SaveLogEntryAtTheBackend" и "new LogSaverClient". Также, похоже, что в слова "binding" и "endpoint" должны быть во множественном числе.
16.стр. 224: слово "ASP.NETWebAPI" должно писаться как "ASP.NET Web API"
17.стр. 226: слова "Object-RelationalMapping", "EntityFramework" и "dataentites" должны писаться как "Object-Relational Mapping", "Entity Framework" и "data entites".
18.стр. 237: слова "varfilein" и "IEnumerablelogEntries" должны писаться как "var file in" и "IEnumerable logEntries"
19.стр. 241: слово "lowcohesion" должно писаться как "low cohesion"
20.стр. 259: выражение "discriminate dunions" должно писаться как "discriminated unions"
21.стр. 273: лишнее многоточие после строчки "return true;"
22.стр. 282: слова "varparser", "newLogEntryParser" и "varlogEntry" должны писаться как "var parser", "new LogEntryParser" и "var logEntry".
23.стр. 288: на диаграмме слово "BackenLogEntryParser" должно писаться, как "BackendLogEntryParser"
24.стр. 289: выражение в скобках (Model — View — Controller, "Модель — представление — контроллер"), должно писаться как (Model — View — Controller, "Модель — Представление — Контроллер")
25.стр. 290: выражение в скобках (Model — View — Presenter, "Модель — представление — презентер"), должно писаться как (Model — View — Presenter, "Модель — Представление — Презентер"),
так же на диаграмме в слове "Qutput" есть опечатка.
26.стр. 291: выражение в скобках (Model — View — View Model, "Модель — представление — модель представления"), должно писаться как (Model — View — View Model, "Модель — Представление — Модель Представления")
27.стр. 293: в имени книги "Dependency Injectionin .NET" пропущен пробел.

Смысловые замечания и комментарии:

  1. стр. 70: Похоже, что в предложении "При этом для получения итератора используется метод GetEnumerator интерфейса IEnumerable, который каждый раз возвращает новый экземпляр итератора" присутствуют две смысловые неточности, а именно:
    Для получения итератора не обязателен интерфейс IEnumerable. Пруфы: статья самого Сергея, и статья известного эксперта MS Кшиштофа Цвалины.
    Строго говоря метод GetEnumerator не обязан возвращать каждый раз новый экземпляр итератора. По крайней мере, в документации этого правила нет
  2. стр. 86: В конструкторе класса LogFileReader не хватает требования, того что аргумент logEntrySubscriber не равен null. Например вот так: Contract.Requires(logEntrySubscriber != null). Эта проверка логична, так как аргумент logFileName проверяется.
  3. стр. 117: пример немного не ясен в том смысле, что в нем не очевидно, кто является Client, кто является Handler, и почему их отношение соответствует отношению для паттерна цепочка обязанностей из классической книги GoF.
  4. стр. 122: для общей согласованности книги, наверное лучше бы было перевести название "Singleton", как "Одиночка" и использовать этот термин во всей книге. Ка пример такой ситуации можно привести название паттерна Proxy "Заместитель", хотя слово "прокси" есть в русском языке. Тоже самое касается паттерна Mediator "Посредник"(медиатор)
  5. стр. 134: словосочетание "несколько высокоуровневых классов-медиаторов используют", должно писаться как "несколько высокоуровневых классов-посредников используют"
  6. стр. 174: возможно лучше перевести словосочетание "unit tests" как "модульные тесты", а не как "юнит-тесты"
  7. стр. 218: на страницах 218 и 85 есть некоторая рассогласованность, а именно на одной используется английское слово "foreach", а на другой русское выражение "для всех".
  8. стр. 259: страница содержит упоминание о "discriminated unions", но не объясняет, что этот термин значит(даже нету сноски). Однако например другая страница(стр. 270) содержит упоминание о О-нотации и тут же в сноске дает её краткое описание.
  9. стр. 293: определение IoC-контейнер должно быть заменено на DI-контейнер, так как противоречит содержимому вставки на 301 странице, которая гласит что выражение "IoC-контейнер" в большинстве случаев не имеет смысла
    10.стр.313: в обсуждении первой и второй книг используются два слова для термина "pattern", а именно "паттерн" и "шаблон". Как мне кажется стоит выбрать и пользоваться только одним из них.

Замечания LaptevVV от 28.04

  1. Коды напечатаны очень плохо. Очень много пустых строк. Да еще интервал между строками больше, чем интервал в тексте.
    Не знаю, с чем связано - макет такой был, что ли? Или уже в типографии накосячили...
  2. В одном месте принцип подстановки Лисков назван принципом замещения Лисков - как будто переводил с английского переводчик - не программист... :)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.