Monday, February 23, 2009

Хэрхэн хөгжүүлэгч болох вэ. 3-р хэсэг

SVN буюу Subversion ашиглах

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

Windows систем дээр: TortoiseSVN Клиент

www.tortoisesvn.net сайтаас суулгац файлыг татан авч ажиллуулаад хялбархан суулгачихна.

Дараах жишээ нь дээр дифф буюу хоёр хувилбарын ялгааг харж байгаа нь:

Ubuntu Linux дээр RapidSVN Клиент

Өмнөх tortoisesvn маань Цонхнууд системд зориулж гаргасан хэрэгсэл бөгөөд линукс системд консоль горимд ажилладаг коммандууд бий боловч бидэнд график интерфэйс бүхий svn client хэрэгсэл хэрэгтэй. Хэд хэдэн naughtysvn, rapidsvn, qsvn сонголт байснаас rapidsvn хэрэгсэлийг сонгож авлаа.
$ sudo apt-get install rapidsvn

гээд боллоо.

Одоо Дебиан/Үбүнтү Линукс сервер дээр SVN сервер суулгах, тохируулах зааврыг үүний дагуу хийж төслийн код сангаа үүсгэх хэрэгтэй.

Ингээд таны төслийн код болон хамтрагчийн тань код өөрчлөлт, нэмэлт, хувилбарууд бүгд хадгалагдах боллоо.


цааш унших...

Thursday, February 05, 2009

Blogger.com чимэглэл

Яг минийх шиг ийм тааг үүл үүсгэмээр байвал дараах линкээр орж зааврын дагуу хийгээрэй. Би блогер комын өөрийнх нь widgets дотроос хайгаад байсан чинь байдаггүй юм байна. ;)

http://www.blogger-templates-designs.blogspot.com/2008/10/add-label-cloud-widget-for-blogger.html


цааш унших...

Wednesday, February 04, 2009

Хэрхэн хөгжүүлэгч болох вэ. 2-р хэсэг

Өмнөх хэсэгт нилээд техникийн чанартай зүйл бичсэн. Энэ удаад хувийн зохион байгуулалттай холбоотой зүйлс бичье. Ямарваа зүйлс цэгцтэй, тодорхой дэг журамтай байснаар амжилтанд хүрэх нь илүү, адаглаад л алдах зүйл үгүй.
Гэхдээ энд прогаммлалын зохих мэдлэгтэй буюу алгоритм, программчлалын хэлүүд үзсэн, компьютерийн хэрэглээ, зохих гадаад хэлний мэдлэгтэй гэж тооцсон үндсэн дээр бичиж байгаа. Түүнээс бус шууд тэгээс буюу мэдээллийн технологид анхлан суралцагчыг шууд хөгжүүлэгч болгох тухай биш гэдгийг анхаараарай. Хэрэвзээ тэгнэ гэвэл бараг их сургуульд үздэг хичээлүүдийг бичих болно буй за. ;) Мөхөс миний энэ ядмаг бичлэг нь практик амьдралд буюу төсгөөд ажилд гарч буй "шинэ дайчдыг" хөгжүүлэгч болоход туслах гэсэн хувь хүний бяцхан зөвлөгөө төдий зүйл болно.

Хөгжүүлэгч хүнд байх ёстой чанарууд

1. Мэргэжилдээ дур сонирхолтой байх
Мэдээж дургүйд хүчгүй гэгчээр өөрт сонирхолгүй ажил хийж байгаа гэж бодож байгаа бол өөрт юу таалагддаг, юуг хийх нь надад болоод бусдад хэрэгтэй вэ гээд нэг удаа сайтар бодоод үзэхэд гэмгүй. Тэгээд үнэхээр хийж байгаа ажил тань таньд таалагдахгүй байгаа бол сольж болох юм. Жишээ нь би датабэйс программ боловсруулдаг хэсэгт байгаад надад веб хөгжүүлэлт таалагдаад байвал сольж яагаад болохгүй гэж

