گاها پیش میاد که بچه ها در مورد نحوه اجرای 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
Go Casts 🚀
تخفیف ۵۰ درصدی پاییز 🍁 الحمدلله تیمسازی ۳ هم شروع شد 🎉 در ۱۰ ماهی که از فعالیت تیمسازی گذشته دو تا پروژه تیمسازی ۱ و ۲ رو شروع کرده بودیم که در حال حاضر هم ادامه دارن. از هفته پیش تیمسازی ۳ رو شروع کردیم که مطمئن بشیم بچه های تازه وارد هم تا حد خوبی تجربه…
همیشه برای خودم سوال بوده که دیتابیس ها بصورت سنتی روی vm یا بصورت cloud با استفاده از docker و kubernetes چه مزایا و معایبی دارن، هم از نظر هزینه های نگهداری و هم از نظر performance و عملکرد. اگه تجربه ای دارید خوشحال میشم بشنوم.
استقرار دیتابیس روی vm با حالت dockerize شده ش خصوصا برای استارت آپ های کوچیک چه تفاوت هایی میتونه داشته باشه؟
این مقاله هم در همین مورد نکاتی میگه
https://thenewstack.io/kubernetes-for-databases-weighing-the-pros-and-cons/
توضیحات «دوره + تیمسازی بکند و گولنگ Go Casts» و تخفیف ۵۰ درصدی رو در این پست میتونید بخونید 👇
https://news.1rj.ru/str/gocasts/515
@gocasts
#database #kubernetes
استقرار دیتابیس روی vm با حالت dockerize شده ش خصوصا برای استارت آپ های کوچیک چه تفاوت هایی میتونه داشته باشه؟
این مقاله هم در همین مورد نکاتی میگه
https://thenewstack.io/kubernetes-for-databases-weighing-the-pros-and-cons/
توضیحات «دوره + تیمسازی بکند و گولنگ Go Casts» و تخفیف ۵۰ درصدی رو در این پست میتونید بخونید 👇
https://news.1rj.ru/str/gocasts/515
@gocasts
#database #kubernetes
👍13❤3
وقتی عبارت network programming رو میبینیم ممکنه فکر کنیم این موضوع خیلی از ما دوره، اما اگه فقط یه ذره وارد جزییات کدی که زدیم بشیم میبینیم که اینطور نیست.
مثلا فقط کافیه شروع کنیم یه ذره کد net/http از گولنگ رو بخونیم که ببینیم این http.ListenAndServeی که استفاده میکنیم دقیقا داره چیکار میکنه
https://github.com/golang/go/blob/master/src/net/http/server.go#L3336
یه مقاله آموزشی خیلی خوب پیدا کردم که خوندنش دید خیلی خوبی میتونه بده که socket programming چه مراحل و جزییاتی داره.
در نهایت چه http server داشته باشید و یا چه http client داشته باشید و حتی اگه websocket استفاده کنید در نرم افزارتون و یا حتی live stream داشته باشید، دارید با socket کار میکنید، و خیلی خوب میشه اگه بدونیم که یه socket چیه، چطوری ایجاد میشه، و life cycleش چه functionalityهایی داره
Beej's Guide to Network Programming
https://beej.us/guide/bgnet/html
توضیحات «دوره + تیمسازی بکند و گولنگ Go Casts» و تخفیف ۵۰ درصدی رو در این پست میتونید بخونید 👇
https://news.1rj.ru/str/gocasts/515
@gocasts
مثلا فقط کافیه شروع کنیم یه ذره کد net/http از گولنگ رو بخونیم که ببینیم این http.ListenAndServeی که استفاده میکنیم دقیقا داره چیکار میکنه
https://github.com/golang/go/blob/master/src/net/http/server.go#L3336
یه مقاله آموزشی خیلی خوب پیدا کردم که خوندنش دید خیلی خوبی میتونه بده که socket programming چه مراحل و جزییاتی داره.
در نهایت چه http server داشته باشید و یا چه http client داشته باشید و حتی اگه websocket استفاده کنید در نرم افزارتون و یا حتی live stream داشته باشید، دارید با socket کار میکنید، و خیلی خوب میشه اگه بدونیم که یه socket چیه، چطوری ایجاد میشه، و life cycleش چه functionalityهایی داره
Beej's Guide to Network Programming
https://beej.us/guide/bgnet/html
توضیحات «دوره + تیمسازی بکند و گولنگ Go Casts» و تخفیف ۵۰ درصدی رو در این پست میتونید بخونید 👇
https://news.1rj.ru/str/gocasts/515
@gocasts
👍20❤3
Go Casts 🚀
تخفیف ۵۰ درصدی پاییز 🍁 الحمدلله تیمسازی ۳ هم شروع شد 🎉 در ۱۰ ماهی که از فعالیت تیمسازی گذشته دو تا پروژه تیمسازی ۱ و ۲ رو شروع کرده بودیم که در حال حاضر هم ادامه دارن. از هفته پیش تیمسازی ۳ رو شروع کردیم که مطمئن بشیم بچه های تازه وارد هم تا حد خوبی تجربه…
گاهی اوقات پیش میاد که شما لازم دارید یه حجم زیادی از اطلاعات رو دریافت و پردازش کنید.
این حجم زیاد اطلاعات ممکنه از یک جنس داده باشه و از یک منبع واحد خونده بشن، و یا نه، ممکنه از انواع مختلف باشه و احتیاج باشه که منابع مختلفی رو فراخوانی کنید.
در هر صورت اتفاقی که میفته اینه که زمان پردازش شما زیاد میشه و بهتره که به دنبال بهتر کردنش باشید. یکی از الگوهایی که کمک میکنه این قضیه رو مدیریت کنید الگوی scatter/gather هست، که خیلی وقت پیش در موردش در کانال صحبت شده بود، که میتونید از اینجا بخونید
https://news.1rj.ru/str/gocasts/64
این الگو به شما اجازه میده که پردازش موازی داشته باشید (parallelism)
Scatter-gather pattern
https://docs.aws.amazon.com/prenoscriptive-guidance/latest/cloud-design-patterns/scatter-gather.html
اگه پردازشی که دارید انجام میدید cpu bound هست، میتونید با تقسیم کردن کار بین چند core یا thread پردازنده موازی سازی انجام بدید که در زمان خیلی کمتری پردازش همه داده هارو انجام بدید.
الگوی io bound مخصوصا در معماری microservice میتونه مناسب باشه، ممکنه یک درخواستی برای پردازش چندین سرویس رو درگیر کنه، که اگه پردازش سرویس ها به همدیگه وابستگی نداشته باشن، میشه از این الگو بهره گرفت که بصورت موازی پردازش هر سرویس انجام بشه.
درسته که این الگو رو به شیوه synchronous هم میشه پیاده سازی کرد، اما معمولا به صورت asynchronous و با استفاده از message passing از این الگو استفاده میکنن.
توضیحات «دوره + تیمسازی بکند و گولنگ Go Casts» و تخفیف ۵۰ درصدی رو در این پست میتونید بخونید 👇
https://news.1rj.ru/str/gocasts/515
@gocasts
این حجم زیاد اطلاعات ممکنه از یک جنس داده باشه و از یک منبع واحد خونده بشن، و یا نه، ممکنه از انواع مختلف باشه و احتیاج باشه که منابع مختلفی رو فراخوانی کنید.
در هر صورت اتفاقی که میفته اینه که زمان پردازش شما زیاد میشه و بهتره که به دنبال بهتر کردنش باشید. یکی از الگوهایی که کمک میکنه این قضیه رو مدیریت کنید الگوی scatter/gather هست، که خیلی وقت پیش در موردش در کانال صحبت شده بود، که میتونید از اینجا بخونید
https://news.1rj.ru/str/gocasts/64
این الگو به شما اجازه میده که پردازش موازی داشته باشید (parallelism)
Scatter-gather pattern
https://docs.aws.amazon.com/prenoscriptive-guidance/latest/cloud-design-patterns/scatter-gather.html
اگه پردازشی که دارید انجام میدید cpu bound هست، میتونید با تقسیم کردن کار بین چند core یا thread پردازنده موازی سازی انجام بدید که در زمان خیلی کمتری پردازش همه داده هارو انجام بدید.
الگوی io bound مخصوصا در معماری microservice میتونه مناسب باشه، ممکنه یک درخواستی برای پردازش چندین سرویس رو درگیر کنه، که اگه پردازش سرویس ها به همدیگه وابستگی نداشته باشن، میشه از این الگو بهره گرفت که بصورت موازی پردازش هر سرویس انجام بشه.
درسته که این الگو رو به شیوه synchronous هم میشه پیاده سازی کرد، اما معمولا به صورت asynchronous و با استفاده از message passing از این الگو استفاده میکنن.
توضیحات «دوره + تیمسازی بکند و گولنگ Go Casts» و تخفیف ۵۰ درصدی رو در این پست میتونید بخونید 👇
https://news.1rj.ru/str/gocasts/515
@gocasts
Telegram
Go Casts 🚀
سلام دوستان، امیدوارم حالتون خوب باشه، من باز اومدم با یه الگوی دیگه از دنیای distributed systems!
Scatter/Gather
الگوی بعدی که در موردش صحبت میکنیم، الگوی scatter/gather هست.
الگوی replicated از منظر «تعداد درخواست پردازش شده در ثانیه» به scalability توجه…
Scatter/Gather
الگوی بعدی که در موردش صحبت میکنیم، الگوی scatter/gather هست.
الگوی replicated از منظر «تعداد درخواست پردازش شده در ثانیه» به scalability توجه…
👍10❤1🔥1
Go Casts 🚀
تخفیف ۵۰ درصدی پاییز 🍁 الحمدلله تیمسازی ۳ هم شروع شد 🎉 در ۱۰ ماهی که از فعالیت تیمسازی گذشته دو تا پروژه تیمسازی ۱ و ۲ رو شروع کرده بودیم که در حال حاضر هم ادامه دارن. از هفته پیش تیمسازی ۳ رو شروع کردیم که مطمئن بشیم بچه های تازه وارد هم تا حد خوبی تجربه…
سلام بچه ها، یه بازارچه جالب دیدم که سرویس های مختلف هوش مصنوعی رو در قالب api ارائه میده، ایرانی هم هست، اگه محصولی که توسعه میدید با هوش مصنوعی سر و کار داره احتمالا به کارتون بیاد و دردسرهای توسعه اولیه رو کاهش میده براتون، دوست داشتید سر بزنید به این لینک
https://isahab.ir/market?utm_source=linkedin&utm_medium=hosseinnazari&utm_campaign=shahrivar403&utm_id=firstcamp
@gocasts
https://isahab.ir/market?utm_source=linkedin&utm_medium=hosseinnazari&utm_campaign=shahrivar403&utm_id=firstcamp
@gocasts
👍11
خانه ای بی برای بازطراحی وبسایت خود از طراحان UI/UX باتجربه ای که به صورت داوطلبانه حاضر به همکاری هستند، دعوت به عمل می آورد.
لطفا اگر تمایل به همکاری دارید فرم زیر را پر کنید.
https://survey.porsline.ir/s/PTQeSRIi
وبسایت فعلی خانه ای بی
https://ebhome.ngo
اینستاگرام خانه ای بی
https://www.instagram.com/eb_home
@gocasts
لطفا اگر تمایل به همکاری دارید فرم زیر را پر کنید.
https://survey.porsline.ir/s/PTQeSRIi
وبسایت فعلی خانه ای بی
https://ebhome.ngo
اینستاگرام خانه ای بی
https://www.instagram.com/eb_home
@gocasts
Porsline
designer-resume-140307
با پُرسلاین به راحتی پرسشنامه خود را طراحی و ارسال کنید و با گزارشهای لحظهای آن به سرعت تصمیم بگیرید.
❤7
مقاله خوب و جذابی بود، پیشنهاد میکنم بخونید
یه جمله خیلی کلیدی داشت بنظرم که این جمله ست:
"As noted above, our major bottleneck is network IO, and Stephen mentioned this line from the SQLite documentation: "SQLite does not compete with client/server databases. SQLite competes with fopen()."
Rearchitecting: Redis to SQLite
https://wafris.org/blog/rearchitecting-for-sqlite
توضیحات «دوره + تیمسازی بکند و گولنگ Go Casts» و تخفیف ۵۰ درصدی رو در این پست میتونید بخونید 👇
https://news.1rj.ru/str/gocasts/515
@gocasts
یه جمله خیلی کلیدی داشت بنظرم که این جمله ست:
"As noted above, our major bottleneck is network IO, and Stephen mentioned this line from the SQLite documentation: "SQLite does not compete with client/server databases. SQLite competes with fopen()."
Rearchitecting: Redis to SQLite
https://wafris.org/blog/rearchitecting-for-sqlite
توضیحات «دوره + تیمسازی بکند و گولنگ Go Casts» و تخفیف ۵۰ درصدی رو در این پست میتونید بخونید 👇
https://news.1rj.ru/str/gocasts/515
@gocasts
wafris.org
Rearchitecting: Redis to SQLite | Wafris
Learn how we approached migrating our Wafris v1 client based on Redis to a new faster, easier to use SQLite architecture.
👍7❤1👏1
وقتی نوبت به نوشتن manifestهای کوبرنتیز میرسه، اسم دو تا ابزار وسط میاد، یکی helm و دیگری kustomize.
به شخصه از این نظر که kustomize همون رویه manifest اصلی کوبرنتیز رو حفظ میکنه و خوانایی خوبی داره، ترجیحش میدم.
اما خب برای اینکه شما در multi environment بخواید استفاده کنید و تفاوت های محیط ها پیچیده باشه شاید helm گزینه بهتری باشه.
در کل هم فکر میکنم کامیونیتی بیشتر helm رو پذیرفته و پیدا کردن helm chart راحت تره برای خیلی از سرویس ها.
خوشحال میشم اگه شما هم تجربه ای در این مورد دارید، به اشتراک بذارید در کامنت ها.
این مقاله توضیحاتی در مورد تفاوت هاشون داده.
https://blog.devops.dev/helm-vs-kustomize-when-to-use-which-tool-in-kubernetes-6500d72ca4b4
توضیحات «دوره + تیمسازی بکند و گولنگ Go Casts» و تخفیف ۵۰ درصدی رو در این پست میتونید بخونید 👇
https://news.1rj.ru/str/gocasts/515
@gocasts
به شخصه از این نظر که kustomize همون رویه manifest اصلی کوبرنتیز رو حفظ میکنه و خوانایی خوبی داره، ترجیحش میدم.
اما خب برای اینکه شما در multi environment بخواید استفاده کنید و تفاوت های محیط ها پیچیده باشه شاید helm گزینه بهتری باشه.
در کل هم فکر میکنم کامیونیتی بیشتر helm رو پذیرفته و پیدا کردن helm chart راحت تره برای خیلی از سرویس ها.
خوشحال میشم اگه شما هم تجربه ای در این مورد دارید، به اشتراک بذارید در کامنت ها.
این مقاله توضیحاتی در مورد تفاوت هاشون داده.
https://blog.devops.dev/helm-vs-kustomize-when-to-use-which-tool-in-kubernetes-6500d72ca4b4
توضیحات «دوره + تیمسازی بکند و گولنگ Go Casts» و تخفیف ۵۰ درصدی رو در این پست میتونید بخونید 👇
https://news.1rj.ru/str/gocasts/515
@gocasts
👍11👏1
Go Casts 🚀
تخفیف ۵۰ درصدی پاییز 🍁 الحمدلله تیمسازی ۳ هم شروع شد 🎉 در ۱۰ ماهی که از فعالیت تیمسازی گذشته دو تا پروژه تیمسازی ۱ و ۲ رو شروع کرده بودیم که در حال حاضر هم ادامه دارن. از هفته پیش تیمسازی ۳ رو شروع کردیم که مطمئن بشیم بچه های تازه وارد هم تا حد خوبی تجربه…
داشتم یه نگاهی به کتاب foundations of scalable systems مینداختم که یه بخشی ش در مورد مقیاس پذیر کردن دیتابیس به کمک کش صحبت میکنه.
A well-designed caching scheme can be invaluable in scaling a system. Caching
works great for data that rarely changes and is accessed frequently, such as inventory
catalogs, event information, and contact data. If you can handle a large percentage,
say, 80% or more, of read requests from your cache, then you effectively buy extra
capacity at your databases as they never see a large proportion of requests.
داشتن سرویس scalable و مقیاس پذیر بخش زیادی ش وابسته به رعایت کردن یه سری اصول ساده ست که خیلی هامون در موردش شنیدیم و خوندیم و میدونیم.
استراتژی های caching یکی از همون اصول ساده و مهمه که به مقیاس پذیری سیستم خیلی کمک میکنه.
کش کردن استراتژی های مختلفی داره و نباید کورکورانه استفاده بشه، چالش و دغدغه هایی هم ایجاد میکنه مثل مساله invalidate کردن کش یا thundering herd که در موردش چند روز پیش صحبت کردم.
کش کردن تو لایه های مختلف استفاده میشه و شما میتونید از مزایای این استراتژی در همه لایه ها استفاده کنید.
خود کلاینتی که مثلا اپلیکیشن وب یا موبایل هست میتونه یه سری داده رو کش کنه.
برای کمتر شدن لود سرور میتونید از cdn استفاده کنید که assetهای شمارو کش کنه.
سرویس gateway شما میتونه یه سری api رو کش کنه که لود روی اپلیکیشن شما نیفته.
اپلیکیشن شما میتونه هم روی http server یه سروی api رو کش کنه و هم میتونه تو لایه کوئری زدن به دیتابیس یه سری کوئری ها رو کش کنه.
سرویس دیتابیس هم معمولا خودشون استراتژی های مختلفی دارن برای کش کردن کوئری ها.
سیستم فایل و دیسک هایی که دیتابیس ها استفاده میکنن هم خودشون pageهای دیسکی که بیشتر استفاده میشه رو کش میکنن.
سیستم عامل هم خودش چندین لایه کش داره.
بصورت آشکار و نهان کش یکی از راه های ساده و قوی هست، اما باید با فکر و تحلیل ازش استفاده کنید.
@gocasts
A well-designed caching scheme can be invaluable in scaling a system. Caching
works great for data that rarely changes and is accessed frequently, such as inventory
catalogs, event information, and contact data. If you can handle a large percentage,
say, 80% or more, of read requests from your cache, then you effectively buy extra
capacity at your databases as they never see a large proportion of requests.
داشتن سرویس scalable و مقیاس پذیر بخش زیادی ش وابسته به رعایت کردن یه سری اصول ساده ست که خیلی هامون در موردش شنیدیم و خوندیم و میدونیم.
استراتژی های caching یکی از همون اصول ساده و مهمه که به مقیاس پذیری سیستم خیلی کمک میکنه.
کش کردن استراتژی های مختلفی داره و نباید کورکورانه استفاده بشه، چالش و دغدغه هایی هم ایجاد میکنه مثل مساله invalidate کردن کش یا thundering herd که در موردش چند روز پیش صحبت کردم.
کش کردن تو لایه های مختلف استفاده میشه و شما میتونید از مزایای این استراتژی در همه لایه ها استفاده کنید.
خود کلاینتی که مثلا اپلیکیشن وب یا موبایل هست میتونه یه سری داده رو کش کنه.
برای کمتر شدن لود سرور میتونید از cdn استفاده کنید که assetهای شمارو کش کنه.
سرویس gateway شما میتونه یه سری api رو کش کنه که لود روی اپلیکیشن شما نیفته.
اپلیکیشن شما میتونه هم روی http server یه سروی api رو کش کنه و هم میتونه تو لایه کوئری زدن به دیتابیس یه سری کوئری ها رو کش کنه.
سرویس دیتابیس هم معمولا خودشون استراتژی های مختلفی دارن برای کش کردن کوئری ها.
سیستم فایل و دیسک هایی که دیتابیس ها استفاده میکنن هم خودشون pageهای دیسکی که بیشتر استفاده میشه رو کش میکنن.
سیستم عامل هم خودش چندین لایه کش داره.
بصورت آشکار و نهان کش یکی از راه های ساده و قوی هست، اما باید با فکر و تحلیل ازش استفاده کنید.
@gocasts
❤14👍6