Как стать автором
Обновить
80
0
Загиров Рустам @Stamm

Kubernetes guy

Отправить сообщение

40 советов по оптимизации вашего PHP-кода

Время на прочтение4 мин
Количество просмотров56K
Всем доброго времени суток.

Перевод заметки "40 Tips for optimizing your php code". Автор — Reinhold Weber.

  1. Если метод может быть статическим, объявляйте его статическим.
  2. echo быстрее, чем print.
  3. Передавайте в echo несколько параметров, вместо того, чтобы использовать конкатенацию строк.
  4. Устанавливайте максимальное количество проходов ваших циклов for до цикла, а не во время его выполнения.
  5. Удаляйте свои переменные для освобождения памяти, тем более, если это большие массивы.
  6. Остерегайтесь магических методов, таких как __set, __get, __autoload.
  7. require_once дорого обходится.
  8. Указывайте полные пути в конструкциях include/require, меньше времени будет тратится на поиск файла.
  9. Если вам необходимо определить время, когда скрипт был запущен, используйте $_SERVER[’REQUEST_TIME’] вместо time().
  10. Старайтесь использовать strncasecmp, strpbrk и stripos вместо регулярных выражений.

Читать дальше →
Всего голосов 79: ↑65 и ↓14+51
Комментарии201

Как грамотно отправлять почту из скриптов (в частности — на PHP)

Время на прочтение5 мин
Количество просмотров38K
Первая часть текста взята из инструкции хостинг-провайдера Netangels. Вторая — авторская.

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

Для того, чтобы быть уверенным, что ваше сообщение отправляется действительно верно, необходимо иметь по меньшей мере базовые представления о формате почтового сообщения. Формат почтового сообщения описан в нескольких стандартизирующих документах, основными из которых являются RFC 822 (описывает формат передачи простого текста на английском языке) и RFC 2045 и далее (описывает расширения этого формата для передачи произвольных данных).
Читать дальше →
Всего голосов 59: ↑56 и ↓3+53
Комментарии76

Yahoo: высокопроизводительные Веб-страницы. Часть 2

Время на прочтение1 мин
Количество просмотров686
Примечание: ниже перевод свежей презентации от Yahoo! «High Performance Web Pages» с новыми советами по оптимизации. Yahoo известна своими статьями на тему оптимизации клиентской части и является мировым лидером в этой области. Однако, с уходом Julien Lecomte (ведущего специалиста отдела оптимизации, автора YUI Compressor) в Apple ситуация может измениться. Посмотрим.

Мои комментарии далее курсивом. Я постарался, по возможности, расставить ссылки на упоминаемые в презентации инструменты и связанные статьи.

Этот медлительный веб



  • Мы используем Интернет для решения наших повседневных задач
  • Мы все хотим испытывать при этом комфорт
  • Мы не выносим медленные страницы (хотя есть варианты)
  • На 500 мс медленнее = 20% уменьшение трафика (Google)
  • На 100 мс медленнее = 1% уменьшение продаж (Amazon)


Разговор на сегодня



  • Как улучшить производительность веб-страниц
  • Фокус на клиентской части
  • 14 отличных советов для быстрых страниц
  • … и еще 20!


читать дальше на webo.in →
Всего голосов 44: ↑40 и ↓4+36
Комментарии39

Устанавливаем и настраиваем LAMP и Trac+SVN на Ubuntu

Время на прочтение4 мин
Количество просмотров16K
Прочитав эту статью, я осознал, что Trac+SVN очень помогут в работе и решил настроить эту связку у себя на машине.

С недавних пор я использую Убунту линукс, потому установка и настройка проходили с учетом особенностей данной системы. LAMP у меня уже был установлен ранее, так же как и inadyn. В итоге я получил достаточно гибкую и удобную систему управления своими проэктами, к которой есть доступ по сети. Интересно, как сделать?
Делюсь опытом
Всего голосов 25: ↑25 и ↓0+25
Комментарии34

Шифрование (K)Ubuntu для домашнего и бизнес применения

Время на прочтение2 мин
Количество просмотров3.3K
Данные в компьютерах обычно хранятся в открытом виде, как в Windows, так и в Linux, что дает доступ к любой информации практически любому, на нее покушающемуся (!) или так «случайному прохожему» или даже неслучайному. Если вы хотите что-то скрыть от посторонних глаз, то эта статья для вас — умеренных параноиков и пользователей (K)Ubuntu. Особенно это касается владельцев ноутбуков (про массовые кражи все читали).
Читать дальше →
Всего голосов 17: ↑15 и ↓2+13
Комментарии17

