Папки или проекты в решении для Visual Studio? [закрытый]

Вот решение печати всех дат между двумя датами (код Swift 4)

var mydates : [String] = []
let startDate = "2018-03-01"
let endDate   = "2018-03-05"

var dateFrom =  Date() // First date
var dateTo = Date()   // Last date

// Formatter for printing the date, adjust it according to your needs:
let fmt = DateFormatter()
fmt.dateFormat = "yyy-MM-dd"
dateFrom = fmt.date(from: startDate)!
dateTo = fmt.date(from: endDate)!


while dateFrom <= dateTo {
    mydates.append(fmt.string(from: dateFrom))
    dateFrom = Calendar.current.date(byAdding: .day, value: 1, to: dateFrom)!

}

print(mydates) // Your Result

Выход:

["2018-03-01", "2018-03-02", "2018-03-03", "2018-03-04", "2018-03-05"]
29
задан Mark Cidade 10 September 2008 в 21:37
поделиться

7 ответов

По умолчанию, всегда просто создают новую папку в рамках того же проекта

  • , который Вы получите единственный блок (без дополнительного, ILMerge гимнастический)
  • Легче запутать (потому что у Вас будет меньше открытых типов и методов, идеально ни один вообще)

, Разделение Вашего исходного кода в несколько проектов имеет только смысл если Вы...

  • Имеют некоторые части исходного кода, которые являются частью проекта, но не развертываемые по умолчанию или вообще (модульные тесты, дополнительные плагины и т.д.)
  • [еще 113] вовлеченные разработчики, и Вы хотите рассматривать их работу как потребляемый черный квадрат. (не очень рекомендуемый)
  • , Если можно ясно разделить проект на изолированные слои/модули и Вы хотите удостовериться, что они не могут перекрестный использовать внутренний участники. (также не рекомендуемый, потому что необходимо будет решить, какой аспект является самым важным)

, Если Вы думаете, что некоторые части Вашего исходного кода могли быть допускающими повторное использование, все еще не создавайте его как новый проект. Просто ожидайте, пока Вы действительно не захотите снова использовать его в другом решении и изолировать его из исходного проекта по мере необходимости. Программирование не является lego, многократное использование является обычно очень трудным и часто не будет происходить как запланировано.

18
ответ дан lubos hasko 14 October 2019 в 08:50
поделиться

Разделение функций в проекты часто является оптимизацией архитектуры YAGNI. Как часто Вы снова использовали те отдельные проекты, действительно? Если это не частое возникновение, Вы усложняете свою разработку, сборку, развертывание и обслуживание для теоретического повторного использования.

я очень предпочитаю распадаться на папки (использующий соответствующие пространства имен) и осуществляющий рефакторинг для разделения проектов, когда у Вас есть реальный вариант использования повторного использования.

8
ответ дан Jon Galloway 14 October 2019 в 08:50
поделиться

Я обычно делаю проект для GUI проект для бизнес-логики проект для доступа к данным и проект для модульных тестов.

, Но иногда благоразумно иметь разделение, основанное на сервисах (при использовании сервис-ориентированной архитектуры), такой как Аутентификация, Продажи, и т.д.

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

я лично чувствую, что, если повторно используемый код разделяется на проекты, более просто использовать другие места, чем если бы это находится только в папках.

4
ответ дан denny 14 October 2019 в 08:50
поделиться

Я действительно думаю, что лучше разделить проект также, но все это зависит от размера проекта и числа людей, работающих над ним.

Для больших проектов, у меня есть проекты для

  • доступ к данным (модели)
  • сервисы
  • фронтэнд
  • тесты

, я получил модель от Rob Connery, и его приложение витрины..., кажется, работает действительно хорошо.

mvc-витрина

0
ответ дан user10479 14 October 2019 в 08:50
поделиться

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

0
ответ дан Oskar 14 October 2019 в 08:50
поделиться

denny записал:

я лично чувствую, что, если повторно используемый код разделяется на проекты, более просто использовать другие места, чем если бы это находится только в папках.

я действительно соглашаюсь с этим - если можно снова использовать его, это должно быть в отдельном проекте. После этих слов это также очень трудно к повторному использованию эффективно:)

Здесь в Так, мы попытались быть очень простыми с тремя проектами:

  • веб-проект MVC (который делает хорошее задание разделения Ваших слоев в папки по умолчанию)
  • проект Базы данных для управления исходным кодом наших модульных тестов DB
  • против моделей/контроллеров MVC

я не могу говорить за всех, но я доволен тем, как простой мы сохранили его - действительно ускоряет сборки вперед!

6
ответ дан Jarrod Dixon 14 October 2019 в 08:50
поделиться

Разделение Вашего исходного кода в несколько проектов имеет только смысл если Вы...... Больше разработчиков включило, и Вы хотите рассматривать их работу как потребляемый черный квадрат. (не очень рекомендуемый)...

, Почему это не рекомендуется? Я нашел очень полезным способом управлять приложением с несколькими devs, работающими над различными частями. Делает checkins намного легче, главным образом путем виртуального устранения слияний. Очень редко будут два devs должны работать над тем же проектом одновременно.

0
ответ дан rjrapson 14 October 2019 в 08:50
поделиться
Другие вопросы по тегам:

Похожие вопросы: