31 января 2010
Мелочь отладки, а приятно
Знаете, есть же всё же у каждого программиста с опытом свои фишки, свои привычки, свои так сказать маленькие чертики в головах. И порой эти фишки казалось бы маленькие и очевидные, когда ты их знаешь или читаешь, но порой так облегчают жизнь. Предлагаю делиться такими мелкими фишками и не зажимать их от глаз коллег.
Я начну, пока с мелочи, но важной, очень — ОТЛАДКА.
Меня всегда мучила проблема отладки и запуска кода на рабочей (девелоперской) машине и рабочем уже сервере.
Это настройки подключения к базе данных, это другой домен, совершенно не те пути к домашней папке и т.п. Выносить в конфиги, править и править. А когда разработчиков не один или два, у каждого свои данные по базе, свои пути и прочие индивидуальные настройки. Муторно, а мы любим просто, отладил на локальной машине, открыл ftp, залил, вуа-ля — заработало!
Потому моё решение очень простое.
Так как я ставлю на рабочую машину всегда Apache, то просто в корне своего сайта в файле .htaccess создаю строку
например так.
А уже дальше в моих приложениях задаю, по этому параметру если он есть, то какие у меня настройки, какое подключение и где мы в целом работаем.
Пример того же простого конструктора с различными данными подключения
Извините, просто кусок кода из рабочего проекта, вполне такой простой и понятный на мой взгляд, но написанный один раз, будем перезаливать его сотню раз.
В общем, порой «окружение» может нам помочь очень часто, высказывайтесь о своих «фишечках» не стесняйтесь
Я начну, пока с мелочи, но важной, очень — ОТЛАДКА.
Меня всегда мучила проблема отладки и запуска кода на рабочей (девелоперской) машине и рабочем уже сервере.
Это настройки подключения к базе данных, это другой домен, совершенно не те пути к домашней папке и т.п. Выносить в конфиги, править и править. А когда разработчиков не один или два, у каждого свои данные по базе, свои пути и прочие индивидуальные настройки. Муторно, а мы любим просто, отладил на локальной машине, открыл ftp, залил, вуа-ля — заработало!
Потому моё решение очень простое.
Так как я ставлю на рабочую машину всегда Apache, то просто в корне своего сайта в файле .htaccess создаю строку
SetEnv "MPAKENV" "development"например так.
А уже дальше в моих приложениях задаю, по этому параметру если он есть, то какие у меня настройки, какое подключение и где мы в целом работаем.
Пример того же простого конструктора с различными данными подключения
class Mein_Spyder{
protected function database(){
return (!empty($_SERVER['MPAKENV'])) ?
array(
'login' => '{LOGIN_DEV}',
'psw' => '{PAS_DEV}',
'database' => '{DB_DEV}',
'host' => '{HOST_DEV}'
)
:
array(
'login' => '{LOGIN_PROD}',
'psw' => '{PAS_PROD}',
'database' => '{DB_PROD}',
'host' => '{HOST_PROD}'
);
}
public function __construct(){
$db = $this->database();
$this->db = new PDO('mysql:host='.$db['host'].';dbname='.$db['database'], $db['login'], $db['psw']);
$this->db->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );
$this->db->setAttribute( PDO::ATTR_ORACLE_NULLS, PDO::NULL_TO_STRING );
$this->db->query('SET NAMES "utf8"');
$this->db->query("SET sql_mode = default");
}
...
}Извините, просто кусок кода из рабочего проекта, вполне такой простой и понятный на мой взгляд, но написанный один раз, будем перезаливать его сотню раз.
В общем, порой «окружение» может нам помочь очень часто, высказывайтесь о своих «фишечках» не стесняйтесь
- dark_barker
- 31 января 2010, 16:50
- 0
class Mein_SpyderМсье — любитель немецкого?Если говорить о веб-девелоперстве, то я чаще всего создаю на рабочей машине окружение удалённой (хостинга). То есть прописываю в /etc/hosts домен->127.0.0.1, пути в /var/www делаю такие же (линками из директории проекта), в БД создаю базу с тем же названием итд. Делается очень быстро и просто, в итоге все настройки остаются неизменными.
- MpaK
- 31 января 2010, 18:33
- 0
Я я натюрлих :) у меня травма, детская, когда в нашем доме в лихие 90ые появился видак с 4мя головками и видео странного производства из дружеской ФРГ! :)
Да, такой способ тоже имеет, имел место быть, когда машины почти одинаковые например по OS, у меня просто к примеру Windows, а сервер Linux, пути разнятся d:\www\… и /var/home/…
Да, такой способ тоже имеет, имел место быть, когда машины почти одинаковые например по OS, у меня просто к примеру Windows, а сервер Linux, пути разнятся d:\www\… и /var/home/…
- dark_barker
- 02 февраля 2010, 00:33
- 0
А, ну тогда да, не очень) У меня, как сам понимаешь, виндовсов не водится :P
- akhmetov
- 31 января 2010, 21:41
- 0
Иногда на десктопе не рационально поднимать все то окружение, которое сформировалось на сервере. А иногда уже просто невозможно. Используется несколько физических серверов, сложные взаимосвязи между ними и т.п. Проще поднять dev-сервер со всем, что есть на production-сервере. А потом ночью обновлять файлы на production… Хотя по уму надо использовать deployment.
О нескольких серверах — простые три звена. Данные <> логика <> сайт/софт/интранет. При этом, перед сайтом стоит кеширующий прокси со своими правилами (которые влияют на работу сайта). Да и логика технически может расширяться вширь, когда количество клиентов увеличивается. В общем, понятно, да? )
О нескольких серверах — простые три звена. Данные <> логика <> сайт/софт/интранет. При этом, перед сайтом стоит кеширующий прокси со своими правилами (которые влияют на работу сайта). Да и логика технически может расширяться вширь, когда количество клиентов увеличивается. В общем, понятно, да? )
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.
Комментарии:5