2009-03-24

Continuous integration

Багаар ажиллана гэдэг их ондоо эд байна шүү. Ганцаараа систем, шийдэл боловсруулаад туршаад болоод байдаг байсан. Бас ганцаараа жижиг хэмжээний код бичээд, туршаад, ажиллуулаад болоод л байдаг байсан юм. Харин багаар ажиллаад хийх болохоор кодоо хуваах, нэгтгэх, бичиг баримт бичихээс авахуулаад арай л өөр болдог юм байна. Хамгийн гол нь би өөрөө манлайлж байгаа тохиолдолд.

Бичиж байгаа нөгөө л кодоо бас цаашид бичих програмуудаа ямар арга ашиглан, хэрхэн хамтын үр ашигтай ажиллагааг бий болгох талаар сүүлийн үед жаал судлав. Ямар ч байсан одоогоор миний хэрэгцээнд уламжлалт хөгжүүлэлтийн загвар тохирохгүй. Хөгжүүлэлтээс өмнө хийгээд байх тийм сүртэй судалгаа, баримтлуулалт хэрэггүй. Харин үүний оронд шууд бичээд явдаг, үр дүн нь дороо харагддаг арга барил нь илүү тохиромжтой санагаад байгаа гэж. Гэтэл үүнд зориулаад rapid development, extreme programming, agile programming, scum гээд маш олон арга барил байснаас миний хувьд continuous integration илүү юм шиг санагдсан. Ер нь арга барил, зарчимын хувьд ижил боловч маш нарийн зохион байгуулалт систем шаарддагаараа онцлог юм. Өөрчлөлт бүр нь хувилбар удирдах систем рүү орох ёстой бөгөөд автоматжуулсан систем нь кодын өөрчлөлт бүрт програмыг байгуулах, зөв ажиллаж байгаа эсэхийг шалгадаг. Өөрөөр хэлбэл өөрчлөлт бүр нь заавал ямар нэг алдаагүй ажилладаг байх ёстой гэсэн үндсэн шаардлагыг хангаж байх ёстой. Харин ямар нэг алдаа гарсан тохиолдолд автоматжуулсан системийн тусламжтайгаар цаг алдалгүй илрүүлэх, засах боломжтой. Миний мэдэхийн Wikipedia-ын цаад систем болох Mediawiki нь энэ аргыг ашигладаг бөгөөд бараг Wikipedia дээр шууд амьд хөгжүүлэлт хийдэг гэж ойлгож болно.

Миний хувьд одоо үүнийгээ бүр нарийн судлаад, ажиллагаандаа нэвтрүүлэх л дутаж байх шиг байна. Одоо бичиж байгаа програмаа ч бас Wikipedia шиг хөгжүүлэх санаатай байгаагаа нуух юун.

4 comments:

Ууганбаяр said...

hi duluu

uuriig chin blogiig sonirxoloo sonirxoltoi zuils bna. xarin tsuwral mayagiin online xicheeluud tawibal sonirxox xumuus olon baix gej bodoj bna. tiimerxuu xelber ruu shiljwel zugeer bish uu?

za amjilt.

Дөлмандах said...

Сайн байна уу.

Би энэ талаар бас бодож үзэж байсан л даа. Гэхдээ хичээл ингэж бичих нь нэгдүгээрт цаг завын хувьд хэцүү, бас их хичээж байгаад юу ч бичилгүй дуусах нь бий.

Би бичээд, хүмүүс яг сурах нь жаахан хэцүү мэт санагдаад байгаа юм. Үүний оронд LiMNux бүлгэмийн зарим дотоод ажиллагаандаа хувилбар удирдах системийг ашиглаад хэрхэн хамтран ажиллах, код бичих талаар туршиж үзэхээр бэлтгэл ажлаа хийж байна. Өөрөөр хэлбэл хоосон ярих биш үйлдлээр үлгэрлэх аргыг сонгож аваад байна бид.

Эрдэнэчимэг.М said...

Дөлөөгийн дээр бичсэн зөв шүү багаар ажиллах нь амжилттай үр дүн гарахд яах аргагүй нэг нөлөөлөх хүчин. Ямар төсөл хэрэгжүүлэх гэж байгаа, багт ажиллах гүшүүдийн чадамжаас хамааран хугацаа ямар байх нь хүртэл тодорхой болдог. Төсөл хэрэгжүүлэхээр ажил аваад таг болчихвол өөрөө цаашид яаж ажиллах уу гэдгээ урдчилан бас харах хэрэгтэй юм билээ. Манайханы ихэнх нь хэнэггүй. Гадны төсөл ер нь яс байдаг, хийнэ гэвэл хийнэ.чадахгүй үедээ тусламж авдаг. Програм хангамж хөгжүүлэх төсөлд хувилбар удирдах систем хэргэлэнэ гэсэн байна. Өөр өөр газар байгаа олон хүн нэг зүйл дээр ажиллахад маш чухал юм шигээ. CVN , SVN дээр гоё хичээл байна билээ, тэдний ялгаа ч бас байна билээ. Бусад хүн сонирхож магад.

tume said...

маш хэрэгтэй нийтлэл байна. Agile-гийн талаар нэг заваараа бичээд өгөөч.