Gopher Academy
3.34K subscribers
918 photos
40 videos
279 files
1.99K links
🕸 Gopher Academy

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

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

ادمین:
@mrbardia72
Download Telegram
panic signals "the programmer has made a fundamental mistake and execution cannot continue safely",

os. Exit signals "the programmer has decided that the process should terminate here"


👑 @gopher_academy
🔥3🙏1
Gopher Academy
panic signals "the programmer has made a fundamental mistake and execution cannot continue safely", os. Exit signals "the programmer has decided that the process should terminate here" 👑 @gopher_academy
1. `panic`:

- یک خطای runtime ایجاد می‌کند و اجرای برنامه را متوقف می‌کند.
- قبل از خروج، توابع و تأخیرهای defer اجرا می‌شوند.
- مناسب برای مدیریت خطاهای جدی و ناپیش‌بینی‌شده که باید با پیام و گزارش خطا همراه باشند.

2. `os.Exit`:

- بلافاصله برنامه را با کد خروج تعیین‌شده متوقف می‌کند.
- از اجرای توابع defer صرف‌نظر می‌کند، بنابراین منابع ممکن است آزاد نشوند.
- مناسب برای خروج صریح بدون نیاز به اجرای cleanup.


👑 @gopher_academy
🔥4👍1💯1
💬 دوستان عزیز، درود!

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

این اطلاعات شامل لینک‌ها، مقالات، تجربیات شخصی و هر نکته کاربردی و ارزشمند دیگری می‌شود. 🙏

📩 لطفاً مطالب خود را از طریق ای دی زیر به من ارسال کنید👇

@mrbardia72

از همکاری شما دوستان سپاسگذارم! ❤️
🔥7👍1💘1
🔵 عنوان مقاله
Toxiproxy 2.10: A TCP Proxy to Simulate 'Chaotic' Network Conditions

🟢 خلاصه مقاله:
مقاله مورد نظر به بررسی ابزار Toxiproxy اختصاص دارد که برای آزمایش قابلیت اطمینان و مدیریت خطاهای سیستم‌ها در شرایط بحرانی طراحی شده است. Toxiproxy یک پروژه طولانی‌مدت توسعه داده شده توسط Shopify است که می‌تواند در شبکه‌های زیربنایی که سیستم به آن وابسته است، مشکلاتی از قبیل تأخیر در انتقال داده‌ها، محدودیت پهنای باند و قطع اتصال‌ها پس از انتقال مقدار معینی از داده‌ها را شبیه‌سازی کند. هدف از این ابزار، تحت فشار قرار دادن سیستم‌ها و ارزیابی عملکرد آن‌ها در شرایط نامساعد شبکه است تا به مدیران سیستم امکان دهد سیاست‌های مقابله‌ای و بهبود بخشیده‌ای را در پردازش خطاها و مسائل مربوط به قابلیت اطمینان برنامه‌ریزی کنند. Toxiproxy به عنوان ابزاری مفید و کاربردی برای توسعه‌دهندگان نرم‌افزار و مدیران شبکه قابل استفاده است، تا بتوانند به طور م wirام سیستم‌های خود را در برابر پیچیدگی‌ها و اختلالات احتمالی در شبکه آماده سازند.

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


👑 @gopher_academy
👍1💘1
🔵 عنوان مقاله
Writing Secure Go Code

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

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


👑 @gopher_academy
👍41
🔵 عنوان مقاله
How to Compare Postgres EXPLAIN Plans & Tune Slow Queries

🟢 خلاصه مقاله:
در وبینار آتی برای توسعه‌دهندگان نرم‌افزار به بررسی علت کُند بودن پرس‌و‌جوهای PostgreSQL در برنامه‌های نوشته شده با زبان Go و راه‌های بهینه‌سازی آنها پرداخته می‌شود. استفاده از ابزار pganalyze، این امکان را فراهم می‌آورد تا با مقایسه‌ی برنامه‌های اجرایی و عیب‌یابی سناریوهای رایج مثل حلقه‌های تودرتوی ناکارآمد و نبود شاخص‌ها (indexes)، به شناسایی و رفع مشکلات کمک شود. این وبینار فرصتی است تا توسعه‌دهندگان بتوانند دانش خود را در زمینه‌ی تشخیص و تنظیم پرس‌و‌جوهای PostgreSQL بهبود ببخشند و در نتیجه، عملکرد برنامه‌های Go خود را ارتقاء دهند.

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


