OldCrab / AuraTest

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

AuraTest

Задача для SWE - Basic

Нужно написать класс на Java/Swift/Golang/С (Си) со следующим интерфейсом (псевдокод): class Incrementor { /**

  • Возвращает текущее число. В самом начале это ноль. */ int getNumber();

/**

  • Увеличивает текущее число на один. После каждого вызова этого
  • метода getNumber() будет возвращать число на один больше. / void incrementNumber(); /*
  • Устанавливает максимальное значение текущего числа.
  • Когда при вызове incrementNumber() текущее число достигает
  • этого значения, оно обнуляется, т.е. getNumber() начинает
  • снова возвращать ноль, и снова один после следующего
  • вызова incrementNumber() и так далее.
  • По умолчанию максимум -- максимальное значение int.
  • Если при смене максимального значения число резко начинает
  • превышать максимальное значение, то число надо обнулить.
  • Нельзя позволять установить тут число меньше нуля. */ void setMaximumValue(int maximumValue); }

Т.е. класс очень простой. А теперь сложность: оно должно быть сделано очень хорошо. Т.е. максимально качественно, как только можно. Код должен быть идеальным, все должно быть покрыто unit тестами. Классы и все методы должны быть полностью покрыты понятной (т.е. полезной, а не для отписки) javadoc (для Java) или аналогом для Swift и Golang документацией. В общем, нужно сделать такой код, который каждый разработчик мечтает получить на поддержку -- идеальный (насколько кандидат способен).

Обратить внимание на: Форматирование кода. Нэйминг (названия всех сущностей). Покрытие тестами. Наличие документации. Общая читабельность и простота кода.

About


Languages

Language:Swift 100.0%