Tag: validation

15 รายการ

Blog

นากการ์ตูนสีมิ้นต์ยืนหน้าแผงตะขอแขวนกุญแจทองเหลือง หยิบกุญแจที่ซ้ำกันขึ้นมาแล้วติดป้ายเตือนสีอำพัน ข้างแฟ้ม config บนโต๊ะ
pythonjsonconfig

Python json: ไฟล์ config มี key ซ้ำ ระบบไม่เตือนสักคำ จับให้ได้ด้วย object_pairs_hook

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

น้องกาย
นากการ์ตูนสีมิ้นต์เลื่อนปุ่มสไลด์บนแผงควบคุมเสียงที่มีตัวกั้นยางทั้งสองปลาย ข้างแก้วกาแฟร้อนและไม้บรรทัดที่มีหมุดบอกค่าต่ำสุดสูงสุด
javamathclamp

Java Math.clamp: บีบค่าให้อยู่ในช่วงในบรรทัดเดียว และแปลง long เป็น int แบบไม่ล้น

เลิกเขียน Math.max(min, Math.min(max, x)) ซ้อนกัน ใช้ Math.clamp ของ Java 21 คุมค่าเปอร์เซ็นต์ หน้า และขนาดหน้า พร้อม Java assertions ที่รันจริง

น้องกาย
นากกายเลื่อนลูกปัดสีเดียวกันจากถาดข้อมูลไปยังรางนับเพื่อหาของซ้ำ
javacollectionsfrequency

Java Collections.frequency: เช็กของซ้ำก่อนรับ batch

ใช้ Collections.frequency นับค่าที่เท่ากันตาม equals พร้อม Java assertions และข้อจำกัดเมื่อข้อมูลใหญ่หรือ equality ซับซ้อน

พี่โชว์
นากกายวางไม้บรรทัดครบความยาวสติกเกอร์ ไม่เหลือขอบเกิน
pythonrevalidation

Python re.fullmatch: ตรวจทั้งสตริง ไม่ให้ส่วนเกินหลุดผ่าน

ใช้ fullmatch แทน search เมื่อต้องการให้แพทเทิร์นครอบคลุมทั้งค่า เช่น รหัสคูปองหรือสลักชื่อไฟล์

น้องกาย
ปูต้นฉบับเรียงกล่องสีเขียวบนทางลาดจากเตี้ยไปสูงและหยุดที่กล่องอำพันซึ่งวางผิดลำดับ
rustiteratorvalidation

Rust Iterator::is_sorted_by_key: ตรวจลำดับโดยไม่สร้าง Vec สำรอง

ตรวจ stream ว่าเรียงตาม priority หรือไม่ด้วย is_sorted_by_key พร้อม Cargo test และข้อควรระวังเรื่อง key

พี่โชว์
นากต้นฉบับวางลูกบอลสิทธิ์สองถาดไม่ให้มีสีเดียวกันข้ามถาด
javacollectionspermissions

Java Collections.disjoint: ตรวจสิทธิ์สองชุดว่าไม่ทับกัน

ใช้ disjoint แสดง intent ของ overlap check พร้อม normalize input และ Java 17 assertions

พี่โชว์
ปูต้นฉบับหนีบตั๋วสองใบให้เดินทางเป็นคู่ ขณะที่ตั๋วเดี่ยวถูกพักไว้
rustoptionvalidation

Rust Option::zip: รวมค่าที่ต้องมาคู่กันโดยไม่ซ่อนสถานะขาดครึ่ง

ใช้ Option::zip รวม start/end ที่ต้องมีพร้อมกัน แยก missing ออกจาก invalid และทดสอบด้วย Cargo offline

พี่โชว์
การ์ตูนนากสีมิ้นต์นั่งโต๊ะตรวจเอกสาร ถือแว่นขยายส่องแบบฟอร์มบนสายพานเล็ก ประทับตราผ่านสีเขียว มีปฏิทินหน้าเก่าถูกฉีกออกด้านหลัง
pythonpydanticrelease

Pydantic 2.14 มาแล้ว ทีมที่ใช้ Python เก่าต้องเช็กก่อนอัปเดต

ไลบรารีตรวจข้อมูลเพิ่มการรองรับ Python รุ่นใหม่ พร้อม frozendict และ MISSING ที่เสถียรแล้ว แต่การเปลี่ยนเล็กน้อยอาจกระทบแบบฟอร์มเดิม อ่านวิธีเตรียมทีมก่อนอัปเกรด

น้องกาย
นากกายกำลังตรวจแสตมป์รหัสเงินบนกล่องพัสดุเทียบกับสมุดรายชื่อสกุลเงิน
javacurrencyi18n

Java Currency.getAvailableCurrencies: ตรวจรหัสเงินก่อนรับจากฟอร์ม

ไล่ชุด Currency ที่ JVM รู้จัก เพื่อ validate รหัส ISO 4217 พร้อมทดสอบ THB และรหัสปลอม

น้องกาย
งูสีเขียวต้นฉบับกำลังตรวจบัตรสถานะที่เรียงต่อกันและแยกบัตรค่าซ้ำออกจากแถว
pythonenumvalidation

Python enum.verify: ให้คลาส Enum ล้มตั้งแต่ import เมื่อค่าผิดสัญญา

ใช้ UNIQUE และ CONTINUOUS ตรวจ enum ตอนประกาศ พร้อมเลือกกฎให้ตรงกับ domain

พี่โชว์
ช่องข้อความบนโต๊ะมิ้นต์ มีแถบช่องว่างถูกตัดออกและไฟสถานะ isBlank สีอำพัน
javastringvalidation

Java String.isBlank / strip — เช็กช่องว่าง Unicode ให้ถูก ไม่ใช่แค่ trim()

สรุปความต่าง isBlank, isEmpty, strip, trim ใน Java — กันบั๊กฟอร์มว่างและช่องว่าง Unicode พร้อมตัวอย่างบน JDK 21

น้องกาย
นากต้นฉบับใช้ไม้ฉากสีอำพันวัดขอบซ้ายและขอบขวาของก้อนข้อมูลก่อนตัดช่วง
javaboundsarrays

Java Objects.checkFromToIndex: ตรวจช่วงครึ่งเปิดก่อนแตะ Array

ใช้ Objects.checkFromToIndex รวมกฎ from-inclusive/to-exclusive ลด off-by-one และคืน error ให้สม่ำเสมอ พร้อม Java 17 test

พี่โชว์
ปูสีส้มแดงต้นฉบับกำลังคัดลูกปัดสีเขียวผ่านช่องวัด โดยมีถาดว่างที่ถือว่าผ่านกฎ
rustoptionvalidation

Rust Option::is_none_or: เขียนกฎ ‘ไม่มีก็ได้ มีก็ต้องผ่าน’ ให้ตรงความหมาย

ลดเงื่อนไข Option ที่ซ้อนกันด้วย is_none_or พร้อมแยกกรณี optional configuration จาก validation ที่บังคับมีค่า

พี่โชว์
งูต้นฉบับใช้กรอบวัดตรวจเส้นทางโฟลเดอร์ครบจากต้นถึงไฟล์ โดยทางลัดหนึ่งเส้นถูกกั้นไว้
pythonpathlibvalidation

Python pathlib.full_match: ตรวจ Path ทั้งเส้นโดยไม่เผลอรับไฟล์นอกกฎ

เทียบ full_match กับ match สำหรับ allowlist ของ path พร้อมตัวอย่าง PurePath ที่ทดสอบได้โดยไม่แตะ filesystem

พี่โชว์
การ์ดสองใบบนโต๊ะมิ้นต์เชื่อมด้วยเส้นอำพัน และนากกายยืนถือการ์ดขวา
javarecordsjava16

Java Record compact constructor: ตรวจค่าตอนสร้างโดยไม่เขียนฟิลด์ซ้ำ

อธิบาย compact constructor ของ record ตั้งแต่ Java 16 พร้อมตัวอย่าง Main ที่รัน assertion ได้

น้องกาย