« Поставить закладку » « Сделать стартовой »

« Форумы » « Блоги » « Статьи » « Новости » « Файлы » « Realcoding IRC » « Site map » « Поиск »


Главная Главная
Анонсы Анонсы
Форумы Форумы
Каталог Каталог
Поиск Поиск
Опросы Опросы
Книжный магазин Книжный магазин
Реклама на сайте
Публикации Публикации
Партнеры Партнеры
Карта Карта сайта
Рассылки Рассылки
RSS экспорт
Настройки Настройки
О нас пишут О нас пишут
Контакты Контакты
Гостевая книга Гостевая книга


ПнВтСрЧтПтСбВс
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31        
    Популярное
Функция AccessResource

Возможности использования CASE-средств в российских условиях

Часть 2. Common Language Runtime

Что такое порт, правила для работы с портами

Использование зависимостей при вложении формул

Часть II. Типы, операции и выражения.

Создание многоязычных веб-приложений с помощью JSTemplater 1.0Alfa

Прямой доступ к базе данных 1С

Функция GetCursorPos

Секционирование и сжатие в хранилищах данных Oracle. Профессионалу-разработчику




    Архив файлов



    Сообщества

    Документация

    Кто на сайте
Вы не зарегистрированы.
Имя:

Пароль:

Запомнить

Регистрация позволит Вам пользоваться дополнительными сервисами.
Сейчас на сайте:
Гостей: 115
Пользователей: 0

Статьи:: Интернет технологии :: Java Script :: Фреймворк для веб-дизайнера



отправить ссылку другу версия для печати  Обсудить на форуме

Фреймворк для веб-дизайнера

Сегодня «фреймворк» одно из популярнейших слов в веб-программировании. Для JavaScript разработаны фреймворки Yahoo User Interface library, jQuery и Prototype, для веб приложений Rails и Django и еще множество других. Так что же такое фреймворк, и можно ли использовать эту концепцию в веб-дизайне?



Что такое фреймворк?

Давайте определим фреймворк как набор инструментов, библиотек и соглашений предназначенный для вынесения рутинных задач в отдельные модули, которые можно использовать многократно. Главная цель фреймворка, позволить дизайнеру или программисту сфокусироваться на задачах уникальных для каждого проекта, вместо неоднократного изобретения колеса.

Речь идет не обязательно о чем-то широкодоступном и известном, напротив фреймворк может использоваться только вами или вашей командой.

Фреймворк для дизайнеров

Очевидно, что дизайнеры тоже могут воспользоваться концепцией фреймворка, особенно серьезные преимущества получат те, кто работает над несколькими похожими сайтами и дизайнеры, работающие в команде. К примеру, я работаю в газете, и более 20 наших сайтов имеют очень сходную структуру, надо сказать, что все новостные сайты очень похожи, но даже дизайнер, работающий в одиночку над совершенно разными проектами, может выделить в них похожие части, которые стоит объединить в CSS фреймворк.

В Lawrence Journal-World1 где я работаю мы недавно разработали CSS фреймворк, который значительно повысил эффективность работы дизайнеров. Конечно, на разработку самого фреймворка ушло несколько дней, но благодаря этому теперь можно создавать качественные страницы с потрясающей скоростью, более того теперь все дизайнеры используют один и тот же фреймворк, и если нужно редактировать работу начатую кем-то другим, не приходится тратить 20 минут, чтобы разобраться что к чему в его коде.

Что можно включить в фреймворк?

Проанализируйте свою работу, наверняка есть вещи, которые приходится делать в каждом проекте заново. Наша цель в объединении этих действий в отдельный модуль, следуя методике «не повторяй себя». Это упростит поддержку и снизит конечную цену продуктов.

Вот несколько действий, которые приходится делать в каждом проекте:

  • Сброс стилей по умолчанию, например, сброс margin и padding для всех элементов.
  • Настройка базовой сетки для текста, для этого нужно установить margin для параграфов, заголовков и списков кратными line-height.
  • Создание базовых стилей для форм.
  • Создание нескольких, постоянно используемых, CSS классов, таких как hide (display:none) или mute (меньший размер шрифта, приглушенный цвет).

Конечно возможностей на самом деле больше, например многие дизайнеры часто используют одну и ту же сетку, почему бы не включить ее в свой фреймворк, Yahoo давно сделал это в их YUI grids component2. При разработке своего фреймворка в Journal-World, мы сначала проанализировали решение Yahoo и решили, что оно не совсем нам подходит, но все таки это очень хороший пример функциональности и источник интересных идей. Мы разработали сетку достаточно гибкую, чтобы каждый сайт созданный с ее помощью отличался от других.

