<p>Hello <a href="/r/golang">r/golang</a>,</p>
<p>What are some projects you would recommend to read and to learn from?</p>
<p>In particular, I would be interested in examples of:</p>
<ul>
<li>creating a web API</li>
<li>calling a 3rd party web API</li>
<li>querying a relational database</li>
<li>asynchronous jobs</li>
<li>mapping to and from JSON</li>
<li>validations</li>
</ul>
<p>I feel like I've seen a lot of these covered by individual libraries and demonstrated in standalone code samples. However, I'm hoping to find a project which covers many or perhaps even all of these in a unified and cohesive codebase.</p>
<p>Any advice would be appreciated.</p>
<p>Thanks in advance.</p>
<hr/>**评论:**<br/><br/>Mteigers: <pre><p>Most of Hashicorps stuff. </p></pre>mhausenblas: <pre><p>Likely the best reference, for most of your requirements (besides the RDBMS stuff) is <a href="https://github.com/go-kit/kit" rel="nofollow">https://github.com/go-kit/kit</a></p></pre>SilentDanni: <pre><p>I usually follow these patterns when interacting with third party apis: <a href="https://github.com/google/go-github" rel="nofollow">https://github.com/google/go-github</a></p></pre>titpetric: <pre><p>If you'd be interested, I can send you a free copy of 12 Factor Apps with Docker and Go, and API Foundations, it does cover most of the things which you're looking for. I didn't cover calling third party APIs specifically, or validations, but I might do it, it's a good idea! What do you say, free copy for some comments from your side?</p>
<p>Edit: <a href="https://leanpub.com/b/golang-app-bundle">here's the bundle link for more info</a></p></pre>jonec00per: <pre><p>I'd be interested for a free copy if you don't mind sharing with me. However, I'm just getting started with golang.</p></pre>silentpayne1: <pre><p>I'd be interested in that as well, just dabbing into go recently</p></pre>euneuber: <pre><p>I'm also interested in your bundle.</p></pre>ishanjain28: <pre><p>I am interested in that bundle. I started learning golang 5 months ago, and like it so far. But looking for some help with designing and scaling large, complex APIs. </p></pre>Mittalmailbox: <pre><p>Check staffjoy code at <a href="https://github.com/Staffjoy/v2" rel="nofollow">https://github.com/Staffjoy/v2</a> It is microservices architecture. </p></pre>shovelpost: <pre><ul>
<li><a href="https://github.com/upspin/upspin" rel="nofollow">https://github.com/upspin/upspin</a></li>
<li><a href="https://github.com/golang/perf" rel="nofollow">https://github.com/golang/perf</a></li>
</ul></pre>UnchartedFr: <pre><p>Hello </p>
<p>I would recommend you to read those articles/projets on clean/hexagonal architecture before implementing any projects :)</p>
<p><a href="http://manuel.kiessling.net/2012/09/28/applying-the-clean-architecture-to-go-applications/" rel="nofollow">http://manuel.kiessling.net/2012/09/28/applying-the-clean-architecture-to-go-applications/</a></p>
<p><a href="https://github.com/CaptainCodeman/clean-go" rel="nofollow">https://github.com/CaptainCodeman/clean-go</a></p>
<p><a href="https://geeks.uniplaces.com/putting-clean-architecture-into-practice-20c47d8c76de" rel="nofollow">https://geeks.uniplaces.com/putting-clean-architecture-into-practice-20c47d8c76de</a></p></pre>shovelpost: <pre><p>While one can learn a lot from the clean architecture, the implementation in those articles is full of Go anti-patterns so be careful.</p></pre>fern4lvarez: <pre><p>Hey</p>
<p>I'm the author of <a href="https://github.com/fern4lvarez/piladb" rel="nofollow">https://github.com/fern4lvarez/piladb</a>, a humble Go project that I've been running for more an a year. I think it's a complete, yet simple piece of code that addresses many of your interests. It's easy to read, well modulated, with 100% of tests coverage and more or less well documented.</p>
<p>If you have any question, please ask!</p></pre>hughbrien: <pre><p>Check out Todd McLeod. He has great YouTube videos and $15 course on Udemy :
<a href="https://github.com/GoesToEleven?tab=repositories" rel="nofollow">https://github.com/GoesToEleven?tab=repositories</a></p></pre>mini_eggs: <pre><p>I've done all of that in a recent project. My first Golang project so it's probably trash. Would love to get some feedback, though. </p>
<p><a href="https://github.com/chan-lite/chan-lite-server" rel="nofollow">A 4chan proxy server with some bells and whistles on top.</a> No tests yet!...</p></pre>The_Baconator69: <pre><p>GitHub.com/drone/drone</p>
<p>If you're unfamiliar with drone, it's an open source CI/CD tool. I've been using it at work for a while now and it's pretty great :)</p></pre>sh41: <pre><p>Personally, I really like (disclaimer: my own) code at <a href="https://github.com/shurcooL/home" rel="nofollow">https://github.com/shurcooL/home</a>. It's the source code of my personal website.</p>
<p>It's probably unique in some ways, but very practical and easy to maintain and develop for me. I have some services defined as interfaces that could be implemented via relational databases, but I choose to use simple filesystem-based implementations. They're simpler and sufficient for the current needs.</p></pre>Dummies102: <pre><p>kubernetes is probably the most well written large project I've seen <a href="https://github.com/kubernetes/kubernetes/tree/master/pkg" rel="nofollow">https://github.com/kubernetes/kubernetes/tree/master/pkg</a></p></pre>firecat53: <pre><p>Docker and Syncthing.</p></pre>peterbourgon: <pre><p>Definitely, definitely, definitely not Docker.</p></pre>shovelpost: <pre><p>I agree, not docker but what would you recommend instead?</p></pre>titpetric: <pre><p>Well, I'm guessing that a project with 4+ years of development will be overwhelming for anyone :D</p></pre>stone_henge: <pre><p>That it's overwhelming is IMO a mischaracterization of the actual problem. It's just not always very high quality or idiomatic code. I think that's understandable and sometimes excusable, but it does limit its use as a learning aid.</p></pre>
这是一个分享于 的资源,其中的信息可能已经有所发展或是发生改变。
入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889
0 回复
- 请尽量让自己的回复能够对别人有帮助
- 支持 Markdown 格式, **粗体**、~~删除线~~、
`单行代码`
- 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
- 图片支持拖拽、截图粘贴等方式上传