Принципы проектирования - это большая тема, и то, как их правильно применять, - это только то, что приходит с опытом.Их намного больше, чем вы когда-либо использовали бы в данном проекте, и в некоторых случаях их правильное использование означает, что они вообще не используются (или выбираются только те, которые подходят для проекта).Первый шаг - это желание написать хороший код, поэтому вы начинаете в правильном месте.:) Пара вещей действительно выделялась для меня:
2.) Использовать CSV-файл, содержащий обработанные данные ИЛИ ODBC-подключение, к промежуточной базе данных SQL и читать записи непосредственно из таблицы загрузки
То, что вы хотите здесь сделать, - это только построить логику, которая делает что-то с этими данными один раз.Самый прямой способ добиться этого - заставить вашу логику ожидать данные в определенном формате (возможно, бизнес-классы, которые содержат проанализированные данные и что ваша логика используется).
Итак, вы должны взятьвходные данные (CSV / таблица SQL / все, что угодно) и сначала проанализируйте их во внутренних бизнес-классах.Затем вы передаете проанализированные данные в свою логику, которая делает с ней все, что делает ваше приложение.Преимущество здесь в том, что вы можете изменить логику один раз, и она будет работать с обоими типами данных, И если кто-то придет позже и скажет: «Теперь нам нужно прочитать этот файл Excel», все, что вам нужно сделать, это добавить еще один анализатор.чтобы получить данные Excel в ваш внутренний формат.Никаких изменений в логике не потребуется.
4.) Сообщите об успехах и ошибках каждой записи в CSV-файл.
Отображения будут выполнены на 1 к 1основе, где входной файл
будет иметь те же имена столбцов, что и цель
То же, что и выше.Не думайте, что вы будете экспортировать в CSV навсегда, создайте простой класс «ReportError» или другой класс, содержащий подробности об ошибках, и вставьте его в список во время обработки.В конце, когда пришло время вывести ваши ошибки, вы можете преобразовать их в CSV.Поэтому, если это требование меняется, и вы вместо этого сообщаете об ошибках в веб-службу, вам нужно всего лишь изменить небольшую часть кода (и ни одна из них не является вашей логикой обработки).
Здесь есть тема.:) Постарайтесь инкапсулировать логические биты, чтобы, если что-то изменилось, легко было найти, где это что-то находится в коде.Если вы научитесь делать это, у вас получится поддерживаемый код, даже если вы не будете следовать никаким другим процессам или шаблонам (особенно потому, что как один человек вы не будете делать огромные проекты).
3.) Выполните следующие вызовы Zuora Webservice (асинхронный) · SubscribeWithExisitingAccount () · Создать () · Логин () · Подписаться () · Обновить () · Удалить ()
Asконсольное приложение, я задам вопрос, нужно ли вам это на самом деле быть асинхронным или нет.Что вы надеетесь получить от асинхронного вызова Login ()?Может ли ваша программа сделать что-нибудь в ожидании возврата Login ()?
Не так уж и сложно асинхронно, но гораздо больше управлять, чем синхронными вызовами.Для консольного приложения от кого-то, чей опыт еще не знаком с этой технологией, я не уверен, какую выгоду вы получите, чтобы сравнить с дополнительными усилиями, которые от вас требуются.