<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>https://lib.custis.ru/index.php?action=history&amp;feed=atom&amp;title=Programmer_Insecurity</id>
		<title>Programmer Insecurity - История изменений</title>
		<link rel="self" type="application/atom+xml" href="https://lib.custis.ru/index.php?action=history&amp;feed=atom&amp;title=Programmer_Insecurity"/>
		<link rel="alternate" type="text/html" href="https://lib.custis.ru/index.php?title=Programmer_Insecurity&amp;action=history"/>
		<updated>2026-05-02T00:57:46Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.26.4</generator>

	<entry>
		<id>https://lib.custis.ru/index.php?title=Programmer_Insecurity&amp;diff=12639&amp;oldid=prev</id>
		<title>BenderBot: 1 версия</title>
		<link rel="alternate" type="text/html" href="https://lib.custis.ru/index.php?title=Programmer_Insecurity&amp;diff=12639&amp;oldid=prev"/>
				<updated>2010-02-18T01:00:45Z</updated>
		
		<summary type="html">&lt;p&gt;1 версия&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;tr style='vertical-align: top;' lang='ru'&gt;
				&lt;td colspan='1' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan='1' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Версия 01:00, 18 февраля 2010&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan='2' style='text-align: center;' lang='ru'&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(нет различий)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>BenderBot</name></author>	</entry>

	<entry>
		<id>https://lib.custis.ru/index.php?title=Programmer_Insecurity&amp;diff=12638&amp;oldid=prev</id>
		<title>StasFomin: орфография/пунктуация</title>
		<link rel="alternate" type="text/html" href="https://lib.custis.ru/index.php?title=Programmer_Insecurity&amp;diff=12638&amp;oldid=prev"/>
				<updated>2010-02-17T22:15:33Z</updated>
		
		<summary type="html">&lt;p&gt;орфография/пунктуация&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;tr style='vertical-align: top;' lang='ru'&gt;
				&lt;td colspan='1' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan='1' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Версия 22:15, 17 февраля 2010&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan='2' style='text-align: center;' lang='ru'&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(нет различий)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>StasFomin</name></author>	</entry>

	<entry>
		<id>https://lib.custis.ru/index.php?title=Programmer_Insecurity&amp;diff=12634&amp;oldid=prev</id>
		<title>Trolzen: орфография/пунктуация</title>
		<link rel="alternate" type="text/html" href="https://lib.custis.ru/index.php?title=Programmer_Insecurity&amp;diff=12634&amp;oldid=prev"/>
				<updated>2010-02-17T11:37:57Z</updated>
		
		<summary type="html">&lt;p&gt;орфография/пунктуация&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;tr style='vertical-align: top;' lang='ru'&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Версия 11:37, 17 февраля 2010&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l14&quot; &gt;Строка 14:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 14:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; A: He looks at your shoes!&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; A: He looks at your shoes!&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Но на этой неделе я обнаружил, что большинство программистов и на самом деле очень закомплексованы, причем в своей же работе! Повторюсь: &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;ужасные &lt;/del&gt;закомплексованы!&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Но на этой неделе я обнаружил, что большинство программистов и на самом деле очень закомплексованы, причем в своей же работе! Повторюсь: &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;ужасно &lt;/ins&gt;закомплексованы!&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Мой приятель Фитц и я долго проповедовали о ''best practices'' в разработке приложений&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Мой приятель Фитц и я долго проповедовали о ''best practices'' в разработке приложений&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l21&quot; &gt;Строка 21:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 21:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;с коллегами.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;с коллегами.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Один из антипаттернов, о &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;которой &lt;/del&gt;мы говорили — это люди, пишущие «кодовые бомбы».&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Один из антипаттернов, о &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;котором &lt;/ins&gt;мы говорили — это люди, пишущие «кодовые бомбы».&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;То есть, что вы делаете, когда кто-либо показывает вам огромную новую фичу в open source проекте, написание которой заняло месяцы?&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;То есть, что вы делаете, когда кто-либо показывает вам огромную новую фичу в open source проекте, написание которой заняло месяцы?&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l33&quot; &gt;Строка 33:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 33:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;К тому же, это явно двигает проект в некотором направлении без всяких обсуждений или консенсусных решений.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;К тому же, это явно двигает проект в некотором направлении без всяких обсуждений или консенсусных решений.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;И все же снова и снова&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;, &lt;/del&gt;я слышу истории, которые указывают на тот факт,&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;И все же снова и снова я слышу истории, которые указывают на тот факт,&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;что программисты не хотят писать код в открытую — они, видите ли, не хотят, чтобы коллеги видели их ошибки и неудачи.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;что программисты не хотят писать код в открытую — они, видите ли, не хотят, чтобы коллеги видели их ошибки и неудачи.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l59&quot; &gt;Строка 59:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 59:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;;Просьбы в список рассылки Google Code:&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;;Просьбы в список рассылки Google Code:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Почистить так или иначе svn-репозиторий на &amp;lt;tt&amp;gt;Google Code&amp;lt;/tt&amp;gt;. Встречаются и разумные причины — например, случайный коммит секретных данных, или необходимость загрузить полностью историю из другого SVN-&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;репозитария&lt;/del&gt;.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Почистить так или иначе svn-репозиторий на &amp;lt;tt&amp;gt;Google Code&amp;lt;/tt&amp;gt;. Встречаются и разумные причины — например, случайный коммит секретных данных, или необходимость загрузить полностью историю из другого SVN-&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;репозитория&lt;/ins&gt;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Но в основном, мы получаем некорректные (да, мы их отклоняем) просьбы вроде «Привет, я хочу переписать свой код с самого начала. Вы могли бы уничтожить историю?». Это значит «Я не хочу, чтобы люди увидели мой старый код, мне так за него стыдно!»&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Но в основном, мы получаем некорректные (да, мы их отклоняем) просьбы вроде «Привет, я хочу переписать свой код с самого начала. Вы могли бы уничтожить историю?». Это значит «Я не хочу, чтобы люди увидели мой старый код, мне так за него стыдно!»&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l98&quot; &gt;Строка 98:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 98:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;В прошлое воскресенье один из них зашел ко мне с багом […] и я наконец смог увидеть&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;В прошлое воскресенье один из них зашел ко мне с багом […] и я наконец смог увидеть&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;код, чтобы помочь отладить его. Это&amp;#160; мне не удалось, потому что там были 5000&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;код, чтобы помочь отладить его. Это&amp;#160; мне не удалось, потому что там были 5000&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;строк мусорного кода, и &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;просмотрт &lt;/del&gt;лишь одного файла выявил две или три серьезных&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;строк мусорного кода, и &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;просмотр &lt;/ins&gt;лишь одного файла выявил две или три серьезных&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;ошибки в проектировании и дюжину сыро реализованных мест.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;ошибки в проектировании и дюжину сыро реализованных мест.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l148&quot; &gt;Строка 148:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 148:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;насколько сильно люди стремятся спрятать свой код друг от друга.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;насколько сильно люди стремятся спрятать свой код друг от друга.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Вот классическая «рекомендация» для &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;система &lt;/del&gt;вроде git (взято из комментария в блоге):&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Вот классическая «рекомендация» для &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;системы &lt;/ins&gt;вроде git (взято из комментария в блоге):&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;«Не надо говорить мне, что я должен сотрудничать с другими людьми&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;«Не надо говорить мне, что я должен сотрудничать с другими людьми&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;в начале и публиковать мои изменения как можно раньше.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;в начале и публиковать мои изменения как можно раньше.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l176&quot; &gt;Строка 176:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 176:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Mercurial же по умолчанию разделяет все, и не может стирать историю.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Mercurial же по умолчанию разделяет все, и не может стирать историю.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Я знаю, этот пост получился очень длинным, но дайте мне еще постоять на трибуне из &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;под &lt;/del&gt;ящика мыла:&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Я знаю, этот пост получился очень длинным, но дайте мне еще постоять на трибуне из ящика &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;из-под &lt;/ins&gt;мыла:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Будьте ясными.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Будьте ясными.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Trolzen</name></author>	</entry>

	<entry>
		<id>https://lib.custis.ru/index.php?title=Programmer_Insecurity&amp;diff=11080&amp;oldid=prev</id>
		<title>BenderBot: 1 версия</title>
		<link rel="alternate" type="text/html" href="https://lib.custis.ru/index.php?title=Programmer_Insecurity&amp;diff=11080&amp;oldid=prev"/>
				<updated>2009-07-01T00:00:25Z</updated>
		
		<summary type="html">&lt;p&gt;1 версия&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;tr style='vertical-align: top;' lang='ru'&gt;
				&lt;td colspan='1' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan='1' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Версия 00:00, 1 июля 2009&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan='2' style='text-align: center;' lang='ru'&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(нет различий)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>BenderBot</name></author>	</entry>

	<entry>
		<id>https://lib.custis.ru/index.php?title=Programmer_Insecurity&amp;diff=11079&amp;oldid=prev</id>
		<title>StasFomin: /* Ссылки */ + {{replicate-from-custiswiki-to-lib}}</title>
		<link rel="alternate" type="text/html" href="https://lib.custis.ru/index.php?title=Programmer_Insecurity&amp;diff=11079&amp;oldid=prev"/>
				<updated>2009-06-30T21:16:11Z</updated>
		
		<summary type="html">&lt;p&gt;‎&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Ссылки: &lt;/span&gt; + {{replicate-from-custiswiki-to-lib}}&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Programmer Insecurity/Комплексы Программиста&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
