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
Forwarded from Linux Labdon
لینوس توروالدز: کد مهندس گوگل «آشغال محض» بود!

▪️همه فکر می‌کنن مهندسای گوگل در قله کیفیت هستن، اما خالق لینوکس یه شوک اساسی داد! لینوس توروالدز بدون هیچ تعارف، کد یکی از برنامه‌نویسای گوگل رو «به درد نخور» خطاب کرد و اون رو با خاک یکسان کرد.

▪️ماجرا از یه Pull Request مربوط به پشتیبانی RISC-V در لینوکس 6.17 شروع شد. پالمر دابلت از تیم اندروید، تغییرات رو فرستاد، ولی:

1. کیفیت کدنویسی افتضاح!

2. ارسال دیرهنگام در «پنجره ادغام»!
4🔥1
Forwarded from Bardia & Erfan
🎯 آمادگی کامل IELTS با تدریس خصوصی و آنلاین

👑به دنبال نمره بالا در آیلتس هستی؟

🟢با استاد Mansourian، مدرس با تجربه مهارت‌های
🩵Speaking
🩵Writing
🩵Reading
🩵Listening


رو به بهترین شکل تقویت کن.

📌 کلاس‌ها به صورت آنلاین، خصوصی و روزانه برگزار میشه.

📈 پیشرفت سریع + برنامه‌ریزی دقیق برای رسیدن به هدفت.

💬 همین الان فالو کن و مسیر موفقیتت رو شروع کن!

👇پیج استاد توی انستاگرام 👇

https://www.instagram.com/english_razi_ielts
در ادامه، یک خلاصه کاربردی و به‌روز از مقاله Matthias Endler با عنوان «How To Review Code» (منتشرشده در ۶ آگوست ۲۰۲۵) آورده شده است

نکات کلیدی برای بررسی کد با رویکرد حرفه‌ای

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

۲. نام‌گذاری اهمیت زیادی دارد
نام‌گذاری بد نه‌تنها کد را سخت‌فهم می‌کند، بلکه می‌تواند نشانه‌ای از مشکلات ساختاری بزرگ باشد. انتخاب نام‌هایی واضح، با مفهوم و هماهنگ با دامنه کاربرد حیاتی است.
مثال ارائه‌شده روی یک نسخه نامناسب از تابع update_player_stats تأکید دارد.

۳. اگر ممکن است، کد را اجرا کن
داشتن نسخه محلی برای اجرای کد، تست‌ها و linters خیلی کمک می‌کند. جابه‌جایی و آزمودن کد به فهم بهتر منطق کمک می‌کند (مخصوصاً برای تغییرات UI یا پیام‌های خطا).

۴. درباره دسترس‌پذیری خود صادق باش
بررسی کد ممکن است زمان‌بر باشد. اگر فرصت انجامش را نداری، صادق باش و به نویسنده اطلاع بده — تا فرایند توسعه متوقف نشود.

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

۶. حسّی رفتار نکن — فقط نقدهای اصل‌محور
اformat و whitespace را به ابزارهای قالب‌زن (formatter) بسپار. انرژی خود را برای بررسی منطق، طراحی و نگهداری‌پذیری صرف کن. اگر تغییری کاربردی ندارد یا باعث سردرگمی نخواهد شد، نادیده‌اش بگیر.

۷. روی چرا تمرکز کن، نه چگونه
بهتر است سؤال‌های راه‌گشا درباره دلیل انتخاب یک راه حل مطرح شود، تا صرفاً گفتن "اشتباه است". این رویکرد ماندگارتر و آموزنده‌تر است.

۸. پرسیدن سؤال‌های ساده هیچ اشکالی ندارد
اگر چیزی را نمی‌فهمی، حتماً سؤال بپرس. ممکن است شخص دیگری هم همان‌طور فکر کند. این کمک می‌کند نویسنده ببینند بخش‌هایی از کد بی‌دلیل گیج‌کننده‌اند.

۹. به بررسی سبک خودت هم گوش بده
بپرس: "آیا نقدم خیلی سختگیرانه بود؟ مفید بود؟ باعث پیشرفت شد؟"

احتمالاً خودت هم در حال یادگیری هستی و تکامل در روند بررسی خیلی ارزشمند است.

