04 февраля 2011

Нужен веб-технолог-кодер HTML, JS, PHP.

  • написал: Took
  • 45
На попроектную работу приглашается, грамотный веб-технолог, для проектирования и разработки веб-проектов.
Работа удалённая, при желании возможна работа в офисе.

Предложения (ссылку на портфолио) на мыло — vlad@k-meta.ru
+1
31 января 2010

Мелочь отладки, а приятно

  • написал: MpaK
  • 23
Знаете, есть же всё же у каждого программиста с опытом свои фишки, свои привычки, свои так сказать маленькие чертики в головах. И порой эти фишки казалось бы маленькие и очевидные, когда ты их знаешь или читаешь, но порой так облегчают жизнь. Предлагаю делиться такими мелкими фишками и не зажимать их от глаз коллег.

Я начну, пока с мелочи, но важной, очень — ОТЛАДКА.

Меня всегда мучила проблема отладки и запуска кода на рабочей (девелоперской) машине и рабочем уже сервере.
Это настройки подключения к базе данных, это другой домен, совершенно не те пути к домашней папке и т.п. Выносить в конфиги, править и править. А когда разработчиков не один или два, у каждого свои данные по базе, свои пути и прочие индивидуальные настройки. Муторно, а мы любим просто, отладил на локальной машине, открыл 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");
	}
...
}


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

В общем, порой «окружение» может нам помочь очень часто, высказывайтесь о своих «фишечках» не стесняйтесь
0