CodeRage 5, Video 1
Последняя конференция CodeRage 5 запомнилась достаточно большим количеством интересных докладов, которые доступны в записи.
Наверное, было бы интересно послушать наиболее запоминающиеся. Естественно, просмотр и прослушивание записей более эффективно на русском языке. Данный пост открывает серию публикаций видео-докладов, локализованных на русский язык.
Скачать запись первой презентации можно по ссылке Delphi: трюки и советы.
Оригинальная версия (на английском языке) легко ищется здесь (Wednsday, Oct 6).
В данном докладе рассмотрены четыре темы:
- Шаблоны компонентов (Component templates)
- Хакерские трюки для модификации существующих классов (Hacks to modify an existing class)
- Побочные эффекты от точек останова (Breakpoints with side effects)
- "Умные" указатели на основе generics (Smart pointers with generics)
Почему выбран именно эта презентация в качестве открывающей? Очень многое говорит имя одного из авторов - Марко Кэнту (Marco Cantu). Тем более, что он собирался показать некое "хакерство". На самом деле, не было никакого реального "хакерства", которое часто изображается в runtime умелым использованием адресной арифметики. Здесь всё законно, на основе встроенных языковых возможностях. Это вам не канонический Шаманский метод Geo. Но class helper-ы и еще один "трючок" очень облегчают жизнь, когда... смотрите видео!
Шаблоны компонентов - тема хороша. Данная метода ну конечно не сравнима с фреймами или даже репозиторием форм... Однако очень хорошо дополняет технологию визуального программирования достаточно уместной в ряде случаев функцией.
Побочные эффекты от точек останова - весьма полезная тема, достойная помещения в долговременную память (мозга) для последующего внезапного извлечения по мере надобности.
Ну и конечно "умные" указатели разбивают "мифы" на тему слабости Delphi как языка. Особою ценность для "языковедов" представляет данный раздел презентации, детально разбирающий преимущества обновленных records, о чем Марко Кэнту подробно написал в своем труде "Delphi 2007 Handbook", раздел "Records on steroids" (стр. 99). Забавное название? В определенном смысле, классическая технология Delphi уже давно стала "весьма накаченной", в доказательстве чего готовятся новые локализованные версии видео-сессий с CodeRage 5.
И не забываем послушать маэстро Кэнту 27-го января!
зарегистрироваться на вебинар.

Comments
-
Vsevolod Leonov Tuesday, 25 January 2011
@Yuri
Умные указатели - тема интересная, поэтому лучше, конечно, посмотреть материал именно по ним - благо в C++ они рассмотрены, описаны и разобраны в деталях. Код можно пропускать, а смотреть только области применения.
Чем они лучше "сборщика мусора"? Опять же позволю себе отослать Вас к теме "недостатки автоматической сборки".
Умные указатели в Delphi основаны на записях, которые... грубо говоря живут столько, сколько им положено без необходимости "убивать" их вручную. Они сами умирают и "утаскивают" за собой объект в динамической памяти (т.е. тот, которому Вы обычно Free пишете).
Вас же не заботит
procedure Pro;
var
i : integer;
begin
//...
end;
сколько живет, где рождается и как погибает "i"? Примерно так и обстоит дело с "умными" указателями. С одной стороны они - контролируют объект в динамической памяти ("нормальный Create-Free" объект в Delphi), с другой - вопросы их бытия не волнуют программиста. -
Twitter Trackbacks for Vsevolod Leonov » CodeRage 5, Video 1 [embarcadero.com] on Topsy.com Tuesday, 25 January 2011
[...] Vsevolod Leonov » CodeRage 5, Video 1 blogs.embarcadero.com/vsevolodleonov/2011/01/25/coderage5video1/ – view page – cached Embarcadero регулярно проводит онлайн-конференции для разработчиков, посвященных проблемам и перспективам использования средств разработки. [...]
-
Спасибо за перевод и в некоторых местах уместный юмор.
На примере умных указателей я наконец-то оценил преимущества обобщенного программирования, вернее увидел реальную пользу, а не демо-пример. Удачи и спасибо Вам за Ваши переводы. Хоть и информация об умных указателях была уже в версии 2009, я имею ввиду книгу Марко Канту,а дошла она видать с запозданием. -
Yuri Thursday, 27 January 2011
>...вопросы их бытия не волнуют программиста.
В Примере:
...
tag: Integer;
O3: TObject;
O2: TStringList;
O1: TStringList;
...
O1 := TStringList.Create;
Умный_указатель := O1;
O2 := O1;
O3 := TObject(O1);
tag := Integer(O1);
...
end; {Конец видимости O1}
...
end; {Конец видимости O2}
...
end; {Конец видимости O3}
...
end; {Конец видимости tag}
Где реально он умрёт? -
George Judkin Wednesday, 8 June 2011
Читаю: "Здесь всё законно, на основе встроенных языковых возможностях. Это вам не канонический Шаманский метод Geo". И следующим же предложением "Но class helper-ы и еще один "трючок" очень облегчают жизнь, когда…".
Ну, про хелперы понятно. Решил поинтересоваться, что же это за трючок такой, который противопоставлется (в качестве законного) каноническому (незаконному) Шаманскому методу Geo.
Посмотрел и с удивлением увидел, что этот "трючок" -- не что иное, как... Шаманский метод Geo ;-)
Долго думал...
P.S. Кстати, и Марко Кэнту и Geo в один голос говорят, что этот трючок, не смотря на внешнее сходство с хакерскими приемами, на самом деле основан на "встроенных языковых возможностях". -
Vsevolod Leonov Wednesday, 8 June 2011
Юра, здравствуй!
1. (Цитата) Отсюда следует и безопасность использования такого вот, вроде бы, "шаманского" приема. Мы ОБМАНЫВАЕМ только дизайнер, который выполняет функции частичной кодогенерации и формирования ресурсного файла, но не участвует в процессе компиляции.
Автор сам сказал "обманываем"... Я так повёлся на лексику автора и назвал метод "незаконным"
2.
http://www.delphikingdom.com/asp/viewitem.asp?catalogid=1367 не увидел слова helper
Maco Cantu: Delphi 2009 Handbook, страница 76
class helper for
Поэтому и разделил два подхода.
3. Марко Кэнту употребил слово "a hack", что, видимо, дезориентирует неподготовленного читателя. Выглядит это как "плохое программирование", о чем, собственно, Марко Кэнту тоже сказал.
4. Ну и немного по Geo. (Цитата) Пишем, компилируем, добавляем в палитру и, вуаля, можно бросать на форму и использовать новый компонент. Но у этого решения есть один минус: палитра компонент и так содержит много-много всякого разного. Хорошо, если сделали какой-то полезный универсальный компонент, который потом будем использовать постоянно. Тогда, вроде, и не жалко. А если это разовая разработка под конкретную задачу. А под следующий проект мы еще компонентов наделаем.
Это всё говорит, что есть тенденция "клепать компоненты" с необоснованно большим количеством вариаций, что даже можно "завалить до бардака" палитру компонентов. Получается, что "шаманский метод" провоцирует на неправильную организацию труда программиста. -
URL Saturday, 24 December 2011
... [Trackback] ...
[...] Informations on that Topic: blogs.embarcadero.com/vsevolodleonov/2011/01/25/coderage5video1 [...] ... -
... [Trackback] ...
[...] Read More here: blogs.embarcadero.com/vsevolodleonov/2011/01/25/coderage5video1 [...] ... -
... [Trackback] ...
[...] Informations on that Topic: blogs.embarcadero.com/vsevolodleonov/2011/01/25/coderage5video1 [...] ... -
... [Trackback] ...
[...] There you will find 72782 more Infos: blogs.embarcadero.com/vsevolodleonov/2011/01/25/coderage5video1 [...] ... -
Please login first in order for you to submit comments
Большое спасибо за перевод, делаете доброе дело.
Одним из ближайших хотелось бы видеть перевод видео-сессии "Software Archeology with Delphi (now with AQtime)" (Technical Session #23)