Тестовое задание на позицию frontend-разработчик
Напутствие к тестовому заданию.
При решении задания можно и нужно использовать любые готовые фреймворки и компоненты которые позволят сэкономить Вам время и решить задачу оптимальным образом. Однако просим Вас сопроводить решение краткой документацией о том, какие фреймворки или библиотеки были использованы и почему.
Рефакторинг
Задачи на работу с чужим кодом.
Задача №1
Посмотрите на код:
function func(s, a, b) {
if (s.match(/^$/)) {
return -1;
}
var i = s.length -1;
var aIndex = -1;
var bIndex = -1;
while ((aIndex == -1) && (bIndex == -1) && (i > 0)) {
if (s.substring(i, i +1) == a) {
aIndex = i;
}
if (s.substring(i, i +1) == b) {
bIndex = i;
}
i = i - 1;
}
if (aIndex != -1) {
if (bIndex == -1) {
return aIndex;
}
else {
return Math.max(aIndex, bIndex);
}
}
if (bIndex != -1) {
return bIndex;
}
else {
return -1;
}
}
Что можно улучшить? Как бы вы его переписали?
Практическое задание
- Данное задание не является полностью детализированными требованиями к функциональности системы т.к они не принципиальны в рамках данного задания и Вы можете делать определенные допущения. Цель данного задания оценить Ваши практические навыки разработки и проектирования клиентской части веб приложений.
- Все обращения к API/server-side должны быть сэмулированы.
- В рамках данного задания не предоставляется дизайн экранов, поэтому уровень художественного оформления/pixel perfect верстка оцениваться не будет.
- Верстка всех экранов должна быть адаптивной - поддерживать различные размеры экранов устройств, включая мобильные.
Терминал оплаты услуг сотовой связи
Разработать (сверстать и реализовать клиентскую логику) интерфейс приложения для терминала предоставляющего сервис пополнения баланса сотовых операторов. Приложение должно иметь следующие экраны/основные элементы ввода и управления:
- Главный экран
- Список обслуживаемых операторов связи: МТС, Билайн, Мегафон (предусмотреть возможность большого количества операторов).
- При клике на любом операторе - переход на экран пополнения.
- Форма пополнения баланса
- Идентификатор выбранного оператора связи
- Поле ввода номера телефона (с маской и валидацией)
- Поле ввода суммы пополнения в руб (с маской и валидацией, мин возможная сумма - 1 руб, максимальная - 1000 руб)
- Кнопка пополнить - при нажатии ждем ответ от сервера, показываем сообщение об успехе или ошибке. В случае успеха возвращаем на главный экран. Успех и ошибку реализовать случайным образом.
Комментарии
Результат выполнения задания нужно будет оформить здесь же, на гитхабе. В качестве ответа не нужно присылать никаких(!) ZIP архивов и наборов файлов. Все ваши ответы должны быть оформлены на https://github.com . Вы присылаете только ссылку на ваш репозиторий.
Если есть вопросы, вы всегда их можете задать, связавшись с человеком, который выдал вам задание.