2. 10 хуруугаараа хурдан шивдэг байх
Энэ чадвар заавал байх ёстой. Хэдий сайн хөгжүүлэгч байлаа ч 2, 3 хуруугаараа тон тон хийлгээд байвал бүтээмж бас л багасана. Англи Монгол гээд аль ч хэл дээр гараа харахгүйгээр чөлөөтэй бичиж сурах хэрэгтэй. Type Fast төрлийн монгол гадаад гээд янз бүрийн хурдан бичих дасгалын програмууд бий. Аль таалагдсанаа олж аваад өдөрт 1-2 цаг нүдээд байх хэрэгтэй. 2 сарын дараа та сайн бичдэг болчихно.

3. Сур сур бас дахин сур
Мэргэжилийн чиглэлээрээ сайн номыг hard copy, soft copy аль ч хувилбараар нь хамаагүй олж аваад уншиж судлаж байх. Энэ таны суурь мэдлэг сайжирахад туслана. Хом уншиж, судлах янз бүрийн л арга байдаг. Гүйлгээд гүйлгээд харсныхаа дараа өөрт хэрэгтэй хэсгээ тогтож унших эсвэл эхнээс нь аваад дуустал анхааралтай унших гэх мэт аргууд бий, өөрт тохирохоор л судлаад байхад болно. Манай их дээд сургуульд хангалттай суурь мэдлэг тавьж өгдөггүйгээс ч болдог юмуу, амьдрал дээр гараад илүү ихийг уншиж, илүү ихээр суралцах шаардлага гарна. Угаас программист/хөгжүүлэгч нарын том том зузаан зузаан номнуудыг бусад салбарынхан хараад гайхаж цочирдох нь их бий. Гэхдээ энэ бүхнээс шантрана гэж юу байхав, хэрэгтэйгээ л уншихад болно.

4. Асуухаас бүү зүрхшээ, гэхдээ ухаалагаар асуу.
Хүн бүхнийг мэддэг чаддаг хэвээр төрөх нь үгүй. Хүн бүр ямар нэг зүйлд байнга л суралцаж байдаг. Мэдэхгүй, чадахгүй зүйл гарвал, шинэ технологи, шинэ мэдээ мэдээлэл, элдэв хүндрэл бэрхшээл зэргийг асуухаас бүү зүрхшээ. Жишээ нь, чамаас илүү туршлагатай хөгжүүлэгч чамаас гитарыг яаж ингэж сайн тоглож сурсаныг чинь асууна, эсвэл хоолыг яаж ингэж амттай хийдэг юм гээд ч асууж болно ш дээ. Тийм болохоор цаад хүндээ түвэг удаагүй бол, цаад хүн уриалгахан хариулж байвал асуухаасаа бүү нэрэхлээрэй.
Гэхдээ өөрөө хөдөлмөрлөөд олчих техникийн болон харьцангуй хялбар зүйлсийг асуухаасаа аль болох татгалз. Хүмүүс ихэвчлэн тухайн асуудлын талаар өөрийн хувийн бодлоо, эсвэл яагаад энэ асуудал проблем гардаг талаар, эсвэл үнэхээр хүнд асуудлыг яаж мундаг шийдсэнээ гэх мэт зүйлст хариулах их дуртай байдаг талтай. Хэрхэн ухаалгаар асуулт тавих вэ гээд энэ зөвлөгөөг уншаад тунгаачих шаардлагатай.

5. Интернэт холболтоо түр салга
Яг идэвхтэй, анхаарлаа төвлөрүүлж ажиллахын тулд Intant Messenger -үүдээ түр зуур салгаж холбоогоо таслачих хэрэгтэй. Нөгөө яг онгод орсон сууж байх үед гэнэт найз охиноос чинь Маргааш миний төрсөн өдөр гэсэн мессеж хүрээд ирвэл яах юм, хэхэ, юун нөгөө код бичих, төрсөн өдрөөр яаж сюрприз барих тухай өөрийн эрхгүй бодогдоод эхлэх жишээтэй. Хэдийгээр мессенжерүүд их ажлыг амжуулж өгдөг ч, тэр хэмжээгээрээ үнэт цагаас чинь зулгаагаад байдаг.

