Залхуурсан шиг залхуур
Програмчиний ажил нь өдөр болгон дахин давтагдахгүй өөр юм хийж байдагт би дуртай. Давтагдах зүйл гарлаа гэхэд функц болгож бичээд хэрэглэнэ, багц модуль болгож салгаад өөр програмд ашиглана. Иймд нэг хийсэн зүйлээ давтаж хийх ёсгүй.
Гэхдээ яг адилхан биш боловч төсөөтэй зүйл давтагдах үед Copy&Paste хийгээд жаахан өөрчлөөд болгочих тохиолдол элбэг. Тухайлбал вэб апликэшн хөгжүүлэх үед төсөөтэй үйлдлүүд нилээн тааралддаг. Өгөгдлийн сан руу хэрэглэгч бүртгэх үйлдэл хийчихсэн байлаа гэж саная. Тэгвэл дараа нь шинэ mp3 бүртгэх үйлдэл хийх үед өмнөх кодоо хуулж байгаад засах нь шинээр бичхээс амархан. Эхний үйлдлээс ялгаатай нь зөвхөн өгөгдөл, харин бусад оруулах, хадгалах, шалгах үйлдлүүд нь бараг ижилхэн. Тэгвэл ийм бүртгэх үйлдэл нэг хоёроор тогтохгүй олон байвал яахав? Бага залхуучууд Copy&Paste аргаараа хийж байхад их залхуучууд илүү амар арга хайдаг.
- Apache Velocity бол загвар файлаас код гаргаж авахад зориулагдсан ерөнхий зориулалтын хэрэглүүр бөгөөд үүн дээр суурилсан олон төслүүд байдаг. Дашрамд дурдахад миний дадлага хийж байгаа япон компани Velocity-г түшиглээд Excel дээр хийсэн дизайны баримтаасаа вэбийнхээ кодыг үүсгэдэг хэрэгсэл хийчихсэн байсан нь бүгдийг гараар хийдэг гэж бодож байсан япончуудын хөгжүүлэлтийн арга барилын талаарх төсөөлөлд маань өөрчлөлт оруулав. Jakarta POI-г хэрэглэж Excel файлаас параметрүүдээ уншаад урьдчилан бэлдсэн Velocity загвар(vm өргөтгөлтэй файл) луугаа оруулснаар код бэлэн болно. Миний бодоход Microsoft Office 2007-ийн Open XML форматыг Excel-ийн оронд хэрэглэвэл илүү хялбар, хөрвөх чадвар нь илүү болох мэт санагдсан. Тэгээд вэб апликэшний кодын дөчин хувийг автоматаар үүсгээд авчихдаг болсон гэж байсан. Овоо гаруудаа бас.
- XDoclet нь J2EE кодыг хялбархан үүсгэнэ. EJB хийхэд ганцхан Bean хийх гэж өчнөөн олон файл үүсгэх шаардлагатай болдог бол XDoclet-оор ганцхан файлаас бусдыг нь гаргаж болно. Энэ багаж нь програмчны бичсэн annotation буюу тусгай тайлбар зүүлтүүдийг мэдэрч кодыг үүсгэнэ.
- Middlegen бол өгөгдлийн сантай харьцах хэсгийн код үүсгэдэг багаж. Velocity, XDoclet хоёр дээр суурилсан бөгөөд EJB, JDO, Hibernate, Torque -ийн кодуудыг үүсгэж чадна.
- AppFuse нь нээлттэй эх бүхий төслүүдийг угсарч нийлүүлэн жава дээр суурилсан вэб апликэшн үүсгэхэд зориулагдсан. JSF, Spring MVC, Struts, Tapestry, WebWork зэрэг вэб фрэймворкуудаас дуртайгаа сонгоход бүх тохиргоо, өгөгдлийн сангийн код(Hibernate, iBATIS) ийг үүсгээд зосохгүй тэстүүдийг(DbUnit, Dumbster, jMock, JUnit, Canoo WebTest) хүртэл үүсгэж чадна. За тэгээд бүх боломж, чадваруудыг нь тоочихоос ч залхуурав. Жирийн өгөгдлийн сан руу нэмж хасдаг, гаргаж харуулдаг апликэшнийг бол нүд ирмэх зуур үүсгэчихэж байна лээ.
Дээрх багаж хэрэгслүүд хүссэн бүгдийг хийж өгч чадахгүй ч сайн туслагч болж чадна. Ингээд хэрэв та илүү ихийг хүсч байвал өөрийн хэрэгцээнд тохирсон код үүсгэгч багаж хийж “их залхуур”.