» Главная
eXcode.ru » Статьи » PHP » Трюки
» Новости
» Опросы
» Файлы
» Журнал



Пользователей: 0
Гостей: 5







Ведущий раздела: LedWorm
Описание: Различные хитрости при программировании на PHP



«1» «2» «3» 

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


Внедрение TDD в команду "традиционных" программистов
Существует неформальное правило: «Неважно как громко вы кричите или как часто ругаете программистов, неважно какой толщины розги, которыми вы их бъете, выважно чем и как вы им угрожаете. Важно только одно - программисты будут использовать какой-либо инструмент или процесс, только если они поверят, что эти инструменты или процессы облегчат их работу.» Конечно, это правило касается не только программистов. Поэтому важно доказать программистам, что модульное тестирование будет экономить их силы, нервы и поможет зарабатывать больше денег. Внедрить TDD насильно невозможно.


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


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


TDD: Запахи тестового кода
Один из самых очевидных признаков загнивания проекта. Кратко описать идею можно так - требуется слишком много времени для выполнения теста. Когда вы разрабатываете приложение, то должны иметь возможность выполнять весь набор тестов (TestSuite) неограниченное количество раз и не должны ждать тесты слишком долго. Весь набор модульных тестов приложения (конечно, если приложение не слишком большое) должен исполняться не дольше 1-2 минут. А тесты на тот модуль, который вы разрабатываете в данный момент должны срабатывать вообще мгновенно.


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


TDD: Введение в разработку через тестирование
Ни один программист не считает работу над некоторым фрагментом кода завершенной, не проверив перед этим его работоспособность. Однако, если вы тестируете свой код, это не означает, что у вас есть тесты.


TDD: Термины и определения
Разработка через тестирование - процесс разработки программного обеспечения, который предусматривает написание и автоматизацию модульных тестов еще до момента написания соответствующих классов или модулей. Это гарантирует, что все обязанности любого элемента программного обеспечения определяются еще до того, как они будут закодированы.


Управление зависимостями в PHP-коде: Реалии PHP
Вот несколько наиболее распространенных в PHP способов обеспечения связи клиентского кода со «звездными объектами»:


Управление зависимостями в PHP-коде: Самые важные зависимости
В любом проекте существует набор объектов, которые требуются большому количеству клиентов. К таким можно отнести соединение с базой данных, объекты конфигурации, пользователь, система прав, запрос(request) или ответ(response) системы, логгер, кеш – этот список можно продолжать. Раз они требуются большому числу клиентов – значит, они должны быть как минимум легко доступны практически в любой точке приложения. Для приложения средних размеров этот список уже большой – все через конструктор не передашь. Кроме этого, иногда возникает необходимость в том, чтобы сменить, скажем, метод обработки ошибок, драйвер базы данных, механизм кеширования и т.д. Идеально, если наше приложение потребовало бы при этом минимальных модификаций, не затрагивая при этом кода, реализующего бизнес-логику.


«1» «2» «3» 

Имя:

Пароль:



Регистрация

Какая OS удобнее, на ваш взгляд?
MS Windows / Vista
66% (194)
Linux
19% (57)
SunOS
1% (3)
QNX
1% (2)
BSD
4% (12)
MacOS
3% (8)
BeOS
1% (3)
Unix
1% (2)
Другая
4% (13)

Проголосовало: 294
- Ты слишком много знал, - сказал Windows HardDisk-у.
Рейтинг: 8/10 (6)
Посмотреть все анекдоты

 
eXcode.ru » Статьи » PHP » Трюки