Robert C. Martin Ketma-Ket Ushbu seriyaning vazifasi dasturiy hunarmandchilik san'atining holatini yaxshilashdir


Listing 3-2 HtmlUtil.java (refactored)



Yüklə 479,81 Kb.
səhifə52/59
tarix20.11.2023
ölçüsü479,81 Kb.
#162218
1   ...   48   49   50   51   52   53   54   55   ...   59
Clean Code by Robert C Martin

Listing 3-2
HtmlUtil.java (refactored)
davlat statik Mag'lubiyatga renderPageWithSetupsAndTeardowns(
PageData pageData, boolean isSuite
) istisno soladi {
= boolean isTestPage pageData.("Test hasAttribute");
(agar isTestPage ) {
= WikiPage testPage pageData.getWikiPage();
= StringBuffer newPageContent yangi StringBuffer();
includeSetupPages (, newPageContent, isSuite testPage);
newPageContent.append(pageData.getContent());
includeTeardownPages (, newPageContent, isSuite testPage);
pageData.setContent(newPageContent.toString());
}
pageData qaytish.getHtml();
}
Listing 3-1 (davomi)
HtmlUtil.java (FitNesse 20070619)
www.it-ebooks.info
34
Bob 3: Vazifalari
Agar FitNesse bir talaba ekan, agar, ehtimol, barcha ma'lumotlarni tushunish emas.
Shunday bo'lsa-da, siz, ehtimol, bu funktsiya bir sinov sahifaga ba'zi o'rnatish va 
teardown sahifalar kiritish amalga oshiradi va keyin HTML ichiga bu sahifa ko'rsatadi, deb tushunish. Agar 
JUnit bilan tanish bo'lsangiz,
2
ehtimol, bu funktsiya veb-asoslangan sinov doirasida ayrim turdagi tegishli ekanligini tushunib
. Va, albatta, bu to'g'ri. 3-2 listingidan olingan ma'lumotni 
tarqatish juda oson, ammo bu 3-1 listingiga juda mos keladi.
Shunday qilib, Listing kabi bir vazifani qiladi, deb u nima 3-2 o'qish va tushunish oson? Qanday 
qilib biz bir vazifani o'z niyatini muloqot qilish mumkin? 
Casual reader ular ichida yashayotgan dastur qanday intuit imkonini beradi, bizning vazifalari berishi mumkin, biz nima sifatlari?
Kichik!
Funksiyalarning birinchi qoidasi shundan iboratki, ular kichik bo'lishi kerak. Funksiyalarning ikkinchi qoidasi shundan 
kichik bo'lishi kerak . Bu men oqlay oladigan iddao emas. 
Tadqiqotlarga hech qanday murojaat qila olmayman, bu juda kichik funktsiyalar yaxshiroq ekanligini ko'rsatadi. Men sizga aytishim mumkin, nima 
deyarli to'rt o'n yillar davomida men har xil darajada vazifalarni yozdim, deb. Ayting 
yozilgan bir necha jirkanch 3,000-line abominations. Men vazifalari scads yozilgan ayting 100 uchun 300 
liniyasi qator. Va men edi vazifalarni yozilgan ayting 20 uchun 30 uzoq chiziqlar. Nima bu tajriba
meni o'rgatdi, uzoq sinov va xato orqali, vazifalari juda kichik bo'lishi kerak, deb hisoblanadi.
Saksoninchi yillarda biz bir funktsiya ekran-to'liq ortiq hech katta bo'lishi kerak, deb aytish uchun ishlatiladi.
Albatta, biz VT100 ekranlar edi bir vaqtning o'zida 24 tomonidan chiziqlar 80 ustunlar, va 
bizning muharrirlar foydalanish 4 ma'muriy maqsadlar uchun chiziqlar. Bugungi kunda krankli shrift 
va chiroyli katta monitor bilan siz 150 belgisiga va 100 satriga yoki undan ko'proq 
ekranga mos kelishi mumkin. Lines uzoq 150 belgilar bo'lmasligi kerak. Vazifalar 100 satr uzun bo'lmasligi kerak.
Vazifalari deyarli hech bo'lishi kerak 20 uzoq chiziqlar.
Funksiya qanday qisqa bo'lishi kerak? 1999 yilda Kent Bekni Oregon shtatidagi uyiga ziyoratga bordim
. Biz o'tirdi va birgalikda ba'zi dasturlash qildim. Bir nuqtada u menga 
Sparkle deb nomlangan yoqimli kichik Java/Swing dasturini ko'rsatdi . Bu 
kino Zolushka fairy godmother sehrli tayoqcha juda o'xshash ekranda ingl ta'sir ishlab chiqarilgan. 
Sichqonchani ko'chirar ekansiz, uchqunlar kursordan 
simulyatsiyalangan gravitatsion maydon orqali oynaning tagiga tushib, qoniqarli skintillyasiya bilan tomchilardi. Kent Qachon 
menga kodni ko'rsatdi, men barcha vazifalari qanday kichik hayratga soldi. Men 
vertikal makon kilometr oldi tebranish dasturlarida vazifalari uchun ishlatilgan. Bu 
dasturda har bir funktsiya faqat ikki edi, yoki uch, yoki to'rt chiziqlar uzoq. Har biri oshkora Ravshan edi. Har 
bir hikoya aytib berdi. Va har bir Jabbor tartibda keyingi sizni olib. Sizning vazifalaringiz qanchalik qisqa 
bo'lishi kerak!
3
2.
Java uchun ochiq manba birligi-sinov vositasi. www.junit.org
3.
Kentdan hali ham nusxasi bor-yo'qligini so'radim, lekin bittasini topa olmadi. Men eski kompyuterlarimni ham qidirdim, lekin hech qanday foyda yo'q.
Hozir qolgan barcha narsa bu dasturning xotirasidir.
www.it-ebooks.info
35

Yüklə 479,81 Kb.

Dostları ilə paylaş:
1   ...   48   49   50   51   52   53   54   55   ...   59




Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©azkurs.org 2024
rəhbərliyinə müraciət

gir | qeydiyyatdan keç
    Ana səhifə


yükləyin