جمع‌بندی: بررسی کد حرفه‌ای یعنی چه؟

علاوه بر خط‌های تغییر، به تأثیر تغییر در کل سیستم توجه کن.

نام‌گذاری صحیح، درک جریان و معماری را ساده‌تر می‌کند.

وقتی می‌شود کد را اجرا کرد، حتماً امتحانش کن.

اگر وقت نداری یا چیزی را نفهمیدی، صادق باش و سؤال بپرس.

مهم‌تر از اصلاح، کمک به رشد است.
2👍1🍾1
Forwarded from Software Engineer Labdon
پایان استقلال گیت‌هاب؛ مایکروسافت همه‌چیز را می‌بلعد!

▪️گیت‌هاب، بزرگ‌ترین مخزن کد جهان و خانه میلیون‌ها توسعه‌دهنده، بعد از استعفای مدیرعاملش دیگه مستقل نیست! مایکروسافت رسماً این پلتفرم محبوب رو قورت داد و انداختش وسط تیم Core AI خودش.

▪️«توماس دومکه» مدیرعامل گیت‌هاب گفت تا آخر امسال میره دنبال استارتاپ جدیدش، اما درست بعد از اعلام رفتنش، خبر اومد که گیت‌هاب از این به بعد بخشی از پروژه‌های AI مایکروسافته؛ یعنی همه راه‌ها مستقیم میره سمت GitHub Copilot...

+ اما برنامه‌نویس ها نگرانن همون بلایی که سر اسکایپ اومد سر گیت‌هاب هم بیاد!
2💊2👀1
Forwarded from AI Labdon
یک مثال شبیه به تست‌های SWE-bench Verified می زنیم تا تفاوت رو بین سه مدل Claude Opus 4.1**، **Claude Sonnet 4 و Claude Haiku 3.5 ببینیم.

---

📌 سناریو

پروژه: یک سیستم مدیریت سفارش ساده (Python)
مشکل: یک تابع برای محاسبه قیمت کل سفارش نوشته شده، ولی تخفیف به‌درستی اعمال نمی‌شود.

کد اولیه (دارای باگ):

def calculate_total_price(items, discount_percentage):
"""
items: list of tuples (price, quantity)
discount_percentage: float between 0 and 100
"""
total = 0
for price, qty in items:
total += price * qty
total -= discount_percentage
return total


هدف:

* تخفیف باید بر اساس درصد اعمال شود، نه کم کردن مستقیم عدد از مبلغ کل.
* باید اطمینان حاصل شود که نتیجه کمتر از صفر نشود.

---

🔍 خروجی مدل‌ها

ا Opus 4.1 (قدرت استدلال بالا)

def calculate_total_price(items, discount_percentage):
"""
items: list of tuples (price, quantity)
discount_percentage: float between 0 and 100
"""
total = sum(price * qty for price, qty in items)
discount_amount = total * (discount_percentage / 100)
final_total = max(total - discount_amount, 0)
return round(final_total, 2)


تغییرات:

* استفاده از comprehension برای خوانایی.
* محاسبه تخفیف به‌صورت درصدی.
* جلوگیری از منفی شدن قیمت.
* گرد کردن به دو رقم اعشار (برای واحد پولی).

---

ا Sonnet 4 (تعادل سرعت و کیفیت)

def calculate_total_price(items, discount_percentage):
total = sum(price * qty for price, qty in items)
discount = total * (discount_percentage / 100)
return max(total - discount, 0)


تغییرات:

* درست کردن محاسبه تخفیف.
* جلوگیری از عدد منفی.
⚠️ کمی کمتر از Opus در توجه به جزئیات (مثلاً گرد کردن و Docstring بهبود یافته).

---

ا Haiku 3.5 (سریع ولی ساده‌تر)

def calculate_total_price(items, discount_percentage):
total = 0
for price, qty in items:
total += price * qty
return total - (total * discount_percentage / 100)


تغییرات:

* محاسبه درست تخفیف.
⚠️ اما:
* حفاظت در برابر منفی شدن قیمت را اضافه نکرده.
* بهینه‌سازی یا بهبود ساختار کد انجام نداده.

---

📊 نتیجه‌گیری


| مدل | کیفیت کد | توجه به جزئیات | سرعت |
| ------------- | --------- | ---------------- | ---------- |
| Opus 4.1 | عالی | بسیار بالا | متوسط |
| Sonnet 4 | خوب | متوسط رو به بالا | سریع‌تر |
| Haiku 3.5 | قابل قبول | پایین | بسیار سریع |
5👌1🍾1
Forwarded from Bardia & Erfan
🍾🥂🎁
🍾7
Bardia & Erfan
🍾🥂🎁
پاول دروف به مناسبت ۸۰ سالگی پدرش و هم‌زمان ۱۲ سالگی تلگرام متن احساسیی راجع به توصیه هایی اون فرد منتشر کرده که خلاصشو این پایین آوردم :

″ پدرم یکی از بزرگ‌ترین متخصص‌های ادبیات روم باستانه و ۳ نکته مهم رو بهم توصیه کرده :

1. با عملت الگو باش، نه با حرفت ، چون بچه‌ها و اطرافیان بیشتر کاری که می‌کنی رو یاد می‌گیرن، نه چیزی که می‌گی.

2. روی جنبه مثبت تمرکز کن ، حتی توی شرایط سخت، افکار رو جوری ببین که بیشترین خیر و اثر مثبت رو بیاره.

3. وجدان رو اولویت بده ، چون اخلاق و وجدان از هوش و استعداد ماندگارتره و حتی در عصر هوش مصنوعی هم ارزشش رو از دست نمی‌ده.

+ بعد پاول این توصیه‌ها رو به تلگرام ربط داده و گفته می‌خواد تلگرام هم همین سه اصل رو دنبال کنه:

- پیشرو بودن و الگو دادن
- وفادار موندن به اصول و وجدان کاری
- مثبت بودن و شادی آوردن برای کاربرها
👍71🕊1🍾1
Forwarded from AI Labdon
اوپن‌ای‌آی یه راهنمای جامع برای GPT-5 منتشر کرده، یه بسته پر و پیمون برای توسعه‌دهنده‌ها که پر از نکته‌های آماده برای استفاده‌ست، راهنمایی برای بهتر کردن استدلال، ساخت اپ بدون نیاز به کدنویسی، و حتی یه متاپرامپت برای بالا بردن کیفیت کلی خروجی.
https://cookbook.openai.com

<محمد زمانی/>
5
معرفی goplay.tools
که با عنوان «Better Go Playground» مشهور است، یک محیط آنلاین توسعه (IDE) برای زبان Go است که با ویژگی‌های پیشرفته، مرزهای Playground رسمی را به‌چالش می‌کشد.


چرا بهتر از Playground رسمی است؟

اByteSizeGo اشاره می‌کند Playground رسمی Go محدودیت‌هایی مثل ثابت بودن زمان (Frozen time)، نبود امکان تست چندفایل، درخواست‌های شبکه‌ای و سرعت اجرایی محدود دارد. در مقابل، goplay.tools انعطاف‌پذیری و امکانات بیشتری ارائه می‌دهد و تجربه‌ی توسعه‌ را جدی‌تر می‌گیرد.


نکات کلیدی جامعه توسعه‌دهندگان

* این پروژه به‌صورت متن‌باز در GitHub با نام x1unix/go-playground توسعه یافته است، محبوبیت قابل توجهی دارد (\~1.4k ستاره) و تحت مجوز MIT عرضه می‌شود.([GitHub][1])
* توسعه‌دهنده در Reddit درخواست‌کننده تست نسخه بتا برای افزونه‌ها بوده است که عبارتند از آموزش‌های Go و … برای بروزرسانی نسخه v2 این ابزار.

---

جمع‌بندی

اgoplay.tools واقعاً گزینه‌ای جذاب برای کسانی‌ست که:

* به امکانات کامل‌تری مانند auto-complete، ویجت‌های تصویری و multi-file نیاز دارند،
* محیط کار با ویژوال پایش قابل تنظیم را می‌پسندند،
* و ردگیری و تمرین Go را با ابزارهای واقعی‌ای که در IDEهای حرفه‌ای استفاده می‌شود، می‌خواهند.
3😘1
نکات ضروری درباره Assembler در Go

