LINUX.ORG.RU

Исследование качества структуры открытых проектов на Java.


0

0

Сегодня в рассылке JEdit пришло интересное письмо от студента из Университета Auckland (Новая Зеландия). В нем он утверждает, что провел большое исследование открытых проектов на Java (таких как Eclipse, Netbeans, Ant, Tomcat, JMeter, POI и других) на "качество дизайна" программ (quality of a program's internal structure). Результаты получились довольно интересными.

>>> Подробности

★★★★★

Проверено: Shaman007 ()

Зачот студенту

anonymous
()

>Результаты получились довольно интересными.

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

К тому же, даже и для сравнимых проектов непонятно, к чему эти гистограммы можно применить: картинка красивее у GlassFish, а производительность выше у Hibernate.

alt-x ★★★★★
()

Бедный студент.. потратил уйму времени на сомнительного результата исследования, не приносящие никому пользы... Чем всегда завидовал студентам - у них есть лишнее драгоценное время заниматься всякого рода ерундой.

JetSnaiL
()
Ответ на: комментарий от JetSnaiL

Такие исследования, ИМХО, отнюдь не ерунда. Они позволяют выявить потенциальные узкие места в системе.

Например вот отрывок из его письма (из рассылки JEdit):

If you are a developer of JEdit you might be interested to know that there are 134 java source files in JEdit all involved in a big dependency cycle (or to use the graph theory term: strongly connected component). Though there are many dimensions to design quality, it is thought long dependency cycles among source files inhibit understanding, testing and reuse.

Вот эти 134 класса могут сильно попортить жизнь при рефакторинге кода и переработке (значительной) функциональности.

kda ★★★★★
() автор топика
Ответ на: комментарий от kda

> Вот эти 134 класса могут сильно попортить жизнь при рефакторинге кода и переработке (значительной) функциональности.

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

anonymous
()
Ответ на: комментарий от kda

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

JetSnaiL
()
Ответ на: комментарий от JetSnaiL

Я же говорю выявляет потенциально узкие места. Вам приходилось работать над крупным ООП-проектом? Легче застрелиться (подчас) чем использовать часть кода из таких жестко связанных проектов. Для примера - попробуйте "выдрать" подсветку из jEdit, поймете о чем я.

kda ★★★★★
() автор топика
Ответ на: комментарий от kda

> Я же говорю выявляет потенциально узкие места. Вам приходилось работать над крупным ООП-проектом? Легче застрелиться (подчас) чем использовать часть кода из таких жестко связанных проектов. Для примера - попробуйте "выдрать" подсветку из jEdit, поймете о чем я.

Нормальный программер сначала продумывает структуру классов и рисует на бумажке дерево наследования. А быдлокодер хватается за клаву и начинает лабать. Результат мы наблюдаем. Удивляться нечему.

anonymous
()
Ответ на: комментарий от anonymous

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

Что, только наследования? А использования, агрегирования, <insert-buzzword-here> ? :) Да и вообще - рисование на бумажке - не панацея. "Гладко было на бумаге..." (С) Не мой

> Результат мы наблюдаем. Удивляться нечему.

ЛЮБОЙ проект может превратится в такой клубок. Тулзень, которую использовал этот студент, может помочь обнаружить и исправить проблему по до того, как она вырастет в полный рост.

tailgunner ★★★★★
()
Ответ на: комментарий от tailgunner

> "Гладко было на бумаге..."

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

> ЛЮБОЙ проект может превратится в такой клубок.

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

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

Тулзень - это средство диагностики, а не профилактики. Т.е. - лечение следствия. Ну лечите, лекари, лечите.

anonymous
()
Ответ на: комментарий от anonymous

>> "Гладко было на бумаге..."

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

8)))) Цитата, кажется, из Л.Н.Толстого :D

> А ещё лучше - чтоб начал один бвдлокодер, продолжит второй, а закончил третий. И каждый последующий ни хера не знает, что делал предыдущий - потому что предыдущий не то что описание структуры - даже комментов в коде не оставил.

Замечательное описание проблемы, но...

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

...кто такие "мы"? ;)

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

>Тулзень - это средство диагностики, а не профилактики. Т.е. - лечение следствия. Ну лечите, лекари, лечите.

Мы и следствия лечим, и причины :) Мы ж реальными конями занимаемся, а не сферическим в вакууме ;)

tailgunner ★★★★★
()
Ответ на: комментарий от tailgunner

> 8)))) Цитата, кажется, из Л.Н.Толстого :D

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

> ...кто такие "мы"? ;)

Те, кто софт пишут на скорую руку и бессистемно.

> Мы и следствия лечим, и причины :) Мы ж реальными конями занимаемся, а не сферическим в вакууме ;)

Ну что тут можно сказать... Они у вас не сферические. Я бы их описал так. Конь начинает лепиться с задней левой конечности. Почему? А потому, что о будущем творении мы достоверно пока знаем только то, что у него точно будет хотя бы одна нога. Какая именно - правая, левая, передняя, задняя - пока не известно. Если что - потом поправим. Ещё знаем, что будет хвост, но пока непонятно, откуда именно он будет произрастать. Естетичнее всего было бы укрепить его на лбу, но заказчик возражает: будет мешать обзору. Завтра попробуем его уговорить - скажем, что хвост можно реализовать самовтягивающимся, как шасси. И т.д.

anonymous
()
Ответ на: комментарий от anonymous

>Стандартное оплавдание лодыря и неудачника. Мля, и ЭТО пишет человек шатающийся по ЛОРу и учащий всех жизни. Твой дом - биореактор.

anonymous
()
Ответ на: комментарий от anonymous

>Ну что тут можно сказать... Они у вас не сферические.

интересно было бы заглянуть в Вашу конюшню.

