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


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Contexts don’t go far enough IMO. They give you the worst of both worlds.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="36357" 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/contexts-a-barrier-too-high-for-newbies/5929/32">Post #31</a>
	                </div>
	            </div>
              <div id="likers-container-36357" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="36357"
                     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="36362" data-post-id="36362">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<aside class="quote no-group" data-username="AlexMcConnell" data-post="31" data-topic="5929">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/alexmcconnell/48/3875_2.png" class="avatar"> AlexMcConnell:</div>
<blockquote>
<p>Should the code refuse to compile if a function is over X lines or uses nested ifs?</p>
</blockquote>
</aside>
<p>Maybe not compiling it a bit too harsh, but a warning would be nice <img src="https://forum.elixirforum.com/images/emoji/apple/wink.png?v=15" title=":wink:" class="emoji" alt=":wink:" loading="lazy" width="20" height="20"> Still Phoenix do exactly nothing when you don’t use context, it does allow you to not use them. So it’s not comparable.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="36362" 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/contexts-a-barrier-too-high-for-newbies/5929/33">Post #32</a>
	                </div>
	            </div>
              <div id="likers-container-36362" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="36362"
                     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="36365" data-post-id="36365">
  <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">
								<aside class="quote no-group" data-username="net" data-post="32" data-topic="5929" data-full="true">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/net/48/429_2.png" class="avatar"> net:</div>
<blockquote>
<p>Contexts don’t go far enough IMO. They give you the worst of both worlds.</p>
</blockquote>
</aside>
<p>Please be more constructive. If you feel they have shortcomings, please explain what you feel those shortcomings are. If you feel they can be improved, please lay out your proposals on how that can be achieved, thanks.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="36365" data-batch-url="/posts/batch_likers">
                        8
                      </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/contexts-a-barrier-too-high-for-newbies/5929/34">Post #33</a>
	                </div>
	            </div>
              <div id="likers-container-36365" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="36365"
                     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="36373" data-post-id="36373">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<aside class="quote no-group" data-username="AlexMcConnell" data-post="31" data-topic="5929">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/alexmcconnell/48/3875_2.png" class="avatar"> AlexMcConnell:</div>
<blockquote>
<p>I dunno. It just seems to me like it’s a situation for best practices. Should the code refuse to compile if a function is over X lines or uses nested ifs?</p>
</blockquote>
</aside>
<p>That’s not the goal of the compiler. It is probably the goal of a framework though.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="36373" 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/contexts-a-barrier-too-high-for-newbies/5929/35">Post #34</a>
	                </div>
	            </div>
              <div id="likers-container-36373" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="36373"
                     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="36376" data-post-id="36376">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<aside class="quote no-group" data-username="AlexMcConnell" data-post="1" data-topic="5929">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/alexmcconnell/48/3875_2.png" class="avatar"> AlexMcConnell:</div>
<blockquote>
<p>The reason that Rails is as popular as it is is because it’s very easy for relatively inexperienced developers to get a lot of work done.</p>
</blockquote>
</aside>
<p>Even if we take this statement at face value one would hope that at a decent number of entities the decisions at least in part are driven by experienced developers so there is nothing wrong with having a framework that is better understood by people with some experience.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="36376" 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/contexts-a-barrier-too-high-for-newbies/5929/36">Post #35</a>
	                </div>
	            </div>
              <div id="likers-container-36376" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="36376"
                     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 #35"></div>
  </section>
