Gopher Academy
3.31K subscribers
911 photos
40 videos
279 files
1.94K links
🕸 Gopher Academy

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

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

ادمین:
@mrbardia72

ادمین تبلیغات:
@labdon_ads
Download Telegram
زبان برنامه‌نویسی Go (گولنگ) دارای ۲۶ نوع داده (Type) است که به دسته‌های مختلفی تقسیم می‌شوند. این انواع داده‌ها شامل انواع پایه‌ای، ترکیبی، مرجع و سایر انواع خاص هستند. در ادامه، این ۲۶ نوع داده را به تفکیک دسته‌بندی‌های اصلی بررسی می‌کنیم:

---

### ۱. انواع پایه‌ای (Basic Types):
این انواع داده‌های ساده و اولیه هستند که برای ذخیره مقادیر اساسی مانند اعداد، کاراکترها و مقادیر بولی استفاده می‌شوند.

1. **bool**: نوع داده بولی (true یا false).
2. **string**: نوع داده رشته‌ای (دنباله‌ای از کارint **int**: نوع داده عدد صحیح با اندازه وابسته به پلتفرم (معمولاً ۳۲ یا int8**int8**: نوع داده عدد صحیح ۸ بint16*int16**: نوع داده عدد صحیح ۱۶ بint32*int32**: نوع داده عدد صحیح ۳۲ بint64*int64**: نوع داده عدد صحیح ۶۴ بuint**uint**: نوع داده عدد صحیح بدون علامت با اندازه وابسته به پلتuint8*uint8**: نوع داده عدد صحیح بدون علامت ۸ بیuint16uint16**: نوع داده عدد صحیح بدون علامت ۱۶ بیuint32uint32**: نوع داده عدد صحیح بدون علامت ۳۲ بیuint64uint64**: نوع داده عدد صحیح uintptr۶۴ بیتی.
13. **uintptr**: نوع داده عدد صحیح بدون علامت براbyteآدرس‌هایbyte14. **byte**: معادل uint8، برایruneاده‌های rune15. **rune**: معادل int32، برای ذخfloat32های Ufloat32 **float32**: نfloat64اری ۳float64 **float64**: نوع داده اعشاری ۶complex64*complex64**: نوع داده مختلط با بخش‌های واقعی و موهومی float32.
19. **complex128**: نوع داده مختلط با بخش‌های واقعی و موهومی float64.

---

### ۲. انواع ترکیبی (Composite Types):
این انواع داده‌هایی هستند که از ترکیب چندین نوع داده پایه‌ای یا آرایه (Array)رایه (Array)0. آرایه (Array): مجموعه‌ای از عناصر با نوع یکسان و اندازه ثابت.
   - مثال: [3]int (آربرش (Slice)ز نوع int).

21. برش (Slice): مجموعه‌ای از عناصر با نوع یکسان و اندازه پویا.
   - مثال: []int (برش از نوع int).

22. ساختار (Struct): مجموعه‌ای از فیلدها با انواع مختلف.
   - مثال:
   
     type Person struct {
         Name string
         Age  int
     }
    

23. نقشه (Map): مجموعه‌ای از جفت‌های کلید-مقدار.
   - مثال: map[string]int (نقشه با کلیدهای string و مقادیر int).

---

### ۳. انواع مرجع (Reference Types):
این انواع داده‌هایی هاشاره‌گر (Pointer)Pointer)می‌کنند.

24. اشاره‌گر (Pointer): اشاره‌گر به یک مکان در حافظه.
   - مثال: *int (اشاکانال (Channel)ز نوع int).

25. کانال (Channel): برای ارتباط بین گوروتین‌ها (goroutines).
   - مثال: chan int (کاناانواع خاص (Special Types)int).

---

### ۴. انواع خاص (Special Types):
این انواع داده‌هایی هتابع (Function)unction)ستفاده می‌شوند.

26. تابع (Function): نوع داده‌ای که یک تابع را نشان می‌دهد.
   - مثال: func(int, int) int (تابعی که دو پارامتر int می‌گیرد و یک int برمی‌گرداند).

---

### جمع‌بندی:
زبان Go دارای انواع پایه‌ای پایه‌ایی زیر تقسیم می‌شوند:
- انواع پایه‌ای: شامل bool, string, انواع عددی (int, float, complex), byte, rune و uintptr.
- انواع ترکیبی: شانواع مرجعبرش‌ها، ساختارها و نانواع خاصنواع خاص شامل اشاره‌گرها و کانال‌ها.
- انواع خاص: شامل توابع.

این انواع داده‌ها به شما امکان می‌دهند تا برنامه‌های Go را به صورت کارآمد و ساختار یافته بنویسید. هر یک از این انواع ویژگی‌ها و کاربردهای خاص خود را دارند که بسته به نیاز برنامه‌نویسی می‌توانید از آنها استفاده کنید.


👑 @gopher_academy
🔥4👍3🍾1
🔵 عنوان مقاله
Testing Concurrent Code with testing/synctest

🟢 خلاصه مقاله:
مقاله‌ای که مورد نظر شماست، به بررسی یکی از ویژگی‌های قدرتمند زبان برنامه‌نویسی Go، یعنی همزمانی (Concurrency) پرداخته است. نویسنده بیان می‌کند که با وجود قدرت همزمانی در Go، تست کردن برنامه‌هایی که به شدت بر همزمانی تکیه دارند می‌تواند پیچیده باشد. در نسخه 1.24، Go یک بسته جدید و آزمایشی معرفی کرده است که مخصوص تست کد‌های مرتبط با زمان و همزمانی است. این بسته جدید هنوز در مرحله آزمایشی قرار دارد و فعال‌سازی آن نیازمند تنظیم متغیر محیطی است. تیم توسعه‌دهنده Go از کاربران می‌خواهد که از این بسته استفاده کرده و نظرات خود را ارسال نمایند تا بتوانند بهبودهای لازم را در نسخه‌های آتی اعمال کنند.

🟣لینک مقاله:
https://golangweekly.com/link/166110/web


👑 @gopher_academy
👍1🍾1
🔵 عنوان مقاله
Extensible Wasm Applications with Go

🟢 خلاصه مقاله:
قابلیت ساختن یک WASI و صدور عملکردهای Go به Wasm در نسخه 1.24 Go، پیشرفت قابل توجهی را نشان می‌دهد و توانایی‌های سامانه‌سازی وب با استفاده از Go را بهبود می‌بخشد. این ویژگی‌ها به توسعه‌دهندگان امکان می‌دهد که برنامه‌های کاربردی Wasm مبتنی بر Go را با قابلیت‌ها و تنوع بیشتری بسازند. این پیشرفت‌ها تجارب کاربری را بهبود بخشیده و گسترش دامنه استفاده‌های ممکن با WebAssembly در محیط‌های مختلف را فراهم می‌کنند، از برنامه‌های تحت وب گرفته تا برنامه‌های سخت‌افزاری و اینترنت اشیاء. این تغییرات نه تنها برنامه‌های کاربردی Go را قوی‌تر می‌کند، بلکه استانداردسازی‌های جدیدی را در زمینه توسعه نرم‌افزار معرفی می‌کند و توسعه‌دهندگان را قادر می‌سازد که به طور موثرتری با سایر زبان‌ها و پلتفرم‌ها همکاری کنند.

🟣لینک مقاله:
https://golangweekly.com/link/166115/web


👑 @gopher_academy
👍1🕊1
🔵 عنوان مقاله
godoc.nvim: Fuzzy Search Go's Docs from Neovim

🟢 خلاصه مقاله:
مقاله مورد بحث به ارائه یک ویژگی جدید در ویرایشگر Neovim می‌پردازد که امکان جستجو و مرور سریع در مستندات زبان برنامه‌نویسی Go را فراهم می‌آورد. این ویژگی به توسعه‌دهندگان اجازه می‌دهد که بدون ترک محیط Neovim به اطلاعات مورد نیاز خود دسترسی پیدا کنند، که می‌تواند به بهبود بهره‌وری و کارایی کمک کند. روند استفاده از این ابزار نیز بسیار ساده است؛ کاربران تنها با استفاده از برخی دستورات خاص می‌توانند جستجو در مستندات را آغاز کنند و سپس نتایج را درون همان ویرایشگر مشاهده نمایند. این امکان جدید در Neovim به طور موثری پیوستگی و یکپارچگی محیط توسعه را افزایش داده و تجربه‌ی کاربری توسعه‌دهندگان را تا حد زیادی بهبود می‌بخشد.

🟣لینک مقاله:
https://golangweekly.com/link/166134/web


👑 @gopher_academy
2🔥1🎉1
🔵 عنوان مقاله
Calling Rust from 'Cursed' Go

🟢 خلاصه مقاله:
مکانیزم Cgo در زبان برنامه‌نویسی Go برای فراخوانی توابع خارجی/بیگانه وجود دارد اما عملکرد آن اغلب نگرانی‌هایی را ایجاد می‌کند. حالا purego، روشی در مرحله بتا وجود دارد که امکان انجام چنین فراخوانی‌هایی را بدون استفاده از Cgo فراهم می‌آورد.

(Note: Cgo is a tool provided by the Go programming language to allow Go code to interact with C libraries by using import "C". This enables Go programs to call C code and link with C libraries.)

🟣لینک مقاله:
https://golangweekly.com/link/166486/web


👑 @gopher_academy
👍2
Forwarded from 𓄂 Bardia 𓆃
👇 لیست کانال‌های مجموعه Labdon با به‌روزترین اخبار، آموزش‌ها و ترفندها در حوزه‌های مختلف:


🔵 گولنگ - همه چیز از اخبار تا نکات کلیدی
🔴 @gopher_academy

🔵 موقعیت شغلی های گولنگ چه ایرانی و چه خارجی
🔴 @gopher_job


🔵 انواع دیتابیس ها ردیس مانگو پستگرس و سایر دیتابیس ها
🔴 @database_academy
🟢 حوزه های تحت پوشش

(redis , mysql , postgresl , mongo ,etc)

🔵 دنیای بلاکچین و ارز های دیجیتال
🔴 @Blockchain_labdon
🟢 حوزه های تحت پوشش

(Bitcoin, Ethereum, Altcoins, Blockchain, Policy & Regulations, AI, NFTs, DeFi)


🔵 مهندسی نرم افزار
🔴 @software_labdon
🟢 حوزه های تحت پوشش

(Engineering, Architecture, Design, Testing, Security , QA)


🔵 لینوکس- از توزیع‌ها تا ترفندهای امنیتی
🔴 @linux_labdon
🟢 حوزه های تحت پوشش

(Linux Distributions, Open Source Software, Security Tips ,New Releases & Features)


🔵 دوآپـس - ابزارها و روندهای جدید
🔴 @devops_labdon
🟢 حوزه های تحت پوشش

(CI/CD Pipelines, Cloud Infrastructure, Containerization & Orchestration, Monitoring & Performance, Infrastructure as Code, Security in DevOps)

🕸 @labdon_academy
👍1
Forwarded from DevOps Labdon
🔵 عنوان مقاله
We switched from Java to Go and don't regret it (7 minute read)

🟢 خلاصه مقاله:
مقاله‌‌ای که به بررسی تجربه‌ی یک توسعه‌دهنده در طول بیش از دهه‌ای‌ که با زبان برنامه‌نویسی جاوا کار کرده و سپس به زبان Go تغییر مسیر داده است می‌پردازد. این فرد در جاوا، از ساخت برنامه‌های سوئینگ گرفته تا وب‌اپلیکیشن‌های سنتی و توسعه با استفاده از Spring Boot و Kotlin را تجربه کرده است. با این حال، برای پروژه‌‌های مبتنی بر کلود و کوبرنتیس به Go روی آورده‌اند، زیرا زمان راه‌اندازی سریع‌تر، مصرف منابع کمتر، و اکوسیستم سبک‌وزن این زبان مزیت‌های قابل توجهی را نشان داده است. این در حالی است که جاوا همچنان با چهارچوب‌های قوی و پشتیبانی فراگیر IDE خود، تاثیرگذار مانده است. در نهایت، تغییر به Go باعث تسریع روند توسعه شده و منابع را به شکل چشمگیری بهینه‌سازی کرده است.

🟣لینک مقاله:
https://glasskube.dev/blog/from-java-to-go/?utm_source=tldrdevops


👑 @DevOps_Labdon
👍4
🔵 عنوان مقاله
Gore 0.6: A Full Featured Go REPL Environment

🟢 خلاصه مقاله:
در این بیلد جدید، شما تمام ویژگی‌های مورد انتظار مانند ویرایش خط، تاریخچه، ورودی چند خطی، توانایی وارد کردن بسته‌ها (packages)، و همچنین تکمیل کد با قدرت گرفته از gopls را در اختیار دارید.

توضیح: "gopls" یک ابزار زبان سرور برای زبان برنامه‌نویسی Go است که تکمیل خودکار کد، شناسایی خطاها و سایر ویژگی‌های مفید هنگام کدنویسی را فراهم می‌کند.

🟣لینک مقاله:
https://golangweekly.com/link/166493/web


👑 @gopher_academy
👍3
🔵 عنوان مقاله
Go Clean Template

🟢 خلاصه مقاله:
الهام‌گرفته از اصول «کد تمیز» باب عمو (Uncle Bob)، این مخزن تلاش می‌کند تا یک «قالب معماری تمیز» برای ساختن سرویس‌های محرکه‌شده توسط زبان برنامه‌نویسی Go ارائه دهد که به خوبی سازمان‌دهی شده‌اند و به هم‌ریختگی تبدیل نخواهند شد. شما قضاوت کنید.

