6 ms·
Ask HN: Best Practices Guides You're Aware Of
Hi HN, may I ask about any best practices guides that you're aware of. It could be about architectures or coding in general. Something like the two below:
- https://12factor.net/
- https://www.conventionalcommits.org/en/v1.0.0/
- nivertech 3y agohttps://www.conventionalcommits.org/en/v1.0.0/ https://www.conventionalcommits.org/en/v1.0.0/ https://keepachangelog.com/en/1.0.0/ https://keepachangelog.com/en/1.0.0/ https://conventionalcomments.org/ https://conventionalcomments.org/ https://semver.org/ https://semver.org/ https://0ver.org/ https://0ver.org/ https://www.nohello.com/ https://www.nohello.com/ https://nohello.net/en https://nohello.net/en -- EDIT: added ZeroVer: 0-based Versioning
- vpaulus 3y agoOh, this nohello nonsense again. Since when politeness isn´t a thing?
- throwaway89201 3y ago"If you feel it's a bit brusque to simply say "Hi" and ask the question, you can still preface your message with as many pleasantries as you see fit". Just don't submit the message with only pleasantries.
- deleted 3y ago[deleted]
- jerpint 3y agoIt doesn’t say to not say hello, or simply says don’t leave an empty hello without context. This makes a lot of sense especially in asynchronous teams. A notification can pull you out of flow and be disruptive, so minimize them
- vpaulus 3y agoExactly, that´s why I call it nonsense. It´s nothing to do with the hello, it´s all about the pause.
- nivertech 3y agoThe problem is not with "Hi" or "Hello" immediately followed by the question. The problem is when people write "Hi"/"Hello" without the question, then waiting for the reply, then want to simulate a smalltalk, and only then asking the question. In many cases they're not even thought about this question in advance, and didn't framed it or phrased it, to make it easier on the other side to understand the problem.
- arp242 3y ago"Hi" [8 hours later due to different TZ] "Hey there, can I help you?" [8 hours later due to different TZ] "Can I ask a question?" [8 hours later due to different TZ] "Of course, you don't need to ask that!" [8 hours later due to different TZ] asks question [8 hours later due to different TZ] gives answer --- That's often been my problem with that. I'm all for politeness, but these are people I work with, not strangers, and it's basically my job to answer their questions, and they know I'm in a different timezone, and whom I've told that they can just ask their question directly. Certainly in this context I don't think it's any less polite than "Hi there, how you doing? I'd like to ask a question: [question]". No one is really helped with this: not the developer or support staff who wants an answer, not customer who has to wait longer for an answer. I also answer these sort of things outside work hours (I don't mind doing that, I also get a lot of flexibility in return), and three different messages is more invasive than just one. Actually, come to think of it, it's less polite to do it the "polite" way.
- doubled112 3y agoI have a hard time with the “Hi” people like those. If you say “Hi” I can’t tell what you want, and I tend to move onto somebody who actually asks a question because I know what I am getting into. The conversation is marked as read, and you disappear into the noise. Please help me to help you.
- Cthulhu_ 3y agoI mean you can say hello, that's not the issue. Saying hello and waiting for the other party to reply before continuing is. I mean would you send an e-mail with just a "Dear $name" and nothing else?
- yard2010 3y agoI enjoy both worlds - I type in the question, cut type "hello" press enter paste and enter again. This way I can be nice twice by being polite AND not wasting other people fime
- fzeindl 3y agoI summarized my own 15 years of full-stack development experience into such a guide: https://www.fabianzeindl.com/posts/the-codequality-pyramid https://www.fabianzeindl.com/posts/the-codequality-pyramid
- yard2010 3y agoI love this. I felt these issues a lot while working on a fullstack project in which nobody cared about anything except delivering fast. It turned out to be a great mess nobody wanted to take responsibility on.. Now I have this, which is a really good mental model IMO
- ignoramous 3y agoRFCs are usually a good place to look for considerations and best practices.
- Jorge1o1 3y agoGreat point! For example, this Informational RFC is literally a 4 page cookbook on how to use Kerberos in a practical way. https://datatracker.ietf.org/doc/html/rfc4559 https://datatracker.ietf.org/doc/html/rfc4559
- veesahni 3y agohttps://www.vinaysahni.com/best-practices-for-a-pragmatic-restful-api https://www.vinaysahni.com/best-practices-for-a-pragmatic-re...
- methyl 3y agohttps://www.refactoringui.com/ https://www.refactoringui.com/
- afidrya 3y agohttps://cheatsheetseries.owasp.org https://cheatsheetseries.owasp.org
- arp242 3y agoI have come to believe that by and large "best practices" are actively harmful as they're mostly pounded by inexperienced programmers who lack the ability to judge the applicability or zealots who believe everything should be done the One True Way™, and they (ab)use these kind of "best practices" as an argument from authority. Everyone else just says "X is better because Y", which is an actual argument that can be discussed (engaging with actual arguments discovers what the best solution for the particular situation is). Most "best practices" are just someone's opinion anyway, and little more. The exception to this are some things like "don't use mktemp(), use mkstemp()", but these are usually not called "best practices" but "footguns" or "things that will get you in to trouble sooner or later".
- j45 3y agoLearning by trying out different approaches is critical to know which practice to use when
- civilitty 3y agoCase in point: OP linked 12factor which was originally Heroku marketing and helped drive the microservice plague that is ravaging our industry to this day.
- theshrike79 3y agoI hate microservices with a passion, but still use 12factor when coding, they're good guidelines for monoliths too.
- bloopernova 3y agoSomewhat related, does anyone have a good in-depth guide to "clean architecture"? I'm writing a Python developer helper app, and I'm trying to learn how to correctly design it so I can stick a Textual UI on top later. Someone mentioned that I should use clean architecture for that design, but I'm not familiar with the term.
- korijn 3y agoSet aside some time early on in your project just to create a small proof of concept where you actually slap on that Textual UI. That'll inform you of what's needed later on. You don't even need to merge that proof of concept, the point is just to discover what's needed.
- bloopernova 3y agoI've done that kind of by mistake, in that I wrote some UI screens and saw how to hook them together. But learning Textual, some Python, and object oriented Python all at once was difficult for me.
- throw1234651234 3y agoMost architecture books are bad. The "quintessential" book is called "Fundamentals of Software Architecture" and it's very dry, dated, and high-level. There is also a book called "Clean Architecture" which is what they may be referring to. What is a "Python developer helper app"? Is it a standard application with a UI, some API calls, and a DB? In that case, you may want to use a standard layered architecture approach. Python developers are generally horrible at architecture. They will defend it as "wanting to be functional" and call other devs "dogmatic" while duplicating code all over the place and writing 5000 line files.
- bloopernova 3y agoWhat is a "Python developer helper app"? To deploy dev/test AWS resources, the devs have to hit a bunch of different cloud and internal sites. It's a lot of annoying and slow clicks+waits that I wanted to streamline for them. It's also full of risk because you have to copy values from one place to another, often changing them a little first. By "standard layered" arch, do you mean model/view/controller? If so, I can read up some more on that. (I'm devops, mostly focused on terraform, and I'm trying to move away from writing bash scripts to Python) EDIT: thank you for your answer, it's helpful to me.
- dobladov 3y agohttps://grugbrain.dev/ https://grugbrain.dev/
- whatusername 3y agoI've seen a few "Best Current Practise" RFC's around standards implementation. eg: here's one still in draft form for OAuth: https://datatracker.ietf.org/doc/html/draft-ietf-oauth-security-topics https://datatracker.ietf.org/doc/html/draft-ietf-oauth-secur...
- keyle 3y agoRFCs are pretty classic and they got us this far. It starts in plain ASCII and plain HTML. Easy for searching and consumption. https://en.wikipedia.org/wiki/Request_for_Comments https://en.wikipedia.org/wiki/Request_for_Comments
- sigg3 3y agoMight want to narrow it down to best practices RCC BCP for us newbies: https://en.m.wikipedia.org/wiki/Best_current_practice https://en.m.wikipedia.org/wiki/Best_current_practice Although there's some expected overlap.
- JTyQZSnP3cQGa8B 3y agoI like https://trunkbaseddevelopment.com/ https://trunkbaseddevelopment.com/ and I used it successfully in big projects. It’s less bloated than git-flow or GitHub-flow.
- dvh 3y agoAfter 33 years of programming, after going through OOP stage and DRY stage, I have come to conclusion that WET code is best for day-to-day, long-term maintainable code. DRY always leads to over engineering and premature abstraction that falls apart the moment new requirement arises. WET code is boring and tedious but simple to maintain. It scales fairly linearly and timelines are easier to estimate.
- eimrine 3y agohttps://motherfuckingwebsite.com/ https://motherfuckingwebsite.com/ (there are several of them with a different level of motherfuckiness but this is my favorite one). Also "The Inmates Are Running The Asylum" book.
- officetme 3y agohttps://nometa.xyz https://nometa.xyz
- choult 3y agohttps://phptherightway.com/ https://phptherightway.com/ for our PHP-coding brethren
- zoomzoom 3y agoThis is different than what you’re asking about but is a GPT-powered chat with a library of over 500 best practice whitepapers from cloud providers: https://cloudwhitepapers.withcoherence.com https://cloudwhitepapers.withcoherence.com Hopefully the chat and functionality makes it more useful than just a guide or manifesto. Any ideas or feedback welcome!
- laserbeam 3y agoMost "best practices" are pretty flawed. The only one I found reasonable were some principles applied at NASA which mainly can be summed up as: be paranoid, limit the scope of variables, don't malloc like crazy and assert absolutely everything. https://devm.io/careers/power-ten-nasas-coding-commandments-114124 https://devm.io/careers/power-ten-nasas-coding-commandments-...
- asicsp 3y agoBash Practices: https://mywiki.wooledge.org/BashGuide/Practices https://mywiki.wooledge.org/BashGuide/Practices Also, https://www.shellcheck.net/ https://www.shellcheck.net/
- Cthulhu_ 3y agohttp://boringtechnology.club/ http://boringtechnology.club/
- idlewords 3y agoI wrote a best practices document for time travelers back in 2003 that had an enormous impact on that community, judging by their continuing low numbers: https://idlewords.com/2003/09/best_practices_for_time_travelers.htm https://idlewords.com/2003/09/best_practices_for_time_travel...
- seanwilson 3y agoI wrote this one about on-page/technical SEO: https://www.checkbot.io/guide/seo/ https://www.checkbot.io/guide/seo/ Most of the rules are sourced from something Google or Mozilla said. A lot of people don't like the word SEO but this guide is really about having better structured pages that are easier for machines and humans to understand, rather than rules that people have tried to reverse engineer out of Google to game their search ranking.
- sterlinm 3y agoI’ve found the Python Speed [1] site an excellent resource for the quirks of working with Python in containers for data science use cases. [1] https://www.pythonspeed.com https://www.pythonspeed.com