Gopher Academy
3.32K 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
🔵 عنوان مقاله
Product Management Is Broken. Engineers Can Fix It

🟢 خلاصه مقاله:
این مقاله به بررسی تغییراتی می‌پردازد که شرکت PostHog در نحوه همکاری مدیران پروژه (PMs) و مهندسان اعمال کرده است تا بهینه‌سازی فرایندهای کاری خود را برای دستیابی به سرعت و استقلال عمل پیش ببرد. PostHog تصمیم گرفته است فرایندهای سنتی بین PM و مهندسان را کنار بگذارد و به جای آن، مدلی را پیاده‌سازی کند که در آن هر دو گروه بیشترین میزان مسئولیت و اختیار را داشته باشند. این شرکت با دادن استقلال بیشتر به افراد و تیم‌ها، توانسته است که رویکردی مبتنی بر سرعت و کارآمدی در پیش بگیرد. به این ترتیب، PM‌ها و مهندسان با همکاری نزدیک‌تر و داشتن دید واضح‌تر از اهداف و چشم‌اندازهای کلی پروژه‌ها، می‌توانند در کوتاه‌ترین زمان ممکن به نتایج بهتر دست یابند. تغییر در نحوه همکاری و تقسیم کار، به هر فرد امکان می‌دهد که با تکیه بر تخصص خود، به افزایش کارایی و تاثیرگذاری بیشتر در پروژه‌ها کمک کند.

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


👑 @gopher_academy
👍1🔥1🙏1
🔵 عنوان مقاله
Upcoming Workshop on Building Backend Web Apps in Go

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

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


👑 @gopher_academy
2
0.0000011 دلار

این قیمتی که مشاهده میکنید قیمت یک رمزارز توی بازار کریپتو نیست این قیمت ریال به دلار هستش.

واقعا نمیدونم چی بگم...



👑 @gopher_academy
🕊17👍5👻4👏2🔥1🥰1🏆1🍓1
🔵 عنوان مقاله
etree 1.5: A Library to Parse and Generate XML Easily

🟢 خلاصه مقاله:
این مقاله به بررسی روشی ساده و مستقیم برای کار با XML در زبان برنامه‌نویسی Go پرداخته است که از ElementTree پایتون الهام گرفته شده است. در این رویکرد، اسناد XML به صورت درخت‌هایی نمایش داده می‌شوند که امکان پیمایش آسان آن‌ها را فراهم می‌کند. کاربران می‌توانند اسناد XML را ایجاد، وارد، تغییر دهند و ذخیره کنند. همچنین، پرس و جو در این اسناد می‌تواند با استفاده از روشی شبیه به XPath انجام شود. این مقاله به توضیح و بررسی این امکانات می‌پردازد و نحوه استفاده از آن‌ها در زبان Go را به طور دقیق شرح می‌دهد. این رویکرد به برنامه‌نویسان اجازه می‌دهد تا با استفاده از ابزارهای Python و الهام از آن، به راحتی با XML در Go کار کنند.

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


👑 @gopher_academy
👍1
توی مصاحبه های گولنگ 99 درصدش سوال زیر رو میپرسن😂

فرق ارایه و اسلایس چیه؟



👑 @gopher_academy
👍183💯1🤝1
دوره آموزش برنامه‌نویسی گولنگ، از مقدماتی تا پیشرفته به‌صورت جلسات Live Coding و پروژه یک وبسایت مشابه اینستاگرام

🔹 در این دوره از صفر تا صد گولنگ رو یاد میگیریم

🔸 یک پروژه کامل با معماری clean arch مثل اینستاگرام با قابلیت‌های: پست، استوری، لایک، کامنت، پروفایل و... رو پیاده‌سازی می‌کنیم

🔹 در مسیر پروژه از تکنولوژی‌های مختلفی مثل: لود تست با k6، پرومتئوس و گرافانا، آبجکت استوریج MinIO استفاده می‌کنیم تا چالش‌های سیستم‌های پیچیده را درک‌
و پیاده‌سازی کنیم

🔸 یاد میگیریم مایکروسرویس‌ها چی هستن و چه زمانی باید ازشون استفاده کنیم و درنهایت میریم سراغ protobuff ،Grpc و RabbitMQ

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

https://cloudygo.ir/register

📣 اگر میخوای توو این مسیر همراهمون باشی تا ۲۵ بهمن فرصت داری تا از طریق لینک بالا با تخفیف ۲۱ درصدی ثبت‌نام کنی!
👍4🎉2🔥1
🔵 عنوان مقاله
How to Release to Homebrew with GoReleaser, GitHub Actions and Semantic Release

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

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


👑 @gopher_academy
👍1
🔵 عنوان مقاله
Feluda: A Tool to Analyze the Licences of Dependencies

🟢 خلاصه مقاله:
این مقاله به معرفی پروژه‌ای می‌پردازد که با استفاده از زبان برنامه‌نویسی Rust انجام شده است، اما برای پردازش وابستگی‌های پروژه‌های Go، Rust یا Node.js قابل استفاده است. این ابزار قادر به ارائه گزارشی در مورد محدودیت‌های احتمالی مربوط به مجوزهای نرم‌افزاری یا نمایش یک رابط کاربری مبتنی بر متن موسوم به "TUI" است. گزارش یا رابط TUI به کاربران امکان می‌دهد تا درک بهتری از جنبه‌های حقوقی و مجوزهای مرتبط با کتابخانه‌ها و ماژول‌های مورد استفاده در پروژه‌های نرم‌افزاری خود به دست آورند. استفاده از این ابزار می‌تواند به توسعه‌دهندگان کمک کند تا از پیچیدگی‌های قانونی اجتناب کنند و تصمیم‌گیری‌های آگاهانه‌تری در مورد انتخاب مجوزها و کتابخانه‌ها داشته باشند.

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


👑 @gopher_academy
describe two categories of Go types:👆🏾

👑 @gopher_academy
👌1
Gopher Academy
describe two categories of Go types:👆🏾 👑 @gopher_academy
در زبان Go، انواع داده‌ها را می‌توان به دو دسته تقسیم کرد:

### 1. انواعی که در یک بلوک حافظه ذخیره می‌شوند (Solo Direct Value Part)
این دسته شامل boolean، عددی، اشاره‌گر، struct، array و unsafe pointer است. مقدار این انواع به‌صورت مستقیم در حافظه ذخیره می‌شود، به این معنی که مقدار آن‌ها در همان متغیر قرار دارد و به بخش دیگری از حافظه ارجاع نمی‌دهد.

### 2. انواعی که در چندین بلوک حافظه ذخیره می‌شوند (Direct Part → Underlying Part)
این دسته شامل slice، map، channel، function، interface و string است. مقدار واقعی این داده‌ها در یک بخش دیگر از حافظه ذخیره می‌شود و متغیر تنها یک ارجاع (reference) به آن مقدار دارد.

به‌عنوان‌مثال، یک slice شامل سه بخش است:
- pointer (به آرایه‌ای که داده‌ها را ذخیره می‌کند)
- length (تعداد عناصر)
- capacity (ظرفیت آرایه)

هنگامی که شما یک slice را به متغیر دیگری اختصاص می‌دهید، تنها ارجاع کپی می‌شود، نه داده‌های داخل آن. این رفتار در مورد map`، `channel`، `string و سایر انواع این دسته نیز صدق می‌کند.

مزیت این ساختار این است که می‌تواند از مدیریت حافظه بهینه‌تر پشتیبانی کند، اما در عوض نیازمند کنترل دقیق‌تر هنگام اشتراک‌گذاری داده‌ها میان بخش‌های مختلف برنامه است.

👑 @gopher_academy
👍2💘1

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

🟢 حوزه های تحت پوشش
(Bitcoin,

Ethereum,

Altcoins,

Blockchain,

Policy & Regulations,

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)
🔵 عنوان مقاله
go-taskflow: A Taskflow-Like DAG Task Execution Framework

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

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


👑 @gopher_academy
👍2
🔵 عنوان مقاله
Reduce Your Apache Kafka Costs + Ops Burden With WarpStream

🟢 خلاصه مقاله:
مقاله مورد بحث به معرفی WarpStream می‌پردازد، یک تکنولوژی که هزینه‌های استفاده از Kafka را با کاهش نیاز به دیسک‌ها و هزینه‌های شبکه بین‌منطقه‌ای بیش از 80 درصد کاهش می‌دهد. این تکنولوژی قابل اجرا در ابر خصوصی است و داده‌ها در بستر ذخیره‌سازی اشیاء مشتری ذخیره می‌شوند، بنابراین داده‌های خام هرگز محیط شما را ترک نمی‌کنند. WarpStream همچنین قابلیت اتوماتیک نگهداری و اسکیل‌گیری خودکار را بدون نیاز به اپراتور یا تنظیمات اضافی دارا می‌باشد، نقطه قوتی که مدیریت داده‌ها و برنامه‌ها را به شدت ساده و کم هزینه می‌کند. این نوآوری‌ها در مهندسی و معماری ابری می‌تواند به طور قابل توجهی بر بهره‌وری و صرفه‌جویی در هزینه‌های مرتبط با پردازش داده تأثیر بگذارد.

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


👑 @gopher_academy
👍21🎉1
🔵 عنوان مقاله
Go Slice Gotchas

🟢 خلاصه مقاله:
مقاله‌ای که به بررسی ساختار داده‌ای به نام "اسلایس" می‌پردازد، نشان می‌دهد که این ساختار مشابه سایر ساختارهای ظرفیت‌گسترش‌پذیر دینامیک دارای پیچیدگی‌ها و نکات خاص خود است. نویسنده در این متن تلاش کرده است تا لیستی از اشتباهات رایجی که خود بارها مرتکب شده را برشمارد تا خوانندگان بتوانند از آن‌ها پرهیز کنند. این اشتباهات شامل نادیده‌گرفتن قواعد خاص مدیریت حافظه، نحوه افزایش ظرفیت اسلایس‌ها، و تأثیر عملیات مختلف بر روی امنیت و کارایی برنامه است. هدف از این مقاله علاوه بر ارائه راهنمایی‌های فنی، افزایش آگاهی و پرورش مهارت‌های برنامه‌نویسان در کار با اسلایس‌ها و جلوگیری از تکرار اشتباهات متداول است.

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


👑 @gopher_academy
👍31
Forwarded from Linux Labdon
Linux boot process explained

https://t.me/addlist/KpzXaiSpKENkMGM0
👍7
🔵 عنوان مقاله
sturdyc: Caching Library with Advanced Concurrency Features

🟢 خلاصه مقاله:
مقاله "A sturdy gopher shielding data sources from rapidly incoming requests" به بررسی یک راهکار مؤثر برای جلوگیری از بارگذاری بیش از حد و حملات اصطلاحاً cache stampede در سیستم‌های با حجم ترافیک بالا می‌پردازد. رویکرد مورد بحث در این مقاله، استفاده از خواندن‌های غیربلاک‌کننده و نوشتن‌های شارد شده است که کمینه کردن تداخل قفل‌ها را هدف قرار داده و در نتیجه، افزایش کارایی و پایداری سیستم هنگام مواجهه با درخواست‌های متعدد و سریع را به دنبال دارد. با استفاده از این روش، سیستم‌ها می‌توانند داده‌ها را مدیریت و در برابر بارهای ناگهانی وزیاد محافظت نمایند. این روش برای زیرساخت‌هایی که نیازمند حجم بالایی از تراکنش‌های داده هستند، ایده‌آل است.

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


👑 @gopher_academy
👇توصیه‌های کلی و کوتاه و مختصر برای زبان برنامه‌نویسی Go که یادگیری خالی از لطف نیست

https://go-proverbs.github.io


https://t.me/addlist/KpzXaiSpKENkMGM0
👍4🍾1💋1
Forwarded from Gopher Academy
🎯 چندتا پست در مورد ویژگی های جدید گولنگ 1.24 اینجاست می تونید بخونید👇


🔵 https://t.me/gopher_academy/3557

