Re[26]: Частота ошибок в зависимости от языка: что делать?
От: WolfHound  
Дата: 28.06.05 08:35
Оценка: 26 (3)
Здравствуйте, vdimas, Вы писали:

V>Например, у нас стоит задача эмулировать нечто из фиизики. Я могу вводить обощенные типы-заместители элементарным типам, которые не отберут ни тика в runtime. Затем вводить более конкретные типы, например Velocity, Mass, Time и т.д.


V>Затем могу переопределять глобальные операторы так, чтобы Time * Velocity возвращала тип Distance. Суть понятна?

Тут можно поступить горазо болие цинично.
Определяем одни шаблон
template<class NumType, int Time, int Distance>
struct PhysicType
{
    explicit PhysicType(NumType value)
        :value(value)
    {}
    
    friend PhysicType operator + (PhysicType const& l, PhysicType const &r)
    {
        return PhysicType(l.value + r.value);
    }
    
    friend PhysicType operator - (PhysicType const& l, PhysicType const &r)
    {
        return PhysicType(l.value - r.value);
    }
    
    template<int Time1, int Distance1, int Time2, int Distance2>
    friend PhysicType<NumType, Time1 + Time2, Distance1 + Distance2> operator * (PhysicType<NumType, Time1, Distance1> const& l, PhysicType<NumType, Time2, Distance2> const &r)
    {
        return PhysicType<NumType, Time1 + Time2, Distance1 + Distance2>(l.value * r.value);
    }
    
    template<int Time1, int Distance1, int Time2, int Distance2>
    friend PhysicType<NumType, Time1 - Time2, Distance1 - Distance2> operator / (PhysicType<NumType, Time1, Distance1> const& l, PhysicType<NumType, Time2, Distance2> const &r)
    {
        return PhysicType<NumType, Time1 - Time2, Distance1 - Distance2>(l.value / r.value);
    }
    
private:
    NumType value;
};
typedef PhysicType<float, 1, 0> Time;
typedef PhysicType<float, 0, 1> Distance;
typedef PhysicType<float, -1, 1> Velocity;
typedef PhysicType<float, -2, 1> Acceleration;

Идея я думаю ясна...
... << RSDN@Home 1.1.4 beta 6a rev. 436>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[27]: Частота ошибок в зависимости от языка: что делать?
От: vdimas Россия  
Дата: 28.06.05 10:00
Оценка:
Здравствуйте, WolfHound, Вы писали:

Да, идея прикольная. И расширяемая на другие физические величины.

Правда, выглядеть аналогичный шаблон для 20-ти связанных величин будет страшно, не находишь?

Хотя, сэкономит кучу строк кода.

К тому же, автоматически разгребет ситуацию, типа 2*S/t^2. (т.е. тип промежуточной величины t^2 будет введен самостоятельно, хе).

Спасибо за идею!
Re[28]: Частота ошибок в зависимости от языка: что делать?
От: WolfHound  
Дата: 28.06.05 10:35
Оценка:
Здравствуйте, vdimas, Вы писали:

V>Да, идея прикольная. И расширяемая на другие физические величины.

V>Правда, выглядеть аналогичный шаблон для 20-ти связанных величин будет страшно, не находишь?
Re[12]: В поисках семантической корректности
Автор: WolfHound
Дата: 19.05.05
... << RSDN@Home 1.1.4 beta 6a rev. 436>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[28]: Частота ошибок в зависимости от языка: что делать?
От: VladD2 Российская Империя www.nemerle.org
Дата: 28.06.05 23:46
Оценка:
Здравствуйте, Sinclair, Вы писали:

S>Значит у нас с тобой разные паттерны использования ворда. Мой 2003 конечно падает, но ооочень редко. И с ревиженами он у нас отлично работал (правда, на объемах в пределах 50 страниц). Тока тормозил. А вот ошибок алгоритмического рода в нем великое множество.


Отлично говоришь? Открой документ с 15+ коментариями и правками и попробуй просто добавить кментарий. Погляди как временами глючит окошко со списком коментариев. А если попишешь по дольше то наткнешся на класскую бяку... это окно просто перестает принимать ввод и если пишешь не в слепую, то можно просто потяреть все написанное. Ну, а когда это дело пересикается с ревижонами, то переодически начинаются вылеты.

В общем, тут вопрос в общеме работы с Вордом. Просто мы слишком часто с ним трахаемся, вот и нарываемся на глюки. А на пустом новом документе глюков в общем-то нет.
... << RSDN@Home 1.1.4 beta 7 rev. 466>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[29]: Частота ошибок в зависимости от языка: что делать?
От: Sinclair Россия https://github.com/evilguest/
Дата: 29.06.05 03:10
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>В общем, тут вопрос в общеме работы с Вордом.

Ну прямо мои слова
VD>Просто мы слишком часто с ним трахаемся, вот и нарываемся на глюки. А на пустом новом документе глюков в общем-то нет.
Просто у нас редко бывает 15+ ревижнов. Мы обычно просто включаем track changes и все. При этом вся история никого не интересует; очередной ревьюер просто принимает все те правки, с которыми согласен. Поэтому проблем и не испытываем. Ревижны я как-то пробовал использовать — не понравилось. Документ пухнет со страшной скоростью, а никаких удобств они не добавляют.
... << RSDN@Home 1.1.4 beta 5 rev. 395>>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[21]: Предложения по улучшению
От: ЯпонИц Россия www.yaponiz.com
Дата: 29.06.05 09:38
Оценка:
Здравствуйте, FDSC, Вы писали:

FDS>Дело в том, что компилятор можно вполне научить распознавать нужные ситуации. Знания семантики тут не требуется. Ему нужно только распознать возможные ситуации, а программист сам сделает всё остальное


А ещё его можно научить писать программы по одному лишь ТЗ. Но вот сколько же сил придется вложить в это обучение.
С уважением, Василий. Posted by RSDN@HOME.
Re[30]: Частота ошибок в зависимости от языка: что делать?
От: VladD2 Российская Империя www.nemerle.org
Дата: 30.06.05 10:02
Оценка:
Здравствуйте, Sinclair, Вы писали:


S>Просто у нас редко бывает 15+ ревижнов. Мы обычно просто включаем track changes и все. При этом вся история никого не интересует; очередной ревьюер просто принимает все те правки, с которыми согласен. Поэтому проблем и не испытываем. Ревижны я как-то пробовал использовать — не понравилось. Документ пухнет со страшной скоростью, а никаких удобств они не добавляют.


В выделенном скорее всего и разница. Я заметил, что Ворд особенно глючит когда правок много.
... << RSDN@Home 1.1.4 beta 7 rev. 466>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[26]: Частота ошибок в зависимости от языка: что делать?
От: VladD2 Российская Империя www.nemerle.org
Дата: 30.06.05 15:44
Оценка:
Здравствуйте, vdimas, Вы писали:

V>До команды Console.WriteLine(s.ToString()); программа не доходит. Приложение молча схлопывается без единого сообщения об ошибке.


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


VD>>К тому же ты ведь делашь общее утверждение, что интероп-код не безопаснее лабания на С++. Так? Дык даже если безопаснее оказывается хотя бы вызов ВыньАпи, то твое утврждение уже не врено.


V>Что-то логика отсутствует.


Да уж. Напрочь. Если ты даже этого понять не можешь.
... << RSDN@Home 1.1.4 beta 7 rev. 466>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[26]: Частота ошибок в зависимости от языка: что делать?
От: VladD2 Российская Империя www.nemerle.org
Дата: 30.06.05 17:00
Оценка:
Здравствуйте, AndrewVK, Вы писали:

AVK>...JIT выкидывает тот самый ужасный ExecutionEngineException.


А чем он так ужасен?
... << RSDN@Home 1.1.4 beta 7 rev. 466>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[27]: Частота ошибок в зависимости от языка: что делать?
От: vdimas Россия  
Дата: 30.06.05 18:53
Оценка:
Здравствуйте, VladD2, Вы писали:

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


V>>До команды Console.WriteLine(s.ToString()); программа не доходит. Приложение молча схлопывается без единого сообщения об ошибке.


VD>Вот то-то и оно, что не доходит. И ты без труда найдешь место с ошибкой. И это при том, что ты указал не вреный кол-конвеншон.


Так ведь — специально неверный, ты уже забыл начало?

Когда у меня схлопывается приложение С++, я тоже без труда нахожу ошибку, и именно потому, что приложение куда-то не доходит. О чем мы спорим?

V>>Ты тут нам обещал продемонстрировать простоту прохода по памяти с помощью интеропа. И наложенные глюки появляющиеся после этого. Вот и продемонстрируй. А не сможешь, так просто признай, что интпроп с его маршалингом значительное безопаснее прямого вызова в С++.


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

Ты же специалист, должен понимать, что чудес не бывает. И что не все дыры интеропа можно заткнуть с помощью специальных magic numbers, которые щедро рассыпает в памяти имплементация от Microsoft, в надежде поймать эти проходы.

У меня такие побочные эффекты без единого сообщения об ошибке были в первый же день знакомства с интеропом, когда я начал не с доки, а со "здравого смысла" (посмотри на out string).


VD>>>К тому же ты ведь делашь общее утверждение, что интероп-код не безопаснее лабания на С++. Так? Дык даже если безопаснее оказывается хотя бы вызов ВыньАпи, то твое утврждение уже не врено.


V>>Что-то логика отсутствует.


VD>Да уж. Напрочь. Если ты даже этого понять не можешь.


Да нет, просто фраза "хотя бы" притянута. Кстати, а ты смотрел на WFC? Если нет, потрать 2 мин, плиз, и скажи потом — так что безопасней, интероп или явная типизация/обертки?
Re[27]: Частота ошибок в зависимости от языка: что делать?
От: vdimas Россия  
Дата: 01.07.05 01:10
Оценка: :))
Здравствуйте, VladD2, Вы писали:

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


AVK>>...JIT выкидывает тот самый ужасный ExecutionEngineException.


VD>А чем он так ужасен?


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