Gopher Academy
3.34K subscribers
920 photos
40 videos
280 files
2.02K links
🕸 Gopher Academy

🔷interview golang
https://github.com/mrbardia72/Go-Interview-Questions-And-Answers

حمایت مالی:
https://www.coffeete.ir/mrbardia72

ادمین:
@mrbardia72
Download Telegram
Gopher Academy pinned «🎯 درود دوستان بنده قصد دارم توی ریپوی زیر از تجربیاتی که دیگران توی مصاحبه گولنگ داشتن رو جمع آوری کنم.🎯 🎯 پس دوستانی که مصاحبه گولنگ داشتن برامون توی ریپوی زیر pull request بزنن تا به اشتراک بزاریم برای سایر افراد ی که وارد این حوزه میشن🎯 🙏🏿❤️🙏🏿 🔗 ht…»
🤔🎯new() vs make()🎯🤔

🔹تابع make یک توابع داخلی است (special built-in function) که برای مقداردهی اولیه Slices ها ، map ها و channel ها استفاده می شود.
🔹توجه داشته باشید که از make فقط می توان برای مقداردهی اولیه Slices ها ، map ها و channel ها استفاده کرد و برخلاف new ، این make اشاره گر را بر نمی گرداند.


🔰 @gopher_academy
الو، Docker؟ (ارتباط GoLang با api داکر)
.
https://vrgl.ir/Qm3pE
.

🔰 @gopher_academy
🎯ویژگی های شی گرایی در گولنگ 🎯

🔹Struct
🔹Method
🔹Embedding
🔹Encapsulation
🔹Interface
🔹Inheritance
🔹Polymorphism
🔹Conclusion


🔰 @gopher_academy
🔴آکادمی علی‌بابا، در سری برنامه‌‌های علی‌بابا تاک، به بیان چالش‌ها و تجربیات علی‌بابایی‌ها می‌پردازه. این بار، رضا کمالی‌فرد، از تیم فنی شرکت سفر‌های علی‌بابا، در مورد سیستم ریت لیمیتر و پیاده‌سازی اون در علی‌بابا صحبت می‌کنه.

🔴علی‌بابا بزرگ‌ترین ارائه‌دهنده خدمات گردشگری در ایران هست و ای پی آی ‌هایی داره که در اون‌ها اطلاعات مربوط به بلیت‌های سفر رو نگه می‌داره. توی این تاک، داستان دوباره ساختن ملوان زبل،ریت لیمیتر علی بابا، که به جنگ بات‌ها و درخواست‌های مخربی که به سمت این ای پی آی‌ها میان، رفته و اون‌ها رو از سر راه برداشته، بیان میشه.
https://m.youtube.com/watch?v=y6y7h8nYDj8


🔰 @gopher_academy
🔸استخدام Back-end Developer(Go Lang) در شرکت boomerang
🔹تمام‌وقت
🔹ارشد (Senior)

🔗 https://quera.ir/r/G5qHpd

🔰 @gopher_academy
Clean architecture #نشست دهم در گولنگ

محمد صباغ
پنجشنبه ۹ بهمن ساعت ۱۹ از
یوتوب:
https://youtu.be/bQepxgcBdTI

🔰 @gopher_academy
Gopher Academy
🎯ویژگی های شی گرایی در گولنگ 🎯 🔹Struct 🔹Method 🔹Embedding 🔹Encapsulation 🔹Interface 🔹Inheritance 🔹Polymorphism 🔹Conclusion 🔰 @gopher_academy
Structs
ساختار یا Structures برای نشان دادن مجموعه ای از فیلد ها به کار میروند
با استفاده از این دستور می توانید مجموعه ای از فیلد های با تایپ مختلف ایجاد کنید

🔰 @gopher_academy
Gopher Academy
🎯ویژگی های شی گرایی در گولنگ 🎯 🔹Struct 🔹Method 🔹Embedding 🔹Encapsulation 🔹Interface 🔹Inheritance 🔹Polymorphism 🔹Conclusion 🔰 @gopher_academy
Methods
در زبان گو توابع می توانند انواع تابپی ها مختلفی رو بگیرین و بسته به نیاز خروجی متفاوتی رو برامون نتیجه بدن

🔰 @gopher_academy
د GOPATH چیست؟

درواقع GOPATH یه متغیر محیطی و یک environment variable است.
در واقع GOPATH مسیر مشخص workspace ما داخل environment variable است.

🔰 @gopher_academy
مسیر جاری GOPATH کجا است؟
go env

اگر go env را داخل command line وارد کنیم و سپس اینتر بزنیم، environment variable های Go را به ما نشان میدهد و از آنجا میتوانیم مسیر جاری GOPATH را مشاهده کنیم.


🔰 @gopher_academy
ساختار GOPATH به چه صورت است؟

🔹برای نگه داشتن کدهای منبع، دایرکتوری سورس (src) را داریم.

🔹برای نگه داشتن پکیج های آبجکت یا پکیج هایی که اشیاء هستند، دایرکتوری پکیج (pkg) را داریم.(زمانی که کدها را نصب می کنیم، پکیج های اشیاء ( واردات ) بصورت خودکار در دایرکتوری pkg ذخیره می شوند)

