Библиотека

18 авг. 2011 г. | | |

Steve Freeman, Nat Pryce. Growing Object-Oriented Software, Guided by Tests (скачать)
Test-Driven Development (TDD) is now an established technique for delivering better software faster. TDD is based on a simple idea: write tests for your code before you write the code itself. However, this "simple" idea takes skill and judgment to do well. Now there's a practical guide to TDD that takes you beyond the basic concepts. Drawing on a decade of experience building real-world systems, two TDD pioneers show how to let tests guide your development and “grow” software that is coherent, reliable, and maintainable.
Steve Freeman and Nat Pryce describe the processes they use, the design principles they strive to achieve, and some of the tools that help them get the job done. Through an extended worked example, you’ll learn how TDD works at multiple levels, using tests to drive the features and the object-oriented structure of the code, and using Mock Objects to discover and then describe relationships between objects. Along the way, the book systematically addresses challenges that development teams encounter with TDD—from integrating TDD into your processes to testing your most difficult features.

Библиотека

| | |

Фридман А.Л. - Основы объектно-ориентированной разработки программных систем. (скачать)
Книга написана как учебное пособие для студентов старших курсов. В ней рассматриваются основные понятия объектно-ориентированного программирования, методы анализа задач и проектирования программных систем на его основе. Исследуются современные способы организации процесса создания программного обеспечения и их взаимосвязь с методами анализа проектирования систем, прежде всего на основе подхода "проектирование по образцам".
 Тимоти Бадд - Объектно-ориентированное программирование в действии (скачать)
Второе американское издание книги известного специалиста по объектно - ориентированному программированию выпускается на русском языке по лицензии издательства Addison Wesley Longman. В ней рассматриваются теоретические и практические аспекты ООП (как на уровне разработки программ, так и на уровне работы компиляторов), позволяющие с наименьшими затратами получать современные программы со сложной логической структурой. Автор обобщает опыт объектно - ориентированного программирования на примерах таких языков, как Java, C++, Object Pascal и др. Соответствующий круг вопросов весьма актуален, поскольку в практике современного программирования приходится иметь дело со все более сложными логическими и программными объектами. Рассмотрение теоретических вопросов настраницах книги удачно сочетается с многочисленными наглядными примерами. Для понимания материала достаточно владения каким - либо традиционным языком программирования типа С или Pascal, хотя в отдельных случаях (особенно в последней четверти книги) могут оказаться желательны (но не необходимы) и более глубокие знания. Книга будет полезна преподавателям, студентам, разработчикам прикладных программ и всем, кто хочет освоить современные подходы к программированию.

Библиотека

| | |

Мартин Р. Чистый код. Создание, анализ и рефакторинг (скачать)
Эта книга посвящена хорошему программированию. Она полна реальных примеров кода. Мы будем рассматривать код с различных направлений: сверху вниз, снизу вверх и даже изнутри. Прочитав книгу, вы узнаете много нового о коде. Более того, вы научитесь отличать хороший код от плохого. Вы узнаете, как писать хороший код и как преобразовать плохой код в хороший.
Книга состоит из трех частей. В первой части излагаются принципы, паттерны и приемы написания чистого кода; приводится большой объем примеров кода. Вторая часть состоит из практических сценариев нарастающей сложности. Каждый сценарий представляет собой упражнение по чистке кода или преобразованию проблемного кода в код с меньшим количеством проблем. Третья часть книги — концентрированное выражение ее сути. Она состоит из одной главы с перечнем эвристических правил и «запахов кода», собранных во время анализа. Эта часть представляет собой базу знаний, описывающую наш путь мышления в процессе чтения, написания и чистки кода

Статические методы и методы экземпляра: кто быстрее

9 авг. 2011 г. | | |

Для некоторых методов класса Microsoft Code Analysis даёт такой совет:
CA1822 : Microsoft.Performance : The 'this' parameter (or 'Me' in Visual Basic) is never used. Mark the member as static (or Shared in Visual Basic) or use 'this'/'Me' in the method body or at least one property accessor, if appropriate. 
В MSDN по этому поводу написано:

«Members that do not access instance data or call instance methods can be marked as static (Shared in Visual Basic). After you mark the methods as static, the compiler will emit non-virtual call sites to these members. Emitting non-virtual call sites will prevent a check at runtime for each call that ensures that the current object pointer is non-null. This can result in a measurable performance gain for performance-sensitive code. In some cases, the failure to access the current object instance represents a correctness issue.»
Какие преимущества у static метода перед методом экземпляра? При каждом вызове метода экземпляра происходит проверка указателя на null. Для статических методов такого не делается, что даёт небольшой прирост производительности. Кроме того, согласно MSDN, для всех объектов класса будет существовать только один экземпляр метода, что так же увеличит производительность.