<turbo-stream action="append" target="posts_list"><template>    <div class="postbit" id="340140" data-post-id="340140">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="AstonJ" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/AstonJ/120/15_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  AstonJ
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>We already have a blog section (this one). Instructions (and details) of how to post individual threads in the first post of this thread: <a href="https://forum.elixirforum.com/t/elixir-blog-posts/150" class="inline-onebox" rel="nofollow">Elixir Blog Posts</a></p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="340140" data-batch-url="/posts/batch_likers">
                        0
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/elixir-blog-posts/150/1139">Post #1138</a>
	                </div>
	            </div>
              <div id="likers-container-340140" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="340140"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #1138"></div>
  </section>
</div>
    <div class="postbit" id="340141" data-post-id="340141">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="zachdaniel" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/zachdaniel/120/31980_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  zachdaniel
                  </h3>
		          </div>
						
			          <div class="user-title">
									<span>Creator of Ash</span>
			          </div>
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Yep. You’re right. It’s plain as day. Sorry for the summon <img src="https://forum.elixirforum.com/images/emoji/apple/slight_smile.png?v=15" title=":slight_smile:" class="emoji" alt=":slight_smile:" loading="lazy" width="20" height="20"></p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="340141" data-batch-url="/posts/batch_likers">
                        1
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/elixir-blog-posts/150/1140">Post #1139</a>
	                </div>
	            </div>
              <div id="likers-container-340141" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="340141"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #1139"></div>
  </section>
</div>
    <div class="postbit" id="340146" data-post-id="340146">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="sodapopcan" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/sodapopcan/120/34668_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  sodapopcan
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Ehnnnnn, I have questions and statements regarding this!</p>
<p>I’m sure you have thought all of this through but I want to write it out anyway:</p>
<p>First off, <a href="https://forum.elixirforum.com/t/elixir-blog-posts/150" rel="nofollow">this</a> a lot of text for people simply looking to share a blog post.  <em>This isn’t necessary a bad thing</em>, except that within the first sentence I personally find it a bit confusing, specifically:</p>
<blockquote>
<p>or, if you want a dedicated thread for each blog/podcast, via <a href="http://Devtalk.com" rel="noopener nofollow ugc">Devtalk.com</a></p>
</blockquote>
<p>Does this mean that if I want a dedicated thread I <em>have</em> to post to <a href="http://devtalk.com" rel="nofollow">devtalk.com</a>?  This is how I interpret this but would it be ok to just create a dedicated post here on its own?  First off, I may just be old, but I don’t even know what <a href="http://devtalk.com" rel="nofollow">devtalk.com</a> is.  A quick look at it homepages gives me “meh” vibes and while an endorsement from this forum holds significant weight, in the end it’s just another site I need to create and account for.</p>
<p>Speaking of which:</p>
<blockquote>
<p>Ensure your account on <a href="http://Devtalk.com" rel="noopener nofollow ugc">Devtalk.com</a> has the same username and primary email as your account here</p>
</blockquote>
<p>What if your Elixir Forum username is unavailable on devtalk?  Now you have to make an alternate account here which–beyond the reputation/visibility-based consequences–is just annoying.  So many accounts!</p>
<p>I’m sure you have thought through allll of this, but it would be so much easier if the barrier to entry was “Make a dedicated thread and make sure you post it in the ‘Blog Posts’ section OR ELSE”</p>
<p>(I’m kidding about the OR ELSE part)</p>
<p>This forum could still get good exposure if writers are encouraged to add “Discuss on <a href="http://forum.elixirforum.com" rel="nofollow">forum.elixirforum.com</a>” to their posts with a link to the dedicated thread where there is a high chance there will be comments and if not, at least some up votes.</p>
<p>On the flipside perhaps this has been tried and it created a moderator’s nightmare.  If that’s the case then I have no argument here <img src="https://forum.elixirforum.com/images/emoji/apple/slight_smile.png?v=15" title=":slight_smile:" class="emoji" alt=":slight_smile:" loading="lazy" width="20" height="20">  Perhaps there is a public place this has all been hashed out before?</p>
<p>Respect for all that you do, mods <img src="https://forum.elixirforum.com/images/emoji/apple/heart.png?v=15" title=":heart:" class="emoji" alt=":heart:" loading="lazy" width="20" height="20"></p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="340146" data-batch-url="/posts/batch_likers">
                        1
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/elixir-blog-posts/150/1141">Post #1140</a>
	                </div>
	            </div>
              <div id="likers-container-340146" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="340146"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #1140"></div>
  </section>
