Gopher Academy
3.34K subscribers
920 photos
40 videos
280 files
2K links
🕸 Gopher Academy

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

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

ادمین:
@mrbardia72
Download Telegram
همسفر تازه XaaS باشید!

🔔اگر به کار در حوزه‌ی فناوری و زیرساخت ابری علاقه‌ دارید، در حل مسأله‌ها و یادگیری موضوعات جدید توانایید و در هر یک از زمینه‌های‌ شغلی زیر، تخصص و تجربه‌ی کافی دارید، ما در ابر زَس منتظرتان هستیم:

🩷Cloud Engineer
🩷DevOps Engineer
🩷NOC Technician
🩷Backend Developer
🩷Frontend Developer

⭐️ برای دیدن شرح مهارت‌ها و انتظارات هر شغل و ارسال رزومه، روی عنوان آن کلیک کنید و برای آشنایی با سایر فرصت‌های همکاری با ابر زَس به لینک زیر بروید:
🔗 careers.xaas.ir


🤍 @gopher_academy
❤️ @GolangEngineers
Please open Telegram to view this post
VIEW IN TELEGRAM
2👍2🍾11
موارد استفاده از لود بالانسر ها
مورد دیگه هم هست توی کامنت ها بگید
🔻Failure Handling:
Automatically redirects traffic away from malfunctioning elements to maintain continuous service and reduce service interruptions.

🔻Instance Health Checks:
Continuously evaluates the functionality of instances, directing incoming requests exclusively to those that are fully operational and efficient.

🔻Platform Specific Routing:
Routes requests from different device types (like mobiles, desktops) to specialized backend systems, providing customized responses based on platform.

🔻SSL Termination:
Handles the encryption and decryption of SSL traffic, reducing the processing burden on backend infrastructure.

🔻Cross Zone Load Balancing:
Distributes incoming traffic across various geographic or network zones, increasing the system's resilience and capacity for handling large volumes of requests.

🔻User Stickiness:
Maintains user session integrity and tailored user interactions by consistently directing requests from specific users to designated backend servers.


💚 Donate
🤍 @gopher_academy
❤️ @GolangEngineers
👍5
جک دورسی (عضو موسس و مدیر عامل سابق توییتر) گفته که از دیگه در هیات مدیره شبکه بلواسکای نیست. توضیح هم نداده.

البته بلواسکای هم در یک بیانیه هم مساله رو تاکید کرده و گفته دنبال عضو دیگه ای برای هیات مدیره هستن.

مساله اینه که جک دورسی از کسانی بود که بلواسکای رو شروع کرد و برای رشدش هزینه کرد و احتمالا مهمترین آدم پشتش بود. همچنین به نظر میرسه که دورسی حدود یه سال قبل اکانتش رو هم در بلواسکای غیرفعال / حذف کرده باشه.

کسانی که پروتکل رو بررسی کردن معتقدن بلواسکای بر خلاف ادعا یه شبکه بدون مرکز نیست و احتمال داره همین برای دورسی مساله رو غیر جذاب کرده باشه.

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

#جادی
#jadivarlog

💚 Donate
🤍 @gopher_academy
❤️ @GolangEngineers
👍41
چهار الگویتم تاپ در دیتاشاردینگ
مورد دیگه هم هست توی کامنت ها بگید
🔻Range-Based Sharding
This involves partitioning data based on a range of values. For example, customer data can be sharded based on alphabetical order of last names, or transaction data can be sharded based on date ranges.

🔻Hash-Based Sharding
In this method, a hash function is applied to a shard key chosen from the data (like a customer ID or transaction ID).
This tends to distribute data more evenly across shards compared to range-based sharding. However, we need to choose a proper hash function to avoid hash collision.

🔻Consistent Hashing
This is an extension of hash-based sharding that reduces the impact of adding or removing shards. It distributes data more evenly and minimizes the amount of data that needs to be relocated when shards are added or removed.

🔻Virtual Bucket Sharding
Data is mapped into virtual buckets, and these buckets are then mapped to physical shards. This two-level mapping allows for more flexible shard management and rebalancing without significant data movement.


💚 Donate
🤍 @gopher_academy
❤️ @GolangEngineers
5
🎊 Go 1.22.3 and 1.21.10 are released!

🔏 Security: cmd/go: arbitrary code execution during build on darwin; net: malformed DNS message can cause infinite loop

📣 Announcement: https://groups.google.com/g/golang-announce/c/wkkO4P9stm0?pli=1

📦 Download: go.dev/dl/#go1.22.3

☕️ Buy Coffee me!

🕊 @gopher_academy | @GolangEngineers
1
هنگامی که یک برنامه را در وب راه‌اندازی می‌کنید، هر هکری در جهان به آن دسترسی دارد. آیا مطمئن هستید که برنامه‌های وب شما می‌توانند در برابر پیچیده‌ترین حملات مقاومت کنند؟

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

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

🟡 خرید از سایت:

🔗 https://skybooks.ir/products/Grokking-Web-Application-Security


💚 Donate
🤍 @gopher_academy
❤️ @GolangEngineers
🍾62👍1
Forwarded from جادی | Jadi
مرور و بررسی کتاب و فیلم تتریس؛ بازی‌ای که از شوروی به غرب رسید

https://youtu.be/Cc9EHxR_b4g

بازی تتریس رو اکثرا می‌شناسیم؛ بلوک‌هایی که بالا ظاهر می‌شن و ما باید اونها رو اون پایین بچینیم.اما خیلی‌هامون در مورد تاریخچه عجیب وپیچیده تتریس و نقشی که توی ارتباطات جهانی بازی کرده کمتر شنیدیم. کتاب مصور «تتریس» با کلی عکس تعریف می‌کنه که این بازی چطوری در زمان بیکاری یه مهندس در شوروی درست شد و چطوری پلی شد بین کمونیسم و سرمایه‌داری. در آخر ویدئو نگاهی هم به فیلمی به همین اسم می‌کنیم که در فضایی هالیوودی، ماجرای مشابهی رو روایت کرده.

برای پیدا کردن کتاب‌ها یکی از جاهای ممکن، لیبجن است.
5👍1🍾1
<<<افزایش Performance دیتابیس با قابلیت Thread Pool>>>

💚 Donate
🤍 @gopher_academy
❤️ @GolangEngineers
👍7
The_6_Most_Impactful_Ways_Redis_is_Used_in_Production_Systems.pdf
2.1 MB
#bytebytego #tips #pro_guide

The 6 Most Impactful Ways Redis is Used in Production Systems

☕️ Buy Coffee me!

🕊 @gopher_academy | @GolangEngineers
Please open Telegram to view this post
VIEW IN TELEGRAM
3
حجم در ایمیج داکر اهمیت زیادی داره،
با analyze بسته های داخلی یک ایمیج به وسیله docker-phobia و Visualize کردن آنها میتونیم راحتر بفهمیم هر بسته چقدر از حجم ایمیج را به خودش اختصاص داده
https://github.com/remorses/docker-phobia

You can install docker-phobia with:
go install github.com/remorses/docker-phobia@latest


Usage
docker-phobia
# Use the arrow keys to navigate: ↓ ↑ → ←
# ? Select a Docker image:
# ▸ node:18-slim
# postgres:latest

# or pass the image tag as an argument
docker-phobia node:18-slim


#DevTwitter | <MehrdadLinux/>

💚 Donate
🤍 @gopher_academy
❤️ @GolangEngineers
7👍1
عملکرد کلمه fallthrough در switch چیست؟
anonymous poll

کار آن به این گونه است که اگر آن case اجرا شد میگوید case بعد از آن نیز اجرا شود. – 28
👍👍👍👍👍👍👍 55%

عملکرد آن پرش از case ایی هست که در آن استفاده شده است. – 18
👍👍👍👍👍 35%

عملکردی همانند break دارد. – 3
👍 6%

چنین کلمه‌ی رزرو شده ایی در گولنگ وجود ندارد. – 2
👍 4%

👥 51 people voted so far. Poll closed.
🍾8
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4🍾1
Gopher Academy via @vote
عملکرد کلمه fallthrough در switch چیست؟ anonymous poll کار آن به این گونه است که اگر آن case اجرا شد میگوید case بعد از آن نیز اجرا شود. – 28 👍👍👍👍👍👍👍 55% عملکرد آن پرش از case ایی هست که در آن استفاده شده است. – 18 👍👍👍👍👍 35% عملکردی همانند break دارد. –…
برای تست مفهوم کوییز بالا میتوانید از این تیکه کد استفاده کنید.
package main

import "fmt"

func main() {
test := "test"
switch test {
case "test":
fmt.Println("this is test")
fallthrough
case "other test", "another test", "with test":
fmt.Println("this is other test or another test or with test")
default:
fmt.Println("this is default")
}
}


🕊 @gopher_academy | @GolangEngineers
1
اونقدر ها هم همزمانی توی گو آسون نیست

https://buttondown.email/hillelwayne/archive/what-makes-concurrency-so-hard/


💚 Donate
🤍 @gopher_academy
❤️ @GolangEngineers
🍾54
هیچوقت از شرکتی که اونجا مشغول به کار هستید تعریف.......

💚 Donate
🤍 @gopher_academy
❤️ @GolangEngineers
👍18🤣1
مسئول HR به محض اینکه بفهمه تهران زندگی نمیکنی، قرار مصاحبه رو کنسل میکنه! این درحالیه که تو برای موقعیت شغلی دورکاری درخواست فرستادی و توی رزومه‌ات تاکید کردی که من تهران نیستم.

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

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

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

برای شنیدن اپیزود لطفا با فیلترشکن کلیک کنید.

⭕️ در کست باکس:
https://lnkd.in/dvQSGTVQ


⭕️ در اسپاتیفای:
https://lnkd.in/dUtywGWw


💚 Donate
🤍 @gopher_academy
❤️ @GolangEngineers
👍1432🍾1
The_Tech_Promotion_Algorithm_A_Structured_Guide_to_Moving_Up.pdf
3.3 MB
#bytebytego #tips #pro_guide

The Tech Promotion Algorithm A Structured Guide to Moving Up

☕️ Buy Coffee me!

🕊 @gopher_academy | @GolangEngineers
Please open Telegram to view this post
VIEW IN TELEGRAM
4
GITHUB FLOW or GIT FLOW ?
Anonymous Poll
28%
GITHUB FLOW
75%
GIT FLOW
👍1
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
for loop in golang in idiomatic way

func main() {
i := 0
for ok := true; ok; ok = (i != 10) {
fmt.Print(i*i, " ")
i++
}
}

» output: 0 1 4 9 16 25 36 49 64 81
#go_idiom

🕊 @gopher_academy | @GolangEngineers
👍3
✍️Soheib KianiSoheib Kiani
مواردی که شاید بهش کمتر توجه شده در بک اند:

۱. Serverless Computing (محاسبات بدون سرور): توسعه نرم‌افزارهایی بدون نیاز به مدیریت زیرساخت زیرین.
۲. Event-Driven Architecture (معماری مبتنی بر رویداد): ساخت سیستم‌هایی که به رویدادها و ارسال پیام‌ها واکنش نشان می‌دهند.
۳. Distributed Systems (سیستم‌های توزیع‌شده): طراحی و مدیریت نرم‌افزارهایی که در چندین سرور یا مکان قرار دارند.
۴. Message Brokers (بروکرهای پیام): پیاده‌سازی سیستم‌های پیام‌رسانی قابل مقیاس و قابل اطمینان برای ارتباط بین اجزا یا سرویس‌ها.
۵. Data Streaming (استریم داده): پردازش و تحلیل داده‌های زمان‌واقع با استفاده از فناوری‌هایی مانند Apache Kafka یا RabbitMQ.
۶. Data Replication and Synchronization (تکثیر و همگام‌سازی داده): اطمینان از همگرایی داده در چندین پایگاه داده یا نسخه پشتیبان.
۷. Data Serialization (سریال‌سازی داده): تبدیل ساختارهای داده‌ای پیچیده به یک فرمت مناسب برای ذخیره یا انتقال.
۸. Job Scheduling and Task Orchestration (برنامه‌ریزی و هماهنگ‌سازی وظایف): مدیریت و اجرای وظایف دوره‌ای یا برنامه‌ریزی شده در سیستم‌های توزیع‌شده.
۹. Search Engines and Indexing (موتورهای جستجو و فهرست‌بندی): پیاده‌سازی قابلیت جستجوی متن‌کامل با استفاده از فناوری‌هایی مانند Elasticsearch یا Apache Lucene.
۱۰. Distributed Caching (حافظه نهان توزیع‌شده): ذخیره سازی داده در چندین نود برای بهبود عملکرد و کاهش بار پایگاه داده.
۱۱. Load Balancing and Traffic Routing (توزیع بار و مسیریابی ترافیک): توزیع ترافیک شبکه ورودی بین چندین سرور یا سرویس.
۱۲. API Gateways (دروازه‌های API): مدیریت و امن‌سازی درخواست‌های API از سمت مشتریان و سرویس‌ها.
۱۳. Service Discovery and Registration (کشف و ثبت سرویس): خودکارسازی کشف و ثبت سرویس‌ها در یک شبکه.
۱۴. Distributed File Systems (سیستم‌های فایل توزیع‌شده): ذخیره سازی و مدیریت حجم بزرگی از داده در چندین سرور یا نود.
۱۵. Stream Processing (پردازش جریان داد۱۵. Stream Processing (پردازش جریان داده): تحلیل و پردازش پیوسته داده‌ها در زمان واقعی.
۱۶. Database Connection Pooling (اشتراک اتصال به پایگاه داده): مدیریت و استفاده مجدد اتصال‌های پایگاه داده برای بهبود عملکرد و قابلیت مقیاس‌پذیری.
۱۷. Database Partitioning (تقسیم‌بندی پایگاه داده): تقسیم پایگاه داده‌های بزرگ به بخش‌های کوچکتر برای بهبود عملکرد و قابلیت مقیاس‌پذیری.
۱۸. Database Sharding (شاردینگ پایگاه داده): تقسیم افقی داده‌ها بین چندین پایگاه داده یا سرور.
۱۹. Distributed Transactions (معاملات توزیع‌شده): تضمین همگرایی داده در چندین پایگاه داده یا سرویس در سیستم‌های توزیع‌شده.
۲۰. Blockchain Integration (یکپارچه‌سازی با زنجیره‌بلوک): ادغام فناوری زنجیره‌بلوک برای ذخیره و انجام تراکنش‌های امن و شفاف.
۲۱. Content Delivery Networks (CDNs) (شبکه‌های توزیع محتوا): بهینه‌سازی تحویل محتوا با ذخیره‌سازی و توزیع محتوا در سرورهای جغرافیایی توزیع شده.
۲۲. Workflow Engines (موتورهای گردش کار): پیاده‌سازی و مدیریت گردش کارها و فرآیندهای کسب و کار پیچیده.

💚 Donate
🤍 @gopher_academy
❤️ @GolangEngineers
👍93🍾21