Школа 21

Проект minishell. Как это было.

В данной статье расскажу вам о самом проекте, о том, как мы его писали, с какими трудностями столкнулись, и как с ними справлялись.

Вкратце идея этого проекта такова, что нужно было написать свою командную оболочку, которая будет работать по типу bash. Да-да, bash или zsh, который мы все часто используем в нашем терминале, чтобы создавать файлы, перемещаться по папкам и делать еще много всяких разных штук))

p.s: если вы не знаете, что это такое, советую почитать на вики

Проект нужно было делать в команде (команда из 2х человек), и в итоге мы писали его почти 2 месяца! (первый мой коммит был сделан еще 26 ноября, а сдали мы только 18 января). Последние недели 2 мы просто допиливали какие-то косяки, и это была самая нелюбимая моя часть работы. Ты что-то чинишь, а ломается от этого другое. В какой-то момент вообще хотелось переписать все заново, начать с чистого листа…но в то же время хотелось уже быстрее его закончить.

Немного о работе в команде: в своем посте в инстаграме я уже писала о том, что мне очень повезло с моим тиммейтом, и мы прям сработались вместе. Но, тем не менее, командная работа — это не так просто, как кажется. И у нас тоже порой возникали недопонимания, мы не сразу делали все оптимально и эффективно. Оценив примерно то, над чем предстоит работать, мы распределили задачи проекта между собой. Мой тиммейт писал парсер, я взяла на себя исполнение функций и остальные небольшие задачи типа обработки ошибок и сигналов. Мы сделали описание задач в notion, с постановкой дедлайнов, распределением подзадач на статусы «not started», «in progress», «complete» — и это очень помогло. Так ты видишь общую картину, на каком вообще этапе проект, стоит ли поторопиться. По ходу я еще делала заметки, которые помогали не забывать написанный функционал или логику, — так в будущем можно было бы легко отследить баги.

примерно так выглядела наша рабочая доска

С одной стороны, мы очень комплексно ко всему подошли, что должно было ускорить написание проекта. С другой стороны, не обошлось и без просчетов.

  • Первое — мы не сразу стали соединять наши части проекта и познали всю мощь совместного репозитория довольно поздно. Сначала мы почти полностью написали свои части, они хорошо работали по-отдельности, но соединив их, мы поняли, что оба не предусмотрели многие вещи, из-за этого потратили кучу времени на отладку работы уже соединенной программы.
  • Второе (что замедлило работу, но прибавило много опыта) — мы решили освоить те концепты в Си, в которых оба немного «плавали», а именно, — связные списки. Проект можно было сделать спокойно и без этого, хотя со списками вместо массивов код получился более лаконичным и оптимальным, — так что это наверное больше нам в плюс, несмотря на то, что мы постоянно боролись с сегфолтами 😀

Как я уже говорила, проект мы писали довольно долго. Это сейчас кажется, что все было просто — но это сейчас, когда ты уже видишь глобально, что нужно было делать, чтобы все комплексно работало. Тогда же, в моменте, все изучалось на ходу, были дни, когда я или мой тиммейт целый день пытались исправить какой-то баг, но ничего не получалось. А потом приходишь на следующий день — на тебя резко приходит озарение, исправляешь одну строчку — и вуаля — все работает! Потом злишься на себя, что весь предыдущий день прошел впустую.

Конечно же, я очень уставала — как морально, так и физически. На фото ниже — день, когда мы наконец решили сдавать проект, вносили последние изменения, и в итоге его завалили 😀 Потом еще несколько дней исправляли, но уже было легче.

Перед первой попыткой защитить проект.

В итоге я поняла, что занимаюсь тем, чем мне нравится заниматься. Ведь даже 31го декабря в перерывах между резаньем салатов, я открывала ноутбук, чтобы продолжить написание проекта. Я исправляла код в поезде, мне снилось, как я «починила» пайпы (а потом проснулась и поняла, что это все еще только предстоит исправлять…)

Оглядываясь назад, я понимаю, насколько я выросла. Бывали дни, когда я читала новый материал и мне казалось, что «я же никогда этого не пойму» или «я никогда сама это не исправлю», но всегда говорила себе, что любая задача посильна, просто нужно не сдаваться.

p.s.: буду благодарна за фидбек в комментариях к посту. Планирую в скором времени написать свой гайд по проекту 🙂

Автор

business.codinggirl@gmail.com

Комментарии

9 февраля, 2021 в 4:12 пп

Аня, ты большая молодец



Давид
31 января, 2022 в 7:10 пп

Клёвая история, клёвая ты))Благодаря тебе у меня есть мотивация изучать программирование и не сдаваться!)



Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Шаблоны С++

28 апреля, 2021