CodeRage 5, Video 1

Posted by on in Blogs
Embarcadero регулярно проводит онлайн-конференции для разработчиков, посвященных проблемам и перспективам использования средств разработки.
Последняя конференция CodeRage 5 запомнилась достаточно большим количеством интересных докладов, которые доступны в записи.

Наверное, было бы интересно послушать наиболее запоминающиеся. Естественно, просмотр и прослушивание записей более эффективно на русском языке. Данный пост открывает серию публикаций видео-докладов, локализованных на русский язык.

Скачать запись первой презентации можно по ссылке Delphi: трюки и советы.
Оригинальная версия (на английском языке) легко ищется здесь (Wednsday, Oct 6).

В данном докладе рассмотрены четыре темы:

  1. Шаблоны компонентов (Component templates)

  2. Хакерские трюки для модификации существующих классов (Hacks to modify an existing class)

  3. Побочные эффекты от точек останова (Breakpoints with side effects)

  4. "Умные" указатели на основе 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

  • Guest
    lucky Tuesday, 25 January 2011

    Большое спасибо за перевод, делаете доброе дело.

    Одним из ближайших хотелось бы видеть перевод видео-сессии "Software Archeology with Delphi (now with AQtime)" (Technical Session #23)

  • Guest
    Yuri Tuesday, 25 January 2011

    Хорошее видео, перевод отличный.

  • Guest
    Vsevolod Leonov Tuesday, 25 January 2011

    Спасибо за поддержку.
    Также рад получить рекомендации по-поводу следующих сессий.

  • Guest
    Yuri Tuesday, 25 January 2011

    "Умные" указатели - отличная вешь, жаль что она раньше не появилась. Я так пологаю что это чемто лучше чем .Net-овский сборщик мусора, т.к. не нужно ждать. Одно не понятно как оно понимает когда надо чистить.

  • Guest
    sw Tuesday, 25 January 2011

    Спасибо за заметку. Некоторые вещи действительно полезны и не все о них знают.
    Да и вообще спасибо, так бы я просто поленился бы пойти embarcadero.com

  • Guest
    Vsevolod Leonov Tuesday, 25 January 2011

    @Yuri
    Умные указатели - тема интересная, поэтому лучше, конечно, посмотреть материал именно по ним - благо в C++ они рассмотрены, описаны и разобраны в деталях. Код можно пропускать, а смотреть только области применения.
    Чем они лучше "сборщика мусора"? Опять же позволю себе отослать Вас к теме "недостатки автоматической сборки".
    Умные указатели в Delphi основаны на записях, которые... грубо говоря живут столько, сколько им положено без необходимости "убивать" их вручную. Они сами умирают и "утаскивают" за собой объект в динамической памяти (т.е. тот, которому Вы обычно Free пишете).
    Вас же не заботит
    procedure Pro;
    var
    i : integer;
    begin
    //...
    end;
    сколько живет, где рождается и как погибает "i"? Примерно так и обстоит дело с "умными" указателями. С одной стороны они - контролируют объект в динамической памяти ("нормальный Create-Free" объект в Delphi), с другой - вопросы их бытия не волнуют программиста.

  • Guest

    [...] Vsevolod Leonov » CodeRage 5, Video 1 blogs.embarcadero.com/vsevolodleonov/2011/01/25/coderage5video1/ – view page – cached Embarcadero регулярно проводит онлайн-конференции для разработчиков, посвященных проблемам и перспективам использования средств разработки. [...]

  • Guest
    Кузан Дмитрий Tuesday, 25 January 2011

    Спасибо за перевод и в некоторых местах уместный юмор.
    На примере умных указателей я наконец-то оценил преимущества обобщенного программирования, вернее увидел реальную пользу, а не демо-пример. Удачи и спасибо Вам за Ваши переводы. Хоть и информация об умных указателях была уже в версии 2009, я имею ввиду книгу Марко Канту,а дошла она видать с запозданием.

  • Guest
    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}

    Где реально он умрёт?

  • Guest
    Vsevolod Leonov Thursday, 27 January 2011

    Время жизни объекта контролируется "Умным_указателем".
    В случае сомнений при анализе кода, который компилируется, можно отследить вызов деструктора объекта, ссылка на который храниться в "Умном_указателе".

  • Guest
    Carl Carlson Sunday, 13 February 2011

    Здравствуйте.
    Хотелось бы online видео семинар по вопросам удаленной отладки (Remote Debugger) и локализации приложений на разные языки. Новая RAD имеет все эти инструменты, но информации маловато. Хотелось бы подробного рассмотрения этих инструментов.
    Спасибо.

  • Guest
    George Judkin Wednesday, 8 June 2011

    Читаю: "Здесь всё законно, на основе встроенных языковых возможностях. Это вам не канонический Шаманский метод Geo". И следующим же предложением "Но class helper-ы и еще один "трючок" очень облегчают жизнь, когда…".

    Ну, про хелперы понятно. Решил поинтересоваться, что же это за трючок такой, который противопоставлется (в качестве законного) каноническому (незаконному) Шаманскому методу Geo.

    Посмотрел и с удивлением увидел, что этот "трючок" -- не что иное, как... Шаманский метод Geo ;-)

    Долго думал...

    P.S. Кстати, и Марко Кэнту и Geo в один голос говорят, что этот трючок, не смотря на внешнее сходство с хакерскими приемами, на самом деле основан на "встроенных языковых возможностях".

  • Guest
    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. (Цитата) Пишем, компилируем, добавляем в палитру и, вуаля, можно бросать на форму и использовать новый компонент. Но у этого решения есть один минус: палитра компонент и так содержит много-много всякого разного. Хорошо, если сделали какой-то полезный универсальный компонент, который потом будем использовать постоянно. Тогда, вроде, и не жалко. А если это разовая разработка под конкретную задачу. А под следующий проект мы еще компонентов наделаем.

    Это всё говорит, что есть тенденция "клепать компоненты" с необоснованно большим количеством вариаций, что даже можно "завалить до бардака" палитру компонентов. Получается, что "шаманский метод" провоцирует на неправильную организацию труда программиста.

  • Guest
    George Judkin Thursday, 9 June 2011

    > не увидел слова helper
    Потому что его там нет ;-) В Delphi-1 не было хелперов, а то они обязательно попали бы в рассмотрение :D

    Спасибо за презентацию и перевод. Умные указатели понравились. Есть простор для изобретательства.

  • Guest
    Vsevolod Leonov Thursday, 9 June 2011

    Юрий, дорогой,
    >>Есть простор для изобретательства.
    если что-нибудь изобретешь, внеси меня в список читателей!
    Тебя - всегда с радостью читаю. Даже перечитываю порой :)

  • Guest
    URL Saturday, 24 December 2011

    ... [Trackback] ...

    [...] Informations on that Topic: blogs.embarcadero.com/vsevolodleonov/2011/01/25/coderage5video1 [...] ...

  • Guest
    Homepage Saturday, 7 January 2012

    ... [Trackback] ...

    [...] Read More here: blogs.embarcadero.com/vsevolodleonov/2011/01/25/coderage5video1 [...] ...

  • Guest
    Trackback Links Monday, 16 January 2012

    ...For further Information click here...

    [...]What could you recommend about your publish that you simply made some days in the past? Any positive?[...]...

  • Guest
    iPhone 5 release date Australia Friday, 27 January 2012

    ... [Trackback] ...

    [...] Informations on that Topic: blogs.embarcadero.com/vsevolodleonov/2011/01/25/coderage5video1 [...] ...

  • Guest
    start a blog:StartAblog Tuesday, 6 March 2012

    ... [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

Check out more tips and tricks in this development video: