Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.12.04;
Скачать: CL | DM;

Вниз

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;
Скачать: CL | DM;

Наверх




Память: 0.64 MB
Время: 0.042 c
1-1131535708
Goast
2005-11-09 14:28
2005.12.04
Проблема с Image


2-1132403254
Oni
2005-11-19 15:27
2005.12.04
Перевести значение из BCD в integer


14-1131812706
Andy BitOff
2005-11-12 19:25
2005.12.04
В вы говорите...


2-1131857480
~shaman~
2005-11-13 07:51
2005.12.04
CheckBox


14-1131525443
Rem
2005-11-09 11:37
2005.12.04
Kingston или Samsung?