Hỏi về việc xây dựng chức năng Run code trực tiếp trên web
Mọi người cho em hỏi từ khóa để có thể tạo được chức năng chạy(test) code online như https://codefights.com/ với ạ Em đang muốn làm chức năng tương tự mà ko biết từ khóa nào để tìm Tuts Thank mọi người
2 CÂU TRẢ LỜI
Bạn có thể dùng Docker để giải quyết vấn đề trên. Cách thực hiện có thể tóm tắt đơn giản như sau:
- Chuẩn bị môi trường server có cài đặt Docker
- Chuẩn bị các Docker Image với đầy đủ các môi trường có thể chạy được code C, PHP, Ruby, Java, Python ...
- Khi user viết code trên web và yêu cầu chạy code, bạn lưu code đó vào DB, tạo một file chứa nội dung code đó, và dựng một container với môi trường tương ứng với ngôn ngữ lập trình mà user sử dụng. Bạn có thể tìm và sử dụng Docker Client cho ngôn ngữ server của mình, ví dụ như docker-php, ruby docker-api, docker-py
- Đưa file chứa code của user vào trong container, và tiến hành chạy code bên trong container. Nhận kết trả ra từ trong container, tiến hành lưu lại vào DB và hiển thị lên trang web
- Tắt container, kết thúc quá trình chạy code
Đầu tiên bạn cần có một editor để mọi người có thể vào viết code bạn có thể tham khảo editor này
Sau đó bạn cần gửi code lên server để biên dịch code đó và cuối cùng là hiển thị kết quả trả về phía client-slide. Nếu bạn sử dụng Javascript thì có thể render trực tiếp kết quả này trên trình duyệt của người dùng.
Bạn có thể tham khảo một số service đã hỗ trợ sẵn cả 3 tính năng trên như anh bạn CodePen hoặc anh bạn Plunkr.
Ngoài ra bạn có thể chạy một số complier phía client như Brython nhưng theo mình nghĩ nó không được đầy đủ.
Mình nghĩ bạn có thể sử dụng Docker.