</div>
    <div class="postbit" id="340149" data-post-id="340149">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="zachdaniel" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/zachdaniel/120/31980_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  zachdaniel
                  </h3>
		          </div>
						
			          <div class="user-title">
									<span>Creator of Ash</span>
			          </div>
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>On this topic, I can’t actually seem to follow these instructions.</p>
<ul>
<li><strong>On thread creation paste the URL of your blog post or podcast in the TITLE field</strong> (once the URL appears in the body field below you can then change the title to whatever you like)</li>
</ul>
<p></p><div class="lightbox-wrapper"><a class="lightbox" href="https://forum.elixirforum.com/uploads/default/original/3X/9/a/9a18642fc36e54983b5ffea57add141e0dfab7b2.png" data-download-href="https://forum.elixirforum.com/uploads/default/9a18642fc36e54983b5ffea57add141e0dfab7b2" title="CleanShot 2024-09-17 at 22.31.59" rel="nofollow"><img src="https://forum.elixirforum.com/uploads/default/optimized/3X/9/a/9a18642fc36e54983b5ffea57add141e0dfab7b2_2_690x321.png" alt="CleanShot 2024-09-17 at 22.31.59" data-base62-sha1="lZbMTHp6jcowMHXdUVs0cztNKRY" width="690" height="321" srcset="https://forum.elixirforum.com/uploads/default/optimized/3X/9/a/9a18642fc36e54983b5ffea57add141e0dfab7b2_2_690x321.png, https://forum.elixirforum.com/uploads/default/original/3X/9/a/9a18642fc36e54983b5ffea57add141e0dfab7b2.png 1.5x, https://forum.elixirforum.com/uploads/default/original/3X/9/a/9a18642fc36e54983b5ffea57add141e0dfab7b2.png 2x" data-dominant-color="F6F9FA"><div class="meta"><svg class="fa d-icon d-icon-far-image svg-icon" aria-hidden="true"><use href="#far-image"></use></svg><span class="filename">CleanShot 2024-09-17 at 22.31.59</span><span class="informations">868×405 22.5 KB</span><svg class="fa d-icon d-icon-discourse-expand svg-icon" aria-hidden="true"><use href="#discourse-expand"></use></svg></div></a></div><p></p>
<p>I’m trying to create a new topic in the relevant section, and nothing is happening when I paste the URL of my blog post into the title field. I notice the verbiage in the instructions is “thread creation” but this is “topic creation”. Am I in the wrong place?</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="340149" data-batch-url="/posts/batch_likers">
                        0
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/elixir-blog-posts/150/1142">Post #1141</a>
	                </div>
	            </div>
              <div id="likers-container-340149" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="340149"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #1141"></div>
  </section>
</div>
    <div class="postbit" id="340151" data-post-id="340151">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="AstonJ" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/AstonJ/120/15_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  AstonJ
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Yes all that was thought about - did you read the announcement linked at the bottom of the instructions <a href="https://forum.elixirforum.com/t/calling-all-beam-bloggers/33152" class="inline-onebox" rel="nofollow">Calling all BEAM Bloggers!</a> (it has all the details).</p>
<p><em>The Devtalk system is only temporary, when we move to our custom platform everything will be on site (you’ll be able to hide certain types of content from certain people, certain types of threads will be prevented from dominating the forum, etc)</em></p>
<p><a class="mention" href="/u/zachdaniel" rel="nofollow">@zachdaniel</a>, you were on TL0, I’ve manually upgraded you to TL1 so it should work now <img src="https://forum.elixirforum.com/uploads/default/original/2X/a/a1c41c89c299189a3f85edfeb4973563d8bac781.gif?v=15" title=":023:" class="emoji emoji-custom" alt=":023:" loading="lazy" width="20" height="20"></p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="340151" data-batch-url="/posts/batch_likers">
                        2
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/elixir-blog-posts/150/1143">Post #1142</a>
	                </div>
	            </div>
              <div id="likers-container-340151" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="340151"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #1142"></div>
  </section>
