Здравствуйте AndrewVK, Вы писали:
AVK>Правильно мыслишь. Одной из особенностей шарпа является легкость компиляции и reverse engoneering. Так что думают.
Ха, одна фича шарпа — препроцессор — делает reverse engineering шарпа намного сложнее reverse engineering'а жавы.
Re[3]: На тему идеальной среды разработки программ
Здравствуйте Znow, Вы писали:
Z>Visual Assist — это типа когда набираешь ".", а он тебе список членов? Я его завсегда отключаю, он у меня непрестанно приводит к тому, что студия закрывается без всякой ругани и предупреждений. Была студия, нажали ".", нет студии (и плодов часового труда).
Неа, эта штука называется intelli-sence.
Z>Нет, язык нужно создавать именно с точки зрения удобства человека. Язык, удобный для человека, действительно будет проще в разборе, и Си-шарп, насколько я с ним знаком, тому пример. А вот с шаблонами — ей-богу — надо что-то придумывать... В Си++ они пишутся несложно, покуда они сами не сложны, а вот потом начинается песня... Такой синтаксис сохранять нельзя, это мое исключительно скромное мнение. В частности, что бы там ни говорили, нужны средства для описания моделей, которым должны удовлетворять параметры шаблона.
Насчет шаблонов, не такая это и простая вещь: MS их даже в VC7 толком не реализовали, и когда "начинается песня" приходится либо отказываться от шаблонов, либо переходить на IC6
Вот они и не стали их в До-бемоль добавлять, т.к. поняли, что безнадежно
А описания моделей (в STL их кажется концептами называют) параметров шаблонов, это так и так надо делать (правда, пока только в документации).
Вообще, люблю шаблоны я, но странною любовью С одной стороны они инстанциируются только по мере надобности, что хорошо, а с другой — бага выявится только после инстанциации, которая производится по мере надобности, т.е. иногда через несколько месяцев после того, как шаблон был написан. Вот gcc в этом смысле построже ms- и intel-овских компилляторов, но проект который делался в VS им не проверишь...
Кр-ть — с.т.
Re[4]: На тему идеальной среды разработки программ
Здравствуйте Znow, Вы писали:
Z>Антецедент и консеквент — это условия, которые должны выполняться соответственно перед входом и по выходе из некоторого участка кода.
Z>Их формальная запись помогает контролировать верность кода (в частности, что ничего из требований не забыто)
Если я правильно понял, то это то же самое, что pre- и postconditions в контрактном проэктировании (DBC)? Если да, то это уже реализовано, например, в Eiffel. Кстати, он и для .NET имеется (не знаю, правда, с шаблонами или нет).
Кр-ть — с.т.
Re[4]: На тему идеальной среды разработки программ
Здравствуйте Atilla, Вы писали:
A>Здравствуйте Znow, Вы писали:
Z>>Visual Assist — это типа когда набираешь ".", а он тебе список членов? Я его завсегда отключаю, он у меня непрестанно приводит к тому, что студия закрывается без всякой ругани и предупреждений. Была студия, нажали ".", нет студии (и плодов часового труда).
A>Неа, эта штука называется intelli-sence.
Вы путаете — intellisence — это встроенное в VS средство, довольное простое и часто ошибается.
Visual Assist — это гораздо более мощное стороннее (3rd party) средство.
A><...>С одной стороны они инстанциируются только по мере надобности, что хорошо, а с другой — бага выявится только после инстанциации, которая производится по мере надобности, т.е. иногда через несколько месяцев после того, как шаблон был написан.
Используйте регрессионные тесты, где в тестовом файле первым делом делается явная инстанцирование шаблона:
template blah<...>;
Тогда по-крайней мере у вас будет скомпилирован весь код шаблона. Для полноты проверки — используйте несколько инстанциаций с разными типами (если имеет смысл конечно), со встроенными, пользовательскими, указателями и шаблонными. Тогда через месяц вы не будете удивлены, что впервые использованный метод не компилируется. Хорошо еще, если разработчик этого шаблона до сих пор работает в компании...
Янус 1.0 alpha 8: Orangy
"Develop with pleasure!"
Re[5]: На тему идеальной среды разработки программ
Здравствуйте orangy, Вы писали:
O>Вы путаете — intellisence — это встроенное в VS средство, довольное простое и часто ошибается. O>Visual Assist — это гораздо более мощное стороннее (3rd party) средство.
Вот уж не знал, спасибо. А оно намного лучше?
A>><...>С одной стороны они инстанциируются только по мере надобности, что хорошо, а с другой — бага выявится только после инстанциации, которая производится по мере надобности, т.е. иногда через несколько месяцев после того, как шаблон был написан. O>Используйте регрессионные тесты, где в тестовом файле первым делом делается явная инстанцирование шаблона: O>
O>template blah<...>;
O>
O>Тогда по-крайней мере у вас будет скомпилирован весь код шаблона. Для полноты проверки — используйте несколько инстанциаций с разными типами (если имеет смысл конечно), со встроенными, пользовательскими, указателями и шаблонными. Тогда через месяц вы не будете удивлены, что впервые использованный метод не компилируется. Хорошо еще, если разработчик этого шаблона до сих пор работает в компании...
Это, конечно, вариант, но зачастую шаблон разрабатывается не для стандартных (и не для произвольных) типов. Некоторая часть интерфейса шаблона пишется с запасом, она использует такие члены типов-параметров, которые пока еще ни один класс не реализовывает и т.д.
Кр-ть — с.т.
Re[6]: На тему идеальной среды разработки программ
Здравствуйте Atilla, Вы писали:
A>Здравствуйте orangy, Вы писали:
O>>Вы путаете — intellisence — это встроенное в VS средство, довольное простое и часто ошибается. O>>Visual Assist — это гораздо более мощное стороннее (3rd party) средство. A>Вот уж не знал, спасибо. А оно намного лучше?
Вы ёрничаете?
A>Это, конечно, вариант, но зачастую шаблон разрабатывается не для стандартных (и не для произвольных) типов. Некоторая часть интерфейса шаблона пишется с запасом, она использует такие члены типов-параметров, которые пока еще ни один класс не реализовывает и т.д.
Это интересно, а почему такой странный метод проектирования? Расскажите подробнее, пожалуйста.
"Develop with pleasure!"
Re[7]: На тему идеальной среды разработки программ
да нет, просто раньше про эту Visual Assist ничего не слышал.
A>>Это, конечно, вариант, но зачастую шаблон разрабатывается не для стандартных (и не для произвольных) типов. Некоторая часть интерфейса шаблона пишется с запасом, она использует такие члены типов-параметров, которые пока еще ни один класс не реализовывает и т.д. O>Это интересно, а почему такой странный метод проектирования? Расскажите подробнее, пожалуйста.
Да нет, проектирование-то обычное:
проектируются сразу классы A, B, C, шаблон D<T> и много других классов, где в качестве параметра шаблона можно использовать первые 3 класса, но только с последним шаблон можно будет использовать в полную силу (все методы, например). Ну а программировать в порядке: A, D<>, отладка D<A>, B, отладка D<B>, E, F, G, H ..... и через год — C и отладка D<C>