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
🔵 عنوان مقاله
oapi-codegen 2.5: Generate Go Boilerplate from OpenAPI 3 Specs

🟢 خلاصه مقاله:

نسخه جدید این ابزار و کتابخانه که به توسعه‌دهندگان کمک می‌کند تا مشخصات OpenAI را به کد Go تبدیل کنند، هم برای سرور و هم برای کلاینت مناسب است. این محصول با کاهش نیاز به نوشتن کدهای اضافی، فرآیند توسعه را ساده‌تر کرده و به توسعه‌دهندگان اجازه می‌دهد تا بر روی قابلیت‌های اصلی تمرکز بیشتری داشته باشند. در نسخه 2.5، تغییرات و امکانات جدیدی به منظور بهبود کارایی معرفی شده‌اند و همچنین اشاراتی به پشتیبانی آینده از OpenAPI 3.1 شده است که البته اکنون می‌توان با استفاده از برخی ترفندها به آن دست یافت.

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


👑 @gopher_academy
6
Forwarded from Software Engineer Labdon
اصطلاح requirement driven vibe coding چیست؟

https://t.me/Software_Labdon/599?single

مزیت استفاده از این روش چیست؟

https://t.me/Software_Labdon/601

مفهوم feature creep یا scope creep چیست؟

https://t.me/Software_Labdon/602

مفهوم bureaucratic در توسعه نرم افزار چیست؟

https://t.me/Software_Labdon/603


https://t.me/addlist/QtXiQlynEJwzODBk
2
🔵 عنوان مقاله
A Deep Dive Into Deeply Recursive Go

🟢 خلاصه مقاله:

در زبان برنامه‌نویسی گو، عدم وجود بهینه‌سازی بازگشت دم (TCO) باعث افزایش خطر بروز اورفلو‌های مرگبار در استک می‌شود. مقاله‌ جوهو به بررسی چندین سناریوی واقعی رجوع می‌کند که نتیجه آن‌ها ایجاد آسیب‌پذیری‌های جدی شده است. همچنین راهکارهایی برای کاهش این خطرات در کدها ارائه شده و پیشنهادی برای مدیریت بهتر اورفلوها در زمان اجرا مطرح شده است تا برنامه‌ها بتوانند از خرابی‌های ناشی از اورفلو بهبود یابند.

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


👑 @gopher_academy
4
Gopher Academy
🔵 عنوان مقاله A Deep Dive Into Deeply Recursive Go 🟢 خلاصه مقاله: در زبان برنامه‌نویسی گو، عدم وجود بهینه‌سازی بازگشت دم (TCO) باعث افزایش خطر بروز اورفلو‌های مرگبار در استک می‌شود. مقاله‌ جوهو به بررسی چندین سناریوی واقعی رجوع می‌کند که نتیجه آن‌ها…
در ادامه، یک خلاصه‌ی مفید و مختصر از مقاله‌ی «A deep dive into deeply recursive Go» نوشته Juho Forsén در بلاگ Mattermost:

---

🧠 مشکل اصلی: بازگشت پشته (stack exhaustion)

* Go به‌دلیل نداشتن بهینه‌سازی tail call (TCO)**، در صورت استفاده از توابع بازگشتی عمیق (deep recursion)، پشته گوروتین‌ها تا رسیدن به حد مجاز حافظه رشد می‌کند و در نهایت با **فاجعه‌ی crash (stack overflow) مواجه می‌شویم ([Mattermost.com][1]).
* در بسیاری از موارد، بازگشت پشته منجر به خطاهای امنیتی DoS شده که در نسخه‌های Go قبلی با CVE ثبت شده‌اند—از جمله در XML, protobuf و parser ([Mattermost.com][1]).

---

✍️ مثال واقعی: فراخوانی داخلی XML

* در Go نسخه‌های قبل از ۱.۱۸، تابع Decoder.Skip() در هنگام رد کردن عناصر XML به‌صورت بازگشتی عمل می‌کرد.
* این مشکل باعث crash شدن برنامه هنگام فرایند unmarshal برای داده‌های بزرگ شد.
* اشتباه مهم: نداشتن پیمایش غیر بازگشتی با ساختار صف عمق (depth via loop) تا رفع مشکل در نسخه‌های بعد ([Mattermost.com][1]).

---

📦 مثال واقعی: protobuf

