کلیدیترین تفاوتهای بین
### 1. مبنای زمانبندی
- **
یک بازه زمانی ثابت مشخص میکند. Context پس از گذشت مدت زمان مشخص از زمان فراخوانی این تابع، منقضی میشود.
- مثال: اگر
- **
یک زمان مشخص در آینده تعیین میکند. Context دقیقا در لحظهی مشخص شده در deadline منقضی میشود.
- مثال: اگر
مورد استفادهستفاده**
- **
زمانی که مدت زمان اجرای یک عملیات برای شما مهم است و میخواهید پس از مدت مشخصی عملیات خاتمه یابد، از
- **
زمانی که به یک deadline دقیق نیاز دارید (مانند زمانی که میخواهید قبل از یک لحظهی دقیق، عملیاتی خاتمه یابد)، از
### 4. **انعطافپذیری بیشتر
- در مواردی که زمان دقیق (مربوط به یک deadline خاص) برای شما مهم است،
- **
### مثالها:
در نهایت، انتخاب بین این دو تابع بستگی به نوع نیاز شما به زمانبندی و مدیریت زمان اجرای عملیاتها دارد.
➖➖➖➖➖➖➖➖
👑 @gopher_academy
context.WithTimeout
و context.WithDeadline
در نحوهی مدیریت زمانبندی و خاتمهی contextها در Go است:### 1. مبنای زمانبندی
- **
context.WithTimeout
**:یک بازه زمانی ثابت مشخص میکند. Context پس از گذشت مدت زمان مشخص از زمان فراخوانی این تابع، منقضی میشود.
- مثال: اگر
context.WithTimeout(ctx, 5*time.Second)
فراخوانی شود، context پس از ۵ ثانیه منقضی میشود.- **
context.WithDeadline
**:یک زمان مشخص در آینده تعیین میکند. Context دقیقا در لحظهی مشخص شده در deadline منقضی میشود.
- مثال: اگر
context.WithDeadline(ctx, time.Now().Add(5*time.Second))
فراخوانی شود، context در لحظهی دقیق مشخص شده (۵ ثانیه بعد) منقضی میشود.مورد استفادهستفاده**
- **
WithTimeout
**: زمانی که مدت زمان اجرای یک عملیات برای شما مهم است و میخواهید پس از مدت مشخصی عملیات خاتمه یابد، از
WithTimeout
استفاده میشود.- **
WithDeadline
**:زمانی که به یک deadline دقیق نیاز دارید (مانند زمانی که میخواهید قبل از یک لحظهی دقیق، عملیاتی خاتمه یابد)، از
WithDeadline
استفاده پیادهسازی داخWithTimeout **WithTimeout
** به عنوان یک shortcut برای WithDeadline
عمل میکند و در واقع از WithDeadline
استفاده میکند تا زمانی که مدت مشخص شده به پایان برسد. به این معنا که WithTimeout(ctx, d)
معادل WithDeadline(ctx, time.Now().Add(d))
است.### 4. **انعطافپذیری بیشتر
WithDeadline
**- در مواردی که زمان دقیق (مربوط به یک deadline خاص) برای شما مهم است،
WithDeadline
انعطاف بیشتری فراهم میکند، زیرا میتوانید زمان مشخصی را به عنوان نقطکاربردهای رایج. **کاربردهای رایج**- **
context.WithTimeout
** معمولاً برای تعیین یک بازه زمانی ثابت برای خاتمه دادن به عملیاتی مانند درcontext.WithDeadline**context.WithDeadline
** اغلب در سیستمهای توزیع شده یا عملیاتی که یک زمانبندی خاص برای اتمام دارند، کاربرد دارد.### مثالها:
// WithTimeout: منقضی شدن پس از 5 ثانیه
ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second)
defer cancel()
// WithDeadline: منقضی شدن در یک زمان دقیق
ctx, cancel := context.WithDeadline(context.Background(), time.Now().Add(5*time.Second))
defer cancel()
در نهایت، انتخاب بین این دو تابع بستگی به نوع نیاز شما به زمانبندی و مدیریت زمان اجرای عملیاتها دارد.
➖➖➖➖➖➖➖➖
👑 @gopher_academy
🎉2✍1
Gopher Academy
کلیدیترین تفاوتهای بین context.WithTimeout و context.WithDeadline در نحوهی مدیریت زمانبندی و خاتمهی contextها در Go است: ### 1. مبنای زمانبندی - **context.WithTimeout**: یک بازه زمانی ثابت مشخص میکند. Context پس از گذشت مدت زمان مشخص از زمان فراخوانی…
برای درک بهتر از مکانیزم داخلی
این دو تابع هر دو بر اساس
### 1. ساختار Context
هر دو
- **
این تابع مدت زمانی به عنوان ورودی میگیرد و به کمک آن یک تایمر تنظیم میکند. تایمر از زمان فعلی (
- تایمر در واقع یک goroutine راهاندازی میکند که بعد از گذشت زمان، یک سیگنال خاتمه (
- **
مشابه
مکانیزم استفاده از تایمرهاایمرها**
در هر دو روش، تایمرها با استفاده از
نحوهی لغو Contextontext**
هر دو تابع به همراه یک تابع
نحوهی بررسی انقضای Contextontext**
هنگامی که عملیات در جریان است، شما میتوانید با استفاده از
### 5. **پیادهسازی داخلی
در کد داخلی کتابخانه
این تابع فقط زمان حال (
### 6. **زمانبندی دقیقتر با
در
### نتیجهگیری:
-
-
- هر دو تابع مکانیزمهای مشابهی از تایمرهای Go استفاده میکنند و هر دو به کمک goroutineها برای ارسال سیگنال خاتمه عمل میکنند.
➖➖➖➖➖➖➖➖
👑 @gopher_academy
context.WithTimeout
و context.WithDeadline
، باید به نحوهی پیادهسازی آنها در کتابخانهی context
و چگونگی استفاده از تایمرها در Go توجه کنیم. این دو تابع هر دو بر اساس
context
پایهای ساخته میشوند، اما تفاوت اصلی آنها در نحوهی مدیریت زمان و استفاده از تایمرهای داخلی است.### 1. ساختار Context
هر دو
WithTimeout
و WithDeadline
با ایجاد یک derived context
(مشتقشده از context اصلی) کار میکنند. این context جدید مشابه context اصلی است، اما به جای آن که تا انتهای عمر برنامه معتبر باشد، در یک زمان مشخص منقضی میشود. مکانیزم داخلی به این صورت است:- **
WithTimeout
**: این تابع مدت زمانی به عنوان ورودی میگیرد و به کمک آن یک تایمر تنظیم میکند. تایمر از زمان فعلی (
time.Now()
) شروع به شمارش میکند و بعد از اتمام مدت زمان مشخص شده، context منقضی میشود. - تایمر در واقع یک goroutine راهاندازی میکند که بعد از گذشت زمان، یک سیگنال خاتمه (
Done
) ارسال میکند.- **
WithDeadline
**: مشابه
WithTimeout
است، اما به جای این که مدت زمان از حالا محاسبه شود، زمانی ثابت برای خاتمه داده میشود. Goroutine مشابهی برای زمان دقیق پایان شروع میشود. این تابع میتواند مفید باشد در مواقعی که باید عملیات حتماً قبل از یک زمان خاص خاتمه یابد.مکانیزم استفاده از تایمرهاایمرها**
در هر دو روش، تایمرها با استفاده از
time.AfterFunc
یا time.NewTimer
در Go پیادهسازی میشوند. تایمر بهگونهای عمل میکند که وقتی زمان مشخص شده به پایان برسد، کانال Done
فعال شده و پیام خاتمه ارسال میشود. در این زمان، عملیات مرتبط باید متوقف شود و با بررسی کانال Done
از ادامهی کار بازماند.نحوهی لغو Contextontext**
هر دو تابع به همراه یک تابع
cancel
بازگردانده میشوند. این تابع cancel
به شما اجازه میدهد به صورت دستی context را قبل از پایان زمان آن لغو کنید. وقتی cancel
فراخوانی شود، تایمر مربوط به context متوقف شده و کانال Done
نیز بسته میشود. این مکانیزم به شما کمک میکند تا منابع استفادهشده توسط تایمرها را پاکسازی کنید و از اجرای بیمورد جلوگیری نمایید.نحوهی بررسی انقضای Contextontext**
هنگامی که عملیات در جریان است، شما میتوانید با استفاده از
ctx.Done()
بررسی کنید که آیا context منقضی شده یا خیر. این تابع یک کانال بازمیگرداند که در صورت انقضای context، بسته میشود و به goroutineها سیگنال میدهد که عملیات فعلی را خاتمه دهند. این سیگنالدهی از طریق select
یا بررسی مستقیم کانال انجام میشود.### 5. **پیادهسازی داخلی
WithTimeout
به کمک WithDeadline
**در کد داخلی کتابخانه
context
، پیادهسازی WithTimeout
به صورت مستقیم از WithDeadline
استفاده میکند:func WithTimeout(parent Context, timeout time.Duration) (Context, CancelFunc) {
return WithDeadline(parent, time.Now().Add(timeout))
}
این تابع فقط زمان حال (
time.Now()
) را به timeout
اضافه کرده و آن را به WithDeadline
ارسال میکند. به همین دلیل، WithTimeout
در واقع یک shortcut برای WithDeadline
است.### 6. **زمانبندی دقیقتر با
WithDeadline
**در
WithDeadline
شما میتوانید یک زمان دقیق برای انقضا مشخص کنید. مثلاً میتوانید تعیین کنید که context در ساعت مشخصی منقضی شود، بدون توجه به این که در حال حاضر چقدر زمان باقیمانده است. این ویژگی برای مواردی مفید است که نیاز دارید چندین عملیات به طور همزمان و هماهنگ با یک deadline خاص به پایان برسند.### نتیجهگیری:
-
WithTimeout
برای محدود کردن مدت زمان یک عملیات مفید است.-
WithDeadline
برای تعیین یک زمان دقیق (مانند یک deadline واقعی) استفاده میشود.- هر دو تابع مکانیزمهای مشابهی از تایمرهای Go استفاده میکنند و هر دو به کمک goroutineها برای ارسال سیگنال خاتمه عمل میکنند.
➖➖➖➖➖➖➖➖
👑 @gopher_academy
👍2❤1🎉1
Forwarded from Bardia & Erfan
تأثیر دانش زبان انگلیسی در دنیای برنامهنویسی از نگاه موسسه زبان آفاق
https://www.zoomit.ir/pr/428701-afagh-lc/
➖➖➖➖➖➖➖➖
👑 @labdon_academy
https://www.zoomit.ir/pr/428701-afagh-lc/
➖➖➖➖➖➖➖➖
👑 @labdon_academy
🎉1🍓1👻1
🔵 عنوان مقاله
Product for Engineers: A Newsletter Helping Flex Your Product Muscle
🟢 خلاصه مقاله:
مقاله "Product for Engineers" به بررسی مهارتها و استراتژیهای لازم برای مهندسین محصول میپردازد تا آنها در حرفهشان موفق شوند. در این مقاله، اهمیت ترکیب مهارتهای فنی با دانش مدیریت محصول تأکید شده است. مهندسین محصول باید نه تنها در فناوریهای مربوطه مهارت داشته باشند، بلکه باید قادر به درک نیازهای بازار و توسعه راه حلهای متناسب با این نیازها نیز باشند. مقاله همچنین بر اهمیت توانایی کار در تیمهای متقاطع و ارتباط موثر با سایر بخشهای شرکت، از جمله بازاریابی و فروش، تأکید میکند. نویسنده به مهندسین محصول توصیه میکند که برای موفقیت در نقشهای مدیریتی، باید مهارتهای رهبری و تصمیمگیری را نیز توسعه دهند. بهطور خلاصه، هدف اصلی مقاله تقویت درک مهندسین محصول از اصول اساسی مدیریت محصول و توسعه مهارتهای کلیدی مورد نیاز برای پیشرفت در این حرفه است.
🟣لینک مقاله:
https://golangweekly.com/link/160760/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Product for Engineers: A Newsletter Helping Flex Your Product Muscle
🟢 خلاصه مقاله:
مقاله "Product for Engineers" به بررسی مهارتها و استراتژیهای لازم برای مهندسین محصول میپردازد تا آنها در حرفهشان موفق شوند. در این مقاله، اهمیت ترکیب مهارتهای فنی با دانش مدیریت محصول تأکید شده است. مهندسین محصول باید نه تنها در فناوریهای مربوطه مهارت داشته باشند، بلکه باید قادر به درک نیازهای بازار و توسعه راه حلهای متناسب با این نیازها نیز باشند. مقاله همچنین بر اهمیت توانایی کار در تیمهای متقاطع و ارتباط موثر با سایر بخشهای شرکت، از جمله بازاریابی و فروش، تأکید میکند. نویسنده به مهندسین محصول توصیه میکند که برای موفقیت در نقشهای مدیریتی، باید مهارتهای رهبری و تصمیمگیری را نیز توسعه دهند. بهطور خلاصه، هدف اصلی مقاله تقویت درک مهندسین محصول از اصول اساسی مدیریت محصول و توسعه مهارتهای کلیدی مورد نیاز برای پیشرفت در این حرفه است.
🟣لینک مقاله:
https://golangweekly.com/link/160760/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Posthog
Product for Engineers | Substack
Helping engineers and founders flex their product muscles. Click to read Product for Engineers, a Substack publication with tens of thousands of subscribers.
👍1
🔵 عنوان مقاله
Go Gets High-Resolution Timers on Windows
🟢 خلاصه مقاله:
در این مقاله به بررسی پشتیبانی افزوده شده برای تایمرهای با وضوح بالا در نسخه 1.23 زبان برنامهنویسی Go بر روی سیستمعامل ویندوز پرداخته شده است. در نسخههای پیشین، وضوح تایمرها در حدود 15.6 میلیثانیه بود، اما با بهروزرسانیهای جدید، این وضوح به تقریباً 0.5 میلیثانیه افزایش یافته است. این بهبود قابل توجه، امکان دقت بیشتری را در زمانبندی عملیات و به خصوص در برنامههایی که نیازمند پردازش زمانی دقیق هستند، فراهم میکند. این تغییر میتواند تاثیرات مهمی در بهبود عملکرد کلی برنامههای نوشته شده به زبان Go داشته باشد، به ویژه در محیطهایی که پاسخگویی سریع الزامی است.
🟣لینک مقاله:
https://golangweekly.com/link/160756/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Go Gets High-Resolution Timers on Windows
🟢 خلاصه مقاله:
در این مقاله به بررسی پشتیبانی افزوده شده برای تایمرهای با وضوح بالا در نسخه 1.23 زبان برنامهنویسی Go بر روی سیستمعامل ویندوز پرداخته شده است. در نسخههای پیشین، وضوح تایمرها در حدود 15.6 میلیثانیه بود، اما با بهروزرسانیهای جدید، این وضوح به تقریباً 0.5 میلیثانیه افزایش یافته است. این بهبود قابل توجه، امکان دقت بیشتری را در زمانبندی عملیات و به خصوص در برنامههایی که نیازمند پردازش زمانی دقیق هستند، فراهم میکند. این تغییر میتواند تاثیرات مهمی در بهبود عملکرد کلی برنامههای نوشته شده به زبان Go داشته باشد، به ویژه در محیطهایی که پاسخگویی سریع الزامی است.
🟣لینک مقاله:
https://golangweekly.com/link/160756/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Microsoft News
High-Resolution Timers on Windows
The Go Windows port added support for high-resolution timers in Go 1.23, boosting the resolution of time.Sleep from ~15.6ms to ~0.5ms.
👍1🔥1
✍️Farshad AkbariFarshad Akbari
💡 آشنایی با کتابخانه sync در Go و کاربردهای آن برای مدیریت همزمانی
در برنامهنویسی Go، وقتی چند گوروتین همزمان اجرا میشوند، مدیریت همزمانی و دسترسی به منابع مشترک اهمیت زیادی پیدا میکند. کتابخانه sync در Go ابزارهایی فراهم میکند که به توسعهدهندگان کمک میکند تا این مدیریت را به سادگی و بدون بروز خطا انجام دهند. در ادامه به سه ابزار اصلی این کتابخانه اشاره میکنم:
1️⃣ Mutex (قفل متقابل)
Mutex برای جلوگیری از دسترسی همزمان گوروتینها به یک منبع مشترک استفاده میشود. مثلا اگر چند گوروتین بخواهند به طور همزمان یک متغیر را تغییر دهند، با استفاده از Mutex میتوانیم قفل دسترسی به این منبع را به یک گوروتین محدود کنیم.
2️⃣ WaitGroup (انتظار برای پایان گوروتینها)
وقتی چند گوروتین همزمان اجرا میشوند و میخواهیم تا پایان کار همهی آنها صبر کنیم، WaitGroup کاربرد دارد. این ابزار به ما اجازه میدهد که منتظر بمانیم تا همه گوروتینها کارشان را تمام کنند.
3️⃣ Once (اجرا فقط یکبار)
با استفاده از Once، میتوانیم اطمینان حاصل کنیم که یک تابع فقط یک بار اجرا شود، حتی اگر چند گوروتین به طور همزمان آن را صدا بزنند. این ابزار برای مواردی مثل مقداردهی اولیه بسیار کاربردی است.
🔍 جمعبندی
کتابخانه sync به توسعهدهندگان Go کمک میکند تا همزمانی را به خوبی مدیریت کنند و از بروز مشکلاتی مثل شرایط رقابتی جلوگیری کنند. استفاده درست از این ابزارها باعث افزایش کارایی و ایمنی برنامههای چندوظیفهای میشود.
➖➖➖➖➖➖➖➖
👑 @gopher_academy
💡 آشنایی با کتابخانه sync در Go و کاربردهای آن برای مدیریت همزمانی
در برنامهنویسی Go، وقتی چند گوروتین همزمان اجرا میشوند، مدیریت همزمانی و دسترسی به منابع مشترک اهمیت زیادی پیدا میکند. کتابخانه sync در Go ابزارهایی فراهم میکند که به توسعهدهندگان کمک میکند تا این مدیریت را به سادگی و بدون بروز خطا انجام دهند. در ادامه به سه ابزار اصلی این کتابخانه اشاره میکنم:
1️⃣ Mutex (قفل متقابل)
Mutex برای جلوگیری از دسترسی همزمان گوروتینها به یک منبع مشترک استفاده میشود. مثلا اگر چند گوروتین بخواهند به طور همزمان یک متغیر را تغییر دهند، با استفاده از Mutex میتوانیم قفل دسترسی به این منبع را به یک گوروتین محدود کنیم.
2️⃣ WaitGroup (انتظار برای پایان گوروتینها)
وقتی چند گوروتین همزمان اجرا میشوند و میخواهیم تا پایان کار همهی آنها صبر کنیم، WaitGroup کاربرد دارد. این ابزار به ما اجازه میدهد که منتظر بمانیم تا همه گوروتینها کارشان را تمام کنند.
3️⃣ Once (اجرا فقط یکبار)
با استفاده از Once، میتوانیم اطمینان حاصل کنیم که یک تابع فقط یک بار اجرا شود، حتی اگر چند گوروتین به طور همزمان آن را صدا بزنند. این ابزار برای مواردی مثل مقداردهی اولیه بسیار کاربردی است.
🔍 جمعبندی
کتابخانه sync به توسعهدهندگان Go کمک میکند تا همزمانی را به خوبی مدیریت کنند و از بروز مشکلاتی مثل شرایط رقابتی جلوگیری کنند. استفاده درست از این ابزارها باعث افزایش کارایی و ایمنی برنامههای چندوظیفهای میشود.
➖➖➖➖➖➖➖➖
👑 @gopher_academy
❤5👍1
🔵 عنوان مقاله
Writing a Circuit Breaker in Go
🟢 خلاصه مقاله:
این مقاله به بررسی سازوکار Circuit Breaker در مدیریت خطاها در سیستمهای محاسباتی میپردازد. Circuit Breaker یک روش موثر برای جلوگیری از تکرار اشتباهاتی است که ممکن است به صورت پیوسته رخ دهند و باعث تشدید مشکلات سیستم شوند. این سازوکار، شبیه به کلید برق در ساختمان عمل میکند؛ در صورت بروز خطا به طور خودکار عملیات مورد نظر را قطع میکند تا از آسیبهای بیشتر جلوگیری کند و با یک دوره زمانی تعیین شده به نام دوره خنک شدن، به سیستم این امکان را میدهد تا بازیابی کند. این رویکرد به کاهش آسیبپذیری سیستم کمک کرده و به بهبود ثبات و کارایی آن در برابر شکستهای احتمالی منجر میشود. این تکنیک، به ویژه در محیطهایی که دارای وابستگیهای متعدد و پیچیده هستند، حائز اهمیت است.
🟣لینک مقاله:
https://golangweekly.com/link/160757/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Writing a Circuit Breaker in Go
🟢 خلاصه مقاله:
این مقاله به بررسی سازوکار Circuit Breaker در مدیریت خطاها در سیستمهای محاسباتی میپردازد. Circuit Breaker یک روش موثر برای جلوگیری از تکرار اشتباهاتی است که ممکن است به صورت پیوسته رخ دهند و باعث تشدید مشکلات سیستم شوند. این سازوکار، شبیه به کلید برق در ساختمان عمل میکند؛ در صورت بروز خطا به طور خودکار عملیات مورد نظر را قطع میکند تا از آسیبهای بیشتر جلوگیری کند و با یک دوره زمانی تعیین شده به نام دوره خنک شدن، به سیستم این امکان را میدهد تا بازیابی کند. این رویکرد به کاهش آسیبپذیری سیستم کمک کرده و به بهبود ثبات و کارایی آن در برابر شکستهای احتمالی منجر میشود. این تکنیک، به ویژه در محیطهایی که دارای وابستگیهای متعدد و پیچیده هستند، حائز اهمیت است.
🟣لینک مقاله:
https://golangweekly.com/link/160757/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Redowan's Reflections
Writing a circuit breaker in Go
Besides retries, circuit breakers1 are probably one of the most commonly employed
resilience patterns in distributed systems. While writing a retry routine is pretty simple,
implementing a circuit breaker needs a little bit of work.
I realized that I usually…
resilience patterns in distributed systems. While writing a retry routine is pretty simple,
implementing a circuit breaker needs a little bit of work.
I realized that I usually…
🔵 عنوان مقاله
Sidekick: Bare Metal to Production Ready in Minutes
🟢 خلاصه مقاله:
مقالهای که بررسی شده به معرفی ابزار جدیدی به نام "Sidekick" میپردازد که با الهام از "Kamal" ساخته شده و به زبان برنامهنویسی Go نوشته شده است. هدف اصلی Sidekick این است که فرآیند استقرار نرمافزارها را بر روی سرورهای خصوصی به صورتی ساده و با استفاده از تنها یک دستور، مشابه به سرویس Fly.io، فراهم آورد. نویسنده مقاله هنوز فرصتی برای امتحان این ابزار نداشته است اما علاقهمند است که به زودی آن را بیازماید. از انجا که Sidekick بر اساس تجربیات و مفاهیم مشابه به Kamal طراحی شده، این ابزار میتواند راهحلی نوین و قدرتمند برای توسعهدهندگان و متخصصان IT در بهبود و تسهیل روند استقرار و مدیریت برنامهها بر روی ویپیاسها باشد.
🟣لینک مقاله:
https://golangweekly.com/link/160768/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Sidekick: Bare Metal to Production Ready in Minutes
🟢 خلاصه مقاله:
مقالهای که بررسی شده به معرفی ابزار جدیدی به نام "Sidekick" میپردازد که با الهام از "Kamal" ساخته شده و به زبان برنامهنویسی Go نوشته شده است. هدف اصلی Sidekick این است که فرآیند استقرار نرمافزارها را بر روی سرورهای خصوصی به صورتی ساده و با استفاده از تنها یک دستور، مشابه به سرویس Fly.io، فراهم آورد. نویسنده مقاله هنوز فرصتی برای امتحان این ابزار نداشته است اما علاقهمند است که به زودی آن را بیازماید. از انجا که Sidekick بر اساس تجربیات و مفاهیم مشابه به Kamal طراحی شده، این ابزار میتواند راهحلی نوین و قدرتمند برای توسعهدهندگان و متخصصان IT در بهبود و تسهیل روند استقرار و مدیریت برنامهها بر روی ویپیاسها باشد.
🟣لینک مقاله:
https://golangweekly.com/link/160768/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
GitHub
GitHub - MightyMoud/sidekick: Bare metal to production ready in mins; your own fly server on your VPS.
Bare metal to production ready in mins; your own fly server on your VPS. - MightyMoud/sidekick
🔥1
🔵 عنوان مقاله
Kamal 2: Thou Need Not PaaS
🟢 خلاصه مقاله:
مقاله به بررسی ابزار استقرار بر اساس کانتینر به نام Kamal از شرکت 37Signals میپردازد، شرکتی که بیشتر به خاطر توسعه Ruby on Rails شناخته شده است. اگرچه Kamal زبانناپذیر است و از زبانهای برنامهنویسی مختلف پشتیبانی میکند. این مقاله به توضیح و نمایش استقرار یک برنامه ساده به زبان Go با استفاده از یک دموی اسکرینکست میپردازد و سپس به مثالی با زبان Ruby میرسد. Kamal به عنوان یک گزینه جدید و قابل اعتماد برای استقرار برنامههای Go در سرورهای مدیریت شده توسط خود معرفی شده است که میتواند راه برای استفاده گستردهتر از آن را هموار سازد. ابزار مذکور میتواند تحولی در استقرار سریع و آسان نرمافزارها بر روی پلتفرمهای مختلف به ارمغان بیاورد.
🟣لینک مقاله:
https://golangweekly.com/link/160765/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Kamal 2: Thou Need Not PaaS
🟢 خلاصه مقاله:
مقاله به بررسی ابزار استقرار بر اساس کانتینر به نام Kamal از شرکت 37Signals میپردازد، شرکتی که بیشتر به خاطر توسعه Ruby on Rails شناخته شده است. اگرچه Kamal زبانناپذیر است و از زبانهای برنامهنویسی مختلف پشتیبانی میکند. این مقاله به توضیح و نمایش استقرار یک برنامه ساده به زبان Go با استفاده از یک دموی اسکرینکست میپردازد و سپس به مثالی با زبان Ruby میرسد. Kamal به عنوان یک گزینه جدید و قابل اعتماد برای استقرار برنامههای Go در سرورهای مدیریت شده توسط خود معرفی شده است که میتواند راه برای استفاده گستردهتر از آن را هموار سازد. ابزار مذکور میتواند تحولی در استقرار سریع و آسان نرمافزارها بر روی پلتفرمهای مختلف به ارمغان بیاورد.
🟣لینک مقاله:
https://golangweekly.com/link/160765/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Hey
Kamal 2: Thou need not PaaS
Kamal was our ticket out of the cloud. A simple tool for deploying containerized applications onto our own hardware, without the need for the complexity of something like Kubernetes. Kamal 2 is a huge leap forward for that tool, and it has just shipped. Now…
👍1
🔵 عنوان مقاله
go-pretty: Pretty Print Tables, Lists and Text on the Terminal
🟢 خلاصه مقاله:
مقالهای که در اختیار شما قرار دارد به بررسی ابزارهای مختلفی میپردازد که به زیباسازی خروجی کنسول در قالب جداول، لیستها، نوارهای پیشرفت، متن و غیره میپردازند. تمرکز اصلی این ابزارها بر روی قابلیت سفارشیسازی است. این سفارشیسازی به کاربران امکان میدهد تا ظاهر خروجیها را بر اساس نیازها و سلایق شخصی خود تنظیم کنند. از جمله مزایای استفاده از این ابزارها، بهبود خوانایی و جذابیت ویژوال خروجیهای کنسولی است، که میتواند در فهم بهتر و سریعتر دادهها به کاربران کمک کند. این ابزارها، به خصوص در محیطهای توسعه نرمافزار و آنالیز داده، کاربردی ارزشمند دارند. این مقاله با ارائه مثالهای متنوع، نحوه به کارگیری و پیادهسازی این ابزارها را با جزئیات و به صورت گام به گام توضیح میدهد.
🟣لینک مقاله:
https://golangweekly.com/link/160772/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
go-pretty: Pretty Print Tables, Lists and Text on the Terminal
🟢 خلاصه مقاله:
مقالهای که در اختیار شما قرار دارد به بررسی ابزارهای مختلفی میپردازد که به زیباسازی خروجی کنسول در قالب جداول، لیستها، نوارهای پیشرفت، متن و غیره میپردازند. تمرکز اصلی این ابزارها بر روی قابلیت سفارشیسازی است. این سفارشیسازی به کاربران امکان میدهد تا ظاهر خروجیها را بر اساس نیازها و سلایق شخصی خود تنظیم کنند. از جمله مزایای استفاده از این ابزارها، بهبود خوانایی و جذابیت ویژوال خروجیهای کنسولی است، که میتواند در فهم بهتر و سریعتر دادهها به کاربران کمک کند. این ابزارها، به خصوص در محیطهای توسعه نرمافزار و آنالیز داده، کاربردی ارزشمند دارند. این مقاله با ارائه مثالهای متنوع، نحوه به کارگیری و پیادهسازی این ابزارها را با جزئیات و به صورت گام به گام توضیح میدهد.
🟣لینک مقاله:
https://golangweekly.com/link/160772/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
GitHub
GitHub - jedib0t/go-pretty: Table-writer and more in golang!
Table-writer and more in golang! Contribute to jedib0t/go-pretty development by creating an account on GitHub.
👍1
🔵 عنوان مقاله
Giu 0.9: A Dear ImGui-Based Cross Platform GUI Framework
🟢 خلاصه مقاله:
مقالهای که مورد بررسی قرار گرفته است به توضیح و بررسی نحوه ساخت برنامههای کاربردی گرافیکی (GUI) با استفاده از زبان برنامهنویسی Go بر بستر کتابخانه Dear ImGui پرداخته است. نسخه 0.9 این فریمورک به عنوان نسخهای که تغییرات عمدهای ندارد شناخته شده، اما قابلیتهای فریمورک را تکمیل کرده و مستندات بیشتری به آن افزوده شده است. این افزایش مستندات به توسعهدهندگان کمک میکند تا با استفاده از این ابزار بهترین بهرهبرداری را داشته باشند و بتوانند برنامههای کاربردی GUI قدرتمند و کارآمدی را توسعه دهند.
🟣لینک مقاله:
https://golangweekly.com/link/160773/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Giu 0.9: A Dear ImGui-Based Cross Platform GUI Framework
🟢 خلاصه مقاله:
مقالهای که مورد بررسی قرار گرفته است به توضیح و بررسی نحوه ساخت برنامههای کاربردی گرافیکی (GUI) با استفاده از زبان برنامهنویسی Go بر بستر کتابخانه Dear ImGui پرداخته است. نسخه 0.9 این فریمورک به عنوان نسخهای که تغییرات عمدهای ندارد شناخته شده، اما قابلیتهای فریمورک را تکمیل کرده و مستندات بیشتری به آن افزوده شده است. این افزایش مستندات به توسعهدهندگان کمک میکند تا با استفاده از این ابزار بهترین بهرهبرداری را داشته باشند و بتوانند برنامههای کاربردی GUI قدرتمند و کارآمدی را توسعه دهند.
🟣لینک مقاله:
https://golangweekly.com/link/160773/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
GitHub
GitHub - AllenDang/giu: Cross platform rapid GUI framework for golang based on Dear ImGui.
Cross platform rapid GUI framework for golang based on Dear ImGui. - AllenDang/giu
🔵 عنوان مقاله
Watermill: Library for Building Event-Driven Apps
🟢 خلاصه مقاله:
این مقاله به بررسی کتابخانهای برای کار با جریانهای پیام در برنامههای مبتنی بر رویداد میپردازد که امکان پشتیبانی از کانالهای مختلفی مانند Kafka، RabbitMQ، HTTP و حتی binlogs MySQL را فراهم میسازد. این کتابخانه ابزاری قدرتمند برای توسعهدهندگان نرمافزار است تا بتوانند به طور موثرتری اپلیکیشنهای درونران و پاسخگو به رویدادها را بسازند. کاربرد این کتابخانه شامل برقراری ارتباط بین کامپوننتها و سیستمها از طریق جریانهای پیام است که امکان پردازش و تحلیل دادهها را در زمان واقعی فراهم میآورد. دستیابی به این شیوه از ارتباط درون سرویسی این امکان را به توسعهدهندگان میدهد که پیچیدگیهای مدیریت ارتباطات و جریان دادهها را بهینهسازی کنند و بتوانند رابطکاربریهای بیشتر متکی بر اینتراکتیویتی و دادهی مداوم را ارائه دهند. در نهایت، این کتابخانه به فرآیند توسعه اپلیکیشنهای پیچیدهتر و در عین حال کارآمدتر کمک شایانی میکند.
🟣لینک مقاله:
https://golangweekly.com/link/160776/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Watermill: Library for Building Event-Driven Apps
🟢 خلاصه مقاله:
این مقاله به بررسی کتابخانهای برای کار با جریانهای پیام در برنامههای مبتنی بر رویداد میپردازد که امکان پشتیبانی از کانالهای مختلفی مانند Kafka، RabbitMQ، HTTP و حتی binlogs MySQL را فراهم میسازد. این کتابخانه ابزاری قدرتمند برای توسعهدهندگان نرمافزار است تا بتوانند به طور موثرتری اپلیکیشنهای درونران و پاسخگو به رویدادها را بسازند. کاربرد این کتابخانه شامل برقراری ارتباط بین کامپوننتها و سیستمها از طریق جریانهای پیام است که امکان پردازش و تحلیل دادهها را در زمان واقعی فراهم میآورد. دستیابی به این شیوه از ارتباط درون سرویسی این امکان را به توسعهدهندگان میدهد که پیچیدگیهای مدیریت ارتباطات و جریان دادهها را بهینهسازی کنند و بتوانند رابطکاربریهای بیشتر متکی بر اینتراکتیویتی و دادهی مداوم را ارائه دهند. در نهایت، این کتابخانه به فرآیند توسعه اپلیکیشنهای پیچیدهتر و در عین حال کارآمدتر کمک شایانی میکند.
🟣لینک مقاله:
https://golangweekly.com/link/160776/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
GitHub
GitHub - ThreeDotsLabs/watermill: Building event-driven applications the easy way in Go.
Building event-driven applications the easy way in Go. - ThreeDotsLabs/watermill
👍1
🔵 عنوان مقاله
▶ Russ Cox on Passing the Torch
🟢 خلاصه مقاله:
راس کاکس، سرپرست سابق تکنولوژی زبان برنامهنویسی Go، به تازگی در پادکست Go Time حضور یافت تا در مورد فرآیند کنارهگیری خود و واگذاری مسئولیتهای خود به رهبر جدید، آستین کلمنتس، صحبت کند. آستین کلمنتس نیز در این پادکست ظاهر شده است، همچنین چری موی که برخی از مسئولیتهای پیشین آستین را به عهده گرفته نیز حضور داشته است. راس در یک پست جداگانه نیز در مورد این تغییرات بیشتر توضیح داده است. اگرچه پادکست یک ساعته است، اما متن کامل آن نیز موجود است. این بحثها نه تنها به انتقال رهبری تمرکز دارد، بلکه به بخشهایی از فرایند توسعه Go و چگونگی تاثیر آن بر جامعه برنامهنویسان پرداخته است.
🟣لینک مقاله:
https://golangweekly.com/link/161016/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
▶ Russ Cox on Passing the Torch
🟢 خلاصه مقاله:
راس کاکس، سرپرست سابق تکنولوژی زبان برنامهنویسی Go، به تازگی در پادکست Go Time حضور یافت تا در مورد فرآیند کنارهگیری خود و واگذاری مسئولیتهای خود به رهبر جدید، آستین کلمنتس، صحبت کند. آستین کلمنتس نیز در این پادکست ظاهر شده است، همچنین چری موی که برخی از مسئولیتهای پیشین آستین را به عهده گرفته نیز حضور داشته است. راس در یک پست جداگانه نیز در مورد این تغییرات بیشتر توضیح داده است. اگرچه پادکست یک ساعته است، اما متن کامل آن نیز موجود است. این بحثها نه تنها به انتقال رهبری تمرکز دارد، بلکه به بخشهایی از فرایند توسعه Go و چگونگی تاثیر آن بر جامعه برنامهنویسان پرداخته است.
🟣لینک مقاله:
https://golangweekly.com/link/161016/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Changelog
Russ Cox on passing the torch with Austin Clements & Cherry Mui (Go Time #333)
In this episode, we will be talking to Russ Cox, who joined the Go team at Google in 2008 and has been the Go project tech lead since 2012, about stepping back & handing over the reins to Austin Clements, who will also join us! We also have Cherry Mui, who…
🙏2😈2
در زبان برنامهنویسی Go، خطای nilness: nil dereference in field selection به این معنی است که شما سعی کردهاید به فیلدی از یک متغیر اشارهگری دسترسی پیدا کنید که مقدار آن nil است. این خطا معمولاً زمانی رخ میدهد که به یک فیلد یا متد از یک اشارهگر nil دسترسی پیدا کنید، و Go به طور ایستا (در زمان کامپایل) شناسایی کرده است که ممکن است این دسترسی منجر به panic شود.
برای رفع این خطا، باید مطمئن شوید که قبل از دسترسی به فیلدها یا متدهای اشارهگر، بررسی کنید که مقدار اشارهگر nil نباشد.
➖➖➖➖➖➖➖➖
👑 @gopher_academy
برای رفع این خطا، باید مطمئن شوید که قبل از دسترسی به فیلدها یا متدهای اشارهگر، بررسی کنید که مقدار اشارهگر nil نباشد.
➖➖➖➖➖➖➖➖
👑 @gopher_academy
🔥3
🔵 عنوان مقاله
Greenmask: Postgres Data Masking and Obfuscation Tool
🟢 خلاصه مقاله:
مقالهای که مورد بررسی قرار گرفته در مورد ابزاری است که با زبان برنامهنویسی Go نوشته شده است. این ابزار برای خروجی گرفتن از پایگاه دادههای Postgres و مخفیسازی دادهها به شکل تعیینشده (deterministic) طراحی شده است. منبعی که برنامه در آن موجود است، GitHub repo، به کاربران امکان میدهد تا کد ابزار را مشاهده و در صورت نیاز تغییر دهند. مخفیسازی دادهها به این صورت است که اطلاعات حساس در دیتابیس در حین خروجی گرفتن تغییر میکنند تا از افشای اطلاعات جلوگیری شود، اما به نحوی که برای توسعهدهندگان قابل استفاده باقی بماند. این عملکرد برای سازمانهایی که به حفظ حریم خصوصی دادهها ملزم هستند بسیار مفید است.
🟣لینک مقاله:
https://golangweekly.com/link/161036/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Greenmask: Postgres Data Masking and Obfuscation Tool
🟢 خلاصه مقاله:
مقالهای که مورد بررسی قرار گرفته در مورد ابزاری است که با زبان برنامهنویسی Go نوشته شده است. این ابزار برای خروجی گرفتن از پایگاه دادههای Postgres و مخفیسازی دادهها به شکل تعیینشده (deterministic) طراحی شده است. منبعی که برنامه در آن موجود است، GitHub repo، به کاربران امکان میدهد تا کد ابزار را مشاهده و در صورت نیاز تغییر دهند. مخفیسازی دادهها به این صورت است که اطلاعات حساس در دیتابیس در حین خروجی گرفتن تغییر میکنند تا از افشای اطلاعات جلوگیری شود، اما به نحوی که برای توسعهدهندگان قابل استفاده باقی بماند. این عملکرد برای سازمانهایی که به حفظ حریم خصوصی دادهها ملزم هستند بسیار مفید است.
🟣لینک مقاله:
https://golangweekly.com/link/161036/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
👍4
🔵 عنوان مقاله
'When I Told 4,091 Writers They Weren’t Getting Paid..'
🟢 خلاصه مقاله:
مهندسی در یکی از پلتفرمهای محبوب نویسندگی که دارای پیغامهای پرداخت است، داستانی از یک اشکال نرمافزاری خفیف یا وضعیت مسابقهای (race condition) را به اشتراک گذاشته که منجر به دریافت خبرهای ناخواسته بد توسط تعداد زیادی از نویسندگان شد. این موقعیتهای نرمافزاری میتوانند به طور غیرمنتظرهای در محلهای مختلفی ظاهر شوند، و بنابراین شناسایی آنها و درک عواقب ممکن آن اهمیت دارد. آگاهی از چنین اتفاقاتی و داشتن دانش برای تشخیص و حل این موارد میتواند به جلوگیری از زیانهای بیشتر به کاربران و کسبوکارها کمک کند. درک و تحلیل این مثالها برای هر مهندس نرمافزاری ضروری است تا از تکرار این خطاها در آینده پرهیز شود.
🟣لینک مقاله:
https://golangweekly.com/link/161018/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
'When I Told 4,091 Writers They Weren’t Getting Paid..'
🟢 خلاصه مقاله:
مهندسی در یکی از پلتفرمهای محبوب نویسندگی که دارای پیغامهای پرداخت است، داستانی از یک اشکال نرمافزاری خفیف یا وضعیت مسابقهای (race condition) را به اشتراک گذاشته که منجر به دریافت خبرهای ناخواسته بد توسط تعداد زیادی از نویسندگان شد. این موقعیتهای نرمافزاری میتوانند به طور غیرمنتظرهای در محلهای مختلفی ظاهر شوند، و بنابراین شناسایی آنها و درک عواقب ممکن آن اهمیت دارد. آگاهی از چنین اتفاقاتی و داشتن دانش برای تشخیص و حل این موارد میتواند به جلوگیری از زیانهای بیشتر به کاربران و کسبوکارها کمک کند. درک و تحلیل این مثالها برای هر مهندس نرمافزاری ضروری است تا از تکرار این خطاها در آینده پرهیز شود.
🟣لینک مقاله:
https://golangweekly.com/link/161018/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Medium
When I told 4,091 writers they weren’t getting paid
Subtle database errors and how we recovered
👍2
🔵 عنوان مقاله
Gomponents 1.0: HTML View Components in Pure Go
🟢 خلاصه مقاله:
مقالهای که به آن اشاره شده، درباره کتابخانه کامپوننت HTML به نام v1.0 است که برای پروژههای زبان برنامهنویسی Go طراحی شده است. این کتابخانه پس از سه سال به نسخه ثابت و بدون وابستگی به دیگر مؤلفهها رسیده است. استفاده از این کتابخانه در پروژهها به توسعهدهندگان اجازه میدهد تا از اجزای HTML به طور مؤثری در برنامههای خود استفاده کنند. علاوه بر این، یک نمونه برنامه نیز برای بررسی موجود است که میتواند به کاربران کمک کند تا عملکرد و کاربرد کتابخانه را در عمل مشاهده کنند. این ابزار به افزایش بهرهوری و کارایی در توسعه نرمافزار کمک خواهد کرد.
🟣لینک مقاله:
https://golangweekly.com/link/161019/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Gomponents 1.0: HTML View Components in Pure Go
🟢 خلاصه مقاله:
مقالهای که به آن اشاره شده، درباره کتابخانه کامپوننت HTML به نام v1.0 است که برای پروژههای زبان برنامهنویسی Go طراحی شده است. این کتابخانه پس از سه سال به نسخه ثابت و بدون وابستگی به دیگر مؤلفهها رسیده است. استفاده از این کتابخانه در پروژهها به توسعهدهندگان اجازه میدهد تا از اجزای HTML به طور مؤثری در برنامههای خود استفاده کنند. علاوه بر این، یک نمونه برنامه نیز برای بررسی موجود است که میتواند به کاربران کمک کند تا عملکرد و کاربرد کتابخانه را در عمل مشاهده کنند. این ابزار به افزایش بهرهوری و کارایی در توسعه نرمافزار کمک خواهد کرد.
🟣لینک مقاله:
https://golangweekly.com/link/161019/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Gomponents
gomponents, HTML components in pure Go
HTML components in pure Go, that render to HTML 5.
🔥1🎉1
🔵 عنوان مقاله
Go Blueprint: Create New Go Projects with a Defined Structure
🟢 خلاصه مقاله:
این مقاله به معرفی ابزار جدیدی برای پیادهسازی پروژههای جدید در زبان برنامهنویسی Go میپردازد، که به کاربران امکان میدهد به سرعت یک برنامه با ساختار پروندهای پیشتعریفشده و تولید کد خودکار راهاندازی کنند. این ابزار به کاربران اجازه میدهد تا اپلیکیشنهایی بر پایه چارچوبهای معروفی مانند Chi، Gin و Fiber و دیگر فریمورکها بسازند. همچنین، پشتیبانی از پایگاههای داده و ابزارهای اختیاری مانند HTMX و Tailwind CSS را فراهم میکند. اطلاعات بیشتر و منابع مرتبط در مخزن GitHub قرار دارند. این ابزار یکی از ابزارهای رو به افزایشی است که توسعهدهندگان را قادر میسازد تا بدون صرف زمان زیاد برای پیکربندیهای اولیه، سریعاً پروژههای Go خود را آغاز کنند.
🟣لینک مقاله:
https://golangweekly.com/link/161028/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Go Blueprint: Create New Go Projects with a Defined Structure
🟢 خلاصه مقاله:
این مقاله به معرفی ابزار جدیدی برای پیادهسازی پروژههای جدید در زبان برنامهنویسی Go میپردازد، که به کاربران امکان میدهد به سرعت یک برنامه با ساختار پروندهای پیشتعریفشده و تولید کد خودکار راهاندازی کنند. این ابزار به کاربران اجازه میدهد تا اپلیکیشنهایی بر پایه چارچوبهای معروفی مانند Chi، Gin و Fiber و دیگر فریمورکها بسازند. همچنین، پشتیبانی از پایگاههای داده و ابزارهای اختیاری مانند HTMX و Tailwind CSS را فراهم میکند. اطلاعات بیشتر و منابع مرتبط در مخزن GitHub قرار دارند. این ابزار یکی از ابزارهای رو به افزایشی است که توسعهدهندگان را قادر میسازد تا بدون صرف زمان زیاد برای پیکربندیهای اولیه، سریعاً پروژههای Go خود را آغاز کنند.
🟣لینک مقاله:
https://golangweekly.com/link/161028/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
docs.go-blueprint.dev
Go-Blueprint Docs
Official documentation for Go-Blueprint project
👍3
🔵 عنوان مقاله
Automate Complex Workflows Across Clouds & Data Platforms
🟢 خلاصه مقاله:
مقالهای که مورد بررسی قرار گرفته، به بررسی سیستم Kestra میپردازد که یک پلتفرم خودکارسازی قدرتمند است و قابلیت مقیاسپذیری تا میلیونها اجرا را دارد. این سیستم به طور خاص برای اتوماتیک کردن فرآیندها در محیطهای مختلف ابری نظیر AWS، GCP و Snowflake طراحی شده است. Kestra با قابلیت اطمینان بالا و بدون درز کار میکند، این بدان معناست که میتواند به صورت مؤثری فرآیندهای کسبوکار را در سطح وسیعی از پلتفرمهای مختلف به خودکارسازی برساند. این ویژگیها کمک میکند که سازمانها بتوانند بهرهوری را افزایش دهند و هزینههای عملیاتی خود را کاهش دهند، در حالی که از پیچیدگیهای فنی که معمولاً با خودکارسازی فرآیندها همراه است، میکاهند. Kestra این امکانات را فراهم میآورد تا سازمانها با اطمینان بیشتری به سوی دیجیتالی شدن پیش بروند.
🟣لینک مقاله:
https://golangweekly.com/link/161031/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Automate Complex Workflows Across Clouds & Data Platforms
🟢 خلاصه مقاله:
مقالهای که مورد بررسی قرار گرفته، به بررسی سیستم Kestra میپردازد که یک پلتفرم خودکارسازی قدرتمند است و قابلیت مقیاسپذیری تا میلیونها اجرا را دارد. این سیستم به طور خاص برای اتوماتیک کردن فرآیندها در محیطهای مختلف ابری نظیر AWS، GCP و Snowflake طراحی شده است. Kestra با قابلیت اطمینان بالا و بدون درز کار میکند، این بدان معناست که میتواند به صورت مؤثری فرآیندهای کسبوکار را در سطح وسیعی از پلتفرمهای مختلف به خودکارسازی برساند. این ویژگیها کمک میکند که سازمانها بتوانند بهرهوری را افزایش دهند و هزینههای عملیاتی خود را کاهش دهند، در حالی که از پیچیدگیهای فنی که معمولاً با خودکارسازی فرآیندها همراه است، میکاهند. Kestra این امکانات را فراهم میآورد تا سازمانها با اطمینان بیشتری به سوی دیجیتالی شدن پیش بروند.
🟣لینک مقاله:
https://golangweekly.com/link/161031/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
GitHub
Kestra
Build reliable workflows, blazingly fast, deploy in just a few clicks. - Kestra
🔥1
🔸بهینه سازی با {}struct در زبان Go🔸
کاهش سربار استفاده از حافظه در سناریو های خاص با استفاده از {}struct در زبان Go
لینک مقاله 👉
https://devdrug.com/article/optimization-with-empty-struct-in-go-language
➖➖➖➖➖➖➖➖
👑 @gopher_academy
کاهش سربار استفاده از حافظه در سناریو های خاص با استفاده از {}struct در زبان Go
لینک مقاله 👉
https://devdrug.com/article/optimization-with-empty-struct-in-go-language
➖➖➖➖➖➖➖➖
👑 @gopher_academy
🔥4