🔵 https://t.me/gopher_academy/3556

🔵 https://t.me/gopher_academy/3555

🔵 https://t.me/gopher_academy/3554

🔵 https://t.me/gopher_academy/3553

🔵 https://t.me/gopher_academy/3581

🔵 https://t.me/gopher_academy/3582


https://t.me/addlist/KpzXaiSpKENkMGM0
🔥1🎉1🏆1
👍5🔥1💘1
سپندارمذگان، روز گرامیداشت زن، زمین و مادر بر همهٔ ایرانیان خجسته باد.

💚🤍❤️
یکی از جشن‌های ایران باستان است که در ۵ اسفند گاه‌شمار یزدگردی و ۲۹ بهمن گاه‌شمار خورشیدی برای گرامیداشت زن، زمین و مادر برگزار می‌شود.[۱] این جشن ریشه در شاهنشاهی هخامنشی دارد.[۲] ابوریحان بیرونی در آثارالباقیه آورده‌است که ایرانیان باستان، پنجم اسفند را روز بزرگداشت زن و زمین می‌دانستند



https://t.me/addlist/KpzXaiSpKENkMGM0
161
Gopher Academy
### ۲. مزایای SwissTable:
- سرعت بیشتر: SwissTable با استفاده از تکنیک‌های بهینه‌سازی مانند SIMD (Single Instruction, Multiple Data) و cache-friendly data structures**، سرعت عملیات‌های درج، حذف و جستجو در `map` را افزایش می‌دهد.
SIMD مخفف Single Instruction, Multiple Data

(یک دستورالعمل، چندین داده) است. این یک تکنیک پردازشی است که در معماری کامپیوتر استفاده می‌شود و به پردازنده اجازه می‌دهد تا یک عملیات را همزمان روی چندین داده اجرا کند. این کار باعث افزایش کارایی و سرعت پردازش، به ویژه در عملیات‌های موازی مانند محاسبات برداری یا ماتریسی، می‌شود.


### توضیح بیشتر:


- Single Instruction:
یک دستورالعمل واحد به پردازنده داده می‌شود.

- Multiple Data:
این دستورالعمل به طور همزمان روی چندین داده (مثلاً چندین عنصر در یک آرایه) اعمال می‌شود.


### مثال:

فرض کنید می‌خواهید چهار عدد را با هم جمع کنید. در حالت عادی، پردازنده باید چهار بار عملیات جمع را انجام دهد. اما با استفاده از SIMD، می‌توانید این چهار عدد را به صورت موازی و در یک عملیات جمع کنید.


### کاربرد SIMD در SwissTable:

در SwissTable، از SIMD برای بهینه‌سازی عملیات‌هایی مانند جستجو، درج و حذف استفاده می‌شود. به این صورت:
- جستجو: با استفاده از SIMD، می‌توان چندین کلید را به طور همزمان بررسی کرد و سرعت جستجو را افزایش داد.
- درج و حذف: عملیات‌های مرتبط با مدیریت داده‌ها نیز می‌توانند به صورت موازی انجام شوند.


### مزایای SIMD:

1. سرعت بیشتر: انجام عملیات‌ها به صورت موازی باعث کاهش زمان اجرا می‌شود.
2. بهینه‌سازی مصرف انرژی: با کاهش تعداد دستورالعمل‌ها، انرژی کمتری مصرف می‌شود.
3. کارایی بالا: به ویژه در عملیات‌های تکراری و محاسبات سنگین، کارایی سیستم افزایش می‌یابد.

### معایب SIMD:

1. پیچیدگی: برنامه‌نویسی با SIMD نیاز به دانش خاص و توجه به جزئیات دارد.
2. وابستگی به سخت‌افزار: برای استفاده از SIMD، پردازنده باید از این قابلیت پشتیبانی کند.

در کل، SIMD یک تکنیک قدرتمند برای افزایش سرعت و کارایی در عملیات‌های موازی است و در SwissTable نیز از آن برای بهبود عملکرد map استفاده شده است.


https://t.me/addlist/KpzXaiSpKENkMGM0
4👍1