6. Хөгжим сонсохоо ч түр азна
Мөн л яг идэвхтэй ажиллах үедээ хөгжим сонсохоо азнаад ав. Учир нь бас л онгодынхоо үедээ өөртөө таалагдаагүй дуугаа сольж өөр дуу тавих гээд winamp, itunes эдэрүүгээ орох хэрэг гарна. Анхаарал чинь сулрахын л нэмэр, дээр нь завсаргүй 8 цаг дуу сонсоход завсаргүй 16 цаг ажилласан юм шиг бие чинь сулараад, ядраад эхлэнэ.
Дуу хөгжимөө ачаалал багатай, механик голдуу ажил хийж байхдаа эсвэл чөлөөтэй нээт ухаж, блог бичих гэх мэт үедээ сонсоорой. Хааяа нэг дуртай дуугаа сонсоход харин ч урам зориг сэргэдэг.

7. Гарын авлага болон Гүүглэ ах
Элдэв шинэ түүл, шинэ программ хэрэгсэл ашиглаж эхлэх, шинэ технологи, аргачлал суралцах гээд унших зүйлс зөндөө тохиолдоно. Тэр бүгд өөр өөрийн гарын авлага, зааваруудтай, Readme, Howto, Documentation, User Guide, Installation Guide, Troubleshooting гээд цааш урсана. Бүгдийг нь уншина гэвэл бас л их цаг орно, их тэвчээр ч орно. Тийм болохоор яг хэрэгтэйгээ уншаад явчихвал цагаа хэмнэнэ. Бусдыг нь дараа унших зайлшгүй шаардлага гарвал сөхөөд харчихаж л болно шүү дээ.
Гэхдээ бас зарим зүйлсийг дээрхи материалуудаас хайгаад олохгүй үе таарна. Учир нь хөгжүүлэгчид компьютерийн бүхий л архитектур, бүхий л сан гээд бүгдийг туршиж шалгаж зүгшрүүлж амжаагүй байх зэрэг тохиолдолд тэгээд гүүглэ/google ахаасаа манай хавтгай болчихсон дэлхийн бөмбөрцөг дээр надтай адил асуудал учирсан өөр бусад нөхдүүд яаж шийдсэнийг асуух хэрэгтэй. Түлхүүр үг хайх аргаа сайн сонговол ихэнхи тохиолдолд хариултаа олчихоод л байдаг шүү.

8. Мэйл бүлгэм, форум зэрэгт элс.
Өөрийн ажилладаг чиглэл, сурч буй технологийн чиглэлээр төрөлжсөн google group, yahoo group, forum зэрэгт элсээд тэдэнтэй үзэл бодол, тулгарч байгаа бэрхшээл зэргээр харилцан мэдээлэл солилцоод байх их зүгээр. Энэ хорвоо дээр чи ганцаараа биш шүү дээ. Таньд тулгарч байгаа бол тэдэнд ч бас тулгарч л байгаа гэсэн үг.

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

10. Мэдлэг, туршлагаа бусадтай хуваалц, бусдад зааж сурга.
Өгсөн мөртлөө үгүйрдэггүй зүйл юу вэ? Инээмсэглэл, бас мэдлэг.
Мэдлэг, туршлага хоёр юугаараа ялгаатай вэ? Мэдлэг нь та бусдаас сураад, номноос уншаад, сургуульд заалгаад дүн тавиулаад гарч ирснийг хэлнэ.
Туршлага бол таньд хэн ч зааж өгөөгүй, зөвхөн та өөрөө амьдралын туршид олж мэдсэн мэдлэгийг туршлага гэнэ гэж хаа нэгтээгээс уншиж байсан.
Өөрийн мэддэг, чаддаг зүйлсээ бусдад зааж өг, таниас туршлагагүй нэгэн таниас асуувал хариулж өгөөрэй. Таньд тэр хүн баярлах нь лавтай бөгөөд таны мэдлэг улам батжиж, удаан мартагдана. Үг, өгүүлбэр гэдэг их хүчтэй бөгөөд үгээр илэрхийлэгдэхийн өмнө заавал толгойд боловсруулагдаад гардаг. Тиймээс л батжиж таньд илүү удаан үлдэнэ.

