genofire/hs_monolith
genofire
/
hs_monolith
Archived
1
0
Fork 0

[QS]: Code commenting

This commit is contained in:
mlabusch 2017-04-28 10:02:42 +02:00
parent 85f0047124
commit 9378941a3f
5 changed files with 34 additions and 7 deletions

View File

@ -6,11 +6,12 @@ Die folgende Aufzählung gibt einige Regeln für die Implementierung des Microse
\item Packages werden eindeutig und sprechend benannt \item Packages werden eindeutig und sprechend benannt
\item Go-Files werden eindeutig und sprechend benannt \item Go-Files werden eindeutig und sprechend benannt
\item Wenn ein Package nur ein Go-File enthält, erhält dieses den Namen seines Packages \item Wenn ein Package nur ein Go-File enthält, erhält dieses den Namen seines Packages
\item Vor jedem Package steht ein einzeiliger, beschreibender Kommentar, der die Hauptfunktionalitäten wiedergibt \item Vor jedem Package steht ein ein- bis zweizeiliger, beschreibender Kommentar, der die Hauptfunktionalitäten wiedergibt
\item Vor jeder Funktion steht ein zweizeiliger, beschreibender Kommentar, dieser enthält \item Vor jeder Funktion steht ein zwei- bis dreizeiliger, beschreibender Kommentar, dieser enthält
\begin{enumerate} \begin{enumerate}
\item eine einzeilige Beschreibung der Funktionalität \item eine ein- bis zweizeilige Beschreibung der Funktionalität
\item eine einzeilige Beschreibung der Eingabe- und Rückgabewerte \item eine einzeilige Beschreibung der Eingabe- und Rückgabewerte (entfällt, wenn diese nicht vorhanden sind)
\end{enumerate} \end{enumerate}
\item Aus Gründen der Übersichtlichkeit werden Variablen und Structs werden nur mit vorangestellten Kommentaren versehen, wenn sie nicht selbsterklärend sind
\end{enumerate} \end{enumerate}

View File

@ -1,3 +1,5 @@
// Package database provides the
// functionality to open, close and use a database
package database package database
import ( import (
@ -22,6 +24,8 @@ type Config struct {
Logging bool Logging bool
} }
// Function to open a database and set the given configuration
// Input: the configuration data c
func Open(c Config) (err error) { func Open(c Config) (err error) {
writeLog := log.Log.WithField("db", "write") writeLog := log.Log.WithField("db", "write")
config = &c config = &c
@ -52,6 +56,7 @@ func Open(c Config) (err error) {
return return
} }
//Function to safely close the database
func Close() { func Close() {
Write.Close() Write.Close()
Write = nil Write = nil
@ -61,6 +66,8 @@ func Close() {
Read = nil Read = nil
} }
// Function to add a model to the runtime
// Input: interface m
func AddModel(m interface{}) { func AddModel(m interface{}) {
runtime = append(runtime, m) runtime = append(runtime, m)
} }

View File

@ -1,3 +1,5 @@
// Package database provides the
// functionality to open, close and use a database
package database package database
import ( import (
@ -11,6 +13,8 @@ type TestModel struct {
Value string `gorm:"type:varchar(255);column:value" json:"value"` Value string `gorm:"type:varchar(255);column:value" json:"value"`
} }
// Function to test the error handling for the database opening
// Input: pointer to testobject t
func TestOpenNoDB(t *testing.T) { func TestOpenNoDB(t *testing.T) {
assert := assert.New(t) assert := assert.New(t)
@ -19,6 +23,9 @@ func TestOpenNoDB(t *testing.T) {
err := Open(c) err := Open(c)
assert.Error(err, "error") assert.Error(err, "error")
} }
// Function to test the opening of one database
// Input: pointer to testobject t
func TestOpenOneDB(t *testing.T) { func TestOpenOneDB(t *testing.T) {
assert := assert.New(t) assert := assert.New(t)
AddModel(&TestModel{}) AddModel(&TestModel{})
@ -42,6 +49,8 @@ func TestOpenOneDB(t *testing.T) {
Close() Close()
} }
// Function to test the opening of a second database
// Input: pointer to testobject t
func TestOpenTwoDB(t *testing.T) { func TestOpenTwoDB(t *testing.T) {
assert := assert.New(t) assert := assert.New(t)
AddModel(&TestModel{}) AddModel(&TestModel{})

View File

@ -1,3 +1,5 @@
// Package http provides the
// logic of the webserver
package http package http
import ( import (
@ -6,7 +8,8 @@ import (
"net/http" "net/http"
) )
// Read is reading data from request with json format // Function to read data from a request via json format
// Input: pointer to http request r, interface to
func Read(r *http.Request, to interface{}) (err error) { func Read(r *http.Request, to interface{}) (err error) {
if r.Header.Get("Content-Type") != "application/json" { if r.Header.Get("Content-Type") != "application/json" {
err = errors.New("no json data recived") err = errors.New("no json data recived")
@ -16,7 +19,8 @@ func Read(r *http.Request, to interface{}) (err error) {
return return
} }
// Write is writing data as json to http output // Function to write data as json to a http output
// Input: http response writer w, interface data
func Write(w http.ResponseWriter, data interface{}) { func Write(w http.ResponseWriter, data interface{}) {
js, err := json.Marshal(data) js, err := json.Marshal(data)
if err != nil { if err != nil {
@ -25,4 +29,4 @@ func Write(w http.ResponseWriter, data interface{}) {
} }
w.Header().Set("Content-Type", "application/json") w.Header().Set("Content-Type", "application/json")
w.Write(js) w.Write(js)
} }

View File

@ -1,3 +1,5 @@
// Package http provides the
// logic of the webserver
package http package http
import ( import (
@ -10,6 +12,8 @@ import (
"github.com/stretchr/testify/assert" "github.com/stretchr/testify/assert"
) )
// Function to test the writing into a http response
// Input: pointer to testing object T
func TestWrite(t *testing.T) { func TestWrite(t *testing.T) {
assert := assert.New(t) assert := assert.New(t)
@ -33,6 +37,8 @@ func TestWrite(t *testing.T) {
} }
// Function to test the reading from a http response
// Input: pointer to testing object T
func TestRead(t *testing.T) { func TestRead(t *testing.T) {
assert := assert.New(t) assert := assert.New(t)