Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Потрепаться";
Текущий архив: 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
1-52916
_Student_
2003-02-08 17:56
2003.02.17
Помогите с заменой слова в строке.


1-52966
Dinn
2003-02-08 00:36
2003.02.17
TTreeView с wordwrap текста в нодах


1-52941
Вадим
2003-02-09 03:49
2003.02.17
время в формате Unix -> TDateTime


3-52708
Z-man7777
2003-01-31 13:29
2003.02.17
Вопрос по созданию хранимой процедуре!


1-52999
3asys
2003-02-10 16:19
2003.02.17
Изменение размеров TPanel в run-time





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский