<?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>Marius Barbulescu &#124; Freshcolors &#187; c++</title>
	<atom:link href="http://www.freshcolors.ro/blog/tag/c/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.freshcolors.ro/blog</link>
	<description>Vor încerca să ne-ntreacă, dar n-o să poată…</description>
	<lastBuildDate>Tue, 18 Jan 2011 12:00:33 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Standarde de codare</title>
		<link>http://www.freshcolors.ro/blog/2009/09/05/standarde-de-codare/</link>
		<comments>http://www.freshcolors.ro/blog/2009/09/05/standarde-de-codare/#comments</comments>
		<pubDate>Sat, 05 Sep 2009 09:29:55 +0000</pubDate>
		<dc:creator>M.B.</dc:creator>
				<category><![CDATA[Articole]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[c++]]></category>
		<category><![CDATA[coding standards]]></category>

		<guid isPermaLink="false">http://www.freshcolors.ro/blog/?p=262</guid>
		<description><![CDATA[În toate limbajele de programare există aşa numitele „Standarde de codare” (sau Coding Standards). În general există 2 standarde de codare, diferenţa constând în felul în care sunt poziţionate acoladele:
Primul stil (C++ Coding Standards):
function foo()
{
    echo 'bar';
}
După cum se observă, peste tot pe unde este necesară deschiderea unei acolade, aceasta se poziţionează [...]]]></description>
			<content:encoded><![CDATA[<p>În toate limbajele de programare există aşa numitele „Standarde de codare” (sau Coding Standards). În general există 2 standarde de codare, diferenţa constând în felul în care sunt poziţionate acoladele:</p>
<p>Primul stil (C++ Coding Standards):</p>
<pre class="brush:php">function foo()
{
    echo 'bar';
}</pre>
<p>După cum se observă, peste tot pe unde este necesară deschiderea unei acolade, aceasta se poziţionează pe rândul următor, închiderea ei făcându-se cu un rând mai jos decât ultima linie de cod a blocului respectiv, pe aceeaşi linie verticală cu perechea ei de începere. Foarte pe larg <a href="http://www.possibility.com/Cpp/CppCodingStandard.html">aici</a>.</p>
<p>Un exemplu complet de cod scris în acest stil ar putea arăta aşa:</p>
<pre class="brush:php">public function setParams( $params )
{
    if ( empty( $params ) )
    {
        $this-&gt;__request['params'] = null;
    }
    else
    {
        $keys = $values = array();
        $count = count( $params );

        for( $i = 0; $i &lt; $count; $i++ )
        {
            $param = $this-&gt;getAlpha( $params[$i] );
            $i % 2 == 0 ? $keys[] = $param : $values[] = $param;
        }

        $this-&gt;__request['params'] = array_combine( $keys, $values );
    }
}</pre>
<p>Avantaje:</p>
<ul>
<li>Lizibilitate sporită</li>
<li>Urmărire rapidă a codului, acoladele fiind poziţionate pe aceeaşi linie verticală</li>
</ul>
<p>Dezavantaje:</p>
<ul>
<li>Număr de linii mai mare ocupat de cod</li>
</ul>
<p>Cel de-al doilea stil (PEAR style):</p>
<pre class="brush:php">function bar() {
    echo 'foo';
}</pre>
<p>În acest caz, deschiderea acoladelor se face pe acelaşi rând cu instrucţiunea, iar închiderea ei se face la fel ca în primul caz. Descriere completă <a href="http://pear.php.net/manual/en/standards.php">aici</a>.</p>
<p>Un exemplu complet de cod s cris în acest stil ar putea arăta aşa:</p>
<pre class="brush:php">public function relative($offset) {
    // which absolute row number are we seeking
    $pos = $this-&gt;cursorPos + ($offset - 1);
    $ok = $this-&gt;seek($pos);

    if ($ok === false) {
        if ($pos &lt; 0) {
            $this-&gt;beforeFirst();
        } else {
            $this-&gt;afterLast();
        }
    } else {
        $ok = $this-&gt;next();
    }

    return $ok;
}
</pre>
<p>Avantaje:</p>
<ul>
<li>Număr de linii mai mic ocupat de cod</li>
</ul>
<p>Dezavantaje:</p>
<ul>
<li>Lizibilitatea este scăzută</li>
<li>Codul este greoi de urmărit, un factor fiind chiar poziţionarea acoladelor pe diagonală</li>
</ul>
<p>Pentru mine, cel mai bun stil de programare (şi cel pe care de altfel îl folosesc) este primul dintre cele două. Un prim factor în alegerea acestui stil a fost scrierea de cod curat şi uşor de urmărit, care să nu obosească ochii. Pe urmă, eu începând programarea cu C++, am utilizat intens acest stil şi m-am obişnuit cu el fără probleme.</p>
<p>Însă aceste standarde nu sunt bătute în cuie. Fiecare îşi poate defini propriul standard, pornind de la cele două şi adaptând după cum se simte mai bine. De exemplu, după cum se observă şi în a doua bucată de cod postată mai sus, eu am decis a utiliza şi o spaţiere permanentă, tocmai pentru a spori gradul de lizibilitate (pe larg despre stilul ăsta <a href="http://ez.no/ezpublish/documentation/development/standards/php">aici</a>).</p>
]]></content:encoded>
			<wfw:commentRss>http://www.freshcolors.ro/blog/2009/09/05/standarde-de-codare/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>

