2014年2月10日月曜日

Мэдлэг туршлага ханхалсан жинхэнэ үнэ цэнэ бүхий номнууд

1. Java хэлэнд нэвтэрхий болъё гэвэл:
Java SE-н гол зохиогч Joshua Bloch-н бичсэн ном.  Жава хэл дээр оновчтой, зөв код бичиж суръя гэвэл энэ номыг олж уншаарай! Үүнийг уншсанаар Жава хэл дээр хамгийн үр дүнтэй (хийгүй) код бичиж сурахаас гадна ОХП (Объёкт Хандлагат Программчлал),  Дизайн паттерний  (ДП: зохиомжийн түгээмэл хэрэглэгддэг тогтсон загвар-бэлэн шийдэл)  талаарх ойлголт тань гүнзгийрэх болно.
          English Edition: http://www.amazon.com/Effective-Java-Edition-Joshua-Bloch/dp/0321356683
日本語版:http://www.amazon.co.jp/EFFECTIVE-JAVA-第2版-Joshua-Bloch/dp/4621066056/ref=sr_1_fkmr0_1?s=books&ie=UTF8&qid=1392061289&sr=1-1-fkmr0&keywords=Essential+Java+Joshua+Bloch

2.  ОХП, ДП-д нэвтэрхий сайн зохиомжлогч, архитектурч болъё гэвэл: 
Gang Of Four гэгддэг Erich Gamma тэргүүтэй алдарт дөрвөл (программ хангамж зохиомжлогчид)-ийн бичсэн ном. Алгебрийн 7 томъёо гэдэг шиг ОХЗ (Объёкт Хандлагат Зохиомж)-д түгээмэл хэрэглэгддэг 23 загварыг ангилан нэгтгэж, тухайлсан (оновчтой) нэр оноож, томъёолсоноор энэ салбарт томоохон хувьсгал авчирсан алдартай ном. Эхлэн суралцаж буй хүнд жаахан хүнд тул энэхүү жагсаалтын 2.2-т бичигдсэн номыг эхлээд уншихыг зөвлөе!
Магадгүй, энэ номын зохиогчид физикийн шинжлэх ухаанд урд мэдэгдээд байсан цахилгаан соронзны хуулиудыг нэгтгэн цахилгаан соронзны ерөнхий хуулийг (5-н томъёо байдаг байх аа!)  томъёолж гаргасанаар нэрээ мөнхөлсөн Максвэлтэй дүйхүйц гавъяатай хүмүүс юм.
Дашрамд дурдахад Erich Gamma бол XP-н гол дэмжигчдийн нэг бөгөөд та бидний (над мэтийн зарим нөхөд байх л даа) хайртай Eclipse IDE-г зохиогчдын нэг билээ.
2.1 Design Patterns: Elements of Reusable Object-Oriented Software
English Edition: http://www.amazon.co.jp/Design-Patterns-Elements-Reusable-Object-Oriented-ebook/dp/B000SEIBB8
日本語版: http://www.amazon.co.jp/オブジェクト指向における再利用のためのデザインパターン-エリック-ガンマ/dp/4797311126/ref=sr_1_cc_3?s=aps&ie=UTF8&qid=1392058926&sr=1-3-catcorr&keywords=デザインパターン 
2.2  Design Patterns Explained: A New Perspective on Object-Oriented Design
English Edition: http://www.amazon.co.jp/Design-Patterns-Explained-Perspective-Object-Oriented/dp/0321247140
日本語版:http://www.amazon.co.jp/s/ref=nb_sb_ss_fb_0_9?__mk_ja_JP=カタカナ&url=search-alias%3Dstripbooks&field-keywords=デザインパターンとともに学ぶオブジェクト指向のこころ&sprefix=デザインパターンと%2Cdigital-text%2C1331&rh=n%3A465392%2Ck%3Aデザインパターンとともに学ぶオブジェクト指向のこころ 
 2.3 Зохиомжийг хаанаас эхлэж, хэрхэн зөв хийх ёстой юм бэ?   
Хамгийн их өөрчлөгддөг User Interface-ээс бус, ямар технологи сонгохоос үл хамааран харьцангуй тогтвортой байдаг програм хангамжийн цөм болсон хэсэг (problem domain)-ээс эхлэх ёстой бөгөөд төсөлд оролцогч бүх талуудын ойлгодог нийтлэг хэлээр (ubiquitous language), бас Model (Model Driven Design) ашиглаж загварчлах нь зүйтэйг энэ номд дурдсан буй. Хэрхэн гэдгийг өөрсдөө уншиж ойлгоорой!  Энэ бас их алдартай ном шүү! Заавал уншаарай!
 English Edition:  http://www.amazon.com/Domain-Driven-Design-Tackling-Complexity-Software/dp/0321125215 
