Каковы Ваши впечатления от Знатока? [закрытый]

Вы можете std::find строка в массиве, а затем рассчитать std::distance этого от начала массива.

std::string month[] = {"January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"};

std::size_t getIndex(const std::string & text) {
    auto pos = std::find(std::begin(month), std::end(month), text);
    return std::distance(std::begin(month), pos);
}

int main() {
    std::cout << getIndex("March") << " " << getIndex("Not a month");
}

С выходом

2 12
21
задан dbr 20 November 2008 в 11:03
поделиться

18 ответов

Для проекта с открытым исходным кодом у Знатока есть некоторые преимущества, специально для Ваших участников (например, mvn eclipse:eclipse).

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

Также рассматривают впереди, где Вы хотите развернуть свои артефакты (Вы собираетесь разместить свой собственный репозиторий?).

И не боятся пойти с чем-то другим, чем Знаток (например, Муравей). Успех Вашего проекта будет самим проектом, не его инструментом сборки (пока Вы выбираете лучший среди аналогов инструмент сборки, который и Муравей и Знаток).

37
ответ дан 29 November 2019 в 06:07
поделиться

@MetroidFan2002: Знаток 1 удерживается от использования, и это возможно более стабильно, чем Знаток 2 (хотя меньше функций). Запись сценария Желе является определенно плохой идеей.

yc

-1
ответ дан 29 November 2019 в 06:07
поделиться

Я люблю Знатока, и я использую все это время. Часть причины - то, что очень просто настроить через плагины Eclipse XML (это имеет XSD, который является очень описательным). Знаток является великим для управления зависимостью также, поскольку оно позволяет Вам загрузить банки с репозиториев и исключить переходные зависимости когда это применимо. Это также имеет созданный в site:site цели, которая является большой для создания веб-сайтов проекта с применимыми отчетами.

Знаток является великим для проектов, которые только запускаются, но это действительно имеет свой ожидаемый формат Вашего исходного кода. При запуске проекта со Знатока зная то, что он может сразу сделать, он поможет Вам значительно. Но Вы должны definitiely исследование это. "Из поля", знаток может сделать, имеются в большом количестве большие вещи и плагины для него. Однако некоторые вещи, которые МУРАВЕЙ обрабатывает лучше, чем Знаток, и если нет плагина Знатока для него, может быть трудно обработать в Знатоке. Но, можно всегда учиться создавать собственный плагин Знатока также.

См. Лучшие Сборки Со Знатоком для хорошего руководства по знатоку.

, О, и эти комментарии относятся к Знатоку 2, я никогда не использовал Знатока 1.

0
ответ дан 29 November 2019 в 06:07
поделиться

Некоторые друзья сказали мне, что Знаток немного похож на NetBeans: оба страдают от определенного клейма, которое было когда-то заслужено, но больше не совершенно допустимое. Я ненавидел Знатока 1.x из-за отсутствия документации и из-за XML/Jelly.

последний вопрос может быть решен, поскольку Знаток 2 намного более ориентирован на Java. Клеймо плохой документации остается, но я не знаю, справедливо ли это. (, Если это все еще справедливо, тогда команда Знатока действительно допустила ошибку.)

И АНГЛИЧАНИН и управление зависимостью являются классными идеями, но каждый задается вопросом, будут ли они ассимилироваться более новым инструментом, таким же образом тот C++ следовал впереди на более новые языки.

примечание финала А: дихотомия между Муравьем и Знатоком является несколько ложной. Gradle и Gant являются инструментами сборки в пространстве Groovy, которые имеют много для предложения, даже для прямых проектов Java. Поскольку они используют Groovy, простые задачи действительно просты (в отличие от болезненных конструкций XML у Муравья); все же у них есть прочная интеграция с Муравьем, таким образом, существует богатый набор "твердых" задач.

1
ответ дан 29 November 2019 в 06:07
поделиться

матовый raible имеет запись в блоге http://raibledesigns.com/rd/entry/comprehensive_project_intelligence_with_jason .

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

1
ответ дан 29 November 2019 в 06:07
поделиться

мы используем знатока для действительно большого проекта (больше чем 15 модулей), и мы очень старались не бороться с инструментом, но

1), знаток решает 90% типичных проблем, но если Вы боретесь другие 10%, это всегда - путаница для игры с

2), управление жизненным циклом является путаницей. Даже при выборе совпадающей фазы для материала для случая, иногда он не работает. И Вы не знаете f *** луг, почему

3) мы упорно боремся, но в конечном счете мы сдались: мы используем муравья от знатока. Иногда мы используем даже муравья для вызова знатока. Теперь даже не пытайтесь думать, что мы сосем: если только Вы видели сложности определенных шагов в нашем процессе сборки..., это просто, что знаток попадает Вашими путями, как правило, к тому, чтобы разработать сложные проекты.

4) управление локальным репозиторием является нагрузкой. Artifactory не хорош. И другие аналогичные продукты.

, В целом: Я предложил бы Муравья (возможно, с Ivy, если Вы хотите управление зависимостями, но я никогда не пробовал это)

До свидания Stefano

1
ответ дан 29 November 2019 в 06:07
поделиться

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

Это использовалось в большинстве проектов, что я продолжил работать и.. хотя иногда раздражая (конфигурации и документация), это сохранило меня много времени. Большинство основанных на Java проектов Apache использует Знатока.

, Работает ли Знаток, это действительно зависит от того, что Вы хотите, чтобы он сделал для Вас.

yc

1
ответ дан 29 November 2019 в 06:07
поделиться

У нас есть сообщество Разработчиков ПО с открытым исходным кодом, работающих независимо над их собственными проектами. Несколько из этих проектов пользуются библиотеками из других проектов. Без управления зависимостью мы сталкиваемся с циклическими зависимостями в банках. муравей не помог с этими проблемами (это было перед Ivy, которую я не использовал). При помощи знатока и развертывающихся банок, нам удается уменьшить зависимости и получить много меньше проблем. Таким образом, мы извлекли выгоду чрезвычайно из наличия инструмента управления зависимости, и лично я нашел, что усилие использовать знатока в значительной степени стоит того.

3
ответ дан 29 November 2019 в 06:07
поделиться

Мне лично действительно нравится Знаток, и существует много других людей, которые делают также. Maven2 имеет намного лучшую репутацию, чем Maven1, и там, кажется, тенденция в сообществе OSS к нему. Для магазинов, которые имеют много различных проектов, это действительно помогает создать непротиворечивость, и Вы не чувствуете, что перестраиваете колесо со скриптами Ant на каждом проекте.

Для обращения к вопросу было бы хорошо, если Вы, по крайней мере, отправите свою банку центральному репозиторию. Вы не должны заменять свой существующий процесс сборки знатоком, но необходимо будет, по крайней мере, поддержать АНГЛИЧАНИНА с зависимостями для проекта.

http://maven.apache.org/guides/mini/guide-central-repository-upload.html

Это принесет пользу Вашему проекту путем создания его намного легче для пользователей (кто использует Знатока или Ivy) загружать и устанавливать банку.

, Если Вы решаете использовать знатока, чтобы сделать Вашу сборку, она, вероятно, увеличит участие в Вашем проекте, потому что она понизит барьер для доступа несколько. Как только у Вас есть свой проект, разработанный с помощью знатока, все, что требуется для кого-то, кто хочет создать из источника, должен выполнить "mvn установку". (FWIW, то же может быть выполнено с помощью Муравья/Плюща до некоторой степени).

4
ответ дан 29 November 2019 в 06:07
поделиться

Одна из главных причин для использования любого инструмента сборки состоит в том, чтобы получить восстанавливаемые сборки. То есть то, что сборка, которую Вы делаете сегодня, может точно копироваться во время лет. Знаток, по моему опыту, перестал работать ужасно в тесте создания восстанавливаемых сборок.

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

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

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

5
ответ дан 29 November 2019 в 06:07
поделиться

Там несколько очень хороших вещей о знатоке:

  • Архетипы: (основной) проект Своего рода запуска (очень полезный), который делает много людей. В компаниях, где Вы склонны воссоздавать тот же вид материала много раз, это чрезвычайно практично.
  • управление Зависимостью: действительно необходимо попробовать его для любви его. Плющ является пользой совместимый инструмент также.
  • управление жизненным циклом: Без всего IDE можно сделать все из командной строки со знатоком, и этим я имею в виду: компиляция, пакет, тест, развертывается, и т.д. И его возможное для создания некоторого шага зависящим от других. Хотя я думаю, что значения по умолчанию не являются лучшими, эта часть настраиваема.

Кроме того, знаток может также сделать некоторый материал муравья.

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

8
ответ дан 29 November 2019 в 06:07
поделиться

У меня была неудача работы со Знатоком, когда это переходило от 1.x до 2.x. Это в значительной степени использовало 100% времени одного из наших членов более основной команды. Мы в конечном счете фрагментировали его.

Однако позже у меня был шанс пересмотреть знатока, и я скажу, что он улучшился. Одним из моих основных вопросов было отсутствие хорошей документации, но после чтения "Знаток: полное руководство" , я сказал бы его намного более легкое для понимания.

Наряду с плагин m2eclipse для затмения, руководящие зависимости становятся пустяком - это имеет превосходный инструмент визуализации зависимости.

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

10
ответ дан 29 November 2019 в 06:07
поделиться

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

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

Знаток также ужасен для помощи Вам диагностировать проблемы, когда она не работает. И сценарии сборки являются нечитабельными перечислениями неинтуитивного и неестественного xml, который может, конечно, быть тем, что Вы предпочитаете и ищете (Если у Вас есть видение муравья).

я люблю знатока. Знаток полон совершенства и обещания. Я также ненавижу знатока.

Редактирование:

, О, и плагин знатока для затмения Флиппин', блестящий.

12
ответ дан 29 November 2019 в 06:07
поделиться

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

Муравей совсем не прекрасен, но это намного более устойчиво и намного лучше зарегистрированный. Это действительно берет некоторая дисциплина для использования его модульным способом , хотя (который является одной из вещей, к которым Знаток пытается обратиться). Я думаю, что изобретение чего-то лучше и, чем Муравей и, чем Знаток не было бы настолько трудным, но тот инструмент, кажется еще, не существует.

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

РЕДАКТИРОВАНИЕ : Я забыл добавлять, что, даже если Вам не нравится Знаток, Вы не можете проигнорировать его. Если Вы запишете библиотеки с открытым исходным кодом, которыми пользуются другие люди, они будут ожидать, что они будут доступны в репозитории Знатока так, чтобы они могли использовать их легко от их сборок Знатока.

EDIT2: Так как Вы разъяснили, что Ваш главный интерес находится в обеспечении библиотеки Open Source другим пользователям Знатока, стоит отметить, что необходимо не обязательно использовать Знатока для достижения этого. Существует ряд задач Ant для публикации в репозиторий Знатока . Так, если Вы хотите продолжить использовать Муравья для разрабатывания проекта, можно сделать, но все еще удовлетворить использующих Знатока пользователей.

28
ответ дан 29 November 2019 в 06:07
поделиться

JavaPosse обсудил Знатока вполне немного в недавний подкаст № 217 . Согласие состояло в том, что это очень строго в том, как это позволяет Вам структурировать свои проекты, но что его использование растет, и что это может предложить стандарт перекрестного IDE для представления проекта.

<час>

Обновление — Javaposse также разместил информативную сессию наконец наделенная правом Сводка новостей 09 Java пружины, "Знаток с Болью?" я смеялся (в испуганном сочувствии) как, к концу записи, одному из участников, связанных, как сменное обновление повредило их build— за два дня до производственного выпуска.

<час>

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

<час>

Обновление — для тех, которые имеют иррациональное презрение к моему иррациональному мнению, позвольте мне показать Вам, что "знаток" вызывает в воображении в моем уме:

Edna Mode, from the Incredibles

Да, в моем уме, Edna Mode воплощение "знатока". И я не хочу ее в своем build— слишком властный!

, Каково было бы лучшее имя? Изобретенные слова являются лучшими для своих точных результатов Google. Для хорошего впечатления базируйтесь их в реальных словах с позитивной коннотацией.

3
ответ дан 29 November 2019 в 06:07
поделиться

В нашей компании мы медленно начали двигаться перешли к Maven, чтобы попытаться обеспечить единообразие между различными сборками компонентов. Прямо сейчас это огромное количество скриптов муравьев, пытающихся сделать то же самое. Он отлично работает, хорошо интегрируется с нашим сервером сборки (Hudson), и те несколько вещей, которые нам нужно было сделать, которые Maven не поддерживает (или полностью поддерживает), мы в основном добавили в упрощенный файл xml сборки ant, который мы прикрепляем к процесс сборки. Он хорошо закрывает любые функциональные дыры и делает преобразование без особых усилий - все, что вам нужно, это базовый процесс компиляции / упаковки, а затем вы можете медленно перемещать любые другие побочные эффекты ваших сборок из ant, когда у вас есть время.

1
ответ дан 29 November 2019 в 06:07
поделиться

Документация улучшается, и m2eclipse просто великолепен. Но кто-то выше указал на статью о «нарушении конструкции». Он сделал несколько хороших замечаний. Хотя я лично считаю, что maven - лучший инструмент, чем ant, в конечном итоге наш опыт сделает maven3 лучшим инструментом, чем maven2.

Я не мог без этого жить. Я могу зайти на ЛЮБУЮ машину в мире с подключением к Интернету, JDK и Maven 2, проверить свой репозиторий git и запустить mvn test, и он будет построен. Смею вас, сказать это о любом другом инструменте сборки. : -)

1
ответ дан 29 November 2019 в 06:07
поделиться

Основным преимуществом использования Maven является то, что он экстернализирует «объектную модель проекта» (отсюда pom.xml ). Преимущество такой независимой структуры проекта заключается в том, что он становится переносимым между инструментами и IDE.

Все основные IDE вложили много средств в поддержку maven. Когда вы открываете проект в выбранной среде IDE , он принимает структуру Maven, и вы готовы к работе:

  • В Eclipse : Импортировать ... Проект Maven .. .
  • В IntelliJ : откройте проект ... перейдите к pom.xml
  • В Netbeans : все прозрачно

Обычно вы помещаете все метаданные IDE (.iml, .project, .classpath и т. Д.) В списке игнорирования VCS .

Очевидно, что движки непрерывной интеграции выигрывают аналогичным образом от подхода, основанного на POM.

Есть кривая обучения и ограничения, но вы получите много взамен.

2
ответ дан 29 November 2019 в 06:07
поделиться
Другие вопросы по тегам:

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