Как да (не) си изпращаме задачите

Тук ще намерите кратки (или не толкова кратки) инструкции за това как да си изпращате задачите.

Накратко

  • Прочетете си условието внимателно и дори няколко пъти.
  • Напишете решение в пакета main.
  • Обработете решението с Gofmt: gofmt -w your_solution.go.
  • Изпълнете примерния тест.
  • Не споделяйте решението си с никого.
  • Не гледайте чужди решения.

Преписване и споделяне на решения

Всички решения стават публични след крайния срок на задачата. Преди това всякакво споделяне на решения е забранено.

Това включва:

  • Да пратите решението си на някой друг.
  • Да го покажете на другарче, за да "почерпи идеи".
  • Да го сложите някъде публично преди крайния срок (например GitHub).

Ако хванем, че сте преписвали, ви късаме без много-много обяснения и губите всичките си точки от задачи. Когато се видим през септември, схемата за оценява продължава да важи за вас и вие продължавате да имате 0 точки от задачи. Това означава, че се борите за 3 или 4. Ако сте много нахални, санкциите могат да бъдат по-тежки.

Често виждаме двойка решения, едното от които е променено за да изглежда различно. Това се хваща по-лесно, отколкото си мислите. Имаме достъп до всички задачи, които сте предали, както и до тези на другарчето ви. Ако решим, че случая е такъв, няма да даваме много обяснения. По-добре не го правете.

От друга страна, не се притеснявайте да напишете най-простия възможен код, понеже "други хора ще предадат същото решение". Това също се разпознава лесно, и разбира се, няма да сметнем, че сте преписвали. Пишете най-добрия код, на който сте способни, не споделяйте решенията си и няма да има причина да се притеснявате, че ще помислим, че сте преписвали.

От какво имате нужда

Ако пращате задача за първи път, проверете, че имате Go версия 1.11.1.

$ go version
go version go1.11.1 linux/amd64

Тестването се прави чрез командата go test ./....

Примерен тест

С всяка задача публикуваме примерен тест в GitHub хранилището. Задължително изтеглете теста и го пуснете. За да направите това:

  • Запишете решението си като solution.go.
  • Проверете, че то включва package main.
  • Преименувайте теста на solution_test.go.
  • Сложете ги в една и съща директория.
  • Изпълнете следната команда:

    $ go test ./...
    

Чувствайте се напълно свободни да напишете още тестове. Примерния тестов файл ще е единствено sanity check, който проверява няколко прости случая. Истинския тест ще е доста по-обстоен и е добре да помислите какви още случаи не са покрити, и да ги допишете.

За повече информация за тестването в Go, прочетете Overview секцията в документацията.