Re[26]: Куда девать ф-ции внешние для класса
От: IB Австрия http://rsdn.ru
Дата: 25.07.08 08:39
Оценка:
Здравствуйте, Ziaw, Вы писали:

Z>Т.е. был поставлен эксперимент? Можно узнать подробности?

Просто пишется продакшн код.

Z>Точные данные по трудозатратам на редизайн.

Зачем редизайн? Так пишется с самого начала.

Z>Точные данные сэкономленого времени на порог вхождения.

Репорты из QA отдела.
Вообще в нашей кампании проблема порога вхождения решается очень просто. Любой новый человек на проекте должен сдать экзамен, в том числе и на знание библиотк. Это правило введено очень давно, еще матерыми C++-ками, которые писали как раз в любимом вами стиле, с кучей методов в классе засунутых туда с "использованием здравого смысла".
Проблему нахождения нужного метода и знания того, что в принципе библиотека умеет, а что нет — решается на корню, при любом раскладе.

Z>Давай так, каждый выберет пример библиотеки реализованой по удобной ему идеологии и попытаемся их сравнить.

Да практически каждая вторая Явовская библиотека так пишется. Из .Net-овских, например, WCF — там порог вхожждения высокий, но это с предметной областью связано, которая сама по себе не простая.
... << RSDN@Home 1.2.0 alpha rev. 673>>
Мы уже победили, просто это еще не так заметно...
Re[3]: Куда девать ф-ции внешние для класса
От: IB Австрия http://rsdn.ru
Дата: 25.07.08 08:39
Оценка:
Здравствуйте, stump, Вы писали:

S>Так вот откуда ноги растут у "железного правила"

Ноги у него растут так же из Саттера, Александресу и Мак-конела, практики, и, прости господи, "здравого смысла".

S>Дело в том, что во-первых правило Мейерса сформулировано не столь категорично как "железное правило Бодягина".

Где ты категоричность нашел?

S>В общем, как тут уже говорили "использование правил не отменяет использование головы".

А кто говорил, что отменяет? Можно цитату?

Итого:
Само правило вам не нравится, но логичных аргументов, почему оно может не работать, так придумать и не получилось. Осталось только обвинить меня в догматизме и слепом следовании правилу. =)
Можно констатировать ярчайший пример демагогии со стороны противников "правила" и закрыть тему.
... << RSDN@Home 1.2.0 alpha rev. 673>>
Мы уже победили, просто это еще не так заметно...
Re[25]: Куда девать ф-ции внешние для класса
От: IB Австрия http://rsdn.ru
Дата: 25.07.08 08:39
Оценка:
Здравствуйте, Ziaw, Вы писали:

Z>Про лучше/хуже говорят остальные пункты.

Причем тут остальные пункты? Это очевидный плюс, никак не зависящий от остальных пунктов.

Z>Насчет предпочел не понял, вроде не было ограничения либо/либо.

Если бы они были, то специальная конструкция была бы лишней.

Z>Вместе с моком? Какая разница как передавать мок? Как this или параметром?

Речь не пр this, а про то, куда девать функцию содержащую сам алгоритм реализации.
... << RSDN@Home 1.2.0 alpha rev. 673>>
Мы уже победили, просто это еще не так заметно...
Re[25]: Куда девать ф-ции внешние для класса
От: IB Австрия http://rsdn.ru
Дата: 25.07.08 08:39
Оценка: -2
Здравствуйте, adontz, Вы писали:

A>Как можно аргументированно опровергать чьи-то галлюцинации?

Ром, каждый раз, когда общаюсь с тобой — сталкиваюсь с этой проблемой..
Обычно удается, но озлобляет страшно — приходится опускаться до твоего уровня. =)
... << RSDN@Home 1.2.0 alpha rev. 673>>
Мы уже победили, просто это еще не так заметно...
Re[23]: Куда девать ф-ции внешние для класса
От: IB Австрия http://rsdn.ru
Дата: 25.07.08 08:39
Оценка:
Здравствуйте, adontz, Вы писали:

A>Видимо ты совсем не понимаешь, что возможности применения правила и оправданность применения правила суть разные вещи.

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

A>Это уже ты придумал, что что-то приноситься в жертву.

Я не придумал, я подробно, и не раз, расписал почему так происходт, тебе лень прочитать?

A> А тезис не спортный, библиотека одна, приложений много.

И какова при таком раскладе цена ошибки в библиотеке?

A>Об этом уже говорили, но ты, видимо, пропустил.

Нет, Ром, это ты пропустил, что я целиком согласен с этим тезисом, так как он подтверждает мою позицию..

A>Я хотел сказать что твой или ещё какой-то рейтинг принципиально ничуть не осмысленнее чем LOC/day и его область применения узка.

Ты уж определись, LOC — бессмысленен или узок? =)

A>Глупости, связность никак не увеличилась,

Учи домашнее задание, тема — наследование..
... << RSDN@Home 1.2.0 alpha rev. 673>>
Мы уже победили, просто это еще не так заметно...
Re[25]: Куда девать ф-ции внешние для класса
От: IB Австрия http://rsdn.ru
Дата: 25.07.08 08:39
Оценка:
Здравствуйте, adontz, Вы писали:

A> Это проблема и я её решаю за счёт partial классов. Нет, конечно я не отказался от хелперов совсем, просто есть и другие пути.

Еще более кривые..
... << RSDN@Home 1.2.0 alpha rev. 673>>
Мы уже победили, просто это еще не так заметно...
Re[4]: Куда девать ф-ции внешние для класса
От: stump http://stump-workshop.blogspot.com/
Дата: 25.07.08 08:59
Оценка: 2 (1) +1 -2
Здравствуйте, IB, Вы писали:

IB>Итого:

IB>Само правило вам не нравится, но логичных аргументов, почему оно может не работать, так придумать и не получилось. Осталось только обвинить меня в догматизме и слепом следовании правилу. =)
IB>Можно констатировать ярчайший пример демагогии со стороны противников "правила" и закрыть тему.

Опять по существу ничего ответить не нашлось.
Ну тогда тебе только и остается констатировать — все, что несоответствует правилу Бодягина есть демагогия.
Понедельник начинается в субботу
Re[27]: Куда девать ф-ции внешние для класса
От: Ziaw Россия  
Дата: 25.07.08 10:27
Оценка: +1
Здравствуйте, IB, Вы писали:

IB>Здравствуйте, Ziaw, Вы писали:


Z>>Т.е. был поставлен эксперимент? Можно узнать подробности?

IB>Просто пишется продакшн код.
IB>Репорты из QA отдела.
Раз все идет хорошо, значит наш путь единственно верный? Таким образом доказывается только то, что этот путь не убивает проект. Как и многие другие.

Z>>Точные данные по трудозатратам на редизайн.

IB>Зачем редизайн? Так пишется с самого начала.
хорошо, примем за 0.

IB>Вообще в нашей кампании проблема порога вхождения решается очень просто. Любой новый человек на проекте должен сдать экзамен, в том числе и на знание библиотк. Это правило введено очень давно, еще матерыми C++-ками, которые писали как раз в любимом вами стиле, с кучей методов в классе засунутых туда с "использованием здравого смысла".

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

Z>>Давай так, каждый выберет пример библиотеки реализованой по удобной ему идеологии и попытаемся их сравнить.

IB>Да практически каждая вторая Явовская библиотека так пишется. Из .Net-овских, например, WCF — там порог вхожждения высокий, но это с предметной областью связано, которая сама по себе не простая.
Походу мне попадались каждые первые, впрочем я не знаток явовских библиотек, можно ткнуть пальцем?

WCF тут непонятно каким боком.
Где там преобладание статик хелперов?
Все что я помню из статиков в WCF является либо синглтоном либо фабрикой.

Uri baseAddress = new Uri("http://localhost:8000/HelloService");
string address = "http://localhost:8000/HelloService/MyService";