</div>
    <div class="postbit" id="36377" data-post-id="36377">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="sasajuric" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/sasajuric/120/991_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  sasajuric
                  </h3>
		          </div>
						
			          <div class="user-title">
									<span>Author of Elixir In Action</span>
			          </div>
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<aside class="quote no-group" data-username="AlexMcConnell" data-post="25" data-topic="5929">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/alexmcconnell/48/3875_2.png" class="avatar"> AlexMcConnell:</div>
<blockquote>
<p>The first word is productive, and not holding people’s hands isn’t compromising on maintainability. If people choose to build non-modular code (which they will still do with contexts anyway), that’s on them, not on Phoenix. Phoenix hasn’t compromised a thing by not trying to steer them to the right place.</p>
</blockquote>
</aside>
<p>I could also point out that there are no technical reasons for endpoints, routers, controllers, and views. You could have all of this functionality implemented in a single module. Surely grasping a “hello world” web app powered by one module would be easier, due to less moving parts. If short-term productivity (which I personally like to call seductiveness) was the only goal, Phoenix would be failing consistently from the day 1.</p>
<p>Moreover, my experience is that one can frequently gain short-term productivity by sacrificing maintainability, so to some extent there are trade-offs here. As a bystander and merely a user of Phoenix, my understanding is that the Phoenix team is aiming to find a good balance between the two. So, while the productivity is certainly a goal of Phoenix, it’s not the only goal.</p>
<p>Personally, I think that the new version strikes a better balance. I base that conclusion on my team’s real-life experience with Phoenix 1.1/1.2 where the defaults proposed by the framework helped us produce a less maintainable code. The fault for that was ours, but contexts would have pointed us in the right direction. Given that the mental overhead of contexts is IMO very low, I think that the gain is well worth it.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="36377" data-batch-url="/posts/batch_likers">
                        10
                      </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/contexts-a-barrier-too-high-for-newbies/5929/37">Post #36</a>
	                </div>
	            </div>
              <div id="likers-container-36377" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="36377"
                     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 #36"></div>
  </section>
</div>
    <div class="postbit" id="36378" data-post-id="36378">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>I’ll be peeking at the hex example: <a href="https://github.com/hexpm/hex" class="inline-onebox" rel="noopener nofollow ugc">GitHub - hexpm/hex: Package manager for the Erlang ecosystem. · GitHub</a> didn’t know that was a phoenix app <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>
<aside class="quote group-livebook_core_team" data-username="josevalim" data-post="29" data-topic="5929">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/josevalim/48/1787_2.png" class="avatar"> josevalim:</div>
<blockquote>
<p>My intuition is that crud is actually nicer with contexts than without contexts. That’s because even when crud-ing, the resources are still related, and the context keeps this relationship together. In the scenario you are mindlessly generating stuff, then the only extra input that contexts require is the context name. CRUD still works.</p>
</blockquote>
</aside>
<p>For some things, absolutely it’s been super nice and clean to work with, credit where credit is due.</p>
<p>For other things, it feels like one layer too deep from the web app.  It’s like I’m forced to wrap every call to Repo.update with NotARepo.update.   It’s clean when it’s needed, but when it’s required it’s tad overly formal.</p>
<aside class="quote group-livebook_core_team" data-username="josevalim" data-post="29" data-topic="5929">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/josevalim/48/1787_2.png" class="avatar"> josevalim:</div>
<blockquote>
<p>I am confused. Aren’t those two? The context and the struct? Except by the context name, all names are inflected from the struct.</p>
</blockquote>
</aside>
<p>Get rid of create/update/delete/list/get/exists function names and replace them with names that are meaningful to the context.  For example, <code>Scheduler.meetings_this_month</code>  <code>Post.submit_reply</code>  <code>Calendar.add_reoccuring_event</code>.  By my count that is a context name, the database struct or whatever the context trying to abstract, and the function that defines the interface to the rest of the application.</p>
<p>It’s those none crud things which bring the most value to contexts, however, only a small percentage of my application really benefit from them.</p>
<hr>
<p>The most concrete issue that I deal with is when the database table is just a database table.</p>
<p>In my little project, I have about 60 schemas and growing.  20 of them are purely just a schema/database table.  The fun part is that any of those 20 schemas are fair game for any other part of the app to depend on, have reference to, and have collections of.  I guess the app is the context for these things?</p>
<p>The second issue is when I start a new project that is when I know the least about it.  It is pretty hard to divvy up an app into meaningful parts when you are not exactly sure where things fit.  Some sort of blessed dumping ground like lib/core or lib/schemas and some tools to refactor to contexts would be very welcome.</p>
<hr>
<p>Thanks for all of those participating in these threads.  They can get heated but I know it’s because everyone deeply cares about the tools they are using.  I’d be worried if everyone just went with the flow around here.</p>
<p>Cheers!</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="36378" 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/contexts-a-barrier-too-high-for-newbies/5929/38">Post #37</a>
	                </div>
	            </div>
              <div id="likers-container-36378" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="36378"
                     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 #37"></div>
  </section>
