Adobe Dreamweaver CS3 vs Microsoft Expression Web Версия для печати 04/10/07

Adobe Dreamweaver CS3 vs. Microsoft Expression Web\

После нескольких месяцев параллельного использования Dreamweaver CS3 и MS Expression Web ответственно заявляю: Dreamweaver – мертв; Expression Web – жив. А Microsoft, соответственно, одержала еще одну победу! Напомню, что Adobe не так давно выпустила Dreamweaver CS3. Изменений и улучшений не много: интерфейс, шаблоны и расширения. Чего-то нового ждать не приходилось – версии Dreamweaver обновляются с завидной регулярностью, но все же обидно - все это мы уже видели еще в версии 6. И вот Microsoft выпустила Expression Web! Функции полностью копируют конкурента:

Казалось бы, ни чего особенного, все это уже есть в продукте Adobe, но… Expression Web кажется более живым - именно живым! Стандартный и приятный интерфейс (похожий на интерфейс MS Office), понятные функции, а главное: современная работа со стилями! В настоящий момент, когда профессиональные страницы верстаются по стандартам XHTML, когда оптимизаторы и верстальщики манипулируют большим количеством стилей – грамотное и прозрачное управление ими крайне важно. Да и в MS Expression Web не все гладко, но удобство работы с ним отмечается сразу. Он какой-то в доску свой. Не даром MS так пестует свой UI.

Expression Web это один из продуктов новой линейки MS Expression для профессионального создании современных сайтов. Что станет с MS FronPage – скорее всего он останется WYSIWYG редактором для MS SharePoint. Expression Web напоминает переродившийся MS InterDev.

Политика MS брать чужие идеи и доводить их до ума снова работает. И меня поражает, как на протяжении такого долго времени MS удается проворачивать один и тот же фокус! Скажите кто-нибудь, в чем секрет MS? Почему она не костенеет?

| Комментарии [1]

Оптимизация больших PHP-приложений Версия для печати 05/07/07

Преждевременная оптимизация – корень всех бед.
– Дональд Кнут (Donald Knuth)

С другой стороны, мы не можем игнорировать эффективность.
– Йон Бентли (Jon Bentley)

Благодаря повсеместному распространению PHP5 (с его переработанным ОО ядром) у разработчиков появилась возможность и желание писать правильный ОО-код. У многих это даже превращается в самоцель. Книжек про паттерны и всех китов ООП написано много, приложения на PHP становятся огромными - берись и делай. Да и куда теперь без разделения логики, представления и доступа к данным. Получается, что с вопросами производительности разработчик сталкивается только в конце решения задачи в целом. И, как правило, ее начинает не хватать в сценариях по обработки тысячей записей.

Я хочу дать несколько полезных советов как писать более эффективный код в самом начале, помня, что PHP все же скриптовый процедурный язык. Советы я расцениваю ни как преждевременную оптимизацию, а как стандартную работающую рекомендацию уровня: «в С++ используйте префиксную форму инкремента». Большинство рекомендаций еще раз озвучивание общеизвестных вещей.

Общие рекоммендаци по оптимицации любых PHP:

  1. Использовать стандартные функции и алгоритмы PHP, а не писать собственные алгоритмы (в PHP это прямо влияет на скорость.). Примеры:
    1. Не перебирать ассоциативный массив руками если есть конструкция: foreach ($arr as $key => $val).
    2. Не разбирать строки руками и не склеивать их если есть: implode/ join.
  2. Использовать специальные библиотеки для работы с БД (например ) и прочим, а не писать собственные (cм. заключение). Это, как правило, эффективней и безопасней.

Специальные рекоммендаци по оптимицации бОльших PHP:

  1. Если в цикле с тысячей итераций каждый раз объект создается заново ($obj = new Shape()) лучше вынести его создание на уровень выше, либо сделать его статическим, а в класс добавить метод сбрасывания содержимого.
  2. Если функции передается больше 2-3 параметров или после создания объекта нужно установить множество внутренних полей следует обернуть необходимые данные в массив и разом передать функции/объекту:
    $arr= array('FName' => $this->fName,
    	    'LName' => $this->lName,
    	    'Year' => $this->year)
    
    $obj = new Person($arr);
    
  3. Еще не проинициализированные переменные лучше устанавливать в false. Так их проще использовать в условных операторах.

Заключение

Здесь хочется еще раз остановиться на самых важных рекоммендация общего характера.

Более подробно вопросы разработки больших систем с использованием ООП осещены в замечательной книге Джоржа Шлосснейгла "Профессиональное программирование на PHP" Вильямс, 2006 г.

| Комментарии [1]

Паттерны CSS Версия для печати 29/06/07

Каждый раз, когда мне нужно сверстать новую HTML-страницу (CSS-Layout, xHTML, кроссбраузность) я достаю старые наработки, удачные решения и специально сохраненные ссылки c примерами. Вспоминаю и отыскиваю подобные решения и приспосабливаю к новой задаче. В общем, трачу много времени на повторяющиеся действия. Я решил оформить список лучших решений – паттернов СSS (подобно паттернам ООП), которые помогут с нуля и быстро создать простую и правильную CSS и xHTML разметку. Также я решил включить в этот список несколько рекомендаций что точно не стоит делать – Антипаттернов. Итак.

За кадром

Не рассмотренными остались вопросы про “подвал” сайта, связанный с ним вопрос о колонках до конца страницы, хаки для IE, переключение боксовой модели в IE и еще несколько спорных вопросов. Сам я стараюсь меньше использовать “не корректные” способы верстки, да и вам не советую. Проще и надежнее чуть изменить дизайн.

Ссылки.

Учебник Ивана Сагалаева содержит в одном месте мега концентрацию всех возможных решений с объяснениями.

| Комментарии


» Следующая страница

Последние статьи

Opml.xml

Rss

About

MeМеня зовут Денис Ларионов.
Работаю программистом. Мне есть что рассказать про: web-бизнес, маркетинг, программирование.

RSS

Я - Слушаю подкаст Radio-T