Ёс мэдэхгүй хүнд...

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

Одоо үндсэн сэдэв рүүгээ орьё. Код бичихэд ч гэсэн хууль дүрмийг дагахаас гадна ёс заншил гэж байдаг. Тухайн програмчлалын хэлнийхээ хууль дүрмийг баримтлахгүй бол код ажиллахгүй нь мэдээж, мөн цаашлаад бодит амьдрал дээрхтэй адилаар ёс заншлаа дагахгүйгээр бол хол явахгүй ээ. Уншигч та гайхаж байж магадгүй, энд би кодчилолын заншил гэдэг үгээр (coding rules + coding conventions)-гэсэн ойлголтуудыг нэгтгэж авч үзэж байгаа юм.

Coding rules гэдэг нь кодын ажиллагааг хэрхэн сайн байлгахыг зөвлөсөн шалгарсан туршлагууд юм. Жишээ нь:

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

Coding conventions гээч нь болохоор кодыг уншиж ойлгоход хялбар, алдаа сэвийг нь олоход дөхөм, өөрчилж сайжруулахад амархан байлгахын тулд хэрхэн нэршилийг зөв сонгох, бичлэгийн хэлбэрийг цэгцтэй байлгах талаар зөвлөдөг. Буруу кодыг харахад л шууд буруу гэдэг нь мэдэгдэж байхаар кодын заншлыг мөрдөх хэрэгтэй гэж энд бичжээ. Тухайлбал Унгар бичлэг гэж заншил байдаг. Энэ нь хувьсагчийн нэрний өмнө төрлийг нь илэрхийлсэн угтвар оруулж байхыг зөвлөдөг. Гэхдээ төрөл гэдэг нь int, str гэх мэт програмчлалын хэлний төрлөөр хязгаарлагдаад зогсохгүй, тухайн хувьсагч цаанаа ямар утгыг илэрхийлж байгааг хэлж байгаа юм. Жишээ нь :

szServer = sizeof(adrServer);

szServer-ийн төрөл нь хэдий int боловч хэмжээг илэрхийлж байгаа гэдэг утгаар нь sz гэсэн угтварыг залгах нь. Ингэж төрлийг зааж өгөх нь хувьсагч андуурагдаж буруу зүйлд ашиглагдахаас сэргийлэх юм. Дараа нь :

if(adrHost==szServer)

гээд андуурчихсан байх юм бол угтварыг нь харахад шууд л буруу байгааг нь харагдана: хаяг хэмжээ хоёрыг харицуулах утгагүй нь мэдээж. Бас нэг жишээ авахад:

if(cnt==0)
// ба
if(cnt=0)

гэсэн хоёр илэрхийлэл хоёулаа C хэл дээр зөв юм. Гэхдээ сүүлийнх нь тэнцүүгийн тэмдгийг алдаад дутуу бичсэн хэрэг. Иймэрхүү алдааг олж илрүүлэхэд нилээд цаг алдаж болно, аз байвал хурдан илрүүлэх л байх л даа. Гэхдээ:

if(0==cnt)

гээд тогтмолыг өмнө нь бичээд заншчихвал:

if(0=cnt)

гэж алдаж бичсэн тохиолдолд компайлер шууд алдаа заана. Иймэрхүү байдлаар заншил бидэнд байнга ашиг тусаа өгч байдаг.

Код бичих заншлуудыг хэрэглээд сурчихвал програмчлалын ертөнцөд хэний ч өмнө ёс алдаж нүүр улайхгүй байх юм шүү гэсэн санаагаар энэ бичлэгийг эвлүүллээ. Ёс мэдэхгүй хүнд ёр халдахгүй ч, ёс мэдэхгүй хүн ер холдохгүй дэг.

Холбоосууд:

Санал болгох ном: