Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Потрепаться";
Текущий архив: 2004.04.11;
Скачать: [xml.tar.bz2];

Вниз

О провилах хорошего тона в программировании.   Найти похожие ветки 

 
Игорь Шевченко ©   (2004-04-07 15:13) [120]

Nikolay M. ©   (07.04.04 15:11)

Suxx. Оцени:

/*
* Program to compute an approximation of pi
* by Brian Westley, 1988
* (requires pcc macro concatenation; try gcc -traditional-cpp)
*/

#define _ -F<00||--F-OO--;
int F=00,OO=00;
main(){F_OO();printf("%1.3f\n",4.*-F/OO/OO);}F_OO()
{
           _-_-_-_
      _-_-_-_-_-_-_-_-_
   _-_-_-_-_-_-_-_-_-_-_-_
 _-_-_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
 _-_-_-_-_-_-_-_-_-_-_-_-_-_
   _-_-_-_-_-_-_-_-_-_-_-_
       _-_-_-_-_-_-_-_
           _-_-_-_
}


 
Игорь Шевченко ©   (2004-04-07 15:13) [120]

Nikolay M. ©   (07.04.04 15:11)

Suxx. Оцени:

/*
* Program to compute an approximation of pi
* by Brian Westley, 1988
* (requires pcc macro concatenation; try gcc -traditional-cpp)
*/

#define _ -F<00||--F-OO--;
int F=00,OO=00;
main(){F_OO();printf("%1.3f\n",4.*-F/OO/OO);}F_OO()
{
           _-_-_-_
      _-_-_-_-_-_-_-_-_
   _-_-_-_-_-_-_-_-_-_-_-_
 _-_-_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
 _-_-_-_-_-_-_-_-_-_-_-_-_-_
   _-_-_-_-_-_-_-_-_-_-_-_
       _-_-_-_-_-_-_-_
           _-_-_-_
}


 
Style ©   (2004-04-07 15:16) [121]

>>Игорь Шевченко ©  
Помню что есть такая ф-я, но почему то каждый раз пишу свою :)))


 
Style ©   (2004-04-07 15:16) [121]

>>Игорь Шевченко ©  
Помню что есть такая ф-я, но почему то каждый раз пишу свою :)))


 
Игорь Шевченко ©   (2004-04-07 15:17) [122]

Style ©   (07.04.04 15:16)

Общее правило: чем меньше строчек в коде, тем он надежнее и легче читается. Следуй ему всегда и будет тебе счастье.


 
Игорь Шевченко ©   (2004-04-07 15:17) [122]

Style ©   (07.04.04 15:16)

Общее правило: чем меньше строчек в коде, тем он надежнее и легче читается. Следуй ему всегда и будет тебе счастье.


 
Style ©   (2004-04-07 15:22) [123]

Игорь Шевченко ©
но это уже ближе к оптимизации :)
Нельзя сразу идеально написать программу, ее вообще наверное идеально нельзя написать.
А еще особенно когда тебя торопят, здесь подправь, тут нужно быстрее сделать. ТО ничего Хорошего из этого не получается.

А знание функций и умение их оптимально использовать - наверное есть опыт.


 
Style ©   (2004-04-07 15:22) [123]

Игорь Шевченко ©
но это уже ближе к оптимизации :)
Нельзя сразу идеально написать программу, ее вообще наверное идеально нельзя написать.
А еще особенно когда тебя торопят, здесь подправь, тут нужно быстрее сделать. ТО ничего Хорошего из этого не получается.

А знание функций и умение их оптимально использовать - наверное есть опыт.


 
Nikolay M. ©   (2004-04-07 15:23) [124]


> Игорь Шевченко ©   (07.04.04 15:13) [120]

Пи по Монте-Карло? Достойно :)
До сотого знака подсчитает?

А про невидимый язык Whitespace читал?
http://www.computerra.ru/focus/coment/25538/


 
Nikolay M. ©   (2004-04-07 15:23) [124]


> Игорь Шевченко ©   (07.04.04 15:13) [120]

Пи по Монте-Карло? Достойно :)
До сотого знака подсчитает?

А про невидимый язык Whitespace читал?
http://www.computerra.ru/focus/coment/25538/


 
Игорь Шевченко ©   (2004-04-07 15:29) [125]

Style ©   (07.04.04 15:22)


> Нельзя сразу идеально написать программу, ее вообще наверное
> идеально нельзя написать


Можно сразу, можно вообще :)

Nikolay M. ©   (07.04.04 15:23)


> До сотого знака подсчитает?


Запусти ? :))


> http://www.computerra.ru/focus/coment/25538/


LOL

Ты про язык INTERCAL не читал ? :)


 
Игорь Шевченко ©   (2004-04-07 15:29) [125]

Style ©   (07.04.04 15:22)


> Нельзя сразу идеально написать программу, ее вообще наверное
> идеально нельзя написать


Можно сразу, можно вообще :)

Nikolay M. ©   (07.04.04 15:23)


> До сотого знака подсчитает?