日本語版:http://www.amazon.co.jp/エリック・エヴァンスのドメイン駆動設計-IT-Architects’Archive-ソフトウェア開発の実践-エリック・エヴァンス/dp/4798121967/ref=sr_1_1?s=books&ie=UTF8&qid=1392061470&sr=1-1&keywords=ドメイン駆動設計
2.4 Use Case Driven Object Modeling with UML Theory and Practice
 UML, Use Case Driven Development-н талаар бичсэн маш сайн ном. Шинжилгээ хийхээс бусад цагт огт ашиглагдахгүй гэж ойлгогдож байсан Use Case Diagram-г хөгжүүлэлтийн шат бүр дээр яаж ашиглах вэ? гэдгийг онол, дадлагатай нь хамт дэлгэрэнгүй тайлбарлажээ. Мөн шинжилгээ-ерөнхийлсөн зохиомж-нарийвчилсан зохиомжийн ялгаа, эдгээр дамжлагууд дээр анхаарах зүйлс, ашиглагдах UML диаграмм, юуны учир ямар зорилгоор эдгээр диаграммыг ашигладгийг мэдэж авч болно.  Гаргасан зориомжийн дагуу хэрхэн гүйцэтгэх талаар Spring framework дээрх жишээ буй тул давхар энэ framework-н талаар ойлголттой болох завшааныг олгоно.  Бас Domain Driven Development (ubiquitous language)-н талаар дурдсан буй.
English Edition: http://www.amazon.com/dp/1590597745?tag=vresorcom-20&camp=14573&creative=327641&linkCode=as1&creativeASIN=1590597745&adid=0WTGWJC46JQ69C1QJMPM&
日本語版:http://www.amazon.co.jp/ユースケース駆動開発実践ガイド-OOP-Foundations-ダグ・ローゼンバーグ/dp/4798114456/ref=sr_1_cc_1?s=aps&ie=UTF8&qid=1392059766&sr=1-1-catcorr&keywords=ユースケース駆動開発

          2.5 Мэдээллийн системүүдийг хоршиж ажиллуулах талаар
Томоохон хэмжээний энтерпрайз систем нь олон дэд системүүдээс тогтохын зэрэгцээ гадны системүүдтэй холбогдож ажиллах шаардлагатай байдаг. Эдгээр системүүд нь харилцан хамааралгүй, эсвэл өөр цаг хугацаанд, ялгаатай технологи, өөр шийдэлтэйгээр хийгдсэн байх нь элбэг.  Гэтэл системүүдийн хооронд мэдээлэл солилцох, тэдгээрийг хоршиж ажиллуулах шаардлага байнга тулгардаг. Энэ асуудлыг хэрхэн хялбар шийдэж болдог, ямар тогтсон загварууд байдгийг томъёолж гаргасан ном:
http://www.amazon.com/Enterprise-Integration-Patterns-Designing-Deploying/dp/0321200683/ref=sr_1_1?s=books&ie=UTF8&qid=1391965862&sr=1-1&keywords=Enterprise+Integration+Pattern
           Энэ номтой Apache Servicemix, Apache Active MQ (Apache Camel)-г судлаж 
           байгаад санамсаргүй  (хувь заяаны тохиолоор :)) учирч билээ: 
           ・https://camel.apache.org/enterprise-integration-patterns.html
           ・http://www.eaipatterns.com/toc.html

3.  Программ хангамж хөгжүүлэх аргачлалын талаар:
3.1 XP-н талаар: Олон ном байдаг ч, XP-г үндэслэгч Kent Beck-н номыг олж уншвал зүгээр болов уу? Доорх URL 2 дахь хэвлэлийнх агаад нэг дэх хэвлэлийн агуулгыг илүү баяжуулж, 5 жилийн хугацаанд янз бүрээр туршигдаж батлагаажсан шинэ мэдлэг туршлагаар арвижуулсан байдаг тул эхний хэвлэлийг унших нь илүүц болов уу. 
English Edition: http://www.amazon.com/Extreme-Programming-Explained-Embrace-Edition/dp/0321278658
日本語版:http://www.amazon.co.jp/XPエクストリーム・プログラミング入門―変化を受け入れる-ケント-ベック/dp/4894716852/ref=sr_1_2?s=books&ie=UTF8&qid=1392060574&sr=1-2&keywords=extreme+programming+explained 
3.2 Lean Software Development (Хийгүй хөгжүүлэлт)-н талаар
Эхнэр нөхөр Poppendieck нарын 25 гаран жилийн туршлагадаа тулгуурлан бичсэн гайхалтай ном. Poppendieck Agile аргыг хөгжүүлэгч, дэлгэрүүлэгчдийн нэг бөгөөд XP, Scrum (18 жилийн туршлага)-н арвин туршлагатай асар нэр хүндтэй хос юм. Toyota-н үйлвэрлэлийн дамжлагад хэрэглэгдэж байгаад (Just In Time Production) хожим бусад салбаруудад нэвтэрсэн хамгийн үр ашиг өндөртэй, сул зогсолт багатай, жинхэнэ хийгүй бөх шиг менежментийн аргыг нэвтрээгүй үлдсэн ганц салбар болох  программ хангамжын салбарт нэвтрүүлсэнийгээ тэд Lean Software Development гэж нэрийджээ. Нэвтрээгүй үлдсэн шалтгаан нь программ хангамжийг үйлдвэрлэх бус хөгжүүлдэг учраас хүндрэлтэй байсан гэж зохиогчид дурдсан байдаг. Лав гурван цуврал хэвлэгджээ.
Хөгжүүлэгч нарт зориулсан цуврал
English Edition: http://www.amazon.com/Lean-Software-Development-Agile-Toolkit/dp/0321150783

