Dive into the Ultimate Free Library: Your One-Stop Hub for Entertainment!

Gopher Academy

Description
👑 Gopher Academy
🔻https://book.gofarsi.ir
🔷interview golang
https://github.com/mrbardia72/Go-Interview-Questions-And-Answers
🔷 boost
https://t.me/gopher_academy?boost
🕊Admin:
@mrbardia72
@Ja7adR
@AmnRah99

حمایت
https://www.coffeete.ir/gopher_academy
Advertising
We recommend to visit

تخصصی ترین کانال کسب درآمد دلاری ...

در این کانال مهارت سرمایه گذاری و ترید را یاد خواهید گرفت.

راه ارتباطی با من: @EfiSup

Last updated 1 day, 16 hours ago

والپیپر گوشیتو سکسی کن🔥

Last updated 1 week, 3 days ago

تم آیفون و‌ اندروید برای تلگرامت🌙🩵

Last updated 1 month ago

1 month, 1 week ago

یکی از سوال های محبوب مصاحبه بک اند: فرق Kafka و RabbitMQ چیه؟

  1. Performance and Scalability
    کافکا برای throughput بالا و horizontal scalability ساخته شده است. هرچند RabbitMQ پرفرمنس بالایی دارد وقتی throughput و حجم داده زیاد باشد کافکا مناسب تر است.

  2. Message Ordering
    در RabbitMQ در یک صف ترتیب پیام ها حفظ میشود. در کافکا در یک پارتیشن ترتیب پیام های یک topic حفظ میشود اما نه در پارتیشن های مختلف.

  3. Message Priority
    در RabbitMQ از اولویت پیام ها پشتیبانی میشود که اجازه میدهد پیام های با اولویت بالا زودتر پردازش شوند. کافگا به صورت built-in از اولویت پشتیبانی نمیکند.

  4. Message Model
    مدل پیام های RabbitMQ مبتنی بر صف است و از پروتکل AMQP تبعیت میکند اما کافکا مدل لاگ توزیع شده دارد.

  5. Durability:
    برای اینکه پیام ها Durable باشند یعنی اگر failure رخ دهد از بین نروند، در RabbitMQ نیاز به تنظیمات است اما کافکا به طور درونی از این مورد پشتیبانی میکند.

  6. Message Routing
    در Rabbit برای مسیریابی پیام ها پیشرفته تر و با استفاده از exchange و binding انجام میشود اما در کافکا ابتدایی تر و با استفاده از topic و پارتیشن ها انجام میشود.

  7. Replication
    در Rabbit برای replication می توان از Mirrored Queue استفاده کرد. و کافکا نیز به صورت درونی از partition replication پشتیبانی میکند.

  8. Stream Processing
    هر دو کافکا و Rabbit از پردازش Stream پشتیبانی می کنند.

  9. Latency
    طراحی RabbitMQ برای تاخیر کم است و در جایی که نیاز به پردازش نزدیک به realtime است، استفاده میشود.

  10. License
    لایسنس Rabbit از نوع Mozilla Public License و لایسنس کافکا از نوع 2.0 Apache است.

‏RabbitMQ یک message broker اما کافکا یک distributed streaming platform است. 
یک فرق اساسی این است که کافکا pull-based اما RabbitMQ داری پروتکل push-based است.
یک سیستم pull-based صبر می کند تا مصرف کننده ها داده را درخواست کنند.
یک سیستم push-based به صورت اتوماتیک پیام ها را به مصرف کنندهای که subscribe کردهاند میفرستد.
یک سیستم pull-based برای کافکا معنی میدهد. چون در کافکا پیام های هر پارتیشن ترتیب دارد و کاربران می توانند با throughput بیشتری داده ها را دریافت کنند.

‏RabbitMQ یک push model با محدودیت prefetch دارد. برای پیام هایی با low-latency مناسب است. هدف اصلی مدل push این است که پیام ها هر چه سریعتر توزیع شوند اما یکی یکی.

‏RabbitMQ می تواند هر ثانیه 4k تا 10k پیام هر ثانیه بفرستد اما کافکا می تواند ۱ میلیون پیام هر ثانیه بفرستد.
در Rabbit مدل smart broker و dumb consumer استفاده میشود اما در کافکا مدل dumb broker و smart consumer استفاده میشود.
نگه داری پیام در RabbitMQ به صورت acknownledge-based اما در کافکا به صورت policy-based است.
در RabbitMQ هیچ محدودیتی برای سایز payload نیست اما در کافکا به صورت پیش فرض یک مگابایت است.

تمرین عملی: یک اپلیکیشن چت بنویسید که چند نمونه از بک اند بالا باشد و هر کلاینت به یک بک اند وصل شود و از طریق کافکا یا RabbitMQ بک اند ها رو با هم sync کنید.

#DevTwitter |

🕊 @gopher_academy | @GolangEngineers

1 month, 1 week ago

Software Engineer - Developer Experience

Role Qualifications and Requirements:

You have 3+ years of validated experience as a Software Developer. You have worked on the design, development, testing, and monitoring of distributed systems and product(s) that impact millions of customers
You are already proficient in at least one of the following programming languages: Golang, Python, Java, Perl. More importantly, you are eager to learn what is required to develop and support both new and existing solutions
You’re experienced in developing CI/CD infrastructure and Infrastructure as Code (terraform), preferably for multiple teams with varying demands, and have a deep understanding of Git
You are an excellent communicator and able to influence and cooperate with people at all levels

https://jaabz.com/jobs/4109-software-engineer-developer-experience


🕊 @gopher_academy | @GolangEngineers

1 month, 1 week ago

#bytebytego #tips #pro_guide

How do We Design for High Availability?