За өнөөдөртөө ингээд дуусгая. Дараагийн бичлэгээр уулзацгаая.


цааш унших...

Monday, February 02, 2009

Хэрхэн хөгжүүлэгч болох вэ. 1-р хэсэг

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


Уран бүтээлчид, зураач барималч нарт бүгдэд нь урлан гээд ажлынх нь өрөө байх. Яг түүнтэй адил хөгжүүлэгчдэд ч гэсэн хомпуутерт нь виртуалаар басхүү ажлын өрөө, ажлын багаж хэрэгсэл, номын сан, туршилт тест хийх өрөө, аргачлал, уулзалтын өрөө гээд тэр ч бүү хэл шавар зуураад өрлөг хийж байхдаа өөрт таалагдсан аяатайхан хөгжим тоглуулагч хүртэл бий. За тэгээд хүнд ажлын ард гарчихаад алжаал тайлангаа үзэх видео тоглуулагч, өдрийн сонин гарчиглах гээд бүгд л бий л дээ. За тэр ч яахав гол асуудалдаа орсуу. (Дашрамд хэлэхэд ороё, үзье энэ тэр гэсэн дүрмийн алдаа гаргачихдаг үгнүүдээс эвтэйхэн зайлсийнээ, Дамдинсүрэн гуай шинэ үсгийн дүрэм хийж байхад орос сургагч нар заавал оруул гэсээр байгаад ийм балай ь, ъ үсэг оруулцан)

Веб систем хөгжүүлэгчдийн зайлшгүй мэдэх боловсрол болон ажлын орчин:

1. HTML, XML
HTML - HyperText Markup Language
Веб хөгжүүлэгчдэд суурь мэдлэг буюу энгийн гипертехт бүтээгч хэл болох html -ыг зайлшгүй мэдэх хэрэгтэй. Гэхдээ энэ нь маш хялбар энгийн учраас суралцахад нэг их хүндрэл гарахгүй. Энд html tag гэдэг ойлголтоос эхлээд гол гол хэдхэн зүйлсийн учрыг ойлгоод авчихад тэгээд цааш явцын дунд гүнзгийрүүлээд байж болно.
Гипертекст буюу холбоос агуулсан веб хуудасыг дүрслэхэд зориулагдаж гарч ирсэн бөгөөд анх вебсайтууд зөвхөн энэ л хэл дээр бүтээгдэж интернэтэд байрлаж байлаа, одоо ч мөн уг хэл дээр дүрслэгддэг хэвээрээ боловч илүү их өргөн боломжуудаар өргөтгөгдсөн гээд ойлгочихож болно (гэхдээ доор бичигдсэн зүйсээр).

http://www.asuult.net/nemesis/web/
http://www.soyolerdene.com/index.php/posts/category/html

XML - eXtensible Markup Language
Интернэт улам бүр хөгжиж том том вебсайт, агуулгуудаар баяжигдаж, интернэтэд байрлагдсан серверүүд буюу сайтууд өөр хоорондоо агуулга, өгөгдөл солилцох, дамжуулах нөхцөл шаардлагууд урган гарсан бөгөөд уг xml нь өгөгдөлийг илүү бүтэцлэгдсэн мөртлөө маш энгийн байдлаар хэвшүүлж чаддагаараа бусад адил технологиос илүү ихээр дэлгэрсэн.
Хэлбэр нь ерөнхийдөө html -тэй төстэй ба xml tag гэсэн ойлголтыг ашигладаг ба html нь веб хуудасыг дүрслэхэд ашигладаг бол xml нь өгөгдөлийг бүтэцлэн хадгалахад ашиглагддаг.

http://en.wikipedia.org/wiki/Xml
http://www.soyolerdene.com/index.php/posts/103

2. Javascript
Веб хөгжүүлэх технологиуд цааш хөгжихийн хирээр, мөн интернэт болон вебийн хэрэгцээ шаардлага улам бүр өсөн нэмэгдэхийн хирээр веб серверт "ачаалал" өгөхгүйгээр хэрэглэгчийн асуудлыг веб хөтөч дээр шийдэх зорилготойгоор гарч ирсэн гээд буудчихая. Жишээ нь хэрэглэгчээс анкет авах формуудад тухайн хэрэглэгч зөв форматтай мэдээлэл оруулж буй эсэх, тухайн хэрэглэгч ямар төрлийн (IE, Mozilla, Opera, Konquerer) веб хөтөч дээр ажиллаж буйг, тухайн хөтөчийн онцлогт тааруулж вебийн ажиллагааг уян хатан болгох гээд л... client side programming хийхэд үүнийг "тодорхой түвшинд" мэдэх шаардлагатай.

3. Web 2.0 - AJAX, CSS
Эдгээр үгнүүдтэй сүүлийн үед та их таарч буй бизээ. Учир нь эдгээр технологиуд вебийн технологид хувьсгал хийсэн гэж хэлбэл зохино. Веб программыг яг л хэрэглээний програм (application program) түвшинд аваачиж илүү динамик, илүү "sexy" болгосон юм. Өөрөөр хэлбэл веб програмууд гэдэг нь олон хуудсууд хооронд дамжиж, дахин дахин хуудас ачаалдаг явдалыг халж дахин ачаалахгүйгээр javascript XMLHttpRequest object ашиглаж вебээс өгөгдөлийг "цаана" ачаалж авчираад CSS буюу div хэмээх динамик элементэд динамикаар "нааж" чаддаг болсон. Ингэснээр Google, Gmail, Gogo.mn эдэр шиг веб сайтууд төрж, MS Office шиг программыг зөвхөн веб шийдлээр бүтээж хэрэглэгчид зөвхөн веб хөтөч, интернэт холболт л байхад өөрийн локаль компьютерт элдэв суулгац суулгахгүйгээр ажиллах боломжыг олгож буй. (Эдгээрийг илүү дэлгэрэнгүй бичихэд уг талбар багадаж байгаа тул цааш та бүхэн дэлгэрүүлж үзээрэй)

http://en.wikipedia.org/wiki/Web_2.0
http://www.soyolerdene.com/index.php/posts/33
http://www.soyolerdene.com/index.php/posts/category/javascript

3. Programming Language - (PHP - Hypertext Preprocessor)
Интернэт дэхь ихэнхи веб програм/сайтуудыг бүтээсэн, бүтээж буй хэлээр тодроод байгаа. Анх веб програмыг программчлалын Си хэл, BASH shell script, Perl script дээр CGI - Common Gateway Interface ашиглан хийж байсан гэдэг. Учир нь тэр үед зөвхөн веб програм хөгжүүлэхэд зориулагдсан PHP, ASP.Net, CFML, JSP зэрэг хэлүүд төрөөгүй байж.
Уг хэл нь Си хэлний синтакс буюу бичлэгийн дүрэмтэй маш төстэй, Объект хандалтат программчлал дэмждэг, нээлттэй эх кодтой гээд хөгжүүлэгчдийн дэмжлэгийг ихээр авсан учир өнөөг хүртэл хөгжсөн бизээ. Тийм ч учраас веб хөгжүүлэгч болохыг хүсэгчдэд уг хэлийг хувийн зүгээс санал болгож байна. Миний хувьд Java JSP -ээс илүү уг хэлийг ашиглаж өнөөг хүрсэн ба ганц дутагдал буюу таалагддагүй зүйл нь java byte code, c# native code шиг хөрвүүлэгдсэн код үүсгэдэггүй түүхий script code -оор ажилладаг юм, энэ нь нууцлалын хувьд асуудал үүсгэнэ. Гэхдээ энэ бол түүнээс татгалзах шалтгаан одоогоор биш, удахгүй шийдэгдэх байх. (Магадгүй би сайн судлаагүй ч биз)

http://en.wikipedia.org/wiki/PHP
www.php.net

http://www.asuult.net/nemesis/php/

4. Database, SQL Language - (MySQL/PostgreSQL)
Мэдээллийн баазгүй веб програм гэж та сонссон уу. Хэхэ. Манай ахмад үеийн хөгжүүлэгчдийн яриагаар MS SQL битгий хэл Oracle, Interbase гараа ч үгүй байхад мэдээллийг файл руу бүтэцлэн хадгалах, түүнийгээ ачаалж боловсруулалт хийх гээд түмэн асуудал мянган бэрхшээл тулгардаг байж. Өөрсдөө Мэдээллийн бааз боловсруулагч программ бичихээс өөр сонголтгүй. Одоо бол байдал шал өөр. Үнэтэйгээс эхлээд нээлттэй эх бүхий MySQL, PostgreSQL тэргүүтэй веб системд илүүтэй зориулагдсан баазууд ямар ч үнэ төлбөргүй байж байна. Гагцхүү тэдэнтэй "ярьж, харилцах" SQL (Structured Query Language)-ыг сурах хэрэгтэй. Мөн өгөгдөлийг эмх цэгцтэй, илүү сайн уялдаатайгаар төлөвлөж сурах шаардлагатай. CRUD, Join, View, SQL Procedure, Trigger, Transaction, RollBack, Sub query гэх мэт.
Хөгжүүлэгчид, хүмүүс MySQL -ыг илүү их сонссон байдаг боловч туршлагатай хөгжүүлэгчид PostgreSQL -ыг хамаагүй илүү найдвартай гэж хэлэх нь бий. Миний л мэдэхийн 2003 оны үед postgesql аль хэдийнэ transaction, procedure ажиллагаатай байхад mysql сураг ч үгүй л байсан. Та санаж байгаа бол саяхан 5 хувилбараасаа л эдгээр функцианолийг дэмжсэн. Мөн эх код дахь алдаатай мөрний эзлэх хувиараа postgresql хамаагүй бага гэсэн үзүүлэлт ч бий. (Уучлаарай, Нэтээс холбоотой мэдээллийг олохоосоо цагаа харамлав)

www.mysql.com
www.postgresql.com

http://www.asuult.net/mysql.php
http://ariunbolor.wordpress.com/2007/05/30/sql-%D0%B3%D1%8D%D0%B6-%D1%8E%D1%83-%D0%B2%D1%8D/
http://php.az.mn/index.php?module=menu&cmd=content&menu_id=4&id=42

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

