Go Casts 🚀 – Telegram
Go Casts 🚀
7.67K subscribers
279 photos
20 videos
13 files
497 links
VP of Eng Zarinpal | Ex Snapp! Senior SE
فوق لیسانس هوش مصنوعی از دانشگاه تهران

اشتراک محتوا در مورد مهندسی نرم افزار، هوش مصنوعی، گولنگ
https://gocasts.ir

پروفایل
https://www.linkedin.com/in/gohossein

ارتباط
@lifography

Ai for Software
@aicasts_ir
Download Telegram
یکی از شوخی ترین و هوشمندانه ترین بهبودهایی که میتونه تاثیر خیلی زیادی در عملکرد انواع سرویس ها بذاره، از سرورهای دیتابیس گرفته تا سرورهای سرویس های بکند و gateway و هر سرویس دیگه ای که روی سرور تعداد درخواست tcp همزمان زیادی داره...

بهبودی که باعث میشه تا ۴۰ درصد عملکرد درخواست های tcp بهتر بشه چی هست؟ تغییر ترتیب متغیرها!!! همین...

Google Patches Linux kernel with 40% TCP performance
https://www.youtube.com/watch?v=qo1FFNUVB-Q

@gocasts
🔥21👍3
سال نو مبارک 🌹

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

مثل همیشه ممنون از اینکه هستید، امیدوارم در سال جدید بتونم سهم بیشتری از دانش اندکم رو با شما به اشتراک بذارم و کلی مطلب خفن از شما یاد بگیرم 🔥

مخلص همه
یا علی 🌹

@gocasts
56👍1
🚀 مایکروسافت ابزار open-source خودش رو برای  kubernetes network observability معرفی کرد.
https://retina.sh

👨‍💻 این ابزار با golang نوشته شده که میشه کلی از کدش یاد گرفت.

🧨 این ابزار eBPF based هست که برای network observability فوق العاده قدرتمند هست.

چند وقت پیش در مورد اهمیت eBPF نکاتی گفته شده بود.
https://news.1rj.ru/str/gocasts/333

@gocasts
👍27
در مورد عوامل موفقیت شغلی اگه دوست داشتید کامنت بذارید که صحبت کنیم

https://www.instagram.com/stories/gocasts.ir/3330008040894470952?utm_source=ig_story_item_share&igsh=eGhsNHhqM3Vvcnc3

@gocasts
14🔥1
Go Casts 🚀
در مورد عوامل موفقیت شغلی اگه دوست داشتید کامنت بذارید که صحبت کنیم https://www.instagram.com/stories/gocasts.ir/3330008040894470952?utm_source=ig_story_item_share&igsh=eGhsNHhqM3Vvcnc3 @gocasts
مرسی از دوستانی که در اینستاگرام و تلگرام همراهی کردند، سعی کردم در یک رشته استوری مفصل در مورد «بسترسازی & موفقیت» صحبت کنم. دوست داشتید از طریق این لینک میتونید بخونید.

https://www.instagram.com/s/aGlnaGxpZ2h0OjE4MDkyMzUzMjQ2NDE1MDQ0?igsh=NWp1aXhsZDFma3B5

@gocasts
21
اگه این نقل قول مهم یوهان کرایف فقید رو به کامپایلر بدی، خروجی ش میشه این که: «کد زدن» ساده است، اما «ساده کد زدن» سخت ترین کار ممکنه 😊

@gocasts
#کد_فوتبال
#code_football
32👍26
تو همین روزها که Redis لایسنس open-sourceش رو محدود کرد، مایکروسافت یه جایگزین معرفی کرده به اسم Garnet که open-source هست و طبق ادعای خودش performanceبهتری داره.

مزیت اصلی ش اینه که با کلاینت های فعلی ردیس هم سازگاری داره و احتمالا بدون مشکل از کلاینت های فعلی ردیس بتونید برای استفاده از garnet استفاده کنید که تصمیم بسیار هوشمندانه ای بوده.

Introducing Garnet – an open-source, next-generation, faster cache-store for accelerating applications and services
https://www.microsoft.com/en-us/research/blog/introducing-garnet-an-open-source-next-generation-faster-cache-store-for-accelerating-applications-and-services/

اینم لینک گیتهاب
https://github.com/microsoft/garnet

@gocasts
🔥22👍155
تو اینستاگرام در مورد نگرانی های مصاحبه صحبت میکنیم، دوست داشتید نظرتون رو بگید، بنده هم جواب میدم

لینک اینستاگرام
https://www.instagram.com/gocasts.ir


@gocasts
2
چالش طراحی سیستم ارسال نوتیفیکیشن


در نظر بگیرید که قراره یه سرویس نوتیفیکیشن رو طراحی کنید که شرایط زیر رو داشته باشه:
- بتونه برای همه کاربران سیستم (بیش از ۵۰ میلیون کاربر) نوتیفیکیشن ارسال کنه
- بتونه برای یک سری از کاربران (مثلا ۱۰ میلیون کاربر) نوتیفیکیشن ارسال کنه
- بشه از طریق کانال های مختلف (ایمیل، پیامک، نوتیفیکیشن درون برنامه ای) ارسال کرد
- بشه نوتیفیکیشن های درون برنامه ای کاربران رو ردیابی کرد که وضعیت شون خوانده شده، خوانده نشده است

دغدغه اول، طراحی دیتابیس رو چطور انجام میدید که هم نوتیفیکیشن سیستمی رو پشتیبانی کنه و هم نوتیفیکیشن برای تعدادی کاربر؟ به ازاء هر کاربر یک رکورد در دیتابیس ذخیره می کنید؟ چه دیتابیسی رو استفاده می کنید؟

دغدغه دوم، ارسال این همه نوتیفیکیشن از طریق کانال های مختلف رو چطوری مدیریت می کنید؟ از چه ابزارهایی استفاده می کنید؟

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

اگه تمایل داشتید نظر بدید میتونید ویس بفرستید تو کامنت

اگه در مورد این چالش طراحی منبع خوبی رو میشناسید لینکش رو به اشتراک بذارید

@gocasts
👍414
مقاله ای که لینکش رو گذاشتم نکات جالبی رو اشاره میکنه
من چند ساله که خیلی کم از ORM استفاده می‌کنم، علت های مختلفی داره، از جمله اینکه:
- خود SQL به اندازه کافی یه declarative interface قشنگ بین لایه اپلیکیشن و داده های واقعی دیتابیس هست که بین سرویس های مختلف دیتابیس (mysql و postgres و غیره) هم تا حد زیادی مشترکه و لازم نیست یک لایه interface دیگه اضافه بشه
- اگه repository pattern رعایت بشه معمولا حجمی از کد که باید تغییر کنه قابل مدیریت هست و نگرانی ای بابتش وجود نداره
- اگه قرار به تغییر دیتابیس باشه، احتمالا یه جنس کاملا متفاوت از دیتابیس هست (برخلاف چیزی که مقاله میگه)، یعنی شما قرار نیست از mysql به postgres مهاجرت کنید، احتمالا از mysql به mongodb مهاجرت میکنید که تو این شرایط orm خیلی کمکی بهتون نمیکنه
- سرویس ها اگه modular نوشته بشن یا اگه بصورت microservice و nanoservice باشن، کلا حجم کد اونقدری نمیشه که کدهای لایه دیتابیس بخواد تغییرش دغدغه ایجاد کنه
- کدهای sql خوانایی بیشتری داره تا استفاده از انواع مختلف و عجیب متدهای orm و همچنین انعطاف بیشتری داره و شما مستقیما میتونید با دیتابیس صحبت کنید

طبیعتا بحث من این نیست که orm استفاده نداره، اما در خیلی از موارد ترجیح من plain sql هست


https://www.blackparrotlabs.io/post/architecture-pitfalls-dont-use-your-orm-entities-for-everything

@gocasts
👍44🔥31
چالش جذابیه، من خودم سعی میکنم به کمک تراکنش دیتابیس موجودی رو در حین عملیات بروز کنم که مشکلی پیش نیاد. یکی از دوستان در کامنت ها اشاره کردن که بهتره یه سری جاب باشه برای مغایرت گیری که خیلی پیشنهاد خوبیه، کلا sanity check داشتن برای اطلاعات مهم سرویس خیلی میتونه به کشف باگ هایی که تشخیص داده نمیشن به شیوه های مرسوم کمک کنه، چون شما مسیر کشف باگ رو معکوس طی میکنی، یعنی جای اینکه کلاینت بگه باگ وجود داره، خود سیستم باگ رو از طریق مغایرت های داده کشف میکنه و تشخیص میده که باگ وجود داره و حالا باید دنبال مسیری که باگ بوجود اومده باشید


https://www.linkedin.com/feed/update/urn:li:activity:7179891071240273920

@gocasts
👍36
تخفیف عید فطر - آخرین تخفیف به قیمت سال گذشته

سلام به همگی، عید سعید فطر مبارک

توضیحات مفصل صوتی در مورد دوره و تیمسازی
https://news.1rj.ru/str/gocasts/369

نمونه فیلم های دوره
https://news.1rj.ru/str/gocasts/367

ضمانت بازگشت وجه
https://news.1rj.ru/str/gocasts/370

پرسش و پاسخ
https://news.1rj.ru/str/gocasts/337

لینک جزییات دوره
https://gocasts.ir/gocasts-bootcamp-140110


دوستانی که در خرید دوره تردید دارند میتونن برای مشاوره کوتاه تلفنی، فرم زیر رو پر کنند
https://survey.porsline.ir/s/ATeQL4b4


@gocasts
14👍3🔥3
Go Casts 🚀
در این ویدیو سعی کردم به نکته مهمی که گاها در مصاحبه بهش توجه نمیشه بپردازم https://youtu.be/A4XG75rW8xw لینک جزییات دوره و تیمسازی بکند و گولنگ https://gocasts.ir/gocasts-bootcamp-140110 توضیحات مفصل صوتی در مورد دوره و تیمسازی https://news.1rj.ru/str/gocasts/369…
یکی از دوستان با ۴، ۵ سال سابقه فرانت چند روز پیش گله میکرد که در پروسه مصاحبه سوالات الکی سخت فنی میپرسن و همین باعث میشه پروسه مصاحبه خوب پیش نره!!!
خدمتش عرض کردم که شما که ۴، ۵ سال سابقه خوب فنی داری، سعی کن تجربیات خودت رو با ادبیات درست فنی بیان کنی که همین باعث میشه نظر مثبت مصاحبه کننده تا حدود زیادی جلب بشه و کمتر سوالات الکی فنی از شما بپرسه...

امروز صبح تماس گرفته میگه که باورم نمیشه که دو تا شرکت مصاحبه دادم، هیچ کدوم سوالات الکی نپرسیدن و یکی شون گفته تجربیات ت خیلی خوبه بیا لید تیم فرانت شو!

میدونم حس «کلید اسرار» بهتون دست داده ولی مبالغه نمیکنم و اتفاقیه که در همین چند روز افتاده...

نکته ای که در ویدیو گفتم در همین رابطه ست

@gocasts
👍37🔥91
Go Casts 🚀
بسی لذت بردم از خوندن این مقاله درس بزرگش استفاده از راه حال های خیلی ساده حتی برای scale خیلی بزرگی مثل pinterest هست یکی از نکات جالب این مقاله استفاده از دیتابیس های master بود و از slave فقط برای بکاپ استفاده میکردن، همه read و writeهای production روی…
تیم مهندسی فیگما تصمیم گرفته که راه حل sharding خودش رو پیاده سازی کنه، بحث sharding یکی از چالش هایی هست که در استفاده از دیتابیس های سنتی باهاش مواجه خواهید شد اگه حجم داده های شما بیش از حد زیاد بشه. یکی از ابزارهایی که MySQL داره ProxySQL داره که خیلی ابزار کمک کننده ای هست، هر کدوم از این ابزارها چالش های خودشون رو دارند، اما وقتی که به scale فکر میکنید، برای انتخاب دیتابیس به ابزارهای جانبی دیتابیس هم فکر کنید که مجبور نشید چرخ رو از اول اختراع کنید که براتون دردسر ایجاد کنه.

Why Has Figma Reinvented the Wheel With PostgreSQL?
https://medium.com/@magda7817/why-has-figma-reinveted-the-wheel-with-postgresql-3a1cb2e9297c

ProxySQL
https://proxysql.com/


@gocasts
👍19
سلام
یکی از دوستان موقعیت شغلی ای که ویزا اسپانسرشیپ رو داره معرفی کرده، اگه به کارتون میاد بررسی کنید

بقیه رو اینجا منتشر میکنم که کانال شلوغ نشه
@golangjobs_ir

#job_offer

Senior Golang Engineer (all genders) in SPAIN

company: urban sports club


Our offer to you

Relocation support for you and your family
An interesting Tech Stack. Check it out here.
We’re working in hybrid mode offering you flexibility to work onsite and from home
WorkOUT Life Balance: 30 days paid vacation per year, flexible working hours, free access to our Employee Assistance Program, plus up to 3 months of remote working from anywhere in the EU, desk swap policy allowing additional remote working time from our other European offices
Regular team events and other initiatives helping employees to stay productive, healthy and engaged during hybrid mode
Personal development perks including regular internal trainings, German and English language classes
Many additional perks including: choice of computer/technology, employee referral bonuses, monthly home office allowance, private health insurance, and more
A free Urban Sports Club L Pro Membership

https://jaabz.com/jobs/3873-senior-golang-engineer-all-genders

@gocasts
👍13🔥6
Go Casts 🚀
سلام به همه دوستان دوستانی که در خرید دوره تردید دارند میتونن برای مشاوره کوتاه تلفنی، فرم زیر رو پر کنند که باهاشون تماس بگیرم https://survey.porsline.ir/s/ATeQL4b4 توضیحات مفصل صوتی در مورد دوره و تیمسازی https://news.1rj.ru/str/gocasts/369 نمونه فیلم های دوره…
تیمسازی Go Casts

در تیمسازی چه خبره؟

لینک ویدیو در یوتیوب
https://youtu.be/RGnk4gn_AB0

هیچ دوره و منبع آموزشی ای نمیتونه شمارو برنامه نویس کنه، اینا همه ش تسهیل کننده هستند، و اول و آخر این خودتونید که با دیدن و خوندن آموزش، کد زدن و تمرین کردن و تجربه کردن پروژه، میتونید به برنامه نویسی مسلط بشید.
تیمسازی بستری هست که تلاش میکنه محیطی رو برای شما فراهم کنه که شما خودتون بتونید کد بزنید و تجربه کسب کنید.

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

شما با ثبت نام در دوره، علاوه بر ویدیوهای آموزشی، به ویدیوی جلسات تیمسازی هم دسترسی دارید و میتوانید خودتون هم در تیمسازی شرکت کنید، کد بزنید و تجربه کسب کنید.


لینک جزییات دوره و تیمسازی بکند و گولنگ
https://gocasts.ir/gocasts-bootcamp-140110

توضیحات مفصل صوتی در مورد دوره و تیمسازی
https://news.1rj.ru/str/gocasts/369

نمونه فیلم های دوره
https://news.1rj.ru/str/gocasts/367

ضمانت بازگشت وجه
https://news.1rj.ru/str/gocasts/370

پرسش و پاسخ
https://news.1rj.ru/str/gocasts/337

@gocasts
1