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


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>You’re in the ecto core team, so there is at least one thing you can do: either confirm that a visual editor for contexts is a good idea or dash my hopes ahaha</p>
<p>I know it’s probably not a good idea because contexts are not a declarative enough concept (they include functions, and editing those with a visual editor is visual programming and therefore will fail as history has shown again and again), but an interactive schema editor that maps schemas to table columns and migrations to full tables would be feasible (through introspection of the relevant ecto structs). Am I right?</p>
<p>Also, you might start working on a demo open source app that uses 2 or more contexts. I can’t do it right now due to time constraints, but I might do it in the future <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="38675" 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/136">Post #135</a>
	                </div>
	            </div>
              <div id="likers-container-38675" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="38675"
                     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 #135"></div>
  </section>
</div>
    <div class="postbit" id="38677" data-post-id="38677">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<aside class="quote no-group" data-username="MikeAnthony" data-post="123" data-topic="5929">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/letter_avatar_proxy/v4/letter/m/779978/48.png" class="avatar"> MikeAnthony:</div>
<blockquote>
<p>I hope thats not true.</p>
</blockquote>
</aside>
<p>Coherence is stable and quite feature rich. I’m using it right now. There should be a release coming soon with support for the new Phoenix folder structure. The only thing missing is an official way to integrate with Phoenix contexts. We’re discussing ideas.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="38677" 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/137">Post #136</a>
	                </div>
	            </div>
              <div id="likers-container-38677" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="38677"
                     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 #136"></div>
  </section>
</div>
    <div class="postbit" id="38679" data-post-id="38679">
  <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="MikeAnthony" data-post="129" data-topic="5929">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/letter_avatar_proxy/v4/letter/m/779978/48.png" class="avatar"> MikeAnthony:</div>
<blockquote>
<p>hopefully but  (and I see this a lot with phoenix  subjects) if you have to buy one book to begin to understand a  modern web framework its not a modern web framework</p>
</blockquote>
</aside>
<p>I certainly don’t think that Phoenix fails here. I think that online guides on the official Elixir and Phoenix site are a pretty good start. In fact, even as a book author, I tell people to first start with the online guides for a quick start, and then move on to some book(s) if they decide to pursue the tech more seriously. The guides will give you a quick way to try out the tech in practice, and can even allow you to be productive very quickly. But for anything more involved, you’re going to need to research more material.</p> 
	            </div>

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


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<aside class="quote no-group" data-username="tmbb" data-post="133" data-topic="5929">
<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/77aa72/48.png" class="avatar"> tmbb:</div>
<blockquote>
<p>By default, the generators add CRUD functions like create, delete, list, etc. IMO they don’t come with huge benefits (they are thin wrappers on top of the Repo functions). The idea is that you would add higher level functions there yourself like list_all_documents_for_user, which contains a complex Ecto query. This takes away the query from your controller, which keeps the controller smaller and more focused on the web stuff.</p>
</blockquote>
</aside>
<p>AH…Light BulB on! Best  practical  explanation I have read so far.</p>
<aside class="quote no-group">
<blockquote>
<p>If you’re still confused about contexts, maybe you already know what they are (just modules!) and just don’t see the point of having them. </p>
</blockquote>
</aside>
<p>No even more so now I just found the name confusing and the general explanations I had read had not given a concrete example.  Those who are experienced working with elixir and phoenix need to understand  - It gives the newbie the impression that there is something going on waaay above  their heads to even grasp or understand   when there are multiple  threads and articles with no code that are  apparently intended for newbies and  they don’t get it or its practicality.  10 lines of code  can go a long way  more than a page of high view nomenclature (nothing wrong with that euther).  You haven’t even given code which would cement it more but at least you hinted more about what that code would look like and its practical application.  THANKS MUCH!!</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="38680" 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/139">Post #138</a>
	                </div>
	            </div>
              <div id="likers-container-38680" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="38680"
                     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 #138"></div>
  </section>
</div>
    <div class="postbit" id="38682" data-post-id="38682">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>There are some code examples floating around (and I can give you a trivial example if you want, just wait 30mins or so). The problem is that there are no examples of apps with more than two contexts <img src="https://forum.elixirforum.com/images/emoji/apple/stuck_out_tongue.png?v=15" title=":stuck_out_tongue:" class="emoji" alt=":stuck_out_tongue:" loading="lazy" width="20" height="20"> having a single conrext doesn’t show all the advantages you get by using contexts.</p>
