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


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<aside class="quote no-group" data-username="bglusman" data-post="30" data-topic="23853">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/bglusman/48/9459_2.png" class="avatar"> bglusman:</div>
<blockquote>
<p>why doesn’t Phoenix and/or Plug use a struct instead of a bare map for its params objects coming through plug</p>
</blockquote>
</aside>
<p>Isn’t it obvious? <code>Plug.Conn</code> <em>is</em> a struct and parameters have to be a bare map because every app has their own set of parameters incoming to their controllers.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="135807" 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/indiffererentaccess-adaptation-of-hashwithindifferentaccess-to-elixir-maps-plug/23853/32">Post #31</a>
	                </div>
	            </div>
              <div id="likers-container-135807" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="135807"
                     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="135808" data-post-id="135808">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="bglusman" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/bglusman/120/9459_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  bglusman
                    <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>Well, yes, that may have been a bit of a brainfart/rushed thought… I think I was trying to make a point about how you can’t always use structs perhaps if you have an unknown set of keys, and our app is very dynamic/there are quite a few varieties of user configurations and settings coming stored in Postgres jsonb columns with customization for each different client…</p>
<p>(EDIT- I guess I was thinking/could argue hypothetically it could have been/could be a struct with an underlying map that has access behavior to access that map, and thats another version of this library I’m still considering trying out, that does approximately that to make an IndifferentParams struct that stores a map as basically its only value and uses access behavior to access that with atoms and wouldn’t care whether the atom exists, would just to_string the atom to look up, or fall back on to_string if the atom key is nil or something)</p>
<p>I don’t mean to seem argumentative/I’m not sure how much of what you or others are saying I disagree with at all, but playing devil’s advocate is part of how I figure out what I really think, so thank you for indulging me/apologies if the writing has come across the wrong way, it’s always a challenge to manage/understand tone both in the writing and in the reading.  I appreciate and probably agree with you and most others here, but I threw this out there knowing more or less what most of the reactions would be, but wanting to try and play out and see if I was surprised by any or the points I or others made in either direction.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="135808" 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/indiffererentaccess-adaptation-of-hashwithindifferentaccess-to-elixir-maps-plug/23853/33">Post #32</a>
	                </div>
	            </div>
              <div id="likers-container-135808" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="135808"
                     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="135809" data-post-id="135809">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="bglusman" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/bglusman/120/9459_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  bglusman
                    <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">
								<aside class="quote no-group" data-username="dimitarvp" data-post="31" data-topic="23853">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/dimitarvp/48/38664_2.png" class="avatar"> dimitarvp:</div>
<blockquote>
<p>If you <em>only</em> do that, it’s a perfectly fine scenario.</p>
</blockquote>
</aside>
<p>The PR I referenced above I think makes the library “only” do this, and I’m inclined to dismiss that version of it a little less than the original/I may spend 20 minutes trying that version out in my app to see how current behavior/test-failure situation compares… but I think I somehow didn’t do a good enough job communicating that <em>nothing</em> about the initial version I linked to was remotely finalized, it doesn’t have a single test, it was just a concrete direction (incorporating someones non-rescue based check for atom existence) to think about/discuss/consider more-or-less automated ways to not have to rely on strings in params maps.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="135809" 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/indiffererentaccess-adaptation-of-hashwithindifferentaccess-to-elixir-maps-plug/23853/34">Post #33</a>
	                </div>
	            </div>
              <div id="likers-container-135809" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="135809"
                     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="135811" data-post-id="135811">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>I think your initial message was quite clear but the people around here definitely get PTSD and nightmares by such patterns. <img src="https://forum.elixirforum.com/uploads/default/original/2X/6/6c3193d1dd46244da3c8c6f719c9f5e2abdd5ae8.gif?v=15" title=":003:" class="emoji emoji-custom" alt=":003:" loading="lazy" width="20" height="20"></p>
<p>As a feedback, ultimately I parsed two things from your comments here:</p>
<ul>
<li>
<p>You are kind of afraid of big refactorings. My opinion: you should not be. Refactoring your code to be stricter and less surprising is always worth it. If you really don’t have the time now, do your backlog features and keep taking notes for when you eventually get around to the refactoring (also chat with your employer; you are not a factory worker, programming is a creative job). Don’t try to cheat your way out with minimal work; well-behaved code requires focused and exhausting effort.</p>
</li>
<li>
<p>You are questioning the benefits of stronger typing / compile time errors. Nobody can convince you otherwise if you feel strongly about it but have in mind that languages like OCaml and Rust make an entire class of bugs <em>impossible</em> by the mere virtue of your program compiling successfully. We don’t have that in Elixir and we’re trying to gain some of it any way we can. If you value the mega-quick-time-to-working-MVP more then you probably shouldn’t use Elixir or push your team to move away from it.</p>
</li>
</ul> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="135811" 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/indiffererentaccess-adaptation-of-hashwithindifferentaccess-to-elixir-maps-plug/23853/35">Post #34</a>
	                </div>
	            </div>
              <div id="likers-container-135811" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="135811"
                     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="135813" data-post-id="135813">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="bglusman" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/bglusman/120/9459_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  bglusman
                    <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">
								<aside class="quote no-group" data-username="dimitarvp" data-post="35" data-topic="23853">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/dimitarvp/48/38664_2.png" class="avatar"> dimitarvp:</div>
<blockquote>
<p>I think your initial message was quite clear but the people around here definitely get PTSD and nightmares by such patterns. <img src="https://forum.elixirforum.com/uploads/default/original/2X/6/6c3193d1dd46244da3c8c6f719c9f5e2abdd5ae8.gif?v=15" title=":003:" class="emoji emoji-custom" alt=":003:" loading="lazy" width="20" height="20"></p>
</blockquote>
</aside>
<p><img src="https://forum.elixirforum.com/images/emoji/apple/smile.png?v=15" title=":smile:" class="emoji" alt=":smile:" loading="lazy" width="20" height="20"> Sorry I didn’t put a trigger warning on it!</p>
<p>(also note I edited above briefly while you were replying)</p>
<p>I both am and am-not afraid of larger refactoring in different senses; I have done large refactorings successfully, but I do like playing around with different approaches/alternatives and have occasionally had a refactoring that passed all the tests and code reviews and seemed like a pure refactor every step of the way and still caused a bug in production for one reason or another. I like to think of it as a healthy fear, it won’t stop me from doing it, but I have respect for working code also and awareness that no amount of tests can prove the absence of bugs! <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"> I think I push myself harder than my employer does, but there is certainly mutual agreement that though it’s OK to charge the tech debt credit card, there’s also need to pay it down afterwards to avoid excessive interest payments.</p>
<p>I don’t know that I question the benefits of <em>static</em> typing (Elixir is strongly typed) but I do recognize that it has tradeoffs.  I’m very interested in <a class="mention" href="/u/keathley" rel="nofollow">@keathley</a> 's upcoming design-by-contract project as a potential sweet spot for these trade-offs, and a lot of what he’s spoken about on Elixir Outlaw’s resonates with me… and I think he’s one of the few way-better-than-me programmers in the community I’ve also seen question the value and advantage of “structs everywhere” vs Bare maps, so I’d be curious to hear his thoughts here. (EDIT - I beleive he said Bleacher report, which has of course scaled elixir quite far and well, has only a handful of structs in their codebase, so it at least provides some high profile counter-evidence to the idea that structs are <em>the</em> answer)</p>
<p>I don’t know what to say on the last point, re: probably shouldn’t use Elixir, but I don’t understand it and don’t think you’re going to convince me not to use it <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"></p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="135813" 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/indiffererentaccess-adaptation-of-hashwithindifferentaccess-to-elixir-maps-plug/23853/36">Post #35</a>
	                </div>
	            </div>
              <div id="likers-container-135813" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="135813"
                     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="135815" data-post-id="135815">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<aside class="quote no-group" data-username="bglusman" data-post="33" data-topic="23853">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/bglusman/48/9459_2.png" class="avatar"> bglusman:</div>
<blockquote>
<p>(EDIT- I guess I was thinking/could argue hypothetically it could have been/could be a struct with an underlying map that has access behavior to access that map, and thats another version of this library I’m still considering trying out, that does approximately that to make an IndifferentParams struct that stores a map as basically its only value and uses access behavior to access that with atoms and wouldn’t care whether the atom exists, would just to_string the atom to look up, or fall back on to_string if the atom key is nil or something)</p>
</blockquote>
</aside>
<p>You can do that. I can bet $20 that you’ll spend more time developing it now compared to the time you’ll save down the line by using it, though.</p>
<aside class="quote no-group" data-username="bglusman" data-post="36" data-topic="23853">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/bglusman/48/9459_2.png" class="avatar"> bglusman:</div>
<blockquote>
<p>I’ve also seen question the value and advantage of “structs everywhere” vs Bare maps</p>
</blockquote>
</aside>
<p>I don’t think this debate <em>exists at all</em> or that anyone says “structs are the answer” universally. Not sure if you noticed but most people in ElixirForum are refugees from other languages and frameworks, and a part of them still work with those or other languages but not Elixir. I feel the average quality of the programmers around here is pretty high and most would simply tell you “use bare maps vs. structs using your best judgement” which, yeah, is not a concrete advice, but then again you haven’t given much details yourself.</p>
<hr>
<p>For what it’s worth, I’m only enforcing structs on controller params with a well-known and mandatory shape like pagination or ordering clauses. I do however convert string-keyed maps to atom-keyed maps very quickly and do exhaustive pattern matching when working with them further down. Getting <code>FunctionClauseError</code> gives you pretty clear error messages and I always go the extra mile to make all my function heads – including private ones – as strict as possible.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="135815" 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/indiffererentaccess-adaptation-of-hashwithindifferentaccess-to-elixir-maps-plug/23853/37">Post #36</a>
	                </div>
	            </div>
              <div id="likers-container-135815" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="135815"
                     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="135819" data-post-id="135819">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="bglusman" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/bglusman/120/9459_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  bglusman
                    <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">
								<aside class="quote no-group" data-username="dimitarvp" data-post="37" data-topic="23853">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/dimitarvp/48/38664_2.png" class="avatar"> dimitarvp:</div>
<blockquote>
<p>You can do that. I can bet $20 that you’ll spend more time developing it now compared to the time you’ll save down the line by using it, though.</p>
</blockquote>
</aside>
<p>You might well win that bet if I do it!  Or rather, you could never win the bet because we never get to try things both ways (and especially not both-ways order independently!).  But if I do it, it will not be to try and save the time but just to have a potentially fun thing to hack on as a side project/something without the time or other contraints from work, even if it was inspired by work or (maybe, but probably not TBH) winds up getting used there.  In any case, happy to have chatted and appreciate your time and feedback.  Sorry if I misrepresented your or other opinions above, I guess I was reacting to <a class="mention" href="/u/nobbz" rel="nofollow">@NobbZ</a> 's comment that</p>
<aside class="quote no-group" data-username="NobbZ" data-post="5" data-topic="23853">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/nobbz/48/27235_2.png" class="avatar"> NobbZ:</div>
<blockquote>
<p>normalized data is nearly always a struct</p>
</blockquote>
</aside>
<p>which didn’t sit entirely right with me/was perhaps the most concrete alternative I saw presented.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="135819" 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/indiffererentaccess-adaptation-of-hashwithindifferentaccess-to-elixir-maps-plug/23853/38">Post #37</a>
	                </div>
	            </div>
              <div id="likers-container-135819" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="135819"
                     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="135820" data-post-id="135820">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<aside class="quote no-group" data-username="bglusman" data-post="38" data-topic="23853">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/bglusman/48/9459_2.png" class="avatar"> bglusman:</div>
<blockquote>
<p>which didn’t sit entirely right with me/was perhaps the most concrete alternative I saw presented.</p>
</blockquote>
</aside>
<p>I can’t talk for him but I believe he meant that “normalised data” is what I called above “data with a well-known and mandatory shape, like pagination and ordering clauses”.</p>
<hr>
<p>Happy to oblige the chat.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="135820" 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/indiffererentaccess-adaptation-of-hashwithindifferentaccess-to-elixir-maps-plug/23853/39">Post #38</a>
	                </div>
	            </div>
              <div id="likers-container-135820" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="135820"
                     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="135824" data-post-id="135824">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>“Mr. Keathley declines comment on this matter, except that he wishes to no longer be involved in this nonsense.” <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"> <img src="https://forum.elixirforum.com/images/emoji/apple/laughing.png?v=15" title=":laughing:" class="emoji" alt=":laughing:" loading="lazy" width="20" height="20"></p>
<p>… but as someone else that works at Bleacher Report, I can say that structs aren’t required for scalability or anything like that. They’re just maps at the end of the day. It’s nice to be able to document and enforce the structure of things, like Plug.Conn does, when a lot of people need to collaborate on the same data structure. For your app code that’s changing all the time, it’s probably just as easy to use a map and try to keep it as simple as possible, at least until the code stabilized and you know what the “right” fields are going to be.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="135824" 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/indiffererentaccess-adaptation-of-hashwithindifferentaccess-to-elixir-maps-plug/23853/40">Post #39</a>
	                </div>
	            </div>
              <div id="likers-container-135824" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="135824"
                     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="135825" data-post-id="135825">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="benwilson512" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/benwilson512/120/1457_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  benwilson512
                  </h3>
		          </div>
						
			          <div class="user-title">
									<span>Author of Craft GraphQL APIs in Elixir with Absinthe</span>
			          </div>
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Oh the things people have to deal with when not using GraphQL APIs… <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"></p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="135825" 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/indiffererentaccess-adaptation-of-hashwithindifferentaccess-to-elixir-maps-plug/23853/41">Post #40</a>
	                </div>
	            </div>
              <div id="likers-container-135825" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="135825"
                     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/23853/load_more?page=5">Load more posts (14 remaining)</a>
</div></template></turbo-stream>