using (ServiceHost serviceHost = new ServiceHost(typeof(HelloService), baseAddress))
{
    serviceHost.AddServiceEndpoint(typeof(IHello), new BasicHttpBinding(), address);
    serviceHost.Open();
    Console.WriteLine("Press <enter> to terminate service");
    Console.ReadLine();
    serviceHost.Close();
}


Как результат — порог вхождения у него ниже некуда. Можно не сдавая экзаменов по WCF (да и вообще первый раз увидев эту библиотеку) через 15 минут получить работающее сетевое приложение.
... << RSDN@Home 1.2.0 alpha 4 rev. 0>>
Re[26]: Куда девать ф-ции внешние для класса
От: Ziaw Россия  
Дата: 25.07.08 10:34
Оценка: :)
Здравствуйте, IB, Вы писали:

IB>Здравствуйте, Ziaw, Вы писали:


Z>>Про лучше/хуже говорят остальные пункты.

IB>Причем тут остальные пункты? Это очевидный плюс, никак не зависящий от остальных пунктов.

Толковый словарь русского языка Ушакова

ОЧЕВИ'ДНЫЙ, ая, ое; -ден, дна, дно.
1. Несомненный, бесспорный, такой явный, что можно убедиться собственными глазами. Очевидная истина. Это — очевидное недоразумение. О. промах. В ней произошла перемена — это было очевидно. Тргнв. Очевидна цель его объяснений — успокоить меня. Чрншвскй. [Первонач. заметный, видимый взору. Сундуки его полнели очевидно. Крлв.] 2. Видевший своими глазами, являющийся очевидцем (старин.). Очевидные свидетели.

Судя по ветке, не плюс явно не бесспорный.

Z>>Насчет предпочел не понял, вроде не было ограничения либо/либо.

IB>Если бы они были, то специальная конструкция была бы лишней.
Если бы они были, они бы имели доступ к приватным членам и ничем не отличались бы от обычного метода.

Z>>Вместе с моком? Какая разница как передавать мок? Как this или параметром?

IB>Речь не пр this, а про то, куда девать функцию содержащую сам алгоритм реализации.
Нить куда-то пропала, я пожалуй восстановлю:

IB>4. Проще тестировать методы, вместо прямоугольника можно спокойно подпихнуть mock.

Z>Что мешает мокать при вызове собственных методов?
IB>Методы придется тестировать вместе с классом, а так можно по отдельности.
Z>Вместе с моком? Какая разница как передавать мок? Как this или параметром?
IB>Речь не пр this, а про то, куда девать функцию содержащую сам алгоритм реализации.
Если имеется ввиду расположение тестов — их можно располагать где угодно, если имеется нечто другое — не пойму что.
... << RSDN@Home 1.2.0 alpha 4 rev. 0>>
Re[26]: Куда девать ф-ции внешние для класса
От: adontz Грузия http://adontz.wordpress.com/
Дата: 25.07.08 11:11
Оценка: -1
Здравствуйте, IB, Вы писали:

IB>Обычно удается, но озлобляет страшно — приходится опускаться до твоего уровня. =)


Ещё ра говорю, мужчина, вы шкалу вверх тормашками держите.
A journey of a thousand miles must begin with a single step © Lau Tsu
Re[26]: Куда девать ф-ции внешние для класса
От: adontz Грузия http://adontz.wordpress.com/
Дата: 25.07.08 11:12
Оценка:
Здравствуйте, IB, Вы писали:

A>> Это проблема и я её решаю за счёт partial классов. Нет, конечно я не отказался от хелперов совсем, просто есть и другие пути.

IB>Еще более кривые..

Сомнительно, я ведь использую все возможности языка, а ты помешался на конкретных.
A journey of a thousand miles must begin with a single step © Lau Tsu
Re[28]: Куда девать ф-ции внешние для класса
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 25.07.08 11:18
Оценка:
Здравствуйте, Ziaw, Вы писали:

Z>Где там преобладание статик хелперов?


Там не статик хелперы, там DI.

Z>Как результат — порог вхождения у него ниже некуда.


Это не тот порог. Чтобы написать простенький код — да, скопировал пример и вперед. А вот если нужно понимать, что происходит (а это обязательное условие, если ты это применяешь в серьезном проекте) — вот тут все становится сразу печально.
... << RSDN@Home 1.2.0 alpha 4 rev. 1095 on Windows Vista 6.0.6001.65536>>
AVK Blog
Re[27]: Куда девать ф-ции внешние для класса
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 25.07.08 11:18
Оценка: +1 :)
Здравствуйте, adontz, Вы писали:

A>Сомнительно, я ведь использую все возможности языка, а ты помешался на конкретных.


Рома, очень тебя прошу, заканчивай с психоанализом. Еще одной ветки про синглтон я не выдержу
... << RSDN@Home 1.2.0 alpha 4 rev. 1095 on Windows Vista 6.0.6001.65536>>
AVK Blog
Re[24]: Куда девать ф-ции внешние для класса
От: adontz Грузия http://adontz.wordpress.com/
Дата: 25.07.08 11:23
Оценка: +1
Здравствуйте, IB, Вы писали:

IB>Однако, очевидно, его не применение приводит к еще худшим последствиям.


Не очевидно и ты не описываешь почему. Значит догматик.

IB>Еще примеры неоправданности будут?


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

IB>Я не придумал, я подробно, и не раз, расписал почему так происходт, тебе лень прочитать?


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

A>> А тезис не спортный, библиотека одна, приложений много.

IB>И какова при таком раскладе цена ошибки в библиотеке?

Дело не в цене ошибки, это ещё одна твоя абстрактная характеристика. Дело в том, что усложнение библиотеки дешевле усложнения приложений, посколько количество сложных мест уменьшается с N до 1, а значит усложнение библиотек оправданно по определению.

A>>Я хотел сказать что твой или ещё какой-то рейтинг принципиально ничуть не осмысленнее чем LOC/day и его область применения узка.

IB>Ты уж определись, LOC — бессмысленен или узок? =)

Не перевирай чужие слова. "не осмысленнее чем LOC/day" и "бессмысленнее" это разные вещи. Учи русский язык. LOC может быть осмысленен только в очень узкой области и с большими оговорками.

A>>Глупости, связность никак не увеличилась,

IB>Учи домашнее задание, тема — наследование..

Я к тебе в класс не пойду, там скучно.
A journey of a thousand miles must begin with a single step © Lau Tsu
Re[28]: Куда девать ф-ции внешние для класса
От: adontz Грузия http://adontz.wordpress.com/
Дата: 25.07.08 11:24
Оценка: :)
Здравствуйте, AndrewVK, Вы писали:

A>>Сомнительно, я ведь использую все возможности языка, а ты помешался на конкретных.

AVK>Рома, очень тебя прошу, заканчивай с психоанализом. Еще одной ветки про синглтон я не выдержу

Это та, где Бодягин утверждал, что количество результатов работы функции всегда равно количеству разных комбинаций значений её параметров? Да, да, я согласен, этот бред лучше не повторять.
A journey of a thousand miles must begin with a single step © Lau Tsu
Re[29]: Куда девать ф-ции внешние для класса
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 25.07.08 11:29
Оценка:
Здравствуйте, adontz, Вы писали:

AVK>>Рома, очень тебя прошу, заканчивай с психоанализом. Еще одной ветки про синглтон я не выдержу


A>Это та, где Бодягин утверждал, что количество результатов работы функции всегда равно количеству разных комбинаций значений её параметров? Да, да, я согласен, этот бред лучше не повторять.


Главное предложение было первым.
... << RSDN@Home 1.2.0 alpha 4 rev. 1095 on Windows Vista 6.0.6001.65536>>
AVK Blog
Re[28]: Куда девать ф-ции внешние для класса
От: IB Австрия http://rsdn.ru
Дата: 25.07.08 12:15
Оценка:
Здравствуйте, Ziaw, Вы писали:

