Текущий архив: 2007.12.16;
Скачать: CL | DM;
Вниз
Вредные советы чайникам Найти похожие ветки
← →
kaif © (2007-11-12 19:39) [40]2 Johnmen © (12.11.07 19:20) [38]
OK
Если хочешь ты в таблице
Сумму чисел получить,
То возми сначала сетку,
К ней запросец подключи.
Если сетка не умеет
Вдруг колонку плюсовать,
Ты в отчаянье не падай,
Смело цикл напиши.
В этом цикле целой ишке
ты присвоишь постепенно
Все с нуля до РекордКаунт
(Свойство у запросца есть)
После этого, присвоив
РекордНо запросца ишке,
Ты увидишь, как в таблице
Ходишь ты от верху книзу.
Это код почти готовый
И коммерческий к тому же,
Остается только сумму
В переменной накопить.
Если же в твоем запросце
РекордКаунт странно глючит,
Значит нужно очень срочно
На ADO переходить.
← →
Leonid Troyanovsky © (2007-11-12 19:56) [41]Итак, к настоящему времени мы собрали воедино информацию,
добытую с потом и кровью, нами и нашими предшественниками.
Вредные заветы и советы
Заветы
Самое бредовое чтиво это Delphi help & VCL sources, да и MSDN.
Оформление исходников и написание комментариев - пустая трата времени.
Помни, что за создание/разрушение объектов, выделение/освобождение памяти,
и закрытие хендлов отвечает А.С.Пушкин.
Try finally/except - модные примочки, загромождающие код.
Учи своих юзеров не пугаться Access Violation.
Лучший способ повторного использования кода - это copy & paste.
Глобальные переменные много полезней локальных.
Инсталяторы делают для лузеров, у твоих юзеров и так все есть.
Помни, что resourcestring придумали для слаборазвитых стран -
наши программисты вставляют текстовые константы в код.
Советы
Не используй локальные переменные для промежуточных результатов,
смелей пользуй with и вложенные вызовы функций.
Всегда полагай, что деструктор обнулит все твои ссылки на объект.
Разбивай приложение на exe & dll и смело передавай между ними классы.
Создавай побольше потоков, заморочиваться же с Synchronize не стоит.
Почаще пользуй функции win32 API и никогда не вызывай Win32Check.
Используй дельфийские глобальные переменные формы FormX,
и навсегда забудь про Screen, Application, DecimalSeparator и прочую лабуду.
Убогий TListBox (TDrawGrid, ..) замени парой десятков кнопок, Edit"ов.
Для объекта var вызывай конструктор так: var.Create.
Не забывай вызов конструктора защитить секцией try-finally.
Не думай, что исключение в конструкторе вызовет деструктор автоматом.
Функция, возвращающая объект круче чем его конструктор.
Неплохо выглядят и функция, возвращающая PChar на распределенную функцией строку.
Записи из списка всегда удаляй в цикле for начиная с 0.
Перебрать список лучше так for i:= 1 to List.Count do, а символы строки - с i:= 0.
List index out of bounds - это фича, а не баг.
Запомни, что типы PChar & String друг к другу не приводятся.
Record с полями String весьма удобен для файлового ввода/вывода.
Стремись представить разность дат в годах, месяцах и днях.
Если что важное пропустил, напомните, плиз.
А завтра присвоим номера, для дальнейшей идентификации, т.с.
--
Regards, LVT.
← →
Leonid Troyanovsky © (2007-11-12 20:09) [42]
> Leonid Troyanovsky © (12.11.07 19:56) [41]
Чтобы создать объект X: TX вызывай конструктор так: X.Create.
Зачитался Анатолием, sorry.
--
Regards, LVT.
← →
turbouser © (2007-11-12 20:42) [43]
> Leonid Troyanovsky
Хинты и варниги борланд придумал для устрашения ламеров. Не стоит обращать на них внимание
:-)
← →
Riply © (2007-11-12 20:51) [44]> [43] turbouser © (12.11.07 20:42)
> Хинты и варниги борланд придумал для устрашения ламеров. Не стоит обращать на них внимание
Особо продвинутые их просто отключают :)
← →
turbouser © (2007-11-12 20:52) [45]
> Riply © (12.11.07 20:51) [44]
Это уже продвинутые чайники :)
← →
Сергей Суровцев © (2007-11-12 21:48) [46]>Anatoly Podgoretsky © (12.11.07 18:49) [33]
>А не хочешь после публикации сделать стихотворную версию?
Когда таковая будет, очень даже за.
← →
Сергей Суровцев © (2007-11-12 21:51) [47]Жизнь коротка. Не трать ее на написание длинных осмысленных названий переменных.
← →
Anatoly Podgoretsky © (2007-11-12 22:29) [48]> Сергей Суровцев (12.11.2007 21:48:46) [46]
Хорошо, напомним.
← →
SergeyIT (2007-11-12 22:36) [49]> разность дат в годах, месяцах и днях
А этот пункт относится к заказчикам, но сюда они не ходят.
← →
Игорь Шевченко © (2007-11-13 10:08) [50]kaif © (12.11.07 18:57) [34]
> 9. У крутых sql-щиков самые многоэтажные запросы. Поэтому
> не стесняйся спросить на форуме "почему у меня не работает
> такой вот запрос?", приведя сразу все 100 строк его текста.
>
100 - это деткий сад. Настоящие запросы начинаются от 1000 строк.
> 10. Предметные ключи лучше суррогатных.
И впрямь лучше. Не дай Аллах столкнуться с произведением поклонников Тенцера.
← →
Kolan © (2007-11-13 10:43) [51]> Инсталяторы придумали лузеры, у твоих юзеров и так все есть.
Из опыта конторы где я работаю я бы сказал так:
Инсталяторы придумали лузеры, лучьше завести папку на диски «Ц», класть туда экзешники, а для настроек использовать 1(один!) ини на все программы.
Это я так жалуюсь…
А вообще формат советов надо передрать у Остера, там смешно :)
← →
Ega23 © (2007-11-13 11:01) [52]
> kaif © (12.11.07 18:57) [34]
С пунктами 5 и 14 в общем случае - не согласен. В частных - возможно, а в общем - нет.
← →
Romkin © (2007-11-13 11:18) [53]Еще совет: все переменные должны иметь максимально краткие имена, желательно с использованием букв S l I O и цифр 5 0 1 вперемешку :)
← →
Romkin © (2007-11-13 11:22) [54]То есть, если вам нужны несколько похожих переменных, называйте их a1, al и aI. Это добавит динамичности программе.
← →
Sonia © (2007-11-13 11:38) [55]
> Leonid Troyanovsky © (12.11.07 19:56) [41]
А мне в первоначальной интерпретации казалось лучше...веселее и доступнее
← →
Romkin © (2007-11-13 11:41) [56]
> > 10. Предметные ключи лучше суррогатных.И впрямь лучше.
> Не дай Аллах столкнуться с произведением поклонников Тенцера.
>
Поддерживаю! Правда, прошу отличать естественные, искусственные и суррогатные ключи. О разнице см. Селко.
Как правило, бывает еще более жестоко: у каждой таблицы первичный ключ всегда из одного поля, это поле - автоинкремент, и все связи неидентифицирующие. У меня как раз на экране результат сейчас, безжалостный и беспощадный. :(
Правда, хорошо медитировать: смотришь на блок в три-пять таблиц и проникаешься...
← →
Sonia © (2007-11-13 11:41) [57]To Leonid Troyanovsky, все-таки лучше всем собраться, поразмыслить и придумать вредные советы в стихах (почти в стихах, как у Г.Остера), только не очень длиные - по 6-8 строк
Я думаю стоит организовать так:
Вредные советы от ДельфиМастеров:
1) <наименование вредного совета>:
<описание вредного совета в стихах>
← →
Anatoly Podgoretsky © (2007-11-13 11:41) [58]> Игорь Шевченко (13.11.2007 10:08:50) [50]
Это тоже детский сад, на порядок больше надо, примерно страниц 10-20 текста.
Я бы выложил пример, но форум не позволяет столько опубликовать.
← →
Anatoly Podgoretsky © (2007-11-13 11:57) [59]> Romkin (13.11.2007 11:22:54) [54]
Не используйте более двух символов в идентификаторах, первый символ буква, а второй цифра - и далее про динамику, или крутизну, или поможем компьютеру зачем ему заниматься разбором.
← →
Romkin © (2007-11-13 12:02) [60]Anatoly Podgoretsky © (13.11.07 11:57) [59] А как же великолепные имена a1I aOI a01 alI al1 и тд? :)
← →
Kolan © (2007-11-13 12:03) [61]Если переменную
для понятия зарплата
тебе надо объявить
назови её ZRPLATA
или просто буквой Z
ЗЫ
Еще дополнить бы конец…
← →
Игорь Шевченко © (2007-11-13 12:05) [62]Romkin © (13.11.07 12:02) [60]
Каждый дурак знает, что значит имя VG :)
← →
Anatoly Podgoretsky © (2007-11-13 12:05) [63]
> Sonia © (13.11.07 11:41) [57]
Должно быть два варианта, обычный и в стихах, вариант в стихах может быть доступен по ссылке на конкретный стих и на страницу, если размер получится небольшой то можно на одной странице.
Вредные советы от ДельфиМастеров:
1) <наименование вредного совета>: <ссылка на стих>
...
Вредные советы от ДельфиМастеров в стихах:
1) стих
...
← →
Anatoly Podgoretsky © (2007-11-13 12:07) [64]> Romkin (13.11.2007 12:02:00) [60]
> А как же великолепные имена a1I aOI a01 alI al1 и тд? :)
Это для эстетов, особенно AOL
Я за Бейсик PDP
← →
Sonia © (2007-11-13 12:21) [65]
> Anatoly Podgoretsky © (13.11.07 12:05) [63]
Да и еще я думаю стоит разделить на темы, например, по разделам форума
← →
den303 © (2007-11-13 12:39) [66]Если хочешь запуздырить
В трэй иконку ты быстрее -
Обратись на Дельфимастер,
Будут рады все вопросу!
← →
Leonid Troyanovsky © (2007-11-13 14:29) [67]Hi, All!
Список теперь нумерован,
при поправках просьба ссылаться на номер записи.
Да, т.к. портрет КП оказался не очень привлекательным,
и, видимо, дописан не будет, позаимствуем хоть что-то полезное.
Заветы
0. Самое бредовое чтиво: Delphi help & VCL sources, да и MSDN тоже.
1. Не читай и warnings & hints компилятора - на высоту полетов они не влияют.
2. Помни, что за создание/разрушение объектов, выделение/освобождение памяти,
закрытие хендлов и пр. отвечает А.С. Пушкин.
3. Глобальные переменные много полезней локальных.
4. Обрабатывай исключения так, чтобы о них никто не догадывался.
5. Всегда доверяй своему вкусу, чаще радуй юзеров свежими решениями.
5. Инсталяторы делают для лузеров, у твоих юзеров и так все есть.
7. Помни, что resourcestring придумали для развивающихся стран -
наши программисты вставляют текстовые константы в код.
8. Лучший способ повторного использования кода - copy & paste.
9. И не ищи в Delphi легких путей, помни: шрамы украшают настоящего дельфера.
Советы
00. Никогда не занимайся украшательством, т.е.:
- масимально сократи имена классов, методов, переменных;
- убери лишние пробелы, переводы строки и всяческие комментарии;
- объедини все юниты в один.
Словом, сделай все, чтобы максимально ускорить компиляцию и получить качественный exe.
Вот образцы хороших имен: lS, I5, l1 O0; не хватит букв - добавь цифр.
01. Не используй локальные переменные для промежуточных результатов,
смелей пользуй with и вложенные вызовы функций.
02. Всегда полагай, что деструктор обнулит все твои ссылки на объект.
03. Разбивай приложение на exe & dll и смело передавай между ними классы.
04. Создавай побольше потоков, заморочиваться же с Synchronize не стоит.
05. Почаще пользуй функции win32 API и никогда не вызывай Win32Check.
06. Используй дельфийские глобальные переменные формы FormX,
и навсегда забудь Screen, Application, DecimalSeparator и пр.
07. Убогий TListBox (TDrawGrid, ..) замени парой десятков кнопок, Edit"ов.
08. Создавая объект X класса TX вызывай конструктор так: X.Create.
09. Не забывай вызов конструктора защитить секцией try-finally.
Не думай, что исключение в конструкторе вызовет деструктор автоматом.
0A. Функция, возвращающая объект круче его конструктора.
0B. Неплохо выглядит и функция, возвращающая PChar на распределенную ею строку.
0C. Перебирать список лучше так: for i := 1 to List.Count, а символы String - с i := 0.
0D. Записи из списка всегда удаляй в цикле for начиная с 0.
0E. List index out of bounds - это фича, а не баг.
0F. Запомни, что типы PChar & String друг к другу не приводятся.
10. Record с полями String весьма удобен для файлового ввода/вывода.
11. Не рисуй в PaintBox - это удобней делать на панели, столе, обоях и стенах.
12. Стремись представить разность дат в годах и месяцах и днях.
И снова прошу, если чего упустил, напомните, плиз.
Системы контроля версий пока нет, по старой ветке лазить тяжело.
--
Regards, LVT.
← →
Kolan © (2007-11-13 14:39) [68]Regards, LVT.
Никогда не нумеруй списки для людей в Hex?
← →
Leonid Troyanovsky © (2007-11-13 14:51) [69]
> Kolan © (13.11.07 14:39) [68]
> Никогда не нумеруй списки для людей в Hex?
Да, хотел еще мелким шрифтом, но нет его.
--
Regards, LVT.
← →
Petr V. Abramov © (2007-11-14 00:03) [70]все советы надо предварить постулатом
если Вы работаете с клиент-сервер СУБД, то
1. от админа не защиты, т.к. не предусмотрена в принципе
2. Хуже дурака только дурак с правами админа.
http://delphimaster.net/view/3-1194960615/
← →
Amoeba © (2007-11-14 00:08) [71]Вот материалец с вредным и полезным советами рядышком:
http://www.delphikingdom.com/asp/answer.asp?IDAnswer=56892
← →
Германн © (2007-11-14 02:00) [72]
> Amoeba © (14.11.07 00:08) [71]
LVT пока не хочет вплотную заниматься темами относящимися "только" к БД.
Кстати ему бы могли в этом деле помочь (взять на себя составление списка) Коля и Женя. Да и Толян бы тоже не помешал :-)
← →
MsGuns © (2007-11-14 23:10) [73]Ходят слухи, что Тексейра
Вместе с Пачеком ругают
Тех, кто код свой набирает
Как придется, на авось
Наплевав на переносы,
на абзацы и на стиль
Невдомек им, буржуинам,
Что у нас, у славянинов,
Есть лихой, неповторимый
свой оригинальный стиль.
А вдобавок надо помнить,
Что писать программу нужно
Так, чтоб в ней не разобрался
Ни один, кроме тебя
И тогда везде и всюду
тебя будут уважать !
← →
MsGuns © (2007-11-14 23:21) [74]Если в прогу, что ваяешь, положил контроль с палитры,
А он, сволочь, не тем цветом отражает цифру "5"
Ты не парься с всяким хелпом, и не гробь свое здоровье
на исследованье всяких там событиев и свойств
Просто смело набираешь в гугле ключевое слово-поиск
И качаешь-инсталляешь сразу нужный компАнент,
Ну а если с гуглом глухо, типа вышла с ним заминка
Или как набрать не знаешь или прочий инцидент
Ни секунды на раздумья - сразу рулишь в дельфимастер
Там таких как ты навалом,- что-нибудь да подадут
← →
MsGuns © (2007-11-14 23:30) [75]Приступая к разработке приложения на Делфи
Убедись, что у тебя: задуаленный процессор,
2 гектара меморухи и адаптер Radeon,
20-ти дюймовый моник, крутой видеорежим
Проектируя межмордье, не стесняйся площадями
Максимально ты используй все пространство на экране.
Ну а если у клиента твоя прога не фурычит
Типа кнопок там не видно или грид ушел под стол
Ты с презреньем и свысОка погляди на неумеху
И скажи что твоя прога не для старых утюгов.
← →
Юрий Зотов © (2007-11-15 00:23) [76]> Leonid Troyanovsky © (13.11.07 14:29) [67]
Почти дословный перевод.
:о)
Заветы
Не читай MSDN"ов, не читай сырцов и хэлпов,
Варнингов там всяких разных тож не вздумай ты читать,
Помни - за объект и память отвечает А.С. Пушкин,
Вот глобальных переменных вдоволь можешь поюзать.
А эксепшены гаси ты - не фиг юзеру их видеть,
Юзер должен видеть только лишь убойный твой дизайн,
И не делай инсталлятор, ламерам ведь лишь он нужен
Лучше в прогу вставь 140 русских текстовых констант.
Копипасть ты код почаще, это круто аффигенно
И не бойся, блин, на грабли в сотый раз ты наступить.
Советы
Береги, дружище, клаву - не давай имен ты длинных
Также всякие пробелы и каменты убери,
Собери юниты в кучу - сэкономишь ты на uses,
И компилер сразу скажет: это суперпрограммист!
Также лишнего не помни - на фига нам гробить память?
Пользуй with, да ведь и пачкой можно фукции юзать,
Ну а ежели деструктор ссылки все не обнуляет,
Смело разбивай ты прогу на exe и dll.
Создавай потоков кучу, не заботясь ни о чем ты,
И почаще пользуй API - это крутизна ваще!
А глобальных переменных ты своих вводи побольше -
Должен же ты переплюнуть этот дохлый VCL?
И убогие листбоксы заменяй десятком кнопок,
Создавая кнопку Button прям вот так: Button.Create,
Но пихай все это в try ты - вдруг конструктор сглючит сдуру?
И тогда ведь ты деструктор должен будешь вызывать.
А еще не хило будет в функцию засунуть try тот,
Чтобы функция вернула ею ж созданный PChar.
И потом запомни: индекс в списках юзается с единицы,
Ну а в строках этот индекс начинается с нуля.
Чтобы записи из списка удалить - используй for ты,
И начни с нуля. И знай, что это фича, а не баг.
А еще запомни, что PChar и String друг к другу
Не приводятся, собаки. Не приводятся никак.
Знай, что Record с AnsiString"ами - для файлов самый цимус!
Не рисуй в PaintBox - для этого придумана панель
И когда тебе вдруг скажут: сколько ж лет тебе, бедняга?
Ты ответь по-программистки: в годах и месяцах и днях.
← →
Leonid Troyanovsky © (2007-11-15 06:27) [77]
> Юрий Зотов © (15.11.07 00:23) [76]
Дельфиада.
Распечатал, повесил на стенку.
--
Regards, LVT.
Страницы: 1 2 вся ветка
Текущий архив: 2007.12.16;
Скачать: CL | DM;
Память: 0.65 MB
Время: 0.025 c