Dev Perfects
40 subscribers
9.23K photos
1.26K videos
468 files
13K links
بخوام خیلی خلاصه بگم
این کانال میاد مطالب کانالای خفن تو حوزه تکنولوژی و برنامه نویسی رو جمع میکنه

پست پین رو بخونید
https://t.iss.one/dev_perfects/455


ارتباط:
https://t.iss.one/HidenChat_Bot?start=936082426
Download Telegram
Forwarded from SoniaCircuit (Soroush)
📚معرفی Zod
یه کتابخونه فوق‌العاده برای اعتبارسنجی (Validation) داده‌هاست که باهاش می‌تونید قوانین دقیق و تایپ‌سیف تعریف کنید.

📦 نصب Zod
npm install zod 
# yarn add zod
# pnpm install zod


💠 نمونه کد
import { z } from "zod";

const userSchema = z.object({
username: z.string().min(3, "Username must be minimum 3 characters"),
age: z.number().int().positive("Age must be positive"),
email: z.string().email("Email is invalid."),
password: z.string().min(6).refine(val => /[A-Z]/.test(val), {
message: "Password must be at least 6 characters and contain both uppercase and lowercase letters.",
}),
});


try {
userSchema.parse({
username: "ali",
age: 25,
email: "[email protected]",
password: "Secret1",
});
console.log("Validation successful.");
} catch (e) {
console.log(e.errors);
}


💠 استفاده از Zod با React Hook Form
ابتدا بسته‌های زیر را نصب کنید:
npm install react-hook-form @hookform/resolver
# yarn add react-hook-form @hookform/resolver
# pnpm install react-hook-form @hookform/resolver

import { useForm } from "react-hook-form";
import { zodResolver } from "@hookform/resolvers/zod";
import { z } from "zod";

const schema = z.object({
email: z.string().email(),
password: z.string().min(6),
});

function MyForm() {
const { register, handleSubmit, formState: { errors } } = useForm({
resolver: zodResolver(schema),
});

const onSubmit = data => {
console.log(data);
};

return (
<form onSubmit={handleSubmit(onSubmit)}>
<input {...register("email")} placeholder="Email" />
{errors.email && <p>{errors.email.message}</p>}

<input type="password" {...register("password")} placeholder="Password" />
{errors.password && <p>{errors.password.message}</p>}

<button type="submit">Login</button>
</form>
);
}


🔗 https://zod.dev

#Zod #Validation #FrontEnd #React
@SoniaNotes
Forwarded from 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
Forwarded from Gopher Academy
🔵 عنوان مقاله
google/jsonschema-go

🟢 خلاصه مقاله:
این مقاله دو کتابخانه Go برای کار با JSON Schema را مقایسه می‌کند: google/jsonschema-go و مخزن شخصی Ian Lance Taylor با نام ianlancetaylor/jsonschema. تمرکز اصلی بر کاربردهای عملی مانند اعتبارسنجی در زمان اجرا، هم‌ترازی قراردادهای داده میان سرویس‌ها، و در صورت نیاز، تولید کد برای انواع Go است. به‌جای معرفی یک برنده قطعی، مجموعه‌ای از معیارهای انتخاب پیشنهاد می‌شود: پوشش استاندارد (کلیدواژه‌ها، فرمت‌ها، و ارجاعات $ref)، کیفیت گزارش خطا، کارایی در بارهای واقعی، قابلیت سفارشی‌سازی، و نشانه‌های پایداری و نگهداشت پروژه. همچنین سازگاری با فرآیندهای CI، نحوه حل $ref در فایل‌ها و URLها، و میزان تطبیق با ابزارهای رایج Go بررسی می‌شود. جمع‌بندی مقاله عملی است: هر دو گزینه قابل اتکا هستند و انتخاب نهایی باید بر اساس نیازهای خاص تیم—سادگی رابط، گستره امکانات، یا الزامات یکپارچه‌سازی—انجام شود.

#Go #JSONSchema #GoLang #OpenSource #Validation #CodeGeneration #GitHub

🟣لینک مقاله:
https://golangweekly.com/link/176346/web


👑 @gopher_academy
Forwarded from Gopher Academy
🔵 عنوان مقاله
on using JSON schemas in Go

🟢 خلاصه مقاله:
** این مقاله به مزایای استفاده از JSON Schema برای تعریف، اعتبارسنجی و مستندسازی داده‌های JSON در Go می‌پردازد و نشان می‌دهد چطور می‌توان این رویکرد را در یک جریان کاری «schema-first» به‌صورت عملی پیاده کرد. محور بحث، نگاشت دقیق قابلیت‌های JSON Schema به انواع ایستا در Go است؛ از چالش‌هایی مانند فیلدهای اختیاری، additionalProperties، enumها، nullability و ترکیب‌گرهایی مثل oneOf/anyOf/allOf تا تصمیم‌های طراحی میان رویکردهای مبتنی بر reflection در زمان اجرا و code generation در زمان ساخت. مقاله سپس به کار انجام‌شده در Google، به‌ویژه در مخزن google/jsonschema-go، اشاره می‌کند که هدفش ارائه نگاشت پایدار schematype، اعتبارسنجی سریع و گزارش خطای قابل اتکا است. در ادامه، مخزن ianlancetaylor/jsonschema نیز معرفی می‌شود و نقاط همگرایی و تفاوت‌های رویکردی آن بیان می‌گردد. در پایان، مسیرهای آینده مانند همگرایی بهتر با OpenAPI، تقویت codegen برای ویژگی‌های پیشرفته، راهبردهای تکامل schema و یکپارچگی عمیق‌تر با ابزارها مطرح می‌شود تا توسعه مبتنی بر Schema در Go هم قابل اتکا و هم خوش‌تجربه باشد.

#Go #JSONSchema #Google #golang #APIs #Validation #OpenSource

🟣لینک مقاله:
https://golangweekly.com/link/176345/web


👑 @gopher_academy