Запусти ? :))


> http://www.computerra.ru/focus/coment/25538/


LOL

Ты про язык INTERCAL не читал ? :)


 
Style ©   (2004-04-07 15:36) [126]

Игорь Шевченко ©  
Думаю что даже мастера ошибаются :) - поэтому и говорю  что нельзя идеально писать.

А иногда еще бывает смотрю на свою программу снова и думаю, кто такю чушь написал, здесь же можно проще :)


 
Style ©   (2004-04-07 15:36) [126]

Игорь Шевченко ©  
Думаю что даже мастера ошибаются :) - поэтому и говорю  что нельзя идеально писать.

А иногда еще бывает смотрю на свою программу снова и думаю, кто такю чушь написал, здесь же можно проще :)


 
Nikolay M. ©   (2004-04-07 15:36) [127]


> > До сотого знака подсчитает?
> Запусти ? :))

Дома :)


> Ты про язык INTERCAL не читал ? :)

Compiler Language With No Pronounceable Acronym
?
Уже прочитал :))))

А еще в этом году в ноябре Фортрану исполняется 50 лет. По одной из версии генеалогического древа - это пра-пра-прадедушка Алгола, B, C и, как следствие, Perl, PHP и C++. :)


 
Nikolay M. ©   (2004-04-07 15:36) [127]


> > До сотого знака подсчитает?
> Запусти ? :))

Дома :)


> Ты про язык INTERCAL не читал ? :)

Compiler Language With No Pronounceable Acronym
?
Уже прочитал :))))

А еще в этом году в ноябре Фортрану исполняется 50 лет. По одной из версии генеалогического древа - это пра-пра-прадедушка Алгола, B, C и, как следствие, Perl, PHP и C++. :)


 
KSergey ©   (2004-04-07 15:46) [128]

>  [88] sniknik ©   (07.04.04 13:39)

Явно с Сишными наклонностями написано
По первости я тоже отчасти так писал...
Но оакзалось, что для дельфи это не читабельно... (хотя, конечно, ставить end в той же строке :(((


 
KSergey ©   (2004-04-07 15:46) [128]

>  [88] sniknik ©   (07.04.04 13:39)

Явно с Сишными наклонностями написано
По первости я тоже отчасти так писал...
Но оакзалось, что для дельфи это не читабельно... (хотя, конечно, ставить end в той же строке :(((


 
Игорь Шевченко ©   (2004-04-07 15:48) [129]

Nikolay M. ©   (07.04.04 15:36)


> Compiler Language With No Pronounceable Acronym


Он самый. У нас, часом, версия jargon.htm не одна и та же ? :)


> Думаю что даже мастера ошибаются :) - поэтому и говорю  
> что нельзя идеально писать.


Смотря что считать за идеал. В моем понимании это работающая читабельная (не только автором) программа, легко расширяемая или корректируемая при надобности.
Я все-таки советую изучать исходные тексты VCL, хотя бы как примеры.


 
Игорь Шевченко ©   (2004-04-07 15:48) [129]

Nikolay M. ©   (07.04.04 15:36)


> Compiler Language With No Pronounceable Acronym


Он самый. У нас, часом, версия jargon.htm не одна и та же ? :)


> Думаю что даже мастера ошибаются :) - поэтому и говорю  
> что нельзя идеально писать.


Смотря что считать за идеал. В моем понимании это работающая читабельная (не только автором) программа, легко расширяемая или корректируемая при надобности.
Я все-таки советую изучать исходные тексты VCL, хотя бы как примеры.


 
Nikolay M. ©   (2004-04-07 15:53) [130]


> У нас, часом, версия jargon.htm не одна и та же ? :)

Не исключено, где-то валяется в недрах винчестера. Прочитал давно еще, для ликбеза :)


 
Nikolay M. ©   (2004-04-07 15:53) [130]


> У нас, часом, версия jargon.htm не одна и та же ? :)

Не исключено, где-то валяется в недрах винчестера. Прочитал давно еще, для ликбеза :)


 
Style ©   (2004-04-07 15:57) [131]


> В моем понимании это работающая читабельная (не только автором)
> программа, легко расширяемая или корректируемая при надобности.

 Ну мой код вы вроде откорректировали при надобности ;)


> Я все-таки советую изучать исходные тексты VCL, хотя бы
> как примеры.

Изачую время от времени, но это не значит, что можно сразу охватить весь объем информации. Все равно приходится учится на своих ошибках, так как чужие ошибки  понять тяжело пока сам через это не пройдешь :)
В последнее время часто бываю в исходниках т.к. пишу компоненты


 
Style ©   (2004-04-07 15:57) [131]


> В моем понимании это работающая читабельная (не только автором)
> программа, легко расширяемая или корректируемая при надобности.

 Ну мой код вы вроде откорректировали при надобности ;)


> Я все-таки советую изучать исходные тексты VCL, хотя бы
> как примеры.

