Перейти к содержимому

Фотография

Delphiпомощь, консультация


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 239

#201
akh

akh
  • Гость
  • 38 сообщений

Как можно ненавидеть ООП. Я как начал изучать ООП, подумал как я раньше без него вообще жил.

Из своего опыта могу сказать, что единственное место, где уместно ООП - это при разработке ГУИ на десктопах (как вы изволили выразиться - при рисовании морд к БД).
А сторонники ооп используют его везде (где надо, а чаще, где не надо).

Недавно от делать нечего просматривал книжку "The Art of Unix Programming". (Хоть я ни разу не юниксоид.)
Вот выдержки оттуда
имхо: золотые слова
а то что я подчеркнул - это то с чем я реально сталкивался в работе, и что меня реально бесит и по сию пору

The OO design concept initially proved valuable in the design of graphics systems, graphical user
interfaces, and certain kinds of simulation. To the surprise and gradual disillusionment of many, it
has proven difficult to demonstrate significant benefits of OO outside those areas.


OO languages make abstraction easy — perhaps too easy. They encourage architectures with thick
glue and elaborate layers. This can be good when the problem domain is truly complex and demands
a lot of abstraction, but it can backfire badly if coders end up doing simple things in complex ways
just because they can.


Object frameworks and object browsers are not a substitute for good design or documentation, but
they often get treated as one. Too many layers destroy transparency: It becomes too difficult to see
down through them and mentally model what the code is actually doing.


  • 0

#202
xxel

xxel
  • Завсегдатай
  • 146 сообщений

Как можно ненавидеть ООП.

легко. достаточно осознать, что польза от чистого ООП без поддержки обобщеного программирования и метапрограммирования равна 0. из-за этого факта страусу пришлось менять дизайн языка чтоб STL не выглядел так погано (не сильно помогло впрочем)

Я как начал изучать ООП, подумал как я раньше без него вообще жил.

тоже легко. весь WinAPI без него жил и ниче .

А сторонники ооп используют его везде (где надо, а чаще, где не надо).

дык классика же "Seasoned professional"
http://www.gnu.org/f...helloworld.html
  • 0

#203
Big Joe

Big Joe
  • Постоялец
  • 316 сообщений
Я про индивидуальное удобство и эффективность в разработке. Наследование, использование похожих между собой объектов и т.п. мне очень нравится. А что там жило без ООП мне по иксу. А ненавидеть нужно обосновано, или у вас как: все что я не люблю то и ненавижу
  • 0

#204
xxel

xxel
  • Завсегдатай
  • 146 сообщений

Я про индивидуальное удобство и эффективность в разработке. Наследование, использование похожих между собой объектов и т.п. мне очень нравится.

т.е. как и предпалагалось знаний в обобщеном программировании и метапрограммировании 0. чтото сильного удобства в создании специализированных списков в дельфи не наблюдалось при все его ООПупености.
впрочем радость от ООП вполне понятна. сродни тому, что когда все кругом используют к примеру жабу, человек, всю жизнь набиравший программы в машинных кодах узнает о существование ассеблера - о! круто! как удобно и эффективно! как я раньше без него жил. :-)

...мне очень нравится. А что там жило без ООП мне по иксу. ...

новое поколение кодеров растет. "незнаем и знать не хотим". хорошо.

А ненавидеть нужно обосновано......

Т.е. то, что akh специально выделил, прочесть никак не получается?
Или мне свой пост тоже надо весь выделить?

все что я не люблю то и ненавижу

и? где противоречия? надо ненавидеть, что любишь?
  • 0

#205
makeIT

makeIT
  • Гость
  • 23 сообщений

может вам нужен UML


да неее, я не о профессиональном моделировании каких-нибудь сложных систем.

просто когда решаешь задачи типа АСМ на моделирование (на Паскаль или Си), то один и тот же вид задач приходится решать сначала, т.е. нет конкретной методики написания таких программ.

из универа где участвовал в АСМ, я ушел учится в россию в универ, где такой команды нету, а программирование учат плохо. поэтому спросить не у кого. разве что в интернете покопаться. в википедии есть небольшая статья, но нужен разбор на примере.

кстати, насчет ООП. на втором курсе в универе (откуда ушел) должно было начаться изучение Дельфи, где и должны мы были познакомиться с ООП. до этого встречался только в книге Фаронова ТП 7.0. там было знакомство с ООП, ничего не понял и забил, решив подождать до 2-го курса, но я из универа ушел.

Сообщение отредактировал makeIT: 06.08.2010, 18:28:40

  • 0

#206
MMM

MMM
  • Постоялец
  • 322 сообщений
Хорош язык тот, на котором ты зарабатываешь больше и чаще. И не важно какой это язык? Нужно же еще уметь продать свои знания и умения
  • 0

#207
cw82

cw82
  • Гость
  • 47 сообщений
Ребят, посоветуйте книгу хорошую по делфи для начинающего. Просмотрел несколько книг, что то не понравились. Кто с каких книг начинал?
  • 0

#208
Gonzo

Gonzo
  • Свой человек
  • 565 сообщений
Ну можно взять Михаила Фленова - Библия Delphi
  • 0

#209
kant

kant
  • Гость
  • 34 сообщений


Как можно ненавидеть ООП. Я как начал изучать ООП, подумал как я раньше без него вообще жил.

Из своего опыта могу сказать, что единственное место, где уместно ООП - это при разработке ГУИ на десктопах (как вы изволили выразиться - при рисовании морд к БД).
А сторонники ооп используют его везде (где надо, а чаще, где не надо).

Я бы еще добавил что ООП полезно при написании бизнес-логики для приложений. В том числе и веб-приложений. Имееются ввиду полноценные приложения, а не только те которые просто отображают содержимое БД.
  • 0

#210
akh

akh
  • Гость
  • 38 сообщений



Как можно ненавидеть ООП. Я как начал изучать ООП, подумал как я раньше без него вообще жил.

Из своего опыта могу сказать, что единственное место, где уместно ООП - это при разработке ГУИ на десктопах (как вы изволили выразиться - при рисовании морд к БД).
А сторонники ооп используют его везде (где надо, а чаще, где не надо).

Я бы еще добавил что ООП полезно при написании бизнес-логики для приложений. В том числе и веб-приложений. Имееются ввиду полноценные приложения, а не только те которые просто отображают содержимое БД.

имхо в вебе ООП вообще ни к селу ни к городу
пхп был вполне самодостаточным языком, но потом, следуя моде, в него добавили ООП фичи, которые вообще не нужны для веб приложений, и самое смешное - их почти никто не использует

Изначально идея ООП была в том что объекты живут и обмениваются друг с другом событиями и сообщениями
В вебе ничего этого нет
HTTP-request и и в ответ - response,
Время жизни объекта - это время генерации HTML,
Нафик там ООП?

В том веб-проекте в котором я работал, как раз начальник и был ярым поклонником ООП.
Такого количества оберточного говнокода я больше нигде не видел,
Можно конечно говорить, что это от кривизны рук зависит, но имхо это именно ООП стимулирует раздутые библиотеки объектов и нечитаемый код.
Противников у ООП, ничуть не меньше чем сторонников. И рассматривать ООП как безоговорочную истину по меньшей мере наивно.

Собственно, врядли мы когда-ниубдь сойдемся во мнении, поскольку вы сторонник бизнес слоя на апп сервере, а я - базист, но потрепаться на форуме иногда полезно :spy:

Но хотя бы почитайте главу в книге Кайта, "developing succesful applications"

Помнится вы тоже рассказывали что на одном из ваших рабочих мест приложение тупо тормозило потому что данные не были проиндекисированы.
Вот на вашем примере можно сказать, какой бы ни был супернавороченный бизнес слой на апп сервере, приложение один фиг бы тормозило, пока вы в бд порядок не навели.
  • 0

#211
MaxPoll

MaxPoll
  • В доску свой
  • 1 038 сообщений
Привет.
Может ли кто подсказать как разрешить данную ситуацию

Re: TRichEdit;
a:string;
b: string;

Stream:= TMemoryStream.Create;
a:='12345';
re.Lines.Add(a);
Re.Lines.Savetostream(stream);
b:='67890';
Stream.Write(PChar(b)^, Length(b)*SizeOf(Char));
Stream.SaveToFile('Путь к файлу');

Так вот когда записывается в Stream переменная B то в ней после каждого символа прибавляется еще один нечитаемый символ. Переменная a записывается корректно.
В чем может быть проблема? ЧТото с кодировкой? Как можно обойти эту проблему?
  • 0

#212
darkfire

darkfire
  • Постоялец
  • 383 сообщений
УУУ опять раздули крестовый поход
теперь на ООП
ООП это инструмент и как всякий инструмент где-то применим, а где-то нет (вы же не забиваете гвозди микроскопом :laugh: )
Если речь о Делфи, то здесь объекты позволяют не парится со всякой прорисовкой форм и т.п.
Если у вас маленькая не заметная утилита не общающаяся с пользователем, то отключите их нафиг программа сразу станет легче, а если наоборот нужны формочки, то нафиг время тратить рисовать их руками (если нужна не обычная форма это тоже настраивается)
Для веба объекты нужны только для крупных разработок и исключительно для удобства (один раз подключить модуль, а потом вызывать сколько нужно экземпляров этой подпрограммы) как уже сказал может быть удобно может нет
  • 0

#213
Zinon

Zinon
  • Завсегдатай
  • 255 сообщений

Привет.
Может ли кто подсказать как разрешить данную ситуацию

Re: TRichEdit;
a:string;
b: string;

Stream:= TMemoryStream.Create;
a:='12345';
re.Lines.Add(a);
Re.Lines.Savetostream(stream);
b:='67890';
Stream.Write(PChar(b)^, Length(b)*SizeOf(Char));
Stream.SaveToFile('Путь к файлу');

Так вот когда записывается в Stream переменная B то в ней после каждого символа прибавляется еще один нечитаемый символ. Переменная a записывается корректно.
В чем может быть проблема? ЧТото с кодировкой? Как можно обойти эту проблему?


Похоже у вас среда D2009. В ней используется строка в формате UTF-16 по умолчанию
попробуйте так:
[b]
способ 1
var
   sInput: string;
   mStream: TMemoryStream;
   asInput: AnsiString;
begin
  mStream := TMemoryStream.Create;
  Re.Lines.Add('привет всем');
  Re.Lines.SaveToStream(mStream);
  sInput := 'Hello World';
  asInput := sInput; // здесь надо принудительно привести к анси
  mStream.Write(Pointer(asInput)^, Length(asInput) * SizeOf(AnsiChar));
  mStream.SaveToFile('c:\3.txt');
  mStream.Free;
end;

способ 2:
var
   sInput: string;
   mStream: TMemoryStream;
   usInput: Utf8String;
begin
  mStream := TMemoryStream.Create;
  Re.Lines.Add('привет всем');
  Re.Lines.SaveToStream(mStream);
  sInput := 'Hello World';
  usInput := Utf8Encode(sInput);
  mStream.Write(Pointer(usInput)^, Length(usInput));
  mStream.SaveToFile('c:\3.txt');
  mStream.Free;
end;

способ 3
var
   sInput: AnsiString;
   sStream: TStringStream;
begin
  sStream := TStringStream.Create;
  Re.Lines.Add('привет всем');
  Re.Lines.SaveToStream(sStream);
  sInput := 'Hello World';
  sStream.Write(Pointer(sInput)^, Length(sInput));
  sStream.SaveToFile('c:\3.txt');
  sStream.Free;
end;
[/b]

Можно конечно попробовать изменить кодировку уже в самом стриме, с помощью TEncoding.Convert (например в файловом стриме). Но это дольше и менее эффективнее. Поэтому лучше все преобразования (явные и неявные) делать до или во время записи в стрим

Сообщение отредактировал Zinon: 17.08.2010, 23:28:31

  • 0

#214
gorsun

gorsun
  • Случайный прохожий
  • 4 сообщений
куплю , проги на дисках готовые : VBA , SAS (finan. instrument ) i SQL . Srochno !!!
kcell 725 6II6
  • 0

#215
Серов Платон

Серов Платон
  • Случайный прохожий
  • 2 сообщений
Такое чувство, что в 2011 сюда вообще никто не заглядывал. =(
  • 0

#216
Tompak2

Tompak2
  • Гость
  • 35 сообщений

Такое чувство, что в 2011 сюда вообще никто не заглядывал. =(


Все элементарно Ватсон: Если не заметил, тут есть все данные сохраненные до сентября 2010. Значить хозяева восстановили единственное имеющийся на тот момент бэкап базу. Нужно радоваться шо есть некоторые популярные и полезные темы, а могло бы и ничего этого и не быть. Надеюсь ВВ тоже будет популярным благодаря нам. Перекочевал сюды.
  • 0

#217
biryukovm

biryukovm
  • Гость
  • 40 сообщений
Здравствуйте господа знающее Delphi не могли бы мне помочь , я уже не могу 2 недели решить проблему все сижу наней!!!! у меня такая проблема я подключил бд DBF и теперь у меня в grid есть поля мемо (txt) я не могу отобразить их выполнял




procedure TForm1.DBGrid1DrawDataCell(Sender: TObject; const  
                 Rect: TRect; Field: TField; State:  
                 TGridDrawState);  

var  
  P: array [0..50] of char; {размер массива, это количество необходимых символов}
  bs: TBlobStream;          {из memo-поля}  
  hStr: String;  

begin  
  if Field is TMemoField then  
  begin  
    with (Sender as TDBGrid).Canvas do  
    begin   {Table1Notes это TMemoField}  
      bs := TBlobStream.Create(Table1Notes, bmRead);  
      FillChar(P,SizeOf(P),#0); {строка завершается нулём}  
      bs.Read(P, 50); {читаем 50 символов из memo в blobStream}  
      bs.Free;  
      hStr := StrPas(P);  
      while Pos(#13, hStr) > 0 do  {удаляем переносы каретки и}
        hStr[Pos(#13, hStr)] := ' ';  
      while Pos(#10, hStr) > 0 do  {отступы строк}
        S[Pos(#10, hStr)] := ' ';  

      FillRect(Rect);  {очищаем ячейку}
      TextOut(Rect.Left, Rect.Top, hStr);  {заполняем ячейку данными из memo}
    end;  
  end;  
end;



и ошибка появляется
  bs: TBlobStream;		  {из memo-поля}
не могу её все решить! я в этом дели новичке в первые работаю с DBF таблицами
  • 0

#218
_mihey

_mihey
  • Гость
  • 10 сообщений
Добрый день!

В моем примере используются ADO компоненты, но это абсолютно не критично. В Вашем случае будет все тоже самое.
Итак. У Вас есть DataSet, который привязан к DataGrid через DataSource. Заходите двойным щелчком мыши в свой компонент, который представляет Ваш источник данных (TTable, TQuery, TADOTable, TADOQuery и т.д.). У Вас откроется список с перечнем столбцов. Выбираете Ваш столбец TMemoField (в моем примере он называется MT_BODY) и выделяете его. Затем переходите к списку событий (вкладка Events в ObjectInspector) этого столбца и добавляете обработчик события OnGetText (в моем примере ADOQuery1 это источник данных, MT_BODY наименование столбца таблицы). В обработчике пишете следующее:

procedure TForm1.ADOQuery1MT_BODYGetText(Sender: TField; var Text: String;
  DisplayText: Boolean);
begin
	Text := Copy(ADOQuery1MT_BODY.AsString, 1, 50);
end;

Пример проверен. Все должно работать.
  • 0

#219
Big Joe

Big Joe
  • Постоялец
  • 316 сообщений
глюк

Сообщение отредактировал Big Joe: 06.03.2012, 15:23:34

  • 0

#220
danzar

danzar
  • Частый гость
  • 61 сообщений

Ребят, посоветуйте книгу хорошую по делфи для начинающего. Просмотрел несколько книг, что то не понравились. Кто с каких книг начинал?


Архангельский А.Я. тебе в помощь ! Сам иногда туда заглядываю

Сообщение отредактировал danzar: 14.03.2012, 15:03:09

  • 0


Количество пользователей, читающих эту тему: 1

пользователей: 0, неизвестных прохожих: 1, скрытых пользователей: 0

Размещение рекламы на сайте     Предложения о сотрудничестве     Служба поддержки пользователей

© 2011-2022 vse.kz. При любом использовании материалов Форума ссылка на vse.kz обязательна.