Форум: "Прочее";
Текущий архив: 2008.08.24;
Скачать: [xml.tar.bz2];
Внизтребуется программист Delphi Найти похожие ветки
← →
DRG (2008-06-11 10:48) [40]
> Просто я сталкивался с конторами, которые поступали так:
> берут человека на "тестовый" период, для выполнения "тестовых"
> задач. После окончания "тестового", когда надо бы поднять
> зарплату, говорят "до свидания
>
На этом не экономят. Намного дешевле будет взять человека на длительный период - это очевидно и понятно любому. Т.к. одна программа - один человек - он знает все тайные и критические места, знает баги которые могут возникнуть. Быстро фиксит появившиеся баги. Итп.
Каждый приходящий новый человек вносит свои изменения, в итоге это превращается в ад. Это все понимают, т.к. это очевидно.
Та контора с которой вы возможно вы сталкивались, развалилась бы сразу кое как написав одну программу.
Там где я работаю также есть испытательный срок - месяц или 2 месяца, и процентов 30 не проходят первый месяц, - по уровню подготовки, поэтому все что он написал, выбрасывается - т.к. нет смысла держать и продолжать.
Даже если продолжить написанное, - то это повторюсь, внесет множество путанниц, в итоге продукт не получится вообще.
Возможно вы с этим и столкнулись, интерпретировав из-за обиды эту ситуацию таким образом.
Так что на этом совсем не сэкономишь - одни растраты.
← →
DRG (2008-06-11 10:53) [41]Хотя мы наверное путаем тестовое задание, которое пишется в течении двух - четырех дней и испытательный срок который может идти несколько недель..
← →
KSergey © (2008-06-11 11:20) [42]> korneley © (11.06.08 10:32) [39]
> поступали так: берут человека на "тестовый" период, для
> выполнения "тестовых" задач.
Так тестовое задание или тестовый период?? Это ж разные вещи.
А в тестовый период уже "тестовые" задачи - ен выполняют, это ж понятно никому не надо.
← →
Romkin © (2008-06-11 11:52) [43]
> Собственно я его и освоил где-то за чуть меньше месяца,
> когда переходил с Си++.Полюбился мне этот язык очень - за,
> не побоюсь этого слова, гениальную простоту (после Си++).
> Конечно потом набирался еще опыта. Но если знаешь один
> язык, выучить другой намного проще и быстрее - это факт,
> который подтвердят люди знающие больше одного языка.
> бррр. Хорошо зная Си++ освоить ЯЗЫК дельфи можно за 3 дня.
> Ничего такого, чего нету в С++, кроме гениального string.
Да, освоить похожий язык можно быстро. Но полностью за месяц - очень вряд ли. Тем более, что многие вещи в Delphi решаются совсем иначе, чем в С++.
Освоить язык - это не просто выучить синтаксис, но и научиться мыслить в терминах этого языка. А на это месяца мало, на мой взгляд.
Программы, написанные на Delphi сишником - душераздирающее зрелище, как правило. Средства С++ а синтаксис Delphi :)
Впрочем, обратное тоже верно :)
← →
Romkin © (2008-06-11 11:57) [44]
> До сих пор при решении особенно запутанных задач не ленюсь
> рисовать блок-схемы и делать отладку на бумаге с ручкой
> и карандашами двух цветов ;) Результат, как правило, один
> и тот же - код практически сразу работает ! К сожалению,
> нынешняя молодежь вовсе не пользуется блок-схемами. Иногда
> приходится заставлять ;(
Хм. Я ими не пользуюсь исходно. На мой вгляд, программа на Паскале - та же блок-схема. Зачем повторяться?
Впрочем, отладкой тоже - изредка запустить с парой точек останова. А так - мне исключение скажет, что не в порядке.
← →
clickmaker © (2008-06-11 12:03) [45]> душераздирающее зрелище, как правило. Средства С++ а синтаксис
> Delphi
например?
← →
MsGuns © (2008-06-11 12:11) [46]>Хм. Я ими не пользуюсь исходно. На мой вгляд, программа на Паскале - та же блок-схема. Зачем повторяться?
Нет, вовсе не та. К коде, как правило, приходится разбивать весь алгоритм на куски (модули, библитотеки, процедуры, функции) и увидеть все в целом невозможно, т.к. "прыгая" по процедурам и юнитам, легко потерять общую канву. На блок-схеме же все прекрасно видно.
Хотя, конечно, есть люди с супермышлением, у которых в голове "умещаются" даже такие грандиозные вещи, как чертежи конструкции самолета ;)
Кроме того, блок-схема существенно поможет "въехать" в алгоритм новому человеку.
Да и от языка она практически не зависит.
Жаль только, что нереально в нынешнее время каждый проект "оснащать" подробными и достоверными блок-схемами.
← →
Romkin © (2008-06-11 12:20) [47]
> например?
Ох. Так вот навскидку - сложно. Проще найти сишника и попросить написать...
Но вот, недавно встретилось подобное:
const
IID_IPicture : TGUID = "{7BF80980-BF32-101A-8BBB-00AA00300CAB}";
procedure LoadPictureFile(Name : String);
var
aFile : HFILE;
pstm : IStream;
pvData : Pointer;
dwBytesRead : DWORD;
dwFileSize : DWORD;
Global : HGLOBAL;
i:longint;
begin
aFile := CreateFile(PChar(Name), GENERIC_READ, 0, NIL, OPEN_EXISTING, 0, 0);
if aFile = INVALID_HANDLE_VALUE then
Exit;
dwFileSize := GetFileSize(aFile, NIL);
if dwFileSize = -1 then
Exit;
pvData := NIL;
Global := GlobalAlloc(GMEM_MOVEABLE, dwFileSize);
if Global = 0 then
begin
CloseHandle(aFile);
Exit;
end;
pvData := GlobalLock(Global);
if pvData = NIL then
Exit;
dwBytesRead := 0;
if not ReadFile(aFile, pvData^, dwFileSize, dwBytesRead, NIL) then
Exit;
GlobalUnlock(Global);
CloseHandle(aFile);
pstm := NIL;
if CreateStreamOnHGlobal(Global, True, pstm) <> S_OK then
Exit;
if pstm = NIL then
Exit;
if Assigned(gpPicture) then
gpPicture := NIL;
if OleLoadPicture(pstm, dwFileSize, False, IID_IPicture, gpPicture) <> S_OK then
begin
pstm := NIL;
Exit;
end;
GlobalFree(Global);
pstm := NIL;
end;
Либо буквальный перевод с С++, либо просто сишник писал.
← →
Romkin © (2008-06-11 12:26) [48]
> Нет, вовсе не та. К коде, как правило, приходится разбивать
> весь алгоритм на куски (модули, библитотеки, процедуры,
> функции) и увидеть все в целом невозможно, т.к. "прыгая"
> по процедурам и юнитам, легко потерять общую канву. На блок-
> схеме же все прекрасно видно.
Это ж какая блок-схема доолжна быть?!
Нетушки. Модули и предназначены для разграничения кусков. И чем меньше связей - тем лучше. Мне, как правило, скакать приходится максимум по двум модулям, чтобы увидеть, что делается.
← →
clickmaker © (2008-06-11 12:58) [49]> [47] Romkin © (11.06.08 12:20)
Скорей всего, тупой перевод на скорую руку.
Любой сишник, оценив удобство try - finally, вряд ли будет долго цепляться за кучу if - Exit
← →
Павел Калугин © (2008-06-11 13:06) [50]> [11] Riply © (10.06.08 21:56)
И еще как, при условии что задачц выдвет человек способный ее решить.
> [21] Riply © (10.06.08 23:16)
а эта неувязочка обратно постановщику с запросом увеличения лимита времни
> [32] KSergey © (11.06.08 08:01)
ну для начала, в нашем случае, в "аренду спеца" уже входит "аренда стола" ибо спец сам себя обеспечивает компутером, тырнетом, крышей над головой, столом, стулом, электричеством, и так далее. А это само по себе не такие малые деньги.
← →
Romkin © (2008-06-11 13:10) [51]
> Скорей всего, тупой перевод на скорую руку.Любой сишник,
> оценив удобство try - finally, вряд ли будет долго цепляться
> за кучу if - Exit
Да, скорее всего. Но тут не только это. Тут и IID_IPicture не нужно, и IStream из файла в одну строчку получить можно, и страсть сигнализировать об ошибке возвращая NULL или статус вместо генерации исключения...
Ну не верю я, что за месяц можно освоить system, typinfo и classes с SysUtils например. Освоить - чтобы знать, что там есть и как это работает. А ведь это практически основа.
← →
DRG (2008-06-11 13:15) [52]
> 2 Павел Калугин ©
Страховки не оплачиваются, налоги как правило тоже не берет на себя работодатель, кофе тоже не оплачивает, мебель не закупает :)
В сумме это очень приличные деньги.
Я ж и говорю - по идее на удаленке должны платить больше чем офисным служащим.
← →
DRG (2008-06-11 13:20) [53]О-да, первое за что будет братся обучающийся в первый месяц это system и typinfo :)
← →
Anatoly Podgoretsky © (2008-06-11 13:27) [54]> DRG (11.06.2008 13:20:53) [53]
Первый месяц переходящий из Си будет ругаться, как гадость эта ваша заливная рыба.
← →
Sapersky (2008-06-11 13:39) [55]Любой сишник, оценив удобство try - finally, вряд ли будет долго цепляться за кучу if - Exit
А разве API-функции, рассчитанные на возврат кода ошибки, возбуждают исключения? Если нет, то я сомневаюсь, что с try-finally получится короче.
и IStream из файла в одну строчку получить можно
То, чем можно, в стандартных заголовках D5-D7 не описано.
← →
clickmaker © (2008-06-11 13:42) [56]> А разве API-функции, рассчитанные на возврат кода ошибки,
> возбуждают исключения?
Win32Check(CreateFile(...) <> INVALID_HANDLE_VALUE)
OleCheck(CreateStreamOnHGlobal(...))
← →
Romkin © (2008-06-11 13:49) [57]
> То, чем можно, в стандартных заголовках D5-D7 не описано.
Что такое "стандартные заголовки"?
> А разве API-функции, рассчитанные на возврат кода ошибки,
> возбуждают исключения? Если нет, то я сомневаюсь, что с
> try-finally получится короче.
Короче-короче, не сумлевайся. Даже без исключений. Хотя бы потому, что finally и на exit срабатывает.
Есть еще win32Check, RaiseLastOSError, OleCheck...
← →
Romkin © (2008-06-11 13:54) [58]clickmaker © (11.06.08 13:42) [56], утрируя:
pstm := TStreamAdapter.Create(TFileStream.Create(Name, fmOpenRead), soOwned);
← →
Sapersky (2008-06-11 14:33) [59]Win32Check(CreateFile(...) <> INVALID_HANDLE_VALUE)
А, ну да. "Когда-то знал, но забыл". Спасибо, что напомнили.
Что такое "стандартные заголовки"?
ActiveX.pas. CreateStreamOnHGlobal там есть, а этой функции:
function SHCreateStreamOnFileA(FileName: PChar; grfMode: DWORD; var stream: IStream):HResult; stdcall; external "shlwapi.dll" name "SHCreateStreamOnFileA";
...которую я подразумевал под "одной строчкой" - нет.
А вы имели в виду TStreamAdapter? Ну точно, я - сишник, даром что Си никогда не любил :)
← →
Kent (2008-06-11 14:37) [60]
> Короче-короче, не сумлевайся. Даже без исключений. Хотя
> бы потому, что finally и на exit срабатывает.
Толку то, чтобы загасить это исключение придется как минимум писать пустой try except - а над ним - try finally. Так что это спорный вопрос что удобнее и запутанней.
← →
wl © (2008-06-11 15:10) [61]а в коде из [47] случайно не возникнет утечка памяти и незакрытый хендл файла после некоторых Exit; ?
← →
Пробегал2.... (2008-06-11 15:26) [62]@!!ex © (11.06.08 7:48) [31]
std::string ну ничем не отличается от гениального string
а это в любом С++ компиляторе встроено?
← →
Игорь Шевченко © (2008-06-11 15:28) [63]хотел бы я знать, чем код в [47] отличается от
try
try
try
try
.........
finally
....
finally
...
finally
...
finally
и еще кучи except внутри по ясности и удобочитаемости.
← →
wl © (2008-06-11 15:43) [64]
> Пробегал2.... (11.06.08 15:26) [62]
да, stl (в составе которого std::string) входит в стандарт языка c++
← →
Romkin © (2008-06-11 16:19) [65]Входит-то входит, но почему-то все стараются свою строку написать.
CString, QString, BSTR и тд.
Вот в Delphi, кажется, никому в голову не приходит свою реализацию строк написать.
← →
clickmaker © (2008-06-11 16:22) [66]> [65] Romkin © (11.06.08 16:19)
> Входит-то входит, но почему-то все стараются свою строку
> написать
потому что кроме строк там еще до фига кода, в котором без стакана сложно разобраться )
← →
Игорь Шевченко © (2008-06-11 16:22) [67]
> Вот в Delphi, кажется, никому в голову не приходит свою
> реализацию строк написать.
В MS тоже. Странно, да ?
← →
Игорь Шевченко © (2008-06-11 16:23) [68]
> Вот в Delphi, кажется, никому в голову не приходит свою
> реализацию строк написать
В C++Builder кстати реализованы Delphi-строки (AnsiString)
← →
Romkin © (2008-06-11 16:25) [69]
> В C++Builder кстати реализованы Delphi-строки (AnsiString)
Угу, до кучи :)
> В MS тоже. Странно, да ?
А CString?!
← →
Anatoly Podgoretsky © (2008-06-11 16:29) [70]> Romkin (11.06.2008 16:19:05) [65]
Потому что в Дельфи это элемент языка, а не библиотечное расширение.
← →
Игорь Шевченко © (2008-06-11 16:31) [71]
> А CString?!
Ну да. А что, кроме нее в MS еще кучу строк реализовали ?
← →
wl © (2008-06-11 16:32) [72]насчёт CString - вероятно, это сделано с целью совместимости, например, если MFC появился раньше, чем STL вошел в стандарт языка.
в BCBuilder 6 кстати тоже можно пользоваться std::*, там включена реализация STLPort, довольно неплохая
← →
Romkin © (2008-06-11 16:34) [73]
> Ну да. А что, кроме нее в MS еще кучу строк реализовали
> ?
А BSTR? :D
← →
Игорь Шевченко © (2008-06-11 16:35) [74]
> А BSTR? :D
Это OLE-тип и к С++ не имеет ни малейшего отношения, OLE от языка не зависит
← →
Игорь Шевченко © (2008-06-11 16:35) [75]
> А BSTR? :D
В Delphi тоже есть
← →
@!!ex © (2008-06-11 16:35) [76]> [65] Romkin © (11.06.08 16:19)
Чем std::string плох?
В нем вроде все тоже самое что и в дельфевом стринге...
А делают свои... наверно гемороя хочется.
← →
Mystic © (2008-06-11 16:43) [77]> Чем std::string плох?
Многие библиотеки, которые были разработаны до стандарта, используют свои строки (wxString, CString, ...) Ну и"test" + " " + "text"
не напишешь.
← →
Romkin © (2008-06-11 16:47) [78]
> Это OLE-тип и к С++ не имеет ни малейшего отношения, OLE
> от языка не зависит
Однако в С++ он есть! И еще wchar_t, _bstr_t, char*
Ик!
← →
Игорь Шевченко © (2008-06-11 16:50) [79]Romkin © (11.06.08 16:47) [78]
> Однако в С++ он есть! И еще wchar_t, _bstr_t, char*
в C++ из перечисленных тобой есть только char*
То, что написано через #define и typedef типами не является. Ку ?
Если <IYFEGH> напишет в Delphi
type
MySuperPuper = string;
от этого в языке нового типа строки не появится.
← →
Romkin © (2008-06-11 16:52) [80]Да какая разница? Когда в одном исходнике встречается три-четыре разных типа строки - тут поллитрой не обойдешься :)
Страницы: 1 2 3 4 вся ветка
Форум: "Прочее";
Текущий архив: 2008.08.24;
Скачать: [xml.tar.bz2];
Память: 0.63 MB
Время: 0.046 c