* نسخه‌های قبل از ۱.۲۷.۱ در `google.golang.org/protobuf`، توابع مصرف دسته (Group) را به‌صورت بازگشتی تعریف می‌کردند.
* کافی بود جریان داده‌ای بزرگ یا هدفمند ارسال شود تا پشته تخلیه و برنامه crash شود.
* راه‌حل: معرفی حد عمق recursion (مقدار ۱۰۰ مانند جاوا/C++) در نسخه ۱.۲۸.۰ ([Mattermost.com][1]).

---

🛡 روش‌های جلوگیری

۱. بازتعریف بازگشت بازگشتی به فرم تکراری (iterative)**، یا استفاده از ساختار داده‌هایی مثل اسلایس برای شبیه‌سازی پشته روی heap.
۲. **محدودسازی عمق recursion
از طریق پارامتر یا فیلد داخلی با بررسی حداکثر عمق.
۳. طراحی معماری مقاوم در برابر crash (مثل سیستم‌های توزیع‌شده با جایگزینی فرآیندها یا کانتینرها در Kubernetes) ([Mattermost.com][1]).

---

❗️ چرا این موضوع مهم است؟

* در Go، خطای پشته قابل بازیابی (recoverable panic) وجود ندارد**؛ stack exhaustion خطایی از نوع fatal است و باعث crash فوری بدون اجرای `defer` یا امکان recovery می‌شود ([Mattermost.com][1]).
* این مسئله می‌تواند باعث **از دست رفتن داده‌ها، اختلال در سیستم و حتی بار امنیتی شود
.
42👍1
Forwarded from 𓄂 Bardia 𓆃
تحقیقات جنجالی نشون داده؛ پیک خلاقیت حوالی ۴۰سالگیه و ازونجا به بعد شکوفایی واقعی شروع میشه.

این تحقیق روی افرادی که نوبل گرفتن و مخترعان بزرگ انجام شده.
پس میشه گفت، یونگ خیلی هم الکی نمیگفت؛ زندگی واقعی از ۴۰سالگی شروع میشه، باقی در حال جستجوییم‌!😅
🍾521👍1
Forwarded from Software Engineer Labdon
🔵 عنوان مقاله
The FIPS 140-3 Go Cryptographic Module (6 minute read)

🟢 خلاصه مقاله:
گو، زبان برنامه‌نویسی، از نسخه ۱.۲۴ پشتیبانی بومی از استاندارد FIPS ۱۴۰-۳ را در کتابخانه استاندارد و دستور `go` خود معرفی کرده است. توسعه‌دهندگان می‌توانند با تنظیم گزینه GODEBUG `fips140=on` (از طریق متغیر محیطی یا در go.mod)، حالت FIPS ۱۴۰-۳ را فعال سازند و با استفاده از دستور `GOFIPS140=v1.0.0 go build`، نسبت به ساختن برنامه‌های خود با استفاده از ماژول‌های رمزنگاری تأییدشده اقدام کنند. این تلفیق بومی، نیاز به راه‌حل‌های غیر مورد پشتیبانی طرف سوم را از بین برده و تجربه‌ای بی‌درز برای توسعه‌دهندگان با پشتیبانی از کراس‌کامپایل و بدون افت کارایی ناشی از رابط‌های تابع خارجی فراهم می‌کند.

🟣لینک مقاله:
https://go.dev/blog/fips140?utm_source=tldrinfosec


👑 @software_Labdon
31
Software Engineer Labdon
🔵 عنوان مقاله The FIPS 140-3 Go Cryptographic Module (6 minute read) 🟢 خلاصه مقاله: گو، زبان برنامه‌نویسی، از نسخه ۱.۲۴ پشتیبانی بومی از استاندارد FIPS ۱۴۰-۳ را در کتابخانه استاندارد و دستور `go` خود معرفی کرده است. توسعه‌دهندگان می‌توانند با تنظیم…
🔐ا FIPS 140 چیست و چرا مهمه؟



* استاندارد امنیتی FIPS 140‑3 برای ماژول‌های رمزنگاری (مثل TLS, کلیدها، RNG) ضروریه، مخصوصاً در محیط‌های قانونی و سازمان‌های دولتی ([Go][1], [Medium][2]).

* تا پیش از این، توسعه‌دهنده‌ها مجبور بودن از راه‌حل‌های آزمایشی مثل BoringCrypto یا OpenSSL استفاده کنن؛ که مشکلاتی مثل پیچیدگی اجرا، نیاز به cgo و دشواری در تجربه توسعه داشت ([Go][1]).

راه‌حل جدید: ماژول رمزنگاری FIPS داخلی در Go 1.24

* شروع از Go 1.24: ماژول بومی FIPS 140‑3 (نسخه v1.0.0) بر پایه بسته‌های crypto/internal/fips140/... استاندارد ادغام شده

* دریافت گواهی CAVP شماره A6650 و حضور در لیست "Modules In Process" برای CMVP (منتظر بررسی NIST)
* بدون نیاز به cgo؛ کامپایل کاملاً بومی (pure Go)، بدون overhead یا باگ‌های حافظه‌ای ناشی از FFI

⚙️ فعال‌سازی و نحوه کار

* برای فعال‌سازی: تنظیم GODEBUG=fips140=on یا =only (برای حالت محدود) ([Go][3]).

* حالت only باعث خطا یا panic روی الگوریتم‌های غیرFIPS می‌شود.
* برای ساخت باینری با ماژول FIPS ثابت: استفاده از GOFIPS140=v1.0.0 go build یا =inprocess برای نسخه‌های آینده‌ای که تایید می‌شن ([Go][3], [Go][1]).
* بررسی نسخه با دستور go version -m امکان‌پذیره.

🛡 امنیت بدون مصالحه

* ماژول با الگوریتم‌هایی مثل Hedged ECDSA (امن‌تر از نمونه معمولی)، و ترکیب RNG امنیتی (DRBG + داده از کرنل) مطابقت داره
* تست‌های جامع Trail of Bits انجام شده و تنها نقص غیر بحرانی داشته

🌐 سازگاری و پشتیبانی گسترده پلتفرم

* آزمایش شده روی ۲۳ محیط مختلف: لینوکس (توزیع‌های مختلف)، macOS، Windows، FreeBSD و بوردهایی مثل ARM, MIPS, Power و غیره ([Go][1], [Go][3]).
* تمام الگوریتم‌های مجاز FIPS (امضای دیجیتال، TLS، پست‌کوانتوم، KDFها و غیره) پوشش داده شده ([Go][1], [Go][3]).

---

* توسعه‌دهنده‌ها از کانفیگ خودکار استقبال کردند، مخصوصاً که فقط با بروزرسانی محیط Go فعال می‌شه.
* هنوز منتظر نمره کامل تایید CMVP هستند؛ برخی ترجیح می‌دن فعلاً از نسخه‌های جایگزین مثل OpenSSL فری‌ورک شرکت‌ها استفاده کنن
4
Forwarded from AI Labdon
حتی خالقش هم حاضر نیست درمانش رو بسپاره به ChatGPT!

سم آلتمن، مدیرعامل OpenAI، تو یه گفت‌وگوی جنجالی گفت :

«گاهی ChatGPT تشخیص‌های بهتری از پزشک می‌ده، ولی من هیچ‌وقت بدون پزشک انسانی، سلامتی‌مو بهش نمی‌سپارم!»

آلتمن همچنین تأکید کرد :

آینده بازار کار با هوش مصنوعی هنوز مبهمه ، AI قراره مکمل انسان باشه، نه جایگزین کامل ؛ بات‌های پشتیبانی مبتنی بر هوش مصنوعی؟ «فوق‌العاده‌ان» و می‌تونن کاملاً جای اپراتورها رو بگیرن

+ یه هشدار جدی هم داد : جوان‌ها دارن زیادی به ChatGPT وابسته می‌شن. این اعتماد افراطی، می‌تونه قدرت تفکر انتقادی رو نابود کنه.»
👍5
🔵 عنوان مقاله
Gopher2600: An Atari VCS Emulator

🟢 خلاصه مقاله:

این مقاله به بررسی یک شبیه‌ساز بسیار کامل می‌پردازد که از کنترل‌های بازی، ضبط دستاوردهای بازی، و افکت‌های نمایشگر CRT پشتیبانی می‌کند. علاوه بر این، به روزرسانی‌های مهمی دریافت می‌کند که نمونه آن نسخه ۰.۵۰.۰ منتشر شده دیروز است. این مقاله چندین بار در طول سال‌ها به این شبیه‌ساز اشاره کرده و همچنان به دلیل پشتیبانی و بروزرسانی‌های مداومش مورد توجه است.

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


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

https://t.me/gopher_academy/3672

https://t.me/gopher_academy/3673
5
Forwarded from AI Labdon
جزئیات تیم فوق‌هوش مصنوعی متا (فیسبوک) فاش شده !
تیمی که متا برای توسعه هوش مصنوعی فوق‌پیشرفته خود تشکیل داده، شامل ۴۴ نفر است که:
۵۰٪ از چین هستند،
۷۵٪ دارای مدرک دکتری (PhD) هستند و ۷۰٪ محقق‌اند،
۴۰٪ از OpenAI، ۲۰٪ از DeepMind و ۱۵٪ از Scale جذب شده‌اند،
۲۰٪ در سطح L8+ (سطح بالای شغلی) فعالیت می‌کنند،
۷۵٪ مهاجران نسل اول هستند.
هر یک از این افراد احتمالاً سالانه بین ۱۰ تا ۱۰۰ میلیون دلار حقوق دریافت می‌کنند!
هرچی top اینجاس
فقط سابقه هاشون رو نگاه کنید
یکشون 37 سال سابقه کار داره YoE
به احتمال زیاد از 14 سالگی کد میزنه

https://t.me/addlist/QtXiQlynEJwzODBk
6
🔵 عنوان مقاله
Logging in Go with Slog: A Practitioner's Guide

🟢 خلاصه مقاله:

بسته `log/slog` در نسخه 1.21 زبان برنامه‌نویسی Go به عنوان ابزار اصلی برای ایجاد گزارش‌های ساختاریافته معرفی شده است. این بسته به دلیل داشتن ویژگی‌های متعدد و پیشرفته، به سرعت به انتخاب اول توسعه‌دهندگان تبدیل شده است. در یک آموزش جامع، ویژگی‌های مختلف این بسته نظیر گزارش‌دهی حساس به متن، مدیریت سطوح گزارش‌دهی و شخصی‌سازی فرمت‌های گزارش تشریح شده است. این آموزش همچنین با ارائه مثال‌های عملی، نحوه کاربردی کردن این ویژگی‌ها در پروژه‌های واقعی را به خوانندگان نشان می‌دهد و برای توسعه‌دهندگان Go که می‌خواهند از گزارش‌دهی ساختاریافته در پروژه‌های خود بهره‌ ببرند، منبع مفیدی است.

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


👑 @gopher_academy
2👍1
Forwarded from AI Labdon
زلزله در اینتل؛ اخراج ۳۰٪ از کارمندان تا پایان ۲۰۲۵!

▪️اینتل داره خودش رو سبک می‌کنه!
توی یه نشست خبری غافلگیرکننده، غول دنیای تراشه اعلام کرد تا پایان امسال، تعداد کارمنداش رو از ۱۰۸هزار نفر به ۷۵هزار نفر می‌رسونه! یعنی اخراج رسمی حدود ۳۳هزار نفر!

▪️اما فقط این نیست...
اینتل اعلام کرده دیگه خبری از پروژه‌های جدید توی آلمان و لهستان نیست. تست و مونتاژ هم قراره از کاستاریکا جمع بشه و با مراکز ویتنام و مالزی یکی بشه.

https://t.me/addlist/QtXiQlynEJwzODBk
9🍾1
🔵 عنوان مقاله
Add Enterprise Features, Keep Your Velocity

🟢 خلاصه مقاله:

پیاده‌سازی سیستم‌های Single sign-on، تأمین کاربر و مدیریت نقش‌ها فرآیندی پیچیده و زمان‌بر است. WorkOS با ارائه API‌های ساده و زیرساخت‌های قابل اعتماد به کسب‌وکارها کمک می‌کند تا راحت‌تر این قابلیت‌های مهم را ادغام کنند و تیم‌های توسعه را قادر می‌سازد تمرکز خود را روی تمایز محصولات‌شان حفظ کنند. WorkOS توسط شرکت‌های بزرگی مانند OpenAI، Sourcegraph و Temporal مورد اعتماد قرار گرفته است.

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


👑 @gopher_academy
1🍾1
🔵 عنوان مقاله
Redka: Redis Re-Implemented with SQL

🟢 خلاصه مقاله:

این مقاله درباره یک پایگاه داده که با زبان برنامه‌نویسی Go توسعه یافته و با API ردیس سازگار است، بحث می‌کند. این سیستم در ابتدا از SQLite به عنوان پایگاه داده خود استفاده می‌کرد، اما با انتشار نسخه‌ٔ ۰.۶، از پشتیبانی PostgreSQL نیز بهره‌مند شده است. این به‌روزرسانی باعث بهبود عملکرد، مقیاس‌پذیری و توانایی مدیریت داده‌های بزرگ‌تر و پیچیده‌تر شده است و استفاده‌های متنوع‌تری را برای توسعه‌دهندگان فراهم می‌آورد.

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


👑 @gopher_academy
2
🔵 عنوان مقاله
Go at American Express Today: Seven Key Learnings

🟢 خلاصه مقاله:

