کتاب آموزش گام به گام برنامه‌نویسی GO

کتاب آموزش گام به گام برنامه‌نویسی GO


کتاب آموزش گام به گام برنامه‌نویسی GO نوشته‌ی رمضان عباس نژادورزی و امیرحسین طاهری اطاقسرا، به معرفی این زبان برنامه نویسی بسیار قدرتمند و کارآمد پرداخته است.

زبان برنامه‌نویسی Go، زبان بسیار پرکاربرد، پیشرفته‌ و قدرتمندی است که در آینده‌ای نه چندان دور در بیش‌تر پروژه‌های موفق و بزرگ دنیا مورد استفاده قرار می‌گیرد. شاید تعجب کنید ولی این زبان برنامه‌نویسی در برخی خصوصیات خود 20 الی 50 برابر از زبان‌های دیگر بهینه‌تر و سریع‌تر است.

در سپتامبر سال 2007، Ken Thompson و Rob Pike، دو تن از سرشناس‌ترین چهره‌های دنیای نرم‌افزار که نیازی به معرفی‌شان نیست، ایده ساخت یک‌زبان برنامه‌نویسی سیستمی جدید را با Robert Griesemer، یکی دیگر از مهندسین مشغول در Google در میان گذاشتند. آن‌ها کار بر روی این زبان جدید را شروع کردند و در این مدت تعداد دیگری از همکارانشان همچون Russ Cox و Brad Fitzpatrick و Andrew Gerrand به تیم آن‌ها ملحق شدند.

این زبان با پشتیبانی گوگل به صورت open source یا متن باز اولین نسخه آزمایشی‌اش را در نوامبر سال 2009، به عموم برنامه‌نویسان عرضه شد. از آن زمان تا به حال بیش از 300 نفر از برنامه‌نویسان داوطلب در توسعه این پروژه شرکت داشته‌اند. از اولین ماه انتشار این زبان، شرکت‌های Startup زیادی استفاده از آن را شروع کردند. با اینکه زبان در نسخه آزمایشی به سر می‌برد، اما برای خیلی‌ها وجود نام Jeb Thompson و Rob Pike کافی بود تا از کیفیت زبان اطمینان حاصل کنند. بسیاری از شرکت‌های بزرگ‌تر، منتظر نسخه پایدار بودند. تا اینکه در ماه مارس سال 2012، نسخه 0.1 از زبان برنامه‌نویسی Go به صورت پایدار منتشر شد.

تعدادی از شرکت‌های استفاده کننده از این زبان عبارت‌اند از: Google، YouTube، BBC، Canonical، Nokia Siemens، Bitly، Heroku، CloudFlare، SmugMug، Feedbooks، Iron. io، Moovweb، AirBrake، Swirl. us، SoundCloud تقریباً تمام این شرکت‌ها، از Go برای طراحی سیستم‌های Back-end استفاده کرده‌اند. جایی که زبان‌های اسکریپتی قدرت مناسب را ندارند و معمولاً از JVM استفاده می‌شود؛ در خیلی از مواقع هم برای رسیدن به سرعت بالاتر، پای کدهای C و ++C به میان می‌آید.

زبان برنامه‌نویسی Go هنوز در اول راه است، و برای رسیدن به‌جایگاه زبان‌های دیگر مثل C++ ،Java ،Python و... راه طولانی در پیش دارد، اما به نظر می‌رسد که برای شروع بسیار موفق عمل کرده است. زیرا فقط با گذشت 7 ماه از انتشار اولین نسخه پایدارش، با مقبولیتی زیادی روبه‌رو شده است. یکی از راه‌های آموزش زبان‌های برنامه‌نویسی، آموزش مفاهیم برنامه به همراه مثال‌های متعدد است.