Перевод статьи «Programmer Insecurity/Комплексы Программиста»&lt;br /&gt;
&amp;lt;ref&amp;gt;http://blog.red-bean.com/sussman/?p=96&amp;lt;/ref&amp;gt;,&lt;br /&gt;
выполнен сообществом компании [http://team.custis.ru «Заказные ИнформСистемы»].&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Я хотел бы о многом сегодня поговорить. Поговорить о том, что я никогда прежде не замечал, хотя вероятно, должен был заметить.&lt;br /&gt;
&lt;br /&gt;
Всегда был стереотип, что программисты асоциальны:&lt;br /&gt;
&lt;br /&gt;
  Q: How do you know when an engineer is outgoing?&lt;br /&gt;
  A: He looks at your shoes!&lt;br /&gt;
&lt;br /&gt;
Но на этой неделе я обнаружил, что большинство программистов и на самом деле очень закомплексованы, причем в своей же работе! Повторюсь: ужасные закомплексованы!&lt;br /&gt;
&lt;br /&gt;
Мой приятель Фитц и я долго проповедовали о ''best practices'' в разработке приложений&lt;br /&gt;
с открытым исходным кодом — когда человек должен быть открытым и честным с работой другого,&lt;br /&gt;
воспринимать разбор своего кода и уметь конструктивно критиковать, и, главное, активно общаться&lt;br /&gt;
с коллегами.&lt;br /&gt;
&lt;br /&gt;
Один из антипаттернов, о которой мы говорили — это люди, пишущие «кодовые бомбы».&lt;br /&gt;
То есть, что вы делаете, когда кто-либо показывает вам огромную новую фичу в open source проекте, написание которой заняло месяцы?&lt;br /&gt;
&lt;br /&gt;
У кого есть время, чтобы отрецензировать тысячи строк кода?&lt;br /&gt;
А что, если там были неправильные архитектурные решения с самого начала?&lt;br /&gt;
Есть ли теперь смысл указывать на это?&lt;br /&gt;
&lt;br /&gt;
Сбрасывание такой «кодовой-бомбы» в сообщество, редко когда идет проекту на пользу:&lt;br /&gt;
команда либо должна либо полностью отклонить ее, либо принять и иметь дело с&lt;br /&gt;
гигантским мутным ''BLOB''-ом, который трудно и понять, и править, и поддерживать.&lt;br /&gt;
К тому же, это явно двигает проект в некотором направлении без всяких обсуждений или консенсусных решений.&lt;br /&gt;
&lt;br /&gt;
И все же снова и снова, я слышу истории, которые указывают на тот факт,&lt;br /&gt;
что программисты не хотят писать код в открытую — они, видите ли, не хотят, чтобы коллеги видели их ошибки и неудачи.&lt;br /&gt;
&lt;br /&gt;
Они хотят работать одни, в пещере, и только потом открыть сообществу&lt;br /&gt;
свой «идеальный» код, как будто бы в нем никогда ошибок и не было.&lt;br /&gt;
&lt;br /&gt;
Я думаю, что дело скорее не в высокомерии, а в страхе порицания.&lt;br /&gt;
Вместо того, чтобы считать программирование по сути социальным занятием,&lt;br /&gt;
большинство кодеров похоже считают его местом проявления личного героизма&lt;br /&gt;
и готовы сделать все, чтобы защитить этот миф.&lt;br /&gt;
&lt;br /&gt;
Похоже, они охотно делятся кодом, только когда могут показать, что они «непогрешимы».&lt;br /&gt;
Хотя, возможно это в природе человека.&lt;br /&gt;
&lt;br /&gt;
Оцените несколько историй, которые я собрал:&lt;br /&gt;
&lt;br /&gt;
;Просьбы на конференции «Google I/O»:&lt;br /&gt;
  Пару недель назад, когда моя команда была на конференции «Google I/O»,&lt;br /&gt;
  мы поставили демонстрационный стенд, посвященный сервису поддержки проектов с открытыми исходными кодами.&lt;br /&gt;
  Раз за разом, мы получали просьбы типа:&lt;br /&gt;
* «Ребят, вы можете заставить Subversion в Google Code возможность прятать определенные ветки?»&lt;br /&gt;
* «Парни, а можно создавать открытые проекты поначалу скрытые от мира, а потом раскрыть их, когда они будут готовы?»&lt;br /&gt;
&lt;br /&gt;
По сути, они говорили одно и то же: «Я не хочу, чтобы люди видели процесс моей работы, пока она не стала идеальной»&lt;br /&gt;
&lt;br /&gt;
;Просьбы в список рассылки Google Code:&lt;br /&gt;
* Почистить так или иначе svn-репозиторий на &amp;lt;tt&amp;gt;Google Code&amp;lt;/tt&amp;gt;. Встречаются и разумные причины — например, случайный коммит секретных данных, или необходимость загрузить полностью историю из другого SVN-репозитария.&lt;br /&gt;
Но в основном, мы получаем некорректные (да, мы их отклоняем) просьбы вроде «Привет, я хочу переписать свой код с самого начала. Вы могли бы уничтожить историю?». Это значит «Я не хочу, чтобы люди увидели мой старый код, мне так за него стыдно!»&lt;br /&gt;
&lt;br /&gt;
Назовите это тщеславием или закомплексованностью —  в глубине души все кодеры хотят, чтобы все их прошлые ошибки и провалы были вычеркнуты из&lt;br /&gt;
истории.&lt;br /&gt;
&lt;br /&gt;
;Код-ревью воспринимаются как личные нападения:&lt;br /&gt;
Фитц рассказал смешной анекдот о своем друге, который перешел из мира open-source в корпоративную разработку.&lt;br /&gt;
Перескажу своими словами:&lt;br /&gt;
&lt;br /&gt;
В течение первой недели он начал рассылать дружественные рецензии на исходники&lt;br /&gt;
каждого из сослуживцев, получая странные пристальные взляды в ответ.&lt;br /&gt;
Наконец начальник вызвал его к себе: &lt;br /&gt;
«Знаешь, тебе пока заканчивать с этой негативной энергией. Твои напарники говорят, ты критикуешь все, что они делают».&lt;br /&gt;
&lt;br /&gt;
Мораль: рецензии кода далеки от стандартной практики в корпоративном сообществе, более того, &lt;br /&gt;
большинство программистов не способны отделить свои хрупкие «Я» от кода, который они пишут.&lt;br /&gt;
&lt;br /&gt;
Повторяйте за мной: '''ты это не твой код'''!&lt;br /&gt;
&lt;br /&gt;
;Использовать распределенный контоль версий — быть в пещере:&lt;br /&gt;
&lt;br /&gt;
Один мой друг работает над несколькими проектами, в которых используют &amp;lt;tt&amp;gt;git&amp;lt;/tt&amp;gt; и &amp;lt;tt&amp;gt;mercurial&amp;lt;/tt&amp;gt;.&lt;br /&gt;
Недавно он рассказал мне следующую историю.&lt;br /&gt;
&lt;br /&gt;
В основном, он работал с двумя командами над проектом.&lt;br /&gt;
&lt;br /&gt;
Одна команда часто публиковала изменения… &lt;br /&gt;
«… в результате у меня была возможность постоянно просматривать их проект&lt;br /&gt;
в течении семестра, регулярно предлагая улучшения дизайна и предоставляя&lt;br /&gt;
рецензии на код… …В результате этого [их проект] развивается на полном ходу и практически&lt;br /&gt;
функционирует.&lt;br /&gt;
&lt;br /&gt;
Другая группа… Я не слышал от нее и писка за последние 5 месяцев.&lt;br /&gt;
Несмотря на множество писем и обсуждений в IRC, призывающих их обсудить их&lt;br /&gt;
дизайн и регулярно публиковать изменения, мне не дали увидеть ни одной строчки. […]&lt;br /&gt;
&lt;br /&gt;
В прошлое воскресенье один из них зашел ко мне с багом […] и я наконец смог увидеть&lt;br /&gt;
код, чтобы помочь отладить его. Это  мне не удалось, потому что там были 5000&lt;br /&gt;
строк мусорного кода, и просмотрт лишь одного файла выявил две или три серьезных&lt;br /&gt;
ошибки в проектировании и дюжину сыро реализованных мест.&lt;br /&gt;
&lt;br /&gt;
Я убеждал их много раз в течение этих 5 месяцев публиковать свои изменения,&lt;br /&gt;
так, чтобы мы (другие) могли посмотреть и предложить обратную связь,&lt;br /&gt;
но каждый раз, в ответ была сплошная тишина.&lt;br /&gt;
&lt;br /&gt;
Я не знаю, боялись ли они опубликовать это, или только не заботились об этом.&lt;br /&gt;
Но так или иначе, учитывая код, что я видел, практический результат составляет 5 потраченных впустую месяцев.»&lt;br /&gt;
&lt;br /&gt;
Прежде, чем Вы начнете возражать — да да, я знаю, что потенциально&lt;br /&gt;
cave-hiding («разработка в тайной пещере») и написание кодовых бомб&lt;br /&gt;
возможно и с использованием централизованной системой управления версиями, такой, как Subversion.&lt;br /&gt;
&lt;br /&gt;
Но у моего друга есть интересная точка зрения:&lt;br /&gt;
&lt;br /&gt;
''Я думаю, что этот недостаток имеет место по крайней мере частично из-за того,&lt;br /&gt;
что DVCS даёт легкий способ обнести себя стеной и забраться в пещеру.&lt;br /&gt;
Если бы мы использовали &amp;lt;tt&amp;gt;svn&amp;lt;/tt&amp;gt;, я думаю, что «пещерный» барьер был бы слишком&lt;br /&gt;
высок, и я сразу бы увидел этот код.&lt;br /&gt;
''&lt;br /&gt;
&lt;br /&gt;
Другими словами, да, это было бы в основном социальной проблемой.&lt;br /&gt;
Команда запуталась в распределении кода.&lt;br /&gt;
&lt;br /&gt;
Но, так как они использовали распределенное управление версиями,&lt;br /&gt;
у них возникла видимость ложной безопасности.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
«Смотрите, мы коммитим изменения в наш репозиторий каждый день … прогресс!»&lt;br /&gt;
&lt;br /&gt;
Если бы они использовали Subversion, то гораздо менее вероятно, что&lt;br /&gt;
они сидели бы над патчем из 5000 строк в их рабочей копии в течение 5 месяцев;&lt;br /&gt;
они должны были бы показать работу намного раньше.&lt;br /&gt;
&lt;br /&gt;
Мораль: даже при том, что нельзя расчитывать на технические решения&lt;br /&gt;
социальных проблем, используемые инструменты имеют большое значение.&lt;br /&gt;
&lt;br /&gt;
Это было моей главной темой ранее, когда я написал о рисках распределенного управления версиеями.&lt;br /&gt;
&lt;br /&gt;
Хорошо, так, каково заключение? — &lt;br /&gt;
Просто очевидно, что люди боятся показывать незаконченную работу.&lt;br /&gt;
&lt;br /&gt;
Я знаю, что это далеко не новость для большинства людей, но я долго этого не осознавал.&lt;br /&gt;
Я так привык подвергать свое творчество постоянной критике со стороны, что просто ожидаю того же от всех остальных.&lt;br /&gt;
 &lt;br /&gt;
Я рассматриваю это как норму и не могу понять, почему кто-то не хочет этого делать.&lt;br /&gt;
Более того, растущая популярность распределенного контроля версий показывает,&lt;br /&gt;
насколько сильно люди стремятся спрятать свой код друг от друга.&lt;br /&gt;
&lt;br /&gt;
Вот классическая «рекомендация» для система вроде git (взято из комментария в блоге):&lt;br /&gt;
«Не надо говорить мне, что я должен сотрудничать с другими людьми&lt;br /&gt;
в начале и публиковать мои изменения как можно раньше.&lt;br /&gt;
Я сотрудничаю с другими людьми, но иногда хочу делать определенную часть работы в одиночку.»&lt;br /&gt;
&lt;br /&gt;
Хм, ладно! Только не работай в одиночку слишком долго!&lt;br /&gt;
&lt;br /&gt;
Немного отступая от основной темы, скажу почему я предпочитаю &amp;lt;tt&amp;gt;Mercurial&amp;lt;/tt&amp;gt; &amp;lt;tt&amp;gt;Git&amp;lt;/tt&amp;gt;-у,&lt;br /&gt;
проделав некоторые исследования и прочитав немного об этих системах.&lt;br /&gt;
&lt;br /&gt;
Git гораздо более склонен к «пещерности», а я этого не люблю.&lt;br /&gt;
&lt;br /&gt;
Например, команда «git rebase» — это средство, позволяющее эффективно&lt;br /&gt;
уничтожать целые ветки истории: очень мощное, конечно же,&lt;br /&gt;
но это в то же время и способ стирания собственных следов.&lt;br /&gt;
Вместо того, чтобы соединить вашу ветку с родительской, она «притворяется», &lt;br /&gt;
что ваша ветвь всегда была основана на самой последней родительской ревизии.&lt;br /&gt;
&lt;br /&gt;
Другой пример: когда приходит время отправки и получения наборов изменений,&lt;br /&gt;
поведение по умолчанию для Mercurial состоит в том, чтобы обменяться историей с&lt;br /&gt;
удаленным репозитарием, тогда как git в этом случае только отправляет и получает&lt;br /&gt;
отдельную ветвь — предположительно ту, которую пользователь счел нужным сделать&lt;br /&gt;
общедоступной.&lt;br /&gt;
&lt;br /&gt;
Другими словами, git по умолчанию считает, что вся работа «пещерная», и с радостью&lt;br /&gt;
уничтожает историю. &lt;br /&gt;
Mercurial же по умолчанию разделяет все, и не может стирать историю.&lt;br /&gt;
&lt;br /&gt;
Я знаю, этот пост получился очень длинным, но дайте мне еще постоять на трибуне из под ящика мыла:&lt;br /&gt;
&lt;br /&gt;
* Будьте ясными.&lt;br /&gt;
* Постоянно публикуйте свою работу.&lt;br /&gt;
* Приветствуйте обратную связь.&lt;br /&gt;
* Воспринимайте критику.&lt;br /&gt;
* Дайте возможность другим людям найти ваши ошибки.&lt;br /&gt;
* Ваш код — это не вы сами.&lt;br /&gt;
* Не бойтесь ежедневных ошибок — учитесь на них (Как говорят в Google, «не беги от ошибки — ошибайся часто, быстро, и учись!»).&lt;br /&gt;
* Храни всю свою историю, и удачи, и ошибки.&lt;br /&gt;
&lt;br /&gt;
Все эти приемы — путь совершенствования в программировании.&lt;br /&gt;
Если вы не следуете им, вы обманываете свое собственное развитие.&lt;br /&gt;
&lt;br /&gt;
Уф-ф! Теперь я чувствую себя лучше.&lt;br /&gt;
&lt;br /&gt;
==Ссылки==&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Категория:Статьи о Subversion]]&lt;br /&gt;
&lt;br /&gt;
{{replicate-from-custiswiki-to-lib}}&lt;/div&gt;</summary>
		<author><name>StasFomin</name></author>	</entry>

	</feed>