Прагматик програмчин
Прагматик гэдэг нь “туршлагажсан” гэсэн утгатай латин үнээс гаралтай, харин тэр латин үг нь “хийх” гэсэн утгатай грек үгнээс үүсчээ. Энэ бол “хийх” тухай ном юм.
Зарим өөрт чухал санагдсан зүйлсийг эргэн харахад зориулж тэмдэглэн бичсү.
Прагматик програмчин гэж хэн бэ? Хөгжүүлэгч бүр давтагдашгүй өөр өөрийн онцлог шинж, давуу болон сул тал, дуртай болон дургүй зүйлүүдтэй. Үсний засалт, хувцаслалт, хоби, зан араншин шигээ өөрийн гэсэн онцлогтой орчинг бүрдүүлж, өөрийн арга барилаар ажилладаг. Гэхдээ прагматик хөгжүүлэгчдэд байдаг түгээмэл шинж бас бий:
- Дасан зохицох чадвар. Шинэ тэхнологи, шинэ арга барил туршиж оролдох төрөлхийн хорхойтой. Ямар нэгэн шинэ юмыг маш хурдан өөрийн болгож аваад, өмнөх мэдлэг чадвартайгаа хослуулж хэрэглэж чаддаг.
- Сониуч. Асуулт асуух дуртай. Хөөх наадах чинь янзын. Яаж энийг хийсэн бэ? Ajax гэж ямаршуу юм байна? Ruby гэж яадаг хэл вэ? гэх мэтчилэн мэдэхгүй юмаа уг үндсээр мэдэж байж санаа амардаг. Шинэ тоглоомоо нэг ч тоглож үзээгүй байж задлаад тавьчихдаг хүүхэд байдаг даа.
- Нухацтай. Аливаа зүйлд баримтгүйгээр итгэх нь ховор. Баттай баримтан дээр тулгуурлаж байж бодож цэгнэдэг.
- Бодит байдлыг эрхэмлэдэг. Алив асуудлын мөн чанарыг олохыг хичээдэг. Ингэснээр хир хэцүү болох, хир их хугацаа шаардагдахыг бодитоор дүгнэж чадах бөгөөд ийм учраас тэвчээртэй цөхрөлтгүй байдаг.
- Өргөн мэдлэгэтэй. Технологийн маш өргөн хүрээг хамарсан мэдлэгэтэй байхыг хичээж ямагт шинэ мэдээлэлтэй хамт явдаг. Хийж байгаа ажилдаа холбоотой зүйлийг мэддэг байгаад зогсохгүй, ямагт шинэ талбарт шинэ зүйлд хүчээ сориход бэлэн байж чаддаг.
Прагматик програмчин ба баг Програм хөгжүүлэлт гэдэг бол инженерчлэл учраас багийн нэг гишүүн ганцаараа бие дааж шийдвэр хийх ёсгүй гэдэг буруу ойлголт юм. Энэ үзлийг архитектурч болоод гүйцэтгэгч нар толгойдоо шингээчих юм бол програм бичнэ гэдэг уйтгартай механик ажил болчихно. Ийм кодерууд жижигхэн асуудал тулгарахад архитектурч дээр очоод үүнийг яаж хийх вэ? дизайн дээр тусгагдаагүй байна гэх мэтчилэн асуудаг бол прагматик програмчин шийдэл гаргаж өөрийнхөө бодсоноор програмчилах дуртай. Иймд архитектурч хүн дизайныг хийхдээ програмчинд аль болох их эрх мэдэл олгохыг эрмэлзэх чухал.
Тасралтгүй оролдлого Английн Eton College нь 500-гаад жилийн түүхтэй өвгөн сургууль. Тэнд зочилсон нэгэн жуулчин цэцэрлэгчээс нь хашаан доторх зүлгийг яаж ийм сайхан болгосон тухай асууж гэнэ. -Их амархан, өглөө болгон шүүдрийг нь унагаагаад, өнжөөд нэг удаа засаад, долоо хоногт нэг удаа хогийг нь цэвэрлээд бай гэжээ. Тэгээд л болоо юу гэж жуулчин гайхахад, Үнэхээр тийм шүү, яг ингээд 500 жил үргэжлүүлвэл та ч гэсэн ийм сайхан зүлэгтэй болно гэсэн гэдэг.
Хосгүй сайхан зүлгэнд өдөр бүр арчилгаа хэрэгтэй шиг сайн програмчин ч гэсэн өөртөө тогтмол арчилгаа хийж байх хэрэгтэй. Менэжмэнтийн зөвлөхүүд Кайзэн гэж япон үг иш татах дуртай байдаг. Энэ нь сайжруулалтыг бага багаар тасралтгүй хийх юм. Өдөр болгон өөрийн ур чадварыг бага багаар сайжруулж, гарын дорх багаж хэрэгсэлээ шинэ зүйлсээр арвижуулж байх хэрэгтэй.
Номын зохион байгуулалт Тухайн ном нь эхнээс төгсгөл гэсэн цуваа байдлаар бус харин өөрийн гэсэн агуулгатай жижиг хэсгүүдээс бүтсэн бөгөөд хэсэг бүрийн төгсгөлд холбогдох бусад хэсгүүдийн жагсаалт, өөрийгөө сорих даалгавартай. Чухал зүйлсийг онцолж тэмдэглэсэн 70 ширхэг зөвлөгөө байгаа.
- Урласан зүйлдээ санаа тавь. Сайн хийхгүй л юм бол програм хангамж хөгжүүлэх гэж суухын хэрэг юув?
- Ажлынхаа тухай бод. Юу хийж байгаагаа хийж байхдаа бод, ажлынхаа үр дүнг үнэлж цэгнэ. Дараа яаж хийхээ төлөвлө, хэрэгжүүл. Энэ маягаар тасралтгүй үргэлжлүүл. Аливаа зүйлийг бодолгүй бүү хийж бай. Хийж байхдаа бод.
- Уучлал гуйх хэрэггүй, сонголт олго. Буруутныг хайх, хийхэд хэцүү байсан тухай шалтаг тоочихын оронд яавал болж бүтэхийг тайлбарла.
- Хагархай цонхтой байж болохгүй. Алдаа сэв, тааруу код, муу дизайн, дутуу хэсэг зэрэг болохгүй зүйл харагдах л юм бол жижиг гэлтгүй тэр дор нь зас. Замбараагүй байдал аажим аажмаар үүсдэг.
- Өөрчлөлтийг өдөөж өг. Хүмүүсийг хүчлэх хэцүү, түүний оронд ирээдүй ямар байхыг тэдэнд ойлгуулж, тэр сайхан зүйлийг байгуулахад оролцоход нь дэмжлэг үзүүл. Чулуутай шөлийг сана.
- Зургийг бүхэлд нь хар. Жижиг зүйлд хэтэрхий анхаарлаа хандуулснаас ойр орчиндоо юу болоод байгааг анзаарахгүй өнгөрөхөөс болгоомжил. Буцалсан мэлхийг санаарай.
- Чанарыг шаардлагын хэсэг болго. Чанарын шаардлагыг бодитоор тодруулахын тулд захилагчидтайгаа хэлэлц, тохиролц, ойлгуул.
- Мэдлэгийн сандаа тогтмол хөрөнгө оруулалт хий. Өргөн хүрээтэй, риск багатай, ашигтай мэдлэгийг тогтмол эзэмш, мэдлэг эзэмших үйлийг дадал болгож хэвш. Хөрөнгө оруулагчид юу хийдэгтэй адилхан ханд.
- Уншсан сонссон юмандаа нухацтай шинжилгээ хий. Хэвлэл мэдээллээр шуугих цуу, вендоруудын бүтээгдэхүүнээ магтсан өгүүлэл, ягшсан хуучимсаг үзэл зэргийг алсаас харж уншиж байгаа зүйлээ өөрийнхөө өнцгөөс авч үз. Дагаж бүү намир.
- Юуг хэлэх, хэрхэн хэлэх, хоёулаа чухал. Маш сайхан санааг муухан илэрхийлэх юм бол ойлгож хүлээж авахад хэцүү гэдэг нь тодорхой. Сайхан санааг сайн илэрхийлж байж л сайн үр дүнд хүрнэ.
- Өөрийгөө бүү давт. Систем дэх мэдлэг болгон цор ганцхан, бусад хэсэгтээ шууд нөлөө бүхий төлөөлөлөөр дүрслэгдэх ёстой.
- Дахин ашиглахад амар байлга. Ашиглахад хэцүү зүйлийг хүмүүс хэрэглэхгүй. Хийгдчихсэн байгаа зүйлийг олж харах, холбож ашиглах боломжтой орчин нөхцөл бүрдүүл.
- Хамааралгүй зүйлс бие биедээ нөлөөлдөггүй байх ёстой. Бие даасан, өөрийн гэсэн тодорхой ганцхан зорилготой хэсгүүдийг хий. Ортогональ чанар буюу Aspect байдлаар загварчил.
- Эцсийн шийдвэр гэж байдаггүй. Ямар ч шийдвэр чулуун дээр сийлэгддэгүй. Аливаа шийдвэрийг эрэг дээрх элсэн дээр бичигдсэн гэж үзэж, өөрчлөлтийг төлөвлөгөөндөө оруул.
- Байгаа олоход гэрэлт сум ашигла. Туршиж үзээд хир ойр тусч байгааг нь харах замаар байгаа олоход тань гэрэлт сум туслах болно. Бэлдээд, Галлаад, Чиглүүлээд,…
- Сурахын тулд прототайп. Прототайпыг суралцахын тулд хэрэглэ. Гол ач холбогдол нь бичиж байгаа кодондоо биш, сурж мэдэж авч байгаа зүйлдээ юм гэдгийг сана.
- Тухайн салбарт нь ойртуулж програмчил. Хэрэглэгчийн хэл дээр дизайн ба програмаа хий.
- Сүрпризээс зайлсхийхийн тулд барагцаал. Эхлэхээсээ өмнө багцаал, ингэснээр асуудлыг эрт илрүүлэх болно.
- Төлөвлөгөөг кодын явцаар сэргээж шинэчил. Хэрэгжүүлэлтийн явцад олж авсан туршлага дээрээ үндэслээд төслийн хуваарийг сайжруулан шинэчилж яв.
- Мэдлэгийг тэкс хэлбэрээр хадгал. Тэкстэн мэдээлэл хаа ч хэрэглэгдэнэ. Жирийн тэкст ажлыг тань хөнгөвчлөх ба тэстлэх дэбагдахад хялбар байдаг. Юникс багажууд текст интэрфэйсээр хоорондоо холбогддог.
- Шэлийг хүчийг ашигла. График интэрфэйс дээр ярвигтай зүйлсийг шэл амархан хийдэг. Мужаан хүний ажлийн ширээ, дархан хүний дөш, програмчин хүний шэл.
- Нэг засварлагчийг сайн ашигла. Засварлагч бол гарын дорх бүх үйлдлийг хийдэг байх ёстойгоос гадна өргөгтгөх, програмчлах боломжтой байх ёстой.
- Эх кодын удирдлагын системийг байнга ашигла. Энэ бол таны хувьд цаг хугацааны машин, өнгөрсөн рүү аялах боломжтой боллоо.
- Алдааг зас, бүү зэмлэ. Алдааг та хийсэн үү, өөр хэн нэгэн хийсэн үү гэдэг хамаагүй, ямар ч байсан асуудал мөн бөгөөд, яадаг ч байсан засах хэрэгтэй.
- Дебагдаж байхдаа бүү сандар. Өөрийнхөө алдааг олох хэцүү байдаг, олоод засах бас хэцүү. Дебагдаж байхдаа асуудлыг обьектив үүднээс харж, зөвхөн алдааны шалтгааныг олоход анхаарлаа төвлөрүүл.
- "select" алдаагүй. Үйлдлийн системээс алдаа олно гэдэг маш ховор. Мөн өгөгдлийн сан эсвэл компайлер алдаатай байна гэдэг ч ховор. Алдаа ихэвчлэн таны кодонд байж байдаг юм шүү.
- Өөртөө ч бүү итгэ, батал. Төсөөлж байгаа зүйлээ батал. Бодит нөхцөл байдалд, бодит өгөгдөл дээр батлаж байж итгэ.
- Тэкс боловсруулагч хэлүүдийг сур. Тэгээд компьютэрээр зарим ажлаа хийлгэ.
- Код бичдэг код бич. Кодыг автоматаар үүсгэх нь бүтээмжийг дээшлүүлэхээс гадна мэдээллийн давхардлаас сэргийлнэ.
- Төгс програм гэж байхгүй. Төгс програм бичих гэж оролдох хэрэггүй, харин тулгарах бэрхшээлийг хөнгөвчлөх гэж оролдох хэрэгтэй.
- Тохиролцоонд тулгуурлаж дизайн хий. Хүлээсэн үүргээсээ илүү ч биш, дутуу ч биш зүйлийг хийдэг код бичихийн тулд тохиролцоог ашигла.
- Эрт осолд. Унтарчихсан програм бол хагас дутуу ажиллаж байгаа програмаас бага хохирол гаргана.
- Хэрэв тохиолдох ёсгүй л бол асэршн ашиглаж тохиолдохгүй гэдгийг нь үнэмш. Асэршн бол авч үзэж байгаа төсөөллийг батлах арга.
- Exception-ийг онцгой тохиолдолд л ашигла. Файл олдохгүй байна гэдэг бол онцгой тохиолдол биш, нээхээсээ өмнө шалгаж болно. Хэтэрхий их Exception ашигласнаар шпагетти кодонд орооцолдож мэднэ шүү.
- Эхэлснээ дуусга. Нөөцийг эзэмшиж авсан обьект юмуу функц тухайн нөөцийг эргээж чөлөөлөх үүрэгтэй.
- Модуль хоорондын харилцааг минимумчил. Аль болох ичимхий код бич. Сайн хашаа сайн хөршийг бий болгодгийг сана.
- Тохируул, бүү интэгралчил. Аливаа өөрчлөгдөх солигдох боломжтой зүйлсийг тохируулгаар хий боломжтой байлга.
- Хийсвэр санааг кодондоо хийгээд, дитэйлийг матадата дотор хий. Програмаа ерөнхий тохиолдолд бичээд, тодорхой нарийн ширийнийг компайлдсан кодын гадна, метадата байдлаар хадгал.
- Хэрэглэгчийн ажлын урсгалыг шинжил. Зарим үйлдлүүд давхар ажиллаж болох эсэхийг тогтоо, ингэснээр нийт зарцуулах хугацаа багасах талтай.
- Сэрвисийг дизайндаа ашигла. Цэвэрхэн интэрфэйстай бие даасан сервис байдлаар обьектуудыг зохион байгуул.
- Ямагт конкуррэнт байдлаар загварчил. Конкуррент байдалд ажиллаж чадах обьект жирийн үед ч ажиллаж чадна.
- Модел ба Үзэгдэх байдал хоёрыг салга. Энэ хоёрыг салгаснаар уян хатан байдал сайжирна.
- Ажлын урсгалыг зохицуулахад самбар ашигла. Оролцогч талуудын салангид тусгай байдлыг хадгалангаа, янз бүрийн баримт, үйл явдлуудыг зохицуулахад самбарыг ашиглахад тохиромжтой.
- Сохор азанд бүү найд. Баттай зүйлд л найд, мэдэхгүй юмаа яаж ажиллаж байгааг нь ойлголгүйгээр бүү ашигла. Нэг л өдөр минэн дээр гишгэх болно гэж мэд.
- Алгоритмынхаа эрэмбийг тооцоол. Код бичихээсээ өмнө тухай зүйлийг хийхэд хир хугацаа зарцуулагдахыг мэд.
- Тооцоолсоноо тэстлэ. Тооцоог математик аргаар гаргалаа гээд бүх юм тодорхой болохгүй. Шийдлээ бодит байдал дээр туршиж хэмж.
- Эрт язгуурчил, байнга язгуурчил. Хэрэгтэй цагт нь кодоо дахин загварчилж, шинэчлэн өөрчил. Асуудлын эх язгуурыг олж зас.
- Тэстлэхээ бод, араа бод. Код бичиж эхлэхээсээ өмнө яаж тэстлэхээ бод.
- Програмаа гүйцэд тэстлэ, эс бөгөөс хэрэглэгчид тань тэстлэх болно. Алдааг сэвийг хэрэглэгчидэд харуулна гэдэг ичгэвтэр. Кодоо догшин хэрцгийгээр тэстлэ, цаана чинь хатуу ширүүн хорвоо хүлээж байгаа.
- Кодыг нь ойлгохгүй бол визард бүү ашигла. Визардаар үүсгэсэн кодын мөр бүрийг ойлго, дараа нь ашигла. Шидтэнг сохроор бүү дага.
- Шаардлагыг цуглуулах биш ухаж олж ав. Шаардлага зүгээр ил хэвтэж байдаггүй, ихэвчлэн хэд хэдэн давхрагын дороос жинхэнэ шаардлагыг олдог.
- Хэрэглэгч шиг сэтгэхийн тулд хэрэглэгчтэй хамт ажилла. Энэ бол систем бодит байдал дээр яаж хэрэглэгдэхийг ойлгох хамгийн сайн арга. Цаг үрэх ажил мэт санагдаж болох ч үнэндээ асар их цаг хэмнэх болно.
- Хийсвэрлэл нь хэрэгжүүлэлтээс урт настай. Хэрэгжүүлэлтэд биш хийсвэрлэлтэд анхаар. Шинэ технологи, өөр өөр нөхцөл байдал зэрэг өөрчлөлтүүдэд сайн хийсвэрлэл тэсвэртэй үлдэж чаддаг.
- Төслийн лавлах ашигла. Төсөлд хэрэглэгдэж байгаа бүх нэршил, үгсийн тайлбарыг нийтийн хандалттай газар байрлуулж байнга шинэчлэлтийг цаг тухайд оруулж бай.
- Хайрцагнаас гадуур сэтгэж биш, хайрцгийг олох нь чухал. Боломжгүй мэт хэцүү асуудалтай тулгарвал бодит хязгаарлалтуудыг яг зөв олж тогтоосон эсэхийг шалга. Ингэж хийх нь зөв үү? Ер нь үүнийг заавал хийх ёстой гэж үү? гэх мэт асуултыг тавь.
- Бэлэн болсон үедээ л эхэл. Эргэлзээтэй санагдвал хүлээ, тодорхой болсон хойно нь шийдээ гарга, эхэл.
- Зарим юмыг тодорхойлж бичихээс хийх нь амархан. Шаардлагыг хэтрүүлэн тодорхойлохоос болгоомжил, зарим үед зүгээр кодоо бичсэн нь дээр байдаг.
- Формал мэтодыг хэтэрхий дагах хэрэггүй. Ямар нэг техник арга барилыг сохроор шүтэж хүчээр хэрэглэх нь сөрөг нөлөөтэй. Таны нөхцөл байдалд хир нийцэхийг эхлээд сайн бод.
- Үнэтэй болгон мундаг байдаггүй. Вэндорт хэт бүү шүт, сурталчилгаанд бүү авт, багаж сонгохдоо үзүүлэлтүүд болоод давуу чанарыг нь л хар.
- Багийг үүргийнх нь дагуу зохион байгуул, албан тушаалаар нь бус. Тэстэрүүдийг кодэруудаас, кодеруудыг дизайнеруудаас бүү салга. Код ямар зохион байгуулалттай байнав, баг тийм л зохион байгуулалттай байх ёстой. Багууд дотоод зохион байгуулалтаа өөрснөө хийг.
- Гар аргыг хэрэглэхээс зайлсхий. Шэл скриптүүд, бач процессууд давтагдах үйлдлийг яг адилхан дарааллаар олон дахин хийж чадна, хүмүүс чадахгүй.
- Эрт тэстлэ, тогтмол тэстлэ, автоматаар тэстлэ. Build хийх болгонд автоматаар ажиллаж байдаг тэст, тавиур дээр цагаа хүлээж хэвтэх тэст хоёр шал ондоо.
- Бүх тэст ажиллаж дуустал код дуусаагүй гэж үз. Зөвхөн өөрийн тэстийг ажиллуулаад зогсохгүй өөртэйгээ холбоотой бүх хэсгийн тэстийг ажиллаж байгаа эсэхийг шалгаж санаа амар.
- Тэстээ тэстлэхийн тулд хорлон сүйтгэгч ашигла. Албаар алдаа хийж тэст чинь түүнийг барьж байгаа эсэхийг шалга. Тэстээр ОК болчихвол систем рүүгээ дайралт хийж үз, хэрвээ дайралт амжилттай болвол тэст чинь буруутай.
- Кодыг хамрах бус тэстийг хамрах. Кодын мөр болгоныг тэстэд хамруулах гол бус, програмын төлөв байдал болгоныг хамруулах чухал.
- Алдааг нэг л удаа ол. Хэрвээ хүн ямар нэг алдааг олсон бол тэр алдаа хүний нүдээр олж байгаа хамгийн сүүлчийн тохиолдол, түүнээс цааш ийм алдааг автоматаар олдог байх ёстой.
- Англи хэлийг өөр нэгэн програмчлалын хэл гэж үз. Баримт бичиг хийхдээ яг л програм бичдэгтэйгээ адилхан үйлд. DRY, мэтадата, MVC, автоматаар үүсгэх гээд бүгдийг ашигла.
- Баримтыг дотор нь хийж өг, дээр нь битгий тавь. Кодоос салангид баримт амархан хоцрогдох ба хэрэгцээгүй эд.
- Хэрэглэгчийн төсөөлснийг аажмаар давуулан биелүүл. Хэрэглэгч юу хүсч байгааг мэдэрч байгаа бол тэрнээс нь жаахан илүү зүйл үзүүлчих. Хөгшин хүн хүүхэд хоёр өчүүхэн юманд баярладаг гэдэг шиг хэрэглэгчийг ч гэсэн өчүүхэн юмаар баярлуулж болно.
- Хийсэн ажлаа мутарла. Прагматик програмчин бол яаж хийхээ мэддэг, хийж чаддаг, хийсэн зүйлийхээ хариуцлагаас айдаггүй, харин ч хэцүү юманд ур ухаанаа хурцлаж зугаа цэнгэл болгож чаддаг учраас эртний урцуул шиг бүтээл дээрээ гарын үсгээ бахархалтайгаар үлдээдэг юм. Гарын үсэг чинь чанарын тэмдэг мэт болж, хүмүүс чиний нэрийг хараад кодыг чинь баталгаатай, зөв, бүрэн тэстлэгдсэн, ойлгомжтой, баримтжуулагдсан, жинхэнэ мэргэжлийн ажил гэж мэддэг байх ёстой. Яагаад гэвэл чи жинхэнэ мэргэжлийн хөгжүүлэгч, прагматик програмчин.
Энэ номыг нэг уншаад орхих бус хэсэг хугацааны дараа байн байн уншиж байхад илүүдэхгүй гэж зөвлөх байна. Миний хувьд унших явцад зарим зүйл нь аль хэдийн танил байхад зарим газар үнэхээр нүд нээж өгөх сайхан зөвлөгөө зөндөө байлаа. Та энэ номыг уншаагүй бол заавал уншихийг санал болгох байна. Програм хангамж хөгжүүлэлтийн практикийн талаар бичсэн жинхэн сонгодог ном гэж үнэлнэ. Товчхон, ойлгомжтой, уншихад ч урамтай. Сайн ном.
Холбогдох сэдэв: