5 คะแนน โดย beenzinozino 2025-04-18 | ยังไม่มีความคิดเห็น | แชร์ทาง WhatsApp

สวัสดีครับ/ค่ะ!

เพื่อแก้ปัญหาความไม่สะดวกหลายอย่างที่ผม/ฉันพบขณะทำโจทย์อัลกอริทึมของ Baekjoon ด้วย JavaScript และ TypeScript ตอนนี้ผม/ฉันกำลังพัฒนาโอเพนซอร์สเฟรมเวิร์กสำหรับ Baekjoon โดยเฉพาะในชื่อ 'bananass' อยู่ครับ/ค่ะ

สมัยเรียนปริญญาตรีก่อนหน้านี้ ผม/ฉันมักแก้โจทย์ด้วย C++ เป็นหลัก จึงไม่ได้รู้สึกว่า environment ของ Baekjoon นั้นไม่สะดวกมากนัก แต่เมื่อมาทำงานเป็นนักพัฒนา frontend แล้วอยากลองแก้โจทย์ด้วย JavaScript และ TypeScript พอเริ่มทำจริงกลับพบว่ามีข้อจำกัดเล็กใหญ่หลายอย่าง ไม่ว่าจะเป็นการจัดการ input ที่ซับซ้อนทุกครั้ง ข้อจำกัดของไวยากรณ์ใหม่ ๆ และการที่ทดสอบได้ยาก

ดังนั้นเพื่อปรับปรุงความไม่สะดวกเหล่านี้ ผม/ฉันจึงได้แรงบันดาลใจจากแนวทางการพัฒนาของ Next.js และคำสั่ง CLI ที่หลากหลายของโปรเจกต์ boj-cli แล้วตั้งใจจะสร้าง environment สำหรับการแก้โจทย์อัลกอริทึมที่กระชับและใช้งานเข้าใจง่าย ซึ่งเหมาะกับ ecosystem ของ JavaScript ขึ้นมาด้วยตัวเอง

โดยอาศัยประสบการณ์ที่ได้จากการมีส่วนร่วมโดยตรงกับโปรเจกต์โอเพนซอร์สฝั่ง frontend หลายตัว เช่น React, ESLint และ Next.js ผม/ฉันกำลังทำมันอย่างใส่ใจในรายละเอียดมากที่สุด และอยากให้มันเป็นเครื่องมือที่ช่วยผู้ใช้ JavaScript/TypeScript ได้จริง

ฟีเจอร์หลักที่พัฒนาไว้จนถึงตอนนี้มีดังนี้

  • รองรับ JavaScript และ TypeScript
  • รองรับระบบโมดูล ESM (ECMAScript Module) และ CommonJS
  • รองรับไวยากรณ์สมัยใหม่ เช่น ES16/ES2025 โดยไม่ยึดติดกับ environment Node.js ของ Baekjoon
  • รองรับการนำเข้าโมดูลที่ผู้ใช้กำหนดเองและไลบรารีภายนอก เช่น lodash
  • รองรับการเริ่มต้นด้วยฟังก์ชัน solution เพียงตัวเดียวเหมือน Programmers
  • รองรับการเขียนและรัน test case
  • รองรับการเริ่มต้นด้วย create-bananass
  • รองรับ input/output ที่เร็วขึ้นผ่านโมดูล fs
  • รองรับคำสั่ง CLI ที่หลากหลายเพื่อความสะดวก
  • รองรับ ESLint และ Prettier ในตัว

ตอนนี้กำลังทำงานกับ test code และเอกสารก่อนปล่อยเวอร์ชันทางการ และมีแผนจะเปิดตัวเวอร์ชันเบต้าในเร็ว ๆ นี้

ถ้าคุณเคยรู้สึกไม่สะดวกตอนแก้โจทย์ Baekjoon ด้วย JavaScript หรือ TypeScript หรือมีไอเดียประมาณว่า “ถ้ามีฟีเจอร์แบบนี้ก็น่าจะดี” สามารถฝากไว้ได้อย่างอิสระผ่าน GitHub Issues, Discussions หรือคอมเมนต์ในโพสต์นี้ได้เลยครับ/ค่ะ!

แม้จะเป็นความเห็นเล็ก ๆ ก็ช่วยได้มากจริง ๆ ครับ/ค่ะ! ผม/ฉันอยากนำไปปรับใช้ให้ได้มากที่สุด เพื่อช่วยกันสร้าง environment สำหรับการแก้โจทย์ที่ดียิ่งขึ้น

ลิงก์ที่เกี่ยวข้องกับโปรเจกต์

ยังไม่มีความคิดเห็น

ยังไม่มีความคิดเห็น