Приветствую всех! В этом посту расскажу про свои впечатления на новой работе в plazius.ru , а также как я выполнял свою первую задачу, кому интересно, поехали!!!
К моему первому выхожу на работе, мне уже подготовили рабочее место, придумали задачи и определили наставника. Обо всем по порядку.
Рабочее место профессиональное. Стоит мощный компьютер, два монитора, наушники, большая рабочая тетрадь, все как надо. Все нужное программное обеспечение можно попросить у системного администратора и он дает ключи на лицензию. Большие столы с удобными креслами. Кстати столы поднимаются и опускаются на любую высоту. Можно работать стоя. Многие так и делают, потому что целый день сидеть на одном месте утомляет. Офис у нас типа open space — открытое место, где все друг друга видят.
Хочется также отметить, что я прохожу испытательный срок, который длится 3 месяца, в течении которого мне выдали задачи, которые должен выполнить. Задачи довольно интересные. Определили наставника, который очень сильно мне помогает. Очень терпеливый человек. Он мне помогает изучить всю систему: как функционирует, какие компоненты есть, какие технологии используются.
Первый рабочий день был посвящен установке нужного программного обеспечения, регистрации в приложениях, которые используются в компании. Ну и в конце рабочего дня, нам (с наставником) удалось запустить нашу систему. Наша система состоит из нескольких частей. Главная часть (ядро) состоит из 120 проектов в одном решении. То есть, есть много сервисов, которые выполняют конкретную задачу, а главная часть их вызывает при надобности. Я первый раз видел такой большой проект, для меня это был некий шок.
Чуть освоившись в проекте (2 дня), мне дали уже первое задание, которое я должен был выполнить. Мы обсудили с наставником. Он мне рассказал, где надо вносить дополнительную логику. Принявшись за дело, я обнаружил, что в том методе, где надо было добавлять/исправлять код, вызывался другой метод, в котором вызывался другой, в котором… и эта цепочка была довольно длинной. А главное, что надо было не сломать тот код, который работал до этого! Чтобы понять, как все работает, я нарисовал диаграмму классов, которые участвуют в этом процессе и все встало на свои места. Задание оказалось не таких сложным и ужасным, поэтому не заняло у меня много времени. Я запустил приложение, проверил что мои изменения работают корректно и сообщил своему наставнику. Он сказал, что надо писать еще тесты к нему! Оказалось, что еще надо писать функциональные тесты, то есть надо тестировать полностью все сценарии, где участвует данный метод с новыми изменения. Мы разобрали сценарии, разложили все по полочкам, а потом выяснилось, что пишут тесты в нашей компании на Go и Python. Почему спросите вы? Потому что это динамические языки программирования и помогают написать все коротко и просто, ведь для тестов это и надо. Питон я знал до этого, а вот с Go не сталкивался. Посмотрев тесты, я заметил, что функционал нашей части приложения тестировался на языке Go и писал их именно мой наставник. Так вот, за неделю выучил язык программирования Go, а потом писал тесты для моего задания. Если брать в соотношении потраченное время на написание задания и теста к нему, то код занял 10% времени, а тест — 90%.
Расскажу как в целом происходит формирование задач в компании. Все задачи придумываются и расписываются ProductOwner-ами. Задачи у нас хранятся в Jira. Каждая задача имеет свой уникальный номер. Каждая задача назначается конкретному человеку. У задачи есть важность (как скоро надо ее сделать), статус (надо сделать, в процессе выполнения, готово) и есть конечная дата выполнения. Приступив к выполнению задачи, надо сменить статус на «в процессе», затем внимательно с ней ознакомится и что не понятно спрашивать того, кто является создателем задачи. Перед тем, как начать решать задачу, то есть писать соответствующий код, мы должны создать свою ветку в репозитории (GIT), и назвать также, как номер задачи в Jira. Делается это вот почему: когда делаются коммиты (изменения в коде), то они автоматически отображаются в Jira и соответственно появляется возможность смотреть изменения, касающиеся этой задачи. Очень просто и удобно. После того, как задача решена (написан и оттестирован код), отправляется на review. Review- этап решения задачи, которая означает, что мы должны показать свои изменения в коде старшим разработчикам, и они должны подтвердить, что изменения корректны, решают поставленную задачу, написаны тесты, соблюдается правило написания кода. Если изменения требуют доработки, они возвращаются обратно с подробным описанием того, что надо исправить. Делаются поправки и обратно проверяющему. Этот процесс повторяется до тех пор, пока не получим положительный ответ. После этого, наша ветка сливается и проходит на release — версия, которая сейчас функционирует, работает на реальных клиентах. Вот такой этап решения задач у нас существует. Также каждый день у нас бывают митинги — каждый отвечает на два вопроса: чем он вчера занимался? Чем он сегодня будет заниматься?
Также для поддержания здорового образа жизни, мы каждый вторник играем в мини футбол. Собирается 8-10 человек. Все оплачивает компания для того, чтобы сотрудники были здоровее.
Лично мне очень нравится в этой компании. Здесь есть все: интересный проект, интересные люди, интересные задачи, веселая и увлекательная обстановка, футбол. Что еще надо для хорошей жизни ???
Все интересующие вопросы, которые не были раскрыты в данном посте, прошу задавать в комментариях.