👑 @gopher_academy
2👍1
🔵 عنوان مقاله
jsony: A 'Blazing Fast', Safe JSON Serialization Library

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

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


👑 @gopher_academy
👍2
🔵 عنوان مقاله
Checking the Top 10 Million Web Sites with Go

🟢 خلاصه مقاله:
مقاله‌ای با عنوان "27.6% از 10 میلیون سایت برتر مرده هستند" بیشتر به بررسی استفاده از زبان برنامه‌نویسی Go برای اسکریپینگ (استخراج داده) از وب‌سایت‌ها به صورت مقیاس‌پذیر و بازدهی بالا می‌پردازد. در این تحقیق، از ترکیب Redis با Go همراه با تجهیزات سخت‌افزاری قدرتمند استفاده شده است تا تنها در ده دقیقه، اطلاعات مربوط به وضعیت 10 میلیون سایت برتر اینترنت بررسی شود. این عملیات با سرعت تقریبی 17 هزار درخواست در ثانیه صورت گرفته و نتیجه آن نشان داده است که تقریباً 27.6 درصد از این سایت‌ها دیگر فعال نیستند. کدهای برنامه برای عموم منتشر شده‌اند تا دیگران نیز بتوانند از این روش در تحقیقات مشابه استفاده کنند یا آن را بهبود بخشند.

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


👑 @gopher_academy
👍2
🔵 عنوان مقاله
Building Thread-Safe Abstractions in Java vs Go

🟢 خلاصه مقاله:
مقاله‌ای که مورد بررسی قرار گرفته، به مقایسه و ترجمه بخش‌هایی از پیاده‌سازی SimpleDB از زبان برنامه‌نویسی جاوا به گو می‌پردازد. این مقاله تفاوت‌های اصلی بین ابزارهای همزمانی و همگام‌سازی که هر دو زبان ارائه می‌دهند را بررسی می‌کند. در جاوا، مدل‌های همگام‌سازی بر پایه‌ی روش‌های thread-based synchronization مانند wait/notify و lock استفاده می‌شود، در حالی که گو از goroutines و channels برای اجرای همزمانی بهره می‌برد که راهکاری بسیار سبک‌تر و مدیریت شده‌تری را فراهم می‌کند. مقاله توضیح می‌دهد که چگونه تغییر زبان می‌تواند بر عملکرد و ساختار کد تأثیر بگذارد و چالش‌ها و مزیت‌های مربوط به استفاده از Go در مقایسه با Java را ارزیابی می‌کند. این بررسی می‌تواند به تصمیم‌گیری در خصوص انتخاب زبان مناسب برای پروژه‌های مختلف کمک کند.

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


👑 @gopher_academy
👍2
درخواست موقعیت شغلی دورکاری فرانت‌اند Vue.js

با درود

من به دنبال یک فرصت شغلی دورکاری به عنوان توسعه‌دهنده فرانت‌اند با تخصص در Vue.js هستم. با داشتن چندین سال تجربه در توسعه وب، مهارت‌های زیادی در طراحی رابط کاربری جذاب، بهینه‌سازی تجربه کاربری (UX) و پیاده‌سازی پروژه‌های مبتنی بر Vue.js کسب کرده‌ام.

من به دنبال شرکتی هستم که فرهنگ دورکاری را پذیرفته و امکان همکاری از راه دور را فراهم کند. هدف من مشارکت در تیم‌های پویا و نوآور است تا بتوانم مهارت‌هایم را در پروژه‌های چالش‌برانگیز به کار گیرم و به رشد و موفقیت پروژه‌ها کمک کنم.

ممنون می‌شوم اگر فرصت گفت‌وگویی برای بررسی همکاری بیشتر فراهم شود.

با تشکر،

برای ارتباط و دریافت رزومه به من پیام بدید

@arminsb1
👍3🤝1
🔵 عنوان مقاله
Constraints in Go

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

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


👑 @gopher_academy
👍1
Better Go Playground

https://goplay.tools

Better Go Playground with autocomplete and syntax highlight support.


👑 @gopher_academy
👍4
🔵 عنوان مقاله
Ranging Over Functions in Go 1.23