مطالعه در مورد درس‌های آموخته شده از پذیرش فناوری، به خصوص در شرکت‌های بزرگ، بسیار مفید است. شرکت امریکن اکسپرس (Amex) که امروزه با بیش از ۱۰۰۰ برنامه‌نویس متخصص در زبان برنامه‌نویسی Go (معروف به گوفرز) کار می‌کند، مثال بارزی از این موضوع است. با اینکه راه ادغام این فناوری نو به آسانی طی نشد و با چالش‌هایی مانند مقاومت در برابر تغییر، منحنی یادگیری برای تکنولوژی جدید، و ادغام این سیستم‌ها با سیستم‌های موجود مواجه بود، اما با رویکرد استراتژیک و حل تدریجی مسائل، این شرکت توانست به یک گذر انتقالی هموار دست یابد و در نهایت، موفقیت چشمگیری در به کارگیری فناوری جدید به دست آورد.

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


👑 @gopher_academy
🍾1
Forwarded from DevOps Labdon
🔵 عنوان مقاله
Enhance application quality with AI-powered test generation (3 minute read)

🟢 خلاصه مقاله:
مقاله‌ای که مطالعه کرده‌اید، به بررسی نقش زوج GitLab و Amazon Q در خودکارسازی تولید آزمون‌های واحدی جامع می‌پردازد، که به بهبود پوشش کد و انسجام آن کمک کرده و در عین حال، تلاش‌های دستی را به طور قابل توجهی کاهش می‌دهد. این فرآیند با تحلیل کدهای جدید در زمان درخواست‌های ادغام انجام می‌شود. هوش مصنوعی معرفی شده، آزمون‌هایی را تولید می‌کند که قادر به رویارویی با موارد حاشیه‌ای و حفظ کیفیت در سراسر تیم توسعه است. این تکنولوژی نه تنها به افزایش کارایی کمک می‌کند بلکه اطمینان از کیفیت نرم‌افزار را نیز در طی فرآیندهای توسعه تضمین می‌نماید. از طریق این نوآوری، شرکت‌ها می‌توانند به سرعت و با اطمینان بیشتر نرم‌افزارهای خود را توسعه دهند.


🟣لینک مقاله:
https://about.gitlab.com/blog/enhance-application-quality-with-ai-powered-test-generation/?utm_source=tldrdevops


👑 @DevOps_Labdon
1👍1
🔵 عنوان مقاله
go-quartz 0.15: Simple, Zero-Dependency Scheduling Library

🟢 خلاصه مقاله:

ابزار برنامه‌نویسی go-quartz با الهام از زمان‌بندی کوارتز در جاوا ساخته شده، که به آسانی در فرآیندهای گو اجرا می‌شود و امکان برنامه‌ریزی اجرای وظایف و کارها را بر اساس زمان‌بندی مشخص فراهم می‌کند. این امر برای پروژه‌های نرم‌افزاری که نیاز به خودکارسازی کارهای منظم دارند مفید است.

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


👑 @gopher_academy
2
🔵 عنوان مقاله
PocketBase: A Go-Powered Backend in One Binary

🟢 خلاصه مقاله:

این مقاله به توضیح ویژگی‌های یک برنامه بک‌اند متن‌باز می‌پردازد که شامل دیتابیس SQLite توکار، پشتیبانی از اشتراک‌گذاری واقعی‌زمانی، مدیریت فایل و کاربر، یک رابط کاربری مدیر/داشبورد و API REST است. هدف اصلی آن، استفاده به عنوان بک‌اند برای اپلیکیشن‌های جلویی (frontend) جاوااسکریپت می‌باشد. منابعی نظیر دموی زنده، مخزن گیت‌هاب و مستندات مفید نیز موجود هستند که برای توسعه‌دهندگان بسیار کاربردی می‌باشند.

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


👑 @gopher_academy
👍2
Forwarded from AI Labdon
هشدار سم آلتمن: اطلاعات خیلی شخصی‌تون رو تو ChatGPT ننویسید!

▪️سم آلتمن، مدیرعامل OpenAI، تو یه مصاحبه تازه گفته فعلاً نمی‌تونن تضمین کنن که اطلاعات خیلی حساس کاربرا توی چت‌بات‌ها مثل ChatGPT کاملاً محرمانه بمونه.

▪️آلتمن توضیح داده وقتی از این ابزارها برای چیزایی مثل مشاوره احساسی یا حتی پزشکی استفاده می‌کنید، دیگه خبری از محرمانگی‌ای مثل «پزشک و بیمار» نیست!

▪️چون هنوز چارچوب قانونی مشخصی برای گفتگو با هوش مصنوعی وجود نداره، اگه شکایتی مطرح بشه، ممکنه محتوای چت‌ها به درخواست مراجع قانونی ارائه بشه
9