<instructions>Your goal is to analyze the following comment and estimate how highly it will be upvoted by the Hacker News community.</instructions><comment><author>tedsuo</author><text>Oh god, there is some terrible advice in that article.&lt;p&gt;1. Don’t wrap errors, log.&lt;p&gt;Errors have two purposes - control flow for your application, and information for the developer and operator. If you are already logging the flow of your program, there is no need to wrap an error and create a call stack - you already have the call stack. If you cannot follow the control flow from your logs, you need to improve your logging, because you will also need to debug production problems that do not produce a literal error object.&lt;p&gt;And if you want more causality than you can get out of your logging, consider upgrading from logging to tracing. I contribute to &lt;a href=&quot;http:&amp;#x2F;&amp;#x2F;opentracing.io&quot; rel=&quot;nofollow&quot;&gt;http:&amp;#x2F;&amp;#x2F;opentracing.io&lt;/a&gt; so naturally that’s the tracing API I would suggest you look at.&lt;p&gt;2. Do not do anything with panics except recover from them or exit.&lt;p&gt;If you have a panic that you cannot recover from (and in general, that should be all of them), then it means your application is in a unknowable state. While Go is not as unsafe as C, any and all state in your program could be bad, and it is completely unclear what is still working and what is not. Nothing you do at this point is safe. For the love of god, do not hang your application and prevent it from exiting by trying to send a Slack message.  Your goal should be to restart your program from a fresh clean state as quickly as possible, not to tie it up on the way out. Let the program exit and have an external monitoring program, whose state is NOT corrupted because its in a separate process, do all of the triage and reporting.</text><parent_chain></parent_chain></comment><story><title>How to ship production-grade Go</title><url>https://www.oreilly.com/ideas/how-to-ship-production-grade-go</url></story>
<instructions>Your goal is to analyze the following comment and estimate how highly it will be upvoted by the Hacker News community.</instructions><comment><author>tyingq</author><text>I&amp;#x27;d add another, something like &amp;quot;Be Aware of the Ramifications of Partial HTTP&amp;#x2F;S Implementations&amp;quot;.&lt;p&gt;Because it&amp;#x27;s so easy to expose http&amp;#x2F;https in golang, I see a fair amount of code that takes the easy path of handling GETS and not doing much else.  No support for HEAD, or compression, proper mime types in Content-type, or lacking Cache-Control headers, Etags, 304 responses, etc.  Go can do all these, of course, but I see them missing often.&lt;p&gt;I&amp;#x27;ve seen, for example, blogs, that (probably not on purpose) defeat browser caching.   Not great for performance, or your egress bill.</text><parent_chain></parent_chain></comment><story><title>How to ship production-grade Go</title><url>https://www.oreilly.com/ideas/how-to-ship-production-grade-go</url></story>