<p>Phoenix devs actually say that contexts aren’t anything deep all the time, it’s just that people learn in different ways and up until now no one had found an explanation tailored to you specificially. I hope my stupid explanation helps others in the future.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="38682" 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/141">Post #140</a>
	                </div>
	            </div>
              <div id="likers-container-38682" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="38682"
                     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 #140"></div>
  </section>
</div>
    <div class="postbit" id="38686" data-post-id="38686">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>I’ve corrected how I wrote that. My point was not  toward the actual developers of  Phoenix or Elixir but developers as in those who are experienced using  them. I just put that in a clumsy way.  I don’t think seeing code is just my specific way of learning though.  Its pretty universal.    I now think all the talk about context without those concrete examples is whats really confusing and a barrier.  Most likely once those code examples  are  out there  it won’t be as confusing and perhaps trying to explain it without a solid example  of multiple contexts in code is the real detriment.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="38686" 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/142">Post #141</a>
	                </div>
	            </div>
              <div id="likers-container-38686" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="38686"
                     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 #141"></div>
  </section>
</div>
    <div class="postbit" id="38699" data-post-id="38699">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Here is a (quite stupid) example app with two contexts, and in which two user schemas share a DB table but expose different columns according to the “needs” of the context. The app does nothing except defining the contexts.</p>
<p>See the README of the repo for more information. <a href="https://github.com/tmbb/dummy-phoenix-contexts" rel="noopener nofollow ugc">Link to GitHub</a>.</p>
<p>If someone wants to turn this into a real app that does stuff, feel free.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="38699" 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/143">Post #142</a>
	                </div>
	            </div>
              <div id="likers-container-38699" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="38699"
                     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 #142"></div>
  </section>
</div>
    <div class="postbit" id="38715" data-post-id="38715">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<aside class="quote no-group" data-username="tmbb" data-post="143" data-topic="5929">
<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/77aa72/48.png" class="avatar"> tmbb:</div>
<blockquote>
<p>Here is a (quite stupid) example app with two contexts, and in which two user schemas share a DB table but expose different columns according to the “needs” of the context.</p>
</blockquote>
</aside>
<p>Well having seen that I don’t think I was far off with my understanding of discrete modelling.   That bears striking resemblance to Django models except that you are separating out concerns a bit more (hence why I said more discrete).  You can even add additional custom functionality to django models. I realize conceptually there are some other things going on but  it does not appear to  be that way off.</p>
<p>I was wrong about one thing though. Even seeing the code newbies are going to have issues and it presents a barrier. As a modified way to view a model I could see less of a disconnect but I gather from the name and  some other responses  in other threads theres a desire to force a paradigm in thinking (not just code or structure) maybe even as part of the “phoenix is not your app” mantra that to me has  a bit too high decibel.</p>
<p>Is it possible the reason why there is a delay in anyone showing a practical application of two contexts being necessary is really  because  most of the apps we use  and love on the web have done perfectly fine with one “context”?</p>
<p>That said I see why people like it and the potential power of not having one model , one table and one schema but lol I could also see myself mucking it up with too much  context bloat so I don’t know that that forces me to be a better Elixir programmer.</p>
<p>too each his own though. I’ve said enough and asked enough in this thread  and I do thank you kindly for the example in code.  Appreciated.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="38715" 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/144">Post #143</a>
	                </div>
	            </div>
              <div id="likers-container-38715" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="38715"
                     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 #143"></div>
  </section>
</div>
    <div class="postbit" id="38719" data-post-id="38719">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>This thread has been going on long enough that it really makes me wonder if this isn’t a great opportunity for the Phoenix 1.4 roadmap to build in a polished and flexible Auth mechanism (like Ueberauth) as a separate context? Rolling it in as a default would also give something like Coherence a clear integration path.</p>
<p>You’d end up eliminating the questions about auth and examples of context usage all at once, without having to speak in abstract terms. Just thinking out loud.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="38719" data-batch-url="/posts/batch_likers">
                        5
                      </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/145">Post #144</a>
	                </div>
	            </div>
              <div id="likers-container-38719" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="38719"
                     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 #144"></div>
  </section>
</div>
    <div class="postbit" id="38742" data-post-id="38742">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>I’m not sure something like phoenix should come with authentication by default… Isn’t phoenix supposed to be more low level than that?</p>
<p>Also, there are several ways to implement authentication, and it’s not clear that one of them is superior to the others.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="38742" 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/146">Post #145</a>
	                </div>
	            </div>
              <div id="likers-container-38742" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="38742"
                     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 #145"></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=15">Load more posts (26 remaining)</a>
</div></template></turbo-stream>