</div>
    <div class="postbit" id="340177" data-post-id="340177">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="sodapopcan" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/sodapopcan/120/34668_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  sodapopcan
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<aside class="quote no-group quote-modified" data-username="AstonJ" data-post="1143" data-topic="150">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/astonj/48/15_2.png" class="avatar"> AstonJ:</div>
<blockquote>
<p>did you read the announcement linked at the bottom of the instructions <a href="https://forum.elixirforum.com/t/calling-all-beam-bloggers/33152" rel="nofollow">Calling all BEAM Bloggers!</a></p>
</blockquote>
</aside>
<p>Nope, but I have now and yes, it explains everything!</p>
<aside class="quote no-group" data-username="AstonJ" data-post="1143" data-topic="150">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/astonj/48/15_2.png" class="avatar"> AstonJ:</div>
<blockquote>
<p>The Devtalk system is only temporary, when we move to our custom platform everything will be on site (you’ll be able to hide certain types of content from certain people, certain types of threads will be prevented from dominating the forum, etc)</p>
</blockquote>
</aside>
<p>Awesome, thanks Aston!  Sorry for the long ping.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="340177" data-batch-url="/posts/batch_likers">
                        1
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/elixir-blog-posts/150/1144">Post #1143</a>
	                </div>
	            </div>
              <div id="likers-container-340177" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="340177"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #1143"></div>
  </section>
</div>
    <div class="postbit" id="340401" data-post-id="340401">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="martosaur" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/martosaur/120/41071_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  martosaur
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>I feel like I had this discussion enough times to put my thought into writing. It’s totally ok to repeat yourself (in tests).</p>
<aside class="onebox allowlistedgeneric" data-onebox-src="https://distantprovince.by/posts/do-repeat-yourself/">
  <header class="source">

      <a href="https://distantprovince.by/posts/do-repeat-yourself/" target="_blank" rel="noopener nofollow ugc">distantprovince.by</a>
  </header>

  <article class="onebox-body">
    <div class="aspect-image" style="--aspect-ratio:690/362;"><img src="https://distantprovince.by/preview/do-repeat-yourself.jpg" class="thumbnail" alt="" width="690" height="362"></div>

<h3><a href="https://distantprovince.by/posts/do-repeat-yourself/" target="_blank" rel="noopener nofollow ugc">Do Repeat Yourself | Alex Martsinovich</a></h3>

  <p>One of the few strong opinions I have is that it's not only acceptable but highly desirable to copy code around when you're writing tests.</p>


  </article>

  <div class="onebox-metadata">
    
    
  </div>

  <div style="clear: both"></div>
</aside>
 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="340401" data-batch-url="/posts/batch_likers">
                        7
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/elixir-blog-posts/150/1145">Post #1144</a>
	                </div>
	            </div>
              <div id="likers-container-340401" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="340401"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #1144"></div>
  </section>
</div>
    <div class="postbit" id="340403" data-post-id="340403">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="sodapopcan" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/sodapopcan/120/34668_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  sodapopcan
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<blockquote>
<p>Next time you are tempted to create a test helper, think twice. Maybe it makes total sense now. Sure, it’s just one click away… No! Stop! People don’t open test files because they just feel like doing it. They do it because a test fails, and by this time they’re already annoyed. Not only do they not want to read more than one test at a time, they will actively avoid doing so! Every function that’s defined somewhere will make their eyes roll. Every setup they need to scroll to will make them angry. And if their rushed fix to a shared setup breaks another test? They may just delete it, because code reviewers have even less incentive to read it.</p>
</blockquote>
<p><em>“If someone is reading this code, they are already annoyed”</em> is a metric I think about a lot in terms of abstracting/extracting code and I have a <em>very</em> hard time articulating it to people.  A lot of what you’ve written applies outside of testing AFAIC.  I have come to really detest not only excess test helpers but excess helpers in general.</p>
<p>One simple example is that when it comes to constructing options to be passed to a <code>select</code> input, I have <em>lot</em> of this in all of my projects:</p>
<pre data-code-wrap="elixir"><code class="lang-elixir">foo_options = Enum.map(foos, &amp;{&amp;1.name, &amp;1.id})
</code></pre>
<p>Of course we could extract this to a helper:</p>
<pre data-code-wrap="elixir"><code class="lang-elixir">def make_options(schema), do: Enum.map(foos, &amp;{&amp;1.name, &amp;1.id})
</code></pre>
<p>This sucks, though.  Not only is the “name” default hidden (even if the most ubiquitous), but non-annoyed readers are going to have to make a jump (another metric I think a lot about) to be confident they know what’s going on.</p>
<p>And now crap, this one place uses a different field, so now we have to introduce an option to the helper:</p>
<pre data-code-wrap="elixir"><code class="lang-elixir">def make_options(schema, label_field \\ :name) do
  Enum.map(foos, &amp;{Keyword.get(&amp;1, label_field), &amp;1.id})
end
</code></pre>
<p>…and what if the <code>id</code> field needs to change?</p>
<p>Anyway, it’s so much simpler and more readable to just call <code>Enum.map(foos, &amp;{&amp;1.name, &amp;1.id})</code> everywhere.  If the API for the <code>select</code> dropdown ever changes, I will gladly pay the one time cost of having to manually update everything (tests help there).  This is just one example—I generally write a fraction of the helpers I used to.  Same goes for extracting constants.</p>
<p>In any event, nice article.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="340403" data-batch-url="/posts/batch_likers">
                        2
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/elixir-blog-posts/150/1146">Post #1145</a>
	                </div>
	            </div>
              <div id="likers-container-340403" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="340403"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #1145"></div>
  </section>
</div>
    <div class="postbit" id="340448" data-post-id="340448">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="derek-zhou" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/derek-zhou/120/19943_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  derek-zhou
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<aside class="quote no-group" data-username="sodapopcan" data-post="1146" data-topic="150">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/sodapopcan/48/34668_2.png" class="avatar"> sodapopcan:</div>
<blockquote>
<p>I have come to really detest not only excess test helpers but excess helpers in general.</p>
</blockquote>
</aside>
<p>“excess” is subjective. I have different thresholds for same module private helper functions and public helper functions collected in a separate module. For the first kind, anything that make the logic flow nicer is good. For the second kind the bar is much higher: it has to be a good abstraction as well.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="340448" data-batch-url="/posts/batch_likers">
                        2
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/elixir-blog-posts/150/1147">Post #1146</a>
	                </div>
	            </div>
              <div id="likers-container-340448" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="340448"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #1146"></div>
  </section>
</div>
    <div class="postbit" id="340452" data-post-id="340452">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="sodapopcan" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/sodapopcan/120/34668_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  sodapopcan
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Ya, to each their own always, I just hate ending up with a massive bag of one liner helper functions.  And of course small single-use private functions are always a thing, but I think that has been discussed enough on this forum.  But I always have to mention the following single use private function (in a very small file) in a Ruby project I worked on years ago:</p>
<pre data-code-wrap="elixir"><code class="lang-elixir">def raise_unless_user_valid
  raise unless user.valid?
end
</code></pre>
<p>sigh</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="340452" data-batch-url="/posts/batch_likers">
                        3
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/elixir-blog-posts/150/1148">Post #1147</a>
	                </div>
	            </div>
              <div id="likers-container-340452" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="340452"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #1147"></div>
  </section>
</div>
</template></turbo-stream><turbo-stream action="replace" target="load-more-container"><template><div id="load-more-container" class="load-more-container">
    <a class="load-more-button" data-turbo-stream="true" href="/topics/150/load_more?page=109">Load more posts (141 remaining)</a>
</div></template></turbo-stream>