anonymous
()
Ответ на: комментарий от tailgunner

2 tailgunner :

+1

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

anonymous_IV
()
Ответ на: комментарий от anonymous

>Стандартное оплавдание лодыря и неудачника. Мля, и ЭТО пишет человек шатающийся по ЛОРу и учащий всех жизни. Твой дом - биореактор.

+1

anonymous_IV
()
Ответ на: комментарий от anonymous

> Мля, и ЭТО пишет человек шатающийся по ЛОРу и учащий всех жизни. Твой дом - биореактор.

Похоже, я таки задел быдлокодеров за живое. Значит, признали, что проблема реальная.

anonymous
()
Ответ на: комментарий от anonymous

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

Он наверное совсем псих или пишет только hello worldы.

r ★★★★★
()
Ответ на: комментарий от r

> Он наверное совсем псих или пишет только hello worldы.

А чё, всё остальное в России принято писать бессистемно, лепя ноги и хвосты просто абы как сбоку уже существующей кодовой массы? Ню-ню, продолжайте.

anonymous
()
Ответ на: комментарий от anonymous

>> 8)))) Цитата, кажется, из Л.Н.Толстого :D

>А ты его биографию знаешь?

Да :)

> Лично я его совсем-совсем как личность не уважаю.

Я плакалЪ

> Хотя писАть умел.

Только это и имеет значение.

> Но - медленно. И с седьмой-восьмой попытки.

"Quick, good, cheap - pick any two", так, кажется говорят?

>> ...кто такие "мы"? ;)

>Те, кто софт пишут на скорую руку и бессистемно.

Немедленно прекратите это безобразие! 8)

>> Мы и следствия лечим, и причины :) Мы ж реальными конями занимаемся, а не сферическим в вакууме ;)

>Ну что тут можно сказать... Они у вас не сферические. Я бы их описал так. <skip>

Прикольно. И даже похоже на жизнь - как карикатура на реальное лицо ;)

Никогда не думал, что встречу на LOR апологета waterfall model. К тому же, кажется, молодого - тебе же <= 25лет, так?

tailgunner ★★★★★
()
Ответ на: комментарий от anonymous

> А чё, всё остальное в России принято писать бессистемно

Нет - рисовать иерархию классов на бумажке. Ну нарисуй иерархию классов для проекта в пол миллиона строк.

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

r ★★★★★
()

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

mihalych ★★★
()
Ответ на: комментарий от mihalych

> но иногда дешевле нанять сотню программистов для клепания заплаток над спагетти, чем несколько хороших гуру

Крутые гуру, раз стоят в 20 раз дороже рядового проггера... 8-O

tailgunner ★★★★★
()
Ответ на: комментарий от tailgunner

> Я плакалЪ

Беспричинная слезливость - плохой признак. Советую обратиться к врачу. Значит, по сути возразить нечего? ok.

> Только это и имеет значение.

Для кого?

> "Quick, good, cheap - pick any two", так, кажется говорят?

Не знаю, многие другие по семь раз не переписывали. И ничего, стали знамениты. Или ты тоже свои проекты по 7 раз переписываешь? Ню-ню :) Я предпочитаю сначала подумать, а потом уж хвататься за клаву. Сильно экономит время и силы. Если, конечно, ЕСТЬ ЧЕМ думать.

>> Те, кто софт пишут на скорую руку и бессистемно.

> Немедленно прекратите это безобразие! 8)

Дык ыть я-то и начинал. А вот исследования мало кому известного студента показали: многие так делают. А на ЛОРе этих многих кое-кто ещё и защищает.

> Прикольно. И даже похоже на жизнь - как карикатура на реальное лицо ;)

Я рад, что вы столь самокритичны :)

> Никогда не думал, что встречу на LOR апологета waterfall model. К тому же, кажется, молодого - тебе же <= 25лет, так?

В жизни много неожиданностей :)

anonymous
()
Ответ на: комментарий от anonymous

>> Я плакалЪ

>Беспричинная слезливость - плохой признак.

Причина - умиление. Анонимус с LORа осуждает Л.Н.Толстого, это так трогательно, аж слезы наворачиваются.

>> "Quick, good, cheap - pick any two", так, кажется говорят?

> Не знаю, многие другие по семь раз не переписывали. И ничего, стали знамениты.

Вообще-то Толстого считают великим писателем, а не знаменитым. Другое дело, что переписывание семь раз не гарантирует величия :)

> Или ты тоже свои проекты по 7 раз переписываешь? Ню-ню :) Я предпочитаю сначала подумать, а потом уж хвататься за клаву.

Ты знаешь, я тоже сначала думаю! Но переписывать всё равно приходится 8(, хоть и не семь раз. Моск слабенький, наверное ;(

>>> Те, кто софт пишут на скорую руку и бессистемно.

>> Немедленно прекратите это безобразие! 8)

>Дык ыть я-то и начинал.

Что, никогда-никогда? Тогда по крайней мере не говори "мы". Говори "ты" или "вы", чтобы было ясно, что ты не о себе.

>> Прикольно. И даже похоже на жизнь - как карикатура на реальное лицо ;)

> Я рад, что вы столь самокритичны :)

Да, я такой. А ты? ;)

>> Никогда не думал, что встречу на LOR апологета waterfall model.

> В жизни много неожиданностей :)

Но чтоб такое 8)

>> К тому же, кажется, молодого - тебе же <= 25лет, так?

А на это не ответил? :)

tailgunner ★★★★★
()
Ответ на: комментарий от anonymous

Чучело, ничего кроме хомепаг и шароварных безделиц не писал.

bmc
()
Ответ на: комментарий от anonymous

Это Суворов Александр Васильевич сказал. "... - да забыли про овраги"

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.