🟢 خلاصه مقاله:
این مقاله به بررسی ویژگی جدیدی به نام range-over در ورژن 1.23 می‌پردازد و چندین مثال از کاربردهای آن شامل ایتراتورهای خطی ساده، ایتراتورهای بازگشتی، و توضیح مختصری درباره تفاوت‌های ایتریشن نوع push و pull را ارائه می‌دهد. مقاله با بحث در مورد ایتراتورهای خطی ساده آغاز می‌شود که این امکان را به برنامه‌نویسان می‌دهد تا به صورت مستقیم و سریع توالی‌های داده‌ای را پیمایش کنند. سپس به ایتراتورهای بازگشتی پرداخته شده که کاربردی در ساختارهای داده‌ای پیچیده‌تر دارند. در نهایت، مقاله با بررسی مختصر رویکردهای push و pull در ایتریشن به پایان می‌رسد و تفاوت‌های استراتژیک و کارایی میان این دو روش را مورد بررسی قرار می‌دهد. این ویژگی جدید، که عملاً بینش‌هایی به بهبود کارایی و ساختار کد در برنامه‌نویسی می‌افزاید، به برنامه‌نویسان اجازه می‌دهد تا با استفاده از روش‌های جدید، کدهای خود را بهینه‌تر و خواناتر طراحی کنند.

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


👑 @gopher_academy
👍2
🥂امروز 10 november هست روزی که گولنگ به دنیا اومد🎂


🍻زادروزت خجسته باد

❤️Go
🔹High-level programming language

🫡Go is a statically typed, compiled high-level programming language designed at Google by Robert Griesemer, Rob Pike, and Ken Thompson. It is syntactically similar to C, but also has memory safety, garbage collection, structural typing, and CSP-style concurrency. Wikipedia

🔻Designed by: Robert Griesemer, Rob Pike, Ken Thompson

🔻First appeared: November 10, 2009; 14 years ago

🔻Implementation language: Go, Assembly language (gc); C++ (gofrontend)

🔻License: 3-clause BSD + patent grant

🔻Memory management: Garbage collection

🔻OS: DragonFly BSD, FreeBSD, Linux, macOS, NetBSD, OpenBSD, Plan 9, Solaris, Windows

🔻Paradigm: Multi-paradigm: concurrent imperative, functional object-oriented


👑 @gopher_academy
10🍾3👍2💘1
🔵 عنوان مقاله
  The Business of Go

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

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


👑 @gopher_academy
👍1
🔵 عنوان مقاله
vgt: The 'Missing Tool' for Visualizing Go Tests?

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

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


👑 @gopher_academy
👍2
🔵 عنوان مقاله
Run GitHub Actions Up to 2x Faster at Half the Cost

🟢 خلاصه مقاله:
مقاله مورد بررسی به ابزاری به نام Blacksmith اشاره دارد که با استفاده از آن می‌توان عملیات GitHub Actions را به طور قابل توجهی سریع‌تر انجام داد. این افزونه با به کارگیری پردازنده‌های مدرن مورد استفاده در سیستم‌های گیمینگ، عملیات مربوط به ادغام کد را تسریع می‌بخشد. یکی از ویژگی‌های قابل توجه Blacksmith این است که تنها با اعمال یک خط تغییر کد، می‌توان آن را به پروژه‌های موجود اضافه کرد. بیش از صد شرکت نظیر Ashby, Superblocks و Slope از این ابزار استفاده می‌کنند تا فرآیند توسعه نرم‌افزاری در تیم‌های خود را بهینه‌سازی و سرعت بخشیده و به توسعه‌دهندگان امکان دهند که کدهای خود را سریع‌تر ادغام کنند.

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


👑 @gopher_academy
🔥2
Forwarded from Bardia & Erfan
قانون هافستتر نسبتا ساده است: هر چیزی بیشتر از اون چیزی که انتظارش رو دارین طول می‌کشه؛ حتی اگر قانون هافستتر رو هم در موردش رعایت کرده باشین.

معمولا برنامه نویس‌ها موقع تخمین زدن زمان مورد نظر هر کاری به این قانون استناد می‌کنن تا تخمین بازتری بزنن؛ و بازم کار بیشتر طول می‌کشه.

#هکر #قوانین_هکرها #سفر #ویدئو

https://youtu.be/Ki3iirSd55U


👑 @labdon_academy
👍3
🔵 عنوان مقاله
Go Beyond Limits with Golang, Rust, Docker & K8s

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

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


👑 @gopher_academy
👍1