Z>Раз все идет хорошо, значит наш путь единственно верный?

Я где-то утверждал, что он единственно верный? Ты меня ни с кем не путаешь?

Z>Т.е. проблема порога решается просто обрубанием той части людей которые о него споткнулись.

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

Z>Походу мне попадались каждые первые, впрочем я не знаток явовских библиотек, можно ткнуть пальцем?

Любой IoC контейнер, коих в яве до попы.

Z>WCF тут непонятно каким боком. Где там преобладание статик хелперов?

Блинский фиг. Я не тебе что ли объяснял, и, как мне казалось, вроде бы сумел объяснить, что в 99% случаев статик хелперы превращаются в DI сервисы?

Z>Все что я помню из статиков в WCF является либо синглтоном либо фабрикой.

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

Z>Можно не сдавая экзаменов по WCF (да и вообще первый раз увидев эту библиотеку) через 15 минут получить работающее сетевое приложение.

Правильно, благодаря грамотно составленной документации и куче ресурсов в инете. Так самый кривой на свете API можно заставить с демопримером работать.
... << RSDN@Home 1.2.0 alpha rev. 673>>
Мы уже победили, просто это еще не так заметно...
Re[27]: Куда девать ф-ции внешние для класса
От: IB Австрия http://rsdn.ru
Дата: 25.07.08 12:15
Оценка:
Здравствуйте, Ziaw, Вы писали:

Z>Судя по ветке, не плюс явно не бесспорный.

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

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

С какого перепугу?!они бы имели доступ к приватным переменным своего класса, но ни как не того класса, который расширяют.

Z>Если имеется ввиду расположение тестов — их можно располагать где угодно, если имеется нечто другое — не пойму что.

Если у тебя метод находится в классе и в своей реализации обращается к членам этого класса, то тестировать его можно только вмест с этим классом, и mock ты туде не подсунешь.
... << RSDN@Home 1.2.0 alpha rev. 673>>
Мы уже победили, просто это еще не так заметно...
Re[25]: Куда девать ф-ции внешние для класса
От: IB Австрия http://rsdn.ru
Дата: 25.07.08 12:15
Оценка: -1
Здравствуйте, adontz, Вы писали:

A>Не очевидно

Очевидно.

A> и ты не описываешь почему.

Ты не потрудился прочитать?

A> Значит догматик.

"Рома — ты не адекватен" (с) IT =)

A>Я не могу показывать разницу между красным и синим слепому.

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

A>Мне не лень я перечитал весь топик и ты ни разу не привёл конкретного примера.

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

A>Дело не в цене ошибки,

То есть, на ошибки библиотеки тебе наплевать? Очень удобная позиция. .

A>это ещё одна твоя абстрактная характеристика.

У меня все характеристики, как легко заметить, очень конкретные..

A>Не перевирай чужие слова.

Рома!! От тебя ли я это слышу??!

A>LOC может быть осмысленен только в очень узкой области и с большими оговорками.

То есть, Project Management — это узкая область? Нормально ты их приложил, молодец..

A>Я к тебе в класс не пойду, там скучно.

Так и останешься двоечником?..
... << RSDN@Home 1.2.0 alpha rev. 673>>
Мы уже победили, просто это еще не так заметно...
Re[27]: Куда девать ф-ции внешние для класса
От: IB Австрия http://rsdn.ru
Дата: 25.07.08 12:15
Оценка:
Здравствуйте, adontz, Вы писали:

A>Сомнительно, я ведь использую все возможности языка,

Ты бессмыслено и беспощадно используешь все возможности языка.
А ведь некоторые говорят, что Nemerle безопасен, вот Роме бы я его не доверил, глядя что он с шарпом творит..

A>а ты помешался на конкретных.

Я просто использую их к месту.
... << RSDN@Home 1.2.0 alpha rev. 673>>
Мы уже победили, просто это еще не так заметно...
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.