Рекомендуемая структура каталогов управления исходным кодом?

Swift 4

Этот метод будет загружать изображение с сайта асинхронно и кэшировать его:

    func getImageFromWeb(_ urlString: String, closure: @escaping (UIImage?) -> ()) {
        guard let url = URL(string: urlString) else {
return closure(nil)
        }
        let task = URLSession(configuration: .default).dataTask(with: url) { (data, response, error) in
            guard error == nil else {
                print("error: \(String(describing: error))")
                return closure(nil)
            }
            guard response != nil else {
                print("no response")
                return closure(nil)
            }
            guard data != nil else {
                print("no data")
                return closure(nil)
            }
            DispatchQueue.main.async {
                closure(UIImage(data: data!))
            }
        }; task.resume()
    }

При использовании:

    getImageFromWeb("http://www.apple.com/euro/ios/ios8/a/generic/images/og.png") { (image) in
        if let image = image {
            let imageView = UIImageView(frame: CGRect(x: 0, y: 0, width: 200, height: 200))
            imageView.image = image
            self.view.addSubview(imageView)
        } // if you use an Else statement, it will be in background
    }
15
задан Andrei Botalov 11 August 2012 в 19:54
поделиться

4 ответа

Я обычно имею

Project Directory
  src - actual source
  doc - documentation
  lib - libraries referenced from source
  dep - installation files for dependencies that don't fit in lib
  db  - database installation script

В работе с Visual Studio, я не уверен, работает ли это то же в мире Java. Но я обычно помещал материал в различные папки проекта в src. Для каждого исходного проекта существует отдельный тестовый проект. Файлы типа "build" входят в основной каталог проекта. Я обычно помещал README, там слишком документирующий, как установить проект, если ему нужны больше, чем просто проверка.

РЕДАКТИРОВАНИЕ: Это - структура для единственного рабочего контроля проекта. Это будет дублировано для каждого ответвления/тега в Вашей системе управления версиями (помните в большей части системы SVN, копии являются дешевыми). Вышеупомянутый пример под Подверсией был бы похож:

/project
    /trunk
        /src
        /doc
        /...
    /branches
        /feature1
            /src
            /doc
            /...
        /feature2
            /src
            /doc
            /...
14
ответ дан 1 December 2019 в 03:53
поделиться

Подробно остановиться на том, что предложенный Mendelt Siebenga, я также добавил бы web каталог (для файлов JSP, СЕТИ-INF, web.xml, и т.д.).

Тесты должны войти в папку, названную test, который является одноуровневым элементом основного src папка - этот способ, которым Ваши классы модульного теста могут иметь то же имя пакета как протестированный исходный код (для упрощения с ситуациями, где Вы хотите протестировать защищенные методы или классы, например... посмотрите FAQ JUnit для этого , и этот вопрос также на , Куда я должен поместить свои тестовые файлы? ).

у меня не было большого использования для него самого, но проект Знатока также создаст resources папка вместе с src папкой для неисходного кода, который Вы хотите упаковать/развернуть наряду с основным исходным кодом - вещи, такие как файлы свойств, пакеты ресурсов, и т.д. Ваш пробег может варьироваться на этом.

2
ответ дан 1 December 2019 в 03:53
поделиться

Я использую Eclipse для создания веб-приложений J2EE, и это создаст следующую структуру проекта:

WebAppName\
    \lib
    \src
    \tests
    etc...

я затем создал бы папку SVN на нашей соединительной линии под названием WebAppNameProject. В этой папке я создал бы папки под названием WebAppNameSource, Документация и т.д. В папке WebAppNameSource, я помещу источник проекта, сгенерированный Eclipse. Таким образом у меня была бы следующая структура папок в SVN:

\svn\trunk\WebAppNameProject
    \WebAppNameSource
        \lib
        \src
        \tests
        etc...
    \Documentation 

Hope это помогает.

0
ответ дан 1 December 2019 в 03:53
поделиться
Другие вопросы по тегам:

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