🔵 عنوان مقاله
Timezones as Types: Making Time Safer to Use in Go?
🟢 خلاصه مقاله:
** این مقاله ایده Timezones as Types را بررسی میکند؛ رویکردی که در آن اطلاعات منطقه زمانی بهصورت مستقیم در نوع دادهها کدگذاری میشود. نویسنده، سازنده go-meridian، نشان میدهد چگونه میتوان با مدلکردن timezoneها در سطح نوع، از ترکیب نادرست زمانها جلوگیری کرد تا خطاها بهجای زمان اجرا، در مرحله کامپایل آشکار شوند.
go-meridian بهجای تکیه بر متغیرهای بدون نوع مشخص، زمان را به نوعی گره میزند که منطقه زمانی را نیز در بر دارد؛ بنابراین اگر دو مقدار با منطقههای متفاوت بدون تبدیل صریح ترکیب شوند، کد اصلاً کامپایل نمیشود. این کار خطاهای رایجی مانند دستکمگرفتن تغییرات DST، ابهام در زمانهای محلی، یا تبدیلهای ضمنی از/به UTC را کاهش میدهد و خوانایی و صراحت کد را بهبود میبخشد.
این کتابخانه با سبک Go و بسته time سازگار است، تبدیلهای صریح را در نقاط مرزی اجبار میکند و به تیمها کمک میکند دادههای ورودی را زودهنگام به زمانهای با نوع صحیح تبدیل کنند. هرچند ممکن است اندکی صراحت بیشتر در امضاها و تبدیلها لازم باشد، اما دستاورد آن قراردادهای واضحتر، ایمنی بالاتر و نگهداری آسانتر کدهای حساس به زمان است.
#Go #Golang #Timezone #TypeSafety #StaticTyping #goMeridian #TimeHandling #SoftwareEngineering
🟣لینک مقاله:
https://golangweekly.com/link/176302/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Timezones as Types: Making Time Safer to Use in Go?
🟢 خلاصه مقاله:
** این مقاله ایده Timezones as Types را بررسی میکند؛ رویکردی که در آن اطلاعات منطقه زمانی بهصورت مستقیم در نوع دادهها کدگذاری میشود. نویسنده، سازنده go-meridian، نشان میدهد چگونه میتوان با مدلکردن timezoneها در سطح نوع، از ترکیب نادرست زمانها جلوگیری کرد تا خطاها بهجای زمان اجرا، در مرحله کامپایل آشکار شوند.
go-meridian بهجای تکیه بر متغیرهای بدون نوع مشخص، زمان را به نوعی گره میزند که منطقه زمانی را نیز در بر دارد؛ بنابراین اگر دو مقدار با منطقههای متفاوت بدون تبدیل صریح ترکیب شوند، کد اصلاً کامپایل نمیشود. این کار خطاهای رایجی مانند دستکمگرفتن تغییرات DST، ابهام در زمانهای محلی، یا تبدیلهای ضمنی از/به UTC را کاهش میدهد و خوانایی و صراحت کد را بهبود میبخشد.
این کتابخانه با سبک Go و بسته time سازگار است، تبدیلهای صریح را در نقاط مرزی اجبار میکند و به تیمها کمک میکند دادههای ورودی را زودهنگام به زمانهای با نوع صحیح تبدیل کنند. هرچند ممکن است اندکی صراحت بیشتر در امضاها و تبدیلها لازم باشد، اما دستاورد آن قراردادهای واضحتر، ایمنی بالاتر و نگهداری آسانتر کدهای حساس به زمان است.
#Go #Golang #Timezone #TypeSafety #StaticTyping #goMeridian #TimeHandling #SoftwareEngineering
🟣لینک مقاله:
https://golangweekly.com/link/176302/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Matthewhalpern
Timezones as Types: Making Time Safer to Use in Go | Matthew Halpern
Introducing go-meridian: a library that makes timezones first-class in Golang programs.