</div>
    <div class="postbit" id="36380" data-post-id="36380">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<aside class="quote no-group" data-username="nerdyworm" data-post="38" data-topic="5929">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/nerdyworm/48/359_2.png" class="avatar"> nerdyworm:</div>
<blockquote>
<p>The second issue is when I start a new project that is when I know the least about it.  It is pretty hard to divvy up an app into meaningful parts when you are not exactly sure where things fit.  Some sort of blessed dumping ground like lib/core or lib/schemas and some tools to refactor to contexts would be very welcome.</p>
</blockquote>
</aside>
<p>That one is an issue I noticed as well. While I feel it’s good to have people think before diving deep into details it surely feels like a blocker as well. But in the end everybody is free to simply use the context “Core” or “App” for as long as the contexts are not clear enough.</p>
<aside class="quote no-group" data-username="nerdyworm" data-post="38" data-topic="5929">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/nerdyworm/48/359_2.png" class="avatar"> nerdyworm:</div>
<blockquote>
<p>Get rid of create/update/delete/list/get/exists function names and replace them with names that are meaningful to the context.  For example, Scheduler.meetings_this_month  Post.submit_reply  Calendar.add_reoccuring_event.  By my count that is a context name, the database struct or whatever the context trying to abstract, and the function that defines the interface to the rest of the application.</p>
<p>It’s those none crud things which bring the most value to contexts, however, only a small percentage of my application really benefit from them.</p>
</blockquote>
</aside>
<p>That’s one reason why I’m hardly using the generators anymore. Creating the modules manually is often as fast as (remembering the correct cli syntax and) deleting all the generated crud stuff.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="36380" data-batch-url="/posts/batch_likers">
                        4
                      </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/contexts-a-barrier-too-high-for-newbies/5929/39">Post #38</a>
	                </div>
	            </div>
              <div id="likers-container-36380" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="36380"
                     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 #38"></div>
  </section>
</div>
    <div class="postbit" id="36382" data-post-id="36382">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<aside class="quote no-group" data-username="nerdyworm" data-post="38" data-topic="5929">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/nerdyworm/48/359_2.png" class="avatar"> nerdyworm:</div>
<blockquote>
<p>In my little project, I have about 60 schemas and growing.  20 of them are purely just a schema/database table.  The fun part is that any of those 20 schemas are fair game for any other part of the app to depend on, have reference to, and have collections of.  I guess the app is the context for these things?</p>
</blockquote>
</aside>
<p>I wonder how much cheating would it be to do something like <code>mix phoenix.gen.html Posts Post "posts" ...</code> for those cases. Although I can see that if you are going in this direction, then contexts definitely feel like boilerplate.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="36382" 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/contexts-a-barrier-too-high-for-newbies/5929/40">Post #39</a>
	                </div>
	            </div>
              <div id="likers-container-36382" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="36382"
                     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 #39"></div>
  </section>
</div>
    <div class="postbit" id="36442" data-post-id="36442">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>If I understand this correctly, the problem is that newbies don’t get best practices and find somewhat hard to comply.<br>
But isn’t it that the reason why they are newbies and we set up  best practices ?</p>
<p>When I first bumped into Rails I was already an experienced programmer, but I had been working on .net and weborms for years and it was really confusing for me at first.<br>
Rails wasn’t easy at all for newbies, but it was opinionated and that made feel other’s people code familiar and helped expanding the knowledge.<br>
What’s easy now has been hard at the beginning.</p>
<p>Practice makes you perfect, I strongly believe in the value of enforcing good behaviours instead of being too permissive and allowing the big ball of mud to prevail.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="36442" data-batch-url="/posts/batch_likers">
                        6
                      </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/contexts-a-barrier-too-high-for-newbies/5929/41">Post #40</a>
	                </div>
	            </div>
              <div id="likers-container-36442" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="36442"
                     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 #40"></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/5929/load_more?page=5">Load more posts (126 remaining)</a>
</div></template></turbo-stream>