مقاله جالبیه در مورد reproducibility، اینکه چیکار کنی که buildهات identical بشن که هم security بهتری داشته باشه هم نرم افزارت خروجی پیش بینی پذیرتری داشته باشه
اینم لینک مقاله 👇
What is Reproducibility and why does it matter?
https://blog.kubesimplify.com/what-is-reproducibility-and-why-does-it-matter
توضیحات «دوره + تیمسازی بکند Go Casts» و تخفیف ۵۰ درصدی رو در این پست میتونید بخونید 👇
https://news.1rj.ru/str/gocasts/491
@gocasts
#devops #kubernetes
اینم لینک مقاله 👇
What is Reproducibility and why does it matter?
https://blog.kubesimplify.com/what-is-reproducibility-and-why-does-it-matter
توضیحات «دوره + تیمسازی بکند Go Casts» و تخفیف ۵۰ درصدی رو در این پست میتونید بخونید 👇
https://news.1rj.ru/str/gocasts/491
@gocasts
#devops #kubernetes
👍7
قبلا در مورد اهمیت distributed task queueها صحبت کرده بودیم، اینم یه ویدیو دیگه در همین مورد که به کمک گولنگ و temporal ارائه ش رو انجام میده
GopherCon 2022: Andrew Fitz Gibbon - Durable Executions in the Face of (some) Failures
https://www.youtube.com/watch?v=zSFkwwNClow
اینم لینک پست مربوط به جلسه تیمسازی که با بچه ها در همین مورد صحبت شد و فیلمش در یوتیوب قرار گرفته
https://news.1rj.ru/str/gocasts/417
توضیحات «دوره + تیمسازی بکند Go Casts» و تخفیف ۵۰ درصدی رو در این پست میتونید بخونید 👇
https://news.1rj.ru/str/gocasts/491
@gocasts
#golang #temporal
GopherCon 2022: Andrew Fitz Gibbon - Durable Executions in the Face of (some) Failures
https://www.youtube.com/watch?v=zSFkwwNClow
اینم لینک پست مربوط به جلسه تیمسازی که با بچه ها در همین مورد صحبت شد و فیلمش در یوتیوب قرار گرفته
https://news.1rj.ru/str/gocasts/417
توضیحات «دوره + تیمسازی بکند Go Casts» و تخفیف ۵۰ درصدی رو در این پست میتونید بخونید 👇
https://news.1rj.ru/str/gocasts/491
@gocasts
#golang #temporal
YouTube
GopherCon 2022: Durable Executions in the Face of (some) Failures - Andrew Fitz Gibbon
You’ve got a critical production workload up and running and everything’s fine. Until it’s not. The node crashes and you’ve lost everything! Or did you? What if that node simply picked up right where it left off? In this lightning talk, we'll explore how…
🔥5
یه ویدیوی داغ و تازه برای دانشگاه stanford که به شرح نحوه عملکرد مدل های LLM میپردازه
Stanford CS229 I Machine Learning I Building Large Language Models (LLMs)
https://www.youtube.com/watch?v=9vM4p9NN0Ts
@gocasts
#ai #llm
Stanford CS229 I Machine Learning I Building Large Language Models (LLMs)
https://www.youtube.com/watch?v=9vM4p9NN0Ts
@gocasts
#ai #llm
👍9🔥6
بخش مهم کیفیت یه نرم افزار به انرژی ای بستگی داره که اول پروژه میذاری، هر چقدر تو شروع کار روی ساختار کار کنی، و بتونی مواردی مثل linter و security check و test رو به پروسه ci پروژه اضافه کنی کارت راحت تره، خلاصه که کارهای شروع پروژه رو به عقب ننداز که بعدا بعیده درستش کنی..
@gocasts
@gocasts
👍60👏3
حتما سعی کنید به practice داشتن playground روی سیستم localتون عادت کنید. خیلی مهمه، چندین ساله که این شیوه رو به کار میبرم و ازش نتیجه گرفتم.
شاید برای یه سری سناریو خیلی پیچیده که حجم داده زیاد باشه و یا inter-service communication زیاد باشه سخت باشه این کار، اما برای اکثر مواقع قابل استفاده ست.
اینکه شما روی سیستم خودتون بستری رو فراهم کنید که بتونید باگ یا فیچر مورد نظر رو توسعه بدید و دیباگ کنید کمی حوصله و زمان میخواد، اما به شدت کمک میکنه بعد از راه اندازی سرعت کارتون بالا بره و سریع بتونید سناریوهای مختلفی رو تست کنید.
خود سایت گولنگ هم یه قسمتی داره به اسم playground
https://go.dev/play
ولی معمولا سناریوهایی که playground میخوان پیچیده تر از یه کد گولنگی هست که دیتابیس و سرویس های دیگه رو هم درگیر میکنه، که من باز تلاش میکنم راه اندازی کنم، حتی اگه لازم باشه که دامپ دیتابیس رو بیارم روی سیستم لوکال، یا حداقل بخشی از دامپ رو…
یا حداقل دامپ نمیشه آورد یه کدی بنویسم که داده تولید کنه
@gocasts
شاید برای یه سری سناریو خیلی پیچیده که حجم داده زیاد باشه و یا inter-service communication زیاد باشه سخت باشه این کار، اما برای اکثر مواقع قابل استفاده ست.
اینکه شما روی سیستم خودتون بستری رو فراهم کنید که بتونید باگ یا فیچر مورد نظر رو توسعه بدید و دیباگ کنید کمی حوصله و زمان میخواد، اما به شدت کمک میکنه بعد از راه اندازی سرعت کارتون بالا بره و سریع بتونید سناریوهای مختلفی رو تست کنید.
خود سایت گولنگ هم یه قسمتی داره به اسم playground
https://go.dev/play
ولی معمولا سناریوهایی که playground میخوان پیچیده تر از یه کد گولنگی هست که دیتابیس و سرویس های دیگه رو هم درگیر میکنه، که من باز تلاش میکنم راه اندازی کنم، حتی اگه لازم باشه که دامپ دیتابیس رو بیارم روی سیستم لوکال، یا حداقل بخشی از دامپ رو…
یا حداقل دامپ نمیشه آورد یه کدی بنویسم که داده تولید کنه
@gocasts
go.dev
Go Playground - The Go Programming Language
👍22🔥1
یکی از زیبایی های گولنگ اینترفیس هست، چیزی که فلسفه composition over inheritance رو به زیبایی هر چه تمام تر در گولنگ امکانپذیر کرده
ولی نحوه استفاده از اینترفیس با زبان های دیگه متفاوته
این مقاله توضیحاتی در این مورد داده
https://eli.thegreenplace.net/2023/the-power-of-single-method-interfaces-in-go/
اینم یه مقاله زیرخاکی از russ cox در مورد اینترفیس
Go Data Structures: Interfaces
Posted on Tuesday, December 1, 2009
https://research.swtch.com/interfaces
@gocasts
#golang #interface
ولی نحوه استفاده از اینترفیس با زبان های دیگه متفاوته
این مقاله توضیحاتی در این مورد داده
https://eli.thegreenplace.net/2023/the-power-of-single-method-interfaces-in-go/
اینم یه مقاله زیرخاکی از russ cox در مورد اینترفیس
Go Data Structures: Interfaces
Posted on Tuesday, December 1, 2009
https://research.swtch.com/interfaces
@gocasts
#golang #interface
👍27❤4
ما تو فکر چی هستیم، بقیه تو فکر چی هستن 🙂
تا حالا به این فکر کردی که response time سیستم ت در حد میکروثانیه باشه؟ مثلا به میلی ثانیه و اینا نرسه اصلا؟
احتمالا تو نسل بعدی دیتاسنترها بیشتر میشنویم ازشون
https://x.com/petereliaskraft/status/1830294745563951329?t=LxJ9z3qlt7uREui7hUCAyg&s=35
Shenango: Achieving High CPU Efficiency for Latency-sensitive Datacenter Workloads
https://www.usenix.org/conference/nsdi19/presentation/ousterhout
@gocasts
تا حالا به این فکر کردی که response time سیستم ت در حد میکروثانیه باشه؟ مثلا به میلی ثانیه و اینا نرسه اصلا؟
احتمالا تو نسل بعدی دیتاسنترها بیشتر میشنویم ازشون
https://x.com/petereliaskraft/status/1830294745563951329?t=LxJ9z3qlt7uREui7hUCAyg&s=35
Shenango: Achieving High CPU Efficiency for Latency-sensitive Datacenter Workloads
https://www.usenix.org/conference/nsdi19/presentation/ousterhout
@gocasts
👍18❤7🔥2
از تست نویسی مهم تر داشتن متریک لازم و کافی در همه جای کد هست، تا میتونید نقاط مهم کدی که مینویسید رو در لحظه متر کنید، نوشتن متریک رو همون لحظه که کد پروداکشن مینویسید اضافه کنید و به تعویقش نندازید.
@gocasts
#observability
@gocasts
#observability
👍26🔥1
گاها پیش میاد که بچه ها در مورد نحوه اجرای transaction دیتابیس سوال میپرسن در شرایطی که ممکنه دو قسمت یک تراکنش مربوط به دو ماژول مختلف باشه و تو ساختار کد خیلی راحت نشه این تراکنش رو اجرا کرد
این مقاله توضیحات خوبی در این مورد میده
Database Transactions in Go with Layered Architecture
https://threedots.tech/post/database-transactions-in-go
@gocasts
#golang #database #transactions
این مقاله توضیحات خوبی در این مورد میده
Database Transactions in Go with Layered Architecture
https://threedots.tech/post/database-transactions-in-go
@gocasts
#golang #database #transactions
threedots.tech
Database Transactions in Go with Layered Architecture
As I join a new company, I often feel like an impostor. After all the interviews, they really seem to know what they’re doing. I’m humbled and ready to learn from the best.
On one such occasion, a few days in, I dealt with a production outage and asked the…
On one such occasion, a few days in, I dealt with a production outage and asked the…
👍15🔥2❤1
سراب دنیای نرم افزاری
برای خودم زیاد پیش میاد که دچار هیجان مثبت و منفی بیش از حد بشم در مورد یه چیزی حین کار.
این هیجان میتونه در مورد یه ایده جدید باشه، در مورد یادگیری یه موضوع جدید باشه، یا حتی استرس یه incident و باگ باشه.
خیلی اوقات دوست دارم تا بی نهایت وقت داشته باشم که روی یک محصول نرم افزاری کار کنم ولی از اینکه چنین وقتی ندارم ناامید میشم.
بعضی وقت ها هم که خیلی غرق کار میشم یهو از درون خالی میشم و دچار پوچی میشم، حس بیهوده بودن میکنم، اینکه اصلا چرا دارم این کار رو میکنم، آینده ش چی میشه و غیره
چنین حس هایی ممکنه کم و بیش سراغ خیلی ها اومده باشه
نسخه ای که سعی میکنم برای خودم بپیچم اینه که سعی کنم از هیچ چیزی رویا نسازم، توهم فانتزی و خیالی نداشته باشم در مورد ساخت محصول خاصی یا موقعیت خاصی
این نسخه ممکنه گاها باعث دلسردی هم بشه، اما برای من حداقل فکر میکنم منفعت هاش بیشتر از مضراتش هست، چون بهم کمک میکنه یه تعادلی بین کار و زندگی ایجاد کنم، نه کار رو اونقدر شیرین و جذاب ببینم که زمان هایی که کار نمیکنم افسوس بخورم، و نه اونقدر کار رو سخت و پر استرس ببینم که نخوام سمت ش برم، داشتن دید واقع بینانه نسبت به حال و آینده کار در حد توان(طبیعتا خیلی چیزهای آینده رو نمیشه پیش بینی کرد)، فکر میکنم باعث بشه سطح انتظارمون رو بهتر تشخیص بدیم و از کاری که میکنیم به طور میانگین بیشتر لذت ببریم و کمتر حسرت کارهای انجام نداده رو بخوریم.
دو سه روز پیش این مصاحبه از آقای اسمش رو نبر (اینقدر که تلفظش سخته!) دیدم، سازنده زبان سی پلاس پلاس، که توصیه های جالبی داشتند که کم و بیش مرتبطه به این موضوع، دوست داشتید ببینید
https://www.youtube.com/watch?v=-QxI-RP6-HM
@gocasts
برای خودم زیاد پیش میاد که دچار هیجان مثبت و منفی بیش از حد بشم در مورد یه چیزی حین کار.
این هیجان میتونه در مورد یه ایده جدید باشه، در مورد یادگیری یه موضوع جدید باشه، یا حتی استرس یه incident و باگ باشه.
خیلی اوقات دوست دارم تا بی نهایت وقت داشته باشم که روی یک محصول نرم افزاری کار کنم ولی از اینکه چنین وقتی ندارم ناامید میشم.
بعضی وقت ها هم که خیلی غرق کار میشم یهو از درون خالی میشم و دچار پوچی میشم، حس بیهوده بودن میکنم، اینکه اصلا چرا دارم این کار رو میکنم، آینده ش چی میشه و غیره
چنین حس هایی ممکنه کم و بیش سراغ خیلی ها اومده باشه
نسخه ای که سعی میکنم برای خودم بپیچم اینه که سعی کنم از هیچ چیزی رویا نسازم، توهم فانتزی و خیالی نداشته باشم در مورد ساخت محصول خاصی یا موقعیت خاصی
این نسخه ممکنه گاها باعث دلسردی هم بشه، اما برای من حداقل فکر میکنم منفعت هاش بیشتر از مضراتش هست، چون بهم کمک میکنه یه تعادلی بین کار و زندگی ایجاد کنم، نه کار رو اونقدر شیرین و جذاب ببینم که زمان هایی که کار نمیکنم افسوس بخورم، و نه اونقدر کار رو سخت و پر استرس ببینم که نخوام سمت ش برم، داشتن دید واقع بینانه نسبت به حال و آینده کار در حد توان(طبیعتا خیلی چیزهای آینده رو نمیشه پیش بینی کرد)، فکر میکنم باعث بشه سطح انتظارمون رو بهتر تشخیص بدیم و از کاری که میکنیم به طور میانگین بیشتر لذت ببریم و کمتر حسرت کارهای انجام نداده رو بخوریم.
دو سه روز پیش این مصاحبه از آقای اسمش رو نبر (اینقدر که تلفظش سخته!) دیدم، سازنده زبان سی پلاس پلاس، که توصیه های جالبی داشتند که کم و بیش مرتبطه به این موضوع، دوست داشتید ببینید
https://www.youtube.com/watch?v=-QxI-RP6-HM
@gocasts
YouTube
(Life) Advice From The Creator of C++
The creator of C++, Bjarne Stroustrup, shares some valuable life advice that, let’s face it, all developers, no matter their years of experience could use. According to Bjarne, ‘You can’t just do code’, you need to develop more skills if you want to be a…
👍20❤10🔥3
Go Casts 🚀
یکی از زیبایی های گولنگ اینترفیس هست، چیزی که فلسفه composition over inheritance رو به زیبایی هر چه تمام تر در گولنگ امکانپذیر کرده ولی نحوه استفاده از اینترفیس با زبان های دیگه متفاوته این مقاله توضیحاتی در این مورد داده https://eli.thegreenplace.net/2023/the…
چند روز پیش در مورد اینترفیس در گولنگ نوشتم که چقدر زیباست و باعث میشه composability راحت باشه، و اینکه مروج رویکرد composition هست نسبت به inheritance.
دیشب یه ایمیل دریافت کردم از خبرنامه Kent C. Dodds که یکی از افراد فعال و مهم حوزه فرانت و React هست و سازنده Remix هست و دوره Epic Reactش خیلی معروفه و برنامه نویس PayPal بوده
تو این ایمیل داره میگه که چرا React رو دوست داره، یه کلمه در مورد react گفت به عنوان مهم ترین دلیل خوبی react، اونم چیزی نیست جز composition.
React continues to evolve, but one thing remains constant: composition.
Back in 2014 I was driving to the first ng-conf listening to a podcast where I first heard about React.
Smart people I respect recommended it so I gave the framework five minutes.
As I tweeted out bits of my learning experience the recurring theme was my growing appreciation of components and composability.
Fast forward to today.
React continues to evolve, but one thing remains constant: composition.
The React team pushes composition in every direction of the stack while maintaining the simplicity of a JavaScript-first approach instead of some sort of framework-specific domain-specific language.
That’s why I love React so freakin much!
https://kentcdodds.com/about
@gocasts
#composition #react #golang
دیشب یه ایمیل دریافت کردم از خبرنامه Kent C. Dodds که یکی از افراد فعال و مهم حوزه فرانت و React هست و سازنده Remix هست و دوره Epic Reactش خیلی معروفه و برنامه نویس PayPal بوده
تو این ایمیل داره میگه که چرا React رو دوست داره، یه کلمه در مورد react گفت به عنوان مهم ترین دلیل خوبی react، اونم چیزی نیست جز composition.
React continues to evolve, but one thing remains constant: composition.
Back in 2014 I was driving to the first ng-conf listening to a podcast where I first heard about React.
Smart people I respect recommended it so I gave the framework five minutes.
As I tweeted out bits of my learning experience the recurring theme was my growing appreciation of components and composability.
Fast forward to today.
React continues to evolve, but one thing remains constant: composition.
The React team pushes composition in every direction of the stack while maintaining the simplicity of a JavaScript-first approach instead of some sort of framework-specific domain-specific language.
That’s why I love React so freakin much!
https://kentcdodds.com/about
@gocasts
#composition #react #golang
Kentcdodds
About Kent C. Dodds
Get to know Kent C. Dodds
❤11👍2😁1
تفاوت بین granularity و modularity رو بهتره که بدونیم. دو تا موضوعی که در کنار هم به ما اجازه میدن سرویس ها رو از هم جدا و یا با هم یکپارچه کنیم.
دوست داشتید این پادکست رو گوش بدید.
https://www.thoughtworks.com/insights/podcasts/technology-podcasts/software-service-granularity-getting-it-right
اینم توییت آقای martin fowler
https://x.com/martinfowler/status/1831818592444371148?s=35
@gocasts
دوست داشتید این پادکست رو گوش بدید.
https://www.thoughtworks.com/insights/podcasts/technology-podcasts/software-service-granularity-getting-it-right
اینم توییت آقای martin fowler
https://x.com/martinfowler/status/1831818592444371148?s=35
@gocasts
Thoughtworks
Software service granularity: Getting it right
Neal Ford and Mark Richards discover software service granularity with Ken Mugrage.
🔥8
Go Casts 🚀
اگه از معماری async استفاده می کنید، یکی از ملاحظات مهم برای سیستم های scalable کنترل لود روی ماژول های مختلف سیستم هست. ممکنه فکر کنید که ابزار صفی که استفاده می کنید قابلیت نگهداری تعداد پیام زیادی داره و از اینجور حرفا که توصیه میکنم تجدید نظر کنید در موردش…
حواستون به backpressure و concurrency control هست؟ اگه سرویس هایی دارید که async کار میکنن مواظب این موضوع باشید که لود قسمت دیگه ای از سیستم سرویس شما رو به فنا نده
این مقاله رو هم میتونید بخونید
https://news.1rj.ru/str/gocasts/482
@gocasts
این مقاله رو هم میتونید بخونید
https://news.1rj.ru/str/gocasts/482
@gocasts
👍3
از توییت یکی از بچه ها تو لینکدین یه مخزن رو دیدم که خیلی مفیده برای یادگیری علوم کامپیوتر، حتما چک کنید اگه علاقه دارید.
🎓 Path to a free self-taught education in Computer Science!
https://github.com/ossu/computer-science
@gocasts
🎓 Path to a free self-taught education in Computer Science!
https://github.com/ossu/computer-science
@gocasts
👍15❤2
سلام، پیشنهاد می کنم حتما پادکست «تفکر شفاف» بی پلاس رو گوش بدید. هم به مهارت های نرم شما کمک میکنه که ارتباط موثرتری با همکاراتون داشته باشید، هم بهتون کمک میکنه تحلیلگر و معمار و مهندس بهتری باشید، چون مهندسی همه ش فکر کردن و تصمیم گرفتنه، پس بهتر بستر مناسبی برای تفکر خودتون آماده کنید.
https://bpluspodcast.com/podcast/seventh-season/%D8%AA%D9%81%DA%A9%D8%B1-%D8%B4%D9%81%D8%A7%D9%81/
@gocasts
https://bpluspodcast.com/podcast/seventh-season/%D8%AA%D9%81%DA%A9%D8%B1-%D8%B4%D9%81%D8%A7%D9%81/
@gocasts
👍20❤7
نوشتن manifestهای کوبرنتیز میتونه چالش برانگیز باشه مخصوصا اگه تعداد microserviceها زیاد باشه
این مقاله یه سری best practice رو میگه که بهتر و منسجم تر بتونید manifestهارو بنویسید.
Best Practices for Writing Kubernetes YAML Manifests
https://mogenius.com/blog-posts/best-practices-for-writing-kubernetes-yaml-manifests
@gocasts
#devops
#kubernetes
این مقاله یه سری best practice رو میگه که بهتر و منسجم تر بتونید manifestهارو بنویسید.
Best Practices for Writing Kubernetes YAML Manifests
https://mogenius.com/blog-posts/best-practices-for-writing-kubernetes-yaml-manifests
@gocasts
#devops
#kubernetes
👍20
تخفیف ۵۰ درصدی پاییز 🍁
الحمدلله تیمسازی ۳ هم شروع شد 🎉
در ۱۰ ماهی که از فعالیت تیمسازی گذشته دو تا پروژه تیمسازی ۱ و ۲ رو شروع کرده بودیم که در حال حاضر هم ادامه دارن.
از هفته پیش تیمسازی ۳ رو شروع کردیم که مطمئن بشیم بچه های تازه وارد هم تا حد خوبی تجربه توسعه یک پروژه از مراحل اولیه ش رو کسب میکنن.
دوره + تیمسازی بکند و گولنگ Go Casts
لینک خرید دوره + تیمسازی با ۵۰ درصد تخفیف به مبلغ ۴ میلیون و ۵۰۰ هزار تومان
https://gocasts.ir
همه چیز در مورد دوره و تیمسازی در این پست توضیح داده شده
https://news.1rj.ru/str/gocasts/434
تو این پست هم میتونید فیدبک های دوره و تیمسازی و استخدام بچه هارو بخونید
https://news.1rj.ru/str/gocasts/441
دوستانی که در خرید دوره تردید دارند میتونن برای مشاوره کوتاه تلفنی، فرم زیر رو پر کنند که باهاشون تماس بگیرم
https://survey.porsline.ir/s/ATeQL4b4
@gocasts
الحمدلله تیمسازی ۳ هم شروع شد 🎉
در ۱۰ ماهی که از فعالیت تیمسازی گذشته دو تا پروژه تیمسازی ۱ و ۲ رو شروع کرده بودیم که در حال حاضر هم ادامه دارن.
از هفته پیش تیمسازی ۳ رو شروع کردیم که مطمئن بشیم بچه های تازه وارد هم تا حد خوبی تجربه توسعه یک پروژه از مراحل اولیه ش رو کسب میکنن.
دوره + تیمسازی بکند و گولنگ Go Casts
لینک خرید دوره + تیمسازی با ۵۰ درصد تخفیف به مبلغ ۴ میلیون و ۵۰۰ هزار تومان
https://gocasts.ir
همه چیز در مورد دوره و تیمسازی در این پست توضیح داده شده
https://news.1rj.ru/str/gocasts/434
تو این پست هم میتونید فیدبک های دوره و تیمسازی و استخدام بچه هارو بخونید
https://news.1rj.ru/str/gocasts/441
دوستانی که در خرید دوره تردید دارند میتونن برای مشاوره کوتاه تلفنی، فرم زیر رو پر کنند که باهاشون تماس بگیرم
https://survey.porsline.ir/s/ATeQL4b4
@gocasts
❤6😍2👍1
سلام، یه مطلب جدید دارم با کلی ارجاع به مقالات خفن دیگه
امیدوارم مطلبی که میخوام بگم هم براتون کاربردی باشه و هم لذتبخش.
شایدم به شیوه های مختلف در حال استفاده ش هستید ولی بد نیست ابعاد دیگه ش رو ببنید.
کاربردش وقتیه که میخواید یه کار مشابه رو چندبار انجام بدید، در حالیکه یکبار انجام دادنش کافیه. تو نگاه اول کش کردن به ذهنتون میاد که خب اوکیه، ولی باز برای خود کش کردن هم این موضوع کاربردیه.
ضمنا کش کردن هم اگه multi instance باشید مساله invalidate کردن و sync کردن بین podها رو خواهید داشت و یا اینکه third-party service مثل redis استفاده کنید که مساله latency رو خواهید داشت که خودش یه چالش جدید میشه، پس همیشه کش کردن راه حل نیست…
ضمنا برای کوئری های دیتابیسی که به هر دلیلی قابل کش کردن هم نیستن ولی hotpath هستن و در یه لحظات خاصی concurrent query میخورن هم خیلی کاربردیه.
من بار اول تو مقاله discord باهاش آشنا شدم
how discord stores trillions of messages
https://discord.com/blog/how-discord-stores-trillions-of-messages
که همون موقع خیلی بهم ایده داد که این الگو میتونه کاربردهای مختلفی داشته باشه ولی تو مقاله keyword خاصی رو ندیدم که بتونم بیشتر بررسیش کنم.
گذشت و گذشت تا اینکه چند روز پیش این مقاله ای که جدیدا منتشر شده رو دیدم و فهمیدم گولنگ هم یه پکیج داره به اسم singleflight
Go Singleflight Melts in Your Code, Not in Your DB
https://victoriametrics.com/blog/go-singleflight/
بهش میگن duplicate function call suppression mechanism که حتی در سطح سیستم عامل هم برای استفاده میشه و مشکل معروفیه به اسم Thundering herd problem که در این دو لینک پایین میتونید در موردش بخونید
https://en.wikipedia.org/wiki/Thundering_herd_problem
https://xania.org/200807/iocp
حتی بلاگ instagram engineering هم یه مقاله در همین مورد داره
Thundering Herds & Promises
https://instagram-engineering.com/thundering-herds-promises-82191c8af57d
و محمد حسینی راد عزیز هم یه مقاله در همین مورد نوشته قبلا
Avoid duplicate requests while filling cache!
https://medium.com/@mhrlife/avoid-duplicate-requests-while-filling-cache-98c687879f59
مقالاتی که فرستادم، مخصوصا مقاله victoriametrics مفصل در موردش توضیح داده.
اینم یه مقاله دیگه
Understanding Singleflight in Go: A Solution for Eliminating Redundant Work
https://www.codingexplorations.com/blog/understanding-singleflight-in-golang-a-solution-for-eliminating-redundant-work
اینم یه پکیج که context support رو اضافه کرده، هر چند من پکیج اصلی رو بیشتر ترجیح میدم
https://github.com/janos/singleflight
اینم لینک پکیج اصلی
https://pkg.go.dev/golang.org/x/sync/singleflight
توضیحات «دوره + تیمسازی بکند و گولنگ Go Casts» و تخفیف ۵۰ درصدی رو در این پست میتونید بخونید 👇
https://news.1rj.ru/str/gocasts/515
@gocasts
#singleflight
امیدوارم مطلبی که میخوام بگم هم براتون کاربردی باشه و هم لذتبخش.
شایدم به شیوه های مختلف در حال استفاده ش هستید ولی بد نیست ابعاد دیگه ش رو ببنید.
کاربردش وقتیه که میخواید یه کار مشابه رو چندبار انجام بدید، در حالیکه یکبار انجام دادنش کافیه. تو نگاه اول کش کردن به ذهنتون میاد که خب اوکیه، ولی باز برای خود کش کردن هم این موضوع کاربردیه.
ضمنا کش کردن هم اگه multi instance باشید مساله invalidate کردن و sync کردن بین podها رو خواهید داشت و یا اینکه third-party service مثل redis استفاده کنید که مساله latency رو خواهید داشت که خودش یه چالش جدید میشه، پس همیشه کش کردن راه حل نیست…
ضمنا برای کوئری های دیتابیسی که به هر دلیلی قابل کش کردن هم نیستن ولی hotpath هستن و در یه لحظات خاصی concurrent query میخورن هم خیلی کاربردیه.
من بار اول تو مقاله discord باهاش آشنا شدم
how discord stores trillions of messages
https://discord.com/blog/how-discord-stores-trillions-of-messages
که همون موقع خیلی بهم ایده داد که این الگو میتونه کاربردهای مختلفی داشته باشه ولی تو مقاله keyword خاصی رو ندیدم که بتونم بیشتر بررسیش کنم.
گذشت و گذشت تا اینکه چند روز پیش این مقاله ای که جدیدا منتشر شده رو دیدم و فهمیدم گولنگ هم یه پکیج داره به اسم singleflight
Go Singleflight Melts in Your Code, Not in Your DB
https://victoriametrics.com/blog/go-singleflight/
بهش میگن duplicate function call suppression mechanism که حتی در سطح سیستم عامل هم برای استفاده میشه و مشکل معروفیه به اسم Thundering herd problem که در این دو لینک پایین میتونید در موردش بخونید
https://en.wikipedia.org/wiki/Thundering_herd_problem
https://xania.org/200807/iocp
حتی بلاگ instagram engineering هم یه مقاله در همین مورد داره
Thundering Herds & Promises
https://instagram-engineering.com/thundering-herds-promises-82191c8af57d
و محمد حسینی راد عزیز هم یه مقاله در همین مورد نوشته قبلا
Avoid duplicate requests while filling cache!
https://medium.com/@mhrlife/avoid-duplicate-requests-while-filling-cache-98c687879f59
مقالاتی که فرستادم، مخصوصا مقاله victoriametrics مفصل در موردش توضیح داده.
اینم یه مقاله دیگه
Understanding Singleflight in Go: A Solution for Eliminating Redundant Work
https://www.codingexplorations.com/blog/understanding-singleflight-in-golang-a-solution-for-eliminating-redundant-work
اینم یه پکیج که context support رو اضافه کرده، هر چند من پکیج اصلی رو بیشتر ترجیح میدم
https://github.com/janos/singleflight
اینم لینک پکیج اصلی
https://pkg.go.dev/golang.org/x/sync/singleflight
توضیحات «دوره + تیمسازی بکند و گولنگ Go Casts» و تخفیف ۵۰ درصدی رو در این پست میتونید بخونید 👇
https://news.1rj.ru/str/gocasts/515
@gocasts
#singleflight
Discord
How Discord Stores Trillions of Messages
Engineer Bo Ingram shares insight into how Discord shoulders its traffic and provides a platform for our users to communicate.
🔥18❤5👍5
Go Casts 🚀
تخفیف ۵۰ درصدی پاییز 🍁 الحمدلله تیمسازی ۳ هم شروع شد 🎉 در ۱۰ ماهی که از فعالیت تیمسازی گذشته دو تا پروژه تیمسازی ۱ و ۲ رو شروع کرده بودیم که در حال حاضر هم ادامه دارن. از هفته پیش تیمسازی ۳ رو شروع کردیم که مطمئن بشیم بچه های تازه وارد هم تا حد خوبی تجربه…
یه سری مقاله بهتون معرفی میکنم که سعی کرده best practiceهای گولنگ رو بگه. به شخصه خودم سعی میکنم خیلی محتاطانه از کلمه best practice استفاده کنم، چون practiceها حتی اگه خوب باشن، برای صرفا یه سری مسائل و شرایط خاص خوب هستن، و شما نمیتونید به دنبال یه سری practice باشید که همه جا کورکورانه استفاده شون کنید.
اما خب، خوبه که practiceهای مختلف رو بدونید و بخونید و بعد بر اساس نوع مساله ای که دارید تشخیص بدید چه راه حلی رو استفاده کنید.
Introduction to Golang Best Practices
https://golang.withcodeexample.com/blog/introduction-to-golang-best-practices/
توضیحات «دوره + تیمسازی بکند و گولنگ Go Casts» و تخفیف ۵۰ درصدی رو در این پست میتونید بخونید 👇
https://news.1rj.ru/str/gocasts/515
@gocasts
اما خب، خوبه که practiceهای مختلف رو بدونید و بخونید و بعد بر اساس نوع مساله ای که دارید تشخیص بدید چه راه حلی رو استفاده کنید.
Introduction to Golang Best Practices
https://golang.withcodeexample.com/blog/introduction-to-golang-best-practices/
توضیحات «دوره + تیمسازی بکند و گولنگ Go Casts» و تخفیف ۵۰ درصدی رو در این پست میتونید بخونید 👇
https://news.1rj.ru/str/gocasts/515
@gocasts
👍16❤6