Изачую время от времени, но это не значит, что можно сразу охватить весь объем информации. Все равно приходится учится на своих ошибках, так как чужие ошибки  понять тяжело пока сам через это не пройдешь :)
В последнее время часто бываю в исходниках т.к. пишу компоненты


 
olookin ©   (2004-04-07 16:18) [132]

[116] Dmitriy O. ©   (07.04.04 15:00)
Про твою автосхему я в курсе - пробовал...

А что касается вида кода... Для меня важнее, как код воспринимаю я, а не как код будет воспринимать другой.


 
olookin ©   (2004-04-07 16:18) [132]

[116] Dmitriy O. ©   (07.04.04 15:00)
Про твою автосхему я в курсе - пробовал...

А что касается вида кода... Для меня важнее, как код воспринимаю я, а не как код будет воспринимать другой.


 
Style ©   (2004-04-07 16:29) [133]


> А что касается вида кода... Для меня важнее, как код воспринимаю
> я, а не как код будет воспринимать другой.


Значит тебе не судьба работать в команде


 
Style ©   (2004-04-07 16:29) [133]


> А что касается вида кода... Для меня важнее, как код воспринимаю
> я, а не как код будет воспринимать другой.


Значит тебе не судьба работать в команде


 
olookin ©   (2004-04-07 16:33) [134]

[133] Style ©   (07.04.04 16:29)

Ага!


 
olookin ©   (2004-04-07 16:33) [134]

[133] Style ©   (07.04.04 16:29)

Ага!


 
int64   (2004-04-07 16:34) [135]

olookin ©   (07.04.04 16:18) [132]

> А что касается вида кода... Для меня важнее, как код воспринимаю
> я, а не как код будет воспринимать другой

Вот о таких недалеких лаймерах, оставшихся без работы, я и завел разговор.


 
int64   (2004-04-07 16:34) [135]

olookin ©   (07.04.04 16:18) [132]

> А что касается вида кода... Для меня важнее, как код воспринимаю
> я, а не как код будет воспринимать другой

Вот о таких недалеких лаймерах, оставшихся без работы, я и завел разговор.


 
Dmitriy O. ©   (2004-04-07 16:41) [136]


> olookin ©   (07.04.04 16:18)
Вот именно для разбора такого кода я и писал программу в том числе и своего. Т.к. тоже пишу не очень понятно а потом вспоминаю что и как там работает :))))


 
Dmitriy O. ©   (2004-04-07 16:41) [136]


> olookin ©   (07.04.04 16:18)
Вот именно для разбора такого кода я и писал программу в том числе и своего. Т.к. тоже пишу не очень понятно а потом вспоминаю что и как там работает :))))


 
serge35   (2004-04-07 16:43) [137]

Правило хорошего тона в программировании - это хорошо работающая программа.


 
serge35   (2004-04-07 16:43) [137]

Правило хорошего тона в программировании - это хорошо работающая программа.


 
pasha_golub ©   (2004-04-07 16:43) [138]

Игорь Шевченко ©   (07.04.04 15:13) [120]
А можно мне сирому донести сизюминку этой вот программки, для подсчета Пи? Спасибо


 
pasha_golub ©   (2004-04-07 16:43) [138]

Игорь Шевченко ©   (07.04.04 15:13) [120]
А можно мне сирому донести сизюминку этой вот программки, для подсчета Пи? Спасибо


 
Иксик ©   (2004-04-07 16:50) [139]

Удалено модератором
Примечание: Личная переписка


 
Иксик ©   (2004-04-07 16:50) [139]

Удалено модератором
Примечание: Личная переписка


 
olookin ©   (2004-04-07 16:54) [140]

[135] int64   (07.04.04 16:34)

Ну, надеюсь, ты отчетливо представляешь себе, что такое ламер. Особенно недалекий. Если да - то поразмысли над собственной же фразой

"Если бы кто-то, когда-то взялся собрать "свод законов" о правилах хорошего тона в программировании, об азах, сей документ был бы куда полезнее всяких факов. Потому что без этих правил кодить можно, а без факов - нет."

Кажется, ты сам себе противоречишь. Первое предложение исключает логику второго, и наоборот. Так что вывод - дело не в форме (как записан код), а в содержании (что записано в коде).


 
olookin ©   (2004-04-07 16:54) [140]

[135] int64   (07.04.04 16:34)

Ну, надеюсь, ты отчетливо представляешь себе, что такое ламер. Особенно недалекий. Если да - то поразмысли над собственной же фразой

"Если бы кто-то, когда-то взялся собрать "свод законов" о правилах хорошего тона в программировании, об азах, сей документ был бы куда полезнее всяких факов. Потому что без этих правил кодить можно, а без факов - нет."

Кажется, ты сам себе противоречишь. Первое предложение исключает логику второго, и наоборот. Так что вывод - дело не в форме (как записан код), а в содержании (что записано в коде).


 
Style ©   (2004-04-07 16:54) [141]


> А можно мне сирому донести сизюминку этой вот программки,
> для подсчета Пи? Спасибо

Здеся без пива не разобраться явно :)


 
Style ©   (2004-04-07 16:54) [141]


> А можно мне сирому донести сизюминку этой вот программки,
> для подсчета Пи? Спасибо

Здеся без пива не разобраться явно :)


 
Игорь Шевченко ©   (2004-04-07 16:59) [142]

olookin ©   (07.04.04 16:54)

Если ты этот код пишешь для себя, то, сам понимаешь, никто тебя не может заставить писать иначе. Только просьба будет, если ты код в форум выкладываешь на предмет вопросов, причеши его так, чтобы не только ты мог в нем разобраться :))


 
Игорь Шевченко ©   (2004-04-07 16:59) [142]

olookin ©   (07.04.04 16:54)

Если ты этот код пишешь для себя, то, сам понимаешь, никто тебя не может заставить писать иначе. Только просьба будет, если ты код в форум выкладываешь на предмет вопросов, причеши его так, чтобы не только ты мог в нем разобраться :))


 
int64   (2004-04-07 17:03) [143]

olookin ©   (07.04.04 16:54) [140]

>... сей документ был бы куда полезнее всяких факов. Потому
> что без этих правил кодить можно, а без факов - нет.

Подписуюсь под каждым словом.


 
int64   (2004-04-07 17:03) [143]

olookin ©   (07.04.04 16:54) [140]

>... сей документ был бы куда полезнее всяких факов. Потому
> что без этих правил кодить можно, а без факов - нет.

Подписуюсь под каждым словом.


 
olookin ©   (2004-04-07 17:09) [144]

[143] int64   (07.04.04 17:03)

Хитер. Ты подпишись под всей фразой

"Если бы кто-то, когда-то взялся собрать "свод законов" о правилах хорошего тона в программировании, об азах, сей документ был бы куда полезнее всяких факов. Потому что без этих правил кодить можно, а без факов - нет."

А потом проверь ее на логичность.

PS Если при твоей любви к правильному написанию кода ты допускаешь такие промахи в построении цепочки мыслей, то какие же программы у тебя выходят из-под пера?


 
olookin ©   (2004-04-07 17:09) [144]

[143] int64   (07.04.04 17:03)

Хитер. Ты подпишись под всей фразой

"Если бы кто-то, когда-то взялся собрать "свод законов" о правилах хорошего тона в программировании, об азах, сей документ был бы куда полезнее всяких факов. Потому что без этих правил кодить можно, а без факов - нет."

А потом проверь ее на логичность.

PS Если при твоей любви к правильному написанию кода ты допускаешь такие промахи в построении цепочки мыслей, то какие же программы у тебя выходят из-под пера?


 
Calm ©   (2004-04-07 17:16) [145]


> А потом проверь ее на логичность.

А там все верно.
Опасность именно в том и состоит, что ее можно не заметить. Не соблюдая правила писать можно - наступишь на грабли неминуемо.

Не зная FAQов писать нельзя - соответственно на грабли не наступишь, пока не выучишь.


 
Calm ©   (2004-04-07 17:16) [145]


> А потом проверь ее на логичность.

А там все верно.
Опасность именно в том и состоит, что ее можно не заметить. Не соблюдая правила писать можно - наступишь на грабли неминуемо.

Не зная FAQов писать нельзя - соответственно на грабли не наступишь, пока не выучишь.


 
smb   (2004-04-07 19:10) [146]

2 Calm ©   (07.04.04 17:16) [145]
может вы бы были бы вполне правы, если бы не это:
"Если бы кто-то, когда-то взялся собрать "свод законов" о правилах хорошего тона в программировании, об азах, сей документ был бы куда полезнее всяких факов. Потому что без этих правил кодить можно, а без факов - нет."
это означает, что второе предложение следует из первого.
Аналогичная фраза:
Если бы вы одели носки и ботинки при хождении на морозе, то носки были бы куда важнее, чем ботинки. Потому что без носков в ботинках ходить можно, а без ботинок нельзя.
имхо она бредова там же, как и предыдущая. :)
что касается кода SoftX"а, имхо не такой уж он и не читабельный.


 
smb   (2004-04-07 19:10) [146]

