<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Oduvan's Web Blog &#187; Programming</title>
	<atom:link href="http://www.lyabah.com/index.php/tag/programming/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.lyabah.com</link>
	<description></description>
	<lastBuildDate>Fri, 30 Jul 2010 16:48:37 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Как вы проводите рефакторинг кода?</title>
		<link>http://www.lyabah.com/index.php/2009/08/10/refactoring-of-code/</link>
		<comments>http://www.lyabah.com/index.php/2009/08/10/refactoring-of-code/#comments</comments>
		<pubDate>Mon, 10 Aug 2009 10:00:55 +0000</pubDate>
		<dc:creator>Oduvan</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[optimization]]></category>
		<category><![CDATA[refactoring]]></category>

		<guid isPermaLink="false">http://www.lyabah.com/?p=493</guid>
		<description><![CDATA[Рефакторинг &#8211; процесс полного или частичного преобразования внутренней структуры программы при сохранении её внешнего поведения.
У кого, когда возникает мысль, о том, что пора бы переписать эту часть программы ( этот класс, эту функцию )? 
У меня, это начинается после пятого костыля. Костыль — это добавления не предусмотренной функциональности к объекту. Не предусмотренной изначальной архитектурой либо [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.lyabah.com/wp-content/uploads/2009/08/tolsti_i_tonki.jpg"><img src="http://www.lyabah.com/wp-content/uploads/2009/08/tolsti_i_tonki-259x300.jpg" alt="tolsti_i_tonki" title="tolsti_i_tonki" width="259" height="300" class="alignleft size-medium wp-image-494" /></a><a href="http://ru.wikipedia.org/wiki/%D0%A0%D0%B5%D1%84%D0%B0%D0%BA%D1%82%D0%BE%D1%80%D0%B8%D0%BD%D0%B3">Рефакторинг</a> &#8211; процесс полного или частичного преобразования внутренней структуры программы при сохранении её внешнего поведения.</p>
<p>У кого, когда возникает мысль, о том, что пора бы переписать эту часть программы ( этот класс, эту функцию )? </p>
<p>У меня, это начинается после пятого костыля. <a href="http://absurdopedia.wikia.com/wiki/%D0%9A%D0%BE%D1%81%D1%82%D1%8B%D0%BB%D1%8C">Костыль</a> — это добавления не предусмотренной функциональности к объекту. Не предусмотренной изначальной архитектурой либо заложенной расширяемости в ней. О как закрутил. Если просто, то пример. Есть пользователь, к которого есть свойство «группа», возвращающее стринговое имя группы, в которую он входит, через некоторое время оказывается, что пользователь может входить в несколько групп и вы пока ставите костыль, но часть функционала по работе с группами надо будет потом переписать. И как я части видел — «костыльная» практика очень свойственно для изначально не формализованных проектов, когда заказчик точно еще понимает, что он хочет ( или пока не может это ясно выразить, а вы его ясно понять ).</p>
<p>Делать полный рефакторинг после первого костыля, в таких проектах, дело очень расточительное. Но пометку о том, что в этом месте «костыль» &#8211; надо поставить. Добавьте функциональный тест на этот костыль. Когда обилие костылей — мешает вам жить, и перед добавлением нового функционала вы выпиваете корвалола. То пора. Пора делать инспектировать и рефакторить код. </p>
<p>Но, как мне кажется, каждый программист — после первого месяца серьезного программирования уже знает, что такое рефакторинг. Возможно слово такого еще не знает, но точно знает, что ему это уже хочется.</p>
<p>Рефакторинг кода может быть связан не только с изначальной архитектурной убогостью. Его проводят после понимания того что «что то у нас все очень тупит» ( хотя тут слово <strong>«оптимизация»</strong> подходит больше ). В этом случае проводится рефакторинг узкого места программы. Профилировка поможет его определить. Бывает это помогут вам определить и пользователи, просто говоря, в каком месте у них «долго думает». Был свидетелем того, как узкое место программы определяли на глаз. Более того, код которым заменяли «тупящий» &#8211; не факт, что работал быстрее. Проверяйте!!! Бенчмарк как и профилировка есть в любом языке программирования. Но это отдельная тема, которую сейчас я обсуждать не буду.</p>
<p>И самая страшная причина, по которой могут проводить рефакторинг. Начинается примерно с таких слов. «Я тут прочитал одну статью на форуме, так вот там сказали, что лучше юзать вот эту штуку вместо этой. И на сайте у них говорится, что у них все круто и круче них только Чак Норис. Давайте переезжать!». В топку! Холивары оставляем на форумах. Безусловно, когда вы увидите, что место у вас и правда узкое, то эти знания будут вам крайне полезны. Но просто так оптимизировать все подряд — глупо и дорого. Возможно это даже не будет ваше самое узкое место. </p>
<p>Да. Затянутое получилось введение.</p>
<p>Вчера у меня день был посвящен рефакторингу одной компоненты системы, относящийся к авторизации пользователя и взаимодействию системы с ним. Т.е. с ядром системы, с его основным функционалом. По ходу этого действа я пытался делать пометки на отдельном листке, чтоб как то формализовать правила для себя, собрать их в отдельную статью и выставить на ваш суд.</p>
<p>Итак начнем.</p>
<p>1.Если ваш проект уже запущен у него есть аудитория, то без <strong>железобетонного набора тестов</strong> пускаться в удивительный мир рефакторинга я крайнее не советую. Если тестов нет, то с начало напишите их.<br />
2.<strong>Пройдитесь по коду</strong> (если есть возможность используйте дебаг) с каждой точки входа в программу до точки выхода. И простым языком <em>описываем процедуру взаимодействия с объектом</em> на отдельном листке. Можно также помечать какие свойства или методы связаны с описываемыми действиями — это может быть полезно в выявлении дублирующего кода. Как правило уже в процессе письма я вижу места, программы, которые либо выполняют ненужные телодвижения, дублируют друг друга. Выписываем их на отдельный листок. Вообще я считаю, что даже программисту иногда полезно взять ручку и листочек в руки, хоть сейчас просто море программ и сервисов, которые с легкостью из заменяют.<br />
3.После того, как вы опишите все это. Словесные описания можно <strong>сгруппировать в блоки</strong>.  Вы сразу видите ( как бы сверху ) на поведение своего объекта, точки соприкосновения с другими объектами.  Получается такой процесс, обратный проектирования. <em>Если при проектировании я описания задачи свожу к написанию кода, то тут я код свожу к описанию задачи, которую он выполняет</em>. И выражаю эти блоки уже кодом программы.<br />
4.Изменяя функцию, я не комментирую ее (полностью или частями) я просто <strong>добавляю к ней приставку __OLD</strong> и пишу новую без этой приставки это касается и свойств. Если функция переносится в другой объект, то я на против __OLD оставляю комментарий с описанием, куда она была перенесена.<br />
5.Приставка __OLD также полезна в случае, если вы, в процессе описания, <strong>увидили дублирующие функции или свойства</strong>. Или почти дублирующие. Одну из функций-близнецов переименовываем и прогоняем тесты. В местах ошибок заменяем на правильную.<br />
6.После проведенной предварительно описательной работы — написание кода у вас займет в разу меньше времени.<br />
7.Оставшуюся описательную макулатуру после рефакторинга <strong>переведите в документацию</strong>.</p>
<p>Да, и самое главное. <em>На дело лучше идти с утра, когда голова еще светла</em>.</p>
<p>У меня после описательной работы и кодирования наверно штук 20 функций были искалечены словами OLD, и над ними красовались 3-4 которые теперь были вместо них. </p>
<p>И помните. <em>Книга считается законченной не тогда, когда нечего больше добавить, а когда нечего больше выкинуть</em>.</p>
<p>Вот такой опыт. А как проводите это вы? Есть ли у вас какие-то обязательные предварительные условия? Возможно какие-то правила рефакторинга, которые вы используете? Было бы очень интересно услышать еще одно мнение.  </p>
<p>Спасибо за внимание и удачного для.</p>

<div class="sociable">
<div class="sociable_tagline">
<strong>Share and Enjoy:</strong>
</div>
<ul>
	<li class="sociablefirst"><a rel="nofollow"  href="http://www.facebook.com/share.php?u=http%3A%2F%2Fwww.lyabah.com%2Findex.php%2F2009%2F08%2F10%2Frefactoring-of-code%2F&amp;t=%D0%9A%D0%B0%D0%BA%20%D0%B2%D1%8B%20%D0%BF%D1%80%D0%BE%D0%B2%D0%BE%D0%B4%D0%B8%D1%82%D0%B5%20%D1%80%D0%B5%D1%84%D0%B0%D0%BA%D1%82%D0%BE%D1%80%D0%B8%D0%BD%D0%B3%20%D0%BA%D0%BE%D0%B4%D0%B0%3F" title="Facebook"><img src="http://www.lyabah.com/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fwww.lyabah.com%2Findex.php%2F2009%2F08%2F10%2Frefactoring-of-code%2F&amp;title=%D0%9A%D0%B0%D0%BA%20%D0%B2%D1%8B%20%D0%BF%D1%80%D0%BE%D0%B2%D0%BE%D0%B4%D0%B8%D1%82%D0%B5%20%D1%80%D0%B5%D1%84%D0%B0%D0%BA%D1%82%D0%BE%D1%80%D0%B8%D0%BD%D0%B3%20%D0%BA%D0%BE%D0%B4%D0%B0%3F&amp;source=Oduvan%27s+Web+Blog+&amp;summary=%D0%A0%D0%B5%D1%84%D0%B0%D0%BA%D1%82%D0%BE%D1%80%D0%B8%D0%BD%D0%B3%20-%20%D0%BF%D1%80%D0%BE%D1%86%D0%B5%D1%81%D1%81%20%D0%BF%D0%BE%D0%BB%D0%BD%D0%BE%D0%B3%D0%BE%20%D0%B8%D0%BB%D0%B8%20%D1%87%D0%B0%D1%81%D1%82%D0%B8%D1%87%D0%BD%D0%BE%D0%B3%D0%BE%20%D0%BF%D1%80%D0%B5%D0%BE%D0%B1%D1%80%D0%B0%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F%20%D0%B2%D0%BD%D1%83%D1%82%D1%80%D0%B5%D0%BD%D0%BD%D0%B5%D0%B9%20%D1%81%D1%82%D1%80%D1%83%D0%BA%D1%82%D1%83%D1%80%D1%8B%20%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D1%8B%20%D0%BF%D1%80%D0%B8%20%D1%81%D0%BE%D1%85%D1%80%D0%B0%D0%BD%D0%B5%D0%BD%D0%B8%D0%B8%20%D0%B5%D1%91%20%D0%B2%D0%BD%D0%B5%D1%88%D0%BD%D0%B5%D0%B3%D0%BE%20%D0%BF%D0%BE%D0%B2%D0%B5%D0%B4%D0%B5%D0%BD%D0%B8%D1%8F.%0D%0A%0D%0A%D0%A3%20%D0%BA%D0" title="LinkedIn"><img src="http://www.lyabah.com/wp-content/plugins/sociable/images/linkedin.png" title="LinkedIn" alt="LinkedIn" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  href="http://delicious.com/post?url=http%3A%2F%2Fwww.lyabah.com%2Findex.php%2F2009%2F08%2F10%2Frefactoring-of-code%2F&amp;title=%D0%9A%D0%B0%D0%BA%20%D0%B2%D1%8B%20%D0%BF%D1%80%D0%BE%D0%B2%D0%BE%D0%B4%D0%B8%D1%82%D0%B5%20%D1%80%D0%B5%D1%84%D0%B0%D0%BA%D1%82%D0%BE%D1%80%D0%B8%D0%BD%D0%B3%20%D0%BA%D0%BE%D0%B4%D0%B0%3F&amp;notes=%D0%A0%D0%B5%D1%84%D0%B0%D0%BA%D1%82%D0%BE%D1%80%D0%B8%D0%BD%D0%B3%20-%20%D0%BF%D1%80%D0%BE%D1%86%D0%B5%D1%81%D1%81%20%D0%BF%D0%BE%D0%BB%D0%BD%D0%BE%D0%B3%D0%BE%20%D0%B8%D0%BB%D0%B8%20%D1%87%D0%B0%D1%81%D1%82%D0%B8%D1%87%D0%BD%D0%BE%D0%B3%D0%BE%20%D0%BF%D1%80%D0%B5%D0%BE%D0%B1%D1%80%D0%B0%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F%20%D0%B2%D0%BD%D1%83%D1%82%D1%80%D0%B5%D0%BD%D0%BD%D0%B5%D0%B9%20%D1%81%D1%82%D1%80%D1%83%D0%BA%D1%82%D1%83%D1%80%D1%8B%20%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D1%8B%20%D0%BF%D1%80%D0%B8%20%D1%81%D0%BE%D1%85%D1%80%D0%B0%D0%BD%D0%B5%D0%BD%D0%B8%D0%B8%20%D0%B5%D1%91%20%D0%B2%D0%BD%D0%B5%D1%88%D0%BD%D0%B5%D0%B3%D0%BE%20%D0%BF%D0%BE%D0%B2%D0%B5%D0%B4%D0%B5%D0%BD%D0%B8%D1%8F.%0D%0A%0D%0A%D0%A3%20%D0%BA%D0" title="del.icio.us"><img src="http://www.lyabah.com/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fwww.lyabah.com%2Findex.php%2F2009%2F08%2F10%2Frefactoring-of-code%2F&amp;title=%D0%9A%D0%B0%D0%BA%20%D0%B2%D1%8B%20%D0%BF%D1%80%D0%BE%D0%B2%D0%BE%D0%B4%D0%B8%D1%82%D0%B5%20%D1%80%D0%B5%D1%84%D0%B0%D0%BA%D1%82%D0%BE%D1%80%D0%B8%D0%BD%D0%B3%20%D0%BA%D0%BE%D0%B4%D0%B0%3F" title="StumbleUpon"><img src="http://www.lyabah.com/wp-content/plugins/sociable/images/stumbleupon.png" title="StumbleUpon" alt="StumbleUpon" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  href="http://www.myspace.com/Modules/PostTo/Pages/?u=http%3A%2F%2Fwww.lyabah.com%2Findex.php%2F2009%2F08%2F10%2Frefactoring-of-code%2F&amp;t=%D0%9A%D0%B0%D0%BA%20%D0%B2%D1%8B%20%D0%BF%D1%80%D0%BE%D0%B2%D0%BE%D0%B4%D0%B8%D1%82%D0%B5%20%D1%80%D0%B5%D1%84%D0%B0%D0%BA%D1%82%D0%BE%D1%80%D0%B8%D0%BD%D0%B3%20%D0%BA%D0%BE%D0%B4%D0%B0%3F" title="MySpace"><img src="http://www.lyabah.com/wp-content/plugins/sociable/images/myspace.png" title="MySpace" alt="MySpace" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  href="http://reddit.com/submit?url=http%3A%2F%2Fwww.lyabah.com%2Findex.php%2F2009%2F08%2F10%2Frefactoring-of-code%2F&amp;title=%D0%9A%D0%B0%D0%BA%20%D0%B2%D1%8B%20%D0%BF%D1%80%D0%BE%D0%B2%D0%BE%D0%B4%D0%B8%D1%82%D0%B5%20%D1%80%D0%B5%D1%84%D0%B0%D0%BA%D1%82%D0%BE%D1%80%D0%B8%D0%BD%D0%B3%20%D0%BA%D0%BE%D0%B4%D0%B0%3F" title="Reddit"><img src="http://www.lyabah.com/wp-content/plugins/sociable/images/reddit.png" title="Reddit" alt="Reddit" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fwww.lyabah.com%2Findex.php%2F2009%2F08%2F10%2Frefactoring-of-code%2F&amp;title=%D0%9A%D0%B0%D0%BA%20%D0%B2%D1%8B%20%D0%BF%D1%80%D0%BE%D0%B2%D0%BE%D0%B4%D0%B8%D1%82%D0%B5%20%D1%80%D0%B5%D1%84%D0%B0%D0%BA%D1%82%D0%BE%D1%80%D0%B8%D0%BD%D0%B3%20%D0%BA%D0%BE%D0%B4%D0%B0%3F&amp;bodytext=%D0%A0%D0%B5%D1%84%D0%B0%D0%BA%D1%82%D0%BE%D1%80%D0%B8%D0%BD%D0%B3%20-%20%D0%BF%D1%80%D0%BE%D1%86%D0%B5%D1%81%D1%81%20%D0%BF%D0%BE%D0%BB%D0%BD%D0%BE%D0%B3%D0%BE%20%D0%B8%D0%BB%D0%B8%20%D1%87%D0%B0%D1%81%D1%82%D0%B8%D1%87%D0%BD%D0%BE%D0%B3%D0%BE%20%D0%BF%D1%80%D0%B5%D0%BE%D0%B1%D1%80%D0%B0%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F%20%D0%B2%D0%BD%D1%83%D1%82%D1%80%D0%B5%D0%BD%D0%BD%D0%B5%D0%B9%20%D1%81%D1%82%D1%80%D1%83%D0%BA%D1%82%D1%83%D1%80%D1%8B%20%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D1%8B%20%D0%BF%D1%80%D0%B8%20%D1%81%D0%BE%D1%85%D1%80%D0%B0%D0%BD%D0%B5%D0%BD%D0%B8%D0%B8%20%D0%B5%D1%91%20%D0%B2%D0%BD%D0%B5%D1%88%D0%BD%D0%B5%D0%B3%D0%BE%20%D0%BF%D0%BE%D0%B2%D0%B5%D0%B4%D0%B5%D0%BD%D0%B8%D1%8F.%0D%0A%0D%0A%D0%A3%20%D0%BA%D0" title="Digg"><img src="http://www.lyabah.com/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fwww.lyabah.com%2Findex.php%2F2009%2F08%2F10%2Frefactoring-of-code%2F&amp;title=%D0%9A%D0%B0%D0%BA%20%D0%B2%D1%8B%20%D0%BF%D1%80%D0%BE%D0%B2%D0%BE%D0%B4%D0%B8%D1%82%D0%B5%20%D1%80%D0%B5%D1%84%D0%B0%D0%BA%D1%82%D0%BE%D1%80%D0%B8%D0%BD%D0%B3%20%D0%BA%D0%BE%D0%B4%D0%B0%3F&amp;annotation=%D0%A0%D0%B5%D1%84%D0%B0%D0%BA%D1%82%D0%BE%D1%80%D0%B8%D0%BD%D0%B3%20-%20%D0%BF%D1%80%D0%BE%D1%86%D0%B5%D1%81%D1%81%20%D0%BF%D0%BE%D0%BB%D0%BD%D0%BE%D0%B3%D0%BE%20%D0%B8%D0%BB%D0%B8%20%D1%87%D0%B0%D1%81%D1%82%D0%B8%D1%87%D0%BD%D0%BE%D0%B3%D0%BE%20%D0%BF%D1%80%D0%B5%D0%BE%D0%B1%D1%80%D0%B0%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F%20%D0%B2%D0%BD%D1%83%D1%82%D1%80%D0%B5%D0%BD%D0%BD%D0%B5%D0%B9%20%D1%81%D1%82%D1%80%D1%83%D0%BA%D1%82%D1%83%D1%80%D1%8B%20%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D1%8B%20%D0%BF%D1%80%D0%B8%20%D1%81%D0%BE%D1%85%D1%80%D0%B0%D0%BD%D0%B5%D0%BD%D0%B8%D0%B8%20%D0%B5%D1%91%20%D0%B2%D0%BD%D0%B5%D1%88%D0%BD%D0%B5%D0%B3%D0%BE%20%D0%BF%D0%BE%D0%B2%D0%B5%D0%B4%D0%B5%D0%BD%D0%B8%D1%8F.%0D%0A%0D%0A%D0%A3%20%D0%BA%D0" title="Google Bookmarks"><img src="http://www.lyabah.com/wp-content/plugins/sociable/images/googlebookmark.png" title="Google Bookmarks" alt="Google Bookmarks" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  href="http://technorati.com/faves?add=http%3A%2F%2Fwww.lyabah.com%2Findex.php%2F2009%2F08%2F10%2Frefactoring-of-code%2F" title="Technorati"><img src="http://www.lyabah.com/wp-content/plugins/sociable/images/technorati.png" title="Technorati" alt="Technorati" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  href="mailto:?subject=%D0%9A%D0%B0%D0%BA%20%D0%B2%D1%8B%20%D0%BF%D1%80%D0%BE%D0%B2%D0%BE%D0%B4%D0%B8%D1%82%D0%B5%20%D1%80%D0%B5%D1%84%D0%B0%D0%BA%D1%82%D0%BE%D1%80%D0%B8%D0%BD%D0%B3%20%D0%BA%D0%BE%D0%B4%D0%B0%3F&amp;body=http%3A%2F%2Fwww.lyabah.com%2Findex.php%2F2009%2F08%2F10%2Frefactoring-of-code%2F" title="email"><img src="http://www.lyabah.com/wp-content/plugins/sociable/images/email_link.png" title="email" alt="email" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  href="http://www.printfriendly.com/print?url=http%3A%2F%2Fwww.lyabah.com%2Findex.php%2F2009%2F08%2F10%2Frefactoring-of-code%2F&amp;partner=sociable" title="Print"><img src="http://www.lyabah.com/wp-content/plugins/sociable/images/printfriendly.png" title="Print" alt="Print" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  href="http://sphinn.com/index.php?c=post&amp;m=submit&amp;link=http%3A%2F%2Fwww.lyabah.com%2Findex.php%2F2009%2F08%2F10%2Frefactoring-of-code%2F" title="Sphinn"><img src="http://www.lyabah.com/wp-content/plugins/sociable/images/sphinn.png" title="Sphinn" alt="Sphinn" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  href="http://www.mixx.com/submit?page_url=http%3A%2F%2Fwww.lyabah.com%2Findex.php%2F2009%2F08%2F10%2Frefactoring-of-code%2F&amp;title=%D0%9A%D0%B0%D0%BA%20%D0%B2%D1%8B%20%D0%BF%D1%80%D0%BE%D0%B2%D0%BE%D0%B4%D0%B8%D1%82%D0%B5%20%D1%80%D0%B5%D1%84%D0%B0%D0%BA%D1%82%D0%BE%D1%80%D0%B8%D0%BD%D0%B3%20%D0%BA%D0%BE%D0%B4%D0%B0%3F" title="Mixx"><img src="http://www.lyabah.com/wp-content/plugins/sociable/images/mixx.png" title="Mixx" alt="Mixx" class="sociable-hovers" /></a></li>
	<li><a  href="http://blogplay.com" title="Blogplay"><img src="http://www.lyabah.com/wp-content/plugins/sociable/images/blogplay.png" title="Blogplay" alt="Blogplay" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  href="javascript:AddToFavorites();" title="Add to favorites"><img src="http://www.lyabah.com/wp-content/plugins/sociable/images/addtofavorites.png" title="Add to favorites" alt="Add to favorites" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  href="http://www.linkter.hu/index.php?action=suggest_link&amp;url=http%3A%2F%2Fwww.lyabah.com%2Findex.php%2F2009%2F08%2F10%2Frefactoring-of-code%2F&amp;title=%D0%9A%D0%B0%D0%BA%20%D0%B2%D1%8B%20%D0%BF%D1%80%D0%BE%D0%B2%D0%BE%D0%B4%D0%B8%D1%82%D0%B5%20%D1%80%D0%B5%D1%84%D0%B0%D0%BA%D1%82%D0%BE%D1%80%D0%B8%D0%BD%D0%B3%20%D0%BA%D0%BE%D0%B4%D0%B0%3F" title="Linkter"><img src="http://www.lyabah.com/wp-content/plugins/sociable/images/linkter.png" title="Linkter" alt="Linkter" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  href="https://favorites.live.com/quickadd.aspx?marklet=1&amp;url=http%3A%2F%2Fwww.lyabah.com%2Findex.php%2F2009%2F08%2F10%2Frefactoring-of-code%2F&amp;title=%D0%9A%D0%B0%D0%BA%20%D0%B2%D1%8B%20%D0%BF%D1%80%D0%BE%D0%B2%D0%BE%D0%B4%D0%B8%D1%82%D0%B5%20%D1%80%D0%B5%D1%84%D0%B0%D0%BA%D1%82%D0%BE%D1%80%D0%B8%D0%BD%D0%B3%20%D0%BA%D0%BE%D0%B4%D0%B0%3F" title="Live"><img src="http://www.lyabah.com/wp-content/plugins/sociable/images/live.png" title="Live" alt="Live" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  href="http://reporter.nl.msn.com/?fn=contribute&amp;Title=%D0%9A%D0%B0%D0%BA%20%D0%B2%D1%8B%20%D0%BF%D1%80%D0%BE%D0%B2%D0%BE%D0%B4%D0%B8%D1%82%D0%B5%20%D1%80%D0%B5%D1%84%D0%B0%D0%BA%D1%82%D0%BE%D1%80%D0%B8%D0%BD%D0%B3%20%D0%BA%D0%BE%D0%B4%D0%B0%3F&amp;URL=http%3A%2F%2Fwww.lyabah.com%2Findex.php%2F2009%2F08%2F10%2Frefactoring-of-code%2F&amp;cat_id=6&amp;tag_id=31&amp;Remark=%D0%A0%D0%B5%D1%84%D0%B0%D0%BA%D1%82%D0%BE%D1%80%D0%B8%D0%BD%D0%B3%20-%20%D0%BF%D1%80%D0%BE%D1%86%D0%B5%D1%81%D1%81%20%D0%BF%D0%BE%D0%BB%D0%BD%D0%BE%D0%B3%D0%BE%20%D0%B8%D0%BB%D0%B8%20%D1%87%D0%B0%D1%81%D1%82%D0%B8%D1%87%D0%BD%D0%BE%D0%B3%D0%BE%20%D0%BF%D1%80%D0%B5%D0%BE%D0%B1%D1%80%D0%B0%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F%20%D0%B2%D0%BD%D1%83%D1%82%D1%80%D0%B5%D0%BD%D0%BD%D0%B5%D0%B9%20%D1%81%D1%82%D1%80%D1%83%D0%BA%D1%82%D1%83%D1%80%D1%8B%20%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D1%8B%20%D0%BF%D1%80%D0%B8%20%D1%81%D0%BE%D1%85%D1%80%D0%B0%D0%BD%D0%B5%D0%BD%D0%B8%D0%B8%20%D0%B5%D1%91%20%D0%B2%D0%BD%D0%B5%D1%88%D0%BD%D0%B5%D0%B3%D0%BE%20%D0%BF%D0%BE%D0%B2%D0%B5%D0%B4%D0%B5%D0%BD%D0%B8%D1%8F.%0D%0A%0D%0A%D0%A3%20%D0%BA%D0" title="MSN Reporter"><img src="http://www.lyabah.com/wp-content/plugins/sociable/images/msnreporter.png" title="MSN Reporter" alt="MSN Reporter" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  href="http://www.newsvine.com/_tools/seed&amp;save?u=http%3A%2F%2Fwww.lyabah.com%2Findex.php%2F2009%2F08%2F10%2Frefactoring-of-code%2F&amp;h=%D0%9A%D0%B0%D0%BA%20%D0%B2%D1%8B%20%D0%BF%D1%80%D0%BE%D0%B2%D0%BE%D0%B4%D0%B8%D1%82%D0%B5%20%D1%80%D0%B5%D1%84%D0%B0%D0%BA%D1%82%D0%BE%D1%80%D0%B8%D0%BD%D0%B3%20%D0%BA%D0%BE%D0%B4%D0%B0%3F" title="NewsVine"><img src="http://www.lyabah.com/wp-content/plugins/sociable/images/newsvine.png" title="NewsVine" alt="NewsVine" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  href="http://www.lyabah.com/index.php/feed/" title="RSS"><img src="http://www.lyabah.com/wp-content/plugins/sociable/images/rss.png" title="RSS" alt="RSS" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  href="http://bookmarks.yahoo.com/toolbar/savebm?u=http%3A%2F%2Fwww.lyabah.com%2Findex.php%2F2009%2F08%2F10%2Frefactoring-of-code%2F&amp;t=%D0%9A%D0%B0%D0%BA%20%D0%B2%D1%8B%20%D0%BF%D1%80%D0%BE%D0%B2%D0%BE%D0%B4%D0%B8%D1%82%D0%B5%20%D1%80%D0%B5%D1%84%D0%B0%D0%BA%D1%82%D0%BE%D1%80%D0%B8%D0%BD%D0%B3%20%D0%BA%D0%BE%D0%B4%D0%B0%3F&opener=bm&amp;ei=UTF-8&amp;d=%D0%A0%D0%B5%D1%84%D0%B0%D0%BA%D1%82%D0%BE%D1%80%D0%B8%D0%BD%D0%B3%20-%20%D0%BF%D1%80%D0%BE%D1%86%D0%B5%D1%81%D1%81%20%D0%BF%D0%BE%D0%BB%D0%BD%D0%BE%D0%B3%D0%BE%20%D0%B8%D0%BB%D0%B8%20%D1%87%D0%B0%D1%81%D1%82%D0%B8%D1%87%D0%BD%D0%BE%D0%B3%D0%BE%20%D0%BF%D1%80%D0%B5%D0%BE%D0%B1%D1%80%D0%B0%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F%20%D0%B2%D0%BD%D1%83%D1%82%D1%80%D0%B5%D0%BD%D0%BD%D0%B5%D0%B9%20%D1%81%D1%82%D1%80%D1%83%D0%BA%D1%82%D1%83%D1%80%D1%8B%20%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D1%8B%20%D0%BF%D1%80%D0%B8%20%D1%81%D0%BE%D1%85%D1%80%D0%B0%D0%BD%D0%B5%D0%BD%D0%B8%D0%B8%20%D0%B5%D1%91%20%D0%B2%D0%BD%D0%B5%D1%88%D0%BD%D0%B5%D0%B3%D0%BE%20%D0%BF%D0%BE%D0%B2%D0%B5%D0%B4%D0%B5%D0%BD%D0%B8%D1%8F.%0D%0A%0D%0A%D0%A3%20%D0%BA%D0" title="Yahoo! Bookmarks"><img src="http://www.lyabah.com/wp-content/plugins/sociable/images/yahoomyweb.png" title="Yahoo! Bookmarks" alt="Yahoo! Bookmarks" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  href="http://buzz.yahoo.com/submit/?submitUrl=http%3A%2F%2Fwww.lyabah.com%2Findex.php%2F2009%2F08%2F10%2Frefactoring-of-code%2F&amp;submitHeadline=%D0%9A%D0%B0%D0%BA%20%D0%B2%D1%8B%20%D0%BF%D1%80%D0%BE%D0%B2%D0%BE%D0%B4%D0%B8%D1%82%D0%B5%20%D1%80%D0%B5%D1%84%D0%B0%D0%BA%D1%82%D0%BE%D1%80%D0%B8%D0%BD%D0%B3%20%D0%BA%D0%BE%D0%B4%D0%B0%3F&amp;submitSummary=%D0%A0%D0%B5%D1%84%D0%B0%D0%BA%D1%82%D0%BE%D1%80%D0%B8%D0%BD%D0%B3%20-%20%D0%BF%D1%80%D0%BE%D1%86%D0%B5%D1%81%D1%81%20%D0%BF%D0%BE%D0%BB%D0%BD%D0%BE%D0%B3%D0%BE%20%D0%B8%D0%BB%D0%B8%20%D1%87%D0%B0%D1%81%D1%82%D0%B8%D1%87%D0%BD%D0%BE%D0%B3%D0%BE%20%D0%BF%D1%80%D0%B5%D0%BE%D0%B1%D1%80%D0%B0%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F%20%D0%B2%D0%BD%D1%83%D1%82%D1%80%D0%B5%D0%BD%D0%BD%D0%B5%D0%B9%20%D1%81%D1%82%D1%80%D1%83%D0%BA%D1%82%D1%83%D1%80%D1%8B%20%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D1%8B%20%D0%BF%D1%80%D0%B8%20%D1%81%D0%BE%D1%85%D1%80%D0%B0%D0%BD%D0%B5%D0%BD%D0%B8%D0%B8%20%D0%B5%D1%91%20%D0%B2%D0%BD%D0%B5%D1%88%D0%BD%D0%B5%D0%B3%D0%BE%20%D0%BF%D0%BE%D0%B2%D0%B5%D0%B4%D0%B5%D0%BD%D0%B8%D1%8F.%0D%0A%0D%0A%D0%A3%20%D0%BA%D0&amp;submitCategory=science&amp;submitAssetType=text" title="Yahoo! Buzz"><img src="http://www.lyabah.com/wp-content/plugins/sociable/images/yahoobuzz.png" title="Yahoo! Buzz" alt="Yahoo! Buzz" class="sociable-hovers" /></a></li>
	<li class="sociablelast"><a rel="nofollow"  href="http://yigg.de/neu?exturl=http%3A%2F%2Fwww.lyabah.com%2Findex.php%2F2009%2F08%2F10%2Frefactoring-of-code%2F&amp;exttitle=%D0%9A%D0%B0%D0%BA%20%D0%B2%D1%8B%20%D0%BF%D1%80%D0%BE%D0%B2%D0%BE%D0%B4%D0%B8%D1%82%D0%B5%20%D1%80%D0%B5%D1%84%D0%B0%D0%BA%D1%82%D0%BE%D1%80%D0%B8%D0%BD%D0%B3%20%D0%BA%D0%BE%D0%B4%D0%B0%3F" title="Yigg"><img src="http://www.lyabah.com/wp-content/plugins/sociable/images/yiggit.png" title="Yigg" alt="Yigg" class="sociable-hovers" /></a></li>
</ul>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.lyabah.com/index.php/2009/08/10/refactoring-of-code/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Доверяй но проверяй, разделяй и властвуй</title>
		<link>http://www.lyabah.com/index.php/2009/08/04/split-develop/</link>
		<comments>http://www.lyabah.com/index.php/2009/08/04/split-develop/#comments</comments>
		<pubDate>Tue, 04 Aug 2009 09:38:05 +0000</pubDate>
		<dc:creator>Oduvan</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[checking]]></category>
		<category><![CDATA[develop]]></category>
		<category><![CDATA[testing]]></category>

		<guid isPermaLink="false">http://www.lyabah.com/?p=499</guid>
		<description><![CDATA[Последнее время мучает одна идея. Мне как всегда кажется, что она реально не нова, и если это так, скажите мне, как это дело называется.
Если помните, я уже писал о тестировании наследниками. Теперь у меня родилась идея организации инлайн тестов, также намного своеобразным способом.
Что если проект разделить на 2, или создавать 2 его копии. Один будет [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.lyabah.com/wp-content/uploads/2009/08/kombain.jpg"><img src="http://www.lyabah.com/wp-content/uploads/2009/08/kombain-300x228.jpg" alt="kombain" title="kombain" width="300" height="228" class="alignleft size-medium wp-image-501" /></a>Последнее время мучает одна идея. Мне как всегда кажется, что она реально не нова, и если это так, скажите мне, как это дело называется.</p>
<p>Если помните, я уже писал о <a href="http://www.lyabah.com/index.php/2009/04/15/%D1%82%D0%B5%D1%81%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5-%D0%BD%D0%B0%D1%81%D0%BB%D0%B5%D0%B4%D0%BD%D0%B8%D0%BA%D0%B0%D0%BC%D0%B8/">тестировании наследниками</a>. Теперь у меня родилась идея организации инлайн тестов, также намного своеобразным способом.</p>
<p>Что если проект разделить на 2, или создавать 2 его копии. Один будет для боевого сервера, а второй будет для сервера разработки. И проект для разработки будет отличатся от проекта для боевого только тем, что в него будут включены проверки входных данных для всех блоков программы ( или критичных, или точек взаимодействия модулей ), это бывает полезно, когда несколько человек работает на одним проекта и надо проверять, чтоб один разработки пользовался интерфейсом модуля другого разработчика правильно. Но все эти проверки не нужны на боевом, или не нужны с определенного времени. Т.е. чтоб от них можно было легко избавится и легко включить обратно.</p>
<p>Так. Надеюсь общую задачу я описал адекватно. Если нет, то возможно из решения вы поймете о чем речь.</p>
<p>Задача решается на python. </p>
<p>У python есть массив каталогов, в которых он ищет модуль, как только вы хотите его импортировать. И этот список каталогов можно расширять во время работы программы.</p>
<div class="geshi no python">
<ol>
<li class="li1">
<div class="de1"><span class="kw1">import</span> <span class="kw3">sys</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw3">sys</span>.<span class="me1">path</span>.<span class="me1">apend</span><span class="br0">&#40;</span><span class="st0">&#39;/home/oduvan/list_of_my_cool_modules&#39;</span><span class="br0">&#41;</span></div>
</li>
</ol>
</div>
<p>Python позволяет один и тот же модуль импортировать с разными именами. Т.е. в области видимости, в которую мы импортируем модуль — мы можем дать ему несколько различных имен.</p>
<div class="geshi no python">
<ol>
<li class="li1">
<div class="de1"><span class="kw1">import</span> <span class="kw3">sys</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">import</span> <span class="kw3">sys</span> as new_sys</div>
</li>
</ol>
</div>
<p>И можно все имена из одного модуля импортировать в другой модуль.</p>
<div class="geshi no python">
<ol>
<li class="li1">
<div class="de1"><span class="kw1">from</span> <span class="kw3">sys</span> <span class="kw1">import</span> <span class="sy0">*</span></div>
</li>
</ol>
</div>
<p>Вот по сути и весь необходимый функционал от python, который необходим для реализации этой идеи. Т.е. предполагаю, что любой другой  язык с ООП, который имеет эти возможности может использовать эту идею.</p>
<p>Решение. </p>
<p>Модули для боевого сервера — будут включать в себя только функционал, т.е без каких либо проверок. А модули для деволова будут включать только проверки  и никакого функционала. В них будут собраны функции, которые будут проверять входных параметры одноименных функций из девелопа. При чем возможности проверок вообще ничем не ограничены.</p>
<p>Ниже приведена структура каталогов и файлов нашего проекта.</p>
<pre>
modules
	__init__.py
	develop
		__init__.py
		t1.py
	production
		__init__.py
		t1.py
		t2.py
run.py
</pre>
<p>В modules/production собраны все модули для боевого сервера<br />
В modules/develop модули с проверками данных<br />
run.py скрипт, в котором они будут использоваться.</p>
<p>Замете, что в папке modules тоже есть файл __init__.py, т.е. он также будет точкой отсчета для импорта.</p>
<p>В папке develop есть файл t1.py для тестирования такого же модуля из продакшена, или его части. А также мы видим, что модуль t2 остается без тестов. </p>
<p>( Автор просит прощения, за такие без звучные имена, с фантазией у него совсем все плохо )</p>
<p>Приведу пример модуля t1 из production</p>
<div class="geshi no python">
<ol>
<li class="li1">
<div class="de1"><span class="kw1">def</span> p_name<span class="br0">&#40;</span><span class="br0">&#41;</span>:</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw1">print</span> <span class="st0">&#39;Production&#39;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; </div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">def</span> just_in_prod<span class="br0">&#40;</span><span class="br0">&#41;</span>:</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw1">print</span> <span class="st0">&#39;This just in prod&#39;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">def</span> sum2<span class="br0">&#40;</span>a,b<span class="br0">&#41;</span>:</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw1">return</span> a+b</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; </div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">class</span> A<span class="br0">&#40;</span><span class="kw2">object</span><span class="br0">&#41;</span>:</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw1">def</span> b_prop<span class="br0">&#40;</span><span class="kw2">self</span>,b<span class="br0">&#41;</span>:</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">return</span> b.<span class="me1">prop</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">class</span> B<span class="br0">&#40;</span><span class="kw2">object</span><span class="br0">&#41;</span>:</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw1">def</span> <span class="kw4">__init__</span><span class="br0">&#40;</span><span class="kw2">self</span>,prop<span class="br0">&#41;</span>:</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">self</span>.<span class="me1">prop</span> = prop</div>
</li>
</ol>
</div>
<p>функция p_name просто нужна для вывода имени модуля или репозитария, для нас она особой ценности не имеет.<br />
just_in_prod — тестироваться этой функции проводится не будет<br />
sum2 — складывает 2 числа. И мы хотим проверить, чтоб это на самом деле были 2 числа.<br />
Объект класс A имеет метод, который на вход получает один параметр — объект класса B, и возвращает его свойство. Класс B мы также тестировать не будем.</p>
<p>Как сами уже можете видеть, в модуле нет ни одного слово о тестах. Вы видите чистый функционал.</p>
<p>Теперь приведу вам пример модуля t1 из develop</p>
<div class="geshi no python">
<ol>
<li class="li1">
<div class="de1"><span class="kw1">from</span> production.<span class="me1">t1</span> <span class="kw1">import</span> <span class="sy0">*</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">import</span> production.<span class="me1">t1</span> as P</div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">def</span> p_name<span class="br0">&#40;</span><span class="br0">&#41;</span>:</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw1">print</span> <span class="st0">&#39;Develop&#39;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; P.<span class="me1">p_name</span><span class="br0">&#40;</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">def</span> sum2<span class="br0">&#40;</span>a,b<span class="br0">&#41;</span>:</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw1">if</span> <span class="kw1">not</span> <span class="kw2">isinstance</span><span class="br0">&#40;</span>a, <span class="br0">&#40;</span><span class="kw2">int</span>,<span class="kw2">float</span><span class="br0">&#41;</span><span class="br0">&#41;</span>:</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">raise</span> <span class="kw2">ValueError</span><span class="br0">&#40;</span><span class="st0">&#39;a must be int or float&#39;</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw1">if</span> <span class="kw1">not</span> <span class="kw2">isinstance</span><span class="br0">&#40;</span>b, <span class="br0">&#40;</span><span class="kw2">int</span>,<span class="kw2">float</span><span class="br0">&#41;</span><span class="br0">&#41;</span>:</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">raise</span> <span class="kw2">ValueError</span><span class="br0">&#40;</span><span class="st0">&#39;a must be int or float&#39;</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw1">return</span> P.<span class="me1">sum2</span><span class="br0">&#40;</span>a,b<span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; </div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; </div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">class</span> A<span class="br0">&#40;</span>P.<span class="me1">A</span><span class="br0">&#41;</span>:</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw1">def</span> b_prop<span class="br0">&#40;</span><span class="kw2">self</span>,b,<span class="sy0">*</span>args,<span class="sy0">**</span>kwargs<span class="br0">&#41;</span>:</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span> <span class="kw1">not</span> <span class="kw2">isinstance</span><span class="br0">&#40;</span>b, B<span class="br0">&#41;</span>:</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">raise</span> <span class="kw2">ValueError</span><span class="br0">&#40;</span><span class="st0">&#39;first argument must be instance of B&#39;</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">return</span> <span class="kw2">super</span><span class="br0">&#40;</span>A,<span class="kw2">self</span><span class="br0">&#41;</span>.<span class="me1">b_prop</span><span class="br0">&#40;</span>b,<span class="sy0">*</span>args,<span class="sy0">**</span>kwargs<span class="br0">&#41;</span></div>
</li>
</ol>
</div>
<p>Первые 2 строчки всегда должны быть в модуле тестирования.</p>
<p>Функция p_name будет чисто информативная ( мы на ней покажем вам порядок импортирования) , и безусловно тестирование без нее лучше обойтись.</p>
<p>Проверка для функции sum2 и проверка для свойства b_prop из класса A. </p>
<p>Ну и текст скрипта, который демонстрирует процесс работы и тестирования run.py. Предполагается, что у вас это и будет точкой отсчета для запуска. </p>
<div class="geshi no python">
<ol>
<li class="li1">
<div class="de1"><span class="kw1">import</span> <span class="kw3">sys</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw3">sys</span>.<span class="me1">path</span>.<span class="me1">append</span><span class="br0">&#40;</span><span class="st0">&#39;modules/develop&#39;</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw3">sys</span>.<span class="me1">path</span>.<span class="me1">append</span><span class="br0">&#40;</span><span class="st0">&#39;modules&#39;</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw3">sys</span>.<span class="me1">path</span>.<span class="me1">append</span><span class="br0">&#40;</span><span class="st0">&#39;modules/production&#39;</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">import</span> t1,t2</div>
</li>
<li class="li1">
<div class="de1">t1.<span class="me1">p_name</span><span class="br0">&#40;</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">print</span> <span class="st0">&#39;&#8212;&#39;</span></div>
</li>
<li class="li1">
<div class="de1">t1.<span class="me1">just_in_prod</span><span class="br0">&#40;</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">t2.<span class="me1">in_only_production</span><span class="br0">&#40;</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">print</span> <span class="st0">&#39;&#8212;&#39;</span></div>
</li>
<li class="li1">
<div class="de1">o_a = t1.<span class="me1">A</span><span class="br0">&#40;</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">o_b = t1.<span class="me1">B</span><span class="br0">&#40;</span><span class="st0">&#39;it_s prop&#39;</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">print</span> o_a.<span class="me1">b_prop</span><span class="br0">&#40;</span>o_b<span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">print</span> t1.<span class="me1">sum2</span><span class="br0">&#40;</span><span class="nu0">1</span>,<span class="nu0">2</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">print</span> o_a.<span class="me1">b_prop</span><span class="br0">&#40;</span><span class="nu0">15</span><span class="br0">&#41;</span></div>
</li>
</ol>
</div>
<p>В этом скрипте важным является порядок добавления модулей в массив sys.path, ну и то, чтоб эти строчки были самые первые в вашем скрипте.</p>
<p>Вывод скрипта будет следующий </p>
<pre>
Develop
Production
---
This just in prod
Only in production
---
it_s prop
3
Traceback (most recent call last):
  File "run.py", line 18, in <module>
    print o_a.b_prop(15)
  File "modules/develop/t1.py", line 18, in b_prop
    raise ValueError('first argument must be instance of B')
ValueError: first argument must be instance of B
</pre>
<p>для боевого сервера он будет такой же, только в «шапке» скрипта будет не</p>
<div class="geshi no python">
<ol>
<li class="li1">
<div class="de1"><span class="kw1">import</span> <span class="kw3">sys</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw3">sys</span>.<span class="me1">path</span>.<span class="me1">append</span><span class="br0">&#40;</span><span class="st0">&#39;modules/develop&#39;</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw3">sys</span>.<span class="me1">path</span>.<span class="me1">append</span><span class="br0">&#40;</span><span class="st0">&#39;modules&#39;</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw3">sys</span>.<span class="me1">path</span>.<span class="me1">append</span><span class="br0">&#40;</span><span class="st0">&#39;modules/production&#39;</span><span class="br0">&#41;</span></div>
</li>
</ol>
</div>
<p>а</p>
<div class="geshi no python">
<ol>
<li class="li1">
<div class="de1"><span class="kw1">import</span> <span class="kw3">sys</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw3">sys</span>.<span class="me1">path</span>.<span class="me1">append</span><span class="br0">&#40;</span><span class="st0">&#39;modules/production&#39;</span><span class="br0">&#41;</span></div>
</li>
</ol>
</div>
<p>В этом случае поменяется только текст ошибки</p>
<pre>
Production
---
This just in prod
Only in production
---
it_s prop
3
Traceback (most recent call last):
  File "run.py", line 18, in <module>
    print o_a.b_prop(15)
  File "modules/production/t1.py", line 12, in b_prop
    return b.prop
AttributeError: 'int' object has no attribute 'prop'
</pre>
<p>Я думаю люди, которые часами разбирались в мало понятных ошибках модулей — оценят идею.</p>
<p>Да, и еще одним плюсом является то, что вы можете делать легко несколько профилей тестирования и легко между ними переключатся, Добавив рядом с папкой develop, что нить типа develop_plusplus, или если вы хотите залить на продакшн тесты, но не хотите тестировать все, а только те чатити, которые подвержены изменения develop_light. </p>
<p>Я же планирую у себя это использовать для своего сокет сервера. У меня именно так разнесен скрипт run.pay от функциональных модулей. И думаю при запуске его добавить еще параметр -t которому можно будет передать имя профиля тестирования.</p>
<p><a href='http://www.lyabah.com/wp-content/uploads/2009/08/split_develop.tar.gz'>Файлы из примера split_develop.tar</a></p>
<p>Вот и все. Жду жесткую критику, предложения по улучшению.</p>
<p><strong>Спасибо, что дочитали до конца <img src='http://www.lyabah.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </strong></p>

<div class="sociable">
<div class="sociable_tagline">
<strong>Share and Enjoy:</strong>
</div>
<ul>
	<li class="sociablefirst"><a rel="nofollow"  href="http://www.facebook.com/share.php?u=http%3A%2F%2Fwww.lyabah.com%2Findex.php%2F2009%2F08%2F04%2Fsplit-develop%2F&amp;t=%D0%94%D0%BE%D0%B2%D0%B5%D1%80%D1%8F%D0%B9%20%D0%BD%D0%BE%20%D0%BF%D1%80%D0%BE%D0%B2%D0%B5%D1%80%D1%8F%D0%B9%2C%20%D1%80%D0%B0%D0%B7%D0%B4%D0%B5%D0%BB%D1%8F%D0%B9%20%D0%B8%20%D0%B2%D0%BB%D0%B0%D1%81%D1%82%D0%B2%D1%83%D0%B9" title="Facebook"><img src="http://www.lyabah.com/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fwww.lyabah.com%2Findex.php%2F2009%2F08%2F04%2Fsplit-develop%2F&amp;title=%D0%94%D0%BE%D0%B2%D0%B5%D1%80%D1%8F%D0%B9%20%D0%BD%D0%BE%20%D0%BF%D1%80%D0%BE%D0%B2%D0%B5%D1%80%D1%8F%D0%B9%2C%20%D1%80%D0%B0%D0%B7%D0%B4%D0%B5%D0%BB%D1%8F%D0%B9%20%D0%B8%20%D0%B2%D0%BB%D0%B0%D1%81%D1%82%D0%B2%D1%83%D0%B9&amp;source=Oduvan%27s+Web+Blog+&amp;summary=%D0%9F%D0%BE%D1%81%D0%BB%D0%B5%D0%B4%D0%BD%D0%B5%D0%B5%20%D0%B2%D1%80%D0%B5%D0%BC%D1%8F%20%D0%BC%D1%83%D1%87%D0%B0%D0%B5%D1%82%20%D0%BE%D0%B4%D0%BD%D0%B0%20%D0%B8%D0%B4%D0%B5%D1%8F.%20%D0%9C%D0%BD%D0%B5%20%D0%BA%D0%B0%D0%BA%20%D0%B2%D1%81%D0%B5%D0%B3%D0%B4%D0%B0%20%D0%BA%D0%B0%D0%B6%D0%B5%D1%82%D1%81%D1%8F%2C%20%D1%87%D1%82%D0%BE%20%D0%BE%D0%BD%D0%B0%20%D1%80%D0%B5%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%20%D0%BD%D0%B5%20%D0%BD%D0%BE%D0%B2%D0%B0%2C%20%D0%B8%20%D0%B5%D1%81%D0%BB%D0%B8%20%D1%8D%D1%82%D0%BE%20%D1%82%D0%B0%D0%BA%2C%20%D1%81%D0%BA%D0%B0%D0%B6%D0%B8%D1%82%D0%B5%20%D0%BC%D0%BD%D0%B5%2C%20%D0%BA%D0%B0%D0%BA%20%D1%8D%D1%82%D0%BE%20%D0%B4%D0%B5%D0%BB%D0%BE%20%D0%BD%D0%B0%D0%B7%D1%8B%D0%B2%D0%B0%D0%B5%D1%82%D1%81%D1%8F.%0D%0A%0D%0A%D0%95%D1" title="LinkedIn"><img src="http://www.lyabah.com/wp-content/plugins/sociable/images/linkedin.png" title="LinkedIn" alt="LinkedIn" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  href="http://delicious.com/post?url=http%3A%2F%2Fwww.lyabah.com%2Findex.php%2F2009%2F08%2F04%2Fsplit-develop%2F&amp;title=%D0%94%D0%BE%D0%B2%D0%B5%D1%80%D1%8F%D0%B9%20%D0%BD%D0%BE%20%D0%BF%D1%80%D0%BE%D0%B2%D0%B5%D1%80%D1%8F%D0%B9%2C%20%D1%80%D0%B0%D0%B7%D0%B4%D0%B5%D0%BB%D1%8F%D0%B9%20%D0%B8%20%D0%B2%D0%BB%D0%B0%D1%81%D1%82%D0%B2%D1%83%D0%B9&amp;notes=%D0%9F%D0%BE%D1%81%D0%BB%D0%B5%D0%B4%D0%BD%D0%B5%D0%B5%20%D0%B2%D1%80%D0%B5%D0%BC%D1%8F%20%D0%BC%D1%83%D1%87%D0%B0%D0%B5%D1%82%20%D0%BE%D0%B4%D0%BD%D0%B0%20%D0%B8%D0%B4%D0%B5%D1%8F.%20%D0%9C%D0%BD%D0%B5%20%D0%BA%D0%B0%D0%BA%20%D0%B2%D1%81%D0%B5%D0%B3%D0%B4%D0%B0%20%D0%BA%D0%B0%D0%B6%D0%B5%D1%82%D1%81%D1%8F%2C%20%D1%87%D1%82%D0%BE%20%D0%BE%D0%BD%D0%B0%20%D1%80%D0%B5%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%20%D0%BD%D0%B5%20%D0%BD%D0%BE%D0%B2%D0%B0%2C%20%D0%B8%20%D0%B5%D1%81%D0%BB%D0%B8%20%D1%8D%D1%82%D0%BE%20%D1%82%D0%B0%D0%BA%2C%20%D1%81%D0%BA%D0%B0%D0%B6%D0%B8%D1%82%D0%B5%20%D0%BC%D0%BD%D0%B5%2C%20%D0%BA%D0%B0%D0%BA%20%D1%8D%D1%82%D0%BE%20%D0%B4%D0%B5%D0%BB%D0%BE%20%D0%BD%D0%B0%D0%B7%D1%8B%D0%B2%D0%B0%D0%B5%D1%82%D1%81%D1%8F.%0D%0A%0D%0A%D0%95%D1" title="del.icio.us"><img src="http://www.lyabah.com/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fwww.lyabah.com%2Findex.php%2F2009%2F08%2F04%2Fsplit-develop%2F&amp;title=%D0%94%D0%BE%D0%B2%D0%B5%D1%80%D1%8F%D0%B9%20%D0%BD%D0%BE%20%D0%BF%D1%80%D0%BE%D0%B2%D0%B5%D1%80%D1%8F%D0%B9%2C%20%D1%80%D0%B0%D0%B7%D0%B4%D0%B5%D0%BB%D1%8F%D0%B9%20%D0%B8%20%D0%B2%D0%BB%D0%B0%D1%81%D1%82%D0%B2%D1%83%D0%B9" title="StumbleUpon"><img src="http://www.lyabah.com/wp-content/plugins/sociable/images/stumbleupon.png" title="StumbleUpon" alt="StumbleUpon" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  href="http://www.myspace.com/Modules/PostTo/Pages/?u=http%3A%2F%2Fwww.lyabah.com%2Findex.php%2F2009%2F08%2F04%2Fsplit-develop%2F&amp;t=%D0%94%D0%BE%D0%B2%D0%B5%D1%80%D1%8F%D0%B9%20%D0%BD%D0%BE%20%D0%BF%D1%80%D0%BE%D0%B2%D0%B5%D1%80%D1%8F%D0%B9%2C%20%D1%80%D0%B0%D0%B7%D0%B4%D0%B5%D0%BB%D1%8F%D0%B9%20%D0%B8%20%D0%B2%D0%BB%D0%B0%D1%81%D1%82%D0%B2%D1%83%D0%B9" title="MySpace"><img src="http://www.lyabah.com/wp-content/plugins/sociable/images/myspace.png" title="MySpace" alt="MySpace" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  href="http://reddit.com/submit?url=http%3A%2F%2Fwww.lyabah.com%2Findex.php%2F2009%2F08%2F04%2Fsplit-develop%2F&amp;title=%D0%94%D0%BE%D0%B2%D0%B5%D1%80%D1%8F%D0%B9%20%D0%BD%D0%BE%20%D0%BF%D1%80%D0%BE%D0%B2%D0%B5%D1%80%D1%8F%D0%B9%2C%20%D1%80%D0%B0%D0%B7%D0%B4%D0%B5%D0%BB%D1%8F%D0%B9%20%D0%B8%20%D0%B2%D0%BB%D0%B0%D1%81%D1%82%D0%B2%D1%83%D0%B9" title="Reddit"><img src="http://www.lyabah.com/wp-content/plugins/sociable/images/reddit.png" title="Reddit" alt="Reddit" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fwww.lyabah.com%2Findex.php%2F2009%2F08%2F04%2Fsplit-develop%2F&amp;title=%D0%94%D0%BE%D0%B2%D0%B5%D1%80%D1%8F%D0%B9%20%D0%BD%D0%BE%20%D0%BF%D1%80%D0%BE%D0%B2%D0%B5%D1%80%D1%8F%D0%B9%2C%20%D1%80%D0%B0%D0%B7%D0%B4%D0%B5%D0%BB%D1%8F%D0%B9%20%D0%B8%20%D0%B2%D0%BB%D0%B0%D1%81%D1%82%D0%B2%D1%83%D0%B9&amp;bodytext=%D0%9F%D0%BE%D1%81%D0%BB%D0%B5%D0%B4%D0%BD%D0%B5%D0%B5%20%D0%B2%D1%80%D0%B5%D0%BC%D1%8F%20%D0%BC%D1%83%D1%87%D0%B0%D0%B5%D1%82%20%D0%BE%D0%B4%D0%BD%D0%B0%20%D0%B8%D0%B4%D0%B5%D1%8F.%20%D0%9C%D0%BD%D0%B5%20%D0%BA%D0%B0%D0%BA%20%D0%B2%D1%81%D0%B5%D0%B3%D0%B4%D0%B0%20%D0%BA%D0%B0%D0%B6%D0%B5%D1%82%D1%81%D1%8F%2C%20%D1%87%D1%82%D0%BE%20%D0%BE%D0%BD%D0%B0%20%D1%80%D0%B5%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%20%D0%BD%D0%B5%20%D0%BD%D0%BE%D0%B2%D0%B0%2C%20%D0%B8%20%D0%B5%D1%81%D0%BB%D0%B8%20%D1%8D%D1%82%D0%BE%20%D1%82%D0%B0%D0%BA%2C%20%D1%81%D0%BA%D0%B0%D0%B6%D0%B8%D1%82%D0%B5%20%D0%BC%D0%BD%D0%B5%2C%20%D0%BA%D0%B0%D0%BA%20%D1%8D%D1%82%D0%BE%20%D0%B4%D0%B5%D0%BB%D0%BE%20%D0%BD%D0%B0%D0%B7%D1%8B%D0%B2%D0%B0%D0%B5%D1%82%D1%81%D1%8F.%0D%0A%0D%0A%D0%95%D1" title="Digg"><img src="http://www.lyabah.com/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fwww.lyabah.com%2Findex.php%2F2009%2F08%2F04%2Fsplit-develop%2F&amp;title=%D0%94%D0%BE%D0%B2%D0%B5%D1%80%D1%8F%D0%B9%20%D0%BD%D0%BE%20%D0%BF%D1%80%D0%BE%D0%B2%D0%B5%D1%80%D1%8F%D0%B9%2C%20%D1%80%D0%B0%D0%B7%D0%B4%D0%B5%D0%BB%D1%8F%D0%B9%20%D0%B8%20%D0%B2%D0%BB%D0%B0%D1%81%D1%82%D0%B2%D1%83%D0%B9&amp;annotation=%D0%9F%D0%BE%D1%81%D0%BB%D0%B5%D0%B4%D0%BD%D0%B5%D0%B5%20%D0%B2%D1%80%D0%B5%D0%BC%D1%8F%20%D0%BC%D1%83%D1%87%D0%B0%D0%B5%D1%82%20%D0%BE%D0%B4%D0%BD%D0%B0%20%D0%B8%D0%B4%D0%B5%D1%8F.%20%D0%9C%D0%BD%D0%B5%20%D0%BA%D0%B0%D0%BA%20%D0%B2%D1%81%D0%B5%D0%B3%D0%B4%D0%B0%20%D0%BA%D0%B0%D0%B6%D0%B5%D1%82%D1%81%D1%8F%2C%20%D1%87%D1%82%D0%BE%20%D0%BE%D0%BD%D0%B0%20%D1%80%D0%B5%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%20%D0%BD%D0%B5%20%D0%BD%D0%BE%D0%B2%D0%B0%2C%20%D0%B8%20%D0%B5%D1%81%D0%BB%D0%B8%20%D1%8D%D1%82%D0%BE%20%D1%82%D0%B0%D0%BA%2C%20%D1%81%D0%BA%D0%B0%D0%B6%D0%B8%D1%82%D0%B5%20%D0%BC%D0%BD%D0%B5%2C%20%D0%BA%D0%B0%D0%BA%20%D1%8D%D1%82%D0%BE%20%D0%B4%D0%B5%D0%BB%D0%BE%20%D0%BD%D0%B0%D0%B7%D1%8B%D0%B2%D0%B0%D0%B5%D1%82%D1%81%D1%8F.%0D%0A%0D%0A%D0%95%D1" title="Google Bookmarks"><img src="http://www.lyabah.com/wp-content/plugins/sociable/images/googlebookmark.png" title="Google Bookmarks" alt="Google Bookmarks" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  href="http://technorati.com/faves?add=http%3A%2F%2Fwww.lyabah.com%2Findex.php%2F2009%2F08%2F04%2Fsplit-develop%2F" title="Technorati"><img src="http://www.lyabah.com/wp-content/plugins/sociable/images/technorati.png" title="Technorati" alt="Technorati" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  href="mailto:?subject=%D0%94%D0%BE%D0%B2%D0%B5%D1%80%D1%8F%D0%B9%20%D0%BD%D0%BE%20%D0%BF%D1%80%D0%BE%D0%B2%D0%B5%D1%80%D1%8F%D0%B9%2C%20%D1%80%D0%B0%D0%B7%D0%B4%D0%B5%D0%BB%D1%8F%D0%B9%20%D0%B8%20%D0%B2%D0%BB%D0%B0%D1%81%D1%82%D0%B2%D1%83%D0%B9&amp;body=http%3A%2F%2Fwww.lyabah.com%2Findex.php%2F2009%2F08%2F04%2Fsplit-develop%2F" title="email"><img src="http://www.lyabah.com/wp-content/plugins/sociable/images/email_link.png" title="email" alt="email" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  href="http://www.printfriendly.com/print?url=http%3A%2F%2Fwww.lyabah.com%2Findex.php%2F2009%2F08%2F04%2Fsplit-develop%2F&amp;partner=sociable" title="Print"><img src="http://www.lyabah.com/wp-content/plugins/sociable/images/printfriendly.png" title="Print" alt="Print" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  href="http://sphinn.com/index.php?c=post&amp;m=submit&amp;link=http%3A%2F%2Fwww.lyabah.com%2Findex.php%2F2009%2F08%2F04%2Fsplit-develop%2F" title="Sphinn"><img src="http://www.lyabah.com/wp-content/plugins/sociable/images/sphinn.png" title="Sphinn" alt="Sphinn" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  href="http://www.mixx.com/submit?page_url=http%3A%2F%2Fwww.lyabah.com%2Findex.php%2F2009%2F08%2F04%2Fsplit-develop%2F&amp;title=%D0%94%D0%BE%D0%B2%D0%B5%D1%80%D1%8F%D0%B9%20%D0%BD%D0%BE%20%D0%BF%D1%80%D0%BE%D0%B2%D0%B5%D1%80%D1%8F%D0%B9%2C%20%D1%80%D0%B0%D0%B7%D0%B4%D0%B5%D0%BB%D1%8F%D0%B9%20%D0%B8%20%D0%B2%D0%BB%D0%B0%D1%81%D1%82%D0%B2%D1%83%D0%B9" title="Mixx"><img src="http://www.lyabah.com/wp-content/plugins/sociable/images/mixx.png" title="Mixx" alt="Mixx" class="sociable-hovers" /></a></li>
	<li><a  href="http://blogplay.com" title="Blogplay"><img src="http://www.lyabah.com/wp-content/plugins/sociable/images/blogplay.png" title="Blogplay" alt="Blogplay" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  href="javascript:AddToFavorites();" title="Add to favorites"><img src="http://www.lyabah.com/wp-content/plugins/sociable/images/addtofavorites.png" title="Add to favorites" alt="Add to favorites" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  href="http://www.linkter.hu/index.php?action=suggest_link&amp;url=http%3A%2F%2Fwww.lyabah.com%2Findex.php%2F2009%2F08%2F04%2Fsplit-develop%2F&amp;title=%D0%94%D0%BE%D0%B2%D0%B5%D1%80%D1%8F%D0%B9%20%D0%BD%D0%BE%20%D0%BF%D1%80%D0%BE%D0%B2%D0%B5%D1%80%D1%8F%D0%B9%2C%20%D1%80%D0%B0%D0%B7%D0%B4%D0%B5%D0%BB%D1%8F%D0%B9%20%D0%B8%20%D0%B2%D0%BB%D0%B0%D1%81%D1%82%D0%B2%D1%83%D0%B9" title="Linkter"><img src="http://www.lyabah.com/wp-content/plugins/sociable/images/linkter.png" title="Linkter" alt="Linkter" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  href="https://favorites.live.com/quickadd.aspx?marklet=1&amp;url=http%3A%2F%2Fwww.lyabah.com%2Findex.php%2F2009%2F08%2F04%2Fsplit-develop%2F&amp;title=%D0%94%D0%BE%D0%B2%D0%B5%D1%80%D1%8F%D0%B9%20%D0%BD%D0%BE%20%D0%BF%D1%80%D0%BE%D0%B2%D0%B5%D1%80%D1%8F%D0%B9%2C%20%D1%80%D0%B0%D0%B7%D0%B4%D0%B5%D0%BB%D1%8F%D0%B9%20%D0%B8%20%D0%B2%D0%BB%D0%B0%D1%81%D1%82%D0%B2%D1%83%D0%B9" title="Live"><img src="http://www.lyabah.com/wp-content/plugins/sociable/images/live.png" title="Live" alt="Live" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  href="http://reporter.nl.msn.com/?fn=contribute&amp;Title=%D0%94%D0%BE%D0%B2%D0%B5%D1%80%D1%8F%D0%B9%20%D0%BD%D0%BE%20%D0%BF%D1%80%D0%BE%D0%B2%D0%B5%D1%80%D1%8F%D0%B9%2C%20%D1%80%D0%B0%D0%B7%D0%B4%D0%B5%D0%BB%D1%8F%D0%B9%20%D0%B8%20%D0%B2%D0%BB%D0%B0%D1%81%D1%82%D0%B2%D1%83%D0%B9&amp;URL=http%3A%2F%2Fwww.lyabah.com%2Findex.php%2F2009%2F08%2F04%2Fsplit-develop%2F&amp;cat_id=6&amp;tag_id=31&amp;Remark=%D0%9F%D0%BE%D1%81%D0%BB%D0%B5%D0%B4%D0%BD%D0%B5%D0%B5%20%D0%B2%D1%80%D0%B5%D0%BC%D1%8F%20%D0%BC%D1%83%D1%87%D0%B0%D0%B5%D1%82%20%D0%BE%D0%B4%D0%BD%D0%B0%20%D0%B8%D0%B4%D0%B5%D1%8F.%20%D0%9C%D0%BD%D0%B5%20%D0%BA%D0%B0%D0%BA%20%D0%B2%D1%81%D0%B5%D0%B3%D0%B4%D0%B0%20%D0%BA%D0%B0%D0%B6%D0%B5%D1%82%D1%81%D1%8F%2C%20%D1%87%D1%82%D0%BE%20%D0%BE%D0%BD%D0%B0%20%D1%80%D0%B5%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%20%D0%BD%D0%B5%20%D0%BD%D0%BE%D0%B2%D0%B0%2C%20%D0%B8%20%D0%B5%D1%81%D0%BB%D0%B8%20%D1%8D%D1%82%D0%BE%20%D1%82%D0%B0%D0%BA%2C%20%D1%81%D0%BA%D0%B0%D0%B6%D0%B8%D1%82%D0%B5%20%D0%BC%D0%BD%D0%B5%2C%20%D0%BA%D0%B0%D0%BA%20%D1%8D%D1%82%D0%BE%20%D0%B4%D0%B5%D0%BB%D0%BE%20%D0%BD%D0%B0%D0%B7%D1%8B%D0%B2%D0%B0%D0%B5%D1%82%D1%81%D1%8F.%0D%0A%0D%0A%D0%95%D1" title="MSN Reporter"><img src="http://www.lyabah.com/wp-content/plugins/sociable/images/msnreporter.png" title="MSN Reporter" alt="MSN Reporter" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  href="http://www.newsvine.com/_tools/seed&amp;save?u=http%3A%2F%2Fwww.lyabah.com%2Findex.php%2F2009%2F08%2F04%2Fsplit-develop%2F&amp;h=%D0%94%D0%BE%D0%B2%D0%B5%D1%80%D1%8F%D0%B9%20%D0%BD%D0%BE%20%D0%BF%D1%80%D0%BE%D0%B2%D0%B5%D1%80%D1%8F%D0%B9%2C%20%D1%80%D0%B0%D0%B7%D0%B4%D0%B5%D0%BB%D1%8F%D0%B9%20%D0%B8%20%D0%B2%D0%BB%D0%B0%D1%81%D1%82%D0%B2%D1%83%D0%B9" title="NewsVine"><img src="http://www.lyabah.com/wp-content/plugins/sociable/images/newsvine.png" title="NewsVine" alt="NewsVine" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  href="http://www.lyabah.com/index.php/feed/" title="RSS"><img src="http://www.lyabah.com/wp-content/plugins/sociable/images/rss.png" title="RSS" alt="RSS" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  href="http://bookmarks.yahoo.com/toolbar/savebm?u=http%3A%2F%2Fwww.lyabah.com%2Findex.php%2F2009%2F08%2F04%2Fsplit-develop%2F&amp;t=%D0%94%D0%BE%D0%B2%D0%B5%D1%80%D1%8F%D0%B9%20%D0%BD%D0%BE%20%D0%BF%D1%80%D0%BE%D0%B2%D0%B5%D1%80%D1%8F%D0%B9%2C%20%D1%80%D0%B0%D0%B7%D0%B4%D0%B5%D0%BB%D1%8F%D0%B9%20%D0%B8%20%D0%B2%D0%BB%D0%B0%D1%81%D1%82%D0%B2%D1%83%D0%B9&opener=bm&amp;ei=UTF-8&amp;d=%D0%9F%D0%BE%D1%81%D0%BB%D0%B5%D0%B4%D0%BD%D0%B5%D0%B5%20%D0%B2%D1%80%D0%B5%D0%BC%D1%8F%20%D0%BC%D1%83%D1%87%D0%B0%D0%B5%D1%82%20%D0%BE%D0%B4%D0%BD%D0%B0%20%D0%B8%D0%B4%D0%B5%D1%8F.%20%D0%9C%D0%BD%D0%B5%20%D0%BA%D0%B0%D0%BA%20%D0%B2%D1%81%D0%B5%D0%B3%D0%B4%D0%B0%20%D0%BA%D0%B0%D0%B6%D0%B5%D1%82%D1%81%D1%8F%2C%20%D1%87%D1%82%D0%BE%20%D0%BE%D0%BD%D0%B0%20%D1%80%D0%B5%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%20%D0%BD%D0%B5%20%D0%BD%D0%BE%D0%B2%D0%B0%2C%20%D0%B8%20%D0%B5%D1%81%D0%BB%D0%B8%20%D1%8D%D1%82%D0%BE%20%D1%82%D0%B0%D0%BA%2C%20%D1%81%D0%BA%D0%B0%D0%B6%D0%B8%D1%82%D0%B5%20%D0%BC%D0%BD%D0%B5%2C%20%D0%BA%D0%B0%D0%BA%20%D1%8D%D1%82%D0%BE%20%D0%B4%D0%B5%D0%BB%D0%BE%20%D0%BD%D0%B0%D0%B7%D1%8B%D0%B2%D0%B0%D0%B5%D1%82%D1%81%D1%8F.%0D%0A%0D%0A%D0%95%D1" title="Yahoo! Bookmarks"><img src="http://www.lyabah.com/wp-content/plugins/sociable/images/yahoomyweb.png" title="Yahoo! Bookmarks" alt="Yahoo! Bookmarks" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  href="http://buzz.yahoo.com/submit/?submitUrl=http%3A%2F%2Fwww.lyabah.com%2Findex.php%2F2009%2F08%2F04%2Fsplit-develop%2F&amp;submitHeadline=%D0%94%D0%BE%D0%B2%D0%B5%D1%80%D1%8F%D0%B9%20%D0%BD%D0%BE%20%D0%BF%D1%80%D0%BE%D0%B2%D0%B5%D1%80%D1%8F%D0%B9%2C%20%D1%80%D0%B0%D0%B7%D0%B4%D0%B5%D0%BB%D1%8F%D0%B9%20%D0%B8%20%D0%B2%D0%BB%D0%B0%D1%81%D1%82%D0%B2%D1%83%D0%B9&amp;submitSummary=%D0%9F%D0%BE%D1%81%D0%BB%D0%B5%D0%B4%D0%BD%D0%B5%D0%B5%20%D0%B2%D1%80%D0%B5%D0%BC%D1%8F%20%D0%BC%D1%83%D1%87%D0%B0%D0%B5%D1%82%20%D0%BE%D0%B4%D0%BD%D0%B0%20%D0%B8%D0%B4%D0%B5%D1%8F.%20%D0%9C%D0%BD%D0%B5%20%D0%BA%D0%B0%D0%BA%20%D0%B2%D1%81%D0%B5%D0%B3%D0%B4%D0%B0%20%D0%BA%D0%B0%D0%B6%D0%B5%D1%82%D1%81%D1%8F%2C%20%D1%87%D1%82%D0%BE%20%D0%BE%D0%BD%D0%B0%20%D1%80%D0%B5%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%20%D0%BD%D0%B5%20%D0%BD%D0%BE%D0%B2%D0%B0%2C%20%D0%B8%20%D0%B5%D1%81%D0%BB%D0%B8%20%D1%8D%D1%82%D0%BE%20%D1%82%D0%B0%D0%BA%2C%20%D1%81%D0%BA%D0%B0%D0%B6%D0%B8%D1%82%D0%B5%20%D0%BC%D0%BD%D0%B5%2C%20%D0%BA%D0%B0%D0%BA%20%D1%8D%D1%82%D0%BE%20%D0%B4%D0%B5%D0%BB%D0%BE%20%D0%BD%D0%B0%D0%B7%D1%8B%D0%B2%D0%B0%D0%B5%D1%82%D1%81%D1%8F.%0D%0A%0D%0A%D0%95%D1&amp;submitCategory=science&amp;submitAssetType=text" title="Yahoo! Buzz"><img src="http://www.lyabah.com/wp-content/plugins/sociable/images/yahoobuzz.png" title="Yahoo! Buzz" alt="Yahoo! Buzz" class="sociable-hovers" /></a></li>
	<li class="sociablelast"><a rel="nofollow"  href="http://yigg.de/neu?exturl=http%3A%2F%2Fwww.lyabah.com%2Findex.php%2F2009%2F08%2F04%2Fsplit-develop%2F&amp;exttitle=%D0%94%D0%BE%D0%B2%D0%B5%D1%80%D1%8F%D0%B9%20%D0%BD%D0%BE%20%D0%BF%D1%80%D0%BE%D0%B2%D0%B5%D1%80%D1%8F%D0%B9%2C%20%D1%80%D0%B0%D0%B7%D0%B4%D0%B5%D0%BB%D1%8F%D0%B9%20%D0%B8%20%D0%B2%D0%BB%D0%B0%D1%81%D1%82%D0%B2%D1%83%D0%B9" title="Yigg"><img src="http://www.lyabah.com/wp-content/plugins/sociable/images/yiggit.png" title="Yigg" alt="Yigg" class="sociable-hovers" /></a></li>
</ul>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.lyabah.com/index.php/2009/08/04/split-develop/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Teach Yourself Programming in Ten Years</title>
		<link>http://www.lyabah.com/index.php/2009/01/17/teach-yourself-programming-in-ten-years/</link>
		<comments>http://www.lyabah.com/index.php/2009/01/17/teach-yourself-programming-in-ten-years/#comments</comments>
		<pubDate>Sat, 17 Jan 2009 15:38:08 +0000</pubDate>
		<dc:creator>Oduvan</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[articles]]></category>
		<category><![CDATA[Musayev]]></category>
		<category><![CDATA[Norvig]]></category>

		<guid isPermaLink="false">http://www.lyabah.com/?p=165</guid>
		<description><![CDATA[Статья Peter Norvig. Она на аглийском, но тот, кто не уверен в языке, или просто боится чтото понять не так, то лучше выбрать свой, в правой панели перечисленны переводы этой статьи на различных языках, есть и русский.
В статье много хороших и светлых мыслей, даже на всякий случай перечитал несколько раз, но одна меня зацепила более [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.lyabah.com/wp-content/uploads/2009/01/programmers-300x169.png" alt="programmers" title="programmers" width="300" height="169" class="alignright size-medium wp-image-176" /><a href="http://norvig.com/21-days.html">Статья</a> Peter Norvig. Она на аглийском, но тот, кто не уверен в языке, или просто боится чтото понять не так, то лучше выбрать свой, в правой панели перечисленны переводы этой статьи на различных языках, есть и <a href="http://www.williamspublishing.com/21-days.html">русский</a>.</p>
<p>В статье много хороших и светлых мыслей, даже на всякий случай перечитал несколько раз, но одна меня зацепила более всех.</p>
<p>&#8220;Будьте лучшим программистом в некоторых проектах; будьте худшим в некоторых других. Будучи лучшим, вы сможете проверить свои способности вести проект и внушать другим свои взгляды. Будучи худшим, вы сможете учиться у мастеров и сумеете понять, что им самим не нравится делать (потому что они будут заставлять вас делать это за них). &#8220;.</p>
<p>В тех проектах, которые я сейчас веду &#8211; я ведущий. Поэтому буду стараться вклинится в какой нить опенсорс. По крайней мере по проекту Django у меня и правда есть много идей, и в этом проекте есть люди, у которых по настоящему есть чему поучится, и есть вещи, реализация которых мне не всегда понятна, при  чем как правило не понятен местами подход и даже иногда реализации этих подходов. Возможно об этом я ещё напишу.</p>
<p>И ещё хотел предложить вам почитать интересные статьи, Эльдара Мусаева &#8220;Как стать хорошим программистом&#8221; ( разбита на части <a href="http://eldar.com/node/237">1</a> <a href="http://eldar.com/node/238">2</a> <a href="http://eldar.com/node/239">3</a> <a href="http://eldar.com/node/240">4</a> ). Очень легко написано, с юмором. А сравнение хакера и программиста при помощи анекдота про пасущихся быков &#8211; это просто ПЕРЛ.</p>
<p>И на последок &#8211; чуть более прогматичная статья, из opennet.ru <a href="http://www.opennet.ru/opennews/art.shtml?num=19763">25 самых опасных ошибок при создании программ</a>.</p>

<div class="sociable">
<div class="sociable_tagline">
<strong>Share and Enjoy:</strong>
</div>
<ul>
	<li class="sociablefirst"><a rel="nofollow"  href="http://www.facebook.com/share.php?u=http%3A%2F%2Fwww.lyabah.com%2Findex.php%2F2009%2F01%2F17%2Fteach-yourself-programming-in-ten-years%2F&amp;t=Teach%20Yourself%20Programming%20in%20Ten%20Years" title="Facebook"><img src="http://www.lyabah.com/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fwww.lyabah.com%2Findex.php%2F2009%2F01%2F17%2Fteach-yourself-programming-in-ten-years%2F&amp;title=Teach%20Yourself%20Programming%20in%20Ten%20Years&amp;source=Oduvan%27s+Web+Blog+&amp;summary=%D0%A1%D1%82%D0%B0%D1%82%D1%8C%D1%8F%20Peter%20Norvig.%20%D0%9E%D0%BD%D0%B0%20%D0%BD%D0%B0%20%D0%B0%D0%B3%D0%BB%D0%B8%D0%B9%D1%81%D0%BA%D0%BE%D0%BC%2C%20%D0%BD%D0%BE%20%D1%82%D0%BE%D1%82%2C%20%D0%BA%D1%82%D0%BE%20%D0%BD%D0%B5%20%D1%83%D0%B2%D0%B5%D1%80%D0%B5%D0%BD%20%D0%B2%20%D1%8F%D0%B7%D1%8B%D0%BA%D0%B5%2C%20%D0%B8%D0%BB%D0%B8%20%D0%BF%D1%80%D0%BE%D1%81%D1%82%D0%BE%20%D0%B1%D0%BE%D0%B8%D1%82%D1%81%D1%8F%20%D1%87%D1%82%D0%BE%D1%82%D0%BE%20%D0%BF%D0%BE%D0%BD%D1%8F%D1%82%D1%8C%20%D0%BD%D0%B5%20%D1%82%D0%B0%D0%BA%2C%20%D1%82%D0%BE%20%D0%BB%D1%83%D1%87%D1%88%D0%B5%20%D0%B2%D1%8B%D0%B1%D1%80%D0%B0%D1%82%D1%8C%20%D1%81%D0%B2%D0%BE%D0%B9%2C%20%D0%B2%20%D0%BF%D1%80%D0%B0%D0%B2%D0%BE%D0%B9%20%D0%BF%D0%B0%D0%BD%D0%B5%D0%BB%D0" title="LinkedIn"><img src="http://www.lyabah.com/wp-content/plugins/sociable/images/linkedin.png" title="LinkedIn" alt="LinkedIn" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  href="http://delicious.com/post?url=http%3A%2F%2Fwww.lyabah.com%2Findex.php%2F2009%2F01%2F17%2Fteach-yourself-programming-in-ten-years%2F&amp;title=Teach%20Yourself%20Programming%20in%20Ten%20Years&amp;notes=%D0%A1%D1%82%D0%B0%D1%82%D1%8C%D1%8F%20Peter%20Norvig.%20%D0%9E%D0%BD%D0%B0%20%D0%BD%D0%B0%20%D0%B0%D0%B3%D0%BB%D0%B8%D0%B9%D1%81%D0%BA%D0%BE%D0%BC%2C%20%D0%BD%D0%BE%20%D1%82%D0%BE%D1%82%2C%20%D0%BA%D1%82%D0%BE%20%D0%BD%D0%B5%20%D1%83%D0%B2%D0%B5%D1%80%D0%B5%D0%BD%20%D0%B2%20%D1%8F%D0%B7%D1%8B%D0%BA%D0%B5%2C%20%D0%B8%D0%BB%D0%B8%20%D0%BF%D1%80%D0%BE%D1%81%D1%82%D0%BE%20%D0%B1%D0%BE%D0%B8%D1%82%D1%81%D1%8F%20%D1%87%D1%82%D0%BE%D1%82%D0%BE%20%D0%BF%D0%BE%D0%BD%D1%8F%D1%82%D1%8C%20%D0%BD%D0%B5%20%D1%82%D0%B0%D0%BA%2C%20%D1%82%D0%BE%20%D0%BB%D1%83%D1%87%D1%88%D0%B5%20%D0%B2%D1%8B%D0%B1%D1%80%D0%B0%D1%82%D1%8C%20%D1%81%D0%B2%D0%BE%D0%B9%2C%20%D0%B2%20%D0%BF%D1%80%D0%B0%D0%B2%D0%BE%D0%B9%20%D0%BF%D0%B0%D0%BD%D0%B5%D0%BB%D0" title="del.icio.us"><img src="http://www.lyabah.com/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fwww.lyabah.com%2Findex.php%2F2009%2F01%2F17%2Fteach-yourself-programming-in-ten-years%2F&amp;title=Teach%20Yourself%20Programming%20in%20Ten%20Years" title="StumbleUpon"><img src="http://www.lyabah.com/wp-content/plugins/sociable/images/stumbleupon.png" title="StumbleUpon" alt="StumbleUpon" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  href="http://www.myspace.com/Modules/PostTo/Pages/?u=http%3A%2F%2Fwww.lyabah.com%2Findex.php%2F2009%2F01%2F17%2Fteach-yourself-programming-in-ten-years%2F&amp;t=Teach%20Yourself%20Programming%20in%20Ten%20Years" title="MySpace"><img src="http://www.lyabah.com/wp-content/plugins/sociable/images/myspace.png" title="MySpace" alt="MySpace" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  href="http://reddit.com/submit?url=http%3A%2F%2Fwww.lyabah.com%2Findex.php%2F2009%2F01%2F17%2Fteach-yourself-programming-in-ten-years%2F&amp;title=Teach%20Yourself%20Programming%20in%20Ten%20Years" title="Reddit"><img src="http://www.lyabah.com/wp-content/plugins/sociable/images/reddit.png" title="Reddit" alt="Reddit" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fwww.lyabah.com%2Findex.php%2F2009%2F01%2F17%2Fteach-yourself-programming-in-ten-years%2F&amp;title=Teach%20Yourself%20Programming%20in%20Ten%20Years&amp;bodytext=%D0%A1%D1%82%D0%B0%D1%82%D1%8C%D1%8F%20Peter%20Norvig.%20%D0%9E%D0%BD%D0%B0%20%D0%BD%D0%B0%20%D0%B0%D0%B3%D0%BB%D0%B8%D0%B9%D1%81%D0%BA%D0%BE%D0%BC%2C%20%D0%BD%D0%BE%20%D1%82%D0%BE%D1%82%2C%20%D0%BA%D1%82%D0%BE%20%D0%BD%D0%B5%20%D1%83%D0%B2%D0%B5%D1%80%D0%B5%D0%BD%20%D0%B2%20%D1%8F%D0%B7%D1%8B%D0%BA%D0%B5%2C%20%D0%B8%D0%BB%D0%B8%20%D0%BF%D1%80%D0%BE%D1%81%D1%82%D0%BE%20%D0%B1%D0%BE%D0%B8%D1%82%D1%81%D1%8F%20%D1%87%D1%82%D0%BE%D1%82%D0%BE%20%D0%BF%D0%BE%D0%BD%D1%8F%D1%82%D1%8C%20%D0%BD%D0%B5%20%D1%82%D0%B0%D0%BA%2C%20%D1%82%D0%BE%20%D0%BB%D1%83%D1%87%D1%88%D0%B5%20%D0%B2%D1%8B%D0%B1%D1%80%D0%B0%D1%82%D1%8C%20%D1%81%D0%B2%D0%BE%D0%B9%2C%20%D0%B2%20%D0%BF%D1%80%D0%B0%D0%B2%D0%BE%D0%B9%20%D0%BF%D0%B0%D0%BD%D0%B5%D0%BB%D0" title="Digg"><img src="http://www.lyabah.com/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fwww.lyabah.com%2Findex.php%2F2009%2F01%2F17%2Fteach-yourself-programming-in-ten-years%2F&amp;title=Teach%20Yourself%20Programming%20in%20Ten%20Years&amp;annotation=%D0%A1%D1%82%D0%B0%D1%82%D1%8C%D1%8F%20Peter%20Norvig.%20%D0%9E%D0%BD%D0%B0%20%D0%BD%D0%B0%20%D0%B0%D0%B3%D0%BB%D0%B8%D0%B9%D1%81%D0%BA%D0%BE%D0%BC%2C%20%D0%BD%D0%BE%20%D1%82%D0%BE%D1%82%2C%20%D0%BA%D1%82%D0%BE%20%D0%BD%D0%B5%20%D1%83%D0%B2%D0%B5%D1%80%D0%B5%D0%BD%20%D0%B2%20%D1%8F%D0%B7%D1%8B%D0%BA%D0%B5%2C%20%D0%B8%D0%BB%D0%B8%20%D0%BF%D1%80%D0%BE%D1%81%D1%82%D0%BE%20%D0%B1%D0%BE%D0%B8%D1%82%D1%81%D1%8F%20%D1%87%D1%82%D0%BE%D1%82%D0%BE%20%D0%BF%D0%BE%D0%BD%D1%8F%D1%82%D1%8C%20%D0%BD%D0%B5%20%D1%82%D0%B0%D0%BA%2C%20%D1%82%D0%BE%20%D0%BB%D1%83%D1%87%D1%88%D0%B5%20%D0%B2%D1%8B%D0%B1%D1%80%D0%B0%D1%82%D1%8C%20%D1%81%D0%B2%D0%BE%D0%B9%2C%20%D0%B2%20%D0%BF%D1%80%D0%B0%D0%B2%D0%BE%D0%B9%20%D0%BF%D0%B0%D0%BD%D0%B5%D0%BB%D0" title="Google Bookmarks"><img src="http://www.lyabah.com/wp-content/plugins/sociable/images/googlebookmark.png" title="Google Bookmarks" alt="Google Bookmarks" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  href="http://technorati.com/faves?add=http%3A%2F%2Fwww.lyabah.com%2Findex.php%2F2009%2F01%2F17%2Fteach-yourself-programming-in-ten-years%2F" title="Technorati"><img src="http://www.lyabah.com/wp-content/plugins/sociable/images/technorati.png" title="Technorati" alt="Technorati" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  href="mailto:?subject=Teach%20Yourself%20Programming%20in%20Ten%20Years&amp;body=http%3A%2F%2Fwww.lyabah.com%2Findex.php%2F2009%2F01%2F17%2Fteach-yourself-programming-in-ten-years%2F" title="email"><img src="http://www.lyabah.com/wp-content/plugins/sociable/images/email_link.png" title="email" alt="email" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  href="http://www.printfriendly.com/print?url=http%3A%2F%2Fwww.lyabah.com%2Findex.php%2F2009%2F01%2F17%2Fteach-yourself-programming-in-ten-years%2F&amp;partner=sociable" title="Print"><img src="http://www.lyabah.com/wp-content/plugins/sociable/images/printfriendly.png" title="Print" alt="Print" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  href="http://sphinn.com/index.php?c=post&amp;m=submit&amp;link=http%3A%2F%2Fwww.lyabah.com%2Findex.php%2F2009%2F01%2F17%2Fteach-yourself-programming-in-ten-years%2F" title="Sphinn"><img src="http://www.lyabah.com/wp-content/plugins/sociable/images/sphinn.png" title="Sphinn" alt="Sphinn" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  href="http://www.mixx.com/submit?page_url=http%3A%2F%2Fwww.lyabah.com%2Findex.php%2F2009%2F01%2F17%2Fteach-yourself-programming-in-ten-years%2F&amp;title=Teach%20Yourself%20Programming%20in%20Ten%20Years" title="Mixx"><img src="http://www.lyabah.com/wp-content/plugins/sociable/images/mixx.png" title="Mixx" alt="Mixx" class="sociable-hovers" /></a></li>
	<li><a  href="http://blogplay.com" title="Blogplay"><img src="http://www.lyabah.com/wp-content/plugins/sociable/images/blogplay.png" title="Blogplay" alt="Blogplay" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  href="javascript:AddToFavorites();" title="Add to favorites"><img src="http://www.lyabah.com/wp-content/plugins/sociable/images/addtofavorites.png" title="Add to favorites" alt="Add to favorites" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  href="http://www.linkter.hu/index.php?action=suggest_link&amp;url=http%3A%2F%2Fwww.lyabah.com%2Findex.php%2F2009%2F01%2F17%2Fteach-yourself-programming-in-ten-years%2F&amp;title=Teach%20Yourself%20Programming%20in%20Ten%20Years" title="Linkter"><img src="http://www.lyabah.com/wp-content/plugins/sociable/images/linkter.png" title="Linkter" alt="Linkter" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  href="https://favorites.live.com/quickadd.aspx?marklet=1&amp;url=http%3A%2F%2Fwww.lyabah.com%2Findex.php%2F2009%2F01%2F17%2Fteach-yourself-programming-in-ten-years%2F&amp;title=Teach%20Yourself%20Programming%20in%20Ten%20Years" title="Live"><img src="http://www.lyabah.com/wp-content/plugins/sociable/images/live.png" title="Live" alt="Live" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  href="http://reporter.nl.msn.com/?fn=contribute&amp;Title=Teach%20Yourself%20Programming%20in%20Ten%20Years&amp;URL=http%3A%2F%2Fwww.lyabah.com%2Findex.php%2F2009%2F01%2F17%2Fteach-yourself-programming-in-ten-years%2F&amp;cat_id=6&amp;tag_id=31&amp;Remark=%D0%A1%D1%82%D0%B0%D1%82%D1%8C%D1%8F%20Peter%20Norvig.%20%D0%9E%D0%BD%D0%B0%20%D0%BD%D0%B0%20%D0%B0%D0%B3%D0%BB%D0%B8%D0%B9%D1%81%D0%BA%D0%BE%D0%BC%2C%20%D0%BD%D0%BE%20%D1%82%D0%BE%D1%82%2C%20%D0%BA%D1%82%D0%BE%20%D0%BD%D0%B5%20%D1%83%D0%B2%D0%B5%D1%80%D0%B5%D0%BD%20%D0%B2%20%D1%8F%D0%B7%D1%8B%D0%BA%D0%B5%2C%20%D0%B8%D0%BB%D0%B8%20%D0%BF%D1%80%D0%BE%D1%81%D1%82%D0%BE%20%D0%B1%D0%BE%D0%B8%D1%82%D1%81%D1%8F%20%D1%87%D1%82%D0%BE%D1%82%D0%BE%20%D0%BF%D0%BE%D0%BD%D1%8F%D1%82%D1%8C%20%D0%BD%D0%B5%20%D1%82%D0%B0%D0%BA%2C%20%D1%82%D0%BE%20%D0%BB%D1%83%D1%87%D1%88%D0%B5%20%D0%B2%D1%8B%D0%B1%D1%80%D0%B0%D1%82%D1%8C%20%D1%81%D0%B2%D0%BE%D0%B9%2C%20%D0%B2%20%D0%BF%D1%80%D0%B0%D0%B2%D0%BE%D0%B9%20%D0%BF%D0%B0%D0%BD%D0%B5%D0%BB%D0" title="MSN Reporter"><img src="http://www.lyabah.com/wp-content/plugins/sociable/images/msnreporter.png" title="MSN Reporter" alt="MSN Reporter" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  href="http://www.newsvine.com/_tools/seed&amp;save?u=http%3A%2F%2Fwww.lyabah.com%2Findex.php%2F2009%2F01%2F17%2Fteach-yourself-programming-in-ten-years%2F&amp;h=Teach%20Yourself%20Programming%20in%20Ten%20Years" title="NewsVine"><img src="http://www.lyabah.com/wp-content/plugins/sociable/images/newsvine.png" title="NewsVine" alt="NewsVine" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  href="http://www.lyabah.com/index.php/feed/" title="RSS"><img src="http://www.lyabah.com/wp-content/plugins/sociable/images/rss.png" title="RSS" alt="RSS" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  href="http://bookmarks.yahoo.com/toolbar/savebm?u=http%3A%2F%2Fwww.lyabah.com%2Findex.php%2F2009%2F01%2F17%2Fteach-yourself-programming-in-ten-years%2F&amp;t=Teach%20Yourself%20Programming%20in%20Ten%20Years&opener=bm&amp;ei=UTF-8&amp;d=%D0%A1%D1%82%D0%B0%D1%82%D1%8C%D1%8F%20Peter%20Norvig.%20%D0%9E%D0%BD%D0%B0%20%D0%BD%D0%B0%20%D0%B0%D0%B3%D0%BB%D0%B8%D0%B9%D1%81%D0%BA%D0%BE%D0%BC%2C%20%D0%BD%D0%BE%20%D1%82%D0%BE%D1%82%2C%20%D0%BA%D1%82%D0%BE%20%D0%BD%D0%B5%20%D1%83%D0%B2%D0%B5%D1%80%D0%B5%D0%BD%20%D0%B2%20%D1%8F%D0%B7%D1%8B%D0%BA%D0%B5%2C%20%D0%B8%D0%BB%D0%B8%20%D0%BF%D1%80%D0%BE%D1%81%D1%82%D0%BE%20%D0%B1%D0%BE%D0%B8%D1%82%D1%81%D1%8F%20%D1%87%D1%82%D0%BE%D1%82%D0%BE%20%D0%BF%D0%BE%D0%BD%D1%8F%D1%82%D1%8C%20%D0%BD%D0%B5%20%D1%82%D0%B0%D0%BA%2C%20%D1%82%D0%BE%20%D0%BB%D1%83%D1%87%D1%88%D0%B5%20%D0%B2%D1%8B%D0%B1%D1%80%D0%B0%D1%82%D1%8C%20%D1%81%D0%B2%D0%BE%D0%B9%2C%20%D0%B2%20%D0%BF%D1%80%D0%B0%D0%B2%D0%BE%D0%B9%20%D0%BF%D0%B0%D0%BD%D0%B5%D0%BB%D0" title="Yahoo! Bookmarks"><img src="http://www.lyabah.com/wp-content/plugins/sociable/images/yahoomyweb.png" title="Yahoo! Bookmarks" alt="Yahoo! Bookmarks" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  href="http://buzz.yahoo.com/submit/?submitUrl=http%3A%2F%2Fwww.lyabah.com%2Findex.php%2F2009%2F01%2F17%2Fteach-yourself-programming-in-ten-years%2F&amp;submitHeadline=Teach%20Yourself%20Programming%20in%20Ten%20Years&amp;submitSummary=%D0%A1%D1%82%D0%B0%D1%82%D1%8C%D1%8F%20Peter%20Norvig.%20%D0%9E%D0%BD%D0%B0%20%D0%BD%D0%B0%20%D0%B0%D0%B3%D0%BB%D0%B8%D0%B9%D1%81%D0%BA%D0%BE%D0%BC%2C%20%D0%BD%D0%BE%20%D1%82%D0%BE%D1%82%2C%20%D0%BA%D1%82%D0%BE%20%D0%BD%D0%B5%20%D1%83%D0%B2%D0%B5%D1%80%D0%B5%D0%BD%20%D0%B2%20%D1%8F%D0%B7%D1%8B%D0%BA%D0%B5%2C%20%D0%B8%D0%BB%D0%B8%20%D0%BF%D1%80%D0%BE%D1%81%D1%82%D0%BE%20%D0%B1%D0%BE%D0%B8%D1%82%D1%81%D1%8F%20%D1%87%D1%82%D0%BE%D1%82%D0%BE%20%D0%BF%D0%BE%D0%BD%D1%8F%D1%82%D1%8C%20%D0%BD%D0%B5%20%D1%82%D0%B0%D0%BA%2C%20%D1%82%D0%BE%20%D0%BB%D1%83%D1%87%D1%88%D0%B5%20%D0%B2%D1%8B%D0%B1%D1%80%D0%B0%D1%82%D1%8C%20%D1%81%D0%B2%D0%BE%D0%B9%2C%20%D0%B2%20%D0%BF%D1%80%D0%B0%D0%B2%D0%BE%D0%B9%20%D0%BF%D0%B0%D0%BD%D0%B5%D0%BB%D0&amp;submitCategory=science&amp;submitAssetType=text" title="Yahoo! Buzz"><img src="http://www.lyabah.com/wp-content/plugins/sociable/images/yahoobuzz.png" title="Yahoo! Buzz" alt="Yahoo! Buzz" class="sociable-hovers" /></a></li>
	<li class="sociablelast"><a rel="nofollow"  href="http://yigg.de/neu?exturl=http%3A%2F%2Fwww.lyabah.com%2Findex.php%2F2009%2F01%2F17%2Fteach-yourself-programming-in-ten-years%2F&amp;exttitle=Teach%20Yourself%20Programming%20in%20Ten%20Years" title="Yigg"><img src="http://www.lyabah.com/wp-content/plugins/sociable/images/yiggit.png" title="Yigg" alt="Yigg" class="sociable-hovers" /></a></li>
</ul>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.lyabah.com/index.php/2009/01/17/teach-yourself-programming-in-ten-years/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>JQuery любят на Хабре</title>
		<link>http://www.lyabah.com/index.php/2008/08/08/jquery-%d0%bb%d1%8e%d0%b1%d1%8f%d1%82-%d0%bd%d0%b0-%d1%85%d0%b0%d0%b1%d1%80%d0%b5/</link>
		<comments>http://www.lyabah.com/index.php/2008/08/08/jquery-%d0%bb%d1%8e%d0%b1%d1%8f%d1%82-%d0%bd%d0%b0-%d1%85%d0%b0%d0%b1%d1%80%d0%b5/#comments</comments>
		<pubDate>Fri, 08 Aug 2008 08:08:04 +0000</pubDate>
		<dc:creator>Oduvan</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[crib]]></category>
		<category><![CDATA[JQuery]]></category>
		<category><![CDATA[pony]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[trot]]></category>

		<guid isPermaLink="false">http://www.lyabah.com/?p=17</guid>
		<description><![CDATA[с утра проходился по жсной ленте Хабра..
Ниче так себе ленточка скажу я вам&#8230; так вот&#8230;
Их опросик. коменты не нужны.
Хороший постик о шпорах. Но много хорошего пошло уже в коментах. Вот это больше понравилось про JQ. Но дальше народ прошелся по всем.



Share and Enjoy:


	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	


]]></description>
			<content:encoded><![CDATA[<p>с утра проходился по жсной ленте Хабра..</p>
<p>Ниче так себе ленточка скажу я вам&#8230; так вот&#8230;</p>
<p>Их <a href="http://habrahabr.ru/blog/javascript/47725.html">опросик</a>. коменты не нужны.</p>
<p>Хороший постик о <a href="http://habrahabr.ru/blog/javascript/46246.html">шпорах</a>. Но много хорошего пошло уже в коментах. Вот <a href="http://visualjquery.com/">это </a>больше понравилось про JQ. Но дальше народ прошелся по всем.</p>

<div class="sociable">
<div class="sociable_tagline">
<strong>Share and Enjoy:</strong>
</div>
<ul>
	<li class="sociablefirst"><a rel="nofollow"  href="http://www.facebook.com/share.php?u=http%3A%2F%2Fwww.lyabah.com%2Findex.php%2F2008%2F08%2F08%2Fjquery-%25d0%25bb%25d1%258e%25d0%25b1%25d1%258f%25d1%2582-%25d0%25bd%25d0%25b0-%25d1%2585%25d0%25b0%25d0%25b1%25d1%2580%25d0%25b5%2F&amp;t=JQuery%20%D0%BB%D1%8E%D0%B1%D1%8F%D1%82%20%D0%BD%D0%B0%20%D0%A5%D0%B0%D0%B1%D1%80%D0%B5" title="Facebook"><img src="http://www.lyabah.com/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fwww.lyabah.com%2Findex.php%2F2008%2F08%2F08%2Fjquery-%25d0%25bb%25d1%258e%25d0%25b1%25d1%258f%25d1%2582-%25d0%25bd%25d0%25b0-%25d1%2585%25d0%25b0%25d0%25b1%25d1%2580%25d0%25b5%2F&amp;title=JQuery%20%D0%BB%D1%8E%D0%B1%D1%8F%D1%82%20%D0%BD%D0%B0%20%D0%A5%D0%B0%D0%B1%D1%80%D0%B5&amp;source=Oduvan%27s+Web+Blog+&amp;summary=%D1%81%20%D1%83%D1%82%D1%80%D0%B0%20%D0%BF%D1%80%D0%BE%D1%85%D0%BE%D0%B4%D0%B8%D0%BB%D1%81%D1%8F%20%D0%BF%D0%BE%20%D0%B6%D1%81%D0%BD%D0%BE%D0%B9%20%D0%BB%D0%B5%D0%BD%D1%82%D0%B5%20%D0%A5%D0%B0%D0%B1%D1%80%D0%B0..%0D%0A%0D%0A%D0%9D%D0%B8%D1%87%D0%B5%20%D1%82%D0%B0%D0%BA%20%D1%81%D0%B5%D0%B1%D0%B5%20%D0%BB%D0%B5%D0%BD%D1%82%D0%BE%D1%87%D0%BA%D0%B0%20%D1%81%D0%BA%D0%B0%D0%B6%D1%83%20%D1%8F%20%D0%B2%D0%B0%D0%BC...%20%D1%82%D0%B0%D0%BA%20%D0%B2%D0%BE%D1%82...%0D%0A%0D%0A%D0%98%D1%85%20%D0%BE%D0%BF%D1%80%D0%BE%D1%81%D0%B8%D0%BA.%20%D0%BA%D0%BE%D0%BC%D0%B5%D0%BD%D1%82%D1%8B%20%D0%BD%D0%B5%20%D0%BD%D1%83%D0%B6%D0%BD%D1%8B.%0D%0A%0D%0A%D0%A5%D0%BE%D1%80%D0%BE%D1%88%D0%B8%D0%B9%20%D0%BF%D0%BE%D1%81%D1%82%D0%B8%D0%BA%20%D0%BE%20%D1" title="LinkedIn"><img src="http://www.lyabah.com/wp-content/plugins/sociable/images/linkedin.png" title="LinkedIn" alt="LinkedIn" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  href="http://delicious.com/post?url=http%3A%2F%2Fwww.lyabah.com%2Findex.php%2F2008%2F08%2F08%2Fjquery-%25d0%25bb%25d1%258e%25d0%25b1%25d1%258f%25d1%2582-%25d0%25bd%25d0%25b0-%25d1%2585%25d0%25b0%25d0%25b1%25d1%2580%25d0%25b5%2F&amp;title=JQuery%20%D0%BB%D1%8E%D0%B1%D1%8F%D1%82%20%D0%BD%D0%B0%20%D0%A5%D0%B0%D0%B1%D1%80%D0%B5&amp;notes=%D1%81%20%D1%83%D1%82%D1%80%D0%B0%20%D0%BF%D1%80%D0%BE%D1%85%D0%BE%D0%B4%D0%B8%D0%BB%D1%81%D1%8F%20%D0%BF%D0%BE%20%D0%B6%D1%81%D0%BD%D0%BE%D0%B9%20%D0%BB%D0%B5%D0%BD%D1%82%D0%B5%20%D0%A5%D0%B0%D0%B1%D1%80%D0%B0..%0D%0A%0D%0A%D0%9D%D0%B8%D1%87%D0%B5%20%D1%82%D0%B0%D0%BA%20%D1%81%D0%B5%D0%B1%D0%B5%20%D0%BB%D0%B5%D0%BD%D1%82%D0%BE%D1%87%D0%BA%D0%B0%20%D1%81%D0%BA%D0%B0%D0%B6%D1%83%20%D1%8F%20%D0%B2%D0%B0%D0%BC...%20%D1%82%D0%B0%D0%BA%20%D0%B2%D0%BE%D1%82...%0D%0A%0D%0A%D0%98%D1%85%20%D0%BE%D0%BF%D1%80%D0%BE%D1%81%D0%B8%D0%BA.%20%D0%BA%D0%BE%D0%BC%D0%B5%D0%BD%D1%82%D1%8B%20%D0%BD%D0%B5%20%D0%BD%D1%83%D0%B6%D0%BD%D1%8B.%0D%0A%0D%0A%D0%A5%D0%BE%D1%80%D0%BE%D1%88%D0%B8%D0%B9%20%D0%BF%D0%BE%D1%81%D1%82%D0%B8%D0%BA%20%D0%BE%20%D1" title="del.icio.us"><img src="http://www.lyabah.com/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fwww.lyabah.com%2Findex.php%2F2008%2F08%2F08%2Fjquery-%25d0%25bb%25d1%258e%25d0%25b1%25d1%258f%25d1%2582-%25d0%25bd%25d0%25b0-%25d1%2585%25d0%25b0%25d0%25b1%25d1%2580%25d0%25b5%2F&amp;title=JQuery%20%D0%BB%D1%8E%D0%B1%D1%8F%D1%82%20%D0%BD%D0%B0%20%D0%A5%D0%B0%D0%B1%D1%80%D0%B5" title="StumbleUpon"><img src="http://www.lyabah.com/wp-content/plugins/sociable/images/stumbleupon.png" title="StumbleUpon" alt="StumbleUpon" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  href="http://www.myspace.com/Modules/PostTo/Pages/?u=http%3A%2F%2Fwww.lyabah.com%2Findex.php%2F2008%2F08%2F08%2Fjquery-%25d0%25bb%25d1%258e%25d0%25b1%25d1%258f%25d1%2582-%25d0%25bd%25d0%25b0-%25d1%2585%25d0%25b0%25d0%25b1%25d1%2580%25d0%25b5%2F&amp;t=JQuery%20%D0%BB%D1%8E%D0%B1%D1%8F%D1%82%20%D0%BD%D0%B0%20%D0%A5%D0%B0%D0%B1%D1%80%D0%B5" title="MySpace"><img src="http://www.lyabah.com/wp-content/plugins/sociable/images/myspace.png" title="MySpace" alt="MySpace" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  href="http://reddit.com/submit?url=http%3A%2F%2Fwww.lyabah.com%2Findex.php%2F2008%2F08%2F08%2Fjquery-%25d0%25bb%25d1%258e%25d0%25b1%25d1%258f%25d1%2582-%25d0%25bd%25d0%25b0-%25d1%2585%25d0%25b0%25d0%25b1%25d1%2580%25d0%25b5%2F&amp;title=JQuery%20%D0%BB%D1%8E%D0%B1%D1%8F%D1%82%20%D0%BD%D0%B0%20%D0%A5%D0%B0%D0%B1%D1%80%D0%B5" title="Reddit"><img src="http://www.lyabah.com/wp-content/plugins/sociable/images/reddit.png" title="Reddit" alt="Reddit" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fwww.lyabah.com%2Findex.php%2F2008%2F08%2F08%2Fjquery-%25d0%25bb%25d1%258e%25d0%25b1%25d1%258f%25d1%2582-%25d0%25bd%25d0%25b0-%25d1%2585%25d0%25b0%25d0%25b1%25d1%2580%25d0%25b5%2F&amp;title=JQuery%20%D0%BB%D1%8E%D0%B1%D1%8F%D1%82%20%D0%BD%D0%B0%20%D0%A5%D0%B0%D0%B1%D1%80%D0%B5&amp;bodytext=%D1%81%20%D1%83%D1%82%D1%80%D0%B0%20%D0%BF%D1%80%D0%BE%D1%85%D0%BE%D0%B4%D0%B8%D0%BB%D1%81%D1%8F%20%D0%BF%D0%BE%20%D0%B6%D1%81%D0%BD%D0%BE%D0%B9%20%D0%BB%D0%B5%D0%BD%D1%82%D0%B5%20%D0%A5%D0%B0%D0%B1%D1%80%D0%B0..%0D%0A%0D%0A%D0%9D%D0%B8%D1%87%D0%B5%20%D1%82%D0%B0%D0%BA%20%D1%81%D0%B5%D0%B1%D0%B5%20%D0%BB%D0%B5%D0%BD%D1%82%D0%BE%D1%87%D0%BA%D0%B0%20%D1%81%D0%BA%D0%B0%D0%B6%D1%83%20%D1%8F%20%D0%B2%D0%B0%D0%BC...%20%D1%82%D0%B0%D0%BA%20%D0%B2%D0%BE%D1%82...%0D%0A%0D%0A%D0%98%D1%85%20%D0%BE%D0%BF%D1%80%D0%BE%D1%81%D0%B8%D0%BA.%20%D0%BA%D0%BE%D0%BC%D0%B5%D0%BD%D1%82%D1%8B%20%D0%BD%D0%B5%20%D0%BD%D1%83%D0%B6%D0%BD%D1%8B.%0D%0A%0D%0A%D0%A5%D0%BE%D1%80%D0%BE%D1%88%D0%B8%D0%B9%20%D0%BF%D0%BE%D1%81%D1%82%D0%B8%D0%BA%20%D0%BE%20%D1" title="Digg"><img src="http://www.lyabah.com/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fwww.lyabah.com%2Findex.php%2F2008%2F08%2F08%2Fjquery-%25d0%25bb%25d1%258e%25d0%25b1%25d1%258f%25d1%2582-%25d0%25bd%25d0%25b0-%25d1%2585%25d0%25b0%25d0%25b1%25d1%2580%25d0%25b5%2F&amp;title=JQuery%20%D0%BB%D1%8E%D0%B1%D1%8F%D1%82%20%D0%BD%D0%B0%20%D0%A5%D0%B0%D0%B1%D1%80%D0%B5&amp;annotation=%D1%81%20%D1%83%D1%82%D1%80%D0%B0%20%D0%BF%D1%80%D0%BE%D1%85%D0%BE%D0%B4%D0%B8%D0%BB%D1%81%D1%8F%20%D0%BF%D0%BE%20%D0%B6%D1%81%D0%BD%D0%BE%D0%B9%20%D0%BB%D0%B5%D0%BD%D1%82%D0%B5%20%D0%A5%D0%B0%D0%B1%D1%80%D0%B0..%0D%0A%0D%0A%D0%9D%D0%B8%D1%87%D0%B5%20%D1%82%D0%B0%D0%BA%20%D1%81%D0%B5%D0%B1%D0%B5%20%D0%BB%D0%B5%D0%BD%D1%82%D0%BE%D1%87%D0%BA%D0%B0%20%D1%81%D0%BA%D0%B0%D0%B6%D1%83%20%D1%8F%20%D0%B2%D0%B0%D0%BC...%20%D1%82%D0%B0%D0%BA%20%D0%B2%D0%BE%D1%82...%0D%0A%0D%0A%D0%98%D1%85%20%D0%BE%D0%BF%D1%80%D0%BE%D1%81%D0%B8%D0%BA.%20%D0%BA%D0%BE%D0%BC%D0%B5%D0%BD%D1%82%D1%8B%20%D0%BD%D0%B5%20%D0%BD%D1%83%D0%B6%D0%BD%D1%8B.%0D%0A%0D%0A%D0%A5%D0%BE%D1%80%D0%BE%D1%88%D0%B8%D0%B9%20%D0%BF%D0%BE%D1%81%D1%82%D0%B8%D0%BA%20%D0%BE%20%D1" title="Google Bookmarks"><img src="http://www.lyabah.com/wp-content/plugins/sociable/images/googlebookmark.png" title="Google Bookmarks" alt="Google Bookmarks" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  href="http://technorati.com/faves?add=http%3A%2F%2Fwww.lyabah.com%2Findex.php%2F2008%2F08%2F08%2Fjquery-%25d0%25bb%25d1%258e%25d0%25b1%25d1%258f%25d1%2582-%25d0%25bd%25d0%25b0-%25d1%2585%25d0%25b0%25d0%25b1%25d1%2580%25d0%25b5%2F" title="Technorati"><img src="http://www.lyabah.com/wp-content/plugins/sociable/images/technorati.png" title="Technorati" alt="Technorati" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  href="mailto:?subject=JQuery%20%D0%BB%D1%8E%D0%B1%D1%8F%D1%82%20%D0%BD%D0%B0%20%D0%A5%D0%B0%D0%B1%D1%80%D0%B5&amp;body=http%3A%2F%2Fwww.lyabah.com%2Findex.php%2F2008%2F08%2F08%2Fjquery-%25d0%25bb%25d1%258e%25d0%25b1%25d1%258f%25d1%2582-%25d0%25bd%25d0%25b0-%25d1%2585%25d0%25b0%25d0%25b1%25d1%2580%25d0%25b5%2F" title="email"><img src="http://www.lyabah.com/wp-content/plugins/sociable/images/email_link.png" title="email" alt="email" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  href="http://www.printfriendly.com/print?url=http%3A%2F%2Fwww.lyabah.com%2Findex.php%2F2008%2F08%2F08%2Fjquery-%25d0%25bb%25d1%258e%25d0%25b1%25d1%258f%25d1%2582-%25d0%25bd%25d0%25b0-%25d1%2585%25d0%25b0%25d0%25b1%25d1%2580%25d0%25b5%2F&amp;partner=sociable" title="Print"><img src="http://www.lyabah.com/wp-content/plugins/sociable/images/printfriendly.png" title="Print" alt="Print" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  href="http://sphinn.com/index.php?c=post&amp;m=submit&amp;link=http%3A%2F%2Fwww.lyabah.com%2Findex.php%2F2008%2F08%2F08%2Fjquery-%25d0%25bb%25d1%258e%25d0%25b1%25d1%258f%25d1%2582-%25d0%25bd%25d0%25b0-%25d1%2585%25d0%25b0%25d0%25b1%25d1%2580%25d0%25b5%2F" title="Sphinn"><img src="http://www.lyabah.com/wp-content/plugins/sociable/images/sphinn.png" title="Sphinn" alt="Sphinn" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  href="http://www.mixx.com/submit?page_url=http%3A%2F%2Fwww.lyabah.com%2Findex.php%2F2008%2F08%2F08%2Fjquery-%25d0%25bb%25d1%258e%25d0%25b1%25d1%258f%25d1%2582-%25d0%25bd%25d0%25b0-%25d1%2585%25d0%25b0%25d0%25b1%25d1%2580%25d0%25b5%2F&amp;title=JQuery%20%D0%BB%D1%8E%D0%B1%D1%8F%D1%82%20%D0%BD%D0%B0%20%D0%A5%D0%B0%D0%B1%D1%80%D0%B5" title="Mixx"><img src="http://www.lyabah.com/wp-content/plugins/sociable/images/mixx.png" title="Mixx" alt="Mixx" class="sociable-hovers" /></a></li>
	<li><a  href="http://blogplay.com" title="Blogplay"><img src="http://www.lyabah.com/wp-content/plugins/sociable/images/blogplay.png" title="Blogplay" alt="Blogplay" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  href="javascript:AddToFavorites();" title="Add to favorites"><img src="http://www.lyabah.com/wp-content/plugins/sociable/images/addtofavorites.png" title="Add to favorites" alt="Add to favorites" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  href="http://www.linkter.hu/index.php?action=suggest_link&amp;url=http%3A%2F%2Fwww.lyabah.com%2Findex.php%2F2008%2F08%2F08%2Fjquery-%25d0%25bb%25d1%258e%25d0%25b1%25d1%258f%25d1%2582-%25d0%25bd%25d0%25b0-%25d1%2585%25d0%25b0%25d0%25b1%25d1%2580%25d0%25b5%2F&amp;title=JQuery%20%D0%BB%D1%8E%D0%B1%D1%8F%D1%82%20%D0%BD%D0%B0%20%D0%A5%D0%B0%D0%B1%D1%80%D0%B5" title="Linkter"><img src="http://www.lyabah.com/wp-content/plugins/sociable/images/linkter.png" title="Linkter" alt="Linkter" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  href="https://favorites.live.com/quickadd.aspx?marklet=1&amp;url=http%3A%2F%2Fwww.lyabah.com%2Findex.php%2F2008%2F08%2F08%2Fjquery-%25d0%25bb%25d1%258e%25d0%25b1%25d1%258f%25d1%2582-%25d0%25bd%25d0%25b0-%25d1%2585%25d0%25b0%25d0%25b1%25d1%2580%25d0%25b5%2F&amp;title=JQuery%20%D0%BB%D1%8E%D0%B1%D1%8F%D1%82%20%D0%BD%D0%B0%20%D0%A5%D0%B0%D0%B1%D1%80%D0%B5" title="Live"><img src="http://www.lyabah.com/wp-content/plugins/sociable/images/live.png" title="Live" alt="Live" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  href="http://reporter.nl.msn.com/?fn=contribute&amp;Title=JQuery%20%D0%BB%D1%8E%D0%B1%D1%8F%D1%82%20%D0%BD%D0%B0%20%D0%A5%D0%B0%D0%B1%D1%80%D0%B5&amp;URL=http%3A%2F%2Fwww.lyabah.com%2Findex.php%2F2008%2F08%2F08%2Fjquery-%25d0%25bb%25d1%258e%25d0%25b1%25d1%258f%25d1%2582-%25d0%25bd%25d0%25b0-%25d1%2585%25d0%25b0%25d0%25b1%25d1%2580%25d0%25b5%2F&amp;cat_id=6&amp;tag_id=31&amp;Remark=%D1%81%20%D1%83%D1%82%D1%80%D0%B0%20%D0%BF%D1%80%D0%BE%D1%85%D0%BE%D0%B4%D0%B8%D0%BB%D1%81%D1%8F%20%D0%BF%D0%BE%20%D0%B6%D1%81%D0%BD%D0%BE%D0%B9%20%D0%BB%D0%B5%D0%BD%D1%82%D0%B5%20%D0%A5%D0%B0%D0%B1%D1%80%D0%B0..%0D%0A%0D%0A%D0%9D%D0%B8%D1%87%D0%B5%20%D1%82%D0%B0%D0%BA%20%D1%81%D0%B5%D0%B1%D0%B5%20%D0%BB%D0%B5%D0%BD%D1%82%D0%BE%D1%87%D0%BA%D0%B0%20%D1%81%D0%BA%D0%B0%D0%B6%D1%83%20%D1%8F%20%D0%B2%D0%B0%D0%BC...%20%D1%82%D0%B0%D0%BA%20%D0%B2%D0%BE%D1%82...%0D%0A%0D%0A%D0%98%D1%85%20%D0%BE%D0%BF%D1%80%D0%BE%D1%81%D0%B8%D0%BA.%20%D0%BA%D0%BE%D0%BC%D0%B5%D0%BD%D1%82%D1%8B%20%D0%BD%D0%B5%20%D0%BD%D1%83%D0%B6%D0%BD%D1%8B.%0D%0A%0D%0A%D0%A5%D0%BE%D1%80%D0%BE%D1%88%D0%B8%D0%B9%20%D0%BF%D0%BE%D1%81%D1%82%D0%B8%D0%BA%20%D0%BE%20%D1" title="MSN Reporter"><img src="http://www.lyabah.com/wp-content/plugins/sociable/images/msnreporter.png" title="MSN Reporter" alt="MSN Reporter" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  href="http://www.newsvine.com/_tools/seed&amp;save?u=http%3A%2F%2Fwww.lyabah.com%2Findex.php%2F2008%2F08%2F08%2Fjquery-%25d0%25bb%25d1%258e%25d0%25b1%25d1%258f%25d1%2582-%25d0%25bd%25d0%25b0-%25d1%2585%25d0%25b0%25d0%25b1%25d1%2580%25d0%25b5%2F&amp;h=JQuery%20%D0%BB%D1%8E%D0%B1%D1%8F%D1%82%20%D0%BD%D0%B0%20%D0%A5%D0%B0%D0%B1%D1%80%D0%B5" title="NewsVine"><img src="http://www.lyabah.com/wp-content/plugins/sociable/images/newsvine.png" title="NewsVine" alt="NewsVine" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  href="http://www.lyabah.com/index.php/feed/" title="RSS"><img src="http://www.lyabah.com/wp-content/plugins/sociable/images/rss.png" title="RSS" alt="RSS" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  href="http://bookmarks.yahoo.com/toolbar/savebm?u=http%3A%2F%2Fwww.lyabah.com%2Findex.php%2F2008%2F08%2F08%2Fjquery-%25d0%25bb%25d1%258e%25d0%25b1%25d1%258f%25d1%2582-%25d0%25bd%25d0%25b0-%25d1%2585%25d0%25b0%25d0%25b1%25d1%2580%25d0%25b5%2F&amp;t=JQuery%20%D0%BB%D1%8E%D0%B1%D1%8F%D1%82%20%D0%BD%D0%B0%20%D0%A5%D0%B0%D0%B1%D1%80%D0%B5&opener=bm&amp;ei=UTF-8&amp;d=%D1%81%20%D1%83%D1%82%D1%80%D0%B0%20%D0%BF%D1%80%D0%BE%D1%85%D0%BE%D0%B4%D0%B8%D0%BB%D1%81%D1%8F%20%D0%BF%D0%BE%20%D0%B6%D1%81%D0%BD%D0%BE%D0%B9%20%D0%BB%D0%B5%D0%BD%D1%82%D0%B5%20%D0%A5%D0%B0%D0%B1%D1%80%D0%B0..%0D%0A%0D%0A%D0%9D%D0%B8%D1%87%D0%B5%20%D1%82%D0%B0%D0%BA%20%D1%81%D0%B5%D0%B1%D0%B5%20%D0%BB%D0%B5%D0%BD%D1%82%D0%BE%D1%87%D0%BA%D0%B0%20%D1%81%D0%BA%D0%B0%D0%B6%D1%83%20%D1%8F%20%D0%B2%D0%B0%D0%BC...%20%D1%82%D0%B0%D0%BA%20%D0%B2%D0%BE%D1%82...%0D%0A%0D%0A%D0%98%D1%85%20%D0%BE%D0%BF%D1%80%D0%BE%D1%81%D0%B8%D0%BA.%20%D0%BA%D0%BE%D0%BC%D0%B5%D0%BD%D1%82%D1%8B%20%D0%BD%D0%B5%20%D0%BD%D1%83%D0%B6%D0%BD%D1%8B.%0D%0A%0D%0A%D0%A5%D0%BE%D1%80%D0%BE%D1%88%D0%B8%D0%B9%20%D0%BF%D0%BE%D1%81%D1%82%D0%B8%D0%BA%20%D0%BE%20%D1" title="Yahoo! Bookmarks"><img src="http://www.lyabah.com/wp-content/plugins/sociable/images/yahoomyweb.png" title="Yahoo! Bookmarks" alt="Yahoo! Bookmarks" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  href="http://buzz.yahoo.com/submit/?submitUrl=http%3A%2F%2Fwww.lyabah.com%2Findex.php%2F2008%2F08%2F08%2Fjquery-%25d0%25bb%25d1%258e%25d0%25b1%25d1%258f%25d1%2582-%25d0%25bd%25d0%25b0-%25d1%2585%25d0%25b0%25d0%25b1%25d1%2580%25d0%25b5%2F&amp;submitHeadline=JQuery%20%D0%BB%D1%8E%D0%B1%D1%8F%D1%82%20%D0%BD%D0%B0%20%D0%A5%D0%B0%D0%B1%D1%80%D0%B5&amp;submitSummary=%D1%81%20%D1%83%D1%82%D1%80%D0%B0%20%D0%BF%D1%80%D0%BE%D1%85%D0%BE%D0%B4%D0%B8%D0%BB%D1%81%D1%8F%20%D0%BF%D0%BE%20%D0%B6%D1%81%D0%BD%D0%BE%D0%B9%20%D0%BB%D0%B5%D0%BD%D1%82%D0%B5%20%D0%A5%D0%B0%D0%B1%D1%80%D0%B0..%0D%0A%0D%0A%D0%9D%D0%B8%D1%87%D0%B5%20%D1%82%D0%B0%D0%BA%20%D1%81%D0%B5%D0%B1%D0%B5%20%D0%BB%D0%B5%D0%BD%D1%82%D0%BE%D1%87%D0%BA%D0%B0%20%D1%81%D0%BA%D0%B0%D0%B6%D1%83%20%D1%8F%20%D0%B2%D0%B0%D0%BC...%20%D1%82%D0%B0%D0%BA%20%D0%B2%D0%BE%D1%82...%0D%0A%0D%0A%D0%98%D1%85%20%D0%BE%D0%BF%D1%80%D0%BE%D1%81%D0%B8%D0%BA.%20%D0%BA%D0%BE%D0%BC%D0%B5%D0%BD%D1%82%D1%8B%20%D0%BD%D0%B5%20%D0%BD%D1%83%D0%B6%D0%BD%D1%8B.%0D%0A%0D%0A%D0%A5%D0%BE%D1%80%D0%BE%D1%88%D0%B8%D0%B9%20%D0%BF%D0%BE%D1%81%D1%82%D0%B8%D0%BA%20%D0%BE%20%D1&amp;submitCategory=science&amp;submitAssetType=text" title="Yahoo! Buzz"><img src="http://www.lyabah.com/wp-content/plugins/sociable/images/yahoobuzz.png" title="Yahoo! Buzz" alt="Yahoo! Buzz" class="sociable-hovers" /></a></li>
	<li class="sociablelast"><a rel="nofollow"  href="http://yigg.de/neu?exturl=http%3A%2F%2Fwww.lyabah.com%2Findex.php%2F2008%2F08%2F08%2Fjquery-%25d0%25bb%25d1%258e%25d0%25b1%25d1%258f%25d1%2582-%25d0%25bd%25d0%25b0-%25d1%2585%25d0%25b0%25d0%25b1%25d1%2580%25d0%25b5%2F&amp;exttitle=JQuery%20%D0%BB%D1%8E%D0%B1%D1%8F%D1%82%20%D0%BD%D0%B0%20%D0%A5%D0%B0%D0%B1%D1%80%D0%B5" title="Yigg"><img src="http://www.lyabah.com/wp-content/plugins/sociable/images/yiggit.png" title="Yigg" alt="Yigg" class="sociable-hovers" /></a></li>
</ul>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.lyabah.com/index.php/2008/08/08/jquery-%d0%bb%d1%8e%d0%b1%d1%8f%d1%82-%d0%bd%d0%b0-%d1%85%d0%b0%d0%b1%d1%80%d0%b5/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
<!-- WP Super Cache is installed but broken. The path to wp-cache-phase1.php in wp-content/advanced-cache.php must be fixed! -->