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
تو اینستاگرام در مورد نگرانی های مصاحبه صحبت میکنیم، دوست داشتید نظرتون رو بگید، بنده هم جواب میدم

لینک اینستاگرام
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
Go Casts 🚀
تیمسازی Go Casts در تیمسازی چه خبره؟ لینک ویدیو در یوتیوب https://youtu.be/RGnk4gn_AB0 هیچ دوره و منبع آموزشی ای نمیتونه شمارو برنامه نویس کنه، اینا همه ش تسهیل کننده هستند، و اول و آخر این خودتونید که با دیدن و خوندن آموزش، کد زدن و تمرین کردن و تجربه…
📌 تجربه استخدام

به به، چه حسی بهتر از اینکه بچه ها میتونن به هدفشون برسن 🚀
ممنون از امیرحسین جان که تجربه استخدام خودش رو با ما به اشتراک گذاشت
این لینک لینکدین امیرحسین هست
https://www.linkedin.com/in/amirhosein-mir-mohammadi-42b49820b/

این اطلاعات هم ممکنه به شما کمک کنه

وضعیت تحصیلی: دانشجوی لیسانس مهندسی کامپیوتر که اخیرا فارغ التحصیل شده
مدت آموزش: حدودا ۶ ماه
منابع آموزش: آموزش های بوتکمپ و منابع دیگه
تیمسازی: فعالیت در پروژه تیمسازی ۱

چند ماه تلاش کردی واسه استخدام؟ تقریبا ۴ ماه
چندتا رزومه ارسال کردی؟ ۳۰ الی ۵۰
چندتا دعوت به مصاحبه شدی؟ ۳ تا
چندتا رو قبولی شدی؟ ۱

شرایط کار: حضوری و تهران

@gocasts
14🔥8👍3
سلام
دوستان عزیز مسلط به گولنگ که به دنبال طرح‌های کسر خدمت، جایگزین خدمت و سرباز فناور جهت گذراندن خدمت سربازی بصورت تخصصی هستند.
در صورت تمایل رزومه شون رو برای این ایمیل بفرستند.

rasadco.hr@gmail.com

@gocasts
👍7
Go Casts 🚀
سلام دوستان عزیز مسلط به گولنگ که به دنبال طرح‌های کسر خدمت، جایگزین خدمت و سرباز فناور جهت گذراندن خدمت سربازی بصورت تخصصی هستند. در صورت تمایل رزومه شون رو برای این ایمیل بفرستند. rasadco.hr@gmail.com @gocasts
سلام
قابل توجه دوستان عزیز مسلط به برنامه نویسی که قصد گذراندن خدمت سربازی را دارند و دنبال طرح‌های کسر خدمت ، جایگزین خدمت و سرباز فناور جهت گذراندن خدمت بصورت تخصصی در موقعیت تهران هستند.

با اولویت زبان های برنامه نویسی:
جاوا
انگولار
گولنگ
کاتلین

در صورت تمایل رزومه شون رو برای این ایمیل بفرستند.
ارتباط فقط از طریق ایمیل
rasadco.hr@gmail.com


@gocasts
1🔥1
سلام دوستان، یه منبع بهتون معرفی میکنم که کلی tips کوچیک و باحال ارائه داده که بهتون کمک میکنه کد گولنگی بهتری بنویسید.

Go Practical Tips
https://github.com/func25/go-practical-tips/blob/main/tips.md

@gocasts
🔥24👍14
amazon_memorydb_a_fast_and_durable_memory_first_cloud_database.pdf
928.2 KB
سلام، خوندن این مقاله جذاب و تازه رو بهتون توصیه میکنم، حتی اگه دو سه تا بخش اولش رو بخونید بازم کلی نکته داره

Amazon MemoryDB: A Fast and Durable Memory-First Cloud
Database

@gocasts
14🔥3👍2
در یکی دیگر از جلسات تیمسازی لازم شد که برای داشتن distributed lock از etcd استفاده بشه. در همین راستا بررسی کردیم که etcd به چه صورت clusterی از nodeهارو به کمک الگوریتم raft در راستای ha کردن سرویس ش مدیریت میکنه.

https://youtu.be/cJxig3guMvc

@gocasts
👍18