Yêu cầu thg 3 11, 2018 3:30 CH 644 3 2
  • 644 3 2
+2

Hỏi về việc xây dựng chức năng Run code trực tiếp trên web

Chia sẻ
  • 644 3 2

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

Avatar Vinh Nguyen @vinhnguyen
thg 3 12, 2018 1:36 SA

Mình nghĩ bạn có thể sử dụng Docker.

2 CÂU TRẢ LỜI


Đã trả lời thg 3 12, 2018 1:55 SA
Đã được chấp nhận
+7

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
Chia sẻ
Đã trả lời thg 3 12, 2018 1:28 SA
+4

Đầ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 đủ.

Chia sẻ
Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí