14 июня. Четвертый проект ушел на первую проверку
Дневниковые записи о том, как проходит обучение "ржавой крысы" (то бишь меня - не молодой, и имеющей гуманитарную профессию, подробнее в предисловии) на курсах "Веб-программирование" Яндекс.Практикума.
Проект все же удалось по плану сдать в воскресенье, но не утром, а вечером. Кратенько изложу развлечения этих выходных.
В субботу бодро приступила к реализации попапа на JS. Вдохновение от первого пятничного успеха (ура, я сделала инпуты) быстро иссякло. Я лопатила интернет, зачитывалась слаком, тыкалась туда и сюда, и, наконец, добилась того, что бы попап и всплывал, и закрывался, и даже внесенный в инпут-поля текст показывал на сайте. Сил мне это стоило много. Плюс попутно я прочитала в Слаке, что в инпут-поля изначально текст должен попадать через скрипт, а не благодаря прописанному в html value. Поняв, что заново начинать историю с попапом и разбираться как это сделать я не в состоянии, я решила переключиться на ГИТ. Вот зря это я сделала - уставшая и в ночи...
По условиям проекта нужно было осваивать ветвление в гите и создать отдельную ветку для работы, потом ее смержить с основной ... Раз плюнуть же. И тут началось полное веселье. Чудесный гит ветку сделал, но при попытке что-то туда отправить начал ругаться. Углубилась в Слак, там народ жаловался на похожие проблемы. В одном чате наставник посоветовал удалить папку с проектом (скопировав ее предварительно), клонировать проект заново - в общем начать путь с начала.
Ну я и начала. Так как сие не помогло. Мой перевозбужденный JS мозг выдал гениальную идею. Ну, конечно! Я же удалила папку на компьютере, а в самом Гите то репозиторий остался, надо ж его тоже удалить! Тут-то мои шаловливые ручки быстро нашли где и как удаляются репозитории (хотя эта функция специально для таких как я спрятана подальше). В общем удалила я его (знатоки гита уже ржут в голос).
Понятное дело, мне это все ни черта не помогло. И уже в два ночи, злая как собака, я ушла спать. Сегодня приступила к гиту снова. Мучала его еще с часик и запросила помощи в Слаке. Там еще с полчаса помучила народ, пока, наконец, не выяснилось, что я удалила репозиторий, и теперь клонировать то мне и нечего. А до этого я благостно клонировала проект Яндекса, а не свой, из-за чего вся эта баталия и была (да, я склеротик, да, что и как клонировать объяснялось на первом проекте и к четвертому уже автоматом должна была бы это все делать.... , впрочем, я и делала автоматом, просто упустив маленький нюанс - ссылка должна быть на свое, а не на изначальное-яндексовское).
В общем убила я на Гит весь вчерашний вечер и пол-дня воскресенья (мне этот Гит вообще напоминает пословицу про "сапожника без сапог", тут уже роботы статьи пишут, а вот эту любимую айтишную хрень надо ублажать рукописными командами).
Вторая половина дня ушла на борьбу со скриптом. Как убрать значения value я разобралась, благодаря подсказкам и советам других мучавшимся ранее меня (Слак неоценим). А вот дальше... Все работает, все прекрасно, и я даже в очередной раз ощутила свое "ВАУ, я кажется поняла логику JS". Но... возник один маааахонький раздражающий нюанс.
Поясню кратко. Есть кнопка1, которая открывает окошко, имеющее два поля (имя, профессия). У окошка есть кнопка2, сохраняющая новые значения полей (например, я написала в них "Иванов, строитель"). И кнопка3, закрывающая окошко без сохранения этих значений и показа их на сайте. ТАк вот, почему то при использовании кнопки3 в самом поле при новом открытии окошка оказывается чертов Иванов, строитель. Я сломала всю голову. Я же поняла! Я же вижу, что у меня написано в коде. При открытии окошка заново, он должен подставлять в поля имя и профессию, которые показываются на сайте. Почему у меня на сайте изначальное имя, а в чертовом окошке - Иванов????
Опять прибегла к помощи наставника. Пожалилась на проблему, выложила скрин... Он попросил прислать кодпен (что уже показывает, что не все так просто, явных ляпов в коде нет). Одна проблема, я с кодпеном не дружу. В него переходила смотреть, но сама-то я там не работаю. И как перенести туда код? Уже в озверяме начала быстро и бегло разбираться как туда засунуть код так, чтобы не весь, но при этом работало как надо. Руками покопировала куски кода, с грехом по полам добилась того, чтобы криво-косо выглядещее нечто, все же попап открывало и функции его проверить давало.
В итоге получила вожделенное решение. Все дело было в (ААА!!!) одном методе с названием setAttribute и его загадочной специфике (что за специфика я уже разбирала не стала, оставила на будущее). То есть вроде бы он ровно то, что было нужно. И работал ровно так при открытии как нужно. Но вот какая-то его специфика приводила к такому странному результату с инпутами.... Заменила на просто inputName.value = ... И все заработало.
В общем отправила я эту несчастную работу на код-ревью. Попутно в ходе проверки перед отправкой обнаружила, что у меня на адаптиве разъехался один блок (изначально, все было прекрасно, но во имя JS пришлось вынести кнопку в отдельный элемент и все поехало, на большом экране я это поправила, а вот на маленьком...). В итоге попытки решить проблему привели к полной переверстке блока, даже до гридов дело дошло (не уверена, что мое решение порадует код-ревьюера). Тут же в слаке народ, начавший делиться ответами от код-ревьюеров, порадовал какими-то замечаниями, которые вроде как и мне бы надо заранее исправить. Но тут уж я сказала БАСТА! И отправила проект ....Пусть уж мне мой собственный код-ревьюер скажет, что надо поправлять, а то я так никогда процесс не закончу (к тому же, мало ли что там у других соучеников наверстано-наделано, мало ли кто проверял, глобальные баги все правят одинаково, а по мелочам могут быть и расхождения).
P.S. Кстати, Практикум прислал сообщение, что решил нас всех одарить фирменными футболками. Мелочь, а приятно. Форму заполнила, теперь буду ждать подарка. Заявки принимают до 15 июля и потом обещают, что в течении месяца прибудет футболочка, как раз к дню рождения (правда, с учетом моего опыта общения с Почтой.России, она и к новому году может стать подарочком :)).