Гитаризм для линуксоида — why not?

Время на прочтение2 мин
Количество просмотров20K
Один мой хороший друг однажды сказал: — Линуксоидам проще научиться играть на гитаре. — Потому что они привыкли, что сначала долго мучаешься, но потом наслаждаешься результатом.

Он, безусловно, прав. И ниже я хочу рассмотреть некоторое ПО, призванное помочь линуксоиду-гитаристу на его нелёгком, но невероятно интересном пути.
Читать дальше →
Всего голосов 46: ↑45 и ↓1+44
Комментарии59

Compiz Fusion — Не только красиво, но и удобно!

Время на прочтение4 мин
Количество просмотров10K
В наши времена, когда найти человека способного удивиться графическим 3д-ефектам операционной системы становиться всё сложнее, а сами эффекты становятся все ярче и тяжеловеснее, большинство пользователей воспринимают их как ненужное украшательство и бесполезную трату ресурсов системы. Потому и просто напросто отключают, даже не заглянув в суть.

А ведь может быть не только красиво, а ещё и удобно!

Поэтому я хочу рассказать о Compiz Fusion (бывшем Beryl) — композитном оконном менеджере, который занимаеться визуальными эффектами в Linux. Только рассказать не со стороны wow-эфекта и 3д-рюшечек, а о том, как при грамотной настройке с его помощью можно добавить максимум удобства и юзабилити к своей любимой системе.



Читать дальше →
Всего голосов 92: ↑85 и ↓7+78
Комментарии139

Описание более 350 команд Линукс

Время на прочтение2 мин
Количество просмотров41K
На дигге была найдена интересная ссылка (PDF-версия) — описание более, чем 350 команд Линукс (на английском языке). Фактически представляет собой шпаргалку, где команды разбиты на категории. Отмечу, что это не простой список команд, а именно описание с применением. Чтобы не быть голословным приведу несколько примеров.

Читать дальше →
Всего голосов 74: ↑70 и ↓4+66
Комментарии89

Несколько полезных сайтов-каталогов со скриптами

Время на прочтение1 мин
Количество просмотров1.9K
Поискал ссылки поиском по хабру, не нашел.

Итак, прежде чем изобретать велосипед, у разработчика часто возникает необходимость посмотреть, какие же продукты уже были реализованы.
Кто-то начинает гуглить — что же, наверное, это правильно.

Но считаю, что будет полезным также знать некоторые сайты-каталоги скриптов.

Итак, вот они:
www.hotscripts.com
www.planet-source-code.com
php.resourceindex.com
cgi.resourceindex.com
www.scripts.com/php-scripts
www.phpclasses.org
mymans.org/category/php
Всего голосов 23: ↑12 и ↓11+1
Комментарии16

Profiling PHP Applications With xdebug

Время на прочтение8 мин
Количество просмотров41K
Добро пожаловать в третью статью о xdebug. Уже сейчас вы должны были попробовать xdebug, если нет, сделайте это сегодня ;-).
В первой статье рассказывалось о том, как установить и настроить xdebug, описывались некоторые простейшие возможности, такие как улучшение вывода функции var_dump() или вывод трассировки стека вызовов при получении сообщения об ошибке. Во второй части мы рассмотрели такую возможность xdebug как трассировку. Трассировка содержит все вызовы функций и методов в программе, время запуска, опционально размер памяти, передаваемые и возвращаемые параметры. Лог трассировки может помочь вам понять пути выполнения сложной программы. Вместо того чтобы вставлять отладочный код внутрь программы, вы включаете или выключаете трассировку в тем места где нужно, а потом используете утилиты подобные grep или собственно написанные приложения на PHP для анализа лог файла.
Читать дальше →
Всего голосов 23: ↑23 и ↓0+23
Комментарии17

Что такое «хорошее» ТЗ на сайт?

Время на прочтение11 мин
Количество просмотров67K
caricat.gifЯ могу припомнить на удивление мало материалов, посвященных проектированию сайтов и программ на русском языке, написанных русскоязычными авторами. Этому способствует и преимущественно экспортно-ориентированная разработка (оффшор) и отсутствие массового опыта создания информационных продуктов в нашей стране.
Надеюсь, что эта статья пригодится тем разработчикам и IT-менеджерам, кто ощутил перед собой проблему составления качественных документов на разработку сайта. Документов, которые кроме испорченной бумаги были бы хоть чем-то полезны.
Читать дальше →
Всего голосов 117: ↑113 и ↓4+109
Комментарии88

Про резиновую верстку

Время на прочтение1 мин
Количество просмотров29K
Навеяно этим.

Для тех, кто, возможно, не знает как сделать так, чтоб всё было хорошо.
Сайт должен тянуться только до определённой величины, и сужаться тоже только до некоторого значения. Я обычно беру 1500 и 980 пикселей соответственно.

Как сделать? min-width и min-height.

#site {
  margin: 0 auto; /*это чтоб центрировать контент при превышении max-width*/
  min-width: 980px;
  max-width: 1500px;
}


Но ведь IE их не поодерживает. А expression слишком нагружает браузер… Спокойно, други! Я выведу вас к свету из тьмы!
Пишем далее.



А в ie.js помещаем

window.attachEvent('onload', mkwidth);
window.attachEvent('onresize', mkwidth);

var minwidth = document.getElementById("site").currentStyle['min-width'].replace('px', '');
var maxwidth = document.getElementById("site").currentStyle['max-width'].replace('px', '');
function mkwidth(){
    document.getElementById("site").style.width = document.documentElement.clientWidth < minwidth ? minwidth+"px" : (document.documentElement.clientWidth > maxwidth ? maxwidth+"px" : "100%");
};


В чём особенная вкусность приведённого метода? А в том, что минимальное и максимальное значение нужно задавать только в одном месте, ну и вообще.

Пользуйтесь, короче, на здоровье!
Всего голосов 130: ↑123 и ↓7+116
Комментарии139

Tracing PHP Applications with xdebug

Время на прочтение8 мин
Количество просмотров22K
Добро пожаловать во вторую серию нашего повествования про xdebug. Установка xdebug и его базовые возможности были рассмотрены в первой серии. В данной статье мы рассмотрим трассировку программы.
Предыдущая серия цикла Introducing xdebug
Читать дальше →
Всего голосов 19: ↑18 и ↓1+17
Комментарии16

Сколько стоит сайт построить: перезагрузка

Время на прочтение5 мин
Количество просмотров3.6K
Наткнулась намедни на статью Игоря Сухинина по поводу стоимости веб-разработок. И аж несколько дней затронутая автором тема прыгала, скакала и корчила рожи, не давая о себе забыть. И все это ради того, чтобы я наконец-то вспомнила про уже запылившийся на полке диск.

На диске одна питерская компания (кому-то, наверняка, знакомая — Юмисофт) делится соображениями по поводу настоящего и будущего рынка сайтостроения. Покатавшись по городам и весям, ребята ужаснулись: в регионах веб-разработка в полной… упадке. Почесали репу и решили разобраться, что к чему и почём.

Итак, здесь я расскажу только о самых значимых, на мой взгляд, моментах исследования и отвечу на обозначенный в теме вопрос. Буду рада, если и вы поделитесь своими соображениями.
Читать дальше →
Всего голосов 48: ↑44 и ↓4+40
Комментарии55

Высокопроизводительные AJAX-приложения

Время на прочтение1 мин
Количество просмотров707
Примечание: ниже перевод презентации «High Performance Ajax Applications», подготовленной ведущим специалистом из Yahoo (а теперь уже из Apple) Julien Lecomte. В ней автор освещает некоторые аспекты оптимизации как JavaScript-приложений, так и веб-сайтов вообще. В целом, советов много, и почти все, действительно, по делу. Однако, встречается и откровенная реклама Yahoo :) Мои комментарии далее курсивом.

Часть 1. Разработка для высокой производительности



Планируем и проектируем для высокой производительности



  • Ориентируемся на производительность с самого первого дня
  • Тесно работаем с дизайнерами и менеджерами продукта
  • Понимаем рациональность дизайна
  • Объясняем компромиссы между дизайном и производительностью
  • Предлагаем альтернативы и показываем, что еще возможно (на уровне прототипа)
  • Пробуем силы в реализации нетривиального дизайна (нельзя сразу говорит «нет»)
  • Помогаем упростить дизайн и взаимодействие с пользователем (добиваемся компромисса)


