• Главная
  • Оглавление
  • Обратная связь
  • Лента RSS
  • Правила
Что здесь уже нашли

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




Найдено страниц: 30 [показано 10]

  1. Урок информатики для мелкософта (пояснение к залепе №8)

    Степень соответствия запросу: 55,05%
    Фрагменты текста поста :
    ... Дело в том, что это сделано не только (и не столько) для того чтобы избавить пользователя от написания длинных строк... ... Выходило, что чтобы получить оптимальное по скорости и памяти решение (например драйвер устройства или часть ядра ОС) необходимо использовать только ассемблер, напороть ошибок в котором проще простого... ... возможность указать, что переменная должна храниться в регистре процессора, а не в памяти... ... возможность управления размещением переменных и полей структур в памяти... ... команды выделения/освобождения памяти... ... Но эта простота существует только до тех пор, пока наши переменные имеют простой тип... ... А получится следующее: для объекта a будет вызван метод T operator+(const T&) const , которому в качестве параметра будет "скормлен" объект b... ... этот метод что-то сделает (например прибавит одно к другому) и создаст временный объект типа Т для хранения результата... ... затем метод вернет ссылку на созданный временный объект (назовем его " объектом D ")... ... будет вызван метод объекта с : T& operator=(const T&) , т... ... этот метод и приведет объект с в соответствие с состоянием объекта D , переданного в качестве аргумента... ... Временный объект D будет уничтожен... ... Первоочередную важность тут имеют не вызовы методов и не махинации с объектами, а тот факт, что наше простейшее и казалось бы безобидное выражение c = a + b приводит к автоматическому (скрытому от наших глаз) созданию и уничтожению объекта со всеми вытекающими отсюда накладками... ... Но тут я хочу напомнить, что создание объекта - это не только выделение памяти под сам объект, но и создание и инициализация всех его членов-полей (которые, в свою очередь, тоже могут быть объектами), а также выполнение конструктора этого объекта и всех конструкторов всех его предков... ... Соответственно уничтожение объекта - это вызов деструкторов объекта и всех деструкторов всех его предков плюс уничтожение всех его членов-полей, которые тоже могут быть объектами... ... Ну, а если этот объект представляет собой, например, таблицу из базы данных, который, вдобавок ко всему сказанному, при инициализации будет устанавливать соединение с этой самой БД и загрузку данных из нее, отъедая не только память и процессорное время, но еще и канал связи... ... Только лишь для того, чтобы программист мог написать различные варианты, оптимизированные для обоих случаев... ... Берем выражение a += b и препарируем его: для объекта a будет вызван метод T& operator+=(const T&) , которому в качестве параметра будет "скормлен" объект b... ... этот метод что-то сделает с объектом а (изменит его состояние ) и вернет ссылку на объект а... ... но только для С++... ... Отличие шарпа от С++ (в данном случае) в том, что наши переменные a и b являются на самом деле не "хранителями" объекта, а всего лишь ссылками на него... ... теперь ссылается на тот же объект в памяти, на который ссылается a... ... x становится равным 4 (они же ссылаются на один и тот же объект) после выполнения сгенерированного компилятором оператора operator+=() происходит что-то очень странное - связь переменных a и c внезапно разрывается, ибо теперь они указывают на совершенно разные объекты... ... Разве наше сложение не должно просто изменить объект, на который ссылается переменная a и всё... ... Получается, что оператор сложения создал временный объект с результатом (помните " объект D "... ... Вот так и будет у нас болтаться в памяти фантом (на который ссылается переменная c ), который должен быть давным-давно уничтожен, а правильнее - просто откорректирован еще в методе operator+=() , создание которого майкрософт возложило на компилятор и ( внимание... Подробнее: http://fit-media.com/post_1198760520.html


  2. Оптимизируем мышиную возню

    Степень соответствия запросу: 27,89%
    Фрагменты текста поста :
    ... Разработчик, в свою очередь, утирает заказчику нос, объясняя, что работать с клавиатурой - анахронизм, на дворе 21 век, эти подходы устарели и его (разработчика) контора использует только новейшие достижения и перспективные технологии... ... Но такие диалоги бывают только у продвинутых заказчиков... ... и сравню их с Adobe Photoshop : чтобы создать копию объекта, схватите его левой кнопкой мыши, оттащите и, не отпуская левую кнопку, щелкните правой... ... При этом исходно-захваченный объект вернется на свое место, а у вас "в руках" окажется его копия, которую вы можете тащить дальше... ... левый клик приводит к выделению объекта... ... При этому вокруг объекта появляются контрольные квадратики, тягая которые можно передвигать и масштабировать объект... ... Повторный левый клик по уже выделенному объекту меняет контрольные квадраты на контрольные стрелки, с помощью которых можно поворачивать и наклонять объект... ... Правда одновременно с масштабированием можно еще и поворачивать объект... ... Но зато для переключения в другие режимы (например для наклона объекта) приходится делать правый клик по объекту и выбирать нужный режим из выпадающего меню... ... Не забывайте, что даже с таким "скромным" набором элементов управления можно выстраивать очень хитрые комбинации типа: схватить объект левой кнопкой мыши, тащить объект с нажатой Ctrl + клики правой кнопкой... ... Для вышеописанного выше "китайского кода" может быть такое, например, объяснение: левой кнопкой хватаем и тащим объекты по экрану... ... клик правой кнопкой вызывает создание копии объекта в текущей позиции... ... Часто даже матерые пользователи забывают (а многие об этом и не догадываются), что объекты можно таскать не только левой кнопкой , но и правой и даже средней... ... Везде где можно используйте возможности технологии "Drag-and-Drop" Пользователю гораздо удобнее схватить объект и перетащить его в корзину или в другое окно, чем отметить объект и потом лазить по пунктам меню (или по многочисленным тулбарам) в поисках команды удаления/переноса... ... Например, было бы здорово, если бы в текстовом редакторе существовала возможность выделить кусок текста и перетащить его на кнопку принтера, тем самым послав на печать ТОЛЬКО выделенный текст... ... Точно так же, он должен сам свернуться, как только курсор мыши покинул его - пользователь видимо передумал делать выбор... ... Меню должно исчезнуть только после того, как мышь его покинет... ... И таких менюшек можно навешать столько сколько нужно... Подробнее: http://fit-media.com/post_1199978157.html


  3. Залепа №9. Microsoft друзей не признает.

    Степень соответствия запросу: 6%
    Фрагменты текста поста :
    ... Голуба "Правила программирования в С и С++" (речь идет именно о C++): Цитата: Как-то раз я видел интерфейс, в котором объект "календарь" позволял пользователю интерактивно выбирать дату, щелкая мышью на каком-либо из дней, показанных на изображении календаря... ... "Календарь" затем экспортирует эту дату в другие части программы, помещая ее в объект "дата", который возвращается из сообщения get_date()... ... При выполнении должным образом единственным видимым в других частях программы объектом был бы объект "дата"... ... "Дата" использовала бы объект "календарь" для реализации сообщения "инициализируй_себя" (которое могло бы быть конструктором), но "календарь" бы содержался внутри "даты"... ... Объект "дата" также мог бы поддерживать другие инициализирующие сообщения, такие как "инициализируй_себя_от_редактируемого_ввода" или "инициализируй_себя_из_строки", но во всех случаях объект "дата" отвечает за нужное для инициализации взаимодействие с пользовательским интерфейсом... ... никто, кроме "даты", даже бы не знал о существовании объекта "календарь"... ... Затем вы можете передавать объект "дата" всюду, куда необходимо... ... // создали объект "дата" с текущей датой внутри cd = new CDate("15... ... Из третьего пункта следует, что объекты класса CCalendar будут создаваться не пользователем, а только классом CDate , им же они будут контролироваться в течении всей жизни календаря и, в конце-концов, он же их будет и уничтожать... ... Судя по первым двум пунктам, наши объекты CDate и CCalendar будут активно вызывать методы друг друга... Подробнее: http://fit-media.com/post_1199568462.html


  4. Пользовательский интерфейс

    Степень соответствия запросу: 5,32%
    Фрагменты текста поста :
    ... Во-первых, в понятие пользовательского интерфейса (ПИ) входит не только, и даже не столько, картинка на экране - трехмерная, анимированная, просто выполненная в модном дизайне, - а способы взаимодействия пользователя с системой... ... Например, такой интерфейсный элемент как линейка прокрутки находится в противоречии с одним из основных принципов психологии восприятия: у человека может быть только одна точка активного внимания... ... До последнего времени на компьютерах любители могли только играть в игры... ... Прирастать пользователи будут только любителями... ... Наш (не)удачный предшественник - оконный интерфейс решил только первую задачу концептуального дизайна... ... Об общем стиле экранного изображения речи вообще не идет, если только не считать за таковой набор "тем"... ... Во многих моих интерфейсных раздумьях дорожные знаки занимают значительное место... ... Он утверждает, что наше восприятие основано на мотивации в том смысле, что если мы хотим есть, то видим только съедобные вещи, а если устали - то только предметы мебели, предназначенные для отдыха... ... Но эти сигналы крайне слабы, поскольку все кнопки выглядят одинаково, отличаясь только текстами в них, а функции у них совершенно различны... ... То есть из всего разнообразия изобразительных средств - формы, размера, цвета, текста - в кнопках диалогов используется только текст... ... Так же как при создании игр главным является баланс между сложностью игры и ее увлекательностью, выработка которого занимает основное время, так и в интерфейсе должен обеспечиваться баланс между функциональными возможностями программы, возможностями манипуляции ею и ее изобразительным рядом... ... Поле экрана разбивалось на прямоугольники-окна и вся работа велась только в одном из них - так называемом активном окне... ... Эта возможность не только теоретически осознана, но и уже около пяти лет находится в стадии экспериментального исследования... ... Это нормальная стена, только очень длинная, разбитая на три отрезка... ... Для Карда анимация - принципиальный момент, так как " анимация сохраняет в восприятии пользователя идентичность объекта ", то есть пользователь легко соотносит объекты в конечной точке движения с объектами в начальной... ... В этот интервал входит не только время вывода новой картинки на экран, но и время осознания ее пользователем, ведь определенное время и усилия тратятся пользователем на то, чтобы понять, как каждая следующая картинка соотносится с предыдущей... ... Современные дисплеи отображают миллионы цветов, но это - вещь в себе, поскольку, даже если человеческий глаз и в состоянии отличить столько оттенков, человеческий мозг не в состоянии придавать им смысл... ... С другой стороны, и такой простой сигнал, как мигание, имеет действительно миллионы хорошо осознаваемых оттенков, связанных с изменением яркости объекта во времени... ... К сожалению, следует констатировать, что сегодня стандартом стал плохой интерфейс, даже не столько плохо сделанный, сколько вообще "получившийся сам собой"... ... Однако, купив его и включив дома, этот покупатель будет, скорее всего, пользоваться стандартными кнопками для стандартных действий, показывая возможность А только гостям... Подробнее: http://fit-media.com/post_1204019048.html


  5. Кручу, верчу, обмануть хочу!

    Степень соответствия запросу: 1,79%
    Фрагменты текста поста :
    ... Поворот объекта в фотошопе"... ... :) Итак, давайте научимся поворачивать объекты в Photoshop... ... Если при повороте держать нажатой клавишу Shift , то объект будет поворачиваться на угол, кратный 15 градусам... ... Таким способом можно легко и точно повернуть объект на 15, 30, 45, 60, 75 и более градусов... ... Как видно из названия, эта трансформация позволяет наклонять объекты... ... Это значит, что нажав левую кнопку мыши и потянув в сторону вы повернете объект... Подробнее: http://fit-media.com/post_1212106379.html


  6. Файлы vs базы данных.

    Степень соответствия запросу: 1,05%
    Фрагменты текста поста :
    ... Таким образом, чтобы узнать, сколько человек посетило страницу stat... ... html в определенный день, нужно сперва вычислить сколько дней прошло с 1 января 2000 года до искомой даты, затем «заглянуть» в ячейку массива Пример кода $ar['pages']['/stat... ... Скрипт считывает в память ВЕСЬ файл статистики, не взирая на размер ( если посещаемость высокая или статистика собирается за большой срок, то это могут быть десятки или даже сотни мегабайт )... ... тут затронута обработка данных только из одного «раздела» статистики (а ведь скрипт еще должен скорректировать данные и в остальных), не описан блок, который проверяет доступность сайта для данного юзер-агента и хоста-источника (а он жрет времени тоже немало), не учтены потери на выделение/освобождение памяти и копирование целых веток массива, если автор решил (для упрощения программирования) отделить часть массива например так: Пример кода $as = $ar['allsein']... ... Для работы механизма БД, система должна будет загрузить целиком в память три файла индексов... ... После того как мы нашли с помощью индексов нужную запись, ее требуется загрузить в память... ... В нашем случае размер записи (для третьей таблицы) составляет 12 байт , ведь там только три поля — Q_ID , Date и Hits , каждое из которых представляет собой 32-битное число и занимает 4 байта... Подробнее: http://fit-media.com/post_1222679684.html


  7. Оптимизация PHP-кода

    Степень соответствия запросу: 1,03%
    Фрагменты текста поста :
    ... Удаляйте свои переменные для освобождения памяти, особенно если это большие массивы... ... Инкремент свойства объекта (т... ... это высокопроизводительная система кэширования объектов в памяти, которая повышает скорость веб-приложений за счёт уменьшения времени загрузки БД... ... Часто это излишне, поскольку методы и объекты занимают много памяти... ... Используйте сколько угодно предопределённых функций... ... Профилирование покажет вам, сколько времени выполняются части вашего кода... Подробнее: http://fit-media.com/post_1207831883.html


  8. Залепа №3. Майкрософт - антиглобалист!

    Степень соответствия запросу: 0,79%
    Фрагменты текста поста :
    ... Смысл этого отказа остается непонятным - без глобальных объектов просто невозможно написать ни одной программы, в крайнем случае хотя бы один объект но все же будет глобальным... ... Например объект, представляющий само приложение :) Но давайте лучше рассмотрим КАК это выглядит на практике... ... Думаю, никто не будет спорить, что в любой программе есть функции, не привязанные к какому-то определенному объекту, т... ... Так же есть и объекты, не являющиеся членами других объектов, т... Подробнее: http://fit-media.com/post_1197554266.html


  9. Искать или не искать - вот в чем вопрос.

    Степень соответствия запросу: 0,75%
    Фрагменты текста поста :
    ... И это касается не столько владельцев сайтов, сколько посетителей... ... Но если ресурс действительно крупный (а даже средние блоги могут легко заиметь несколько сотен докуметов), то в карте сайта уже нет места для прописки каждой страницы - только разделы и секции, что не есть хорошо, т... ... Если не вдаваться в подробности, то этот алгоритм просто сравнивает два слова и выдает число, которое является показателем, сколько нужно сделать вставок, замен и удалений символов, чтобы из первого слова получить второе... ... совпадет не только с реально однокоренными словами, но и со словами, совершенно никакого отношения к искомому не имеющими... ... Для поисковиков такое захламление только в плюс - увидят лишние ссылки на внутренние документы... ... Собственно реально приемлемый вариант только один, т... ... Остается только второй вариант - использование сторонних сервисов... ... Благо их в достатке - все поисковые машины только для того и рождены, чтобы реализовывать этот самый поиск... ... Нам же остается только лишь придумать способ использования их ресурсов для наших целей... Подробнее: http://fit-media.com/post_1245195136.html


  10. Залепа №13. О грамотном проектировании и неграмотном IDE.

    Степень соответствия запросу: 0,32%
    Фрагменты текста поста :
    ... Но если это будет справочник артикулов продукции, которых может быть несколько десятков тысяч, то мы получи дикий перерасход памяти, ведь для каждого объекта будет создано отдельное (пусть и скрытое) окно... ... Это вызовет не только расход памяти, но и будет существенно тормозить программу... ... все объекты вложенного класса (кем бы и где бы они не были созданы) имеют ПОЛНЫЙ доступ к членам своего класса-оболочки: они могут использовать и защищенные и даже закрытые методы класса-оболочки... Подробнее: http://fit-media.com/post_1204892317.html


История внешних поисковых запросов

Меню

  • Главная страница
  • Оглавление блога
  • Лента новостей
  • Обратная связь
  • Правила блога

Анонсы по темам

  • Все посты блога
  • С миру по нитке
  • Мысли вслух
  • Графика и фото
  • Кривизна платформы .NET
  • Грамотные интерфейсы
  • WEB-программирование
  • FlatCMS - шустрая и гибкая
  • Доработки Lasto-блога

Категории

  • Все посты по порядку
  • С миру по нитке
  • Графика и фото
  • Кривизна платформы .NET
  • Грамотные интерфейсы
  • WEB-программирование
  • FlatCMS - шустрая и гибкая
  • Доработки Lasto-блога

Сервисы

  • Поиск по блогу
  • Поиск по всему сайту
  • Шпионское досье

Реклама


Стоимость сайта

Мой вебсайт стоит 865 404,18 руб

Статистика

    Widgetize!
  • Время работы: 0,46772 сек.
  • Память: 17 664 кБт
  • Статистика привратника
Copyright FIT-Media.com, © 2007-2012
Главная | Общее оглавление | Обратная связь | Правила блога | Лента RSS