Ne yapılabilir?
- 2 depo oluşturun: öğrenci ve öğretmen.
- Onları makinenize kopyalayın (Github istemcisi ile yapılabilir)
- Sen sadece öğretmen çalışmak , hiçbir zaman öğrenci dokunun.
Dizin yapınız 2 klonlanmış git repo's:
- / student (.git klasörü ile)
- / teacher (bir .git klasörü ile)
Dilinize ilişkin yorumlarda "özel" kodun etrafına işaretçiler koydunuz, örneğin aşağıdaki javascript. İşaretçiler özel kodun başladığı ve bittiği yeri belirtir.
function sum(a, b) {
// -----------------------START
return a + b; // so this is what you expect from the student
// -----------------------END
}
console.log(sum(1,1)); // I expect 2 as a result of your homework
Ardından yerel makinenizde basit bir komut dosyası oluşturun:
files.forEach((fileContent, fileName) => {
let newFileContent = '';
let public = true;
fileContent.forEach((line) => {
switch(line) {
case '// -----------------------START':
public = false;
break;
case '// -----------------------END':
public = true;
break;
default:
if(public) {
newFileContent = newFileContent + line + "\n";
}
}
});
writeFile('../student/' + fileName, newFileContent);
});
Tüm dosyalarınızı alır ve içeriği kodun özel işaretli kısımları olmadan / öğrenciye (üzerine yazma) kopyalar. İsterseniz oraya boş çizgiler ekleyebilirsiniz, ancak bu ne tür bir çözüm beklediğinize dair bir ipucu verebilir.
Bu test edilmemiş örnek kod, bu yüzden muhtemelen bazı hata ayıklama yapmak zorunda.
Şimdi yapmanız gereken tek şey, çıktıdan memnun olduğunuzda öğrenci deposunu teslim etmek ve zorlamaktır. Bu, GitHub istemcisini kullanırken tek bir tıklamayla yapılabilir (böylece hızlı bir görsel inceleme yapabilirsiniz) veya komut satırında manuel olarak yapabilirsiniz.
Öğrenci repo sadece bir çıkış deposudur, bu yüzden her zaman güncel kalacaktır, öğrencilere taahhütlere bakarak nelerin değiştiği açıktır (çünkü sadece değişiklikleri gösterirler) ve kullanımı kolaydır.
Bir adım daha, komut dosyanızı otomatik olarak çalıştıran bir git kesinleştirme kancası oluşturmak olacaktır.
Düzenle: Yayınınızda bir düzenleme yaptığınızı görün:
Açıkçası öğrencilerin çözüme erişmelerini istemiyorum (ödev bitene kadar).
Açık ama şüpheleniyorum: Sadece bitmiş egzersizin etrafındaki etiketleri kaldırmak, cevabı alıştırmalarda normal güncellemeler için yaptığınız şekilde yayınlayacaktır.