🔹برای نگه داشتن کامندهای کامپایل شده و فایل های باینری دایرکتوری باینری (bin) را داریم. (زمانی که کدها را نصب می کنیم، کدها بصورت خودکار در دایرکتوری bin ذخیره می شوند)

🔰 @gopher_academy
Gopher Academy
🎯ویژگی های شی گرایی در گولنگ 🎯 🔹Struct 🔹Method 🔹Embedding 🔹Encapsulation 🔹Interface 🔹Inheritance 🔹Polymorphism 🔹Conclusion 🔰 @gopher_academy
Embedding
تعریف یک استراکت در استراکت دیگر
مانند نمونه فوق
نموه ای ااز این حالت هست

🔰 @gopher_academy
Gopher Academy
🎯ویژگی های شی گرایی در گولنگ 🎯 🔹Struct 🔹Method 🔹Embedding 🔹Encapsulation 🔹Interface 🔹Inheritance 🔹Polymorphism 🔹Conclusion 🔰 @gopher_academy
Encapsulation
متد ها یا استراکت های که با نام کوچک ایجاد می شوند در همان فایل یا پکیج قابل دسترس هستن در پکبج های دیگر قابل دسترس نیستن
این قابلیت Encapsulation

🔰 @gopher_academy
ابزار هایی برای زبان فارسی

🔹لینک کتابخانه در گیتهاب👇🏻
🔺github.com/mavihq/persian
🔹طریقه نصب
🔺go get github.com/mavihq/persian
🔹متد ها
🔺.ToPersianDigits
🔹تمامی اعداد در رشته رو به اعداد فارسی تبدیل میکند

🔺persian.ToPersianDigits("123salam456")
=> "۱۲۳salam۴۵۶"
.ToPersianDigitsFromInt
🔹تمامی اعداد در رشته رو به اعداد فارسی تبدیل میکند

🔺persian.ToPersianDigitsFromInt(123)
=> "۱۲۳"
.ToEnglishDigits
🔹تمامی اعداد در رشته رو به اعداد انگلیسی تبدیل میکند

🔺persian.ToEnglishDigits("۱۲۳salam۴۵۶")
=> "123salam456"
.OnlyEnglishNumbers
🔹در متن تمامی حروف را حذف کرده و فقط اعداد انگلیسی میمانند.

🔺persian.OnlyEnglishNumbers("123salam۴۵۶")
=> "123"
.OnlyPersianNumbers
🔹در متن تمامی حروف را حذف کرده و فقط اعداد فارسی میمانند.

🔺persian.OnlyPersianNumbers("123salam۴۵۶")
=> "۴۵۶"
.SwitchToPersianKey
🔹تمامی حروف در رشته رو به معادل فارسی شان تبدیل میکند

🔺persian.SwitchToPersianKey("sghl o,fd ? o,fl llk,k")
=> "سلام خوبی ؟ خوبم ممنون"
.SwitchToEnglishKey
🔹تمامی حروف در رشته رو به معادل انگلیسی شان تبدیل میکند

🔺persian.SwitchToEnglishKey("اثغ صاشفس عح ؟")
=> "hey whats up ?"
.Currency
🔹اعداد در رشته را به صورت نوشتاری پول تبدیل میکند.

🔺persian.Currency("1234567")
=> "۱،۲۳۴،۵۶۷"
.Toman
🔹اعداد در رشته را به صورت نوشتاری پول با پسوند تومان تبدیل میکند.

🔺persian.Toman("1234567")
=> "۱،۲۳۴،۵۶۷ تومان"
.Rial
🔹اعداد در رشته را به صورت نوشتاری پول با پسوند ریال تبدیل میکند.

🔺persian.Rial("1234567")
=> "۱،۲۳۴،۵۶۷ ﷼"
.FixArabic
🔹کاراکتر های عربی در رشته را به معادل فارسی شان تبدیل میکند.

🔺persian.FixArabic("کوروش")


🔰 @gopher_academy
چگونگی استفاد از پکیج ها
🔹وقتی که یک اسم برای پکیج انتخاب می کنیم، در ذهنتون باشه که هر جایی که بخواهیم اون رو صدا بزنیم باید نام همون پکیج رو صدا بزنیم که بتونیم توابع اون پکیج رو اجرا کنیم و یا از اون استفاده کنیم.

🔹سعی کنید نام پکیج های شما مختلف باشند. یعنی مشابه هم نباشند. حتی با کتابخانه های استاندارد هم تفاوت داشته باشند که هیچوقت دچار مشکل نشوید

🔰 @gopher_academy
Package main
🔹برای کامپایل کردن کدها ما مجبوریم که این پکیج رو تعریف کنیم و به اون نیاز داریم. داخل package main یک function وجود داره به نام function main که اون هم نیاز هست که 100% تعریف بشه و تا تعریف نشه نمیتونیم کدمون رو کامپایل کنیم.

🔹بنابراین در نظر داشته باشید که کدهای اصلی ما در package main قرار می گیرند و بقیه کدها می تونن یه جور کتابخونه باشن که ایمپورت میشن داخل این پکیج.


🔰 @gopher_academy