Skip to content

Commit 0f9ac14

Browse files
authored
Merge pull request astaxie#999 from behzadim/master
Persian Translation
2 parents 37c0281 + 80f2278 commit 0f9ac14

File tree

376 files changed

+4488
-1
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

376 files changed

+4488
-1
lines changed

.gitignore

+2-1
Original file line numberDiff line numberDiff line change
@@ -8,4 +8,5 @@ _book
88
.DS_Store
99
.gitignore
1010
.vscode
11-
.git
11+
.git
12+
/fa/working

LANGS.md

+1
Original file line numberDiff line numberDiff line change
@@ -8,3 +8,4 @@
88
* [বাংলা](bn/)
99
* [日本語](ja/)
1010
* [中文](zh/)
11+
* [پارسی](fa/)

README.md

+1
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
* [বাংলা](bn/preface.md)
1111
* [日本語](ja/preface.md)
1212
* [中文](zh/preface.md)
13+
* [پارسی](fa/preface.md)
1314

1415
# Donate
1516

fa/01.0.md

+24
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
<div dir="rtl">
2+
3+
# ۱- پیکربندی محیط Go
4+
5+
به دنیای Go خوش آمدید. وقت آن است که در این دنیای جدید کمی به گشت و گذار بپردازیم!
6+
7+
Go یکی از زبان های برنامه نویسی رایج می باشد که از قابلیت کامپایل سریع، سیستم های همزمان، و گاربیج کالکتور برخوردار است و همچنین دارای مزایای زیر می باشد:
8+
9+
- یک پروژه بزرگ را تنها در چند ثانیه کامپایل می کند.
10+
- یک مدل توسعه ی نرم افزاری فراهم می کند که استدلال در آن آسان است و بدین ترتیب از مشکلاتی که در هدر فایل های سبک C وجود داشت، جلوگیری می کند.
11+
- یک زبان ایستا می باشد که در سیستم خود از داشتن سطوح مختلف خودداری کرده است، بنابراین نیازی نیست که کاربران زمان خود را برای درک ارتباط بین نوع ها سپری کنند. این زبان بیشتر شبیه یک زبان شیءگرای سبک می باشد.
12+
- این زبان مجهز به GC یا گاربیج کالکتور می باشد و از ویژگی های همزمانی و ارتباط برخوردار می باشد.
13+
- این زبان برای کامپیوترهایی که به چند هسته مجهز هستند، طراحی شده است.
14+
15+
Go یک زبان برنامه نویسی کامپایلری است. در این زبان کارایی زبان های پویا یا مفسری در کنار امنیت زبان های ایستا هر دو با هم وجود دارند. این زبان برای کامپیوترهای مدرن و مجهز به چند هسته طراحی شده است که در شبکه هم کاربرد دارد. برای رسیدن به این اهداف، یک سری مسائل هستند که ذاتا باید در سطح انتخاب زبان برنامه نویسی حل شوند؛ برای مثال، یک سیستم سبک وزن کاملا رسا، یک مدل همروندی بومی، و یک گاربیج کالکتوری که به شدت تنظیم شده باشد. برای مدتی طولانی، هیچ بسته یا ابزاری برای رفع همه ی این مسائل معرفی نشد، تا زمانی که انگیزه ای برای توسعه ی زبان Go پدید آمد.
16+
17+
در این فصل، نحوه نصب و پیکربندی محیط توسعه ی Go را بیان خواهم کرد.
18+
19+
## لینک ها
20+
21+
- [فهرست مطالب](preface.md)
22+
- بخش بعدی: [نصب](01.1.md)
23+
24+
</div>

fa/01.1.md

+199
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,199 @@
1+
<div dir="rtl">
2+
3+
# ۱-۱ نصب
4+
5+
## سه روش برای نصب Go
6+
7+
راه های زیادی برای تنظیم محیز توسعه ی Go بر روی کامپیوتر وجود دارند، و شما می توانید از هر یک از این روش ها به دلخواه خود استفاده کنید. به طور کلی سه روش زیر، به عنوان رایج ترین روش ها شناخته می شوند:
8+
9+
- نصب پکیج های رسمی.
10+
- تیم توسعه ی Go پکیج های جامعی را برای ویندوز، لینوکس، مک و سایر سیستم عامل ها فراهم کرده است. این روش نصب، شاید ساده ترین روش ممکن برای شروع باشد. شما می توانید به [صفحه ی دانلود Golang](https://golang.org/dl/) مراجعه کرده و فایل نصبی مورد نظر خود را دانلود کنید.
11+
- نصب Go از طریق کد منبع.
12+
- این روش بین توسعه دهندگان سیستم های شبه یونیکس مرسوم و شناخته شده است.
13+
- استفاده از ابزارهای شخص سوم (third-party)
14+
- ابزارها و پکیج های زیادی برای نصب Go وجود دارند، که شما می توانید از آن ها استفاده کنید. برای مثال apt-get در اوبونتو و homebrew در مک.
15+
16+
اگر به هر دلیلی احتیاح دارید بیشتر از یک نسخه از Go را بر روی یک کامپیوتر داشته باشید، کافیست نگاهی به ابزار [GVM](https://github.com/moovweb/gvm) داشته باشید، که یکی از بهترین ابزارهای موجود برای این منظور می باشد. در غیر این صورت همیشه می توانید این کار را به صورت دستی هم انجام دهید.
17+
18+
## نصب از طریق کد منبع
19+
20+
برای کامپایل Go 1.5 به بالا، کافیست فقط یکی از ورژن های قبلی Go را بر روی سیستم خود داشته باشید، چرا که Go از ویژگی بوت استرپ پشتیبانی می کند. یعنی برای کامپایل Go، به خود Go احتیاج دارید.
21+
22+
برای کامپایل Go 1.4 به پایین، شما به یک کامپایلر C بر روی سیستم خود احتیاج دارید. چراکه هنوز بخش هایی از Go به زبان C و همچنین اسمبلر AT&T نوشته شده است.
23+
24+
اگر از سیستم عامل مک استفاده می کنید و Xcode بر روی سیستم شما نصب است، شما کامپایلر مورد نیاز خود را دارید.
25+
26+
بر روی سیستم های شبه یونیکس، باید gcc یا کامپایلر مشابه نصب باشد. برای مثال، با استفاده از مدیر بسته apt-get (که در اوبونتو استفاده می شود)، کامپایلرهای مورد نیاز خود را به صورت زیر می توانید نصب کنید.
27+
28+
</div>
29+
30+
```sh
31+
sudo apt-get install gcc libc6-dev
32+
```
33+
34+
<div dir="rtl">
35+
36+
اگر از سیستم عامل ویندوز استفاده می کنید، برای نصب gcc ابتدا باید MinGW را نصب کنید. همچنین به خاطر بسپارید که بعد از اتمام مراحل نصب، محیط متغیرها را تنظیم کنید.( ***اگر از نسخه ۶۴ بیتی ویندوز استفاده می کنید، ورژن ۶۴ بیتی MinGW را نصب کنید.*** )
37+
38+
در این مرحله، دستورات زیر را اجرا کنید تا از کد منبع Go یک کلون گرفته و آن را کامپایل نمایید.( ***با این دستور، سورس کد مورد نیاز در دایرکتوری جاری شما کلون می شود. قبل از اینکه ادامه دهید، مسیر کاری خود را تغییر دهید. این امر ممکن است کمی زمان ببرد.*** )
39+
40+
</div>
41+
42+
git clone https://go.googlesource.com/go
43+
cd go/src
44+
./all.bash
45+
46+
<div dir="rtl">
47+
48+
اگر مراحل نصب با موفقیت انجام شده باشد، با پیغام "ALL TESTS PASSED." مواجه خواهید شد که به معنای موفق بودن تست ها می باشد.
49+
50+
51+
بر روی ویندوز، همین کار را می توان با اجرای `all.bat` انجام داد.
52+
53+
54+
اگر از ویندوز استفاده می کنید، پکیج های نصب به صورت خودکار تنظیمات لازم در محیط متغیرهای شما را اعمال می کنند. در سیستم های شبه یونیکس، احتیاج است که این متغیرها به صورت دستی تنظیم شوند که در ادامه نحوه تنظیم آن ها را مشاهده خواهید کرد. ( ***اگر ورژن Go شما بیشتر از ۱.۰ باشد، احتیاجی به تنظیم متغیر $GOBIN نمی باشد، و در واقع این متغیر به صورت خودکار به مسیر $GOROOT/bin مرتبط می شود. در فصل بعد بیشتر به این موضوع می پردازیم.*** )
55+
56+
</div>
57+
58+
export GOROOT=$HOME/go
59+
export GOBIN=$GOROOT/bin
60+
export PATH=$PATH:$GOROOT/bin
61+
62+
<div dir="rtl">
63+
64+
اگر بر روی صفحه نمایش خود، پیغام زیر را مشاهده می کنید، یعنی همه چیز به درستی تنظیم شده است.
65+
66+
![](images/1.1.mac.png?raw=true)
67+
68+
شکل ۱.۱ اطلاعات سیستم بعد از کامپایل سورس کد
69+
70+
اگر این اطلاعات را درباره Go مشاهده کردید، بدین معناست که شما موفق شده اید Go را به درستی بر روی کامپیوتر خود نصب کنید. اگر پیغام "no such command" یا به عبارتی "چنین دستوری وجود ندارد" را دریافت کردید، متغیر $PATH خود را بررسی کنید و مطمئن شوید که مسیر نصبی Go را در بر دارد.
71+
72+
## استفاده از بسته های نصبی استاندارد
73+
74+
Go برای همه سیستم عامل هایی که از آن پشتیبانی می کنند، بسته هایی ارائه داده است که صرفا با یک کلیک نصب می شوند. این بسته ها به صورت پیش فرص در مسیر `/usr/local/go` (در ویندوز `c:\Go`) نصب می شوند. قطعا این مسیرها قابل تغییر است، اما توجه کنید که با تغییر مسیر، تغییرات لازم را در متغیرهای محیطی نیز به صورت دستی اعمال کنید.
75+
76+
### چگونه مطمئن شوید که سیستم عامل شما ۳۲ بیتی است یا ۶۴ بیتی؟
77+
78+
گام بعدی ما بسیار وابسته به نوع سیستم عامل شما دارد، بنابراین قبل از اینکه بسته های نصبی استاندارد را دانلود کنیم، باید آن را بررسی نماییم.
79+
80+
اگر از ویندوز استفاده می کنید، کلیدهای `Win+R` را فشار داده و ابزار دستوری را اجرا کنید. دستور `systeminfo` را تایپ کنید تا به شما اطلاعات لازم را درباره سیستم نمایش دهد. سپس خطی را پیدا کنید که در آن اطلاعات مربوط به نوع سیستم یا "system type" نمایش داده شده است. اگر عبارت "x64-based PC" را مشاهده کردید یعنی سیستم عامل شما ۶۴ بیتی، و در غیر این صورت ۳۲ بیتی می باشد.
81+
82+
اگر کاربر مک هستید، به شما پیشنهاد می کنیم که از بسته ۶۴ بیتی استفاده کنید، چراکه Go پشتیبانی از پردازنده های ۳۲ بیتی بر روی مک را متوقف کرده است.
83+
84+
کاربران لینوکس کافیست دستور `uname -a` را در ترمینال وارد کرده و اطلاعات مربوط به سیستم خود را مشاهده کنند. یک سیستم عامل ۶۴ بیتی اطلاعاتی مشابه با متن زیر خواهد داشت:
85+
86+
</div>
87+
88+
<توضیحات> x86_64 x86_64 x86_64 GNU/Linux
89+
// برخی سیستم ها مثلا اوبونتو ۱۰.۰۴ خروجی مشابه زیر خواهد داشت
90+
x86_64 GNU/Linux
91+
92+
<div dir="rtl">
93+
94+
این اطلاعات برای سیستم عامل های ۳۲ بیتی مشابه زیر خواهد بود:
95+
96+
</div>
97+
98+
<توضیحات> i686 i686 i386 GNU/Linux
99+
100+
<div dir="rtl">
101+
102+
### مک
103+
104+
به [صفحه دانلود](https://golang.org/dl/) رفته، بسته `go1.4.2.darwin-386.pkg` را برای سیستم عامل ۳۲ بیتی (آخرین نسخه، بسته ای برای پردازنده ۳۲ بیتی ندارد) و بسته `go1.8.3.darwin-amd64.pkg` را برای سیستم های ۶۴ بیتی انتخاب کنید. سپس مراحل نصب را صرفا با زدن "next" تا انتها دنبال کنید. بعد از اینکه مراحل نصب با موفقیت به پایان رسید، دایرکتوری `~/go/bin` به متغیر $PATH سیستم شما افزوده خواهد شد. حال کافیست یک ترمینال باز کرده و عبارت `go` را وارد کنید. خروجی حاصل از اجرای این دستور، چیزی مشابه با شکل ۱.۱ خواهد بود.
105+
106+
### لینوکس
107+
108+
به [صفحه دانلود](https://golang.org/dl/) رفته، بسته `go1.8.3.linux-386.tar.gz` را برای سیستم های ۳۲ بیتی و بسته `go1.8.3.linux-amd64.tar.gz` را برای سیستم های ۶۴ بیتی انتخاب و دانلود کنید. با فرض اینکه دایرکتوری مورد نظر شما برای نصب Go، مسیر `$GO_INSTALL_DIR` باشد، بسته دانلودی خود را در این مسیر با استفاده از دستور `tar zxvf go1.8.3.linux-amd64.tar.gz -C $GO_INSTALL_DIR`، از حالت فشرده خارج کنید. سپس $PATH خود را با استفاده از دستور `export PATH=$PATH:$GO_INSTALL_DIR/go/bin` تنظیم کنید. حال کافیست ترمینال خود را باز کرده و عبارت `go` را تایپ کنید. خروجی شما چیزی مشابه با شکل ۱.۱ خواهد بود.
109+
110+
### ویندوز
111+
112+
به [صفحه دانلود](https://golang.org/dl/) رفته، بسته `go1.8.3.windows-386.msi` را برای سیستم های ۳۲ بیتی و `go1.8.3.windows-amd64.msi` را برای سیستم های ۶۴ بیتی انتخاب و دانلود کنید. مراحل نصب را صرفا با کلیک بر روی "next" تا انتها ادامه دهید. بعد از اینکه نصب با موفقیت انجام شد، `c:/go/bin` به `path` افزوده می شود. حال کافیست یک پنجره دستور خطی باز کرده و عبارت `go` را تایپ کنید. خروجی شما چیزی مشابه با شکل ۱.۱ خواهد بود.
113+
114+
## استفاده از ابزارهای سوم شخص (third-party)
115+
116+
### GVM
117+
118+
GVM یک ابزار کنترل ورژن برای Go محسوب می شود که با استفاده از ابزارهای سوم شخص توسعه یافته است (مثل rvm برای ruby). استفاده از این ابزار بسیار آسان است. کافیست با استفاده از دستور زیر در ترمینال، ابتدا gvm را نصب کنید:
119+
120+
</div>
121+
122+
bash < <(curl -s -S -L https://raw.github.com/moovweb/gvm/master/binscripts/gvm-installer)
123+
124+
<div dir="rtl">
125+
126+
سپس با اجرای دستورات زیر، Go را نصب کنید:
127+
128+
</div>
129+
130+
gvm install go1.8.3
131+
gvm use go1.8.3
132+
133+
<div dir="rtl">
134+
135+
بعد از اینکه فرآیند نصب کامل شد، همه چیز برای استفاده آماده و مهیاست.
136+
137+
### apt-get
138+
139+
اوبونتو یکی از مشهورترین توزیع های لینوکسی محسوب می شود که برای دسکتاپ و سرور ارائه شده است. در این توزیع، از ابزار `apt-get` برای مدیریت بسته ها استفاده می شود، بنابراین با استفاده از دستورات زیر به راحتی می توان Go را بر روی اوبونتو نصب نمود.
140+
141+
</div>
142+
143+
sudo add-apt-repository ppa:gophers/go
144+
sudo apt-get update
145+
sudo apt-get install golang-go
146+
147+
<div dir="rtl">
148+
149+
### wget
150+
151+
</div>
152+
153+
```sh
154+
155+
wget https://storage.googleapis.com/golang/go1.8.3.linux-amd64.tar.gz
156+
sudo tar -xzf go1.8.3.linux-amd64.tar.gz -C /usr/local
157+
158+
# Go environment
159+
export GOROOT=/usr/local/go
160+
export GOBIN=$GOROOT/bin
161+
export PATH=$PATH:$GOBIN
162+
export GOPATH=$HOME/gopath
163+
```
164+
165+
<div dir="rtl">
166+
167+
از ورژن ۱.۸ به بعد، برای متغیر محیطی GOPATH یک مقدار پیش فرض در نظر گرفته شده است. اگر از سیستم های شبه یونیکس استفاده می کنید این متغیر مقدار `$HOME/go` و اگر کاربر ویندوز هستید مقدار `%USERPROFILE%/go` را در بر خواهد داشت.
168+
169+
### Homebrew
170+
171+
Homebrew ابزاری برای مدیریت نرم افزار می باشد که در مک به شکل رایج جهت مدیریت بسته ها مورد استفاده قرار می گیرد. برای نصب Go کافیست دستورات زیر را وارد کنید.
172+
173+
1. نصب Homebrew
174+
175+
</div>
176+
177+
```sh
178+
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
179+
```
180+
181+
<div dir="rtl">
182+
183+
2. نصب Go
184+
185+
</div>
186+
187+
```sh
188+
brew update && brew upgrade
189+
brew install go
190+
```
191+
<div dir="rtl">
192+
193+
## لینک‌ها
194+
195+
- [فهرست مطالب](preface.md)
196+
- بخش قبلی: [پیکربندی محیط Go](01.0.md)
197+
- بخش بعدی: [$GOPATH و فضای کاری](01.2.md)
198+
199+
</div>

fa/README.md

+57
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
<div dir="rtl">
2+
3+
***ساخت وب اپلیکیشن با استفاده از Golang***
4+
======================================
5+
6+
### اهداف
7+
8+
از آن جایی که من به توسعه اپلیکیشن در زمینه وب علاقمندم، این کتاب را در وقت آزادم به عنوان یک نسخه متن باز و رایگان تدارک دیدم. این امر الزاما به این معنا نیست که من در ساخت اپلیکیشن های وب مهارت خیلی خوبی دارم. صرفا علاقه داشتم که تجربیات خودم را در ساخت اپلیکیشن وب با استفاده از Go به اشتراک بگذارم.
9+
10+
- اگر در حال حاضر برای ساخت اپلیکیشن وب از زبان هایی مانند PHP/Python/Ruby استفاده می کنید، در این کتاب شما نحوه استفاده از زبان Go را خواهید آموخت.
11+
- اگر شما برنامه نویسی هستید که با زبان هایی مثل C/C++ کار می کنید، در این کتاب نحوه ی عملکرد وب را فرا خواهید گرفت.
12+
13+
اعتقاد من بر این است که هدف از مطالعه، اشتراک اطلاعات با دیگران است. در زندگی شخصی هر چقدر چیزی را با افراد بیشتری به اشتراک بگذارم، باعث خرسندی بیشتر من خواهد بود.
14+
15+
# دونیت
16+
17+
</div>
18+
19+
AliPay: <img src="../zh/images/alipay.png" alt="alipay" width="100" height="100">
20+
21+
English Donate:[donate](http://beego.me/donate)
22+
23+
<div dir="rtl">
24+
25+
## جامعه
26+
27+
</div>
28+
29+
QQ群:386056972
30+
31+
BBS:[http://gocn.io/](http://gocn.io/)
32+
33+
<div dir="rtl">
34+
35+
### تقدیر و تشکر
36+
37+
</div>
38+
39+
- [四月份平民 April Citizen](https://plus.google.com/110445767383269817959) (review code)
40+
- [洪瑞琦 Hong Ruiqi](https://github.com/hongruiqi) (review code)
41+
- [边 疆 BianJiang](https://github.com/border) (write the configurations about Vim and Emacs for Go development)
42+
- [欧林猫 Oling Cat](https://github.com/OlingCat)(review code)
43+
- [吴文磊 Wenlei Wu](mailto:[email protected])(provide some pictures)
44+
- [北极星 Polaris](https://github.com/polaris1119)(review whole book)
45+
- [雨 痕 Rain Trail](https://github.com/qyuhen)(review chapter 2 and 3)
46+
47+
<div dir="rtl">
48+
49+
### مجوز
50+
51+
لازم است بدانید که این کتاب تحت مجوز [CC BY-SA 3.0 License](http://creativecommons.org/licenses/by-sa/3.0/) قرار دارد،
52+
و همچنین کدهای استفاده شده در این کتاب تحت مجوز [BSD 3-Clause License](<https://github.com/astaxie/build-web-application-with-golang/blob/master/LICENSE.md>) می باشند، مگر در مواردی که مجوز آن ذکر شده است.
53+
54+
### شروع کنید
55+
56+
[فهرست مطالب](./preface.md)
57+
</div>

fa/code/readme.md

+7
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
## Workspace setup.
2+
3+
To avoid workspace issues and be able to develop from any folder within this path,
4+
set the environment variable `GOPATH` to the path of this directory.
5+
6+
More info:
7+
- [GOPATH documentation](http://golang.org/doc/code.html#GOPATH)

0 commit comments

Comments
 (0)