<?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>Codito ergo sum &#187; 2008 &#187; September &#187; 14</title>
	<atom:link href="http://skanev.com/2008/09/14/feed/" rel="self" type="application/rss+xml" />
	<link>http://skanev.com</link>
	<description>Блогът на Стефан Кънев</description>
	<lastBuildDate>Mon, 25 Jan 2010 18:33:20 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Коментари</title>
		<link>http://skanev.com/2008/09/14/comments/</link>
		<comments>http://skanev.com/2008/09/14/comments/#comments</comments>
		<pubDate>Sun, 14 Sep 2008 12:06:55 +0000</pubDate>
		<dc:creator>Стефан Кънев</dc:creator>
				<category><![CDATA[Програмиране]]></category>

		<guid isPermaLink="false">http://skanev.com/2008/09/14/comments/</guid>
		<description><![CDATA[Мненията за коментарите (тези в кода) са разнородни. Едни ще ви кажат, че е добре да имате ред коментар описващ всеки пет-десет. Други проповядват добра документация на всеки клас и метод. Някои дори говорят за literate programming. Въобще, хората си умират да бухат текст в кода. Вероятно знаете, че аз съм аскет в това отношение. [...]]]></description>
			<content:encoded><![CDATA[<p>Мненията за коментарите (тези в кода) са разнородни. <a href="http://cc2e.com/">Едни</a> ще ви кажат, че е добре да имате ред коментар описващ всеки пет-десет. <a href="http://java.sun.com">Други</a> проповядват добра документация на всеки клас и метод. <a href="http://www-cs-staff.stanford.edu/~uno/">Някои</a> дори говорят за <a href="http://www.literateprogramming.com">literate programming</a>. Въобще, хората си умират да <em>бухат</em> текст в кода. Вероятно знаете, че аз съм аскет в това отношение. Предпочитам да прокарвам идеите си с Ruby, а не с английски. Ако някое парче е твърде сложно, най-много да го разбия на различни методи с добри имена. Четящият няма да е идиот. Ще го схване. Пък и упражнението ще му е полезно.</p>

<p>Но като всеки мъдър човек, периодично поставям убежденията си под съмнение. Човек греши. Особено ако е научил нещо на 14. Все пак, garbage collector-ите работят добре в истинския свят и променливите са използваеми и без деклариране. Може и да греша за коментарите. Може би има какво да се иска от моя минималистичен подход.</p>

<p><span id="more-137"></span></p>

<p>Първо, ще <span style="text-decoration: underline">подчертая</span>, че стратегията ви към коментарите трябва да е консистентна с екипа ви и възгледите на отделните му членове. Трябва да коментирате както е най-подходящо за ситуацията. Готово. Покрих си гърба. Сега ще ви разкажа за Оскар.</p>

<p>Оскар е любопитна личност. Финландец, живеещ с жената и децата си в Швеция. Ако знаете поне мъничко за тези народи, вече надушвате колко колоритна личност е. А и говореше руски. Работил е като системен администратор и журналист. Интервюирал е Линус Торвалдс в дома му. Първия път, като бе в България, полицаите го спрели на улицата, за да му проверят документите. Понеже ги гледал твърде дълго в очите, като ги подминавал.</p>

<p>Като сложна органична система, базирана на въглерод, Оскар е много висок, много слаб, с много дълга и много руса коса. И много сини очи.</p>

<p>Като програмист е&#8230; особен. Ползва emacs от времената, в които мъкнех по двайсетина 3½&#8220; дискети на три паса през Ботевград за да си запиша Heroes II. Играел си е с e-lisp когато аз пишех mIRC скриптове. И въпреки това, не бе отракан джавар. На кода му липсваше джавешки минимализъм. Пишеше си повечето неща сам. Не ползваше Eclipse. Често му се подигравах за йерархиите от класове, които бяха тромави и неуверени. Но в коментарите си бе артист.</p>

<p>Трудно ми е да измъкна и един пример, без да прозвучи глупаво извън контекст. Ant скриптът му започваше с &#8222;Нека <acronym title="измислено име за CEO-то на фирмана">Йоке Арнбори</acronym> да благослови този билд&#8220;. Навсякъде имаше кратички коментари, пропити със странното му чувство за хумор. &#8222;Things are starting to look precarious. Beware!&#8220;. Рядко бяха полезни, но беше огромен кеф да ги чета. Усещаше се, че кодът е писан от човек, а не генериран от машина. Можехте да добиете представа за него. Когато погледът ви минава през редовете Java, имате чувството че си беседвате с една странна, но любопитна личност. Беше изкуство. Отвскяде.</p>

<p>Сетих се за това, като четох <a href="http://poingnantguide.com/">това изключително въведение в Ruby</a>. Казваше &#8222;може да ползвате коментарите, за да си припомните настроението, в което сте били&#8220;. Бисер. И то в текст за машина, улавяща звезди през дупка в тавана, и лепяща ги на главите на оковани маймуни. Дъвчещи тебешир.</p>

<p>Сериозно. Не бях поглеждал на коментарите така. Като начин артистът да остави своя почерк в произведението, без иначе да наруши студената му, механична функционалонст. И въпреки, че възгледите ми за изкуство са малко по-различни, мога да оценя това в цялата му красота. Можете да го видите и в <a href="http://www.cpan.org/src/perl-5.8.8.tar.gz">кода на Perl</a>. Отворете който и да е <code>.c</code> файл и прочетете първите няколко реда. Наистина, щракнете на връзката, отворете архива и вижте коментарите. Кажете си дали ги одобрявате или не. И после се замислете хубаво в кой лагер се намирате. Този на скучните машинописци или в този на страстните програмисти.</p>

<p>Изпитвам голямо удовлетворение от работата с такъв код. Мотивира ме. Научавам много. Виждам че има хора, които не са сухи и огорчени занаятчии, гледащи работата и хобито си като досадно задължение, разпокъсващо пиенето, безразличието или противното им отношение към света. Виждам, че има хора, които си обичат занаята и го вършат със страст, със замах и най-вече, с <acronym title="fun">удоволствие</acronym>. И да, успяват да произведат нещо.</p>

<p>Но май се разсеях. Схващате. Коментарите могат да се ползват артистично. Забавно и приятно. Така че да радват програмиста отсреща. Да му правят деня по-добър. И да го тикат да бъде по-продуктивен.</p>

<p>Вече виждам как половин дузина скучни <acronym title="необходимо условие; не всички такива са скучни, но ако сте скучен, определено сте такъв">Java/PHP/C#</acronym> програмисти се отправят към формата за коментиране с нещо доволно предвидимо. Спестете си го, моля. Не твърдя, че това ще работи в голям екип или във вашата организация. Запознат съм и с опасността на коментари от рода на <code># R.I.P.L.V.B.</code>. Вероятно отвъд отворения код, ще работи само в малък екип от добри приятели, където всеки вярва на и уважава другия. Да, това го има в реалния свят, макар и да е рядкост.</p>

<p>И да, кодът може да бъде изкуство. Дори благодарение на коментарите.</p>
]]></content:encoded>
			<wfw:commentRss>http://skanev.com/2008/09/14/comments/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>