2 Calm ©   (07.04.04 17:16) [145]
может вы бы были бы вполне правы, если бы не это:
"Если бы кто-то, когда-то взялся собрать "свод законов" о правилах хорошего тона в программировании, об азах, сей документ был бы куда полезнее всяких факов. Потому что без этих правил кодить можно, а без факов - нет."
это означает, что второе предложение следует из первого.
Аналогичная фраза:
Если бы вы одели носки и ботинки при хождении на морозе, то носки были бы куда важнее, чем ботинки. Потому что без носков в ботинках ходить можно, а без ботинок нельзя.
имхо она бредова там же, как и предыдущая. :)
что касается кода SoftX"а, имхо не такой уж он и не читабельный.


 
Алхимик ©   (2004-04-07 21:08) [147]

                                                   extern int
                                                          errno
                                                            ;char
                                                               grrr
                                ;main(                           r,
     argv, argc )            int    argc                           ,
      r        ;           char *argv[];{int                     P( );
   #define x int i,        j,cc[4];printf("    choo choo\n"        ) ;
   x  ;if    (P(  !        i              )      |  cc[   !        j ]
   &  P(j    )>2  ?        j              :      i  ){*   argv[i++ +!-i]
   ;              for    (i=              0;;    i++                  );
   _exit(argv[argc- 2    / cc[1*argc]|-1<<4 ]    ) ;printf("%d",P("");}}
     P  (    a  )   char a   ;  {    a  ;   while(    a  >      "  B  "
     /* -    by E            ricM    arsh             all-      */)"   }


:)
Не моё. Работоспособность не проверял.


 
Алхимик ©   (2004-04-07 21:08) [147]

                                                   extern int
                                                          errno
                                                            ;char
                                                               grrr
                                ;main(                           r,
     argv, argc )            int    argc                           ,
      r        ;           char *argv[];{int                     P( );
   #define x int i,        j,cc[4];printf("    choo choo\n"        ) ;
   x  ;if    (P(  !        i              )      |  cc[   !        j ]
   &  P(j    )>2  ?        j              :      i  ){*   argv[i++ +!-i]
   ;              for    (i=              0;;    i++                  );
   _exit(argv[argc- 2    / cc[1*argc]|-1<<4 ]    ) ;printf("%d",P("");}}
     P  (    a  )   char a   ;  {    a  ;   while(    a  >      "  B  "
     /* -    by E            ricM    arsh             all-      */)"   }


:)
Не моё. Работоспособность не проверял.


 
Сергей Суровцев ©   (2004-04-08 00:20) [148]

>Игорь Шевченко ©   (07.04.04 15:10) [117]

Вы будете смеяться, но :

function StrTran (uk_str80, uk_str81, uk_str82 : string ) : string;
var
asv312 : string;
begin
asv312:=uk_str80;
if Pos(uk_str81, asv312) <> 0 then
begin
 if (uk_str81 <> uk_str82) or (length(uk_str81) <> length (uk_str82)) then
begin
 while Pos(uk_str81, asv312) <> 0 do
 asv312 := Copy(asv312 ,1, Pos(uk_str81, asv312)-1) + uk_str82 + Copy(asv312 ,Pos(uk_str81, asv312)+length(uk_str81) ,length(asv312));
end;
end;
Result:=asv312;
end;

работает ~ на 10% быстрее

StringReplace(Str, ",", ".", [rfReplaceAll]);

хотя, конечно, и не является образцом кода :))

Прошу прощения у Alex Konshin © за отсутствие try..finally и полностью солидарен с Внук © в нелюбви и игнорировании With.


 
Сергей Суровцев ©   (2004-04-08 00:20) [148]

>Игорь Шевченко ©   (07.04.04 15:10) [117]

Вы будете смеяться, но :

function StrTran (uk_str80, uk_str81, uk_str82 : string ) : string;
var
asv312 : string;
begin
asv312:=uk_str80;
if Pos(uk_str81, asv312) <> 0 then
begin
 if (uk_str81 <> uk_str82) or (length(uk_str81) <> length (uk_str82)) then
begin
 while Pos(uk_str81, asv312) <> 0 do
 asv312 := Copy(asv312 ,1, Pos(uk_str81, asv312)-1) + uk_str82 + Copy(asv312 ,Pos(uk_str81, asv312)+length(uk_str81) ,length(asv312));
end;
end;
Result:=asv312;
end;

работает ~ на 10% быстрее

StringReplace(Str, ",", ".", [rfReplaceAll]);

хотя, конечно, и не является образцом кода :))

Прошу прощения у Alex Konshin © за отсутствие try..finally и полностью солидарен с Внук © в нелюбви и игнорировании With.


 
Сергей Суровцев ©   (2004-04-08 00:23) [149]

Нда... В оригинале это выглядет куда читабельнее чем здесь, звиняйте, забыл кодом отметить. :))


 
Сергей Суровцев ©   (2004-04-08 00:23) [149]

Нда... В оригинале это выглядет куда читабельнее чем здесь, звиняйте, забыл кодом отметить. :))


 
Undert ©   (2004-04-08 00:23) [150]


> Сергей Суровцев ©  


А  ещё вместо POS сделать хешированный поиск -
if large(text) or (length(text)>1024) then скорость = скорость * 2 как мимнимум;


 
Undert ©   (2004-04-08 00:23) [150]


> Сергей Суровцев ©  


А  ещё вместо POS сделать хешированный поиск -
if large(text) or (length(text)>1024) then скорость = скорость * 2 как мимнимум;


 
Сергей Суровцев ©   (2004-04-08 00:26) [151]

>Undert ©   (08.04.04 00:23) [150]
Попробую, но уже завтра. Спасибо на добром слове. :))


 
Сергей Суровцев ©   (2004-04-08 00:26) [151]

>Undert ©   (08.04.04 00:23) [150]
Попробую, но уже завтра. Спасибо на добром слове. :))


 
Ihor Osov'yak ©   (2004-04-08 01:31) [152]

Интересно было почитать.

Зы.  
А я зверею, когда при компиляции чужого кода компилятор варнинги и хинты дает. Если автор в зоне досягаемости - ему можно не завидовать...


 
Ihor Osov'yak ©   (2004-04-08 01:31) [152]

Интересно было почитать.

Зы.  
А я зверею, когда при компиляции чужого кода компилятор варнинги и хинты дает. Если автор в зоне досягаемости - ему можно не завидовать...


 
Aristarh ©   (2004-04-08 02:03) [153]

>Ihor Osov"yak ©   (08.04.04 01:31) [152]
>А я зверею, когда при компиляции чужого кода компилятор
>варнинги и хинты дает.

А я нет. Вы возьмите компиляцию сторонних библиотек, причем уважаемых библиотек, например, RxLib. Там же десятки хинтов и варнингов! Но оно работает, и работает так, что и позавидовать можно. Просто автор использовал в своих классах определенные соглашения, которые при любых условиях будут выполняться.
Неужели у вас ни одного хинта? :)


 
Aristarh ©   (2004-04-08 02:03) [153]

>Ihor Osov"yak ©   (08.04.04 01:31) [152]
>А я зверею, когда при компиляции чужого кода компилятор
>варнинги и хинты дает.

А я нет. Вы возьмите компиляцию сторонних библиотек, причем уважаемых библиотек, например, RxLib. Там же десятки хинтов и варнингов! Но оно работает, и работает так, что и позавидовать можно. Просто автор использовал в своих классах определенные соглашения, которые при любых условиях будут выполняться.
Неужели у вас ни одного хинта? :)


 
Soft ©   (2004-04-08 06:57) [154]

>>Ihor Osov"yak ©   (08.04.04 01:31) [152]

Сразу видно мнение непрофессионала, который знает только один язык. Вы просто некоторых компиляторов, с того C++ не видели. Иногда на обычные сравнения ругаются...

ЗЫ
Я всегда к программе отношусь как к модели взаимодействия данных. Тоесть рассматривают работу программы как Data Flow, это позволяет абстрагироваться от платформы языка и метода написания программы, так что без малейших усилий я смог бы свой проект перевести на любую платформу и архитектуру, которая удовлетворяет минимальным требованиям к программе, за очень короткие сроки.

Люди которые заботятся о красоте кода, а не о красоте "управления данные данными" (Code Flow) часто не представляют, что у них творится в программе, что делает данные программы(работы более 10 профессиональных программистов) иногда хуже работ студентов-одиночек.

Так что можно сделать вывод - функциональность определяет красоту.


 
Soft ©   (2004-04-08 06:57) [154]

>>Ihor Osov"yak ©   (08.04.04 01:31) [152]

Сразу видно мнение непрофессионала, который знает только один язык. Вы просто некоторых компиляторов, с того C++ не видели. Иногда на обычные сравнения ругаются...

ЗЫ
Я всегда к программе отношусь как к модели взаимодействия данных. Тоесть рассматривают работу программы как Data Flow, это позволяет абстрагироваться от платформы языка и метода написания программы, так что без малейших усилий я смог бы свой проект перевести на любую платформу и архитектуру, которая удовлетворяет минимальным требованиям к программе, за очень короткие сроки.

Люди которые заботятся о красоте кода, а не о красоте "управления данные данными" (Code Flow) часто не представляют, что у них творится в программе, что делает данные программы(работы более 10 профессиональных программистов) иногда хуже работ студентов-одиночек.

Так что можно сделать вывод - функциональность определяет красоту.


 
KSergey ©   (2004-04-08 08:15) [155]

> [154] Soft ©   (08.04.04 06:57)

Ага, вот только выясняется, что чтобы внести мелкое (внешне) изменение в программу этого студента - надо переписать ее заново.
В другом же случае - лишь малую часть.
Впрочем, возможно я не до конца понял мысль.


 
KSergey ©   (2004-04-08 08:15) [155]

> [154] Soft ©   (08.04.04 06:57)

Ага, вот только выясняется, что чтобы внести мелкое (внешне) изменение в программу этого студента - надо переписать ее заново.
В другом же случае - лишь малую часть.
Впрочем, возможно я не до конца понял мысль.


 
Игорь Шевченко ©   (2004-04-08 10:43) [156]

Сергей Суровцев ©   (08.04.04 00:20)

А написав на ассемблере, можно добиться еще большего быстродействия и еще большей нечитабельности :))
Дерзайте :)

Soft ©   (08.04.04 06:57)

> Сразу видно мнение непрофессионала, который знает только
> один язык. Вы просто некоторых компиляторов, с того C++
> не видели. Иногда на обычные сравнения ругаются...


Сразу видно мнение ламера, уж извините...


 
Игорь Шевченко ©   (2004-04-08 10:43) [156]

Сергей Суровцев ©   (08.04.04 00:20)

А написав на ассемблере, можно добиться еще большего быстродействия и еще большей нечитабельности :))
Дерзайте :)

Soft ©   (08.04.04 06:57)

> Сразу видно мнение непрофессионала, который знает только
> один язык. Вы просто некоторых компиляторов, с того C++
> не видели. Иногда на обычные сравнения ругаются...


Сразу видно мнение ламера, уж извините...


 
Игорь Шевченко ©   (2004-04-08 10:45) [157]

Aristarh ©   (08.04.04 02:03)

Мне, наверное, не повезло, я в RxLib не увидел hints и warnings при компиляции.

Целиком и полностью согласен с Ihor Osov"yak ©   (08.04.04 01:31) [152] , компилятор предупржедает и дает советы не зря - либо в коде ошибка, либо код написан не очень грамотно.


 
Игорь Шевченко ©   (2004-04-08 10:45) [157]

Aristarh ©   (08.04.04 02:03)

Мне, наверное, не повезло, я в RxLib не увидел hints и warnings при компиляции.

Целиком и полностью согласен с Ihor Osov"yak ©   (08.04.04 01:31) [152] , компилятор предупржедает и дает советы не зря - либо в коде ошибка, либо код написан не очень грамотно.


 
Anatoly Podgoretsky ©   (2004-04-08 11:04) [158]

Игорь Шевченко ©   (08.04.04 10:43) [156]
Это подтверждается только при хорошем знании об оптимизации процессора и правильных алгоритмах, а то чаще наблюдается обратное.

Правилом хорошего тона в программирование является следование соглашениям и внутрифирменным стандартам, иначе моветон.


 
Anatoly Podgoretsky ©   (2004-04-08 11:04) [158]

Игорь Шевченко ©   (08.04.04 10:43) [156]
Это подтверждается только при хорошем знании об оптимизации процессора и правильных алгоритмах, а то чаще наблюдается обратное.

Правилом хорошего тона в программирование является следование соглашениям и внутрифирменным стандартам, иначе моветон.


 
KSergey ©   (2004-04-08 11:15) [159]

Хм, что-то и мне захотелось...
Вот некий кусочек...

// работа с одним файлом на FTP: загрузка или удаление
// Здесь создается компонент работы с FTP, здесь же и уничтожается (т.к. при ошибах он начитает глючить)
// Это не эффективно с точки зрения ресурсов, но во главу угла при разработке
// данного модуля была поставлена дубовая надежность.
// Вход:
//   Action - выполняемое действие
//   AFTPFileName - имя файла на FTP
//   ALocalFileName - имя файла на локальном (сетевом) диске (если необходимо для данного действия, иначе произвольные данные)
// Выход:
//   результат типа TDownloadErrors
//   AErrTxt - сообщение об ошибке, если произошла фатальная ошибка
function TFTPLoadThread.FTPActionsBody(Action: TFTPManagActions;
                                      const AFTPFileName, ALocalFileName: String;
                                      var AErrTxt: String): TFTPDownloadErrors;
begin
 FFtp := TNMFTP.Create(nil);  // для закачки каждого файла создаем новый экземпляр, т.к., как показала практика, при ошбках компонент начинает сильно глючить
 try
   with FFtp do
   try
     FWAuthenticate := FALSE;
     Host      := g_WEB_FTP_HOST;
     Passive   := TRUE;
     UserID    := WEB_FTP_USER;
     Password  := WEB_FTP_PASSWORD;
     TimeOut   := 0;  // здесь ставим безлимитку, т.к. компонент считает, что это так же тайм-аут на общее время закачки файла (идиот!)
     OnPacketRecvd      := OnPacketRecvdHandler;
     OnTransactionStart := OnTransactionStartHandler;
     OnTransactionStop  := OnTransactionStopHandler;
     OnFailure          := OnFailureHandler;  // этот обработчик обязательно необходимо задать, хоть и пустой по содержанию, иначе при ошибках закачки (есключениях) сразу возникает Acces Violation, из-за чего невозможно получить исходную ошибку
     try
       Connect;
       Mode (MODE_IMAGE);  // мода - 8 бит
       if Trim(g_WEB_FTP_DIR) <> EmptyStr then  ChangeDir(g_WEB_FTP_DIR);
       case Action of
         mactDownload: Download (AFTPFileName, ALocalFileName);  // закрузка файла
{$IFDEF DELETE_FTP_FILES}
         mactDelete:   Delete (AFTPFileName);                    // удаление файла
{$ENDIF}
       end;  // case Action of
       AErrTxt := EmptyStr;
       Result := derrOk;  // похоже повезло....
     except
       on E: Exception do
       begin
         AErrTxt := E.Message;
         if E is FTPException then
         begin
           if E.Message[1] = "5" then
             Result := derrFatal  // если срвер вернул ошибку 5xx - это фатальная ошибка
           else
             Result := derrTemp;  // иначе есть надежда ее исправить
         end
         else  // if E is FTPException
           Result := derrTemp;
       end;  // on E: Exception do
     end;  // try/except
   finally
     FreeAndNil(FFtp);
   end;
 except   // ошибки съесть, результат - вернуть
   on E: Exception do
   begin
     OutLogErr ("Загрузка/удаление файла", E);
     Result := derrTemp;
   end;
 end;
 FTimer.Enabled := FALSE;  // на всякий случай, если ранее не отключили
end;


 
KSergey ©   (2004-04-08 11:15) [159]

Хм, что-то и мне захотелось...
Вот некий кусочек...

// работа с одним файлом на FTP: загрузка или удаление
// Здесь создается компонент работы с FTP, здесь же и уничтожается (т.к. при ошибах он начитает глючить)
// Это не эффективно с точки зрения ресурсов, но во главу угла при разработке
// данного модуля была поставлена дубовая надежность.
// Вход:
//   Action - выполняемое действие
//   AFTPFileName - имя файла на FTP
//   ALocalFileName - имя файла на локальном (сетевом) диске (если необходимо для данного действия, иначе произвольные данные)
// Выход:
//   результат типа TDownloadErrors
//   AErrTxt - сообщение об ошибке, если произошла фатальная ошибка
function TFTPLoadThread.FTPActionsBody(Action: TFTPManagActions;
                                      const AFTPFileName, ALocalFileName: String;
                                      var AErrTxt: String): TFTPDownloadErrors;
begin
 FFtp := TNMFTP.Create(nil);  // для закачки каждого файла создаем новый экземпляр, т.к., как показала практика, при ошбках компонент начинает сильно глючить
 try
   with FFtp do
   try
     FWAuthenticate := FALSE;
     Host      := g_WEB_FTP_HOST;
     Passive   := TRUE;
     UserID    := WEB_FTP_USER;
     Password  := WEB_FTP_PASSWORD;
     TimeOut   := 0;  // здесь ставим безлимитку, т.к. компонент считает, что это так же тайм-аут на общее время закачки файла (идиот!)
     OnPacketRecvd      := OnPacketRecvdHandler;
     OnTransactionStart := OnTransactionStartHandler;
     OnTransactionStop  := OnTransactionStopHandler;
     OnFailure          := OnFailureHandler;  // этот обработчик обязательно необходимо задать, хоть и пустой по содержанию, иначе при ошибках закачки (есключениях) сразу возникает Acces Violation, из-за чего невозможно получить исходную ошибку
     try
       Connect;
       Mode (MODE_IMAGE);  // мода - 8 бит
       if Trim(g_WEB_FTP_DIR) <> EmptyStr then  ChangeDir(g_WEB_FTP_DIR);
       case Action of
         mactDownload: Download (AFTPFileName, ALocalFileName);  // закрузка файла
{$IFDEF DELETE_FTP_FILES}
         mactDelete:   Delete (AFTPFileName);                    // удаление файла
{$ENDIF}
       end;  // case Action of
       AErrTxt := EmptyStr;
       Result := derrOk;  // похоже повезло....
     except
       on E: Exception do
       begin
         AErrTxt := E.Message;
         if E is FTPException then
         begin
           if E.Message[1] = "5" then
             Result := derrFatal  // если срвер вернул ошибку 5xx - это фатальная ошибка
           else
             Result := derrTemp;  // иначе есть надежда ее исправить
         end
         else  // if E is FTPException
           Result := derrTemp;
       end;  // on E: Exception do
     end;  // try/except
   finally
     FreeAndNil(FFtp);
   end;
 except   // ошибки съесть, результат - вернуть
   on E: Exception do
   begin
     OutLogErr ("Загрузка/удаление файла", E);
     Result := derrTemp;
   end;
 end;
 FTimer.Enabled := FALSE;  // на всякий случай, если ранее не отключили
end;


 
KSergey ©   (2004-04-08 11:16) [160]

> [159] KSergey ©   (08.04.04 11:15)
> Вот некий кусочек...

Типичный имелось в виду..
Правда, на форуме он смотрится менее читабельным, чем в оригинале... Мдя...


 
KSergey ©   (2004-04-08 11:16) [160]

> [159] KSergey ©   (08.04.04 11:15)
> Вот некий кусочек...

Типичный имелось в виду..
Правда, на форуме он смотрится менее читабельным, чем в оригинале... Мдя...



Страницы: 1 2 3 4 5 6 вся ветка

Форум: "Потрепаться";
Текущий архив: 2004.04.11;
Скачать: [xml.tar.bz2];

Наверх




Память: 1.23 MB
Время: 0.136 c
1-1082525196
[BAD]Angel
2004-04-21 09:26
2004.05.09
как узнать количество файлов в папке?


14-1081863818
Dimerol
2004-04-13 17:43
2004.05.09
Proftpd and symbolic links


1-1082678989
Бегун
2004-04-23 04:09
2004.05.09
TListBox


9-1070889697
zzet
2003-12-08 16:21
2004.05.09
Линия и цвет OpenGl


3-1081478539
Лоднев Дмитрий
2004-04-09 06:42
2004.05.09
Как сработать с БД SQL-сервера если сервер не запущен?





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