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


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Hi Pedro,</p>
<p>Probably I am bit late here, but I was just googling for “TDD Elixir” and I found this thread. I am deeply interested in topics like these.</p>
<p>Few years ago I started a <a rel="nofollow">Twitch Channel</a> with the intent to show others how it is possible to apply practices like <strong>Clean Code, TDD and Refactoring</strong> as a support to learn a new programming language.</p>
<p>I decided to learn Elixir: starting from the basics of the language, the I did some programming session on Code Katas, and at the end I had the chance to push some little contributions to different open source projects, meet and learn from more experienced people. In general, an 100% nice experience! <a href="https://github.com/joebew42?utf8=%E2%9C%93&amp;tab=repositories&amp;q=&amp;type=&amp;language=elixir" rel="noopener nofollow ugc">Here you can access to several examples of my journey in learning Elixir with TDD</a>.</p>
<p>As a result, I wanted to create a talk (unfortunately it’s only available in Italian) where I shared the process that I followed to learn a new programming language doing TDD:</p>
<div class="youtube-onebox lazy-video-container" data-video-id="r9b8LsKrQqY" data-video-title="Apprendi un nuovo linguaggio sfruttando il TDD e il Clean Code - Joe Bew - Codemotion Milan 2017" data-video-start-time="" data-provider-name="youtube">
  <a href="https://www.youtube.com/watch?v=r9b8LsKrQqY" target="_blank" class="video-thumbnail" rel="noopener nofollow ugc">
    <img class="youtube-thumbnail" src="https://img.youtube.com/vi/r9b8LsKrQqY/maxresdefault.jpg" title="Apprendi un nuovo linguaggio sfruttando il TDD e il Clean Code - Joe Bew - Codemotion Milan 2017" width="690" height="388">
  </a>
</div>
<p>
Eventually, I would like to propose an updated version of this talk, in english!</p>
<p>I remember also a talk from <a class="mention" href="/u/gpad" rel="nofollow">@gpad</a> on TDD and Elixir, from the last Code Beam STO 2019</p>
<div class="youtube-onebox lazy-video-container" data-video-id="AVKpChQoXXE" data-video-title="Gianluca Padovani - TDD is not about testing | Code BEAM STO 19" data-video-start-time="" data-provider-name="youtube">
  <a href="https://www.youtube.com/watch?v=AVKpChQoXXE" target="_blank" class="video-thumbnail" rel="noopener nofollow ugc">
    <img class="youtube-thumbnail" src="https://img.youtube.com/vi/AVKpChQoXXE/maxresdefault.jpg" title="Gianluca Padovani - TDD is not about testing | Code BEAM STO 19" width="690" height="388">
  </a>
</div>

<p>Now, after more than one year I started to work for a company where we play daily with Elixir and I learned something more about how is it possible to apply TDD (new tools, new libraries, what works, what don’t, etc …). And it’s time to share something, again.</p>
<p>I will give a speech at the next <a href="https://www.meetup.com/L-O-B-Stockholm/events/264887137/" rel="noopener nofollow ugc">Beam Languages United - Stockholm Meetup</a> with a <strong>practical example of TDD Outside-In in Elixir</strong>.</p>
<p>The session should be recorded and then uploaded on YouTube, from the organizers of the meetup. I will ask.</p>
<p>By the way, I will then upload an offline session on YouTube also, with only the desktop, the code and my voice. Something similar to <a href="https://www.youtube.com/watch?v=pmoLmjirmTk" rel="noopener nofollow ugc">this</a>.</p>
<p>I am still learning, it’s an interesting journey and I am absolute available to share experience with anyone else interested in these topics.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="149771" 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/good-elixir-tdd-resources/17482/32">Post #31</a>
	                </div>
	            </div>
              <div id="likers-container-149771" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="149771"
                     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 #31"></div>
  </section>
</div>
    <div class="postbit" id="149936" data-post-id="149936">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="Fl4m3Ph03n1x" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/Fl4m3Ph03n1x/120/11709_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  Fl4m3Ph03n1x
                    <span class="op-star" title="Thread Starter">
                      <img alt="OP" class="op-star-icon" src="/assets/thread-icons/thread-icon-thread-starter-df91e872.png" />
                    </span>
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Hello <a class="mention" href="/u/joebew42" rel="nofollow">@joebew42</a> I am happy to know you are also interested in the Elixir meetup, I truly hope you have a great experience.</p>
<p>Regarding the talks, I recommend you post them to  the <a href="https://forum.elixirforum.com/c/learning-resources/talks" rel="nofollow">Talks</a> section of this forum, where more people are likely to see them!</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="149936" 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/good-elixir-tdd-resources/17482/33">Post #32</a>
	                </div>
	            </div>
              <div id="likers-container-149936" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="149936"
                     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 #32"></div>
  </section>
</div>
    <div class="postbit" id="149976" data-post-id="149976">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>At this point what is your favorite Phoenix book?  Elixir book?</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="149976" 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/good-elixir-tdd-resources/17482/34">Post #33</a>
	                </div>
	            </div>
              <div id="likers-container-149976" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="149976"
                     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 #33"></div>
  </section>
</div>
    <div class="postbit" id="149997" data-post-id="149997">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="tme_317" src="/assets/icons/user-9f439610.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  tme_317
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Hi <a class="mention" href="/u/mchean" rel="nofollow">@mchean</a>,</p>
<p>My favorite Phoenix book is <em>Programming Phoenix &gt;= 1.4</em>.  Elixir books are <em>Programming Elixir &gt;= 1.6</em> and <em>Elixir in Action, 2nd ed</em> when starting out and I’m really enjoying <em>Designing Elixir Systems with OTP</em> for more advanced architectural patterns.  Finally <em>Programming Ecto</em> is excellent.</p>
<p>In my earlier post (since the thread relates to TDD specifically) I also recommended <em>Mastering Phoenix Framework</em> since <a class="mention" href="/u/shankardevy" rel="nofollow">@shankardevy</a> uses TDD on every iteration including E2E testing with Hound.  Other books cover testing but I haven’t found any that focus on it as comprehensively as he does.  Hope this helps!</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="149997" 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/good-elixir-tdd-resources/17482/35">Post #34</a>
	                </div>
	            </div>
              <div id="likers-container-149997" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="149997"
                     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 #34"></div>
  </section>
</div>
    <div class="postbit" id="150001" data-post-id="150001">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Just to add that the book</p>
<aside class="quote no-group" data-username="tme_317" data-post="35" data-topic="17482">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/letter_avatar_proxy/v4/letter/t/0ea827/48.png" class="avatar"> tme_317:</div>
<blockquote>
<p><em>Mastering Phoenix Framework</em></p>
</blockquote>
</aside>
<p>is free to read here…</p>
<p><a href="https://shankardevy.com/phoenix-inside-out-mpf/#mastering-phoenix-framework" class="onebox" target="_blank" rel="noopener nofollow">https://shankardevy.com/phoenix-inside-out-mpf/#mastering-phoenix-framework</a></p>
<p>as mentionned in this post.</p>
<aside class="quote quote-modified" data-post="1" data-topic="24323">
  <div class="title">
    <div class="quote-controls"></div>
    <img alt="" width="24" height="24" src="https://forum.elixirforum.com/letter_avatar_proxy/v4/letter/p/ac8455/48.png" class="avatar">
    <div class="quote-title__text-content">
      <a href="https://forum.elixirforum.com/t/read-the-online-version-of-shankar-dhanasekarans-mastering-phoenix-framework-for-free/24323" rel="nofollow">Read the online version of Shankar Dhanasekaran's, Mastering Phoenix Framework for free</a> <a class="badge-category__wrapper " href="/c/chat-discussions/chat-discussions/167" rel="nofollow"><span data-category-id="167" style="--category-badge-color: #cca771; --category-badge-text-color: #FFFFFF; --parent-category-badge-color: #cca771;" data-parent-category-id="165" data-drop-close="true" class="badge-category --style-square --has-parent"><span class="badge-category__name">Discussions</span></span></a>
    </div>
  </div>
  <blockquote>
    Shankar Dhanasekaran releases the HTML (online) version of his famous book Mastering Phoenix Framework for free at <a href="https://shankardevy.com/phoenix-inside-out-mpf/" rel="noopener nofollow ugc">this link</a>. 
I was lucky to read this book since its first version and in my opinion it’s one of the best books Elixir community will ever have. 
The book creates a complete E-Commerce application using the test driven approach with unit tests and acceptance tests using the Hound library, and Phantomjs as the headless browser. 
It’s of course a great news for people who just started …
  </blockquote>
</aside>
 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="150001" 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/good-elixir-tdd-resources/17482/36">Post #35</a>
	                </div>
	            </div>
              <div id="likers-container-150001" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="150001"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-last-post cat-last-post" title="Last post!"></div>
  </section>
</div>
</template></turbo-stream><turbo-stream action="replace" target="load-more-container"><template><div id="load-more-container" class="load-more-container">
    <span class="all-loaded">— All posts loaded —</span>
</div></template></turbo-stream>