Binary Studio Academy homework project
Всем привет! Меня зовут Николай, я начинающий .NET разработчик. Мною было написано это консольное приложение, эмулирующее работу парковки.
Основная идея и выбор архитектуры
Несмотря на то, что требованием было именно консольное приложение, я решил пойти немного вперёд и использовать классическую трёхуровневую архитектуру (о чём немного пожалел чуть позже
). Я подумал, что так получиться сделать код менее связанным и обеспечить некую модульность.
Вот как я это всё представил
- ParkingEmulator.Console - своеобразный слой представления, который отвечает непосредственно за работу с консолью (получение и валидация данных от пользователя, декор консоли).
ParkingEmulator.Core - ядро, слой всей логики приложения. Я старался писать его таким образом, чтобы он никаким образом не зависел от других слоёв (вроде получилось ).
ParkingEnulator.Log - слой, который отвечает за логирование данных и чтёние логов из файла.
На самом деле начиналось всё бодрячком . Архитектура была спланирована вроде нормально. Код писался чисто и красиво. Но, когда я начал пилить конкретно слой представления (консоль), то тут начались некоторые проблемы. Я начал жёстко путаться и теряться в своём же коде, очень много хардкодил и т.д.
. В итоге я не совсем доволен своим результатом. Я бы оценил его так:
Если после клонирования проекта вы попытаетесь его сбилдить и получите такую ошибку: “Проект, создающий библиотеку классов, не может быть непосредственно запущен.”, то вам нужно сделать это