10 апреля 2018
На очередном митинге каждый из студентов рассказал о том, как продвигается работа, что уже сделано и что еще предстоит доработать. А наставники, как и полагается, задавали уточняющие вопросы, подсказывали оптимальные способы решения возникших проблем и ставили задачи на ближайшее время. Давайте посмотрим, как у них обстоят дела?
Дмитрий Д. начал презентацию со слайда «Почему ничего не готово?», чем «пощекотал» нервы строгим (но переживающим за каждого студента) наставникам. Однако, всё оказалось совсем не плохо: за отчётный период было проделано немало работы, и Дмитрий успел столкнуться с довольно сложной, но интересной проблемой, которую ему предстоит решить в ближайшее время — проблема ссылок на строку.
Суть проблемы:
Структура не может пережить ресурсы, которые она заимствует — нельзя скомбинировать исходный код и дерево и положить их в одну структуру, сказать, что это мой модуль и куда-то его перемещать. С ним практически вообще ничего нельзя делать, потому что дерево будет иметь железные ссылки на данные, которые нельзя переместить, пока дерево живое. И с этим надо что-то делать. Конечно, может встать вопрос — почему не копировать себе текст и не заморачиваться насчет времени заимствования? Этому препятствует аллокациия, которая является довольно медленной операцией, и потому делать это каждый раз не хотелось бы.
Как будем решать?
Лучшим решением в данном случае станет выделение куска памяти, где будут лежать копии объекта. Для ускорения процесса Дима воспользовался паттерном «Корова» (от cow — clone on write), что позволило устранить основные проблемы. Задача на ближайшее время — применить этот паттерн для всех синтаксических структур.
Павел, который занят разработкой веб-системы для создания каталога туристических маршрутов, для начала удивил масштабами проделанной работы, показав на первом слайде карту с множеством маркеров, по которым может пройти маршрут. При наведении курсора на маркер открывается превью с описанием объекта. Программа позволит пользователю не только выстроить свой маршрут, но и посмотреть готовые путешествия. В ходе презентации совместно с наставниками были сформулированы задачи для стажёра на ближайшее время.
Задачи, которые нужно решить до тестирования каталога:
Для оптимизации работы Николай предложил посмотреть, как подобный процесс работает на Гугл-картах — каким образом там привязываются к конкретным точкам фотографии, сделанные людьми в этом месте. И самая главная задача — наполнить базу данными, чтобы были видны все плюсы и минусы интерфейса, а также «причесать» программу, подготовив ее к тестированию.
Артём начал с демонстрации страницы, предназначенной для соискателя. В соответствующие графы для выбранной вакансии нужно ввести свои имя, фамилию, контакты и выбрать нужную опцию: «отправить резюме» или «пройти тестирование». В свою очередь работодатель, получив отклик кандидата на вакансию, увидит дату загрузки данных. На отдельной странице отображается количество попыток тестирования, сделанных соискателем, потраченное им время и полученные результаты. Слева выведен список вопросов, которые попались кандидату, а справа — видео с ответами.
Наставники посоветовали Артёму добавить информацию о том, сколько вопросов из общей базы желает выбрать работодатель для тестирования на конкретную вакансию. Стажер также продемонстрировал, как работает с сервисом соискатель. Николай заметил, что работа практически готова к тестированию.
Остались мелочи:
Андрей рассказал о своей работе над системой, позволяющей найти в базе информацию о дипломе конкретного человека, и показал для примера, как будет выглядеть база четырех колледжей.
Судя по презентации, сервис обещает быть не только востребованным, но и удобным. Раздел, посвященный каждому учебному заведению, содержит перечень выпускников (пока он состоит из многократного повторения имени самого Андрея), даты окончания ими учебы и номера диплома. После того, как пользователь вводит фамилию и имя искомого лица, он получает данные о его обучении и номер документа об образовании.
Наставники отметили, что интерфейс и оболочка уже готовы, теперь необходимо завершить работу над блокчейн-базой.
Дмитрий Ц. успел реализовать не только структуру БД, но и программный код. Уже готов интерфейс и возможность редактирования данных, но вот самой страницы с расписанием пока нет — эту работу предстоит завершить в ближайшее время.
Еще одна задача — сделать автоматическое формирование расписания на семестр. Если бы Дима начал с создания расписания, а потом уже приступил к обвязке, было бы проще. Теперь же ему понадобится больше времени, чем это предполагалось изначально.
Николай Технический директор «Евростудио»
В целом, все студенты справляются с поставленными задачами и вносят корректировки после наших обсуждений, но не у всех получается выполнить запланированный объём в срок. Чаще всего это связано со сложностью оценки неизвестных задач, недостаточным умением анализировать состав задачи и разбивать её на более мелкие и понятные. Для нас способность разработчика оценивать свои силы является одним из важнейших скиллов, поэтому мы сразу стараемся научить этому стажёров, помочь с корректировкой оценок и выработать ответственность за соблюдение выданных сроков. Надеемся, что к завершению стажировки они усвоят этот важный урок.
Теперь начинающим разработчикам придётся правильно распределить свои ресурсы и поднажать, чтобы качественно и в срок решить поставленные задачи. Потом останется устранить шероховатости и подготовить проекты к тестированию.
Читайте в следующей статье о том, как решали выявленные недочёты стажёры и с какой ошибкой сталкиваются практически все начинающие разраюботчики.
Финал. Стажировка для наших студентов подошла к логическому завершению — защите...
Зачем две, если до этого студенты-практиканты несколько раз отрепетировали защиту в офисе и вроде бы внесли все правки от наставников? Отвечаем на вопрос в новом...
Не можешь найти нужного кадра в команду? Обучи его! Многие боятся, что после этого кадр уйдёт, или что на обучении требуется слишком много...