در این قسمت یعنی قسمت آخر مجموعه پستهای آشنایی با زبان برنامه نویسی Go، با کتابخانهها و ابزارهای مهم زبان گو آشنا میشویم، و در ادامه به روش یادگیری این زبان میپردازیم. با هیتوس همراه باشید.
کتابخانه استاندارد Go یکی از جامع ترین کتابخانههای موجود در بین تمام زبانهای برنامه نویسی است. از طرفی چون Go یک زبان نو ظهور است، طراحی کتابخانه در حالت بسیار تمیز و یکپارچهای قرار دارد.
Packageهایی برای آرشیو و فشرده سازی: tar, zip, bzip2, flate, gzip, lzw, zlib
Packageهایی برای رمزنگاری و عملیات هش: aes, cipher, des, dsa, rc4, rsa, md5, sha1, sha256, sha512, tls, x509
Packageهایی برای کار با فایلهای مختلف: base32 ,base64, binary, csv, gob, hex, pem, json, xml
Packageهایی برای کار با گرافیک دو بعدی: color, draw, gif, jpeg, png
Packageهایی برای کار با مباحث شبکه: html, cgi, fcgi, mail, url, jsonrpc
ذات سیستمی زبان Go در اینجا مشخص میشود. تمام Packageهای بالا در Go نوشته شده اند. برای داشتن خیلی از این Packageها در زبانهای دیگر، باید متوسل به کتابخانههای نوشته شده در زبان C میشدیم.
خوبی Go در این است که برای اعمال سطح پایین دیگر نیازی به C نیست. Go در واقع همان C مدرن است، از طرف همان کسانی که روزی C و Unix را به شما معرفی کرده بودند!
همه Packageهای بالا را همراه کنید با Packageهایی برای عملیات ریاضی، زمان، و تاریخ، محیط سیستم عامل، پایگاه داده، ورودی و خروجی، رشته ها، پردازش و Parse کردن متن و .
در ضمن کتابخانه استاندارد با یک HTTP Server داخلی همراه است که به راحتی میتوان آن را با Nginx یا Node.js مقایسه کرد. در واقع، اکثر سایتهایی که در ابتدای این نوشته به آنها اشاره شد هم از همین Server داخلی برای خدمات رسانی به کاربرانشان استفاده میکنند.
همچنین در کتابخانه استاندارد Go یک سیستم Template Engine ارایه شده تا برنامه نویسی وب را برای شما آسان تر کند. با این حساب، احتمالا متوجه شده اید که برنامه نویسی وب در Go، نیاز چندانی به فریمورکهای مرسوم در زبانهای دیگر نخواهید داشت. کتابخانه استاندارد Go همه چیز را از قبل برایتان مهیا کرده است.
از نظر مستندات، Go در جایگاه بسیار خوبی قرار دارد و برای تمام Packageها و تک تک توابع و پارامترهای شان به طور کامل مستندات وجود دارد.
اگر زبان انگلیسی شما در حد مطلوبی قرار دارد (که به عنوان یک برنامه نویس باید هم این چنین باشد) در زمینه یادگیری Go با هیچ مشکلی مواجه نخواهید شد و نیاز به هیچ کتاب و منبع خاصی نخواهید داشت؛ چرا کهمستندات موجود در سایت زبان به اندازه کافی کامل و مناسب است.
با این که زمان زیادی از انتشار نسخه پایدار نمیگذرد، اما Go ابزارهای جانبی نستباٌ کاملی در اختیار دارد:
ابزار Go که کار کامپایل و نصب Package را آسان کرده است. این ابزار حتی قابلیت این را دارد که Packageها را به صورت اتوماتیک از سایتهایی مثل Github دریافت و نصب نماید!
ابزار Godoc قادر است سایت golang.org را به صورت محلی در کامپیوتر شما اجرا کند. سایت اصلی golang.org هم به کمک همین ابزار در حال اجراست. همچنین godoc میتواند مستندات مربوط به Packageها و توابع آنها را مستقیما در ترمینال نمایش دهد.
ابزار Gofmt استایل کد نویسی شما را مدیریت میکند. برای مثال هرکدام ازا عضای تیم میتوانند استایل خودنویسی خودشان را داشته باشند، اما در نهایت از Gofmt برای یپارچه کردن استایل کدهای پروژه استفاده کنند.
ابزار Gocode هم برای کمک به ادیتورها و IDEها طراحی شده. این ابزار بررسی کدهای شما اطلاعات موجود در آنها را استخراج کرده و در اختیار ادیتورها و IDEهای میگذارد. آنها هم میتوانند از این اطلاعات برای پیاده سازی قابلیت Auto completion استفاده نمایند.
مهم ترین ابزار کار هر برنامه نویس ویرایشگر متن است. خوشبختانه Go از پشتیبانی خوبی در این زمینه برخوردار است. در رابطه با ویرایشگرهای ساده و سبک، Go از Kate و Notepad++ و BBEdit و Gedit و . به صورت رسمی پشتیبانی میکند.
برای کسانی که با ویرایشگرهای حرفهای کدنویسی میکنند، Go پشتیبانی رسمی و کاملی را برای ویرایشگرهای بی رقیب Vim و Emacs ارائه کرده است. در واقع از آنجایی که تیم سازندگان Go و اکثر جامعه کابران آن نیز با همین ابزارها کدنویسی میکنند، پشتیبانی از این دو از اولویت بسیار بالایی برخوردار است.
در Go همانند دیگر زبانهای کامپایلری نیاز خاصی به وجود IDE حس نخواهید کرد؛ اما برای کسانی که کار با IDEها را ترجیح میدهند، Go از پشتیبانی مناسبی برای IDEهای Eclipse و Intellig برخوردار است.
مستقیم به سایت golang.org بروید و پکیج مربوط به سیستم عامل خود را دانلود و نصب نمایید. برای خواندن مستندات هم به قسمت Documents سایت بروید. این قسمت بسیار جالب دسته بندی شده است. برای آشنایی با Go کافی است به ترتیب لینکهای این صفحه را از بالا به پایین مطالعه کنید. دقت کنید که رعایت ترتیب در خواندن لینکها بسیار به شما کمک خواهد کرد.
dedsec will give you the truth
join us
درباره این سایت