Действительно ли непрерывная Интеграция важна для сольного разработчика?

Исключение нулевого указателя - это индикатор того, что вы используете объект, не инициализируя его.

Например, ниже - класс ученика, который будет использовать его в нашем коде.

public class Student {

    private int id;

    public int getId() {
        return this.id;
    }

    public setId(int newId) {
        this.id = newId;
    }
}

Приведенный ниже код дает вам исключение с нулевым указателем.

public class School {

    Student obj_Student;

    public School() {
        try {
            obj_Student.getId();
        }
        catch(Exception e) {
            System.out.println("Null Pointer ");
        }
    }
}

Поскольку вы используете Obj_Student, но вы забыли инициализировать его, как в правильном коде, показанном ниже:

public class School {

    Student obj_Student;

    public School() {
        try {
            obj_Student = new Student();
            obj_Student.setId(12);
            obj_Student.getId();
        }
        catch(Exception e) {
            System.out.println("Null Pointer ");
        }
    }
}
63
задан Joel Coehoorn 9 December 2011 в 19:03
поделиться

7 ответов

Фундаментальное понятие CI - то, что у Вас есть система, которая создает код и запускает автоматизированные тесты каждый раз, кто-то делает фиксацию к системе управления версиями. Эти тесты включали бы модульные тесты и функциональные испытания, или даже поведение управляемые тесты.

преимущество - то, что Вы знаете - сразу - когда кто-то повредил сборку. Это означает любого A) Они фиксировали код, который предотвращает компиляцию, которая завинтила бы любого, кто сделал 'обновление', или B) Они фиксировали код, который повредил некоторые тесты, который или означает, что они представили ошибку, которая должна быть исправлена, или тесты, должен быть обновлен для отражения изменения в коде.

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

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

69
ответ дан Matt 24 November 2019 в 16:21
поделиться

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

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

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

10
ответ дан Benoit 24 November 2019 в 16:21
поделиться

Если необходимо поддерживать несколько компиляторов тогда, удобно иметь систему сборки CI, чтобы сделать все это, пока Вы просто разрабатываете в одном IDE. Мои сборки кода с Vc6 через VS2008 в x86 и x64 основываются на VS2005 & 8, таким образом, это - 7 сборок на проект на конфигурацию проекта... Наличие системы CI означает, что я могу разработать в одном IDE и позволить системе CI доказать, что все компиляторы, что я поддерживаю все еще сборку.

Аналогично, если Вы создаете, освобождает, которые используются несколькими проектами тогда, CI удостоверится, что они работают со ВСЕМИ проектами, а не просто тем, с которым Вы работаете прямо сейчас...

6
ответ дан Len Holgate 24 November 2019 в 16:21
поделиться

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

  • , Если Вы забыли к регистрации некоторый необходимый файл, репозиторий содержит поврежденную версию, даже если это работает над Вашей машиной. CI обнаружил бы тот случай.
  • , Если Ваш сервер CI работает на различной машине, он может указать на зависимости от Вашей среды сборки. Средства, сборка и все тесты могут работать над Вашим dev-полем, но над другой машиной некоторые зависимости не выполняются и повреждения сборки.
  • Ежедневные сборки могут указать, что Ваше более старое программное обеспечение не работает с новейшим обновлением ОС/компилятора/библиотеки...
  • , Если Ваша система CI имеет архив артефактов сборки, Вы можете легкий получать распределение более старой версии Вашего программного обеспечения.
  • Некоторый CI имеют хороший интерфейс, чтобы показать Вам метрики о Вашей сборке, иметь ссылки на автоматическую сгенерированную документацию и материал как этот.
6
ответ дан Mnementh 24 November 2019 в 16:21
поделиться

Мы используем нашу систему CI, чтобы сделать Сборки конечных версий (а также обычные автоматические сборки "на фиксации").

Способность нажать кнопку, которая начинает Сборку конечных версий, которая ступает посредством всех процессов для выпуска установки:

  • быстрый (я могу пойти прямо на с другими вещами, и это работает на отдельной машине, таким образом, это не замедляет меня);
  • повторяющийся (это ничего не забывает, включая копирование установки к папке выпуска и уведомления всех, кто должен знать)
  • надежный (никакие ошибки, в отличие от человека!).

В Гибкой среде, где Вы ожидаете поставлять рабочее программное обеспечение каждые 2-4 недели, это определенно стоит иметь, даже в команде 1.

5
ответ дан David White 24 November 2019 в 16:21
поделиться

CI приносит пользу сольному разработчику в том смысле, что Вы знаете, если Вы забыли регистрировать что-то (потому что сборка будет повреждена). Значение интеграции его уменьшено, когда нет никаких других разработчиков, все же.

2
ответ дан Brad Wilson 24 November 2019 в 16:21
поделиться

Как отмечали другие люди , CI действительно имеет преимущества для индивидуального разработчика. Но вопрос, который вы должны задать себе: стоит ли накладных расходов? Если вы похожи на меня, то, вероятно, потребуется час или два, чтобы настроить систему CI для проекта, просто потому, что мне нужно выделить сервер, настроить всю сеть, и установите программное обеспечение. Помните, что система CI сэкономит вам всего несколько секунд за раз. Для индивидуального разработчика это время вряд ли будет больше, чем время, которое потребовалось для настройки CI.

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

15
ответ дан 24 November 2019 в 16:21
поделиться
Другие вопросы по тегам:

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