دوستان این لینک جلسه است، طبق روال همیشه، تا ۱۹:۰۵ منتظر دوستان میمونیم
https://meet.google.com/arw-pkev-ftp
@gocasts
https://meet.google.com/arw-pkev-ftp
@gocasts
Google
Real-time meetings by Google. Using your browser, share your video, desktop, and presentations with teammates and customers.
دوستان بازم بابت گرفتگی صدا عذرخواهی میکنم
سه تا ویدیو در مورد unit test و integration test که قبلا ضبط کرده بودم رو در یوتیوب منتشر میکنم و بهتون اطلاع میدم
کد adamak هم سعی میکنم برای برخی لاجیک هاش unit test و integration test بنویسم بهتون اطلاع میدم
ان شاءالله جلسه بعد خیلی سریع در مورد tdd صحبت میکنیم و سعی میکنیم یه معماری دیگه رو بررسی کنیم، در مورد معماری یا مبحث بعدی پیشنهاد بدید.
لطفا برای ارتقا سطح جلسات هر انتقادی دارید بی واسطه بهم بگید که ان شاءالله روند جلسات ادامه دار و مفید باشه واسه همه ما
ممنون از حضورتون 🌹
@gocasts
سه تا ویدیو در مورد unit test و integration test که قبلا ضبط کرده بودم رو در یوتیوب منتشر میکنم و بهتون اطلاع میدم
کد adamak هم سعی میکنم برای برخی لاجیک هاش unit test و integration test بنویسم بهتون اطلاع میدم
ان شاءالله جلسه بعد خیلی سریع در مورد tdd صحبت میکنیم و سعی میکنیم یه معماری دیگه رو بررسی کنیم، در مورد معماری یا مبحث بعدی پیشنهاد بدید.
لطفا برای ارتقا سطح جلسات هر انتقادی دارید بی واسطه بهم بگید که ان شاءالله روند جلسات ادامه دار و مفید باشه واسه همه ما
ممنون از حضورتون 🌹
@gocasts
❤18👍1
Go Casts 🚀
دوستان بازم بابت گرفتگی صدا عذرخواهی میکنم سه تا ویدیو در مورد unit test و integration test که قبلا ضبط کرده بودم رو در یوتیوب منتشر میکنم و بهتون اطلاع میدم کد adamak هم سعی میکنم برای برخی لاجیک هاش unit test و integration test بنویسم بهتون اطلاع میدم…
سلام به همه دوستان، امیدوارم حالتون خوب باشه
ویدیو جلسه سوم در یوتیوب منتشر شد
در این قسمت با همه مشکلاتی که بود یه مرور مجددی به clean architecture داشتیم و سعی کردیم نشون بدیم که چطور روند پیاده سازی برای یه user story جدید رو پیاده سازی می کنیم.
همچنین در مورد انواع تست صحبت کردیم و unit test رو انجام دادیم.
این لینک ویدیو در یوتیوب
https://youtu.be/hSffw-yumMk
همچنین من برای ۳ تا از ۵ متد user interactor بصورت کامل unit test نوشتم که شما میتونید pr رو اینجا مشاهده کنید
https://github.com/gocastsian/adamak/pull/6
متاسفانه هنوز مشکل گرفتگی صدا دارم (دفعه پیش ۲، ۳ ماهی طول کشید برطرف بشه، امیدوارم این بار زودتر این اتفاق بیفته که خللی در روند جلسات نباشه). اگه اینطوری پیش بره ممکنه این هفته جلسه نداشته باشیم اما من سعی می کنم ویدیوهای قدیمی ای که در مورد unit test و integration تست ضبط کرده بودم رو در هفته بعد آپلود کنم.
همچنین اگه جلسه کنسل بشه من سعی میکنم یه musical cast ضبط کنم که نشون میدم چطور میشه یه delivery دیگه مثل grpc رو به rest api اضافه کنیم بدون اینکه تغییری در قسمت های مختلف پروژه رخ بده، امیدوارم که ان شاءالله بتونم انجامش بدم و تقدیمتون کنم 😉😘
روزتون خوش، مواظب خودتون باشید 🌹
#gocasts_weekly
#unit_test
#golang
@gocasts
ویدیو جلسه سوم در یوتیوب منتشر شد
در این قسمت با همه مشکلاتی که بود یه مرور مجددی به clean architecture داشتیم و سعی کردیم نشون بدیم که چطور روند پیاده سازی برای یه user story جدید رو پیاده سازی می کنیم.
همچنین در مورد انواع تست صحبت کردیم و unit test رو انجام دادیم.
این لینک ویدیو در یوتیوب
https://youtu.be/hSffw-yumMk
همچنین من برای ۳ تا از ۵ متد user interactor بصورت کامل unit test نوشتم که شما میتونید pr رو اینجا مشاهده کنید
https://github.com/gocastsian/adamak/pull/6
متاسفانه هنوز مشکل گرفتگی صدا دارم (دفعه پیش ۲، ۳ ماهی طول کشید برطرف بشه، امیدوارم این بار زودتر این اتفاق بیفته که خللی در روند جلسات نباشه). اگه اینطوری پیش بره ممکنه این هفته جلسه نداشته باشیم اما من سعی می کنم ویدیوهای قدیمی ای که در مورد unit test و integration تست ضبط کرده بودم رو در هفته بعد آپلود کنم.
همچنین اگه جلسه کنسل بشه من سعی میکنم یه musical cast ضبط کنم که نشون میدم چطور میشه یه delivery دیگه مثل grpc رو به rest api اضافه کنیم بدون اینکه تغییری در قسمت های مختلف پروژه رخ بده، امیدوارم که ان شاءالله بتونم انجامش بدم و تقدیمتون کنم 😉😘
روزتون خوش، مواظب خودتون باشید 🌹
#gocasts_weekly
#unit_test
#golang
@gocasts
YouTube
جلسه سوم هفتگی - معماری و تست نرم افزار
#golang #unit_test #clean_architecture
❤12👍9
Go Casts 🚀
سلام به همه دوستان، امیدوارم حالتون خوب باشه ویدیو جلسه سوم در یوتیوب منتشر شد در این قسمت با همه مشکلاتی که بود یه مرور مجددی به clean architecture داشتیم و سعی کردیم نشون بدیم که چطور روند پیاده سازی برای یه user story جدید رو پیاده سازی می کنیم. همچنین…
سلام به همه دوستان
خب ۳ تا ویدیویی که گفته بودم در مورد تست نویسی در گولنگ رو در یوتیوب قرار دادم که از این playlist میتونید ببینید
https://www.youtube.com/watch?v=ZXcVUwf5b4U&list=PLIVM5G5Iko1uY8zQuKNCOMwG3KtCuu341
ویدیو اول در مورد unit test نوشتن هست برای توابعی که هیچ وابستگی خارجی ندارن
https://youtu.be/ZXcVUwf5b4U
ویدیو دوم در مورد unit test نوشتن برای کامپوننت های دارای وابستگی هست
https://youtu.be/MUo29Bz9bX8
ویدیو سوم هم در مورد integration test هست
https://youtu.be/YLtquHBFrEU
باز جلوتر اگه فرصت کنم سعی می کنم ویدیو بسازم مثلا در مورد end to end test و موارد دیگه.
#golang #unit_test #integration_test #test
@gocasts
خب ۳ تا ویدیویی که گفته بودم در مورد تست نویسی در گولنگ رو در یوتیوب قرار دادم که از این playlist میتونید ببینید
https://www.youtube.com/watch?v=ZXcVUwf5b4U&list=PLIVM5G5Iko1uY8zQuKNCOMwG3KtCuu341
ویدیو اول در مورد unit test نوشتن هست برای توابعی که هیچ وابستگی خارجی ندارن
https://youtu.be/ZXcVUwf5b4U
ویدیو دوم در مورد unit test نوشتن برای کامپوننت های دارای وابستگی هست
https://youtu.be/MUo29Bz9bX8
ویدیو سوم هم در مورد integration test هست
https://youtu.be/YLtquHBFrEU
باز جلوتر اگه فرصت کنم سعی می کنم ویدیو بسازم مثلا در مورد end to end test و موارد دیگه.
#golang #unit_test #integration_test #test
@gocasts
YouTube
Unit Test in Go #1
In this video I covered following topics:
- Unit test (simple functions without any dependency)
- Table driven test
- Subtests
For more videos you can follow me on telegram: https://news.1rj.ru/str/gocasts
#unit_test #golang
- Unit test (simple functions without any dependency)
- Table driven test
- Subtests
For more videos you can follow me on telegram: https://news.1rj.ru/str/gocasts
#unit_test #golang
❤12👍4
سلام دوستان، یادگیری مفاهیم مهم برنامه نویسی، لینوکس، گولنگ، ساختمان داده، الگوریتم و غیره به کمک تصویر خیلی میتونه برای ما راحت تر باشه. تو این مقاله سعی کردم یه سری منابع خوب معرفی کنم که یادگیری رو میتونه خیلی ساده تر کنه، حتما یه نگاه بندازید.
https://gocasts.ir/golang-and-programming-concepts-visualized?utm_source=telegram&utm_medium=message&utm_campaign=6
@gocasts
https://gocasts.ir/golang-and-programming-concepts-visualized?utm_source=telegram&utm_medium=message&utm_campaign=6
@gocasts
👍16❤9🔥2
Go Casts 🚀
سلام دوستان، یادگیری مفاهیم مهم برنامه نویسی، لینوکس، گولنگ، ساختمان داده، الگوریتم و غیره به کمک تصویر خیلی میتونه برای ما راحت تر باشه. تو این مقاله سعی کردم یه سری منابع خوب معرفی کنم که یادگیری رو میتونه خیلی ساده تر کنه، حتما یه نگاه بندازید. https:…
what-is-devops.pdf
455.1 KB
در راستای همین مبحث، این توضیح در مورد devops رو دیدم که خیلی ساده و واضح توضیح داده، خوندنش خالی از لطف نیست
مخصوصا این پاراگرافش رو دقت کنید
Devops is not a technology, tool or framework.
Devops is a cultural movement, mindset, philosophy to coordinate produce better, more reliable products.
#devops #visualized
@gocasts
مخصوصا این پاراگرافش رو دقت کنید
Devops is not a technology, tool or framework.
Devops is a cultural movement, mindset, philosophy to coordinate produce better, more reliable products.
#devops #visualized
@gocasts
👍9❤2
چالش معماری - شماره ۱
سلام خدمت همه دوستان، یه سناریو با نیازمندی هاشو تعریف می کنم، لطفا بهش فکر کنید، راه حلی که به ذهنتون میرسه رو ارائه بدید.
مقدمه
- سرویس core در هاستی در آلمان قرار داره (laravel) شامل دیتابیس حاوی جداول user و payment
- سرویس اختصاصی مشتریان بصورت جداگانه در سروری در ایران قراره توسعه داده بشه با golang
- سرویس مشتریان احتیاج داره دیتای user و payment رو داشته باشه
- سرویس core رو نمیتونیم از هاست آلمان خارج کنیم، چون بشدت مهمه که اونجا downtime پایینی داره
- سرویس مشتریان چون گولنگیه طبیعتا نمیشه روی همون هاست باشه و مجبور هستیم distributed بهش نگاه کنیم
- دوست داریم سرویس core رو بیاریم روی گولنگ ولی فعلا نمیشه این اتفاق بیفته پس فراموشش کنید
- اهمیت سرویس core خیلی بیشتره نباید down بودن سرویس مشتریان باعث بشه درخواست به core هم fail بشه
- دقت کنید core روی هاست هست و دیتابیس کنارشه، محدودیت زیادی روی هاست داریم
- دیتای payment رو immutable در نظر بگیرید ولی دیتای user میتونه آپدیت بشه
این مقدمه رو گفتم که هم بدونید چالش واقعیه، هم الکی دوست نداریم پیچیدگی به سیستم اضافه کنیم اما در لحظه ناچار هستیم distributed نگاه کنیم به سرویس هامون.
خب حالا نیازمندی چیه؟
- میخوایم دیتای core رو sync کنیم روی دیتابیس مشتریان (یکطرفه)
معیار نرم افزاری مهم مون چیه؟
- به هیچ وجه inconsistency نداشته باشه دیتامون
- کمترین میزان ارسال دیتا رو داشته باشیم (مجبور نباشیم هربار همه چیز رو ارسال کنیم یا رکوردهای redundant الکی ارسال کنیم مجدد)
- سرعت sync شدن دیتا بالا باشه
هر راه حلی که به ذهنتون میرسه یا قبلا تجربه ش رو داشتید لطفا در کامنت ارائه بدید. لطفا در ارائه جواب سعی کنید در یک پیام کامل با ذکر دلایل جواب رو ارائه بدید و از ارسال جواب های کوتاه کوتاه خودداری کنید.
راه حل های خوب با ذکر دلیل به عنوان جواب تو کانال ارائه میشه که هم کلی چیز یاد بگیریم، هم ان شاءالله نتیجه پیاده سازی و performanceش بهتون اعلام میشه. سعی میکنیم کد سرویس ش رو هم اگه بشه open source کنیم ان شاءالله
نکته آخر: من جواب تو ذهنم دارم، دنبال جواب بهترم، ضمنا این پروژه واقعیه اما عایده مالی برای بنده نداره
لطفا تا دو سه روز آینده جواب هاتونو ارائه بدید و بعد من راه حل های خوب رو تو کانال قرار میدم.
#gocasts_challenge #architecture
@gocasts
سلام خدمت همه دوستان، یه سناریو با نیازمندی هاشو تعریف می کنم، لطفا بهش فکر کنید، راه حلی که به ذهنتون میرسه رو ارائه بدید.
مقدمه
- سرویس core در هاستی در آلمان قرار داره (laravel) شامل دیتابیس حاوی جداول user و payment
- سرویس اختصاصی مشتریان بصورت جداگانه در سروری در ایران قراره توسعه داده بشه با golang
- سرویس مشتریان احتیاج داره دیتای user و payment رو داشته باشه
- سرویس core رو نمیتونیم از هاست آلمان خارج کنیم، چون بشدت مهمه که اونجا downtime پایینی داره
- سرویس مشتریان چون گولنگیه طبیعتا نمیشه روی همون هاست باشه و مجبور هستیم distributed بهش نگاه کنیم
- دوست داریم سرویس core رو بیاریم روی گولنگ ولی فعلا نمیشه این اتفاق بیفته پس فراموشش کنید
- اهمیت سرویس core خیلی بیشتره نباید down بودن سرویس مشتریان باعث بشه درخواست به core هم fail بشه
- دقت کنید core روی هاست هست و دیتابیس کنارشه، محدودیت زیادی روی هاست داریم
- دیتای payment رو immutable در نظر بگیرید ولی دیتای user میتونه آپدیت بشه
این مقدمه رو گفتم که هم بدونید چالش واقعیه، هم الکی دوست نداریم پیچیدگی به سیستم اضافه کنیم اما در لحظه ناچار هستیم distributed نگاه کنیم به سرویس هامون.
خب حالا نیازمندی چیه؟
- میخوایم دیتای core رو sync کنیم روی دیتابیس مشتریان (یکطرفه)
معیار نرم افزاری مهم مون چیه؟
- به هیچ وجه inconsistency نداشته باشه دیتامون
- کمترین میزان ارسال دیتا رو داشته باشیم (مجبور نباشیم هربار همه چیز رو ارسال کنیم یا رکوردهای redundant الکی ارسال کنیم مجدد)
- سرعت sync شدن دیتا بالا باشه
هر راه حلی که به ذهنتون میرسه یا قبلا تجربه ش رو داشتید لطفا در کامنت ارائه بدید. لطفا در ارائه جواب سعی کنید در یک پیام کامل با ذکر دلایل جواب رو ارائه بدید و از ارسال جواب های کوتاه کوتاه خودداری کنید.
راه حل های خوب با ذکر دلیل به عنوان جواب تو کانال ارائه میشه که هم کلی چیز یاد بگیریم، هم ان شاءالله نتیجه پیاده سازی و performanceش بهتون اعلام میشه. سعی میکنیم کد سرویس ش رو هم اگه بشه open source کنیم ان شاءالله
نکته آخر: من جواب تو ذهنم دارم، دنبال جواب بهترم، ضمنا این پروژه واقعیه اما عایده مالی برای بنده نداره
لطفا تا دو سه روز آینده جواب هاتونو ارائه بدید و بعد من راه حل های خوب رو تو کانال قرار میدم.
#gocasts_challenge #architecture
@gocasts
👍13❤1
Go Casts 🚀
چالش معماری - شماره ۱ سلام خدمت همه دوستان، یه سناریو با نیازمندی هاشو تعریف می کنم، لطفا بهش فکر کنید، راه حلی که به ذهنتون میرسه رو ارائه بدید. مقدمه - سرویس core در هاستی در آلمان قرار داره (laravel) شامل دیتابیس حاوی جداول user و payment - سرویس اختصاصی…
سلام صبح بخیر
با تشکر از مشارکت همه عزیزان، برای شفافیت بیشتر به شرح موضوع چند آیتم اضافه شد که مساله روشن تر بشه برای دوستان
با تشکر از مشارکت همه عزیزان، برای شفافیت بیشتر به شرح موضوع چند آیتم اضافه شد که مساله روشن تر بشه برای دوستان
Go Casts 🚀
چالش معماری - شماره ۱ سلام خدمت همه دوستان، یه سناریو با نیازمندی هاشو تعریف می کنم، لطفا بهش فکر کنید، راه حلی که به ذهنتون میرسه رو ارائه بدید. مقدمه - سرویس core در هاستی در آلمان قرار داره (laravel) شامل دیتابیس حاوی جداول user و payment - سرویس اختصاصی…
شما به پروانه ها چی عیدی میدی؟
مهم ترین رسالت GoCasts در قالب مسئولیت اجتماعی انتقال دادن «حس خوب» هست. وظیفه اجتماعی ما در GoCasts ایجاب میکنه همیشه از تخصص مون در راستایی استفاده کنیم که به ما این قدرت رو بده حال خوب رو به دیگران انتقال بدیم.
کوچیکترین عیدی شما میتونه منتشر کردن این مقاله در رسانه های خودتون باشه
اما من یقین داریم شما عیدی های خیلی خیلی بزرگتری رو میتونید به پروانه ها هدیه بدید، برای جزییات بیشتر، لطفا مقاله زیر رو بخونید
https://gocasts.ir/social-responsibility-home-of-butterflies-piece-of-heaven-on-earth?utm_source=telegram&utm_medium=message&utm_campaign=7
این پست بی ارتباط به چالش معماری شماره یک نیست، ان شاءالله در سال ۱۴۰۱ به کمک برخی از دوستان خوب GoCasts تلاش می کنیم بهترین نرم افزاری که تو عمرمون می تونستیم بسازیم رو بسازیم و تقدیم به پروانه های نازنین کنیم. شاید تونستیم بخشی از پروژه رو هم open source کنیم، که همه جوره از نتیجه تلاشمون به دیگران «حس خوب» منتقل کرده باشیم.
#social_responsibility
@gocasts
مهم ترین رسالت GoCasts در قالب مسئولیت اجتماعی انتقال دادن «حس خوب» هست. وظیفه اجتماعی ما در GoCasts ایجاب میکنه همیشه از تخصص مون در راستایی استفاده کنیم که به ما این قدرت رو بده حال خوب رو به دیگران انتقال بدیم.
کوچیکترین عیدی شما میتونه منتشر کردن این مقاله در رسانه های خودتون باشه
اما من یقین داریم شما عیدی های خیلی خیلی بزرگتری رو میتونید به پروانه ها هدیه بدید، برای جزییات بیشتر، لطفا مقاله زیر رو بخونید
https://gocasts.ir/social-responsibility-home-of-butterflies-piece-of-heaven-on-earth?utm_source=telegram&utm_medium=message&utm_campaign=7
این پست بی ارتباط به چالش معماری شماره یک نیست، ان شاءالله در سال ۱۴۰۱ به کمک برخی از دوستان خوب GoCasts تلاش می کنیم بهترین نرم افزاری که تو عمرمون می تونستیم بسازیم رو بسازیم و تقدیم به پروانه های نازنین کنیم. شاید تونستیم بخشی از پروژه رو هم open source کنیم، که همه جوره از نتیجه تلاشمون به دیگران «حس خوب» منتقل کرده باشیم.
#social_responsibility
@gocasts
❤25👍1
عیدی نیمه شعبان GoCasts به عزیزان اول راهی 🌹
نیمه شعبان، ولادت امام زمان عجل الله تعالی فرجه الشریف مبارک
یا ابا صالح المهدی ادرکنی ❤️
اگر یک نفر را به او وصل کردی
برای سپاهش تو سردار یاری
عیدتون مبارک، به مناسبت این روز مبارک، عزیزانی که در ابتدای راه هستند و فکر میکنن به راهنما و همراه نیاز دارن برای ادامه راه و ورود به بازار کار، بنده در حد توان در خدمتشون هستم ان شاء الله.
به لطف خدا و بسته به سطح فنی خودتون و وقتی که دارید و همتی که دارید، بین ۳ ماه تا نهایتا ۹ ماه میتونید وارد بازار کار بشید، اگه تمایل داشتید لطفا به این آی دی پیام بدید، قدمتون روی چشم.
@lifography
من الحمدلله قبلا تجربه این کار رو داشتم و عزیزانی که سعادت داشتم در خدمتشون باشم بعضا مهاجرت کردن آلمان یا در اسنپ مشغول به کار هستند، الان هم در کانال عضو هستند (خیلی مخلصیم 😉❤️). همه اعتبار این کار هم به خودشون برمیگرده، بنده فقط سعی کردم مسیر رو شفاف تر و آسان تر کنم، اگه تونسته باشم!
دمتون گرم
یا علی 🌹❤️
@gocasts
نیمه شعبان، ولادت امام زمان عجل الله تعالی فرجه الشریف مبارک
یا ابا صالح المهدی ادرکنی ❤️
اگر یک نفر را به او وصل کردی
برای سپاهش تو سردار یاری
عیدتون مبارک، به مناسبت این روز مبارک، عزیزانی که در ابتدای راه هستند و فکر میکنن به راهنما و همراه نیاز دارن برای ادامه راه و ورود به بازار کار، بنده در حد توان در خدمتشون هستم ان شاء الله.
به لطف خدا و بسته به سطح فنی خودتون و وقتی که دارید و همتی که دارید، بین ۳ ماه تا نهایتا ۹ ماه میتونید وارد بازار کار بشید، اگه تمایل داشتید لطفا به این آی دی پیام بدید، قدمتون روی چشم.
@lifography
من الحمدلله قبلا تجربه این کار رو داشتم و عزیزانی که سعادت داشتم در خدمتشون باشم بعضا مهاجرت کردن آلمان یا در اسنپ مشغول به کار هستند، الان هم در کانال عضو هستند (خیلی مخلصیم 😉❤️). همه اعتبار این کار هم به خودشون برمیگرده، بنده فقط سعی کردم مسیر رو شفاف تر و آسان تر کنم، اگه تونسته باشم!
دمتون گرم
یا علی 🌹❤️
@gocasts
❤36👍1
سلام دوستان
سال نو مبارک
عیدتون به شادی و سلامتی
ان شاء الله سال جدید و دهه جدید و قرن جدید مملو از اتفاقات خوب تو زندگیتون باشه
ان شاء الله که در کنار هم بتونیم یه سال خیلی خوب رو در GoCasts رقم بزنیم و همگی بتونیم سطح فنی خودمون رو ارتقا بدیم و به دوستان دیگه مون هم کمک کنیم در کارشون موفق باشن. امیدوارم سالی باشه که بتونیم کلی محصول خوب نرم افزاری تولید کنیم و حال کلی کاربر رو خوب کنیم.
به یاری خدا امسال کلی برنامه جذاب فنی خواهیم داشت که با هم پیش میبریم 😍💪
دمتون گرم که همراهی می کنید 🌹
یا علی
@gocasts
سال نو مبارک
عیدتون به شادی و سلامتی
ان شاء الله سال جدید و دهه جدید و قرن جدید مملو از اتفاقات خوب تو زندگیتون باشه
ان شاء الله که در کنار هم بتونیم یه سال خیلی خوب رو در GoCasts رقم بزنیم و همگی بتونیم سطح فنی خودمون رو ارتقا بدیم و به دوستان دیگه مون هم کمک کنیم در کارشون موفق باشن. امیدوارم سالی باشه که بتونیم کلی محصول خوب نرم افزاری تولید کنیم و حال کلی کاربر رو خوب کنیم.
به یاری خدا امسال کلی برنامه جذاب فنی خواهیم داشت که با هم پیش میبریم 😍💪
دمتون گرم که همراهی می کنید 🌹
یا علی
@gocasts
❤26🎉2
سلام دوستان، امیدوارم حالتون خوب باشه
گاها پیش میاد دوستان عزیز در مورد مهندسی نرم افزار، گولنگ و حتی مسائل شغلی از بنده سوال میپرسند، من خیلی دوست دارم یه طوری باشه که بتونم جواب سوالات رو با شما به اشتراک بذارم، اینطوری هم یه مجموعه پرسش و پاسخ خوبی بعد از یک مدت شکل میگیره و هم دیگرانی که همون سوال تو ذهنشون بوده میتونن پاسخ بنده رو مطالعه کنن. (تضمینی در مورد درست بودن پاسخ نیست 😁)
حالا میخواستم از خودتون مشورت بگیرم که به چه صورت و در چه رسانه ای این کار رو بکنم.
همینجا تو کانال اصلی سوال و جواب هارو قرار بدم؟
یه کانال ثانویه مخصوص سوال و جواب ایجاد کنم؟
تو سایت GoCasts یه جایی مخصوص سوال و جواب ایجاد کنم؟
یه فروم مدرن به کمک Discourse بیارم بالا و اونجا تاپیک سوال و جواب داشته باشیم؟
اگه راه پیشنهادی دیگه ای دارید لطفا تو کامنت ها بگید
@gocasts
گاها پیش میاد دوستان عزیز در مورد مهندسی نرم افزار، گولنگ و حتی مسائل شغلی از بنده سوال میپرسند، من خیلی دوست دارم یه طوری باشه که بتونم جواب سوالات رو با شما به اشتراک بذارم، اینطوری هم یه مجموعه پرسش و پاسخ خوبی بعد از یک مدت شکل میگیره و هم دیگرانی که همون سوال تو ذهنشون بوده میتونن پاسخ بنده رو مطالعه کنن. (تضمینی در مورد درست بودن پاسخ نیست 😁)
حالا میخواستم از خودتون مشورت بگیرم که به چه صورت و در چه رسانه ای این کار رو بکنم.
همینجا تو کانال اصلی سوال و جواب هارو قرار بدم؟
یه کانال ثانویه مخصوص سوال و جواب ایجاد کنم؟
تو سایت GoCasts یه جایی مخصوص سوال و جواب ایجاد کنم؟
یه فروم مدرن به کمک Discourse بیارم بالا و اونجا تاپیک سوال و جواب داشته باشیم؟
اگه راه پیشنهادی دیگه ای دارید لطفا تو کامنت ها بگید
@gocasts
Discourse - Civilized Discussion
Discourse is the place to build civilized communities
Discourse is modern forum software for meaningful discussions, support, and teamwork that gives your online community everything it needs in one place.
👍4❤1
Go Casts 🚀
سلام دوستان، امیدوارم حالتون خوب باشه گاها پیش میاد دوستان عزیز در مورد مهندسی نرم افزار، گولنگ و حتی مسائل شغلی از بنده سوال میپرسند، من خیلی دوست دارم یه طوری باشه که بتونم جواب سوالات رو با شما به اشتراک بذارم، اینطوری هم یه مجموعه پرسش و پاسخ خوبی بعد…
لطفا در مورد موضوع مطرح شده انتخاب کنید که کجا پرسش و پاسخ ها رو منتشر کنم؟
Anonymous Poll
56%
همین کانال اصلی
20%
یه کانال فرعی اختصاصی
11%
سایت
13%
Discourse
Go Casts 🚀
چالش معماری - شماره ۱ سلام خدمت همه دوستان، یه سناریو با نیازمندی هاشو تعریف می کنم، لطفا بهش فکر کنید، راه حلی که به ذهنتون میرسه رو ارائه بدید. مقدمه - سرویس core در هاستی در آلمان قرار داره (laravel) شامل دیتابیس حاوی جداول user و payment - سرویس اختصاصی…
سلام به همه دوستان خوبم
امیدوارم نوروز خوبی رو تا به اینجا سپری کرده باشید.
در مورد چالش معماری اول، من سعی کردم راه حل های پیشنهادی رو به صورت خلاصه در مقاله بررسی کنم و راه حل پیشنهادی خودم که transactional outbox بود رو شرح بدم. امیدوارم که مفید باشه، اینم لینک مقاله:
https://gocasts.ir/software-architecture-challenge-1?utm_source=telegram&utm_medium=message&utm_campaign=8
با تشکر از همه افرادی که در چالش مشارکت کردند، علی الخصوص افراد زیر که راه حل های پیشنهادی شون مطرح شد در مقاله، ببخشید اگه اسم شخصی جا افتاده
MarshalMan
koorosh_sa
mehdi_sadeghi_1996
OmidHekayati
Mohamadrezamomeni96
AmirHasanCE
#gocasts_challenge
#architecture
@gocasts
اصلاحیه: من در نیازمندی ها inconsistency نداشتن رو معیار قرار داده بودم، که امیدجان حکایتی به درستی اشاره کردند که باید مشخص بشه و از inconsistency نبودن، نمیشه لزوما برداشت eventual consistency داشت، حالا فارغ از اینکه بخوایم سر این موضوع بحث کنیم، تذکر ایشون بجاست و من باید رسما از عبارت eventual consistency استفاده میکردم نه inconsistency نداشتن
مرسی از شما
@OmidHekayati
امیدوارم نوروز خوبی رو تا به اینجا سپری کرده باشید.
در مورد چالش معماری اول، من سعی کردم راه حل های پیشنهادی رو به صورت خلاصه در مقاله بررسی کنم و راه حل پیشنهادی خودم که transactional outbox بود رو شرح بدم. امیدوارم که مفید باشه، اینم لینک مقاله:
https://gocasts.ir/software-architecture-challenge-1?utm_source=telegram&utm_medium=message&utm_campaign=8
با تشکر از همه افرادی که در چالش مشارکت کردند، علی الخصوص افراد زیر که راه حل های پیشنهادی شون مطرح شد در مقاله، ببخشید اگه اسم شخصی جا افتاده
MarshalMan
koorosh_sa
mehdi_sadeghi_1996
OmidHekayati
Mohamadrezamomeni96
AmirHasanCE
#gocasts_challenge
#architecture
@gocasts
اصلاحیه: من در نیازمندی ها inconsistency نداشتن رو معیار قرار داده بودم، که امیدجان حکایتی به درستی اشاره کردند که باید مشخص بشه و از inconsistency نبودن، نمیشه لزوما برداشت eventual consistency داشت، حالا فارغ از اینکه بخوایم سر این موضوع بحث کنیم، تذکر ایشون بجاست و من باید رسما از عبارت eventual consistency استفاده میکردم نه inconsistency نداشتن
مرسی از شما
@OmidHekayati
GoCasts
چالش معماری شماره یک
سعی می کنم به فراخور ان شاءالله چالش های معماری مختلفی رو در GoCasts راه اندازی کنم تا هم کمی بیشتر دانش خودمون رو به چالش بکشیم و هم اینکه از تجربیات و ایده های دیگران استفاده کنیم.
👍12❤2🔥2
سلام دوستان
اخیرا این بحث مطرح شده که توییتر قابلیت ویرایش رو اضافه کنه
این لینکی که گذاشم از طرف یکی از مهندسین سابق توییتر هست در مورد مشکلات مهندسی اضافه کردن قابلیت ادیت به سیستمی که بیش از یک دهه برای read در scale بالا بهینه شده
https://twitter.com/mjackson/status/1511790796135022598?s=19
در کتاب designing data intensive applications و احتمالا کلی جای دیگه هم میتونید از راه حل های استفاده شده در توییتر برای ساختن feed شخصی سازی شده از توییت ها برای هر کاربر بصورت اختصاصی آگاه بشید.
توییتر از ساختار hybrid استفاده میکنه (حداقل تا چند سال پیش). در این ساختار وقتی کاربری یک توییت رو منتشر میکنه، برای تک تک کاربرانی که کاربر مورد نظر رو follow می کنند، یک نسخه از توییت در message queue اختصاصی اون شخص قرار میگیره. اینطوری feed هر کاربر بصورت خودکار ساخته میشه و هر وقت کاربر بخواد feedش رو چک کنه توییتر لازم نیست هیچ کاری بکنه جز اینکه message های message queue اختصاصی اون شخص رو consume کنه.
اما این کار یه اشکالی داره، اشکالش اینه اگه کاربر منتشر کننده تعداد فالوئرهای زیادی داشته باشه مثلا ۲۰ میلیون کاربر، اونوقت توییتر مجبور میشه ۲۰ میلیون write در لحظه انتشار توییت انجام بده که خیلی عملیات سنگینیه. واسه همین از روش hybrid استفاده میکنه یعنی کاربرانی که فالوئر زیادی دارن توییت هاشونو در message queue وارد نمیکنه، بلکه اپلیکیشن کلاینت وقتی میخواد feed توییت رو لود کنه هم یه سری توییت از message queue میگیره و هم یه درخواست میزنه و لیست توییت های جدید کاربران پرمخاطبی که کاربر دنبال میکنه رو میگیره و این دو تارو ترکیب میکنه. اینطوری reaponse time خیلی معقول باقی میمونه چون تعداد فالوئرهای پرکاربر و توییت هاشون محدوده
حالا مشکلی که در این thread بهش اشاره کرده اینه که سیستمی که برای بیش از یک دهه روی read بهینه شده خیلی سخته بهش قابلیت edit اضافه کنن چون خیلی چیزارو بهم میریزه.
شما ایده ای ندارید؟
اصلاحیه:
با تشکر از امید جان حکایتی بابت تذکر
طبق این مقاله
http://highscalability.com/blog/2013/7/8/the-architecture-twitter-uses-to-deal-with-150m-active-users.html
البته مقاله قدیمی هست ولی چندین جاش تاکید کرده صرفا tweetid در سرویس تایملاین ذخیره میشه
Then it will start inserting the Tweet ID of the tweet into all those lists throughout the Redis cluster
What is being stored is the tweet ID of the generated tweet, the user ID of the originator of the tweet, and 4 bytes of bits used to mark if it’s a retweet or a reply or something else.
Since the timeline only contains tweet IDs they must “hydrate” those tweets
#software_design #twitter
@gocasts
اخیرا این بحث مطرح شده که توییتر قابلیت ویرایش رو اضافه کنه
این لینکی که گذاشم از طرف یکی از مهندسین سابق توییتر هست در مورد مشکلات مهندسی اضافه کردن قابلیت ادیت به سیستمی که بیش از یک دهه برای read در scale بالا بهینه شده
https://twitter.com/mjackson/status/1511790796135022598?s=19
در کتاب designing data intensive applications و احتمالا کلی جای دیگه هم میتونید از راه حل های استفاده شده در توییتر برای ساختن feed شخصی سازی شده از توییت ها برای هر کاربر بصورت اختصاصی آگاه بشید.
توییتر از ساختار hybrid استفاده میکنه (حداقل تا چند سال پیش). در این ساختار وقتی کاربری یک توییت رو منتشر میکنه، برای تک تک کاربرانی که کاربر مورد نظر رو follow می کنند، یک نسخه از توییت در message queue اختصاصی اون شخص قرار میگیره. اینطوری feed هر کاربر بصورت خودکار ساخته میشه و هر وقت کاربر بخواد feedش رو چک کنه توییتر لازم نیست هیچ کاری بکنه جز اینکه message های message queue اختصاصی اون شخص رو consume کنه.
اما این کار یه اشکالی داره، اشکالش اینه اگه کاربر منتشر کننده تعداد فالوئرهای زیادی داشته باشه مثلا ۲۰ میلیون کاربر، اونوقت توییتر مجبور میشه ۲۰ میلیون write در لحظه انتشار توییت انجام بده که خیلی عملیات سنگینیه. واسه همین از روش hybrid استفاده میکنه یعنی کاربرانی که فالوئر زیادی دارن توییت هاشونو در message queue وارد نمیکنه، بلکه اپلیکیشن کلاینت وقتی میخواد feed توییت رو لود کنه هم یه سری توییت از message queue میگیره و هم یه درخواست میزنه و لیست توییت های جدید کاربران پرمخاطبی که کاربر دنبال میکنه رو میگیره و این دو تارو ترکیب میکنه. اینطوری reaponse time خیلی معقول باقی میمونه چون تعداد فالوئرهای پرکاربر و توییت هاشون محدوده
حالا مشکلی که در این thread بهش اشاره کرده اینه که سیستمی که برای بیش از یک دهه روی read بهینه شده خیلی سخته بهش قابلیت edit اضافه کنن چون خیلی چیزارو بهم میریزه.
شما ایده ای ندارید؟
اصلاحیه:
با تشکر از امید جان حکایتی بابت تذکر
طبق این مقاله
http://highscalability.com/blog/2013/7/8/the-architecture-twitter-uses-to-deal-with-150m-active-users.html
البته مقاله قدیمی هست ولی چندین جاش تاکید کرده صرفا tweetid در سرویس تایملاین ذخیره میشه
Then it will start inserting the Tweet ID of the tweet into all those lists throughout the Redis cluster
What is being stored is the tweet ID of the generated tweet, the user ID of the originator of the tweet, and 4 bytes of bits used to mark if it’s a retweet or a reply or something else.
Since the timeline only contains tweet IDs they must “hydrate” those tweets
#software_design #twitter
@gocasts
High Scalability
The Architecture Twitter Uses to Deal with 150M Active Users, 300K QPS, a 22 MB/S Firehose, and Send Tweets in Under 5 Seconds…
Toy solutions solving Twitter’s “problems” are a favorite scalability trope. Everybody has this idea that Twitter is easy. With a little architectural hand waving we have a scalable Twitter, just that simple. Well, it’s not that simple as Raffi Krikorian…
👍19👏3❤1