Codecanvas는 협업 환경에서 프로그래밍을 연습하는 온라인 플랫폼입니다. 일부 튜터는 귀하가 할당하고 완료 할 수있는 과제를 만들 수 있습니다. 등록 된 학생은 이러한 작업을 완료하고 결과를 등급을 매길 수 있습니다. 응용 프로그램에는 코드 실행이 내장되어있어 교사와 학생들이 과제에 대한 코드를 쉽게 검증 할 수 있습니다. 또한 질문 기반 과제도 지원됩니다. 이를 통해 교사는 코딩 할당뿐만 아니라 학생들이 사전 정의 된 질문에 대답 해야하는 과제를 쉽게 만들 수 있습니다.
우리는 응용 프로그램을 직접 호스팅하는 것이 좋습니다. 소규모 그룹 에이 앱을 사용하기 시작하려면 저희 서비스에 대한 계정을 자유롭게 만들었습니다.
sample-compose.yml 파일을 가져 와서 결 측값을 작성하십시오.| 이름 | BESCHREIBUNG |
|---|---|
| Usernator Postgres | Usernator Service의 Postgres 사용자를 생성하고 사용자에게 데이터베이스를 할당하십시오. |
| 집행자 우편 요금 | executor의 Postgres 사용자를 생성하고 사용자에게 데이터베이스를 할당하십시오. |
| 집행자 MongoDB | 데이터베이스와 함께 실행자를위한 MongoDB 사용자를 만듭니다. Grant는 Executor 사용자에게만 읽기 권한 만 읽습니다. |
| 작업 포스트 | 작업 서비스를 위해 Postgres 사용자를 생성하고 사용자에게 데이터베이스를 할당하십시오. |
| 태스크 몽고 브 | 작업용 MongoDB 사용자를 만들고 Executor Service와 함께 공유 데이터베이스에 대한 사용자 읽기/쓰기 액세스 권한을 부여하십시오. |
API_URI 및 EXECUTOR_UI_URL 로 웹 컨테이너를 초기화 할 수 있습니다.이 프로젝트는 완전히 지역 사회 주도입니다. 따라서 모든 사람 이이 프로젝트에 기여하고 프로젝트를 개선하는 데 도움을 줄 수 있습니다. 우리가하고있는 일에 대해 금전적 보상을주고 싶다면 자유롭게하십시오. 현재 그렇게 할 수있는 옵션이 없습니다. 아마도 기여를 점검 할 수도 있습니다 .md
이 프로젝트는 이제 최종 단계에 있으며 필요한 모든 기능이 완전히 구현되었습니다. 이 시점에서 추가 개발을위한 콘크리트 로드맵이 없으며이 응용 프로그램의 능동적 개발 프로세스가 마무리되었습니다.
우리는 사례별로 기능 요청 및 버그 보고서를 계속 처리하여 비전과 일치하고 유효한 것으로 보이는 경우에만 새로운 기능 또는 수정 사항을 구현합니다. 그러나 추가 기능을 독립적으로 소개하지 않습니다.
우리의 주요 목표는 응용 프로그램의 단순성과 사용 편의성을 유지하는 것입니다. 너무 많은 기능을 추가하면 이러한 단순성이 손상 될 수 있습니다.
기능 요청 또는 버그 보고서를 공유하는 것이 좋습니다. 그러나 새로운 기능은 명확한 외부 요구에 의해 구동되는 경우에만 추가 될 것임을 이해하십시오.
응용 프로그램은 시간이 지남에 따라 진화했으며 처음에는 데이터베이스 스키마가 계획되지 않았습니다. 또한 개발 당시 Diesel.rs를 데이터베이스 상호 작용의 라이브러리로 사용하는 데 비교적 새로운 것이 었습니다. 이로 인해 차선책 데이터 가져 오기가 발생했습니다. 스키마의 일부 문제가 이미 해결되고 개선되었지만 현재 데이터 가져 오기 프로세스는 비효율적입니다.
많은 양의 데이터를 저장하는 것은 더 이상 문제가되지 않지만 데이터 검색은 여전히 원하는 것보다 오래 걸릴 수 있습니다. 그러나 페이지 매김 덕분에 데이터 세트 크기에 관계없이 응답 시간은 정적으로 제한되며 일관성을 유지합니다. 단점은 응용 프로그램이 필요한 것보다 더 많은 SQL 쿼리를 실행한다는 것입니다. 이 비 효율성은 알려진 문제이지만, 아직 중요한 문제가되지 않기 때문에 현재 우선 순위는 아닙니다.
플랫폼이 더 많은 사용자를 얻고 서버로드를 줄이는 것이 운영 비용을 최소화하는 데 중요 해지면 이러한 측면을 다시 방문 할 계획입니다. 앞으로는 효과적인 캐싱 전략의 구현을 통해 이러한 비 효율성이 잠재적으로 완화 될 수 있습니다.
이 코드는 Rust에서 경험이 많은 사람들의 기대를 충족시키지 못할 수 있습니다. 이 프로젝트 작업을 처음 시작했을 때 Rust에 대한 이해는 여전히 발전하고있었습니다. 프로젝트 과정에서 나는 많은 것을 배웠지 만 결과적으로 코드는 모범 사례를 완전히 준수하지 않을 수 있습니다. 나는 그것을 검토 할 때 당신의 이해를 친절하게 요구합니다. 지금도이 프로젝트를 다시 방문 할 때, 다르게 접근 할 몇 가지 영역을 볼 수 있습니다.
미래에는 약간의 개선이있을 수 있지만, 그 후에도 숙련 된 Rust 개발자의 관점에서 나쁜 코드의 엄청난 덩어리가있을 것입니다.