Форум: "Потрепаться";
Текущий архив: 2005.12.04;
Скачать: [xml.tar.bz2];
Внизfree Решение для разработки ПО с поддержкой плагинов Найти похожие ветки
← →
Black_phoenix © (2005-11-08 13:46) [40]> Юрий Зотов © (08.11.05 13:41) [39]
Вы правы , но от дизайна кода не всегда зависит работа ПО . Проекты на основе ядра работают и довольно успешно.
Почему же всё так скромно и не обдуманно ? Если бы это был проект на продажу тогда другое дело если же этот проект бесплатен то много времени не уделяеться оформлению кода.
Как говориться дарёному коню ....
← →
Kerk © (2005-11-08 13:47) [41]
> Графического конвектора
Универсального конвектора форматов, если быть точным.
← →
Kerk © (2005-11-08 13:49) [42]
> Black_phoenix © (08.11.05 13:46) [40]
Оформление кода и стиль кода - не то, чему уделяется какое-то внимание. Это то, что происходит само собой.
← →
Ega23 © (2005-11-08 13:49) [43]Удалено модератором
← →
Ega23 © (2005-11-08 13:52) [44]
> от дизайна кода не всегда зависит работа ПО
Читать Вирта. О "good enough programming". После - много думать.
← →
Юрий Зотов © (2005-11-08 13:53) [45]> Black_phoenix © (08.11.05 13:46) [40]
Я говорю не об оформлении кода, а о его сути. Он по сути своей ужасен, понимаете? В нем зашита опасность утечки памяти, в нем маскируются ошибки - вот что плохо и вот почему я называю его "рассадником глюков".
Профи так не пишут, так пишут новички.
← →
boriskb © (2005-11-08 13:59) [46]
> Black_phoenix ©
Уважаемый, а есть на свете человек, который может тебя убедить, что ты не умеешь пока программировать?
Нет? Авторитетов уже нет?
Кто такое утверждает - так это либо завистники, либо старперы, ставящие палки в колеса?
А у самого тебя все отлично?
← →
Игорь Шевченко © (2005-11-08 14:03) [47]Black_phoenix © (08.11.05 13:20) [32]
> Убей авторов Delphi :) ведь они тоже используют эти блоки
> :) Давай - Давай ! Мы посмотрим с удовольствие на это
>
> Не мне вам обяснять какие ошибки могут допустить новички
> так что пусть уж лучше обработчик стоит
Ты меня извини, но в блоке try .... except end; ты лишаешь новичка права даже увидеть, какую ошибку он допустил, поэтому код с такими блоками должен находиться только в одном месте - в корзине.
← →
Black_phoenix © (2005-11-08 14:08) [48]> Ega23 © (08.11.05 13:52) [44]
:) согласен , сейчас как раз этим и занимаюсь
> boriskb © (08.11.05 13:59) [46]
Я никогда не утверждал что я професионал ! :) Я новичёк который учиться !
Програмирую я может и коряво зато программы почему то работающие получаються. Я возможно многого не умею но то что я умею у меня получаеться лучше чем у других , и я бесплатно этим делюсь ! И не кричу что я лучше всех :)
> Юрий Зотов © (08.11.05 13:53) [45]
Совет принят , буду впредь оформлять код
← →
umbra © (2005-11-08 14:11) [49]человек что-то делал, делал и сделал. пытается поделиться этим с другими. И только на том основании, что его работа не идеальна, по-моему, не стоит так настойчиво пытаться ее закопать.
← →
Джо © (2005-11-08 14:11) [50][47] Игорь Шевченко © (08.11.05 14:03)
> поэтому код с такими блоками должен находиться только в
> одном месте - в корзине.
Вы такой код храните в корзине? С шифтом его нужно, с шифтом!.. :)
← →
Black_phoenix © (2005-11-08 14:11) [51]> Игорь Шевченко © (08.11.05 14:03) [47]
Код приведёный в документации был написан более года назад тогда когда движок только начинал функционирование :) так что огрехи конечно имеют место быть
← →
boriskb © (2005-11-08 14:20) [52]
> так что огрехи конечно имеют место быть
Ну слава богу :)
А то только огрызался :))
← →
DK2DK2DK2 (2005-11-08 14:23) [53]Удалено модератором
← →
Юрий Зотов © (2005-11-08 14:24) [54]> > Black_phoenix
Чтобы стало понятно, о чем идет речь, разберем кусок кода.
procedure TForm_network.PluginInterFace1StringMessage(Sender: TComponent;
Msg: String);
var
s:tstringlist;
begin
s:=tstringlist.Create;
try
s.Text:=msg;
if s.Strings[0] = "network_" then // Что будет, если пришел пустой текст?
if s.Strings[1] = "all" then // Что будет, если в тексте менее 2 строк?
begin
s.Delete(0); // Что будет, если пришел пустой текст?
s.Delete(0); // Что будет, если в тексте менее 2 строк?
send_text:=s.Text;
ac.Actions[0].Execute;
end;
except // Маскировка ошибок затрудняет их обнаружение.
end;
s.Free; // Нет try...finally - при любой ошибке утечка памяти гарантирована.
end;
Как видите, даже в таком коротеньком и простейшем кусочке, во-первых, зашиты довольно серьезные потенциальные ошибки, а во-вторых, эти ошибки еще и замаскированы. Ну разве не "рассадник глюков"?
Он самый и есть.
====================
P.S.
Я прокомментировал код по его сути, а на такие мелочи, что у формы нет никаких send_text и aс даже и не стал обращать внимания. Но новичок (для которого и предназначался пример) запросто может и не понять, откуда же они тут взялись и почему пример аж от самих авторов системы даже не компилируется.
← →
Anatoly Podgoretsky © (2005-11-08 14:28) [55]Игорь Шевченко © (08.11.05 13:07) [28]
За
try
...
except
end;
Убивать сразу. Пулю в лоб тремя очередями.
Зачем, очень мудрое решение, кардинально решает проблему с ошибками.
← →
Юрий Зотов © (2005-11-08 14:29) [56]> Black_phoenix © (08.11.05 14:08) [48]
> Совет принят , буду впредь оформлять код
Оформлять код, конечно, надо. Но поймите, что не об оформлении я сейчас говорю, а о сути кода.
Глючный он и опасный, этот код, понимаете? Вот что самое главное, а вовсе никакое не оформление.
← →
Ega23 © (2005-11-08 14:42) [57]
> человек что-то делал, делал и сделал. пытается поделиться
> этим с другими. И только на том основании, что его работа
> не идеальна, по-моему, не стоит так настойчиво пытаться
> ее закопать.
Я вот некоторое время назад написал компонентик. TDBTreeView. Строит дерево на основании KeyField и ParentKeyField. Картинки рисует. Ну, в общем, как обычный DB-компонент.
Данный компонент уже работает (задействован в проекте, который мы сейчас пишем).
Как ты думаешь, чоему я его не выложил в "общественное пользование"? Жалко? Нет, не жалко. Денег хочу? Ну, не помешало бы, но готов отдать и "за так".
А не выкладываю я его по одной простой причине - он НЕ ГОТОВ. Он НЕ УНИВЕРСАЛЕН. Он заточен под КОНКРЕТНУЮ ЗАДАЧУ.
← →
Mystic © (2005-11-08 14:48) [58]> большая часть програмистов просто выкинит их из за лени
> разбираться
Не программистов, а заезжих гастролеров.
← →
pasha_golub © (2005-11-08 15:15) [59]Вот шо зависть с людями делает.
2Автор
Не расстраивайся. Я твой фанат. С самого утра включил твои наработки во все свои проекты. Спасибо огромное!
2ЮЗ Ну, и пофигу МемЛики... Памяти себе купи больше. ;0)
← →
Джо © (2005-11-08 15:18) [60]
> [59] pasha_golub © (08.11.05 15:15)
Давно так не смеялся, спасибо огромное :))
← →
DiamondShark © (2005-11-08 15:31) [61]
> Глючный он и опасный, этот код, понимаете?
(*голосом котёнка Гав*)
Нет. Не понимаю.
> if s.Strings[0] = "network_" then // Что будет, если
> пришел пустой текст?
Будет EListError, который подавится в секции except.
> if s.Strings[1] = "all" then // Что будет, если в
> тексте менее 2 строк?
Будет EListError, который подавится в секции except.
> s.Delete(0); // Что будет, если пришел пустой текст?
Если пришёл пустой текст, исполнение до этой точки не дойдёт.
> s.Delete(0); // Что будет, если в тексте менее 2 строк?
Если в тексте менее 2 строк, исполнение до этой точки не дойдёт.
> s.Free; // Нет try...finally - при любой ошибке утечка
> памяти гарантирована.
При любой ошибке s.Free будет выполнен.
← →
Суслик © (2005-11-08 15:32) [62]bpl форева рулез.
А это детсад.
← →
Black_phoenix © (2005-11-09 08:01) [63]> А не выкладываю я его по одной простой причине - он НЕ ГОТОВ. Он НЕ УНИВЕРСАЛЕН. Он заточен под КОНКРЕТНУЮ ЗАДАЧУ
Ядро тожде заточено под конкретную задачу , а именно загрузку плагинов
> Суслик © (08.11.05 15:32) [62]
C BPL ты будешь разбираться неделю а с ядром пару часов
← →
Lamer@fools.ua © (2005-11-09 09:18) [64]>>Black_phoenix © (09.11.05 08:01) [63]
>C BPL ты будешь разбираться неделю а с ядром пару часов
Зато толку от разбирательства с BPL поболе будет.
← →
Polevi © (2005-11-09 09:29) [65]смешная ветка, автору в цирк к клоунам
← →
Суслик © (2005-11-09 10:42) [66]
> C BPL ты будешь разбираться неделю а с ядром пару часов
Неделю будет разбираться такой профи как ты.
Я разбирался месяца два. До сих пор не все знаю.
Эх, почему не было раньше такого замечательного ядра!
← →
Игорь Шевченко © (2005-11-09 10:48) [67]Black_phoenix © (09.11.05 08:01) [63]
> C BPL ты будешь разбираться неделю а с ядром пару часов
А почему с BPL люди буду разбираться неделю ? Вот мне интересно...Существует море документации по пакетам, не менее большое числе примеров, на что неделю надо тратить ?
← →
Суслик © (2005-11-09 10:50) [68]так дистрибутив еще и в exe лежит, ну уж нафиг.
← →
Kerk © (2005-11-09 20:43) [69]Народ, а покритикуйте решение из [26].
Именно с точки зрения модульной архитектуры.
Ну и с других точек тоже можно. :)
← →
Piter © (2005-11-09 21:12) [70]Юрий Зотов © (08.11.05 13:05) [27]
нда-а-а...
Black_phoenix © (07.11.05 9:31)
Вы бы хоть немного посмотрели исходники Miranda - очень популярная плагиновая программа, к тому же с открытым исходным кодом...
Там много чего можно подчерпнуть...
Black_phoenix © (08.11.05 14:08) [48]
Совет принят , буду впредь оформлять код
Если ты еще не осознал этого сам... То 100% новичок.
Понимаешь, никто не желает вам зла, просто вы сделали систему и позиционируете ее как помощь новичкам, а сами при этом теми же самыми новичками и являетесь.
Просто несколько забавно - понимаешь? :)
Спасение утопающих - дело рук самих утопающих? :)
Ты бы пописал пока проекты не столь глобальные...
DiamondShark © (08.11.05 15:31) [61]
подключайся к ребятам в комманду :)
← →
jack128 © (2005-11-09 21:22) [71]Kerk © (09.11.05 20:43) [69]
Ну и с других точек тоже можно. :)
procedure TAboutFrm.JpegFromResource(Module: THandle; ResourceName: PChar);
...
Buf := CoTaskMemAlloc(ResSize);
// тут много всякого. Но try finally end - нету
CoTaskMemFree(Buf);
← →
jack128 © (2005-11-09 22:52) [72]гм. Установил этот хекс редактор, попытался открыть файл, а он мне av-шку.. Чтение по адрессу nil..
← →
Kerk © (2005-11-10 00:58) [73]jack128 © (09.11.05 22:52) [72]
Ого
Ну гордись. Ты первый. :)))
Если не влом, посмотри под отладчиком где AV
← →
Black_phoenix © (2005-11-10 06:49) [74]> Если ты еще не осознал этого сам... То 100% новичок.
Примеры были написанны более года назад , за это время уже успел измениться в лучшую сторону мой стиль написания программ
← →
Kerk © (2005-11-10 11:08) [75]Black_phoenix © (10.11.05 6:49) [74]
Примеры были написанны более года назад
Ну что за кривой отмаз?
Так и представляю из уст Microsoft: "В Windows XP глюки, потому что мы ее писали 3 года назад, а вот теперрррь...."
← →
Silvestr (2005-11-10 11:28) [76]> Kerk © (10.11.05 11:08) [75]
Неверное сравнение :)
← →
DiamondShark © (2005-11-10 11:52) [77]
> Piter © (09.11.05 21:12) [70]
> DiamondShark © (08.11.05 15:31) [61]
>
> подключайся к ребятам в комманду :)
Сейчас. Всё брошу, и начну шарики надувать.
← →
Black_phoenix © (2005-11-10 13:21) [78]>DiamondShark © (10.11.05 11:52) [77]
> Сейчас. Всё брошу, и начну шарики надувать.
Тут большинство людей и надувает шарики и щёки :) типа вот мы какие важные , умеем то умеем это , есть для этих технологий BPL иди гуляй и пр. нет чтобы действительно заняться работой
стоить из себя все умеют :)
← →
DK2DK2DK2 (2005-11-10 14:12) [79]
> стоить из себя все умеют :)
> <Цитата>
Pravil"no zamteli. Vot toko pro kogo? Samokriti4"nost" navernoe xD
← →
Black_phoenix © (2005-11-10 14:59) [80]> DK2DK2DK2 (10.11.05 14:12) [79]
Я не строю я делаю и БЕСПЛАТНО выкладываю ! А вы только трепаться умеете :)
Что же касаеться мастеров то я прислушаюсь к их совету.
Остальных прошу больше не неспокоить и не поднимать тему.
Надеюсь что ответил на все вопросы , считаю дискусию закрытой
Страницы: 1 2 3 4 вся ветка
Форум: "Потрепаться";
Текущий архив: 2005.12.04;
Скачать: [xml.tar.bz2];
Память: 0.63 MB
Время: 0.044 c