4. IDE - Код засварлагч (Eclipse, Dreamveawer, HomeSite, Zend Studio)
Integrated Development Environment буюу Хөгжүүлэгчийн орчин, товчоор код засварлагч гэе. Энэ нь эрхэм хөгжүүлэгч таньд кодоо бичих, засварлах ажилд өгүүлэшгүй тус нэмэр болно. Энд та класс үүсгэх, хаана ямар хувьсагч зарласан, эх код файлууд, хавтасуудтай ажиллах, функц хувьсагч хайх, эх кодод тайлбар хийх гээд олон олон тухлаг, эвтэйхэн байдлыг таньд хангаж өгөх янз бүрийн программын сонголтууд арвин бий. Гэвч эдгээрүүд өөр өөрсдийн давуу болон сул талуудтай байдаг. Гэлээ гэхдээ адуучин хүн уургач морь, холд унадаг хатирч морь, хонинд унадаг номхон морь, аргал түүдэг бядтай морь, айл хэсдэг сайвар морь гээд хэд хэдэн уналгатай байдаг шиг тус бүрийг нь давуу онцлогт нь тааруулж хэрэглээд болоод л байна.
Миний өөрийн хэрэглэдэгээс сонирхуулж дурдвал:
- HomeSite+ 5.5 : Маш тухлаг, хүчирхэг засварлагч. html, css, php засварлахдаа ашиглана. Жишээ нь заавал байнга
гэсэн тааг бичээд байхгүй, шууд Ctrl+b гээл болоо. Кодыг өнгөөр ялгаж харуулна, тухайн бичиж буй мөрийг хүрээлж харагдуулна. Их хэмжээний код дотор бол хэрэглээгүй байгаа хэсгийг эвхээд жижиг болгочихно гэх мэт... Гэхдээ сул талуудтай, debug хийхгүй (Заавал Coldfusion сервэртэй холбогдож байж) design view буюу хөтөч дээр харагдах байдлыг харуулдаггүй, гэхдээ Dreamveiwer -тэй шууд холбогддог учир түүн дээр харчихаж болно.
-Notepad++ : Цонх (Windows) системийн Notepad энгийн текст засварлагчийг илүү сайжируулсан хувилбар. Маш олон төрлийн формат, хэлийг дэмждэг (color view) ба үнэхээр хөгжүүлэгчид өөрсдөдөө дутагдаж байсан засварлагчийг мэдэрч хийж чадсан гэж үнэлдэг. xml, sql, yml, css гээд бүтэцлэг формат бүхий файлуудыг засварлахад өнгөөр сайн ялгаж өгч санамсаргүй алдааг гаргахаас сайн сэргийлдэг.
-Eclipse : Үнэгүй, хүчирхэг засварлагч. Нээлттэй эхийн хөгжүүлэгчдийн хамгийн өргөнөөр ашиглаж буй IDE бол яах аргагүй эклипс. File browse, Debug, SVN, CVS гээд бүхий л хэрэгцээт боломжуудаар сайн хангагдаж буй. Гол дутагдал нь компьютерийн ресуурс буюу ачаалал их өгдөг. 512Мбайт санах ойтой байхдаа арай чуу л гэж ажилладаг байлаа. :)
- Zend Studio : Миний хувьд огт хэрэглэдэггүй. Учир нь төлбөртэй. Яахав крэкдээд хулгайн хуулбар ашиглаж болох ч ашиглахыг огт бодож үзээгүй. Зарим хөгжүүлэгчид худалдаж аваад ашигладаг, магтдаг. Гэхдээ өөр төлбөргүй, нээлттэй эхийн багажууд зөндөө байхад, тэгээд ч Eclipse IDE маань хангалттай байдаг.

http://bolorcms.com/badaa/index.php?/archives/9-Eclipse-PHPEclipse-Aptana-Texlipse.html
http://www.dhtech.com/hujii/archives/3-Zend-Studio-247.html
http://hujii.blog.banjig.net/post.php?post_id=29447

5. Version Control System - (CVS or SVN)
Кодын Хувилбар удирдах систем.
Практикт буюу амьдрал дээр системүүд үргэлж шинэчлэгдэж, шинэ шинэ зорилт, хэрэгцээг хангахаар өргөтгөгдөж, сайжируулагдаж байдаг. Системийн анхны хувилбар нь хэрэглэгчдийн нөхцөл шаардлагын зарим хэсгийг л хангахаар тусгагдаж уг зорилгоо биелүүлсэн гэж бодоё. Дараачийн 2.0 хувилбарт илүү олон зорилт тусгаж болно.
Яг ийм нөхцөлд төслүүд хувилбар удирдах системийг ашиглах зайлшгүй шаардлага гарна. Мөн хувилбар бүрт завсрын хөгжүүлэлтийн явцын дэд хувилбарууд багтах бөгөөд тэдгээрийг нэмэлт, хасалт зэрэг өөрчлөлт бүрийг хөгжүүлэгч бүрээр ангилж хадгалсан баазыг уг систем агуулна. Өөрөөр хэлбэл системийн нэг хувилбараас нөгөөх хувилбар хүрэх хоорондох бүхий л түүхийг агуулж байдаг.
Энэ төрлийнхөөс MS SourceSafe, Borland TeamSource гэх мэт төлбөртэй, CVS SVN гэсэн төлбөргүй нээлттэй эхийн хэрэгсэлүүдийг дурдаж болно. Мэдээж хэн ч аваад ашиглахад үнэгүйгээрээ SVN, CVS -ийг санал болгож байна.
Та Цонх систем ашигладаг бол таньд TortoiseSVN, TortoiseCVS -ийг санал болгож байна. Эдгээр нь бүгд үнэгүй програм юм.

http://www.dulmandakh.com/2009/01/blog-post_05.html
http://buyaa.blogspot.com/2008/10/svn.html

6. Diff, Merge tools
Diff буюу ялгааг харах, merge буюу нэгтгэх хэрэгсэлүүд.
Хувилбар удирдах систем ашиглаж буй үед болон ер нь хөгжүүлэгчдэд хоёр файлуудын ялгааг харж хувилбар хоорондын өөрчлөлтүүдийг ялган харах, улмаар тэдгээрийг хооронд нь нэгтгэхэд эдгээрийг ашиглах нь маш тустай. Цаг завыг чинь хэмнэнэ, алдаа эндэгдэл гарахыг хаана. Эдгээрийг хэрэглэж сурснаар та эхлэн суралцагч байхаа больж туршлагатай хөгжүүлэгчдийн эгнээнд орноо ;)

WinMerge, Meld, Kompare
Эдгээр нь нэг их онц ялгаа байхгүй. Таалагдсанаа сонгож аваарай.

7. Database Design, Management Tool
Баазтай ажиллах үед тэдэнтэй ажиллах тохилог, тухтай боловч тогтвортой сайн ажиллагаатай багаж хэрэгсэл бас хэрэгтэй. Ямар баазтай ажиллах болон зөвхөн бааз удирдах ажиллах эсвэл төсөл хөгжүүлэх явцад аливаа баазыг төлөвлөх, архитектур дизайн гаргах эсэх зэргээс хамаараад дараах багажууд бас үнэ төлбөргүй хирнээ түгээмэл ашигладдаг, хөгжүүлэгчдийн талархлыг хүлээсээр удаж байгаа.

phpMyAdmin - MySQL бааз удирдах веб интерфэйс
phpPgAdmin - PostgreSQL бааз удирдах веб интерфэйс
MySQL Workbench - График интерфэйс бүхий MySQL бааз удирдах, баазын дизайн архитектур зурах хэрэгсэл
DBDesinger4 - График интерфэйс бүхий MySQL, Oracle, MSSQL болон аль ч ODBC бааз удирдах, баазын дизайн архитектур зурах хэрэгсэл

http://bolorcms.com/badaa/index.php?/archives/50-DBDesigner4-on-linux.html
http://bolorcms.com/badaa/index.php?/archives/90-MySQL-Workbench-on-Ubuntu-linux.html

Ингээд өнөөдөртөө эхний хэсгийг өндөрлөе. Дараагийн хэсэгт хөгжүүлэгчийн ширээний Үбүнтү үйлдлийн системээ бэлдэх болон php framework, adodb db layer, веб програмаа тест хийх буюу зүгшрүүлэх зэрэг зүйлсийг багтаахийг хичээсү.
Гарчигийг Хэрхэн нээлттэй эхийн хөгжүүлэгч болох вэ гэж өгснөө энэ нь утгын хувьд нээлттэй эх бүхий систем хөгжүүлэгч болох тухай болчих санагдаад өөрчилөв. Уул санаа нь үнэгүй болон нээлттэй эх бүхий програм, хэрэгсэл ашиглан хөгжүүлэгч болох гэсэн боловч урт болчихлоо.

Өчүүхэн миний зүгээс алдаж, ташаарсан зүйл байх аваас та бүхэн засч залруулж өгөх аваас туйлаас баярлах болно. Мөн уг сэдвээр хамтран үргэлжлүүлэн бичихийг хүсэгч нэгэн байвал татгалзах зүйлгүйгээр хамтран бичихэд таатай байх болно.


цааш унших...

blogger templates | Make Money Online