Экстремальное программирование. Разработка через тестирование


Dollar Dollar(int amount) { this.amount = amount; } и использовать в метод е times(): Dollar



Download 1,35 Mb.
Pdf ko'rish
bet11/140
Sana15.04.2022
Hajmi1,35 Mb.
#555128
1   ...   7   8   9   10   11   12   13   14   ...   140
Bog'liq
Экстремальное программирование Разработка через тестирование PDFDrive

Dollar
Dollar(int amount) {
this.amount = amount;
}
и использовать в метод е times():
Dollar
void times(int multiplier) {
amount = amount * 2;
}
Число 2 перед ается в параметре multiplier, поэтому под ставим
параметр вместо константы:
Dollar
void times(int multiplier) {
amount= amount * multiplier;
}
Чтобы прод емонстрировать, как хорошо мы знаем синтаксис языка
Java, 
используем 
оператор 
*= 
(который, 
кстати, 
уменьшает
д ублирование):
Dollar
void times(int multiplier) {
amount *= multiplier;
}
$5 + 1 °CHF = $10, если курс обмена 2:1
$5 * 2 = $10
Сд елать переменную amount закрытым членом класса
Побочные эффекты в классе Dollar?
Округление д енежных величин?


Теперь можно пометить первый тест как завершенный. Далее мы
позаботимся о тех странных побочных эффектах; но сначала д авайте
под вед ем итоги. Мы сд елали след ующее:
• созд али список тестов, которые – мы знаем – нам понад обятся;
• с помощью фрагмента код а описали, какой мы хотим вид еть нашу
операцию;
• временно проигнорировали о собенно сти сред ы тестирования
JUnit;
• заставили тесты компилироваться, написав соответствующие
заготовки;
• заставили тесты работать, использовав сомнительные приемы;
• 
слегка 
улучшили 
работающий 
код , 
заменив 
константы
переменными;
• д обавили пункты в список зад ач, вместо того чтобы заняться
всеми этими зад ачами сразу.


2. Вырождающиеся объекты 
Обычный цикл разработки на о снове тестирования со стоит из
след ующих этапов:
1. Напишите тест. Пред ставьте, как буд ет реализована в код е
воображаемая вами операция. Прод умав ее интерфейс, опишите все
элементы, которые, как вам кажется, понад обятся.
2. Заставьте тест работать. Первоочеред ная зад ача – получить
зеленую поло ску. Если напрашивается про стое и элегантное решение,
используйте его. Если же на реализацию такого решения потребуется
время, отложите его. Про сто отметьте, что к нему нужно вернуться,
когд а буд ет решена о сновная зад ача – быстро получить зеленый
инд икатор. 
Такой 
под ход
д овольно 
неприятен 
д ля 
опытных
разработчиков (в эстетическом плане), вед ь они след уют только
правилам хорошей разработки. Но зеленая поло ска прощает все грехи,
правд а, всего лишь на мгновение.
3. Улучшите решение. Теперь, когд а система работает, избавьтесь от
прошлых огрехов и вернитесь на путь истинной разработки. Устраните
д ублирование, которое вы внесли, и быстро сд елайте так, чтобы
поло ска снова стала зеленой.
Наша цель – 
чистый код, который работает
(отд ельное спасибо
Рону Джеффризу за этот слоган). Иногд а такой код не по силам д аже
самым лучшим программистам, и почти всегд а он не д о стижим д ля
большинства программистов (врод е меня). Разд еляй и властвуй,
приятель, – в этом весь смысл! Сначала мы напишем код , «который
работает», по сле чего созд ад им «чистый код ». Такой под ход
противоречит мод ели разработки на о снове архитектуры, в которой вы
сначала пишете «чистый код », а потом мучаетесь, пытаясь
интегрировать в проект код , «который работает».
$5 + 1 °CHF = $10, если курс обмена 2:1
$5 * 2 = $10
Сд елать переменную amount закрытым членом класса

Download 1,35 Mb.

Do'stlaringiz bilan baham:
1   ...   7   8   9   10   11   12   13   14   ...   140




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish