Tôi đang xây dựng một framework JavaScript/TypeScript cho Baekjoon
(github.com/lumirlumir)Xin chào!
Để giải quyết nhiều bất tiện mà tôi cảm nhận được khi giải các bài toán thuật toán trên Baekjoon bằng JavaScript và TypeScript, tôi đang phát triển một framework mã nguồn mở chuyên cho JavaScript/TypeScript trên Baekjoon với tên gọi bananass.
Trước đây, thời còn học đại học, tôi chủ yếu giải bài bằng C++ nên môi trường Baekjoon không gây nhiều bất tiện. Nhưng khi làm việc với vai trò lập trình viên frontend, tôi muốn giải bài bằng JavaScript và TypeScript. Khi thực sự bắt đầu, tôi nhận ra có rất nhiều ràng buộc lớn nhỏ như xử lý input phức tạp mỗi lần, hạn chế về cú pháp mới nhất, và việc khó kiểm thử.
Vì vậy, để cải thiện những bất tiện này, lấy cảm hứng từ cách triển khai của Next.js và các lệnh CLI đa dạng của dự án boj-cli, tôi muốn tự xây dựng một môi trường giải thuật toán ngắn gọn, trực quan, phù hợp với hệ sinh thái JavaScript.
Dựa trên kinh nghiệm tích lũy được khi trực tiếp đóng góp cho nhiều dự án mã nguồn mở frontend như React, ESLint, Next.js, tôi đang làm dự án này một cách chi tiết nhất có thể, và muốn biến nó thành một công cụ thực sự hữu ích cho người dùng JavaScript/TypeScript.
Các tính năng chính mà tôi đã triển khai cho đến hiện tại như sau.
- Hỗ trợ JavaScript và TypeScript.
- Hỗ trợ hệ thống mô-đun ESM (ECMAScript Module) và CommonJS.
- Hỗ trợ cú pháp mới nhất như ES16 (ES2025), không bị ràng buộc bởi môi trường Node.js của Baekjoon.
- Hỗ trợ import mô-đun do người dùng định nghĩa và thư viện bên ngoài như lodash.
- Hỗ trợ bắt đầu chỉ với một hàm
solutionnhư trên Programmers. - Hỗ trợ viết và chạy test case.
- Hỗ trợ bắt đầu với
create-bananass. - Hỗ trợ nhập/xuất nhanh hơn bằng mô-đun
fs. - Hỗ trợ nhiều lệnh CLI khác nhau để tăng tính tiện dụng.
- Tích hợp sẵn ESLint và Prettier.
Hiện tại, trước khi phát hành chính thức, tôi đang thực hiện phần test code và tài liệu hóa, và dự kiến sẽ sớm công bố phiên bản beta.
Nếu bạn từng cảm thấy bất tiện khi giải bài Baekjoon bằng JavaScript hoặc TypeScript, hoặc có ý tưởng kiểu như “sẽ thật tốt nếu có tính năng này”, hãy thoải mái để lại ý kiến qua GitHub Issues, Discussions, hoặc bình luận ngay dưới bài viết này!
Ngay cả những ý kiến nhỏ cũng thực sự là sự giúp đỡ rất lớn! Tôi muốn phản ánh chúng tích cực nhất có thể để cùng nhau tạo ra một môi trường giải bài tốt hơn.
Liên kết liên quan đến dự án
-
Tài liệu chính thức: https://bananass.lumir.page
Chưa có bình luận nào.