На большинстве сайтов используются выпадающие меню, табы, кнопки и другие элементы которые легко унифицировать. Кроме того, есть распространенные способы отображения контента, например эскизы (thumbnails) для фотографий, которые можно стандартизировать и в дальнейшем будет достаточно добавить класс thumbnail-list, чтобы страница с эскизами работала.

Есть возможность вынести хаки и поддержку старых браузеров в отдельный модуль, что я и пытался сделать, но пришел к выводу, что они слишком специфичны для каждого сайта, хотя может быть у вас получиться.

Каковы реальные преимущества?

Самое большое преимущество такого фреймворка в возможности быстрого старта. Достаточно создать (x)html документ, подключить фреймворк и можно не беспокоиться о сбросе параметров по умолчанию, типографике, формах, размещении элементов, меню, табах и т.д.

Можно сразу приступать к индивидуальному оформлению сайта, причем для этого придется приложить минимум усилий, переназначив некоторые стили, или добавив новые. Например, если в фреймворке базовый цвет для горизонтальных табов, коричневый с черными границами, его можно легко переназначить на более подходящий для конкретного сайта с помощью нескольких строк кода.

ul.tabs li {
    border: none;
    background-image: url('site-specific-tab.jpg');
}

Вся работа по оформлению ссылок в виде блоков и центрированию текста уже сделана, и вы можете сфокусироваться на уникальных элементах сайта вместо переписывания кода, который использовали уже тысячи раз.

Как должен быть устроен CSS фреймворк?

Возможно несколько вариантов создания CSS фреймворка, но наиболее распространенный и возможно наиболее удобный это разделить CSS на несколько файлов, каждый из которых, включал бы стили со сходным предназначением, например один из файлов был бы предназначен для настройки типографики, а другой для сброса стилей по умолчанию. Одно из преимуществ этой техники в возможности использования только необходимых в конкретном проекте частей фреймворка. Наш фреймворк включает пять файлов:

  • reset.css — сброс стилей по умолчанию.
  • type.css — настройка типографики.
  • grid.css — настройка разметки.
  • widgets.css — виджеты, такие как табы, выпадающие меню и кнопки.
  • base.css — подключает все остальные файлы, поэтому в html файле достаточно указать base.css, чтобы использовать все возможности фреймворка.

Мы разместили фреймворк на одном из серверов, чтобы все сайты могли его использовать. Конечно, каждый сайт использует и свои таблицы стилей, дополняя или заменяя стили, описанные в фреймворке.

Предостережение

Этот метод работает очень хорошо, но рост количества HTTP запросов вызывает вполне оправданное беспокойство, на крупных сайтах с большим трафиком, пять лишних запросов на каждую страницу могут обернуться адом для системных администраторов. Я вижу два возможных решения этой проблемы:

  1. Включить все в один файл, вместо разделения на модули, но тогда не будет возможности использовать только необходимые части фреймворка, и усложнится поддержка.
  2. Использовать серверный скрипт, который будет собирать несколько файлов в один. Я таких решений еще не видел, но это может быть очень эффективно. В нашем случае он мог бы собирать фреймворк в один файл при запросе base.css и сохранить при этом доступность отдельных компонентов.

Хочу напомнить, что цель не в том, чтобы сделать фреймворк настолько абстрактным насколько это возможно и удивить ваших друзей и коллег, напротив, цель в том, чтобы увеличить скорость и эффективность разработки. Если уровень абстракции будет слишком высоким, фреймворк может стать запутанным и перегружать сайт слишком большим количеством HTTP запросов.

Запомните: хороший фреймворк не должен усложнять работу дизайнера.

Заключение

Веб дизайнеры, как и программисты, имеют склонность снова и снова повторять себя, сбрасывая стили по умолчанию, настраивая базовую сетку, создавая табы снова и снова в каждом проекте. Потратив немного времени на создание фреймворка включающего в себя эти идиомы, можно значительно увеличить скорость разработки и упростить поддержку. Если немного подумать, то можно реализовать эти возможности без ущерба для производительности сайта.

Translated with the permission of A List Apart Magazine3 and the author[s].


Автор: http://designformasters.info/




Рубрика: Java Script




Вышел MySQL 5.1.30, первый стабильный рели....

MySQL

После публикации 29 тестовых версий анонсирован первый стабильный релиз MySQL 5.1, пригодный для промышленной эксплуатации и обеспечивающий увеличение производительности для "тяжелых" SQL запросов, по сравнению с MySQL 5.0, примерно на 15-20%. Главные новшества появившиеся в MySQL 5.1:


Подробнее... | Рубрика: MySQL | Добавлено: 28.11.2008

Тестирование параллельных программ.

Тестирование

Тестирование параллельного программного обеспечения представляет собой более сложную задачу по сравнению с тестированием последовательной программы. Программист должен знать о подводных камнях при тестировании параллельного кода, имеющихся методологиях и инструментарии.


Подробнее... | Рубрика: Тестирование | Добавлено: 28.11.2008

Архитектура AMD64 (EM64T).

Архитектура AMD

Аннотация. В статье кратко рассматривается архитектура AMD64 компании AMD и ее реализация EM64T компании Intel. Описаны особенности архитектуры, ее возможности, достоинства и недостатки.


Подробнее... | Рубрика: Архитектура AMD | Добавлено: 27.11.2008

Остальные статьи:

Платформа 2009. Определяя будущее
Windows Vista Bridge Sample Library - упра...
Оптимизация 64-битных программ
Подгрузка через AJAX HTML-кода, содержащег...
Обзор нового релиза самой мощной Ajax библ...
Firebug 1.3 и 1.4 alpha — что нового и инт...
Релиз Microsoft Silverlight 2.0. Что новог...
XML документация в C#
Курсоры в MySQL 5
Microsoft опубликовала подробности о сесси...
Microsoft делится подробностями о том, что...
Тестируем новый javascript от нового брауз...
MySQL Query Cache
Использование провайдеров компиляции в As...
Чего мы ждем от C# 4.0
Delphi 2009 и C++Builder 2009
Джоэл Спольски и Джеф Этвуд запустили новы...
Поиск кода Google /* что нового? */
10 jQuery скриптов для улучшения интерфейс...
Генераторы отчетов FastReport 4 и QuickRep...


Цитата дня (все,добавить):

Портал фрилансеров

работа на дому


    Рубрикатор

Программирование

C/С++
Обучение
Windows API
XAML
Моделирование
Паттерны
Visual Basic 7 .NET
WxWidgets
Функции WinApi
Функции С++
Разработка под Mac OS
Eiffel
Visual Studio 2008
UI дизайн
Алгоритмы
Конкурсные статьи
Turbo Pascal
Visual Studio
CASE-средства
Visual Studio 2005
Без VCL
Delphi
Тех. документация
Тестирование
Software Testing
ООП
TCP/IP
Google Android
Windows Installer
.NET Framework
Драйвера
C# C Sharp
Справка
Проектирование
Информ. системы
Visual Basic
Assembler
Оптимизация кода
Gtk+
Компоненты
Реинжиниринг
Управление проектами
Extreeme programming
Lotus Notes
Алгебраическое проектирование


Интернет технологии

PHP
Perl
ASP
WAP
Cookies
SSI
CGI
Web Servers
VB Script
DNS
CSS
XML
Html
Java Script
Java2ME
Firewall
Flash
.htaccess
Apache
VRML
Протоколы
Поисковые системы
Технология JAVA
Учебник по PHP
Учебник по JavaScript
Учебник по XML
Java Q&A
AJAX
DHTML
XHTML
Dreamweaver
Web 2.0
Python
Вебмастеру
Cisco
Ruby on Rails
Silverlight

Базы данных

Access
InterBase
MySQL
Oracle
ADO .NET
Основы SQL
Учебник по Access 2002
MS
Microsoft FoxPro
Доступ к данным
XML в MS SQL Server 2000
ODBC и MyODBC
Обучение
Caché
DB2
PostgresSQL
Sybase
Теория
Хранилища данных
Безопасность
Реляционные данные
MySQL и mSQL

Остальное:

Разное
Обзоры книг
Безопасность
Графика и дизайн
Юмор
Linux
Фракталы
Microsoft Axapta
Многоядерность
Сети
Microsoft Office
Работа
MS-DOS
Криптография
Графика и игроделание
Новости SDK
Системы защиты
Учебник по AutoCad
CVS
Windows XP
Windows Server 2003
Windows Vista
Windows 7
Мероприятия