🟣لینک مقاله:
https://golangweekly.com/link/166495/web


👑 @gopher_academy
2👍2
🔵 عنوان مقاله
Faster Go Maps with Swiss Tables

🟢 خلاصه مقاله:
یکی از جدیدترین ویژگی‌های زبان برنامه‌نویسی گو، پیاده‌سازی بهبود یافته‌ی ساختمان داده نقشه (map) است که توسط یک الگوریتم جدول هش جدید به نام Swiss Table پشتیبانی می‌شود. این الگوریتم عملیات‌های روی نقشه‌ها را تا ۶۰ درصد در میکروبنچمارک‌ها (microbenchmarks، آزمایش‌های کوچک برای بررسی کارایی قطعات مجزا) سریع‌تر می‌کند، در حالی که میزان استفاده از حافظه را نیز کاهش می‌دهد. در اینجا نگاهی داریم به نحوه کارکرد آن.

🟣لینک مقاله:
https://golangweekly.com/link/166477/web


👑 @gopher_academy
👍4
تایپ‌اسکریپت رو دارن با Go باز نویسی می‌کنن و تا الان ۱۰ برابر سریع‌تر از قبل شده. چیزی که خیلی جالبه اینه که تیم توسعه‌اش با C# خیلی نزدیکه (چون پشت جفتشون مایکروسافته) و حتی سازنده‌اشونم یکیه. اما با این حال با وجود رقابتی که الان بین C# و Go هست، اومدن Go رو انتخاب کردن.

<Yasha/>

https://t.me/addlist/KpzXaiSpKENkMGM0
🔥18👍63🍾2🎉1🕊1
Forwarded from 𓄂 Bardia 𓆃
👍3🔥1🕊1
Forwarded from DevOps Labdon
🔵 عنوان مقاله
How to manage tool dependencies in Go 1.24+ (6 minute read)

🟢 خلاصه مقاله:
مقاله‌ای که مرور شده، درباره ورژن 1.24 زبان برنامه‌نویسی Go صحبت می‌کند که ویژگی جدیدی با عنوان پرچم "-tool" را معرفی کرده است. این ویژگی امکان مدیریت وابستگی‌های ابزارهای توسعه‌دهندگان را مستقیماً در فایل go.mod فراهم می‌آورد. با استفاده از این پرچم، توسعه‌دهندگان می‌توانند به سادگی ابزارهایی نظیر staticcheck، govulncheck، و stringer را افزوده، به روز رسانی کنند یا حذف نمایند. این امکان به انتگراسیون راحت‌تر این ابزارها در فرآیندهای توسعه کمک کرده و به بهبود جریان کاری توسعه‌دهندگان منجر می‌شود. در نتیجه، این تغییر جدید در Go 1.24 به تسهیل بخشیدن به مدیریت ابزارهای توسعه می‌پردازد و استفاده از آنها را در پروژه‌های Go کارآمدتر می‌کند.

🟣لینک مقاله:
https://www.alexedwards.net/blog/how-to-manage-tool-dependencies-in-go-1.24-plus?utm_source=tldrdevops


👑 @DevOps_Labdon
👍21
🔵 عنوان مقاله
Keep Postgres Maintenance from Slowing Down Your Go App

🟢 خلاصه مقاله:
جای خود را برای یادگیری روش‌های پیشگیرانه نگهداری تضمین کنید که خطرات پنهان کارایی پایگاه داده،

مانند

پرس و جوهای کند (slow queries)،

رفتار نقطه بازرسی (checkpoint behavior)،

و مسائل اتصال (connection issues)،

را پیش از آنکه تشدید شوند، آشکار می‌سازند.

🟣لینک مقاله:
https://golangweekly.com/link/166476/web


👑 @gopher_academy
👍2
اینجا یه مجموع helper از کامند های کار کرد با فایل go.mod رو براتون گذاشتم 👇👇👇

https://t.me/gopher_academy/3672

https://t.me/gopher_academy/3673


https://t.me/addlist/KpzXaiSpKENkMGM0
👍31
🔵 عنوان مقاله
New Low-Level Tools for Garbage Collection Efficiency

🟢 خلاصه مقاله:
مروری بر دو ویژگی جدید ارائه شده توسط جمع‌آور کنندة زباله‌ها (garbage collector) در نسخه ۱.۲۴ گو (Go): runtime.AddCleanup و weak.Pointer. تمیزکاری‌ها (Cleanups) شبیه به نهایی کننده‌ها (finalizers) هستند، اما با دور زدن برخی از عجایب آن‌ها باعث می‌شوند که اشیاءی که به آن‌ها متصل هستند، احیا نشوند. از سوی دیگر، اشاره‌گرهای ضعیف (weak pointers) به شما امکان می‌دهند که به اشیاء اشاره کنید بدون آنکه مانع از جمع‌آوری زباله‌های آن‌ها شوید.

