🔵 عنوان مقاله
Valgo 0.7: An Expressive Validator Library
🟢 خلاصه مقاله:
اValgo 0.7 یک کتابخانه اعتبارسنجی است که با تکیه بر generics، API ایمن از نظر نوع و قابلگسترش ارائه میدهد. بهجای استفاده از struct tags، قواعد بهصورت توابع نوشته میشوند؛ رویکردی که خوانایی، تستپذیری و ترکیبپذیری را افزایش میدهد و وابستگی به رشتهها و reflection را کاهش میدهد. نتیجه، اعتبارسنجی شفافتر و قابلنگهداریتری است که از بررسیهای ساده تا منطقهای پیچیده و دامنهمحور را پوشش میدهد و بهسادگی با لایههای مختلف کد ادغام میشود.
#Validation #Generics #TypeSafety #Extensibility #CleanCode #DeveloperExperience #SoftwareEngineering
🟣لینک مقاله:
https://golangweekly.com/link/174655/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Valgo 0.7: An Expressive Validator Library
🟢 خلاصه مقاله:
اValgo 0.7 یک کتابخانه اعتبارسنجی است که با تکیه بر generics، API ایمن از نظر نوع و قابلگسترش ارائه میدهد. بهجای استفاده از struct tags، قواعد بهصورت توابع نوشته میشوند؛ رویکردی که خوانایی، تستپذیری و ترکیبپذیری را افزایش میدهد و وابستگی به رشتهها و reflection را کاهش میدهد. نتیجه، اعتبارسنجی شفافتر و قابلنگهداریتری است که از بررسیهای ساده تا منطقهای پیچیده و دامنهمحور را پوشش میدهد و بهسادگی با لایههای مختلف کد ادغام میشود.
#Validation #Generics #TypeSafety #Extensibility #CleanCode #DeveloperExperience #SoftwareEngineering
🟣لینک مقاله:
https://golangweekly.com/link/174655/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
GitHub
GitHub - cohesivestack/valgo: Valgo is a type-safe, expressive, and extensible validator library for Golang. Supports localization…
Valgo is a type-safe, expressive, and extensible validator library for Golang. Supports localization and is built with generics. - cohesivestack/valgo
👍1🔥1
🔵 عنوان مقاله
take control with Tuple
🟢 خلاصه مقاله:
این مطلب از Golang Weekly نشان میدهد چگونه بهکارگیری سنجیده Tuple میتواند به توسعهدهندگان Go کمک کند روی جریان داده، مدیریت خطا و همزمانی کنترل بیشتری داشته باشند. در این رویکرد، Tuple راهی فشرده برای بستن چند مقدار مرتبط در یک واحد نوعدار است که با تکیه بر جنریکها، ضمن کاهش کد تکراری، نیت کد و امضای توابع را شفافتر میکند. کاربردهای کلیدی شامل مدلسازی بار دادهی کانالها، جمعآوری خروجیها در الگوهای فناوت/فناین و عبور جفتهایی مانند (value, error) در پایپلاینهاست؛ با این تأکید که هرجا یک مفهوم دامنهای نامدار لازم است، یک struct کوچک همچنان گزینهی بهتر است. جمعبندی: Tuple گلولهی نقرهای نیست، اما اگر هدفمند استفاده شود، بدون لطمه به خوانایی یا ایمنی نوعی، کنترل و شفافیت بیشتری به کدهای Go میدهد و میتوان آن را بهصورت تدریجی در مرز پکیجها و پایپلاینها به کار گرفت.
#Golang #Go #Tuple #GolangWeekly #Generics #Concurrency #TypeSafety #SoftwareDesign
🟣لینک مقاله:
https://golangweekly.com/link/175071/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
take control with Tuple
🟢 خلاصه مقاله:
این مطلب از Golang Weekly نشان میدهد چگونه بهکارگیری سنجیده Tuple میتواند به توسعهدهندگان Go کمک کند روی جریان داده، مدیریت خطا و همزمانی کنترل بیشتری داشته باشند. در این رویکرد، Tuple راهی فشرده برای بستن چند مقدار مرتبط در یک واحد نوعدار است که با تکیه بر جنریکها، ضمن کاهش کد تکراری، نیت کد و امضای توابع را شفافتر میکند. کاربردهای کلیدی شامل مدلسازی بار دادهی کانالها، جمعآوری خروجیها در الگوهای فناوت/فناین و عبور جفتهایی مانند (value, error) در پایپلاینهاست؛ با این تأکید که هرجا یک مفهوم دامنهای نامدار لازم است، یک struct کوچک همچنان گزینهی بهتر است. جمعبندی: Tuple گلولهی نقرهای نیست، اما اگر هدفمند استفاده شود، بدون لطمه به خوانایی یا ایمنی نوعی، کنترل و شفافیت بیشتری به کدهای Go میدهد و میتوان آن را بهصورت تدریجی در مرز پکیجها و پایپلاینها به کار گرفت.
#Golang #Go #Tuple #GolangWeekly #Generics #Concurrency #TypeSafety #SoftwareDesign
🟣لینک مقاله:
https://golangweekly.com/link/175071/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Tuple
Generic Tools Suck
The best pair programming app for macOS and Windows developers.
👍2
🔵 عنوان مقاله
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.
❤1