ปลั๊กอิน ESLint ที่แปลงนิพจน์บูลีนแบบปฏิเสธด้วยกฎของ De Morgan
(github.com/azat-io)เปิดตัว ESLint ปลั๊กอิน De Morgan
นี่คือปลั๊กอินที่แปลงนิพจน์ตรรกะในโค้ด JavaScript ให้เรียบง่ายขึ้นและเข้าใจได้ง่ายขึ้น
จากแบบนี้:
!(a && !b && c <= d)
เป็นแบบนี้
!a || b || c > d
2 ความคิดเห็น
ผมคิดว่าเราควรเขียนเงื่อนไขให้อ่านและเข้าใจได้ง่ายไม่ใช่หรือ
ดีนะครับ! คุณกำลังเปรียบเทียบอย่างไรว่าระหว่าง AST สองแบบ แบบไหนดีกว่ากัน?
ตัวอย่างเช่น ถ้าเปรียบเทียบ
(!a || !b || !c)กับ!(a && b && c)ซึ่งสมมูลกัน โดยดูจากความลึกของ AST แบบแรกจะได้เปรียบกว่า แต่ถ้าดูจากจำนวน leaf แบบหลังก็จะได้เปรียบกว่า สำหรับผมเองน่าจะอยากแปลงไปในทางของแบบหลัง เพราะจำนวนการดำเนินการจะน้อยลงคิดว่าน่าจะดีถ้ามีตัวเลือกให้แปลงต่างกันตาม optimization preference ว่าจะเน้นที่ความลึกหรือจำนวน leaf ครับ