🟣لینک مقاله:
https://golangweekly.com/link/166775/web


👑 @gopher_academy
👍1🍾1
🔵 عنوان مقاله
Sign Up for a Workshop to Get Started Building Go-Powered Decentralized Apps

🟢 خلاصه مقاله:
— سازندگان اپلیکیشن، علاقه‌مندان به زبان Go، دست‌اندرکاران: به gno.land بپیوندید، یک پلتفرم قرارداد هوشمند برای دنیایی آزادتر و عادلانه‌ تر.

🟣لینک مقاله:
https://golangweekly.com/link/166781/web


👑 @gopher_academy
👍2
Forwarded from Database Labdon
به عنوان جوانی که هم دلار هزار تومنی رو دیدم هم صد هزار تومنی واقعا غمگین میباشم.
🕊22👍5🍾32
Forwarded from omid trade 360
به طور متوسط، یک مهندس سنیور نرم‌افزار ۳ تا ۵ برابر بیشتر از یک جونیور درآمد داره. این فقط به خاطر تجربه بیشتر نیست، بلکه به دلیل ارزش بیشتری هست که به شرکت میاره.

حالا فرض کنید دو مهندس تو یه شرکت کار می‌کنند:

مهندس A (سخت‌کوش)
-  روزی 10 ساعت کار میکنه، باگ‌هارو را درست می‌کنه و هزاران خط کد می‌نویسه.
- تمام وظایف محول شده رو بدون فکر کردن به تأثیرشون انجام می‌ده.
- و یه جورایی در چرخه‌ی "کار زیاد، پیشرفت کم" گیر کرده.

مهندس B (موثر)
- قبل از نوشتن حتی یک خط کد، وقت می‌گذاره تا مشکل اصلی رو بفهمه.
- می‌تونه یه مشکل بزرگ تو سیستم پیدا کنه و با یک اسکریپت 500 خطی، سالانه ۵۰ تا ۷۰ میلیون تو هزینه‌های شرکت صرفه‌جویی کنه.
- ورک‌فلو رو بهتر می‌کنه تا سیستم سریع‌تر، بهینه‌تر و مقیاس‌پذیر بشه.
حالا وقتی زمان ترفیع برسه به نظرت شرکت کدوم رو بیشتر میخواد؟

انصاف هست مهندس A که مشغول بوده صرفا و تسک‌هارو انجام میداده و ارزش و تاثیر کمتری تو شرکت میذاره بیشتر ترفیع بگیره؟ خوب نه (نه اینکه نگیره، اینه که بیشتر یا کمتر بگیره)

پس کار ما مساوی هست با تأثیری که می‌گذاریم

چند تا نکته در نهایت

- مشکلات را حل کن، نه اینکه فقط کارارو را انجام بده
- قبل از شروع کدنویسی، بپرس: این چرا مهمه؟
- روی مشکلات بزرگ، بهینه‌سازی و اتومیشن کار کن که ارزش واقعی می‌سازه.
-فراتر از کدنویسی فکر کن
- یک سنیور نصفش مشکل‌گشا و نصفش برنامه‌ریزه.

- یک سنیور سیستم‌ها را طراحی می‌کنه، پیچیدگی رو کم می‌کنه و تصمیم‌های بهتر می‌گیره، نه فقط کد بزنه.
- بفهم کارت چطور به شرکت کمک می‌کنه
- یادت باشه یک اسکریپت 200 خطی که پول صرفه‌جویی کنه، از یک ویژگی 10,000 خطی که کسی استفاده نکنه باارزش‌تره.

- بهترین مهندس‌ها فقط کد نمی‌نویسن، سیستم‌ها محصولات و کارایی رو بهتر می‌کنن.
- هدف این نیست که کد بیشتری بنویسی، هدف اینه که ارزش بیشتری بسازی.

پس (در یک شرکت یا تیم سالم) ارزش بیشتری بسازی، پاداش بیشتری می‌گیری.

<Saman/>

https://t.me/addlist/KpzXaiSpKENkMGM0
👍109🕊1
💐 هر روزتان نوروز نوروزتان پیروز

❤️ سالی به مهربانی میترا
🔥 به نیکی زرتشت
👑 به اقتدار کوروش داشته باشید

نوروز بر همگی دوستان همایون باد


https://t.me/addlist/KpzXaiSpKENkMGM0
8👍1🎉1🕊1🍾1