Is it reasonable to use Go as a backend among other backend languages?

xuanbao · · 566 次点击    
这是一个分享于 的资源,其中的信息可能已经有所发展或是发生改变。
<p>With the nature of concurrency and low-level, it is tempting to make an backend API server with Go Lang and do some computation. However, I see that the problem for Go is not a &#34;big&#34; community and limited number of libraries. Should I transition to Go, or just wait? Any opinion is welcome!</p> <hr/>**评论:**<br/><br/>rz2yoj: <pre><p>Unless you&#39;re doing something extremely niche, you won&#39;t run into problems finding libraries to do what you need. Third party libraries aside, the standard libraries are comprehensive enough that most projects don&#39;t really require anything else.</p> <p>Just dive in.</p></pre>floatdouble: <pre><p>In general, Go is amazing for setting up a backend server. What are you trying to do specifically?</p></pre>some_coreano: <pre><p>A web and mobile! So Go will be used to fetch data ..!</p></pre>qu33ksilver: <pre><p>In that case, I&#39;d wager that you will find pretty much everything you need in the standard library itself. </p> <p>Regarding &#34;community&#34; - hey, that&#39;s what this sub is for ;)</p> <p>So give Go a chance !</p></pre>Ravekelder: <pre><p>This is what I do as well. I came from Laravel, but Go feels so much better! Good luck with your adventure. </p></pre>wubrgess: <pre><p>The company where I work has in the past year really opened up to go and are loving working with it. The biggest complaints I&#39;ve heard so far are that there aren&#39;t really options for mirroring libraries (to remove external dependencies at deployment time) &amp; version control, and its goofy directory structure requirement.</p></pre>StevenTheBirdSeagull: <pre><p>Can I recommend gRPC. It makes it a breeze to exchange messages between services. <a href="https://grpc.io/" rel="nofollow">https://grpc.io/</a></p></pre>some_coreano: <pre><p>What is RPC??</p></pre>StevenTheBirdSeagull: <pre><p>remote procedure call. Check the link I sent in my previous comment. It&#39;s two process from different Lang communicate with each other in an standard way.</p></pre>some_coreano: <pre><p>Thanks!</p></pre>philiplb: <pre><p>We thought about this as well but require a web client beside the apps. So we decided against gRPC in favor of GraphQL: - gRPC is binary and so not that easy to debug (via Postman, curl and co) - Not all browsers can deal with it without going through some hoops</p></pre>Kraigius: <pre><p>How complex are the relationships in your data? Last time I checked it was not worthwhile implementing graphQL unless you had complex relationships and shit tons of data that particular clients might not be interested in.</p></pre>yami_odymel: <pre><p>Don&#39;t use gRPC if your client is a browser, because gRPC doesn&#39;t support the browser.</p></pre>fazalmajid: <pre><p>Go is one of the best languages for this purpose. My elevator pitch for it is &#34;80% of the productivity of Python, 80% the performance of C&#34;. My company started with Python and when we outgrew it, switched to Go. We handle 800Mbps of traffic and over 2 Billion API calls per day.</p> <p>As for the size of the community, it is middling but growing fast, and more importantly the quality of both members and contributed code is very high. No architecture astronauts over-engineering and over-complexifying as with the Java weenies, or noobs creating security vulnerabilities by cluelessness as with PHP.</p> <p>IMHO, the three general-purpose languages any programmer ought to learn are JavaScript, Go and either C or Rust.</p></pre>iroflmaowtf: <pre><p>go will handle all your needs and the community and amount of libraries available are significant</p> <p>to give you some perspective, replaced a node server with golang, same aws server is now under 5% usage, with more 3x the number of users, while previously it would have taken 10-20 seconds for some requests that are now served within milliseconds</p></pre>some_coreano: <pre><p>Wow that sounds really promising. What material did you use to learn go? I just went through go tutorial on the go page, until gorotuines, but I don&#39;t think I&#39;m ready yet...</p></pre>iroflmaowtf: <pre><p>I&#39;ve actually started right away in go with a project, it went well after a few hours and decided to continue forward with go, here I am ~4 years later and many backends in golang</p> <p>I&#39;d recommend looking on github for some golang library that seems interesting and start playing with it, in this way, you&#39;ll get to use go and see how things go, you&#39;ll pick it up in less than a week</p></pre>RustyCrustyBoy: <pre><blockquote> <p>Go is not a &#34;big&#34; community</p> </blockquote> <p>Better keep it small. It consists of retards mostly at the moment. Why would you want to grow it?</p></pre>gac_web: <pre><p>Do you intent to integrate legacy enterprise systems that rely on SOAP? then I&#39;d say no. Otherwise it&#39;s fine. The question is more where do you come from and what kind of libraries do you expect to find in Go.</p> <p>And yes, the libraries are mostly focused on REST API/ Devops and just go to <a href="https://stackoverflow.com/questions/tagged/go" rel="nofollow">https://stackoverflow.com/questions/tagged/go</a> to see that you&#39;ll get very limited help there. No matter how people try to inflate the community it isn&#39;t that big.</p></pre>jetjaguar76: <pre><p>Well said, and good point about SOAP. A definite no go if you need to work with it. </p></pre>holyjeff: <pre><p>What other languages besides java and c# have good soap support ?</p></pre>gac_web: <pre><p>PHP, Python, C++ , Delphi, all have good soap server implementations ...</p></pre>

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

566 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传