1. دستوری Semi-Abstract و مبتنی بر Plan 9

* اسمبلی Go برخلاف زبان‌هایی مثل C یا x86، کاملاً به‌صورت مستقیم به دستورات ماشین نگاشته نمی‌شود. بلکه از یک سطح انتزاعی استفاده می‌کند که از محیط کامپایلر gc سرچشمه می‌گیرد و مبتنی بر Plan 9 است
* بنابراین، زمانی‌که دستوری مثل MOV می‌بینی، ممکن است واقعا معادل آن نباشد و به مفاهیمی مانند load یا clear نگاشته شده باشد.

2. مشاهده اسمبلی تولیدی

* برای دیدن خروجی اسمبلی تابعی مثل `main`، می‌تونید از دستور زیر استفاده کنید:


  go build -gcflags -S x.go


یا:


  go tool compile -S x.go


این دستورها نسخه‌ی semi-abstract اسمبلی تولیدشده را نشان می‌دهند؛ و پس از لینک، دستوراتی استاندارد در Object یا Binary قابل مشاهده خواهند بود

3. تفاوت در ارزیابی Expressions

* در اسمبلی Go از precedence اپراتورها مشابه Go استفاده می‌شود؛ نه مشابه زبان C.
* برای مثال: 3&1<<2 برابر با (3&1)<<2 است و نتیجه آن 4 خواهد بود؛ نه 0

4. سمبل‌ها و نماهای خاص

* در اسمبلی Go برای اشاره به توابع یا متغیرها از سینتکس خاصی استفاده می‌شود، مثلا ·FuncName(SB) (Dot + نام تابع)
* همچنین سورس اسمبلی اگر دارای فایلی با پسوند .s باشد، ابزار go build فایل go_asm.h تولید می‌کند تا offsets ساختارها، مقادیر constant و ... در اسمبلی قابل استفاده باشند

5. دستورات کلیدی و پرچم‌ها

* دستور PCALIGN $n برای ترازسازی (alignment) دستورات به فواصل مشخص کاربرد دارد؛ مخصوصا در حلقه‌های بحرانی یا توابع حیاتی
* دستور go tool asm (یا cmd/asm) با پرچم‌هایی مثل -S, -debug, -D, -o, -shared, و ... استفاده می‌شود برای کنترل خروجی، پیش‌پردازش (#include, #define) و رفتار assembler .
2👍1👾1
چند نکته عملی و مفید از ریپوی Go Practical Tips توسط func25 جمع‌آوری کردم — این نکات به صورت کوتاه و کاربردی برای بهبود کیفیت و نگهداری کدهای Go ارائه شده‌اند. این توصیه‌ها از تجربه واقعی توسعه‌دهنده‌ها و نکات به‌اشتراک‌گذاشته‌شده در توییتر استخراج شده‌اند.
https://github.com/func25/go-practical-tips/blob/main/tips.md
👍21
در برخی شرایط، استفاده از زبان اسکریپتینگ داخلی (مثل Lua) برای پیکربندی، توسعه ویژگی‌های پویا یا سفارشی‌سازی رفتار نرم‌افزار مفید است. این مقاله نشان می‌دهد چگونه زبان Lua (با نسخه ۵.۱) را در اپلیکیشن‌های Go جاسازی (embed) کنیم، با استفاده از کتابخانه‌ی gopher-lua، بدون نیاز به cgo یا وابستگی به کتابخانه‌های C.

این شیوه به شما این امکان را می‌دهد که بدون پیچیدگی‌های cgo یا وابستگی به محیط C، سریع Lua را به پروژه‌های Go خود اضافه کنید و قابلیت‌هایی مثل extensibility یا plugin سازی را فراهم نمایید.

https://otm.github.io/2015/07/embedding-lua-in-go/
🔥5
The latest ebooks for Go (Fundamentals) 101.

Tapir, the author of Go 101, has spent 4+ years on writing the Go 101 book and maintaining the go101.org website. New contents will continue being added to the book and the website from time to time. If you would like to, you can also support Go 101 by buying the book at the following places:

https://github.com/go101/go101/releases/tag/v1.25.e
🔥1👌1
Forwarded from AI Labdon
Kilo combines the best features of AI coding tools into one. Batteries included.
یه ابزار اوپن سورس که میتونید به کمکش از هوش مصنوعی حین کد زدن استفاده کنید یه جورایی رقیب cursor و cline محسوب میشه.

#AI #Tools #Coding #VSCode #IDE #Editor #GPT #Kilo


https://kilocode.ai
3
Forwarded from DevOps Labdon
در این مقاله از وب‌سایت Depot.dev، با عنوان «How we automated GitHub Actions Runner updates with Claude» (منتشر شده در ۱۶ ژوئیه ۲۰۲۵)، یک راهکار عملی برای اتوماسیون بروزرسانی پایشگرهای GitHub Actions ارائه شده که با استفاده از ابزار هوش مصنوعی Claude و به‌کارگیری در گردش‌کار CI، انجام می‌شود.


https://depot.dev/blog/how-we-automated-github-actions-runner-updates-with-claude
1
Forwarded from Gopher Academy
📢 اگر تلگرام پرمیوم دارید، کانال ما رو Boost کنید ! 🚀

با Boost کردن کانال، به رشد و دیده شدن ما بیشتر کمک کنید💙

https://t.me/boost/gopher_academy
2
Forwarded from AI Labdon
اگه دنبال یه ابزاری برای user test هستین ولی یوزر واقعی ندارین یا زمانشو ندارین میتونین از این AI استفاده کنین.
یه پلاگین AI توی فیگماس که براتون تست میکنه و heatmap هم میسازه.

http://figma.com/community/plugin/1397952939678206595/velocity-ai-user-testing-for-prototypes

| <Siavash/>
1
Forwarded from Linux Labdon
دیگر نگران اشتباهات خود در محیط لینوکس و bash نباشید، اینو در نرم افزار جهانی پایتون اینستال کنید، هنگام اکثر ارور ها کافیه یک fuck بدید تا خودش ترتیب اثر بده و حلش کنه

https://github.com/nvbn/thefuck
🔥21
Forwarded from Software Engineer Labdon
بنظرم اینکه خودتون درک کنید تکنولوژی هایی که باهاشون کار میکنید چطور در زیرلایه کار میکنن دید از بالای خوبی به ادم توی کار میده؛ توی این ریپو برای زبان های متخلف ساخت مرحله به مرحله تکنولوژی هایی مثل git, docker, redis, torent , http و sql هست.

https://github.com/codecrafters-io/build-your-own-x?tab=readme-ov-file

<Moj./>
3🔥1🍾11
Forwarded from Bardia & Erfan
🤨 دارک مود؛ ناجی چشم‌ها یا یه توهم مدرن...؟!

خیلیا فکر می‌کنن دارک مود برای چشم سالم‌تره، اما تحقیقات علمی چی میگن؟ بررسی مطالعات جدید نشون میده که دارک مود هم مزایا داره، هم معایب!

مزایای علمی دارک مود :

▪️کاهش نور آبی : نور آبی زیاد، ریتم خواب رو مختل می‌کنه، و دارک مود می‌تونه به خواب بهتر کمک کنه.

▪️کاهش مصرف باتری : روی نمایشگرهای OLED، رنگ‌های تیره مصرف انرژی کمتری دارن.

▪️کاهش خیرگی در محیط‌های کم‌نور : وقتی نور اطراف کم باشه، دارک مود فشار کمتری به چشم وارد می‌کنه.

معایب علمی دارک مود :

▪️کاهش خوانایی متن در روز: چشم انسان به خوندن متن تیره روی پس‌زمینه روشن عادت داره، و دارک مود توی نور زیاد باعث خستگی چشم میشه.

▪️برخی تحقیقات نشون میدن که چشم توی حالت دارک مود بیشتر مجبور به تطبیق و تمرکز میشه، که می‌تونه خستگی ایجاد کنه.

▪️برخلاف تصور عموم، تغییر تم به تنهایی تأثیر زیادی روی کاهش خشکی و خستگی چشم نداره، بلکه میزان پلک زدن و استراحت دادن به چشم مهم‌تره.
👍1🔥1💋1