13.03.2023, 15:52
Da das Thema Opensim-Konfigurationen gerade wieder mal aktuell war, holte ich ein altes Projekt aus meinem Fundus, bei dem ich Konfigurationen über einen Web-Dienst generieren und anpassen konnte. Das Programm hatte zwar einen anderen Zweck, aber ich versuchte trotzdem damit etwas anzufangen.
Als Erstes musste ich eine Struktur neu programmieren und hatte dabei Github Copilot zu Hilfe genommen. Das Beispiel zeigt, wie KI beim Programmieren durchaus nützlich sein kann.
Nachdem ich die Kommentarzeile eingegeben habe, wurde type Config struct { schon vorgeschlagen und ich musste nur noch die Tab-Taste drücken und die Zeile mit der Enter-Taste abschliessen.
Die nächste Zeile musste ich vollständig selber schreiben. Aber bereits nach dem Begriff ConfigDir hat Copilot meine Absicht erkannt und hat mir den Rest der Zeile korrekt vorgeschlagen. Ich musste nur noch die Tab-Taste drücken und die Zeile war geschrieben.
So ging es vorerst Zeile um Zeile weiter. Nach der Zeile mit DbName wurden die Zeilen für DbUser und DbPassword schon vorgeschlagen. Abschliessend wurde noch DbHost vorgeschlagen, was ich aber nicht brauchte.
Dasselbe bei den Optionen. Nach Option1 wurden alle weiteren Zeilen fertig geschrieben vorgeschlagen. Ich musste bei jeder vorgeschlagenen Zeile nur noch die Tab- und die Enter-Taste drücken. Copilot hat wirklich mehr als 3/4 der Schreibarbeit erledigt.
Als Erstes musste ich eine Struktur neu programmieren und hatte dabei Github Copilot zu Hilfe genommen. Das Beispiel zeigt, wie KI beim Programmieren durchaus nützlich sein kann.
Code:
// Config holds the config data to be replaced in the templates
type Config struct {
ConfigBaseDir string `json:"config_base_dir" xml:"config_base_dir"`
ConfigDir string `json:"config_dir" xml:"config_dir"`
SimulatorName string `json:"simulator_name" xml:"simulator_name"`
HTTPListenerPort string `json:"http_listener_port" xml:"http_listener_port"`
HTTPListenerSSLPort string `json:"http_listener_ssl_port" xml:"http_listener_ssl_port"`
DbName string `json:"db_name" xml:"db_name"`
DbUser string `json:"db_user" xml:"db_user"`
DbPassword string `json:"db_password" xml:"db_password"`
Option1 string `json:"option_1" xml:"option_1"`
Option2 string `json:"option_2" xml:"option_2"`
Option3 string `json:"option_3" xml:"option_3"`
Option4 string `json:"option_4" xml:"option_4"`
Option5 string `json:"option_5" xml:"option_5"`
Option6 string `json:"option_6" xml:"option_6"`
Option7 string `json:"option_7" xml:"option_7"`
Option8 string `json:"option_8" xml:"option_8"`
Option9 string `json:"option_9" xml:"option_9"`
}
Nachdem ich die Kommentarzeile eingegeben habe, wurde type Config struct { schon vorgeschlagen und ich musste nur noch die Tab-Taste drücken und die Zeile mit der Enter-Taste abschliessen.
Die nächste Zeile musste ich vollständig selber schreiben. Aber bereits nach dem Begriff ConfigDir hat Copilot meine Absicht erkannt und hat mir den Rest der Zeile korrekt vorgeschlagen. Ich musste nur noch die Tab-Taste drücken und die Zeile war geschrieben.
So ging es vorerst Zeile um Zeile weiter. Nach der Zeile mit DbName wurden die Zeilen für DbUser und DbPassword schon vorgeschlagen. Abschliessend wurde noch DbHost vorgeschlagen, was ich aber nicht brauchte.
Dasselbe bei den Optionen. Nach Option1 wurden alle weiteren Zeilen fertig geschrieben vorgeschlagen. Ich musste bei jeder vorgeschlagenen Zeile nur noch die Tab- und die Enter-Taste drücken. Copilot hat wirklich mehr als 3/4 der Schreibarbeit erledigt.