читать дальше на webo.in →
Всего голосов 77: ↑73 и ↓4+69
Комментарии28

try… catch VS if…else. Что, когда и почему?

Время на прочтение5 мин
Количество просмотров88K
Данная статья расчитана для двух типов разработчиков:
— кто еще не знаком с исключениями
— кто пытается найти более разумное использование исключениям

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

Эволюция языков программирования приводит иногда к кардинальным изменениям в мировоззрении разработчиков. В мире РНР такое случилось при появлении пятой ветки, которая принесла новую объектную модель, новые наборы встроенных функций и новые методы обработки ошибок…

Те, кто начинал знакомиться с PHP (тут и далее я буду подразумевать пятую версию), после другого процедурного языка программирования, так и не поняли что же такого в переходе от 4ки к 5ке и продолжают оформлять код привычными функциями, которые находятся на одном уровне по отношению друг к другу, а так же каждое действие проверяют на удачный код возврата. Но те кто знали об исключениях и классах…
Читать дальше →
Всего голосов 25: ↑20 и ↓5+15
Комментарии65

PHP и ООП. Совмещаем \«несовмещаемое\»…

Время на прочтение4 мин
Количество просмотров4K
Объектно-ориентированное программирование — как стиль жизни. Это не просто применение конструкций типа class или interface — это способ мышления, когда любая сущность программы является не просто набором инструкций, а представляет из себя \«живое\» существо…

Думаю напоминать что такое ООП, в рамках данной статьи, будет лишним, посему перейду сразу к проблематике вопроса.

Разработчики, пришедшие в PHP из других языков программирования, и столкнувшиеся в нем (в РНР. тут и далее буду подразумевать РНР5 — прим.) с классами, недоумевают как их вообще возможно использовать. А все из-за того, что время жизни скрипта на РНР гораздо меньше, чем у прикладного ПО и составляет всего один цикл работы, в то время как прикладное ПО может жить и взаимодействовать со своими компонентами много дольше. В итоге миру является код, в котором классы реализуют всего-навсего отсутствующие в РНР namespaces.
Читать дальше →
Всего голосов 22: ↑16 и ↓6+10
Комментарии62

Методы доступа. Наиболее популярные ситуации

Время на прочтение3 мин
Количество просмотров38K
Статья в первую очередь расчитана на начинающих разработчиков, либо для тех, кто только начинает переходить от процедурного стиля программирования к ООП, посему матерых гуру просьба не вгонять в минуса :)

Права доступа к свойствам и методам — это на первый взгляд всего лишь три слова: private, protected и public. Но что скрывается за ними? Какие преимущества это дает в разработке? И как их правильно использовать? Здесь, как и во всех других аспектах программирования, без практики не разобраться…

Одна из трех основных концепций ООП — наследование (другие две: инкапсуляция и полиморфизм). Вобщем-то именно для нее и были реализованы права доступов. Основанная идея наследования: Дочерний объект, при наследовании (extend) родителя перенимает себе все родительские методы и свойства, а так же может обзавестись своими собственными. Понимая эту базу, можно перейти в всему что находится ниже…
Читать дальше →
Всего голосов 15: ↑9 и ↓6+3
Комментарии51

Установка и настройка Apache2+PHP5+MySQL+XDebug & Eclipse+PDT+XDebug в Ubuntu 7.10

Время на прочтение4 мин
Количество просмотров153K
В этом топике я расскажу как установить и настроить Apache2 + PHP5 + MySQL + virtual hosts + xdebug, а также XDebug в Eclipse+PDT.
Читать дальше →
Всего голосов 45: ↑39 и ↓6+33
Комментарии96

25 способов улучшить свой сайт

Время на прочтение3 мин
Количество просмотров30K
Эта небольшая статья поможет новичкам (и не только) оценить удобство собственного сайта и укажет основные недочёты, присущие многим сайтам. Ваши пользователи скажут вам спасибо =)

Читать дальше →
Всего голосов 86: ↑75 и ↓11+64
Комментарии91

Информация

В рейтинге
Не участвует
Откуда
Москва, Москва и Московская обл., Россия
Работает в
Зарегистрирован
Активность