>> Хм… Не знаю, что у вас за проект, но вам не кажется, что такие вещи как размер отступов желательно вынести в некий шаблон или, возможно, в описание стиля, подобное CSS? Во всяком случае отделить от кода. Иначе могут начаться проблемы при попытке поддержать различные скины или лэйауты.
Так и есть многое в CSS находится, но некоторые вещи в CSS сделать не удалось поэтому кое где эта проблема осталась. Плюс по этому предупреждению находятся и константы не отказываться же от констант совсем.
>> QHessian::QHessianMethodCall были просто два слота.
Да я думал об этом, но тогда меняется жизненный цикл объекта QHessian::QHessianMethodCall — он должен существовать пока идет взаимодействие (ожидание данных с сервера), а в принятом мной варианте этот объект можно создовать в стеке.
Там где я работаю реализовано много сервисов с использованием hessian. Потому я и использую hessian, против JSON ни чего не имею. Ну и JSON несколько больше будет весить.
Анализ займет некоторую часть времени неделю наверное. По результатам отпишусь либо сюда, либо статью создам (правда боюсь заминусуют).
Анализ занял (непосредственно анализ PVS) 3 часа. Было выявлено 120 — Level 1 Warning, 159 — Level 2, 280 — Level 3. Многие ошибки повторяются — одна и та же ошибка расслаивается на несколько строчек (т.е. ошибка одна, но в логе выдается что их несколько). Анализировать очень сложно из-за триальности нет навигации по коду, конкретное место ошибки не подсвечивается. В Level 3 Warning львиная доля V001 ошибок — не возможно анализировать исходник.
Напишите что Вам особенно интересно от меня, постараюсь учесть в своем отчете.
Вы были правы, после добавления полных путей (к каждой под паке из папки include) все завелось. Запустил жду эффекта, уже парочка варнингов есть. Спасибо Вам.
Не заработало. Я прописал в VC++ Directories C:\Qt\src\include. В сообщениях об ошибках он пишет что не может обнаружить файл QWidget или QObject. Но ведь это не совсем верно, инклюд в исходниках выглядит так #include или #include . Т.е. на самом деле QWidget это не файл, он должен ссылаться например на QtGui\QWidget.h который естественно есть в C:\Qt\src\include\QtGui\QWidget.h. Мне кажется в этом проблема. С новыми изменениями студия по прежнему успешно компилит проект. Будет свободное время — попробую на qt example запустить анализатор, может все же у меня проблема.
Рапортую о проблеме. Раньше свой проект я компилировал gcc, ради Вашего анализатора я убил несколько часов и теперь проект на ура компилируется студией (отдельное спасибо, наконец заставил себя сделать это). Тем не менее запуск анализатора (PVS-Studio->Check Solution) ничего не дает. Мой проект использует Qt, в логах анализатора я вижу только:
02 ../SomeFile.h(11): fatal error C1083: Cannot open include file: 'QWidget': No such file or directory moc_SomeFile.cpp 1 False
Всего 269 ошибок о том что невозможно открыть файл относящейся к сырцам Qt (мне не понятно зачем это) и больше никакой ошибки или предупреждения. Беглый осмотр настроек PVS не выявил возможности задать/отключить инклюды. Возможно я не попадаю под use case. Внесите ясность ;)
Сори не дописал (ctrl+enter подвел)…
compiz-fusion-plugins-extra
compiz-fusion-plugins-main
Действую согласно документации:
Выбираю окно жму <super (win)> + s (ничего не происходит)
Выбираю второе окно жму <super (win)> + s (ничего не происходит)
Жму <super (win)> + g (ничего не происходит)
Пробовал всяко разно — результат один. Компиз включен на максимум (окна плющит при перетаскивании).
Прочитал, все должно работать, но не работает.
Моя система Ubuntu 9.10 — Karmic Koala.
У меня установлены следующие плагины compiz (из репозитария):
compiz-fusion-plugins-extra
Это слишком абстрактно, понять как это применять очень мне сложно. Из введения я уяснил что существует концепция бизнесс-процесса.
Примеры бизнес-процессов: обработка входящего письма, обработка исходящего документа, ознакомление с документом, создание шестеренки, расчет заработной платы для сотрудника, оформление отпуска, оформление командировки и т.д.
Помимо этого, как я понял, существует язык стандартизации сервисов (BEPL, BPM). Фактически сервис можно считать модулем выполняющим какую-то свою задачу, неким черным ящиком (например программа написаная на Java, которая фиксирует время прихода — ухода работника с работы), способ взаимодействия с которым как раз и описывается через стандартизирующий язык.
После того как мы имеем n-реализованных модулей, мы можем в более абстрактной среде, возможно визуальной, устанавливать взаимосвязи между этими модулями реализуя бизнесс процесс.
На примере расчета з/п: сервис определяющий кол-во часов потраченных на работу -> сервис определения ставки -> сервис определения премии -> сервис перевода денег на счет работника. Задача бухгалтера зайти на сайт и нажать кнопку выплаты зарплаты :)
Такое мое примитивное представление, и если это так, то в моей концепции workflow framework это способ стандартизировать взаимодействие сервисов. Т.е. это язык стандартизации и различные способы организации цепочки вызовов. Это так? А если это так, не понятно причем тут hibernate, spring и прочие, в моей концепции workflow framework как раз ничего о них не ведает, все возложено на сервисы.
Отлично, maven это поддерживает… ну почти отлично: он почти поддерживает.
Как верно подмечено, столько подводных камней сколько в мейвене не видел еще ни где.
В принципе после третей статьи становится более менее понятно что же такое Gradle.
Вопрос практический, насколько сложно в Gradle описать скрипт который автоматически меняет определенный параметр в конфигурационном файле? Допустим web-inf/app.properties содержится флаг production: false; При сборке war необходимо поменять на true, насколько это будет сложно/просто?
Простите за темность, но что такое workflow framework и зачем он нужен. Даже родная википедия умалчивает. Если не сложно расскажите подробнее use case, можно отправить и к мануалам только со сылочками пожалуйста.
Вы правы, однако для таких мастодонтов как С++, C#, Java вряд ли стоит ожидать упадка востребованности хоть в какой-то ближайшей перспективе ИМХО. Потому из этой тройки, как мне кажется, можно позволить себе то что больше нравится.
Хотя на все еще влияет окружающая среда, скажем у нас в городе востребованы по большей части Delphi программисты :)
Разберите пожалуйста, мне очень интересно (можно в личку), я люблю работать над собой и эта была моя основная мысль, а не то что я доктор «Хаус». И я не сомневаюсь что Вы поняли мою основную мысль.
И да я не профессионал в C#, но аналогии я проводить еще могу и логически мыслить тоже ;)
Мне кажется у автора некоторый комплекс развивается. Кажется многие программисты этим страдают. Внутри у всех бьется мысль — а если я ошибся, а если мой язык программирования не так хорош (а если С++ лучше, а если Java ...) Мне кажется тогда рождаются такие статьи которые пытаются прикрыть — перекричать какие-то изъяны технологии надуманные или нет. И вот что я скажу — нужно смотреть правде в глаза, лучше понять проблемы конкретной технологии и обратить это в плюс, а не прятаться. Даже я — не профессионал никогда не писавший на C# (Java && C++) вижу что аргументы слабы, а много где и спорны. Что толку кричать нет это миф! это миф! CLR так же быстра как и С++, ну господи, просто программируй кто не дает-та, чо ходить обращать в свою веру — не надо. Я вот с Java на С++ перешел — и не описуемо счастлив.
>>А почему эти срабатывания ложные? Можно пару примеров кода?
>> Хм… Не знаю, что у вас за проект, но вам не кажется, что такие вещи как размер отступов желательно вынести в некий шаблон или, возможно, в описание стиля, подобное CSS? Во всяком случае отделить от кода. Иначе могут начаться проблемы при попытке поддержать различные скины или лэйауты.
Так и есть многое в CSS находится, но некоторые вещи в CSS сделать не удалось поэтому кое где эта проблема осталась. Плюс по этому предупреждению находятся и константы не отказываться же от констант совсем.
Да я думал об этом, но тогда меняется жизненный цикл объекта QHessian::QHessianMethodCall — он должен существовать пока идет взаимодействие (ожидание данных с сервера), а в принятом мной варианте этот объект можно создовать в стеке.
Анализ занял (непосредственно анализ PVS) 3 часа. Было выявлено 120 — Level 1 Warning, 159 — Level 2, 280 — Level 3. Многие ошибки повторяются — одна и та же ошибка расслаивается на несколько строчек (т.е. ошибка одна, но в логе выдается что их несколько). Анализировать очень сложно из-за триальности нет навигации по коду, конкретное место ошибки не подсвечивается. В Level 3 Warning львиная доля V001 ошибок — не возможно анализировать исходник.
Напишите что Вам особенно интересно от меня, постараюсь учесть в своем отчете.
Всего 269 ошибок о том что невозможно открыть файл относящейся к сырцам Qt (мне не понятно зачем это) и больше никакой ошибки или предупреждения. Беглый осмотр настроек PVS не выявил возможности задать/отключить инклюды. Возможно я не попадаю под use case. Внесите ясность ;)
compiz-fusion-plugins-extra
compiz-fusion-plugins-main
Действую согласно документации:
Выбираю окно жму <super (win)> + s (ничего не происходит)
Выбираю второе окно жму <super (win)> + s (ничего не происходит)
Жму <super (win)> + g (ничего не происходит)
Пробовал всяко разно — результат один. Компиз включен на максимум (окна плющит при перетаскивании).
Моя система Ubuntu 9.10 — Karmic Koala.
У меня установлены следующие плагины compiz (из репозитария):
compiz-fusion-plugins-extra
Помимо этого, как я понял, существует язык стандартизации сервисов (BEPL, BPM). Фактически сервис можно считать модулем выполняющим какую-то свою задачу, неким черным ящиком (например программа написаная на Java, которая фиксирует время прихода — ухода работника с работы), способ взаимодействия с которым как раз и описывается через стандартизирующий язык.
После того как мы имеем n-реализованных модулей, мы можем в более абстрактной среде, возможно визуальной, устанавливать взаимосвязи между этими модулями реализуя бизнесс процесс.
На примере расчета з/п: сервис определяющий кол-во часов потраченных на работу -> сервис определения ставки -> сервис определения премии -> сервис перевода денег на счет работника. Задача бухгалтера зайти на сайт и нажать кнопку выплаты зарплаты :)
Такое мое примитивное представление, и если это так, то в моей концепции workflow framework это способ стандартизировать взаимодействие сервисов. Т.е. это язык стандартизации и различные способы организации цепочки вызовов. Это так? А если это так, не понятно причем тут hibernate, spring и прочие, в моей концепции workflow framework как раз ничего о них не ведает, все возложено на сервисы.
Как верно подмечено, столько подводных камней сколько в мейвене не видел еще ни где.
В принципе после третей статьи становится более менее понятно что же такое Gradle.
Вопрос практический, насколько сложно в Gradle описать скрипт который автоматически меняет определенный параметр в конфигурационном файле? Допустим web-inf/app.properties содержится флаг production: false; При сборке war необходимо поменять на true, насколько это будет сложно/просто?
Хотя на все еще влияет окружающая среда, скажем у нас в городе востребованы по большей части Delphi программисты :)
А чем спросить то? Мой пост вещь в себе, вопросов не имею :)
И да я не профессионал в C#, но аналогии я проводить еще могу и логически мыслить тоже ;)