🕊 @gopher_academy | @GolangEngineers

1 month, 2 weeks ago

🔸استخدام برنامه‌نویس Golang #تهران
🔹تمام‌وقت 🔹ارشد (Senior)

🔗 https://quera.org/r/LomWqj


🕊 @gopher_academy | @GolangEngineers

1 month, 2 weeks ago

🔥 وبینار رایگان SQL Server؛ مسیری به سوی فرصت‌های شغلی بی‌شمار
پنج شنبه 30 فرودین
نیک آموز
ثبت نام رایگان
👇👇👇
B2n.ir/w14908

🕊 @gopher_academy | @GolangEngineers

1 month, 2 weeks ago

🐧 دومین نشست فسا لاگ

🗣 موضوع: ورود به دنیای گنو/لینوکس؛ مقدمات و راه‌اندازی یک توزیع لینوکسی

👨‍💻 ارائه دهنده: دانیال ابراهیمی؛ علاقه مند به شبکه و امنیت

📍مکان برگزاری: سالن میرزاخانی - دانشگاه فسا

📅 دوشنبه ۲۷ فروردین - ساعت ۱۲:۰۰

🤝 حامی برگزاری: دانشگاه فسا (انجمن های مهندسی و علوم کامپیوتر)

حضور برای عموم آزاد و رایگان است.

❗️جهت هماهنگی با حراست دانشگاه، لطفاً هنگام ثبت نام دانشجو بودن یا نبودن خود را مشخص کنید.

لینک ثبت نام:

https://formafzar.com/form/dubz0


🕊 @gopher_academy | @GolangEngineers

1 month, 3 weeks ago
Golang 1.22 Redefines the For Loop …

Golang 1.22 Redefines the For Loop for Easier Concurrency

https://thenewstack.io/golang-1-22-redefines-the-for-loop-for-easier-concurrency/


🕊 @gopher_academy | @GolangEngineers

1 month, 3 weeks ago

🐧 نشست ۱۴ ام جامعه لینوکسی شیراز

🟢 موضوع ارائه : امنیت در کانتینرها

🐦 ارائه دهنده : سعید بستان دوست

🐧 رزومه ارائه دهنده : برنامه نویس و طرفدار دنیای اوپن سورس

🗓تاریخ : سه‌شنبه ۲۱ ام فروردین ماه

ساعت : ۱۷:۰۰ الی ۱۹:۰۰

📍مکان: بلوار مدرس، بلوار آزادگان، کارخانه نوآوری شیراز طبقه دوم انتهای سالن اتاق آموزشی

حامی برگزاری : کارخانه نوآوری شیراز 🍀

حضور برای عموم رایگان میباشد

⭕️ با توجه به محدودیت های ظرفیت برای شرکت کنندگان و مدل رایگان بودن این رویداد، جهت حفظ ارزش آفرینی عدم حضور شما بعد از ثبت‌نام به منزله اضافه شدن نام شما به لیست شرکت کنندگان بد قول جامعه های فعال ما خواهد شد و در صورت تکرار مجدد، از حضور در رویداد‌های رایگان جامعه لینوکسی شیراز به صورت رایگان محدود خواهید شد.

جهت ثبت نام روی لینک زیر کلیک کنید👇🏻
https://shirazlinuxcommunity.ir/event-14

📍Location
OSM : OpenStreetMap
GoogleMap : GoogleMap


🕊 @gopher_academy | @GolangEngineers

1 month, 3 weeks ago

🔵یه تجربه با گولنگ که کدشو برای پردازش هزاران خط متن ورودی بهینه کرده.
مخصوصا در مورد memory allocationها دید خوبی میده و جالبه اگه به پرفورمنس علاقه دارید بخونید:

🔴 https://benhoyt.com/writings/go-1brc/

#terminal_stuff


🕊 @gopher_academy | @GolangEngineers

2 months ago

🔵 برخی از کاربرد های map

🔴Storing Configuration Data:
Maps are often used to store configuration settings where keys represent configuration names and values hold corresponding settings. This allows for easy retrieval and modification of configuration parameters.

🔴Counting Occurrences:
Maps are useful for counting occurrences of elements in a collection. For example, you can use a map to count the frequency of words in a text or the occurrence of specific items in a dataset.

🔴Implementing Caches:
Maps can be employed to create in-memory caches for quick access to frequently accessed data. By using keys as identifiers and values as cached data, maps facilitate fast retrieval without the need for repeated expensive computations.

🔴Grouping Data:
Maps enable grouping related data together based on a common key. This is beneficial when organizing information that shares a common attribute or category.

🔴Error Handling:
Maps can be utilized to store error codes or messages associated with specific error scenarios, allowing for efficient error handling and reporting within an application.

🔴Implementing Lookup Tables:
Maps serve as efficient lookup tables where keys correspond to specific values or actions. This is commonly used in scenarios where quick access to associated data based on a key is required.

🔴Implementing State Machines:
Maps can represent states and transitions in state machines by mapping states to possible transitions or actions, providing a structured way to manage state-based logic.

🔴Data Validation:
Maps can be used for data validation by storing validation rules or constraints associated with different data fields, enabling easy validation checks during input processing.


🕊 @gopher_academy | @GolangEngineers

We recommend to visit

تخصصی ترین کانال کسب درآمد دلاری ...

در این کانال مهارت سرمایه گذاری و ترید را یاد خواهید گرفت.

راه ارتباطی با من: @EfiSup

Last updated 1 day, 16 hours ago

والپیپر گوشیتو سکسی کن🔥

Last updated 1 week, 3 days ago

تم آیفون و‌ اندروید برای تلگرامت🌙🩵

Last updated 1 month ago