Форум: "Потрепаться";
Текущий архив: 2003.02.17;
Скачать: [xml.tar.bz2];
ВнизПРОТОТИПИРОВАНИЕ, XP И ОДА PERL Найти похожие ветки
← →
Tux (2003-02-03 00:02) [0]Тот, кто имел опыт разработки больших систем на "серьезных" языках, наверняка наступал на грабли потери управляемости
проектом при необходимости внесения изменений в один или несколько корневых классов, т.е. при изменении их интерфейса; после
этого билд не проходит, и вообще одна группа проекта не знает, что делает в это же время другая. Что касается VC++, можно с
99% долей уверенности предположить, что случилась такая ерунда - когда перестает фурычить Class Explorer. Другие косвенные
признаки - обилие маленьких служебных макросов и изобилие template-классов (не всегда). Бороться с такой ерундой по идее
должны бы case-средства, но, во-первых, тщательным планированием всего не предусмотришь, во-вторых, идея генерации и
коррекции кода по одному нажатию на кнопку несбыточна :-) Можно воздействовать административным способом - это соглашения по
кодированию, по стилю, установка догм, интенсивное общение ( почта и совещания ).
Существует идея экстремального программирования. Идея забавная и в принципе теоретически обоснована, но... На том же ++
экстремально кодить невозможно :-) для этого надо быть автоматом-гением-профессионалом-всегда выспавшимся-отдохнувшим, иначе
в багах теста можно закопаться; каждый быстро написанный и притом РАБОТАЮЩИЙ тест можно смело причислять к произведениям
искусства.
Я попробовал вот что: берем Perl и экстремально кодим на нем прототип класса, функциональный аналог. На нем же параллельно
пишутся тесты (по 30-50 строчек кода). После полного тестирования перлового прототипа воплощаем его же на С, Delphi... кому
как угодно. Почему Перл?
1) Не требует компиляции (баг - поправил - тут же запустил)
2) Компактен
3) Простая работа с текстами
4) Простая работа с вводом-выводом
5) Модульность
6) (своеобразная, но полностью функциональная) поддержка ООП
7) Прост
8) Хренова туча сторонних модулей
9) Переносимость
10) Элементарная работа с БД
11) Поддержка COM (Win32::OLE, .wsc)
К примеру: полностью функциональный аналог COM-коллекции:
package Enum;
use strict;
use overload "@{}" => \&_NewEnum;
sub _DEBUG() {1;}
# my $enum = VDEnum->new;
# $enum->Add(10);
# $enum->Add(20);
# $enum->Add(30);
# for (@$enum) {
# print;
# }
#
sub new
{
my $self = {};
$self->{FArray} = undef;
bless($self, "Enum");
return $self;
}
sub Add
{
my $self = shift;
push(@{$self->{FArray}}, shift);
}
sub Clear
{
my $self = shift;
$self->{FArray} = undef;
}
sub Count
{
my $self = shift;
return scalar @{$self->{FArray}};
}
sub Item : lvalue
{
my $self = shift;
my $index = shift;
if ($index < 0 or $index >= scalar @{$self->{FArray}} ) {
die "VDEnum: Item index is out of range\n";
}
@{$self->{FArray}}[$index];
}
sub _NewEnum : lvalue
{
my $self = shift;
\@{$self->{FArray}};
}
return 1;
Полсотни строк кода и полчаса работы со всеми отладками.
Это все мой личный горький опыт :-) Зачем написал - сам не знаю; просто захотелось поделиться :-) Ну и узнать, у кого какие
аналогичные приемчики есть для того, чтобы жилось легче? Языки, средства?
Как Ларри Уолл говорит - "Три добродетели программиста - лень, нетерпение и высокомерие" :-)
← →
DiamondShark (2003-02-03 00:14) [1]Почему Дельфи:
1) Требует компиляции, но скорость такая, что пофиг
2) Не то чтобы компактен, но пофиг
3) Простая работа с текстами
4) Простая работа с вводом-выводом
5) Модульность
6) Полностью функциональная поддержка ООП
7) Прост
8) Хренова туча сторонних модулей
9) Переносимость
10) Продвинутая работа с БД
11) Поддержка COM, встроенная в язык
← →
Viktor Kushnir (2003-02-03 09:48) [2]12) И просто наше любимое средство программирования!
← →
Ketmar (2003-02-03 10:28) [3]>DiamondShark © (03.02.03 00:14)
вот про пункт 9 можно поподробнее? переносимость на болванке с машины на машину не считается %-)
Satanas Nobiscum! 03-Feb-XXXVIII A.S.
← →
DiamondShark (2003-02-03 10:44) [4]
> Ketmar © (03.02.03 10:28)
Kylix.
← →
Ketmar (2003-02-03 10:47) [5]>DiamondShark © (03.02.03 10:44)
это шутка юмора такая, да? ну попробуйте транслировать серьезный проект с d6 на kylix.
Satanas Nobiscum! 03-Feb-XXXVIII A.S.
← →
DiamondShark (2003-02-03 10:56) [6]
> Ketmar © (03.02.03 10:47)
А слово "переносимость" -- это вообще такое шуточное слово ;)
Страницы: 1 вся ветка
Форум: "Потрепаться";
Текущий архив: 2003.02.17;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.009 c