Gopher Academy
3.33K subscribers
915 photos
40 videos
279 files
1.96K links
🕸 Gopher Academy

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

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

ادمین:
@mrbardia72
Download Telegram
🔵 عنوان مقاله
httptap: View HTTP/HTTPS Requests Made by Any Linux Program

🟢 خلاصه مقاله:
این متن درباره یک ردیاب HTTP محدود به فرایند و مبتنی بر زبان برنامه‌نویسی Go است که بدون نیاز به دسترسی‌های ریشه (root) قابل اجرا است. این ابزار فقط از فضاهای نام شبکه‌ای در لینوکس پشتیبانی می‌کند و قابلیت رمزگشایی ترافیک TLS را دارد به این ترتیب که یک مرکز احراز هویت (CA) را بلافاصله و به‌صورت خودکار تولید می‌کند. این ویژگی‌ها ردیاب را ابزاری مفید برای عیب‌یابی یا بررسی ارتباطات خارجی نرم‌افزارها و وابستگی‌های آن‌ها فراهم می‌آورد، که ممکن است بدون اطلاع کاربر، اطلاعاتی را به خارج منتقل کنند.

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


👑 @gopher_academy
👍1
Forwarded from DevOps Labdon
پادکست نیمچه برنامه نویس:
این پادکست به شکل روان و داستانی موضوعاتی را در حوزه‌ی دواپس و برنامه نویسی روایت می‌کند.
مثلا در چند اپیزود اخیر به روایت و بررسی کالبدشکافی داون تایم شرکت های بزرگ پرداخته است.
اپیزود های کوتاه و جذاب این پادکست به صورت هفتگی منتشر می‌شوند.


می‌توانید کانال این پادکست را در کست‌باکس دنبال کنید:
https://castbox.fm/vh/6294201

👑 @DevOps_Labdon
2🙏1
Forwarded from Bardia & Erfan
📚 معرفی دو کتاب عالی در زمینه ساختمان داده و الگوریتم‌ها

اگر به دنبال منابع قوی برای یادگیری ساختمان داده‌ها (Data Structures) و الگوریتم‌ها (Algorithms) هستید، این دو کتاب را از دست ندهید:👇

🔵https://skybooks.ir/products/Grokking-Algorithms

Table of Contents

1. Introduction to algorithms
2. Selection sort
3. Recursion
4. Quicksort
5. Hash tables
6. Beadth-first search
7. Trees
8. Balanced trees
9. Dijkstra’s algorithm
10. Greedy algorithms
11. Dynamic programming
12. k-nearest neighbors
13. where to go next

🔵https://skybooks.ir/products/Grokking-Data-Structures

Table of Contents

1. Introducing data structures: Why you should learn about data structures
2. Static arrays: Building your first data structure
3. Sorted arrays: Searching faster, at a price
4. Big-O notation: A framework for measuring algorithm efficiency
5. Dynamic arrays: Handling dynamically sized datasets
6. Linked lists: A flexible dynamic collection
7. Abstract data types: Designing the simplest container—the bag
8. Stacks: Piling up data before processing it
9. Queues: Keeping information in the same order as it arrives
10. Priority queues and heaps: Handling data according to its priority
11. Binary search trees: A balanced container
12. Dictionaries and hash tables: How to build and use associative arrays
13. Graphs: Learning how to model complex relationships in data
🔥3🍾1
🔵 عنوان مقاله
Zog: 'Next Gen' Schema Validation for Go

🟢 خلاصه مقاله:
مقاله‌ای که اشاره شده به معرفی دو کتابخانه برنامه‌نویسی، Zod و Zog، می‌پردازد. Zod، کتابخانه‌ای محبوب برای اعتبارسنجی طرح‌های داده به صورت پویا در زبان برنامه‌نویسی TypeScript است. از سوی دیگر، Zog نسخه‌ای مشابه با Zod است که برای زبان Go توسعه یافته تا امکان تعریف و اجرای اعتبارسنجی‌ها بر روی مقادیر و ساختارها را فراهم آورد. هر دو کتابخانه به توسعه‌دهندگان امکان می‌دهند تا اصول و قواعد اعتبارسنجی را برای داده‌ها تعریف کنند و از صحت آن‌ها در زمان اجرای برنامه اطمینان حاصل نمایند. برای دسترسی به کدها و پروژه‌های مربوط به این کتابخانه‌ها، به مخزن GitHub آنها ارجاع داده شده است. این کتابخانه‌ها به ویژه برای توسعه‌دهندگانی که به دنبال راه‌حل‌های موثر برای اعتبارسنجی داده‌ها در برنامه‌های خود هستند، مفید هستند.

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


👑 @gopher_academy
👍2
خبر خوب برای علاقه‌مندان به Go و ستاره‌شناسی و نجوم! کتابخانه jpleph را معرفی می‌کنم - یک کتابخانه Go خالص برای کار با فایل‌های باینری JPL DE ephemerides!

https://github.com/mshafiee/jpleph

پکیج jpleph به شما اجازه می‌ده تا به سادگی موقعیت و سرعت اجرام منظومه شمسی رو با دقت بالا از فایل‌های JPL DE بخونید و محاسبه کنید.  مهم نیست سیستم عاملتون چیه، این کتابخانه به صورت خودکار endianness رو تشخیص میده و کار میکنه!

چرا JPL DE؟ چون برای محاسبات نجومی دقیق، ماموریت‌های فضایی و تحقیقات علمی بی‌نظیره! دقتش از سری‌های تحلیلی خیلی بیشتره و با آخرین داده‌های رصدی JPL آپدیت میشه. jpleph این دقت رو به پروژه‌های Go شما میاره!
ویژگی‌های کلیدی jpleph:

پیاده‌سازی. کامل با Go
عملکرد عالی (هم‌سطح C/C++)
سازگاری با پلتفرم‌های مختلف (کراس-پلتفرم)
یکپارچگی آسان با پروژه‌های Go
مدیریت خطای قوی

اگر به astronomy، space و Go علاقه دارید، حتماً به jpleph یه نگاهی بندازید!
به توسعه کتابخانه کمک کنید، issue گزارش بدید یا در پروژه‌هاتون ازش استفاده کنید.  GPLv2  متن‌باز و رایگان!


<Mohammad Shafiee/>

https://t.me/addlist/KpzXaiSpKENkMGM0
👍4🍾1👨‍💻1
🔵 عنوان مقاله
Proposal: math/rand/v2 Worked, Let's Do sync/v2!

🟢 خلاصه مقاله:
در تلاش گو برای برقراری تعادل بین نوآوری و ثبات، ایجاد نسخه‌های 'v2' از بسته‌های استاندارد به عنوان راه‌حل ارائه شده است. مقاله تمرکز خود را بر نسخه‌های جدید بسته‌ها مانند math/rand گذاشته است که توسط ایان به عنوان موفقیت آمیز شناخته شده‌ر و پیشنهاد می‌دهد که ابزارهای همگام‌سازی نیز به روزرسانی‌های مشابهی را تجربه کنند. این مقاله از یک ماه بحث و گفتگو سود می‌برد که شامل نارضایتی‌هایی است که در رابطه با رویکرد 'v2' مطرح شده‌اند. بحث‌های مفصل‌تر درباره این رویکرد و نحوه پیاده‌سازی آن بیان شده، که نشان دهنده پیچیدگی‌ها و چالش‌های ذاتی در تلاش برای نوسکردن و بهبود بسترهای نرم‌افزاری بدون قربانی کردن ثبات است.

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


👑 @gopher_academy
👍1
Forwarded from Bardia & Erfan
درود دوستان عزیز، اگر انتقاد یا پیشنهادی دارید که می‌تواند به بهبود چنل ها کمک کند، خوشحال می‌شوم از نظرات شما استفاده کنم. می‌توانید از طریق آی‌دی زیر با من در ارتباط باشید:

@mrbardia72


منتظر نظرات سازنده‌تان هستم! 😊
1🎉1🍾1
🔵 عنوان مقاله
How a Malicious Package Exploited Module Proxy Caching for Persistence

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

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


👑 @gopher_academy
👍2
دلار چی میگه!!!! 📈 😐😡
💯17🔥3👻31😈1
🔵 عنوان مقاله
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)