Запуск проекта
Не могу поверить, что мой второй проект в WeCode уже завершен! Последние 2 недели были довольно сумасшедшими, много-много веселья и обучения. Это чтобы поделиться своим путешествием со вторым командным проектом.
Мой второй проект — клонировать одну из самых популярных рекрутинговых платформ в Корее, Wanted. Мы придумали название и логотип нашего командного проекта ‹GetWanted/›, что показывает, что мы решили сделать рекрутинговый сайт именно для разработчиков. В команде шесть человек, включая меня, по три на front-end и back-end.
Хотя это проект клонирования, наша цель не в идентичном клонировании веб-приложения. Мы стремимся реализовать различные функции самостоятельно, особенно те, которые мы не смогли испытать в прошлом проекте. Итак, члены моей команды и я поделились тем, что мы сделали из последнего проекта, и распределили работу на основе того, из чего мы можем извлечь максимальную пользу.
Моей частью была страница управления файлами резюме, страница написания резюме и страница сведений о вакансии. Я собираюсь поделиться некоторыми кодами в следующем разделе.
Командная работа и Scrum
На этот раз мы снова использовали Trello, чтобы каждый день сообщать друг другу о прогрессе и делиться информацией. Встречи проходили довольно прямолинейно и быстро, и большая часть нашей работы выполнялась вовремя. Все усердно работали в выходные и праздничные дни, и я горжусь своей командой, которая сделала все возможное для завершения каждой части. В очередной раз я понял, что общение между членами команды чрезвычайно важно. В следующий раз я надеюсь на более конструктивное общение с бэкенд-членами, так как я обнаружил, что картина, которую рисует каждый член команды, может сильно отличаться друг от друга, и требуется много времени, чтобы договориться, если мы тоже найдем разницу. поздно.
Сводная информация о работе
Функции, которые я разработал для этого проекта, включают:
Resume Storage
- Загрузить PDF-файлы
- Добавлять, удалять, изменять файлы резюме
- Загрузить формы резюме
- Динамическая маршрутизация
Написание резюме
- Автозаполнение основной личной информации
- Добавить/удалить опыт работы
- Сохранить как черновик/закончить и обновить хранилище
Сообщения о вакансиях
- Карусель изображений работодателя
- Отображение местоположения работодателя с помощью API карты Kakao
- Загружайте резюме пользователя и отправляйте файлы на почту
Сутки, которыми можно поделиться
В этом проекте мне пришлось использовать множество функций выборки для получения и публикации информации, работающей на стороне сервера. На более поздних этапах проекта у нас был сеанс повторного использования функций. Я хотел провести рефакторинг своего кода, особенно функций выборки, чтобы мне не приходилось снова и снова писать одни и те же строки.
Выше reuseFetch
принимает четыре параметра: API, метод, токен и полезную нагрузку. Методы, которые я использовал, были только GET
и POST
, поэтому я использовал условие if
для POST
, так как ему нужны параметры.
Второй момент, которым я хочу поделиться, касается включения кнопки отправки на странице сведений о вакансии. Функция, которую я должен был разработать, имеет следующие требования:
- Есть галочки прикрепления файла, который пользователь разместил в аккаунте, а значит количество файлов может быть разным.
- Кнопка отправки (제출하기) должна быть включена и менять цвет, когда установлен хотя бы один из флажков.
- Кнопка отправки должна оставаться активной, когда установлен ряд флажков, так как можно отправить несколько файлов.
- При снятии флажков кнопка отправки должна быть отключена, когда все флажки сняты.
Мне было довольно сложно разработать эту функцию, потому что я не был уверен, в каком компоненте я должен управлять состояниями флажков. Первоначально у меня были состояния компонента флажка, так как я думал, что у каждого флажка должно быть свое собственное состояние, чтобы каждое поле можно было проверить отдельно. Затем у меня было состояние submitReady
для его родительского компонента. Проблема заключалась в том, что хотя я смог включить кнопку отправки, когда было установлено несколько флажков, как только один из них был снят, кнопка отправки отключилась.
С помощью моего наставника я понял, что состоянием каждого флажка также следует управлять из родительского компонента. Но, поскольку количество флажков разное в зависимости от того, сколько файлов загрузил пользователь, мне пришлось подумать о том, как получить количество состояний. Итак, я использовал функцию map
для возврата логического состояния для каждого файла в массиве resumeList
.
Затем handleCheckBoxClick
изменяет только состояние выбранного флажка в массиве. Наконец, checkSubmitReady
функция проверяет, нажат ли хотя бы один флажок, состояние submitReady
должно быть истинным, иначе останется ложным. Эта функция оказалась более сложной, чем я думал. Как пользователь, я никогда бы не подумал, что такая простая на вид функция нуждается в такой логике, ха-ха.
Завершение проекта
В день финальной презентации я был не слишком доволен результатом. Все работало нормально до вчерашнего вечера, но по какой-то причине некоторые функции на странице резюме не работали так хорошо. Мы не смогли сделать это идеально на презентации, но тем не менее, я горжусь своей работой и прогрессом, которого я добился на буткемпе. Оглядываясь назад на начало лагеря, то, чего мы все достигли, просто безумно!
С завтрашнего дня я начинаю свою месячную стажировку в начинающей компании. Я нервничаю и волнуюсь одновременно. Я с нетерпением жду возможности узнать гораздо больше от работы с разработчиками в этой области, и через месяц я буду более готов в качестве младшего разработчика.