کتاب حاضر شامل 8 فصل است که عبارت‌اند از: فصل اول، مفاهیمی از قبیل آشنایی با زبان Go، عملگرها و دستورات ورودی و خروجی را با مثال‌های متعدد آموزش می‌دهد. فصل دوم، به ساختارهای کنترلی نظیر ساختارهای تصمیم (if، switch) و دستورات تکرار (for، break و continue) می‌پردازد. فصل سوم، توابع و روش‌های پیاده‌سازی و فراخوانی آن‌ها را آموزش می‌دهد. فصل چهارم، آرایه یک‌بعدی، دوبعدی، Sliceها و Mapها را با مثال‌های مختلف آموزش می‌دهد. فصل پنجم، مفاهیم رشته‌ها و کاراکترها را بیان کرده و متدهای کار با کاراکترها و رشته‌ها را آموزش می‌دهد. فصل ششم ساختمان‌ها و واسط‌ها را آموزش می‌دهد. فصل هفتم، به برنامه نویسی موازی و امکات زبان Go برای این منظور از قبیل هم روال‌ها و کانال‌ها می‌پردازد. فصل هشتم، ورودی و خروجی فایل‌ها و بسته‌های موجود در زبان برای کار کردن با فایل‌ها را شرح می‌دهد.

برای تمرین بیش‌تر انتشارات اقدام به انتشار کتاب حل مسائل Go را نموده است که مکمل این کتاب است. از ویژگی‌های بارز این کتاب این است که به صورت گام‌به‌گام با جملات کوتاه و ساده بیان گردیده است.

