<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Programming on Pavan Yara</title><link>https://pavanyara.com/tags/programming/</link><description>Recent content in Programming on Pavan Yara</description><generator>Hugo -- gohugo.io</generator><language>en-US</language><managingEditor>pavan.yara@gmail.com (Pavan Yara)</managingEditor><webMaster>pavan.yara@gmail.com (Pavan Yara)</webMaster><copyright>Pavan Yara</copyright><lastBuildDate>Thu, 17 Oct 2019 20:54:53 +0530</lastBuildDate><atom:link href="https://pavanyara.com/tags/programming/index.xml" rel="self" type="application/rss+xml"/><item><title>Programming principles for early stage startups</title><link>https://pavanyara.com/blog/programming-principles-startups/</link><pubDate>Thu, 17 Oct 2019 20:54:53 +0530</pubDate><author>pavan.yara@gmail.com (Pavan Yara)</author><guid>https://pavanyara.com/blog/programming-principles-startups/</guid><description>&lt;ol&gt;&#10;&lt;li&gt;Expect to re-write your code and do not over architecture.&lt;/li&gt;&#10;&lt;li&gt;Use consistency and agree upon the rules.&lt;/li&gt;&#10;&lt;li&gt;Solve system problems, not the immediate problem.&lt;/li&gt;&#10;&lt;li&gt;Keep sprints short and features small.&lt;/li&gt;&#10;&lt;li&gt;Focus on good database design.&lt;/li&gt;&#10;&lt;li&gt;Avoid processes that add too much overhead.&lt;/li&gt;&#10;&lt;li&gt;Document your code using 2 styles - self documenting or inline&#10;documentation&lt;/li&gt;&#10;&lt;li&gt;Build microservices over large monethletic codebase&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;p&gt;Source: &lt;a href="https://medium.com/helium-mvc/programming-principles-for-early-stage-startups-1215ad14bcb8"&gt;https://medium.com/helium-mvc/programming-principles-for-early-stage-startups-1215ad14bcb8&lt;/a&gt;&lt;/p&gt;</description><content:encoded><![CDATA[<ol>
<li>Expect to re-write your code and do not over architecture.</li>
<li>Use consistency and agree upon the rules.</li>
<li>Solve system problems, not the immediate problem.</li>
<li>Keep sprints short and features small.</li>
<li>Focus on good database design.</li>
<li>Avoid processes that add too much overhead.</li>
<li>Document your code using 2 styles - self documenting  or inline
documentation</li>
<li>Build microservices over large monethletic codebase</li>
</ol>
<p>Source: <a href="https://medium.com/helium-mvc/programming-principles-for-early-stage-startups-1215ad14bcb8">https://medium.com/helium-mvc/programming-principles-for-early-stage-startups-1215ad14bcb8</a></p>
]]></content:encoded></item><item><title>Things I Learnt The Hard Way (in 30 Years of Software Development)</title><link>https://pavanyara.com/blog/things-learnt-the-hard-way-programming/</link><pubDate>Fri, 28 Jun 2019 19:39:07 +0530</pubDate><author>pavan.yara@gmail.com (Pavan Yara)</author><guid>https://pavanyara.com/blog/things-learnt-the-hard-way-programming/</guid><description>&lt;p&gt;This is a cynical, clinical collection of things Julia Biason learnt in 30 years working with software development.&lt;/p&gt;&#10;&lt;p&gt;Again, some things are really cynical, others are long observations on different jobs.&lt;/p&gt;&#10;&lt;h2 id="before-you-start-writing-code"&gt;Before you start writing code&amp;hellip;&lt;/h2&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;Spec First, Then Code&lt;/li&gt;&#10;&lt;li&gt;Write Steps as Comments&lt;/li&gt;&#10;&lt;li&gt;Gherkin Is Your Friend to Understand Expectations&lt;/li&gt;&#10;&lt;li&gt;Design Patters Are Used to Name Solution, Not Find Them&lt;/li&gt;&#10;&lt;li&gt;Thinking Data Flow Beats Patterns&lt;/li&gt;&#10;&lt;li&gt;The Magic Number Seven, Plus Or Minus Two&lt;/li&gt;&#10;&lt;li&gt;Cognitive Cost Is The Readability Killer&lt;/li&gt;&#10;&lt;li&gt;Learn The Basics of Functional Programming&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h2 id="testing-software"&gt;Testing Software&lt;/h2&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;Unit Tests Are Good, Integration Tests Are Gooder&lt;/li&gt;&#10;&lt;li&gt;Testing Every Function Creates Dead Code&lt;/li&gt;&#10;&lt;li&gt;Tests Make Better APIs&lt;/li&gt;&#10;&lt;li&gt;Make Tests That You Know How To Run On The Command Line&lt;/li&gt;&#10;&lt;li&gt;Good Languages Come With Tests&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h2 id="documenting-your-code"&gt;Documenting your code&lt;/h2&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;Documentation Is A Love Letter To Your Future Self&lt;/li&gt;&#10;&lt;li&gt;The Function Documentation Is Its Contract&lt;/li&gt;&#10;&lt;li&gt;If A Function Description Includes An &amp;ldquo;And&amp;rdquo;, It&amp;rsquo;s Wrong&lt;/li&gt;&#10;&lt;li&gt;Good Languages Come With Integrated Documentation&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h2 id="writing-code"&gt;Writing code&lt;/h2&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;Be Ready To Throw Your Code Away&lt;/li&gt;&#10;&lt;li&gt;Future Thinking Is Future Trashing&lt;/li&gt;&#10;&lt;li&gt;Don&amp;rsquo;t Use Booleans As Parameters&lt;/li&gt;&#10;&lt;li&gt;Beware of Interface Changes&lt;/li&gt;&#10;&lt;li&gt;It&amp;rsquo;s Better To Let The Application Crash Than Do Nothing&lt;/li&gt;&#10;&lt;li&gt;If You Know How To Handle It, Handle It&lt;/li&gt;&#10;&lt;li&gt;Types Say What Your Data Is&lt;/li&gt;&#10;&lt;li&gt;If Your Data Has a Schema, Use a Structure&lt;/li&gt;&#10;&lt;li&gt;Don&amp;rsquo;t Mess With Things Outside Your Project&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;More:&lt;/p&gt;</description><content:encoded><![CDATA[<p>This is a cynical, clinical collection of things Julia Biason learnt in 30 years working with software development.</p>
<p>Again, some things are really cynical, others are long observations on different jobs.</p>
<h2 id="before-you-start-writing-code">Before you start writing code&hellip;</h2>
<ul>
<li>Spec First, Then Code</li>
<li>Write Steps as Comments</li>
<li>Gherkin Is Your Friend to Understand Expectations</li>
<li>Design Patters Are Used to Name Solution, Not Find Them</li>
<li>Thinking Data Flow Beats Patterns</li>
<li>The Magic Number Seven, Plus Or Minus Two</li>
<li>Cognitive Cost Is The Readability Killer</li>
<li>Learn The Basics of Functional Programming</li>
</ul>
<h2 id="testing-software">Testing Software</h2>
<ul>
<li>Unit Tests Are Good, Integration Tests Are Gooder</li>
<li>Testing Every Function Creates Dead Code</li>
<li>Tests Make Better APIs</li>
<li>Make Tests That You Know How To Run On The Command Line</li>
<li>Good Languages Come With Tests</li>
</ul>
<h2 id="documenting-your-code">Documenting your code</h2>
<ul>
<li>Documentation Is A Love Letter To Your Future Self</li>
<li>The Function Documentation Is Its Contract</li>
<li>If A Function Description Includes An &ldquo;And&rdquo;, It&rsquo;s Wrong</li>
<li>Good Languages Come With Integrated Documentation</li>
</ul>
<h2 id="writing-code">Writing code</h2>
<ul>
<li>Be Ready To Throw Your Code Away</li>
<li>Future Thinking Is Future Trashing</li>
<li>Don&rsquo;t Use Booleans As Parameters</li>
<li>Beware of Interface Changes</li>
<li>It&rsquo;s Better To Let The Application Crash Than Do Nothing</li>
<li>If You Know How To Handle It, Handle It</li>
<li>Types Say What Your Data Is</li>
<li>If Your Data Has a Schema, Use a Structure</li>
<li>Don&rsquo;t Mess With Things Outside Your Project</li>
</ul>
<p>More:</p>
<ul>
<li><a href="https://blog.juliobiason.net/thoughts/things-i-learnt-the-hard-way/">https://blog.juliobiason.net/thoughts/things-i-learnt-the-hard-way/</a></li>
<li><a href="https://blog.juliobiason.net/books/things-i-learnt/">https://blog.juliobiason.net/books/things-i-learnt/</a></li>
</ul>
]]></content:encoded></item></channel></rss>