Форум: "Прочее";
Текущий архив: 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-ить процедуры нельзя?
← →
Rouse_ © (2011-07-08 09:40) [41]
> Дмитрий С © (08.07.11 07:03) [40]
> А почему inline-ить процедуры нельзя?
у инлайна свои ограничения, плюс ты когда еще у нас был, я вроде тебе показывал момент, когда при инлайне генерируется неверный код (тупо косяк компилера)
← →
Игорь Шевченко © (2011-07-08 09:45) [42]
> Поиск по хэш-массиву быстрее, чем прямой перебор всех вариантов
> case"ом
обычно после этой фразы приводится тест-кейс
← →
Palladin © (2011-07-08 10:10) [43]Ну case-то будет побыстрей на самом деле... ибо не перебор, а прямой jmp...
← →
Игорь Шевченко © (2011-07-08 10:53) [44]
> ибо не перебор, а прямой jmp...
не всегда
← →
Компромисс (2011-07-08 11:10) [45]Ну case-то будет побыстрей на самом деле... ибо не перебор, а прямой jmp...
Там зависимости разные, время case линейно зависит от размера, а map - гораздо меньше (не знаю точную формулу, logN, что ли). Так что при некотором N map будет быстрее. Например, при N=миллион никто оспаривать не будет, что case умрет, а map вполне справится.
← →
RWolf © (2011-07-08 11:18) [46]
> Например, при N=миллион никто оспаривать не будет, что case
> умрет
Не умрёт же, ну.
Начиная с некоторого (довольно малого) количества кейсов, перебор вариантов (O(N)) заменяется на прыжок по смещению (O(1)).
Полагаю, что case быстрее хэш-таблицы адресов функций всегда. Не говоря уже о том, что хэш-таблица в данном случае — лишняя сущность и усложнение.
← →
Компромисс (2011-07-08 11:21) [47]RWolf © (08.07.11 11:18) [46]
Тем хуже для Delphi-программистов в таком случае. Магия Delphi-компилятора прививает низкую культуру программирования.
← →
Кщд (2011-07-08 11:22) [48]>NkzAlex © (07.07.11 16:55) [8]
разницу между повышением квалификации и карьерным ростом понимаем?
← →
DiamondShark © (2011-07-08 11:30) [49]
> обычно после этой фразы приводится тест-кейс
Валидный тест пейсать лениво. А то, что не лениво -- будет весьма малоадекватно.
Реализация switсh -- это от полного перебора (худший случай) до двоичного поиска (лучший случай). Сложность поиска (что полного, что двоичного) -- O(n).
Сложность хэш-поиска (без коллизий) -- O(1).
Так что в сферическом вакууме (много значений, равномерно случайный поток данных) хэш быстрее.
В жЫзни же, как обычно, есть нюансы. O(n), конечно же, никуда не девается, но на коротких наборах основную роль играют накладные расходы, и алгоритм O(n) может оказаться (до некоторой длины набора) быстрее алгоритма O(1).
Вручную отсортированный switсh на коротком наборе с не равномерно распределённым потоком данных может уделать любой хэш.
Фишка хэша не в том, что он (якобы) ВСЕГДА быстрее, а в том, что конструкция, типа:
Handlers[switchKey].Execute();
в пятьдесят раз читабельнее, и в бесконечное число раз масштабируемее, чем switсh на пятьдесят вариантов.
Хотя, конечно, в некоторых случаях может быть и заметно медленнее.
← →
Компромисс (2011-07-08 11:38) [50]Оказывается, case автоматически компилируется в jump table не только в Delphi, но и например, в С. Так что case просто must die. Где-то когда-то читал, что в хорошей ООП программе не должно быть case, это атавизм от процедурного программирования.
← →
Palladin © (2011-07-08 11:43) [51]case это конструкция языка, а не парадигма разработки
← →
Компромисс (2011-07-08 11:52) [52]case это конструкция языка, а не парадигма разработки
Case c 50 ветвями - уже парадигма разработки :)
Даешь новое предупреждение компилятора "Case has too many branches, consider replacing it with a hash table" :)
← →
DiamondShark © (2011-07-08 11:58) [53]
> Даешь новое предупреждение компилятора "Case has too many
> branches, consider replacing it with a hash table" :)
И выдавать при количестве веток чуть более, чем 3.1415.
А если меньше трёх, то выдавать
"Case has too few branches, consider replacing it with IF statement"
← →
Компромисс (2011-07-08 12:07) [54]А если меньше трёх, то выдавать
"Case has too few branches, consider replacing it with IF statement"
Правильно, switch имеет смысл как отдельная конструкция только при 3 ветках. Квартетный оператор, так сказать.
← →
Нехочуха (2011-07-08 12:14) [55]
> Компромисс (08.07.11 12:07) [54]
> switch имеет смысл как отдельная конструкция только при 3 ветках.case PointInfo.PointType of
agrptFin: PointInfo.PointType := agrptLeftBottom;
agrptStart: PointInfo.PointType := agrptRightTop;
agrptRightTop: PointInfo.PointType := agrptStart;
agrptLeftBottom: PointInfo.PointType := agrptFin;
end;
Меня расстрелять.
← →
Компромисс (2011-07-08 12:19) [56]Меня расстрелять.
Конечно. См. DVM © (07.07.11 18:34) [25] в качестве правильного кода.
Да уже за PointInfo.PointType в каждой ветке можно ногами бить. Хорошо еще, что не MyPoints[PointIndex + PointShift].PointType
← →
Игорь Шевченко © (2011-07-08 12:19) [57]
> Так что case просто must die
must die не case
← →
Компромисс (2011-07-08 12:20) [58]must die не case
Согласен. must die case на 50 веток, который легко заменить.
← →
Inovet © (2011-07-08 12:23) [59]> [45] Компромисс (08.07.11 11:10)
> время case линейно зависит от размера
Надо в компиляторе оптимизацию case делать. В VC есть же? А вообще таблица как-то наглядней, удобней, имхо.
← →
Игорь Шевченко © (2011-07-08 12:27) [60]
> А вообще таблица как-то наглядней, удобней, имхо.
Таблица чего, блин ? Фрагментов кода ? Замени case на таблицы в коде VCL для начала.
← →
Inovet © (2011-07-08 12:30) [61]> [50] Компромисс (08.07.11 11:38)
> case автоматически компилируется в jump table не только в Delphi
Уже есть
← →
Inovet © (2011-07-08 12:38) [62]> [60] Игорь Шевченко © (08.07.11 12:27)
> Таблица чего, блин ? Фрагментов кода ?
Так здесь речь ведут об однотипных вызовах в каждой ветке. Ты типа не понял. А 50 веток с разным кодом в каждой тяжко читать.
← →
Компромисс (2011-07-08 12:40) [63]А 50 веток с разным кодом в каждой тяжко читать.
50 веток с одинаковым (похожим) кодом еще более тяжко читать.
← →
Inovet © (2011-07-08 12:42) [64]> [63] Компромисс (08.07.11 12:40)
> 50 веток с одинаковым (похожим) кодом еще более тяжко читать.
Да пофиг, и так и так можно нормально сделать. Главное в религию не удариться.
← →
DiamondShark © (2011-07-08 12:52) [65]
> Таблица чего, блин ? Фрагментов кода ?
Фрагмент кода называется процедурой.
В таблице процедур нет ничего сверхестественного.
← →
Думкин © (2011-07-08 12:56) [66]А c goto то как теперь?
← →
Anatoly Podgoretsky © (2011-07-08 13:04) [67]В справке этого нет, но ранее в любой книжке было написано, указывайте варианты в порядке возрастания, так как будет сгенерирован более оптимальный код. Как сейчас не знаю, не буду я ломать голову ради каких то 50 вариантов, это же не замерить даже
← →
Anatoly Podgoretsky © (2011-07-08 13:07) [68]Нужно эе время на генерацию хеш кода и на поиск в хешь таблице. Не знаю каким динным должно быть выражение CASE, что бы можно было что то ощутить.
← →
Компромисс (2011-07-08 13:07) [69]Anatoly Podgoretsky © (08.07.11 13:04) [67]
Я вообще удивляюсь с некоторых компиляторов - сгенерировать таблицу переходов они могут, а упорядочить case перед использованием (с учетом отсутствия fallthrough в Pascal) не могут и требуют ручной сортировки от программиста...
← →
Anatoly Podgoretsky © (2011-07-08 13:08) [70]> Думкин (08.07.2011 12:56:06) [66]
А тебе оно нужно?
← →
Anatoly Podgoretsky © (2011-07-08 13:10) [71]> Компромисс (08.07.2011 13:07:09) [69]
Так в некоторых языках просто нельзя менять положение, чтобы не разрушить
последовательность выполнения, например в СИ
← →
Anatoly Podgoretsky © (2011-07-08 13:10) [72]И не дело компилятора решать дурак программист или нет.
← →
Думкин © (2011-07-08 13:10) [73]> Anatoly Podgoretsky © (08.07.11 13:08) [70]
Переживаю за чистоту кодинга. А то мало ли. И стоит ли использовать repeat и т.п. Кто его знает, какие там веяния и к чему готовиться на собеседованиях. :)
← →
DiamondShark © (2011-07-08 13:20) [74]
> Думкин © (08.07.11 12:56) [66]
> А c goto то как теперь?
Эти в соседней палате. Мы туда не ходим, буйные они там.
← →
Компромисс (2011-07-08 13:40) [75]Anatoly Podgoretsky © (08.07.11 13:10) [71]
Я это знаю. Поэтому и написал "(с учетом отсутствия fallthrough в Pascal)" . То есть в Паскале всегда можно пересортировать и это абсолютно безопасно.
← →
Игорь Шевченко © (2011-07-08 13:43) [76]DiamondShark © (08.07.11 12:52) [65]
Всякий овощ приносит пользу, будучи употреблен надлежащим образом в надлежащее время.
Преобразовывать case в таблицу процедур, увеличивая размер кода, только потому что в этой ветке кто-то посчитал это кошерным есть пустая и вредная трата времени.
← →
Компромисс (2011-07-08 13:53) [77]Преобразовывать case в таблицу процедур, увеличивая размер кода, только потому что в этой ветке кто-то посчитал это кошерным есть пустая и вредная трата времени.
Действительно, дело немного в другом. Наличие такого case говорит о том, что программист не совсем владеет advanced навыками ООП. Построением архитектуры, правильным делением на объекты, шаблоном команда и т.д.
← →
Игорь Шевченко © (2011-07-08 14:02) [78]Компромисс (08.07.11 13:53) [77]
> Наличие такого case говорит о том, что программист не совсем
> владеет advanced навыками ООП
Обратное говорит о том, что программист привык усложнять код в угоду теориям вместо поиска оптимальных решений.
← →
Думкин © (2011-07-08 14:04) [79]> Компромисс (08.07.11 13:53) [77]
Это же не самоцель. Или нет? Иногда такие дебри в итоге разбирать приходится.
← →
Компромисс (2011-07-08 14:05) [80]Обратное говорит о том, что программист привык усложнять код в угоду теориям вместо поиска оптимальных решений.
Да, бывает и такое.
← →
Компромисс (2011-07-08 14:11) [81]Это же не самоцель. Или нет? Иногда такие дебри в итоге разбирать приходится.
По разному бывает. Часто тому, кто в дебрях все-таки разобрался, становится легко и просто что-то изменить или добавить, потому что в дебрях оказывается четкая организация и внутренний смысл.
← →
Anatoly Podgoretsky © (2011-07-08 14:11) [82]
> То есть в Паскале всегда можно пересортировать и это абсолютно
> безопасно
В Паскале можно, варианты абсолютно независимые и каким будет по счету вариант не играет роли, кроме оптимизации.
← →
tesseract © (2011-07-08 14:12) [83]
> Игорь Шевченко © (08.07.11 14:02) [78]
А отсутствие комментариев в коде говорит о том, что программист редкий гад.....
← →
Думкин © (2011-07-08 14:14) [84]
> tesseract © (08.07.11 14:12) [83]
У меня сейчас система (не моя - буржуинская) на тысячи таблиц, классов и т.п. Комментариев почти 0. Тем не менее вполне понимательна.
← →
clickmaker © (2011-07-08 14:18) [85]> А отсутствие комментариев в коде говорит о том, что программист редкий гад.....
вообще, грамотно написанный код в каментах не нуждается. Ну разве что какие-то экзотические неочевидные случаи
← →
Игорь Шевченко © (2011-07-08 14:20) [86]tesseract © (08.07.11 14:12) [83]
в VCL/RTL комментариев практически нет, однако код вполне читаемый.
← →
tesseract © (2011-07-08 14:47) [87]
> вообще, грамотно написанный код в каментах не нуждается.
Нуждается. Сокращается время на понимание алгоритма.
> однако код вполне читаемый.
На паскале вообще код хорошо читаемый. А вот на Си или DSQL можно потратить часа три-четыре на понимание.
← →
TUser © (2011-07-08 15:41) [88]
> в VCL/RTL комментариев практически нет, однако код вполне
> читаемый
справка же есть
← →
Игорь Шевченко © (2011-07-08 15:55) [89]
> А вот на Си или DSQL можно потратить часа три-четыре на
> понимание.
Ядро Unix System V и редактор vi тоже хорошо и понятно написаны.
← →
clickmaker © (2011-07-08 17:28) [90]> Нуждается. Сокращается время на понимание алгоритма.
методы и свойства могут нуждаться в чем-то типа xml-documentation, ну хотя бы для того, чтобы наведя мышь, можно было прочитать хинт, зачем вообще они нужны. А само содержимое не должно быть настолько запутанным, чтобы требовались детальные пояснения.
← →
tesseract © (2011-07-08 17:50) [91]
> А само содержимое не должно быть настолько запутанным, чтобы
> требовались детальные пояснения.
Все программисты считают свой код приятным и понятным, а чужой не очень.
← →
Компромисс (2011-07-08 18:02) [92]Чего тут спорить. Если алгоритм несложный, то комментарии не нужны, благодаря правильному разделению на процедуры и правильному именованию переменных/процедур. Если алгоритм сложный, то комментарии нужны. Большинство алгоритмов не сложны.
← →
tesseract © (2011-07-08 22:24) [93]
> Большинство алгоритмов не сложны.
Когда я кому-нить высылаю код запроса для расчета DDP или себестоимости хранения у всех крышу отворачивает :-)
← →
Rouse_ © (2011-07-08 22:37) [94]
> tesseract © (08.07.11 17:50) [91]
> Все программисты считают свой код приятным и понятным, а
> чужой не очень.
В этом месте принято добавлять "IMHO"
← →
Johnmen © (2011-07-08 23:11) [95]
> Palladin © (07.07.11 16:20)
Требования не соответствуют профициту. Категорически. Даже для Питера.
← →
TUser © (2011-07-08 23:18) [96]А почему книжки по программированию состоят не только из кода, но и из текста? Если из кода все понятно - ну публиковали бы распечатку vcl, зачем Кэнту хлеб ест?
← →
_Юрий (2011-07-09 00:29) [97]
> TUser © (08.07.11 23:18) [96]
> А почему книжки по программированию состоят не только из
> кода, но и из текста?
Потому, что книжки - это учебный материал. Их читает человек, который пока не умеет читать код.
А в боевом коде обильные комментарии только усложняют чтение, потому чо загромождают его.
Что нужно - так это краткие описания для паблик-типов и членов, причем среда должна в обязательном порядке уметь их показывать хинтом при выборе из списка, а также схлопывать их в коде, чтобы они не занимали место.
Кстати как сейчас с этим в delphi? Кто нибудь пользуется XML-документацией? Я попробовал - не сработало, но вероятно я сам что-то не так сделал, разбираться было лень.
← →
Kerk © (2011-07-09 00:44) [98]
> А в боевом коде обильные комментарии только усложняют чтение,
> потому чо загромождают его.
Причем не только чтение. В случае чего придется править не только код, но и комментарии, т.е. делать две работы. А если изменил код, но забыл/поленился изменить комментарии - это совсем капец для будущих поколений.
← →
clickmaker © (2011-07-09 13:39) [99]> А если изменил код, но забыл/поленился изменить комментарии
интересно, а бывает наооборот? )
← →
Palladin © (2011-07-09 20:28) [100]
> Johnmen © (08.07.11 23:11) [95]
"Не сыпь мне соль на рану" )
← →
Johnmen © (2011-07-09 23:38) [101]
> Palladin © (09.07.11 20:28) [100]
Да, но какова всё же вероятность найти здесь требуемого спец-та на заявленные ценности?
← →
Marser © (2011-07-10 02:07) [102]
> Kerk © (08.07.11 01:45) [34]
>
>
> > Inovet © (08.07.11 01:20) [33]
> >
> > > [30] Palladin © (07.07.11 23:47)
> > > быдлокодерское решение копипастеров из Люксофт
> >
> > Это что за компания?
>
> Одна из крупнейших IT-компаний России как-никак. Стыдно
> не знать :)
> По фирменному стилю не скажу, напрямую не пересекался.
Хи, я думал, она украинская :)
Киевский офис достаточно пафосен :)
Здесь нету, по-моему...
← →
MsGuns © (2011-07-11 15:32) [103]«Luxoft совместно с Harman International разрабатывает высокотехнологичные информационно-развлекательные системы для автомобильной промышленности
Наверное, меня тут обвинят в черносотничестве и прочих бяках, но чует мой длинный нос тут широкую длинную толстую деньгу и чубатых мускулистых ребят с бензопилами :)
← →
Inovet © (2011-07-11 16:09) [104]> [103] MsGuns © (11.07.11 15:32)
> широкую длинную толстую деньгу и чубатых мускулистых ребят с бензопилами :)
Бейсбольные биты уже вышли из моды?
← →
MsGuns © (2011-07-13 01:36) [105]А что, битами можно пилить ?
← →
Inovet © (2011-07-13 01:40) [106]> [105] MsGuns © (13.07.11 01:36)
> А что, битами можно пилить ?
Мускулистые ребята по части бит спецы, но со временем в местах не столь отдалённых и бензопилами орудуют.
← →
Делфиец (2011-07-14 10:47) [107]
> Palladin © (07.07.11 16:20) [0]
А вы бы могли быть так любезны оставить телефончик здесь
← →
Palladin © (2011-07-14 11:10) [108]? Пиши на почту, не стесняйся.
← →
Делфиец (2011-07-14 13:16) [109]
> Palladin © (14.07.11 11:10) [108]
> ? Пиши на почту, не стесняйся.
На hh.ru отклик сделал.
Может вам несилюно матерые программисты нужны?
Бывает как напишут требования к кандидату, а в реальности, человек потом сидит только формы забивает.
← →
Andy BitOff © (2011-07-14 13:52) [110]
> Делфиец (14.07.11 13:16) [109]
> На hh.ru отклик сделал.
Тимуру на почту напиши. У нас нет доступа на hh, а начальство может не пропустить.
← →
Dennis I. Komarov © (2011-07-14 14:06) [111]
> Делфиец (14.07.11 13:16) [109]
Все хотят, что бы их на работу возил пилот F1 :)
Но все почему-то стесняются приписать пару-тройку не лишних нулей :(
← →
Palladin © (2011-07-14 20:23) [112]Да ппц, господа. В вакансии указан конкретный контактный адрес пресловутого email, в народе "электрическая почта с собакой", другие виды контактов не приветсвуются.
На запрос предоставить телефон было рекомедовано "таки почтой" (а занафига мне озвученный спам с предложением увеличить орган... тыщу за час), нет "а давайте пошлем отзыв на какой то хэхэ" к которому лично я никакого отношения не имею... и эти религиозные люди ищут работу...
не могу не процитировать Ketmar"а "Трудно быть идиотом, но народ, я смотрю, старается"...
ну хрен ли ты отправил на хэхэ, генеральному не понравится количество запятых в твоем отзыве, и тебе укажут путь к ягодам в лесу... а тут бы глядишь, я бы глянул на код, а вдруг приемлимо, есть потенциал, техдиру отправил, с ним обсудили бы, потом бы уже и с генеральным разговор был...
что за неадекватность такая...
← →
Делфиец (2011-07-16 00:26) [113]Удалено модератором
← →
Делфиец (2011-07-20 20:50) [114]Удалено модератором
← →
Andy BitOff © (2011-07-21 10:51) [115]Удалено модератором
← →
Делфиец (2011-07-21 20:48) [116]Удалено модератором
← →
Andy BitOff © (2011-07-21 21:53) [117]Удалено модератором
← →
Делфиец (2011-07-21 22:43) [118]Удалено модератором
← →
Andy BitOff © (2011-07-21 23:11) [119]Удалено модератором
← →
картман © (2011-07-21 23:20) [120]Удалено модератором
← →
Kerk © (2011-07-21 23:27) [121]Удалено модератором
← →
картман © (2011-07-21 23:30) [122]Удалено модератором
← →
Делфиец (2011-07-21 23:36) [123]Удалено модератором
← →
Palladin © (2011-07-21 23:53) [124]Удалено модератором
← →
Palladin © (2011-07-21 23:58) [125]замучили, вакансия закрыта
Страницы: 1 2 3 4 вся ветка
Форум: "Прочее";
Текущий архив: 2011.11.20;
Скачать: [xml.tar.bz2];
Память: 0.78 MB
Время: 0.006 c