فهرست مطالب
فصل اول: آشنایی با Go
1-1. ویژگی‌های Go
2-1. قابلیت‌های نداشته‌، قابلیت‌های اصلی زبان Go
3-1. مفهوم بسته و کاربردهای آن
4-1. آموزش زبان‌های برنامه‌نویسی
5-1. شناسه‌ها
6-1. کلمات کلیدی
7-1. فضای سفید
8-1. لیترال‌ها
9-1. توضیحات
10-1. کاراکترهای ویژه
11-1. انواع داده
12-1. انواع عددی
13-1. مراحل آماده‌سازی و اجرای برنامه
14-1. ساختار برنامه Go
15-1. دستورات خروجی
16-1. متغیرها
17-1. ثابت‌ها
18-1. عملگرها
1-18-1. عملگرهای محاسباتی
2-18-1. عملگرهای رابطه‌ای (مقایسه‌ای)
3-18-1. عملگرهای ترکیبی
4-19-1. عملگرهای منطقی
5-18-1. عملگرهای خاص
19-1. اولویت عملگرها
20-1. تبدیل نوع
21-1. خواندن داده با تابع Scanf
22-1. تمرین‌های برنامه‌نویسی
فصل دوم: ساختارهای کنترلی
1-2. ساختار‌های تصمیم‌گیری
1-1-2. ساختار تصمیم if
2-1-2. ساختار if تودرتو
3-1-2. ساختار switch
2-2. ساختار تکرار for
1-2-2. دستور break
2-2-2. دستور continue
3-2. تمرین‌های برنامه‌نویسی
فصل سوم: توابع و پیاده‌سازی آن‌ها
1-3. انواع توابع
1-1-3. توابع کتابخانه‌ای
2-1-3. توابعی که برنامه‌نویس می‌نویسد
2-3. ارسال پارامترها به توابع
1-2-3. ارسال پارامتر از طریق مقدار
2-2-3. ارسال پارامتر از طریق ارجاع
3-3. توابع بازگشتی
4-3. توابع با تعداد پارامترهای دالخواه
5-3. مفهوم Coluser
6-3. مفهوم defer
7-3. مفهوم panic و recover
6-3. تمرین‌های برنامه‌نویسی
فصل چهارم: آرایه‌ها، برش‌ها و نقشه‌ها
1-4. تعریف آرایه‌های یک‌بعدی
2-4. مقداردهی عناصر آرایه
1-2-4. مقداردهی به خانه‌های آرایه به‌صورت مجزا
2-2-4. مقداردهی اولیه به عناصر آرایه در هنگام تعریف آن
3-2-4. مقداردهی به خانه‌های آرایه با حلقه‌های تکرار و دستورات ورودی
3-4. نمایش مقادیر آرایه
1-3-4. نمایش مقادیر هر عنصر به‌صورت مجزا
2-3-4. نمایش مقادیر آرایه با حلقه تکرار for
3-3-4. نمایش عناصر آرایه با حلقه for بدون استفاده از اندیس
4-4. تولید اعداد تصادفی
5-4. ارسال آرایه‌ها به توابع
1-5-4. ارسال عناصر آرایه به توابع
2-5-4. ارسال نام آرایه‌ها به توابع
6-4. مرتب‌سازی آرایه
7-4. جستجوی مقادیر آرایه
1-7-4. جستجوی خطی (ترتیبی)
2-7-4. جستجوی دودویی در آرایه مرتب‌شده
8-4. حذف عناصر آرایه
9-4. درج عنصری بین عناصر آرایه
10-4. آرایه‌های دوبعدی
1-10-4. تعریف آرایه دوبعدی
2-10-4. مقداردهی عناصر آرایه دوبعدی
3-10-4. نمایش مقادیر آرایه دوبعدی
11-4. برش یا Slice
1- 11-4. اضافه کردن عنصری به برش
2-11-4. کپی کردن عناصر برش
3-11-4. مرتب‌سازی عناصر برش
12-4. نقشه یا Map
1- 12-4. تابع len ()
2-12-4. تابع delete ()
3-12-4. کاربرد for range برای پیمایش map
13-4. تمرین‌های برنامه‌نویسی
فصل پنجم: رشته‌ها و کاراکترها
1-5. کاراکترها و رشته‌ها
2-5. عملگرها و متدهای اولیه رشته‌ای
3-5. خواندن رشته
4-5. کاراکترهای کنترلی و فرمت‌دهی داده‌ها
5-7. متدهای بسته Strings
6-7. بسته strconv
7-7. تمرین‌های برنامه‌نویسی
فصل ششم: ساختمان‌ها و واسط‌ها
1-6. ساختمان
1-1-6. ایجاد نمونه جدید از نوع تعریف شده
2-1-6. دسترسی به فیلدهای ساختمان
3-1-6. ایجاد ساختمان بی‌نام
4-1-6. انتساب متغیرهای ساختمان
5-1-6. تعریف آرایه‌ای از ساختمان
6-1-6. ساختمان‌ها به عنوان آرگومان تابع
7-1-6. ایجاد اشاره‌گری از نوع ساختمان
8-1-6. ایجاد فیلدهای بی‌نام
9-1-6. ساختمان‌های تودرتو
10-1-6. صادر کردن ساختمان و فیلدها
11-1-6. مقایسه برابری دو متغیر ساختمان
2-6. متدها
3-6. مفاهیم Has - a و Is - a
4-6. واسط‌ها
1-4-6. واسط خالی
2-4-6. پیاده‌سازی واسط‌های چندگانه
3-4-6. تعبیه کردن واسط‌ها
1-4-6. پیاده‌سازی واسط‌های چندگانه
5-6. کلاس‌ها و وراثت
1-5-6. ساختمان‌ها به‌جای کلاس‌ها
2-5-6. تابع New به‌جای سازنده‌ها
3-5-6. ترکیب به‌جای وراثت
6-6. تمرین‌های برنامه‌نویسی
فصل هفتم: هم‌روندی
1-7. هم‌روندی
2-7. هم‌روال
3-7. کانال‌ها
1-3-7. مسیر کانال‌
2-3-7. دستور select
3-3-7. کانال‌های بافر شده
4-7. تمرین‌های برنامه‌نویسی
فصل هشتم: دایرکتوری‌ها و فایل‌ها
1-8. تابع Create ()
2-8. متد Close ()
3-8. تابع MkdirAll ()
4 –8. تابع Rename ()
5-8. تابع Remove ()
6-8. خواندن اطلاعات متا داده فایل
7-8. خواندن اطلاعات فایل
1-7-8. خواندن کل اطلاعات یک فایل و انتقال آن به حافظه
2-7-8. خواندن یک فایل به صورت قطعات چند بایتی
3-7-8. خواندن اطلاعات فایل به‌صورت خط به خط
8-8. نوشتن در فایل
1-8-8. نوشتن رشته در یک فایل
2-8-8. نوشتن بایت‌ها در یک فایل
3-8-8. نوشتن یک سطر در یک فایل
4-8-8. افزودن اطلاعات به فایل
5-8-8. افزودن اطلاعات به فایل
9-8. نوشتن هم‌زمان در یک فایل
10-8. تمرین‌های برنامه‌نویسی
منابع

مطالب مرتبط

تگ‌ها

مطالب پربیننده

پربیننده
آخرین مطالب

عضویت در خبرنامه