Форум: "Прочее";
Текущий архив: 2011.11.20;
Скачать: [xml.tar.bz2];
ВнизВакансия программиста (преимущественно Delphi) Найти похожие ветки
← →
Palladin © (2011-07-07 16:20) [0]Удалено модератором
← →
Inovet © (2011-07-07 16:25) [1]> [0] Palladin © (07.07.11 16:20)
> • Глубокие знания VCL, понимать разницу между атрибутами
> и методами классов (class var, class method) и их экземпляров.
Как-то первое со вторым не коррелирует.
← →
Игорь Шевченко © (2011-07-07 16:31) [2]Palladin © (07.07.11 16:20)
А нолик справа приписать не ? :)
← →
DVM © (2011-07-07 16:44) [3]
> Palladin ©
> Те, у кого больше 50ти строк в OnClick у кнопки (или в другом
> событии), бегут догонять мышкокликеров
а вот если есть некий протокол и в нем > 50 команд, то в обработчике команды, так или иначе придется сделать Case с 50 или более строчками, другой пример - оконная процедура с > 50 обработчиками сообщений.
50 строк не показатель.
← →
tesseract © (2011-07-07 16:48) [4]
> а вот если есть некий протокол и в нем > 50 команд, то в
> обработчике команды,
Я лично приобрёл привычку всё через Action-ы делать :-)
← →
Dimka Maslov © (2011-07-07 16:50) [5]Посмотрел свой текущий проект. Там в обработчике SaveDialog.OnExecute 65 строк. УЖАС!
← →
Компромисс (2011-07-07 16:53) [6]Посмотрел свой текущий проект. Там в обработчике SaveDialog.OnExecute 65 строк. УЖАС!
Конечно, ужас. Надо было что-то типа
if dialog.execute then
saveFile(dialog.filename);
← →
SQLEXPRESS (2011-07-07 16:55) [7]111 строк в TCustomForm.WndProc
delphi 7
хотя и понятно, что имелось в виду автором :)
← →
NkzAlex © (2011-07-07 16:55) [8]Глубокие знания VCL, понимать разницу между атрибутами и методами классов
Это и есть глубокое знание VCL?
Перспективы повышения квалификации:
• возможно web(DHTML),
• возможно java,
• возможно разработка под iOs или Android
????
Кодер на кодер, шило на мыло?
← →
Palladin © (2011-07-07 16:55) [9]
> Игорь Шевченко © (07.07.11 16:31) [2]
) если бы мог, я бы и себе его приписал )
> DVM © (07.07.11 16:44) [3]
Обработчик всего протокола в одном событии это залипуха.
> Оконная процедура с > 50 обработчиками сообщений
Пережиток прошлого. Да и события, я имел ввиду Form"енные.
← →
Palladin © (2011-07-07 16:57) [10]
> NkzAlex © (07.07.11 16:55) [8]
Запятая это не двоеточие. Читай лучше, развивай понимание знаков препинания.
Тут приходят с такими амбициями, но невозможностью отличить метод от процедуры, что возникает желание их с окна выборосить.
← →
tesseract © (2011-07-07 17:14) [11]
> if dialog.execute then
> saveFile(dialog.filename);
MyThreadPool.AddToExecuteQuque(saveFile(dialog.filename));
← →
Компромисс (2011-07-07 17:17) [12]MyThreadPool.AddToExecuteQuque(saveFile(dialog.filename));\
Необязательно, saveFile может сам решать, стоит ли использовать новый thread для сохранения файла (в зависимости от размера, например).
← →
oxffff © (2011-07-07 17:18) [13]
> Те, у кого больше 50ти строк в OnClick у кнопки (или в другом
> событии), бегут догонять мышкокликеров.
Очень категорично. Просим обосновать.
← →
tesseract © (2011-07-07 17:22) [14]
> Необязательно, saveFile может сам решать, стоит ли использовать
> новый thread для сохранения файла (в зависимости от размера,
> например).
Маршалер пула пусть решает кто из пула свободен.
← →
Игорь Шевченко © (2011-07-07 17:26) [15]Palladin © (07.07.11 16:55) [9]
не договорились :)
← →
DVM © (2011-07-07 17:26) [16]
> Palladin © (07.07.11 16:55) [9]
> Обработчик всего протокола в одном событии это залипуха.
выбор обработчика для команды протокола уже может образовать case более 50 строк. Другого варианта кроме как длинный Case я не вижу.
← →
oxffff © (2011-07-07 17:26) [17]
> 50 строк не показатель.
-52
-Каждому.
← →
Компромисс (2011-07-07 17:27) [18]Маршалер пула пусть решает кто из пула свободен.
Да при чем маршаллер?
Этот saveFile может вызываться из нескольких мест с разными параметрами, неужели каждый раз будем писать
MyThreadPool.AddToExecuteQuque(saveFile(string))?
Вызовем фасадный метод saveFile, а он уже там разберется, кого и как использовать.
← →
Компромисс (2011-07-07 17:30) [19]выбор обработчика для команды протокола уже может образовать case более 50 строк. Другого варианта кроме как длинный Case я не вижу.
Выбор обработчика из массива по индексу команды?
← →
oxffff © (2011-07-07 17:33) [20]
> DVM © (07.07.11 17:26) [16]
>
> > Palladin © (07.07.11 16:55) [9]
>
>
> > Обработчик всего протокола в одном событии это залипуха.
>
>
> выбор обработчика для команды протокола уже может образовать
> case более 50 строк. Другого варианта кроме как длинный
> Case я не вижу.
Любой код, любой длины, который исполняется при нажатии на кнопку
Вопрос вычленения его в отдельную процедуру совсем из другой оперы, а именно повторное использование. Здесь речь не об этом.
← →
Rouse_ © (2011-07-07 17:38) [21]50 строчег? :)))
Слабаки - инициализация криптоконтекста виртуальной машины 3822 строчки асм кода, после чего идет интерпретатор пикода уже на дельфе в ~6к строчек и все это одна процедура, которая после покрытия морфом занимает в районе 180к строк асм кода ;)
ЗЫ: если кто спросит - а нафига, отвечаю. Так надо, ибо морф не защищает пролог и эпилог фукнций (на которых можно произвости подлом данных) поэтому весь секурный код сливается в мегопроцедуры :)))
← →
oxffff © (2011-07-07 17:48) [22]
> Rouse_ © (07.07.11 17:38) [21]
Саша, код в студию.
:))))))
← →
Rouse_ © (2011-07-07 17:49) [23]Он сюда не влезет по обьему :)
← →
Rouse_ © (2011-07-07 17:50) [24]но начинается он вот так:
function ExtractRDT_K(lpParameters: PExtractRDT_K_Params): DWORD; stdcall;
type
PInt64Rec = ^Int64Rec;
var
c : DWORD;
i, RequestPosition, UntrustedCounter, HashResult: Integer;
FirstCounter, SecondCounter: DWORD;
Buffer1, Buffer2: Int64Rec;
pBuffer1, pBuffer2: PInt64Rec;
Key: Word;
TransformCount: Byte;
SValue: DWORD;
TebAddr: PTeb;
TibAddr: PNT_TIB;
SHA256: array [0..GrdSHA256_DIGEST_SIZE - 1] of Byte;
SHA256Context: array [0..GrdSHA256_CONTEXT_SIZE - 1] of Byte;
Context: TContext;
begin
// Самый распространенный способ дебага пятиста строк ассемблерного кода -
// очень долгий, очень пристальный и очень задумчивый взгляд.
← →
DVM © (2011-07-07 18:34) [25]
> Компромисс (07.07.11 17:30) [19]
> выбор обработчика для команды протокола уже может образовать
> case более 50 строк. Другого варианта кроме как длинный
> Case я не вижу.
>
>
> Выбор обработчика из массива по индексу команды?
Возможно только, если ID образуют сплошной интервал, например,
type
TMyCommand = (cmd1 = 1, cmd2 = 2, cmd3 = 3);
var
metods: array[cmd1..cmd3] of TMyMethod= (Method1,Method2,Method3) ;
но если по какой то причине:
TMyCommand = (cmd1 = 1000, cmd2 = 2000, cmd3 = 3000);
так не выйдет
← →
Kerk © (2011-07-07 19:00) [26]
> DVM © (07.07.11 18:34) [25]
Массив - это частный случай. Обычно map для такого используют.
← →
DiamondShark © (2011-07-07 21:02) [27]
> Обычно map для такого используют.
95% дельфи-программистов не знают, что такое map.
← →
DVM © (2011-07-07 21:43) [28]
> DiamondShark © (07.07.11 21:02) [27]
Большинству "Delphi-программистов" TList хватает.
← →
Palladin © (2011-07-07 23:42) [29]) ну да, тем которые "русские мы илинамана не русиянамана, файламанагер на делфи хотеть написать с ядром на тлисттри"... двайте конечно движок протокола на case реализуем, вариантов нет никаких вопще... ) кэйс рулез ворева и все такое )
← →
Palladin © (2011-07-07 23:47) [30]это я конечно оргазмирую на кэйс решения, но DVM ну чего фигню то морозить... решений задачи using case больше чем достаточно... 50 команд в одном кейсе это или залипуха, или быдлокодерское решение копипастеров из Люксофт...
← →
DVM © (2011-07-07 23:57) [31]
> Palladin © (07.07.11 23:47) [30]
> решений задачи using case больше чем достаточно...
Да есть решения, есть, и через ООП и паттерн "стратегия" и через массивы методов в частном случае или хэш таблицы методов в общем. Но все это будет уступать Case как в скорости, так и пожалуй в наглядности (несмотря на 50 вариантов в Case). И че то как то никто не спешит отказываться от длинных Case в реальном коде я погляжу.
Но все равно 50 строк в функции ты жестко как то. И кстати почему именно 50 а не 100 и не 10?
← →
Andy BitOff © (2011-07-08 00:26) [32]> DVM © (07.07.11 23:57) [31]
> И кстати почему именно 50 а не 100 и не 10?
А мы сегодня долго спорили, сколько же надо =) Решили пятьдесят. Хотя некоторые утверждали, что и 10 много. ;)
← →
Inovet © (2011-07-08 01:20) [33]> [30] Palladin © (07.07.11 23:47)
> быдлокодерское решение копипастеров из Люксофт
Это что за компания? Это её фирменный стиль? Вики ничего такого не сообщает, разве что среди других "В начале июня 2008 года открылся офис во Вьетнаме"
http://ru.wikipedia.org/wiki/Luxoft
← →
Kerk © (2011-07-08 01:45) [34]
> Inovet © (08.07.11 01:20) [33]
>
> > [30] Palladin © (07.07.11 23:47)
> > быдлокодерское решение копипастеров из Люксофт
>
> Это что за компания?
Одна из крупнейших IT-компаний России как-никак. Стыдно не знать :)
По фирменному стилю не скажу, напрямую не пересекался.
← →
Inovet © (2011-07-08 02:14) [35]> [34] Kerk © (08.07.11 01:45)
> Одна из крупнейших IT-компаний России как-никак. Стыдно не знать :)
Буду знать, если не забуду.:) А то как-то о ней тут сказано было несколько негативно.
← →
Дмитрий Тимохов (2011-07-08 02:28) [36]я бы на месте Максима ввел бы платную услугу - публикование объявления о работе... БЕЗ ВОЗМОЖНОСТИ комментирования))) и форуму было бы лучше и вообще... ))) более верно - объявления пишут не для того, чтобы на них гадили)
← →
Германн © (2011-07-08 02:31) [37]
> > Это что за компания?
>
> Одна из крупнейших IT-компаний России как-никак. Стыдно
> не знать :)
Мне ну очень стыдно, но я не знаю! Просмотрел их сайт, ничего "крупного" не нашел. Если это "одна из крупнейших". то мне стыдно за Россию.
← →
Kerk © (2011-07-08 02:39) [38]
> Германн © (08.07.11 02:31) [37]
Боюсь, Люксофт вместе со своими 4500+ сотрудников этого не переживет :)
← →
Kerk © (2011-07-08 02:57) [39]
> DVM © (07.07.11 23:57) [31]
> Но все это будет уступать Case как в скорости, так и пожалуй
> в наглядности (несмотря на 50 вариантов в Case).
Будет уступать и в скорости и в наглядности.
Поиск по хэш-массиву быстрее, чем прямой перебор всех вариантов case"ом
Ну а о наглядности нескольких десятков похожих друг на друга строчек кода я даже не буду говорить :)
← →
Дмитрий С © (2011-07-08 07:03) [40]
> Rouse_ © (07.07.11 17:38) [21]
А почему inline-ить процедуры нельзя?
Страницы: 1 2 3 4 вся ветка
Форум: "Прочее";
Текущий архив: 2011.11.20;
Скачать: [xml.tar.bz2];
Память: 0.55 MB
Время: 0.004 c