日本語版:http://www.amazon.co.jp/リーンソフトウエア開発~アジャイル開発を実践する22の方法~-メアリー・ポッペンディーク/dp/4822281930/ref=sr_1_2?s=books&ie=UTF8&qid=1392059922&sr=1-2&keywords=リーンソフトウエア 
Төслийн удирдагч нарт зохиулсан цуврал
English Edition: Leading Lean Software Developmenthttp://www.amazon.com/Leading-Lean-Software-Development-Results/dp/0321620704/ref=sr_1_4?s=books&ie=UTF8&qid=1391964464&sr=1-4&keywords=Poppendieck+Lean          
日本語版:http://www.amazon.co.jp/リーン開発の本質-メアリー・ポッペンディーク/dp/482228350X/ref=sr_1_1?s=books&ie=UTF8&qid=1392059922&sr=1-1&keywords=リーンソフトウエア 
Ажил олгогч, хөрөнгө оруулагч нарт зохиулсан цуврал:
English Edition: http://www.amazon.com/Leading-Lean-Software-Development-Results/dp/0321620704/ref=sr_1_4?s=books&ie=UTF8&qid=1391964665&sr=1-4&keywords=Poppendieck+Lean
日本語版:http://www.amazon.co.jp/リーンソフトウェア開発と組織改革-Mary-Poppendieck-依田光江-依田智夫/dp/4048687417/ref=sr_1_4?s=books&ie=UTF8&qid=1392059922&sr=1-4&keywords=リーンソフトウエア

          3.3 The Enterprise Unified Process: Extending the Rational Unified Process
IBM Rational-н боловсруулсан Rational Unified Process-т огт хөндөгдөөгүй орхигдсон хэсэг буй. Энэ арга нь RUP-д release хийсэнээс хойших процесс (системийн арчилгаа, дараачийн хувилбарт бэлтгэх г.м)-н талаарх ойлголтыг нэмж гүйцээсэн аргачлал юм.  
http://www.amazon.com/The-Enterprise-Unified-Process-Extending/dp/0131914510
Энд нэг зүйлийг дурдахгүй өнгөрч болохгүй буй за! 2003 онд Монгол-Япон төвөөс зохион байгуулсан CMM (Capability Maturity Model)-н сургалтын үеэр IBM Rational Japan компаний сургагч CMM-н оронд (огт заагаагүй биш CMM-н талаар анхны ойлголтыг ямар ч байсан өгсөөн) бидэнд Rational Unified Process-н талаар 4 өдөр хичээл заасаныг тод санаж байна. Тухайн үед 2000 гаран долларын өртэгтэй сургалтыг JICA-н дэмжлэгтэй 25000-хан мянган төгрөгөөр сурч байсан юм. Энэ сургалтыг зохион байгуулсан Монгол-Япон төвийн хамт олон, тухайн үед ажиллаж байсан Sky C&C компанид одоо болтол талархаж явдаг. Хэнд ч хэрэггүй CMM-н оронд RUP-н талаар ойлголттой болсоноо их аз завшаан гэж үздэг! 

Төгсгөлд нь

Энэ жагсаалтыг зөвхөн өөрийн уншиж судласан номонд тулгуурлан гаргасан бөгөөд эдгээрээс илүү агуулгатай ном байхыг үгүйсгэхгүй. Хувьдаа ач холбогдол, агуулга сайтай гэж бодсоныгоо сийрүүлэв. Программ хангамжийн талаар бичигдсэн ном үй түм бөгөөд энэ удаад программчлах урлагийн талаар ном дурдсангүй. Clean code, Code Complete, Beautiful Code г.м-н программыг хэрхэн авсаархан, гоё, оновчтой бичих талаар ном бишгүй олон бийг мэргэн уншигч та сайн мэдэх буй за. 

Хэрхэн ном хямд авах талаар зөвлөгөө: Ном хуучирахаас агуулга нь хуучирна гэж үгүй тул хуудас бүрэн бол хуучин ном авбал хямд тусдаг. Заримдаа зөвхөн хүргэлтийн үнээр худалдан авч болдог. Ихэнхи тохиолдолд шинээс огт ялгардаггүй. Бас цахим хувилбар хямд байдгийг дурдахгүй өнгөршгүй!