Skip to content

HW3#3

Open
matiko-ma wants to merge 7 commits intomainfrom
hw_3
Open

HW3#3
matiko-ma wants to merge 7 commits intomainfrom
hw_3

Conversation

@matiko-ma
Copy link
Copy Markdown
Owner

Изменения
По результатам фидбека на первую домашку:

  • Были переделаны input под form
  • Добавлены alt-описания картинок
  • Другие мелкие замечания

Помимо этого:

  • Добавлена возможность редактировать содержимое карточки
  • Добавлена валидация
  • Добавлено сохранение данных sessionStorage
  • Настроен вывод данных из sessionStorage
  • Отлажены другие мелкие баги

To be done

  • Доработать drop-down list согласно макету
  • Доработать функцию перемещения для планшетов и телефонов
  • Добавить функционал раздела Публикации
  • Сверстать финальный шаблон резюме
  • Добавить функцию генерации PDF
  • Стилизация карточки в режиме редактирования
  • Стилизация alert
  • Проработать инклюзивность

@matiko-ma
Copy link
Copy Markdown
Owner Author

В коммите hw3.1 были внесены следующие изменения:

  • Доработан drop-down list согласно макету (с использованием библиотеки Choices.js)
  • Добавлен функционал раздела Публикации
  • Добавлена стилизация карточки в режиме редактирования
  • Добавлена стилизация alert`ов

To be done

  • Доработать функцию перемещения для планшетов и телефонов
  • Сверстать финальный шаблон резюме
  • Добавить функцию генерации PDF
  • Проработать инклюзивность

@matiko-ma
Copy link
Copy Markdown
Owner Author

В коммите hw3.2 были внесены мелкие css доработки и реализован деплой проекта через GitHub Pages (на базе ветки gh-pages): https://matiko-ma.github.io/cv_builder/

@matiko-ma
Copy link
Copy Markdown
Owner Author

В коммите hw3.3 были внесены следующие изменения:

  • Доработана функция перемещения карточек с помощью библиотеки SortableJS (Drag and Drop API полностью удален)
  • Добавлены атрибуты доступности
  • Добавлена возможность взаимодействия с карточками через клавиатуру

To be done

  • Доработать текстовое наполнение сайта
  • Сверстать финальный шаблон резюме
  • Добавить функцию генерации PDF

@lyaplyap
Copy link
Copy Markdown

lyaplyap commented Dec 5, 2025

Ревью дз по browser api

Общие комментарии

  • Разрозненные коммиты, было немного сложновато ревьюить (но спасибо за комментарии к ним)
  • Не смог отыскать логику обработки ошибок для local-storage

Соответствие критериям

  • Есть ссылка на код проекта с интегрированным браузерным API [ok]
  • Выбранное API используется осмысленно и улучшает пользовательский опыт [mostly ok]
  • Код структурирован и разделён на логические модули [mostly ok]
  • Обработаны основные сценарии использования API [ok]
  • Добавлена обработка ошибок для случаев, когда API недоступно [mostly ok]
  • Проект корректно работает в современных браузерах [ok]

Итого: 9

@matiko-ma
Copy link
Copy Markdown
Owner Author

matiko-ma commented Dec 5, 2025

  • Разрозненные коммиты, было немного сложновато ревьюить (но спасибо за комментарии к ним)

А вот можете, пожалуйста, рассказать, как правильно делать коммиты? Я просто не понимаю, как это можно нормально структурировать, если я постоянно прыгаю от блока к блоку, от файла к файлу.
Или нужно просто каждое свое отдельное действие коммитить, даже если это просто изменение в одной строчке?

  • Не смог отыскать логику обработки ошибок для local-storage

У меня же все на sessionStorage строится.. Если речь про него, то у меня по факту есть только проверка на пустой/не пустой - строчки 40-50 в файле cv_5.js.
Или local надо в любом случае как-то обрабатывать?

@semyonbos
Copy link
Copy Markdown

Фидбек на HW3:

Читаемость и понятность кода
Код хорошо читаем благодаря использованию современных синтаксических конструкций (ES6 модули, стрелочные функции, деструктуризация) и логичному разделению на файлы по функциональности. Однако класс CardList чрезмерно сложен (700+ строк), что затрудняет его понимание и поддержку.

Отсутствие ошибок
Есть потенциальные ошибки: отсутствие обработки случаев недоступности Session Storage API, использование innerHTML без экранирования в done.js (риск XSS-атак). Нет валидации формата данных при загрузке из хранилища.

Модульность и переиспользуемость кода
Архитектура модульная — логика разделена между файлами, но присутствует дублирование кода в cv_3.js и cv_4.js. Класс CardList нарушает принцип единственной ответственности, совмещая рендеринг, управление хранилищем и работу с формами. Утилитарные функции (showAlert) вынесены отдельно, что правильно.

Соответствие стандартам форматирования и кодирования
Код соответствует современным стандартам форматирования: используются const/let, camelCase, единый стиль отступов. Отсутствуют явные нарушения, структура импортов/экспортов корректна.

Соответствие требованиям задания
Задание выполнено по критериям: интегрированы Session Storage API, File API и URL API для загрузки файлов. API используются осмысленно — для сохранения состояния между шагами и работы с изображениями. Однако не выполнены требования по обработке ошибок API и отсутствуют fallback-механизмы при недоступности хранилища.

@lyaplyap
Copy link
Copy Markdown

  • Разрозненные коммиты, было немного сложновато ревьюить (но спасибо за комментарии к ним)

А вот можете, пожалуйста, рассказать, как правильно делать коммиты? Я просто не понимаю, как это можно нормально структурировать, если я постоянно прыгаю от блока к блоку, от файла к файлу. Или нужно просто каждое свое отдельное действие коммитить, даже если это просто изменение в одной строчке?

  • Не смог отыскать логику обработки ошибок для local-storage

У меня же все на sessionStorage строится.. Если речь про него, то у меня по факту есть только проверка на пустой/не пустой - строчки 40-50 в файле cv_5.js. Или local надо в любом случае как-то обрабатывать?

Прощу прощения за долгий ответ.

Насчёт первого комментария: на каждое изменение в одной строчке точно не нужно делать коммит, иначе если не сквошить (merge squash) они просто неоправданно раздуют историю вашей основной ветки. Лучше всего делать доработки итеративно и итеративно же их коммитить.

Допустим, мы разрабатываем todo-лист, он состоит из списка todo и инпута для ввода новой todo. Вначале мы можем написать вёрстку, стили и скрипты для одной тудушки и закоммитить их, потом для списка таких тудушек и также закоммитить эти новые изменения и в конце аналогичным образом для инпута. Таким образом у нас получится три коммита, каждый из которых вносит понятные изменения в проект.

Насчёт второго коммента: да, не заметил session-storage. Всё окей, locale-storage дополнительно поддерживать не надо)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants