Коодын стандартаа автоматжуул

Orgilbat
Unimedia Solutions
Published in
3 min readDec 2, 2021

Одоо өгүүлэх зүйл танд ч бас тохиолдож байсан байх. Тэр нь юу вэ гэвэл, шинэ төсөл эхлэхийн өмнө хүн бүр урам зоригтой, сайн сайхан тэмүүлэлтэй байж, ийм ч стандарт мөрдөнө, тийм ч дүрэм баримтлана гэцгээдэг. Тэгээд ч зогсохгүй, энэхүү тэмүүллээ цаасан дээр буулгаж, баримтжуулах нь ч бий. Тэрхүү зорилтуудын нэг нь тухайн төслийн коодын стандарт юм.

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

Тэгвэл, хэзээ энэ зүйл буруу тийшээ эргэсэн хэрэг вэ? Магадгүй, эхний уулзалтан дээрээс л эхлэсэн байх. Төслийн багийн зарим гишүүд анзаараагүй байж болно. Зарим хэсэг нь тухайн асуудлын утгыг ойлгоогүй байж мэднэ. Бүр муугаар бодвол, зарим хэсэг нь стандарттай санал нийлэхгүй, эсэргүүцэж, өөрийнхөөрөө хийнэ гэж төлөвлөсөн ч байх магадлалтай. Эцэст нь, үлдсэн хэдэн хүн стандартын зорилгыг ойлгоод, санал нэгдэж байсан ч явцын дунд, төслийн дарамт ихсэх үед, аргагүйн эрхэнд өөрөөр хийсэн байж болно.

Коод нь сайн форматлагдсан, стандарт мөрдсөн байлаа гээд хэрэглэгчээс нэмэлт оноо авахгүй, хэрэглэгчийн хийлгэхийг хүсч байгаа боломжийг системд нэмэхгүй. Цаашлаад, хэрэв автоматжуулаагүй л бол коодын стандартыг дагана гэдэг маш залхуутай ажил. Үгүй гэж бодож байвал, замбараагүй бичигдсэн коодын нэг файл олж аваад, үг хоорондын зайг гараараа засаад үзээрэй.

Хэрэв ийм асуудалтай юм бол бид яагаад коодын стандартыг хэрэгжүүлэх ёстой вэ?

Коодуудыг ижил хэвээр форматлаж, стандартжуулах нэг шалтгаан бол хүн бүр өөр өөрийн хэв загвараар коодыг бичиж, “өмчлөх” байдлыг халах явдал юм. Мөн дээрээс нь, зарим түгээмэл тохиолддог алдаанаас зайлсхийхийн тулд тогтоосон хэв загварын эсрэг (anti-pattern) байдлаар коодоо бичихээс хөгжүүлэгчийг урьдчилан сэргийлэх шаардлага бий. Ер нь, коодын стандарттай байснаар төслийн файлуудтай ажиллахад илүү хялбар болж, хөгжүүлэлтийн хурдыг эхнээс нь дуустал өндөр байлгахад нэмэр болдог. Үүнээс гадна, төсөлд оролцож байгаа хөгжүүлэгч бүр тухайн нэг стандартыг зөвшөөрөхөөс аргагүйд хүрнэ. Мэдээж хэрэг, нэг хөгжүүлэгч нь мөрийн эхнээс дөрвөн зай авна гээд, нөгөөх нь гурав байвал зүгээр гээд “маргаж” байснаас дээр биз дээ.

Коодын чанарын тайланг гаргаж, түүнийгээ баримтжуулдаг, коодын стандартыг хэрэгжүүлдэг багаж тоо томшгүй олон байдаг ч аль нь ч дангаараа төгс шийдэл болохгүй. Хамтад нь, зохицуулж хэрэглэбэл дээр.

Эдгээр багаж нь аль болох автоматчилагдсан, хөгжүүлэгчийг шахаж, чиглүүлдэг байх хэрэгтэй. Доорх хэсэгт, коодын стандартыг хэрэгжүүлэх хэдэн санааг дурдая:

  • Коодын формат засах үйлдлийг build process -ын нэг хэсэг болговол хүн бүр коодоо компайлдах үедээ автоматаар ажиллуулах болно.
  • Тогтоосон хэв загварын эсрэг (anti-pattern) байдлаар бичигдсэн коод байна уу гэдгийг статик коод анализын багажаар хайж олдог. Хэрэв тийм коод олдвол build process -г зогсоох ёстой.
  • Төслийнхөө хэрэгцээ шаардлагад нийцүүлэн, өөрт хэрэгтэй байдлаар багажаа тохируулж сурах хэрэгтэй.
  • Тестийн хамрах хүрээг тооцохоос гадна, тестийн үр дүнг автоматаар шалгаж байх хэрэгтэй. Хэрэв алдаа гарвал, эсвэл хамрах хүрээ нь хэтэрхий бага бол build process -г мөн зогсоох ёстой.

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

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

Флип Ван Лаанен

https://twitter.com/filipvanlaenen

Computas компанийн ерөнхий архитектор, ахлах зөвлөх

--

--