Шинэ пост бичээгүй уджээ. Өнөөдрөөс эхлэн өөрийн чат аппликейшны талаархи туршлагаасаа хуваалцахаар шийдлээ. Юун түрүүнд, программчлалыг яагаад сурч эхэлснээс эхэлье.
Яагаад?
Бодлого бодох дуртай, түүнтэй холбоотой зүйлд сониуч хүүхэд байж билээ. Анх 11-р ангид байхад, математикийн багш маань надад компьютер ашиглан боддог бодлогууд байдаг гэж хэлж байсан нь миний сонирхлыг татсан. Би нилээн гайхаж, багшаасаа: “Яг ямархуу бодлогууд вэ? Компьютер ашиглана гэдэг нь юу гэсэн үг вэ?” Багш яг хэрхэн ажилладгийг нь сайн мэдэхгүй байсан ч нэг жишээ бодлого үзүүлж байсан нь:
2 тооны нийлбэрийг ол
Оролт:
1 2
Гаралт:
3
Би бодохдоо: “Энэ чинь зүгээр л 3 шдээ. Үүнийг бодоход компьютер яагаад хэрэгтэй гэж?”. Тэгээд ч комьютерт яаж бодлого бодуулах юм болоо гэсэн бодолтой үлдсэн. Тэгээд бас тухайн үедээ оролт, гаралт гэж юу хэлээд байгааг нь ерөөсөө ойлгохгүй байж билээ. Ингээд л программчлал сурах эхлэл тавигдсандаа. Надад сонирхолтой санагдаж, багшаасаа код бичих талаар ном асуугаад эхэлж байлаа. Тэр цагаас хойш программчлалын бодлогуудыг их л сонирхож, олон цагийг бодлого бодоход зарцуулдаг болсон. Энэ үед л сайн суудаг байжээ.
Их сургуулийн эхний жилдээ одоогийн багштайгаа танилцсан нь миний хувьд том аз байсандаа. Тэр цагаас эхлэн инженерчлэлд суралцаж эхэлсэн. Эхэндээ HTML, CSS, бага зэрэг JavaScript сураад, интерактив хуудсуудыг бүтээж, canvas ашиглан ганц нэг сонирхолтой зүйлс хийж эхэллээ. Дараа нь backend хөгжүүлэлт рүү орж, Golang, вэб серверүүд, MySQL зэрэг өгөгдлийн сангуудтай ажиллаж эхэлсэн.
Шинэ зүйл сурах нь сониролтой ч бодлого бодох шиг тийм мэдрэмж нэг л мэдрэхгүй л хэвээр байлаа. Би ер нь их зүйл сурч, олон зүйл бүтээсэн ч, тэдгээр нь тийм ч нарийн төвөгтэй байгаагүй. Арван жилээсээ хойш ер нь бодлогоос тун холдсон байсандаа. Ер нь tool, system, library-нууд үнэхээр сайн хөгжсөн байдаг тул юуг яаж хэрэглэх вэ гэдгийг судлах нь илүү их талруугаа байдаг болхоор тийм ч сонирхолтой байхаа больж эхэлсэндээ. Энэ нь давтагдсаар, нэг л уйтгартай. Тэгээд өөртөө сорил тавин ер нь real time application хийж үзье гэж шийдлээ.
Эхлэл
Юу хийх санаа нь байсан ч яаж хийхээ сайн мэдэхгүй л байлаа. Ямар хэл, ямар өгөгдлийн сан ашиглах вэ? Ямархуу харагддаг байх вэ? Бүгдийг эхнээс нь хийх үү? Гэх мэт маш олон асуултууд гарч ирсэн. Энэ талаар багштайгаа ярилцахад надад Erlang эсвэл Elixir ашиглахыг зөвлөсөн.
Elixir-ийн documentation-г уншиж, concurrency нь үнэхээр сайн талаар мөн chat application-д илүү тохирхоор байлаа. Тэгээд Elixir ашиглан backend-ээ эхэллээ. Эхэндээ бүх зүйл асуудалгүй байсан ч ажил, сургуулийн ачааллаас болж хөгжүүлэлтийн хурд удааширсан. Давгүй явж байсан ч цаашлаад Elixir-р өмнө бичиж байгаагүй тул кодоо цэвэрхэн бичиж чадахгүй байснаас стрессдэж эхэлсэн.
Ер нь зөндөө олон chat application байхад би энийг үргэлжлүүлээд явах хэрэгтэй юу гэж бодлоо. Тэгээд орхисондоо. Яахав тэгээд Elixir-н тухайн бага зэргийн ойлголттой болоод л дууссандаа.
Шинэ Санаа
Гэхдээ би чат аппликейшны санааг бүр мөсөн орхиогүй л байлаа. Нэг өдөр нэрээ нууцалдаг чат аппликейшн бүтээвэл давгүй, хүмүүсийн сонирхлыг татах юм болов уу гэж бодсон. Ингээд санаагаа нэрээ нууцлах гэсэн концепцоор хөгжүүлж, арай шинэлэг санаатай болсон. Энэ удаад чат аппликейшнаа үргэлжлүүлэн хөгжүүлэхээр шийдсэн. Шинэ санаа маань ажиллах юм шиг санагдаж, амжилттай болно гэдэгт итгэлтэй байлаа.
Гэхдээ Elixir дээр үргэлжлүүлэх нь удаан байсан тул хамгийн сайн мэддэг Golang хэлээр backend-аа дахин бичихээр шийдсэн. Ингэснээр хөгжүүлэлт маань хурдсаж, санаагаа бодитоор хэрэгжүүлэхэд ойртсон.
Дүгнэлт
Эцэст нь, чат аппликейшнаа бүтээх нь олон сорилт, өсөлт уналтаар дүүрэн аялал байлаа. Программчлалд сонирхолтой болж эхэлснээс эхлээд хөгжүүлэлтийн явцад тулгарсан бэрхшээлүүд хүртэл энэ бүх хугацаа надад ихийг ойлгуулсан. Энэ хүртэл яваад production болгож байгаадаа баяртай байна аа.
Миний бүтээсэн зүйл хүмүүсийн сонирхлыг татаж, сонирхолтой байх болно гэж найдаж байна. Ирээдүйд хөгжүүлэлтийн явц, сурсан зүйлсээ та бүхэнтэй дахин хуваалцах болно.