Skip to content

Commit

Permalink
Merge pull request #267 from ErfanTech/main
Browse files Browse the repository at this point in the history
fix: typos and semi-spaces
  • Loading branch information
Ja7ad authored Jul 29, 2023
2 parents 6bf6095 + dc070ea commit d47931a
Show file tree
Hide file tree
Showing 7 changed files with 62 additions and 62 deletions.
4 changes: 2 additions & 2 deletions content/_index.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ tags:
- سینتکس زبان گو
- آموزش زبان گو فارسی
- زبان گو فارسی
- آموزش زبان برنامه نویسی گو
- آموزش زبان برنامهنویسی گو
---

<style>
Expand Down Expand Up @@ -172,7 +172,7 @@ a {

{{< columns >}}

**کتاب زبان گو فارسی** آموزش زبان گو را به‌طور عمیق از مفاهیم پایه تا مفاهیم کاملاً پیشرفته و تکنیکی مانند: سینتکس، پارادایم ها،  {{< tooltip text="همزمانی" note="Concurrency" >}} (پایه تا پیشرفته)، ساختار داده، {{< tooltip text="الگوهای طراحی" note="Design Patterns" >}} و ... می‌پردازد تا گوفرها درک عمیق و کامل از زبان گو داشته باشند.
**کتاب زبان گو فارسی** آموزش زبان گو را به‌طور عمیق از مفاهیم پایه تا مفاهیم کاملاً پیشرفته و تکنیکی مانند: سینتکس، پارادایمها،  {{< tooltip text="همزمانی" note="Concurrency" >}} (پایه تا پیشرفته)، ساختار داده، {{< tooltip text="الگوهای طراحی" note="Design Patterns" >}} و ... می‌پردازد تا گوفرها درک عمیق و کامل از زبان گو داشته باشند.

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

Expand Down
40 changes: 20 additions & 20 deletions content/history.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,47 +4,47 @@ type: chapter
weight: 4
---

زبان گو (Go) در سال ۲۰۰۷ (به شمسی: ۱۳۸۶) توسط «شرکت گوگل» با هدف افزایش بهره‌وری برنامه‌نویسی در محیط چندهسته‌ای، رایانه‌های شبکه‌ای و کدبیس‌های بزرگ طراحی شد [[به نقل از ویکی پدیا](https://fa.wikipedia.org/wiki/%DA%AF%D9%88_(%D8%B2%D8%A8%D8%A7%D9%86_%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87%E2%80%8C%D9%86%D9%88%DB%8C%D8%B3%DB%8C))] و سپس به عنوان یک زبان کامپایلری و تایپ استاتیک در نوامبر سال ۲۰۰۹ بصورت عمومی با هدف {{< tooltip text="کامپایل کارآمد" note="efficient compilation" >}}، {{< tooltip text="اجرای کارآمد" note="efficient execution" >}} و{{< tooltip text="سهولت برنامه نویسی" note="ease of programming" >}} معرفی شد که توسط شرکت گوگل توسعه داده شده است و بسیاری از اعضای تیم طراحی و توسعه زبان گو [[Ken Thompson](https://en.wikipedia.org/wiki/Ken_Thompson), [Rob Pike](https://en.wikipedia.org/wiki/Rob_Pike), [Robert Griesemer](https://en.wikipedia.org/wiki/Robert_Griesemer)] سال ها تجربه در زمینه تحقیق و توسعه زبان برنامه نویسی دارند.
زبان گو (Go) در سال ۲۰۰۷ (به شمسی: ۱۳۸۶) توسط «شرکت گوگل» با هدف افزایش بهره‌وری برنامه‌نویسی در محیط چندهسته‌ای، رایانه‌های شبکه‌ای و کدبیس‌های بزرگ طراحی شد [[به نقل از ویکی پدیا](https://fa.wikipedia.org/wiki/%DA%AF%D9%88_(%D8%B2%D8%A8%D8%A7%D9%86_%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87%E2%80%8C%D9%86%D9%88%DB%8C%D8%B3%DB%8C))] و سپس به عنوان یک زبان کامپایلری و تایپ استاتیک در نوامبر سال ۲۰۰۹ بصورت عمومی با هدف {{< tooltip text="کامپایل کارآمد" note="efficient compilation" >}}، {{< tooltip text="اجرای کارآمد" note="efficient execution" >}} و{{< tooltip text="سهولت برنامهنویسی" note="ease of programming" >}} معرفی شد که توسط شرکت گوگل توسعه داده شده است و بسیاری از اعضای تیم طراحی و توسعه زبان گو [[Ken Thompson](https://en.wikipedia.org/wiki/Ken_Thompson), [Rob Pike](https://en.wikipedia.org/wiki/Rob_Pike), [Robert Griesemer](https://en.wikipedia.org/wiki/Robert_Griesemer)] سالها تجربه در زمینه تحقیق و توسعه زبان برنامهنویسی دارند.

تاریخچه زبان گولنگ به سال ۲۰۰۷ میلادی برمیگردد.وقتی که سه برنامه‌نویس تصمیم گرفتند یک زبان برنامه‌نویسی جدید با ترکیبی از ویژگی‌های مختلف را توسعه دهند. آنها هدف خود را در نظر داشتند که زبانی سریع، ساده، قابل استفاده و موثر برای توسعه نرم‌افزارهای همزمان و مقیاس‌پذیر بسازند.
تاریخچه زبان گولنگ به سال ۲۰۰۷ میلادی برمیگردد.وقتی که سه برنامه‌نویس تصمیم گرفتند یک زبان برنامه‌نویسی جدید با ترکیبی از ویژگی‌های مختلف را توسعه دهند. آن‌ها هدف خود را در نظر داشتند که زبانی سریع، ساده، قابل استفاده و موثر برای توسعه نرم‌افزارهای همزمان و مقیاس‌پذیر بسازند.

گولنگ از زبان هایی چون pascal, c and oberon الهام گرفته است. هدف توسعه دهندگان گولنگ ساده تر کردن فرایند طراحی و ساخت نرم افزار های مقایس پذیر بوده.
آنها در طراحی گولنگ تلاش کردند تا عملکرد زبان را بهبود بخشند و یک سینتکس ساده و خوانا ارائه دهند.
گولنگ از زبانهایی چون pascal, c and oberon الهام گرفته است. هدف توسعه دهندگان گولنگ سادهتر کردن فرایند طراحی و ساخت نرم افزارهای مقایسپذیر بوده.
آن‌ها در طراحی گولنگ تلاش کردند تا عملکرد زبان را بهبود بخشند و یک سینتکس ساده و خوانا ارائه دهند.

از آن زمان تا به امروز، گولنگ رشد و پیشرفت چشمگیری کرده است و استفاده از آن در صنعت نرم‌افزار روز به روز بیشتر می‌شود. شرکت‌های بزرگی مانند Google، Dropbox، YouTube و Docker از گولنگ به عنوان یکی از زبان‌های اصلی خود استفاده می‌کنند. همچنین جامعه برنامه‌نویسی گولنگ به طور فزاینده‌ای در حال رشد است و ابزارها و کتابخانه‌های زیادی با استقاده از گولنگ توسعه داده شده است.

زبان گو دارای یک سری ویژگی های منحصر به فرد می باشد و برخی از ویژگی هایش از سایر زبان ها الهام گرفته شده است :
زبان گو دارای یک سری ویژگیهای منحصر به فرد میباشد و برخی از ویژگیهایش از سایر زبانها الهام گرفته شده است :

- پشتیبانی از برنامه نویسی  {{< tooltip text="همزمانی" note="Concurrency" >}} بصورت Built-in 
-  {{< tooltip text="گوروتین" note="Goroutine" >}} ها امکان اجرای همزمانی توابع را فراهم می کند و همچنین گوروتین ها واقعا خیلی سبک هستند به طوری که شما می توانید هزاران گوروتین را همزمان در سخت افزارهای مدرن بدون هیچ مشکل عملکردی اجرا کنید.
- {{< tooltip text="کانال" note="Channel" >}} ها برپایه مدل CSP می باشد که امکان همگام سازی داده ها بین گوروتین ها را فراهم می کند.
- پشتیبانی از تایپ های map و slice
- امکان پیاده سازی {{< tooltip text="پلی مورفیسم" note="Polymorphism" >}} با استفاده از {{< tooltip text="اینترفیس" note="Interface" >}} ها
- پشتیبانی از برنامهنویسی  {{< tooltip text="همزمانی" note="Concurrency" >}} بصورت Built-in 
-  {{< tooltip text="گوروتین" note="Goroutine" >}}ها امکان اجرای همزمانی توابع را فراهم میکند و همچنین گوروتینها واقعا خیلی سبک هستند به طوری که شما میتوانید هزاران گوروتین را همزمان در سخت افزارهای مدرن بدون هیچ مشکل عملکردی اجرا کنید.
- {{< tooltip text="کانال" note="Channel" >}}ها برپایه مدل CSP میباشد که امکان همگام سازی دادهها بین گوروتینها را فراهم میکند.
- پشتیبانی از تایپهای map و slice
- امکان پیاده سازی {{< tooltip text="پلی مورفیسم" note="Polymorphism" >}} با استفاده از {{< tooltip text="اینترفیس" note="Interface" >}}ها
- پوینترها
- {{< tooltip text="کلوژر" note="Closures" >}} توابع (یک تابع معمولی که داخل یک تابع دیگر به عنوان {{< tooltip text="بازگشت" note="return" >}} تعریف می شود)
- {{< tooltip text="کلوژر" note="Closures" >}} توابع (یک تابع معمولی که داخل یک تابع دیگر به عنوان {{< tooltip text="بازگشت" note="return" >}} تعریف میشود)
- {{< tooltip text="متدها" note="Method" >}}
- امکان defer برای تعویق فراخوانی یک تابع
- قابلیت {{< tooltip text="جاسازی" note="Embedding" >}} تایپ ها
- قابلیت {{< tooltip text="جاسازی" note="Embedding" >}} تایپها
- ایمنی حافظه در زبان گو
- قابلیت {{< tooltip text="زباله جمع کن" note="Garbage Collector" >}} خودکار
- سازگاری کامل با انواع پلتفرم ها نظیر [linux, windows, mac, AIX, android, freeBSD] جهت توسعه و کامپایل
- امکان Cross-compile با این امکان می توانید در هر پلتفرمی برای سایر پلتفرم ها کامپایل کنید
- سازگاری کامل با انواع پلتفرمها نظیر [linux, windows, mac, AIX, android, freeBSD] جهت توسعه و کامپایل
- امکان Cross-compile با این امکان میتوانید در هر پلتفرمی برای سایر پلتفرمها کامپایل کنید
- پشتیبانی از {{< tooltip text="جنریک" note="Generics" >}} یا تایپ پارامتر (از نسخه ۱.۱۸)
- تست نویسی آسان
- {{< tooltip text="اینترفیس" note="Interface" >}} و {{< tooltip text="رفلکشن" note="Reflection" >}}
- زبان گو برخلاف زبان هایی نظیر c, cpp یا java نیاز به نقطه ویرگول (Semicolons) ندارد و به نسبت زبان هایی که معرفی کردیم پرانتز کمتری استفاده می کند و همچنین ظاهر سینتکس گو خیلی خواناتر و راحتر می باشد.
- زبان گو برخلاف زبانهایی نظیر c, cpp یا java نیاز به نقطه ویرگول (Semicolons) ندارد و به نسبت زبانهایی که معرفی کردیم پرانتز کمتری استفاده میکند و همچنین ظاهر سینتکس گو خیلی خواناتر و راحت‌تر میباشد.


علاوه بر ویژگی های که در بالا معرفی کردیم یک سری نکات برجسته در خصوص زبان گو وجود دارد که به شرح زیر می باشند:
علاوه بر ویژگی‌هایی که در بالا معرفی کردیم یک سری نکات برجسته در خصوص زبان گو وجود دارد که به شرح زیر میباشند:

- سینتکس این زبان به گونه ای ساده و تمیز طراحی شده که فرآیند یادگیری آن را آسان تر می کند و از همه مهم تر توسعه پروژه های مقیاس پذیر {{< tooltip text="مقیاس پذیر" note="Scale up" >}} با زبان گو به دلیل سادگی و آشکار بودن مفاهیم خیلی سریعتر صورت میگیرد.
- سینتکس این زبان به گونهای ساده و تمیز طراحی شده که فرآیند یادگیری آن را آسانتر میکند و از همه مهمتر توسعه پروژههای مقیاسپذیر {{< tooltip text="مقیاسپذیر" note="Scale up" >}} با زبان گو به دلیل سادگی و آشکار بودن مفاهیم خیلی سریع‌تر صورت می‌گیرد.

- زبان گو دارای تعداد زیادی {{< tooltip text="پکیج های استاندارد" note="Standard packages" >}} و کاربردی جهت توسعه می باشد که همه این پکیج ها در انواع پلتفرم ها جهت توسعه قابل استفاده است.
- زبان گو دارای تعداد زیادی {{< tooltip text="پکیجهای استاندارد" note="Standard packages" >}} و کاربردی جهت توسعه میباشد که همه این پکیجها در انواع پلتفرمها جهت توسعه قابل استفاده است.

- زبان گو دارای یک جامعه بزرگ از توسعه دهندگان و انجمن های فعال می باشد که خیلی سریع می توانید به پاسخ سوالات خود برسید.
- زبان گو دارای یک جامعه بزرگ از توسعه دهندگان و انجمنهای فعال میباشد که خیلی سریع میتوانید به پاسخ سوالات خود برسید.


{{< hint info >}}
برنامه نویس های زبان گو را {{< tooltip text="گوفر" note="Gopher" >}} صدا میزنند.
برنامه نویسهای زبان گو را {{< tooltip text="گوفر" note="Gopher" >}} صدا می‌زنند.
گوفر نام یک نوع موش و همچنین mascot گولنگ است.
{{< /hint >}}
14 changes: 7 additions & 7 deletions content/installation.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ type: chapter
weight: 5
---

جهت نصب زبان گو برروی سیستم عامل مورد نظر خود در ابتدا باید نسخه مناسب با پلت فرم خود را [دانلود](https://go.dev/dl/) کنید.
جهت نصب زبان گو بر روی سیستم عامل مورد نظر خود در ابتدا باید نسخه مناسب با پلتفرم خود را [دانلود](https://go.dev/dl/) کنید.

![Featured downloads golang](../assets/img/content/installation/1.png)

Expand All @@ -25,10 +25,10 @@ export PATH=$PATH:/usr/local/go/bin
```

{{< hint info >}}
بهتر است برای اینکه هر بار ترمینال را باز میکنید و فایل go توسط shell شناخته شود دستور فوق را به فایل `home/{user}/.profile/` اضافه کنید.
بهتر است برای اینکه هر بار ترمینال را باز می‌کنید و فایل go توسط shell شناخته شود دستور فوق را به فایل `home/{user}/.profile/` اضافه کنید.
{{< /hint >}}

4. جهت اطمینان از اینکه زبان گو بدرستی برروی سیستم عامل شما نصب شده است دستور زیر را داخل ترمینال بزنید.
4. جهت اطمینان از اینکه زبان گو بدرستی بر روی سیستم عامل شما نصب شده است دستور زیر را داخل ترمینال بزنید.
```shell
$ go version
```
Expand All @@ -39,7 +39,7 @@ $ go version
1. در [اینجا](https://go.dev/dl/) نسخه مرتبط با ویندوز خود را دانلود کنید.
2. سپس فایل **go1.xx.x.windows-{arch}.msi** را اجرا کنید.
3. مراحل نصب را بصورت پیش فرض طی کنید تا زبان گو برروی ویندوز نصب شود.
4. پس از نصب جهت اطمینان از نصب بود زبان گو مراحل زیر را انجام دهید:
4. پس از نصب، جهت اطمینان از نصب بودن زبان گو، مراحل زیر را انجام دهید:
- وارد منو استارت شوید.
- در منو استارت کلمه **cmd** را جستجو کنید و سپس آن را اجرا کنید.
- داخل {{< tooltip text="خط فرمان" note="Command prompt" >}} دستور زیر را بزنید تا از نصب بودن زبان گو اطمینان حاصل فرمایید.
Expand All @@ -62,7 +62,7 @@ Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManage
choco install golang
```

3. جهت اطمینان از اینکه زبان گو بدرستی برروی سیستم عامل شما نصب شده است دستور زیر را داخل ترمینال بزنید.
3. جهت اطمینان از اینکه زبان گو بدرستی بر روی سیستم عامل شما نصب شده است دستور زیر را داخل ترمینال بزنید.


```shell
Expand All @@ -82,7 +82,7 @@ $ go version
2. سپس فایل **go1.xx.x.darwin-{arch}.pkg** را اجرا کنید.
3. مراحل نصب را بصورت پیش فرض طی کنید تا زبان گو برروی مکینتاش نصب شود.
4. پس از نصب اگر ترمینال باز بود آن را کامل ببنید تا تغییرات صورت گیرد.
5. جهت اطمینان از اینکه زبان گو بدرستی برروی سیستم عامل شما نصب شده است دستور زیر را داخل ترمینال بزنید.
5. جهت اطمینان از اینکه زبان گو بدرستی بر روی سیستم عامل شما نصب شده است دستور زیر را داخل ترمینال بزنید.

```shell
$ go version
Expand All @@ -102,7 +102,7 @@ $ /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/
$ brew update && brew install golang
```

3. جهت اطمینان از اینکه زبان گو بدرستی برروی سیستم عامل شما نصب شده است دستور زیر را داخل ترمینال بزنید.
3. جهت اطمینان از اینکه زبان گو بدرستی بر روی سیستم عامل شما نصب شده است دستور زیر را داخل ترمینال بزنید.


```shell
Expand Down
Loading

0 comments on commit d47931a

Please sign in to comment.