منصوبے کے بارے میں

7days-golang ایک تعلیمی ذخیرہ ہے جسے geektutu نے برقرار رکھا ہے اور یہ MIT لائسنس کے تحت ہے۔ یہ ذخیرہ سات دنوں میں Go کے عام بنیادی اجزاء کو مرحلہ وار لاگو کرکے قارئین کو ان ٹولز کے اندرونی اصولوں کو سمجھنے میں مدد کرتا ہے۔ ہر ذیلی پروجیکٹ کو دنوں کے حساب سے تقسیم کیا گیا ہے اور اس کے ساتھ مصنف کی ویب سائٹ پر سیریز کے مضامین بھی موجود ہیں۔ اس میں چار اہم ذیلی پروجیکٹ شامل ہیں: 1. Gee Web فریم ورک (gee-web): یہ gin کی نقل میں بنایا گیا ویب فریم ورک ہے، جس میں سات دنوں میں http.Handler انٹرفیس کی بنیاد، Context کا ڈیزائن، Trie درخت پر مبنی روٹنگ، روٹ گروپ (Group) کنٹرول، مڈل ویئر میکانزم، HTML ٹیمپلیٹ ایمبیڈنگ، اور Panic ریکوری اور مضبوطی شامل ہیں۔ 2. GeeCache تقسیم شدہ کیش (gee-cache): یہ groupcache کی نقل میں بنایا گیا تقسیم شدہ کیش سسٹم ہے، جس میں LRU کیش ختم کرنے کی حکمت عملی، سنگل مشین کنکرنٹ کیش، HTTP سرور، مستقل ہیشنگ، تقسیم شدہ نوڈس کے درمیان مواصلات، سنگل فلائٹ (singleflight) کا نفاذ جو کیش ٹوٹنے سے بچاتا ہے، اور Protobuf کو ڈیٹا ایکسچینج فارمیٹ کے طور پر استعمال کرنا شامل ہے۔ 3. GeeORM فریم ورک (gee-orm): یہ xorm اور gorm کے ڈیزائن پر مبنی ORM فریم ورک ہے۔ مصنف نے وضاحت کی ہے کہ چونکہ gorm v2 ترقی کے مراحل میں ہے اور xorm کا ڈیزائن زیادہ سمجھنے میں آسان ہے، اس لیے انٹرفیس کا ڈیزائن بنیادی طور پر xorm سے لیا گیا ہے، جبکہ کچھ تفصیلات gorm سے لی گئی ہیں۔ سات دنوں میں database/sql کی بنیاد، آبجیکٹ اور ٹیبل ڈھانچے کی میپنگ، ریکارڈز کا اضافہ اور استفسار، چین آپریشنز اور اپ ڈیٹ/ڈیلیٹ، ہکس (Hooks)، ٹرانزیکشن سپورٹ، اور ڈیٹا بیس مائیگریشن (Migrate) شامل ہیں۔ 4. GeeRPC فریم ورک (gee-rpc): یہ Go کے معیاری لائبریری net/rpc پر مبنی RPC فریم ورک ہے، جس میں تقریباً 1k لائنوں کا کوڈ ہے۔ اس میں پروٹوکول ایکسچینج، سروس رجسٹریشن اور دریافت، لوڈ بیلنسنگ، ٹائم آؤٹ ہینڈلنگ، HTTP پروٹوکول ڈیبگنگ سپورٹ وغیرہ شامل کیے گئے ہیں۔ دنوں کے حساب سے سرور اور میسج انکوڈنگ، کنکرنٹ اور اسینکرونس کلائنٹ، سروس رجسٹریشن، ٹائم آؤٹ ہینڈلنگ، HTTP پروٹوکول سپورٹ، لوڈ بیلنسنگ، اور سروس دریافت اور رجسٹریشن سینٹر پر بات کی گئی ہے۔ اس کے علاوہ، ذخیرے میں چار Go WebAssembly مثالیں (demo-wasm) بھی شامل ہیں، جو Hello World، فنکشن رجسٹریشن، DOM آپریشنز اور کال بیک فنکشنز کے طریقے دکھاتی ہیں، اور اس کے ساتھ مضمون "Go WebAssembly简明教程" بھی ہے۔ مصنف نے اضافی مطالعاتی مواد بھی تجویز کیا ہے، جس میں "Go 语言简明教程"، "Go 语言笔试面试题" اور "Go 语言高性能编程" شامل ہیں، اور تجویز کیا ہے کہ قارئین پہلے Go کی بنیادی نحو، کنکرنٹ پروگرامنگ اور ڈیپنڈنسی مینجمنٹ کو سمجھیں اور پھر عملی مشق کریں۔ یہ ذخیرہ ان Go سیکھنے والوں کے لیے موزوں ہے جو ویب فریم ورک، تقسیم شدہ کیش، ORM اور RPC کے اندرونی میکانزم کو پڑھ کر اور خود کوڈ لکھ کر گہرائی سے سمجھنا چاہتے ہیں۔