Автор будет очень признателен, если Вы кликнете по одной из белых ссылок выше.
Вам это ничего не стоит, а автору сайта будет приятно ;)
Найдено страниц: 58 [показано 10]
Файлы vs базы данных.
Степень соответствия запросу: 61,07%
Фрагменты текста поста : ... Файлы vs базы данных... ... В последнее время все чаще нахожу в интернете статьи, которые расхваливают сайтовые движки, созданные без использования баз данных , т... ... сохраняющие данные в файлах... ... Непонятно почему, но народ истово верит в то, что именно такой подход (отказ от использования систем управления базами данных и хранение данных в файлах) дает гораздо большую производительность... ... Давайте рассмотрим процессы, проистекающие на сервере при работе КМС "на файлах" и сравним их с аналогичными процессами при использовании СУБД... ... В качестве примера «файлового подхода» я буду использовать движок этого блога ( Lasto-blog-B ), точнее работу его системы статистики... ... Естественно, точный алгоритм его работы мне не известен (т... ... автор скрывает исходники, шифруя все в байт-код с помощью Zend-Guard), но общие выводы можно сделать просто проанализировав содержимое файлов, хранящих статистические данные... ... Пользователям скриптов других производителей, также использующих файлы в качестве хранилища данных этот пост также должен быть интересен... ... Принципы работы достаточно ясны и понятны, вся информация легко-доступна для любого скрипта и интереса не вызывает... ... Нам гораздо важнее узнать, насколько оптимально использовать для этой работы файлы и действительно ли это быстрее, чем работа с базой данных... ... Особенность хранения данных Lasto-блогом такова, что статистика хранится в нескольких файлах: hits... ... db — данные о хитах (метка времени хита, IP-адрес источника, User-Agent клиента, хост источника, страница сайта к которой обратился клиент)... ... Странно, что Lasto не встроил какого-либо культурного просмотрщика и анализатора этих ценных данных... ... db — данные об обращениях RSS-ридеров... ... В данный момент нам эта инфа не интересна... ... В нем хранятся те данные, которые выводятся на странице статистики блога... ... Будем анализировать работу именно с этим файлом... ... Структура такова: allsein — данные о заходах с поисковиков по разным запросам хост | искомая фраза дата, количество заходов... ... agent — данные о броузерах и ботах user-agent броузера дата, количество заходов... ... pages — данные о посещенных страницах страница дата, количество заходов... ... rss_agent — данные о запросах от RSS-ридеров user-agent ридера дата, количество заходов... ... source — данные об источниках трафика URL страницы-источника дата, количество заходов... ... В первом «разделе» (данных о поисковиках и искомых фразах) разделителем данных является символ вертикальной черты... ... Короче, работы тут много... ... Ну а если это статистика за месяц и при этом с поисковиков в день приходит по несколько сотен человек, да еще по тысяче различных запросов, то получается весьма нехилый объем работы... ... Случаи когда с данной поисковой машины еще не было посетителей и нужно создавать целую ветку массива рассматривать не будем... ... тут затронута обработка данных только из одного «раздела» статистики (а ведь скрипт еще должен скорректировать данные и в остальных), не описан блок, который проверяет доступность сайта для данного юзер-агента и хоста-источника (а он жрет времени тоже немало), не учтены потери на выделение/освобождение памяти и копирование целых веток массива, если автор решил (для упрощения программирования) отделить часть массива например так: Пример кода $as = $ar['allsein']... ... // выделяем данные о заходах с искалок в отдельный массив Все это уже не столь важно... ... Для данного примера также будем рассматривать работу только с одним «разделом» статистики — данных о поисковых запросах... ... Скрипт должен получить данные из базы о количестве хитов «за сегодня»... ... Сразу скажу, что все операции будут выполнены функциями из ОТКОМПИЛИРОВАННЫХ библиотек PHP, поэтому скорость их работы будет максимальной... ... И хотя это будет гораздо быстрее чем сканирование массива (за счет работы библиотечных функций) все равно потребует много времени... ... Для работы механизма БД, система должна будет загрузить целиком в память три файла индексов... ... Но, в отличии от ранее рассмотренного варианта работы файлового движка, здесь размер этих файлов в десятки раз меньше... ... :-) %%%базы данных, файловые движки, CMS, оптимизация скорости работы%%%... Подробнее: http://fit-media.com/post_1222679684.htmlМаксимум производительности
Степень соответствия запросу: 7,12%
Фрагменты текста поста : ... За последние 20 лет сложилась странная ситуация - в то время как мощность компьютеров увеличилась в несколько тысяч раз, скорость работы пользователя в некоторых случаях даже замедлилась из-за непомерно раздутых операционных систем и программ... ... Например, производительность работы человека увеличивается, если все необходимые данные находятся "... ... Один из методов решения этой проблемы - предварительная загрузка данных... ... Так как заранее неизвестно, какие именно данные потребуются, может возникнуть необходимость загрузки большого объема данных, которые никогда не будут использованы - вот вам и противоречие между производительностью человека и компьютера... ... Производительность человека Существуют два метода, которые ведут к значительному увеличению производительности человека: Полное отстранение пользователя от работы... ... Этот метод наиболее эффективен, и сводит стоимость работы к нулю... ... Три операции, которые можно упростить Работая на компьютере, пользователи выполняют три основных операции: Принимают решения на основе информации, касающейся текущей задачи Собирают данные, необходимые для выполнения текущей задачи Манипулируют компьютером с помощью элементов управления Например, пользуясь автомобилем, пользователи вначале решают, куда они хотят ехать... ... Если рассмотреть каждый из этих шагов, уменьшая количество решений, которые необходимо принимать человеку, позволяя компьютеру самому собирать данные, и уменьшая количество манипуляций, необходимых для достижения цели, то производительность человека при работе с компьютером значительно увеличится... ... Уменьшение необходимости ввода данных Следующие методы могут увеличить производительность ввода данных, уменьшая количество необходимой для ввода информации: Автоматически заполняйте поля новой записи значениями предыдущей... ... Однако в зависимости от чистоты и избыточности поступающей информации, такой способ может потребовать больше ручной работы, которую он и призван уменьшить... ... предоставить пользователям выбирать наиболее удобный для них способ работы... ... Работа с клавиатурой была напряженной и требовала принятия множество мелких решений... ... Основная стратегия уменьшения субъективного времени восприятия: Пользователи должны быть постоянно заняты Когда в процессе работы возникает неизбежная пауза, например, потому что программа должна обратиться к серверу, убедитесь, что пользователь занят и развлечен... Подробнее: http://fit-media.com/post_1207048697.htmlЕсли не хочется кусать локти
Степень соответствия запросу: 6,4%
Фрагменты текста поста : ... Именно человеческая лень чаще всего служит причиной отсутствия резервной копии данных... ... Наилучший вариант — создание копии важных данные на сменных носителях... ... Если в вашей системе установлено несколько винчестеров и оригинальные (важные) данные расположены на первом из них, то копия всегда должна быть расположена на втором, третьем, четвертом винчестере, но только не на том, где лежит оригинал... ... Если винчестер выйдет из строя, то информации вы все равно лишитесь, но такой вариант все же позволит вам в некоторых случаях спасти данные... ... В этом случае копия данных должна располагаться в отдельной папке... ... Пояснять тут нечего — если уничтожите оригинал, то сможете поднять данные из резервной папки, но любое более серьезное происшествие (вирус, форматирование, выход из строя носителя) практически 100%-но лишит вас и оригинала и копии... ... Для резервирования данных создана масса специальных программ-бэкаперов — пару минут общения с любым поисковиком и вы найдете ссылки на десятки примеров такого софта... ... Есть даже одна, встроенная прямо в Windows ( Пуск — Программы — Стандартные — Служебные — Архивация данных )... ... Подавляющее большинство программ-бэкаперов имеет оконную морду (графический интерфейс) и многие русифицированы, поэтому разобраться в их работе не составит труда — выбирайте ту, что больше нравится и пользуйтесь... ... Их существует очень много, их работу быстрой не назовешь, да и автоматизировать сей процесс как правило нельзя... ... Таких недостатка два: медленная скорость работы и накопительность... ... Запускаем робота Ладно, как создавать копии и избавляться от них мы уже поняли, теперь попробуем автоматизировать сей процесс... ... Его недостатки: относительно медленная работа, т... ... Итак, условимся, что оригинальные данные находятся в папках c:\texts\ , c:\private\passwords\ и d:\work\prikaz\... ... rar d:\work\prikaz В результате его работы в папке arhiv диска F: будут созданы три файла: texts... ... Зато повторные запуски будут только изменять содержимое в уже созданных архивах и поэтому время их работы будет намного меньше... Подробнее: http://fit-media.com/post_1203529769.htmlВсе ли CMS одинаково полезны?
Степень соответствия запросу: 6,02%
Фрагменты текста поста : ... знать всякие сетевые заморочки типа HTML или CSS для работы с этой CMS совсем не нужно - система достаточно грамотная, чтобы понять, что от нее хочет очередной сайто-строитель... ... Третий недостаток - скорость работы... ... Четвертый недостаток - использование баз данных... ... В результате возникает "эффект продуктов Microsoft" - от версии к версии ОНО становится все больше и больше, хотя работу выполняет туже самую, что и раньше... ... Вторым последствием такой универсальности является блокировка работы посторонних скриптов, расположенных на том же хосте/домене... ... Седьмой недостаток - полное (или почти полное) отсутствие анализа работы... ... Может я чего-то упустил, но ни один из виденных мной движков не давал сколько-нибудь полной (и полезной) статистики работы сайта... ... И вот, что я хочу от него добиться: Максимальная оптимизация под поисковые системы ("управляемое" расположение контента в странице, облегченный дизайн, генерация псевдо-статических страниц) Минимальные размеры как движка, так и хранимых на сервере данных... ... Максимально высокая скорость работы... ... Оптимизация всех операций, кэширование, индексация данных для ускоренного доступа... ... Отсутствие необходимости использования баз данных (MySQL)... ... Все данные будут храниться в обычных файлах на сервере... ... Есть ядро (основа движка) и есть набор абсолютно независимых друг от друга модулей, которые можно отключать/подключать по мере необходимости, уменьшая размер CMS и увеличивая скорость ее работы... ... Все должно быть предельно просто и позволять очень быстро адаптировать практически любой скрипт для работы "под движком"... ... Возможность легкой модернизации ядра (например, при необходимости адаптации для работы с MySQL) Возможность "мирного" сосуществования с другими скриптами в пределах одного хоста/домена... ... Максимальная оптимизация под поисковые системы ("управляемое" расположение контента в странице, облегченный дизайн, генерация псевдо-статических страниц) В завершение скажу, что работа по созданию этого чуда уже начата... Подробнее: http://fit-media.com/post_1200405197.htmlAJAX — WEB 2.0 за 5 минут
Степень соответствия запросу: 5,75%
Фрагменты текста поста : ... jQuery сделает всю черную работу за вас... ... Естественно, что из всех фантастических возможностей jQuery, в этой статье я остановлюсь только на работе с AJAX... ... наш контейнер, в который мы и будем загружать данные... ... Но эти данные кто-то должен предоставить... ... Ему в качестве параметра передается URL, с которого необходимо получить данные... ... Гораздо чаще встречается ситуация, когда нужно отправить серверу какие-то данные и получить ответ, который, затем необходимо всунуть в контейнер... ... Решается эта задача так же просто, но сперва давайте создадим серверный скрипт, который будет получать данные с нашей страницы и отправлять ответ... ... > Мы будем отправлять данные (введенное имя) в скрипт методом POST (а почему бы и нет... ... К тому же далеко не всегда полученные данные нужно тупо поместить в контейнер, гораздо чаще требуется провести еще кое-какую обработку полученной информации уже на стороне клиента... ... передает данные на сервер и получает ответ, но при этом он не изменяет содержимое DOM... ... Вместо этого он позволяет создать функцию-обработчик полученных данных... ... считывать данные из полей, этим займется метод serialize(), который сам соберет все данные из формы и упакует их в формат, понятный для метода post()... ... Вместо этого он принимает третьим параметром функцию, которая будет обрабатывать полученные с сервера данные... ... Теперь, если вам нужно передать на сервер больше данных, то просто добавьте в форму сколько угодно полей различных типов (радио-кнопки, текстовые области, пароли, чек-боксы)... ... фреймворк сам определит количество и типы полей и сам соберет из них данные для отправки... ... Он упрощает отправку данных на сервер до предела &mdash... ... вам вообще ничего не придется программировать :) Не станем здесь городить огород с реальной загрузкой файлов, просто выведем данные о загруженном файле... ... Первая будет вызвана перед началом отправки данных (в данном примере она покажет alert-окно с надписью 'start uploading'), а вторая &mdash... Подробнее: http://fit-media.com/post_1262093659.htmlГрамотный интерфейс: поля ввода
Степень соответствия запросу: 3,35%
Фрагменты текста поста : ... Грамотный интерфейс: поля ввода Очень часто в программах данные вводятся в формах, содержащих множество полей: поле фамилии, имени, адреса, номера паспорта, размера обуви... ... Гораздо лучше изначально создать такие условия ввода данных, чтобы подобные ошибки просто не возникали... ... Наиболее популярное на данный момент - разбить форму с десятком полей ввода на несколько форм, по два-три поля в каждом... ... Для интернета это оказывается удобным, но в оффлайновых программах, где вводимых данных гораздо больше, возникает масса проблем: необходимо предусмотреть в каждой следующей форме отображение введенных данных из предыдущих форм, чтобы пользователь мог видеть, что он уже ввел ранее... ... для изменения ранее введенных данных (например неверно введенной фамилии) необходимо сделать в формах навигацию "вперед - назад"... ... Определимся с задачей Нам нужно, чтобы интерфейс каким-то образом подсказывал пользователю, что именно от него (пользователя) требуется в данный момент... ... после нескольких часов работы они начинают дико раздражать... ... Суть состоит в том, что для ввода новой записи в базу и для редактирования уже введенной записи как правило используется одна и та же форма... ... Так вот, если во время редактирования придать фону формы какой-нибудь оттенок (например сделать ее слегка красноватой), то пользователь, занимающийся только вводом новых данных, сразу же заметит это изменение цвета и не введет по ошибке новые данные поверх старых... ... Ну и чтоб поставить жирную точку в вопросе путаницы при вводе и редактировании данных опишу еще одно простое, но очень полезное улучшение интерфейса... Подробнее: http://fit-media.com/post_1205142560.htmlСтатичные файлы vs скрипты. Невидимое зло.
Степень соответствия запросу: 3,17%
Фрагменты текста поста : ... Например, многие современные CMS грешат тем, что хранят в БД те данные, которым там совсем не место - шаблоны страниц, стили и т... ... Ведь система однопользовательская и кроме вашей софтины (грубо говоря) ничего на данный момент не выполняется... ... Работа в фоне всяких торрент-клиентов и винампов не в счет - нагрузка, создаваемая ими минимальна... ... Ну так зачем делать лишнюю работу... ... Сторонники хранения стилей в базе данных приводят два (весьма спорных) аргумента в защиту такого подхода... ... Во-вторых, возможность редактирования файлов через админку вовсе не обязует хранить данные в БД &mdash... ... Снова вэб-сервер, вместо тупой отправки готовых файлов, будет вынужден запускать PHP-скрипты, которым придется производить кучу работы (почти такой же объем вычислений, как при генерации страницы... ... парсить запрос, определять из каких именно шаблонов состоит страница (а для этого придется вызывать все модули, формирующие контент данной страницы, которые, в свою очередь, будут парсить запрос или шаблоны, рыться в БД и т... ... Огромная и совершенно тупая работа и бесполезная нагрузка на сервер... ... Работа ради работы... Подробнее: http://fit-media.com/post_1283692130.html14 принципов создания вежливых программ
Степень соответствия запросу: 2,61%
Фрагменты текста поста : ... Результаты их работы, опубликованные в книге "The Media Equation", показывают, что человек реагирует на компьютер так же как на других людей... ... Если программа скупа на информацию, скрывает результаты своей работу, заставляет пользователя искать где находятся простейшие функции, и винит его в своих собственных неудачах, то пользователю она точно не понравится... ... Я не хочу знать, насколько трудна работа компьютера... ... Я не хочу слышать свист модема или наблюдать информацию о скорости передачи данных, так же как я не хочу слышать о разводе бармена, сломанном автомобиле парикмахера или алиментах доктора... ... Программы постоянно предлагают мне варианты выбора, которые, по разным причинам, в данный момент недоступны... ... Очень часто после длительной работы с документом я нажимаю кнопку "Печать" и ухожу выпить чашечку кофе, пока документ распечатается... ... Хотя автоматизированная система ввода заказов может обработать в миллион раз больше заказов, чем простой служащий, служащий всегда может подстроить работу системы... ... Нет практически никакой возможности изменить работу той или иной функции... ... В реальном мире на это закрывают глаза, потому что это специальный случай, и подразумевается что тот, кто "подстроил" систему приведет все счета в порядок до конца рабочего для или данной работы... ... Но к несчастью, такое идеализированное состояние дел не является точным описанием работы реального мира... Подробнее: http://fit-media.com/post_1203349390.htmlИдея глобального контента
Степень соответствия запросу: 2,49%
Фрагменты текста поста : ... Идея глобального контента Как хранить данные в БД... ... По теме проектирования баз данных написано множество книг и статей, но все они содержат больше технической информации (описания систем индексации, поиска и связывания таблиц) и предлагают дробить всю информацию на множество таблиц, не забыв склеить все это в тугой узел с помощью связей (relations) и зависимостей... ... Список полей: Уникальный идентификатор ( id ) Идентификатор статьи с в блоге, к которой относится данный комментарий ( parent_id ) Заголовок ( title ) Собственно текст ( content ) Идентификатор автора ( user_id ) Дата создания ( created ) Флаг промодерированности ( published ) Как видим, поля всё теже, что и для статичной страницы, отличие лишь в количестве... ... Проанализировав описанное выше, можно легко сделать вывод, что при проектировании CMF логично создать всего одну (большую) универсальную таблицу в базе данных для хранения практически любого вида контента... ... При этом для разработчиков модулей можно упростить многие рутинные операции, такие как, программирование ввода одних и тех же данных в разных модулях ( created , modified , title , decsription , keywords и т... ... Разработчику модуля нужно лишь сообщить системе, какие именно поля будет использовать его модуль и система сама сможет создать все необходимые формы для ввода/редактирования данных, с необходимой валидацией... ... Так же этот вариант хранения данных позволяет сделать "... ... %%%контент сайта, проектирование CMF, виды контента CMS, базы данных,  ... Подробнее: http://fit-media.com/post_1242742678.htmlМиф о метафоре
Степень соответствия запросу: 2,02%
Фрагменты текста поста : ... Поиск такой метафоры - все равно что поиск парового двигателя для самолета или поиск динозавра для поездки на работу... ... Технологическая парадигма основана на понимании механизма работы программы - сложный подход... ... Подавляющее большинство компьютерных программ сегодня строятся по такой же архитектуре, безо всякого стыда показывая нам как они были созданы: одна кнопка на функцию, одна функция на модуль кода, команды и процессы, которые точно отражают внутренние алгоритмы и структуры данных... ... Для них важнее выполнять свою работу, а не набираться опыта, что инженерам часто трудно понять... ... Первой успешной в коммерческом плане реализацией интерфейса PARC стал Макинтош , с его метафорами рабочего стола, мусорной корзины и папок с файлами... ... Метафорическая парадигма - шаг вперед, потому что ее интуитивное понимание происходит без всякого знания механизма работы программ... ... Люди обучаются работе с ней идиоматически... ... Она также не напоминает ничего из нашего опыта, так что обучение работе с ней не интуитивно... ... Такие артефакты, как кнопки закрытия окна, окна с изменяемыми размерами, бесконечно вложенные папки с файлами, щелчки мышью и перетаскивание пиктограмм - не метафорические операции, потому что их нет в реальном мире... ... Метафоры дают копеечный выигрыш для неопытных пользователей, но оборачиваются тысячами рублей потерь во время дальнейшей работы... Подробнее: http://fit-media.com/post_1206190085.html
