yigal_s' Journal
 
[Most Recent Entries] [Calendar View] [Friends View]

Saturday, December 1st, 2012

    Time Event
    8:43p
    Цена дешевых книг Амазона
    http://ttolk.ru/?p=14454
    10:08p
    банальности OOD: объектно-ориентированная локировка
    вот мелочь вроде, а приятно.

    interface ILockable
    {
       void lock();
       void unlock();
    }


    хотя можно и так (далее будет понятно, почему)

    interface IEnterable
    {
       void enter();
       void leave();
    }


    Где это может применяться? Ну, для начала, мютекс ложится на этот интерфейс напрямую.

    А вот так ложится на этот интерфейс read-write lock:

    class RWLock
    {
        ILockable& readLock();
        ILockable& writeLock();
    }


    обратите внимание, эти функции ничего не локают, а только лишь возвращают интерфейс.

    мелочь, а приятно, поскольку позволяет использовать один и тот же guard класс для локировки чего угодно:

    Guard g1(mutex);
    Guard g2(rwlock.readLock());
    Guard g3(rwlock.writeLock());
    
    11:32p
    опять программистское - Inversion of Control
    Тут вот
    http://occuserpens.livejournal.com/700387.html?thread=3501027#t3501027

    возник интересный вопрос, а есть ли какие-то способы избавиться от Inversion of Control в случае GUI, то есть НЕ писать код как обработчик событий от мыши, клавиатуры и прочего, где каждое новое событие влетает в одну и ту же функцию, что напрочь гробит всякую структурность кода и его maintainability.

    Т.е. вот функцию scanf уже просто так не вызовешь и НЕ НАПИШЕШЬ, ибо сначала может нажаться клавиша клавиатуры, потом мышки, ну и вообще сначала вобьют буковку в одно окошко, а потом в другое.

    Хотелось бы, тем не менее, писать код GUI более вменяемо, чем это предлагают книги а-ля Петзольд, в идеале - просто в виде обычного линейного кода, или хотя бы в виде фрагментов линейного кода большей связности, чем просто в тупом обработчике событий, написанном как конечный автомат.

    Вопрос - есть ли подобные разработки?

    << Previous Day 2012/12/01
    [Calendar]
    Next Day >>

About LJ.Rossia.org