Tag: validation
15 รายการ
Blog

Python json: ไฟล์ config มี key ซ้ำ ระบบไม่เตือนสักคำ จับให้ได้ด้วย object_pairs_hook
json.loads เก็บค่าตัวสุดท้ายเมื่อ key ซ้ำแบบเงียบๆ ตามที่เอกสาร Python เขียนไว้ ใช้ object_pairs_hook โยน error ตั้งแต่ตอนโหลด config พร้อม unittest ที่รันจริง

Java Math.clamp: บีบค่าให้อยู่ในช่วงในบรรทัดเดียว และแปลง long เป็น int แบบไม่ล้น
เลิกเขียน Math.max(min, Math.min(max, x)) ซ้อนกัน ใช้ Math.clamp ของ Java 21 คุมค่าเปอร์เซ็นต์ หน้า และขนาดหน้า พร้อม Java assertions ที่รันจริง
Java Collections.frequency: เช็กของซ้ำก่อนรับ batch
ใช้ Collections.frequency นับค่าที่เท่ากันตาม equals พร้อม Java assertions และข้อจำกัดเมื่อข้อมูลใหญ่หรือ equality ซับซ้อน
Python re.fullmatch: ตรวจทั้งสตริง ไม่ให้ส่วนเกินหลุดผ่าน
ใช้ fullmatch แทน search เมื่อต้องการให้แพทเทิร์นครอบคลุมทั้งค่า เช่น รหัสคูปองหรือสลักชื่อไฟล์
Rust Iterator::is_sorted_by_key: ตรวจลำดับโดยไม่สร้าง Vec สำรอง
ตรวจ stream ว่าเรียงตาม priority หรือไม่ด้วย is_sorted_by_key พร้อม Cargo test และข้อควรระวังเรื่อง key
Java Collections.disjoint: ตรวจสิทธิ์สองชุดว่าไม่ทับกัน
ใช้ disjoint แสดง intent ของ overlap check พร้อม normalize input และ Java 17 assertions
Rust Option::zip: รวมค่าที่ต้องมาคู่กันโดยไม่ซ่อนสถานะขาดครึ่ง
ใช้ Option::zip รวม start/end ที่ต้องมีพร้อมกัน แยก missing ออกจาก invalid และทดสอบด้วย Cargo offline

Pydantic 2.14 มาแล้ว ทีมที่ใช้ Python เก่าต้องเช็กก่อนอัปเดต
ไลบรารีตรวจข้อมูลเพิ่มการรองรับ Python รุ่นใหม่ พร้อม frozendict และ MISSING ที่เสถียรแล้ว แต่การเปลี่ยนเล็กน้อยอาจกระทบแบบฟอร์มเดิม อ่านวิธีเตรียมทีมก่อนอัปเกรด
Java Currency.getAvailableCurrencies: ตรวจรหัสเงินก่อนรับจากฟอร์ม
ไล่ชุด Currency ที่ JVM รู้จัก เพื่อ validate รหัส ISO 4217 พร้อมทดสอบ THB และรหัสปลอม
Python enum.verify: ให้คลาส Enum ล้มตั้งแต่ import เมื่อค่าผิดสัญญา
ใช้ UNIQUE และ CONTINUOUS ตรวจ enum ตอนประกาศ พร้อมเลือกกฎให้ตรงกับ domain
Java String.isBlank / strip — เช็กช่องว่าง Unicode ให้ถูก ไม่ใช่แค่ trim()
สรุปความต่าง isBlank, isEmpty, strip, trim ใน Java — กันบั๊กฟอร์มว่างและช่องว่าง Unicode พร้อมตัวอย่างบน JDK 21
Java Objects.checkFromToIndex: ตรวจช่วงครึ่งเปิดก่อนแตะ Array
ใช้ Objects.checkFromToIndex รวมกฎ from-inclusive/to-exclusive ลด off-by-one และคืน error ให้สม่ำเสมอ พร้อม Java 17 test
Rust Option::is_none_or: เขียนกฎ ‘ไม่มีก็ได้ มีก็ต้องผ่าน’ ให้ตรงความหมาย
ลดเงื่อนไข Option ที่ซ้อนกันด้วย is_none_or พร้อมแยกกรณี optional configuration จาก validation ที่บังคับมีค่า
Python pathlib.full_match: ตรวจ Path ทั้งเส้นโดยไม่เผลอรับไฟล์นอกกฎ
เทียบ full_match กับ match สำหรับ allowlist ของ path พร้อมตัวอย่าง PurePath ที่ทดสอบได้โดยไม่แตะ filesystem

Java Record compact constructor: ตรวจค่าตอนสร้างโดยไม่เขียนฟิลด์ซ้ำ
อธิบาย compact constructor ของ record ตั้งแต่ Java 16 พร้อมตัวอย่าง Main ที่รัน assertion ได้