Добрый день! Джуниор разработчик, находя свою первую работу, начинает расслабляться. Такой период может быть опасен для начинающего программиста из-за ощущения стабильности, ведь я работаю, исполняю свои обязанности и вроде всё ок. Однако наступает момент когда приходит понимание : "Не ок, надо развиваться". До этого момента все мои проекты были рабочими, а значит у меня нет достойных примеров на гите. Надо это исправлять и с этой целью я задался задачей спроектировать и создать парсер экселя.
Сам по себе проект не сложный и не громоздкий, но требует определенных усилий для формирования правильной логики. В чем его суть? Я хочу создать систему работающую с Excel на чтение и запись с трансформацией данных в JSON с работой с полученными данными. Под работой с данными подразумевается их редактирование или формирование через интерфейс и последующим сохранением как в Excel так и в JSON, который можно передавать по api как удобный вид данных.
По имеющейся задумке нужно составить примерный план развития и получается примерно следующее:
- Формирование класса хранящего в себе данные в гибком виде (заранее неизвестно сколько полей и какого типа будет содержать каждый элемент) поддерживающий реализующий чтение и запись данных.
- Реализация этого класса в виде Web-api. Этот пункт позволит проверить удобность встраивания нашего класса в сторонние проекты.
- Создание web морды для апишки дабы вспомнить фронтенд движуху.
Возможно стоит так же на этапе планирования обозначить стэк технологий:
- Как основу бэкенда используем .NET Core, а именно шарп
- Для работы с Excel нам понадобится специальная библиотека и я как очень ленивый человек возьму openXML (ничего же не перепутал?). Причина проста - познакомиться с работой с XML чуть ближе чем с верхушки.
- Для вебморды планируем Angular, как фреймворк с которым я уже работал и на котором мне надо научиться билдить проект с нуля.
- Так же для веб представления желательно освоить gulp, скажем так для галочки.
Теперь, когда с простым закончили, надо понять что именно мы ищем в экселе, как это должно выглядеть и что с этим делать. О чем и будет следующий пост.
P.S. : Все публикации делаются исключительно для ведения "дневника", никто не против любого вашего мнения, но прошу не считать его существенным для других людей.