Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Потрепаться";
Текущий архив: 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 и даже и не стал обращать внимания. Но новичок (для которого и предназначался пример) запросто может и не понять, откуда же они тут взялись и почему пример аж от самих авторов системы даже не компилируется.


 
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
1-1131370818
DelphiLexx
2005-11-07 16:40
2005.12.04
TLogFont (вывод текста по 90 градусов)


14-1131976004
alex-drob
2005-11-14 16:46
2005.12.04
Linux + Windows


14-1131756453
Мазут Береговой
2005-11-12 03:47
2005.12.04
Массмедиа в основном передают ужасные новости...


14-1131695823
Mike Kouzmine
2005-11-11 10:57
2005.12.04
Рыжков выполняет свои обещания...


14-1131609512
Asker
2005-11-10 10:58
2005.12.04
ограничить срок работы программы





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский