Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 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
15-1311193788
Юрий
2011-07-21 00:29
2011.11.20
С днем рождения ! 21 июля 2011 четверг


15-1311210934
fzt
2011-07-21 05:15
2011.11.20
Окно подсказок по исходникам


15-1311712200
Юрий
2011-07-27 00:30
2011.11.20
С днем рождения ! 27 июля 2011 среда


15-1311797726
Petr V. Abramov
2011-07-28 00:15
2011.11.20
киньте сцылку на хорошую книжку по business objects


10-1175837272
Лу
2007-04-06 09:27
2011.11.20
DHTMLEdit.DOM.ExecScript - Отказано в доступе. ( D7 XP )





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