TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

RTFC is the New RTFM

33 pointsby jradakovabout 12 years ago

11 comments

spartangoabout 12 years ago
This worries me a little, because it cuts against the ideas of abstraction that are central to most software engineering.<p>Don't get me wrong, I'm not against reading the code if and when it is available.<p>I just worry that reliance on this MO goes against the idea that you can specify a programming interface for your system and people can develop against that without knowing the implementation. This is rather powerful in working with other people, complex systems, and systems that are changing, where reading the code may become inefficient.<p>I'd push back on the mindset of RTFC by saying that as a developers we should try not to link ourselves to infrastructure for which RTFM fails. I know it biases my search for libraries.<p>&#62; I realize complaining about the lack of documentation in some open source projects is like complaining that there is no foie gras at a friend’s free dinner party<p>I'd argue that docs aren't foie gras, and not having them is like having a compile error/obvious segfault in your code. Just like stability, docs matter.
评论 #5602148 未加载
评论 #5602083 未加载
评论 #5602149 未加载
评论 #5657651 未加载
kaffeinecomaabout 12 years ago
<p><pre><code> I nonchalantly told him to look at the source code of the library we were using. He looked at me like I had asked him to help me dig up a grave. </code></pre> I can't imagine not examining the source code of the various frameworks I use on a daily basis.<p>I think the next time I interview a candidate I will ask them what major open-source libraries they use. Then I will ask them what they think of the quality of the source code, how it's implemented, what they find difficult to reason about, etc. Getting a blank stare at this point will be a kind of FizzBuzz moment.<p>Edit: I'm not suggesting that candidates should be an expert on the internals of the libraries they use (I'm certainly not). What I'm looking for is the ability to crack them open when you hit a wall.
评论 #5601883 未加载
评论 #5601769 未加载
评论 #5601837 未加载
评论 #5601992 未加载
评论 #5602064 未加载
评论 #5602330 未加载
jerryaabout 12 years ago
Yes, projects that claim to be infrastructure and come with no documentation, and presumably few comments, and who knows what unit tests.<p>It would be an exaggeration to refer to that as minimally viable code (mvc). It is really only a statement of the lack of engineering actually being practiced, and makes me wonder about the lack of robustness, the lack of security, the numbers of bugs in the systems produced.<p>I am not certain this is a winning strategy for open source.
评论 #5601863 未加载
评论 #5602182 未加载
pothiboabout 12 years ago
I think thoughtful, detailed guides on how to browse/use code is better than code documentation.<p>Too often (mostly in interpreted language), I see a method that takes a hash as an option and I see that option being passed down to 3, 4 or more different functions. So in order to know what options are available for a given method, you have to browse through all the other methods that takes the same hash as argument.<p>I haven't seen a framework dealing with that through documentation. Some are better than others, but they never cover everything.
nkuttlerabout 12 years ago
<a href="http://catb.org/jargon/html/R/RTFS.html" rel="nofollow">http://catb.org/jargon/html/R/RTFS.html</a>
评论 #5602002 未加载
评论 #5602037 未加载
评论 #5601888 未加载
duweaseabout 12 years ago
I've been bitten by open-source AND closed-source applications recently, from different angles.<p>Once when using an Adobe application that was behaving erratically, and I was unable to see what was happening internally for myself (and obviously the behavior wasn't documented). Incredibly frustrating, and no recourse except to hack around it and hope it didn't mutate.<p>More recently, I've been bitten by a fairly popular open source application that I intended to use without modification (just configuration). But the documentation was so awful that I couldn't even figure out how to configure it. Ultimately, I had the recourse of stepping through the code to figure it out, but when you're trying to build adoption of your application, it would make sense to make it usable for its main purpose without setting up the actual source code in a debugger.<p>One interesting generalization I see is that the user-friendliness and documentation of the open-source app correlates quite often to the language used. PHP and Ruby projects seem to be built with an eye towards helping the eventual users use it. The Java projects, while often more competently written and complicated, seem to often be presented as code-only, take it or leave it, user-friendliness be damned.
gyepiabout 12 years ago
I have noticed the increasing paucity of documentation in many open source projects. In the past, this would annoy me when I had to context switch from a perfectly good flow state to a documentation reading state. However, I realized that I was doing it wrong; it meant that I was not spending enough time analyzing the code I was about to "adopt" and depend on for my project. Now, I read the documentation and source code for every open source program before I choose to use it. I also find correlations between the quality of the code and the documentation; good quality code sometimes lacks documentation but poor quality code rarely has good documentation.<p>Reading the code also provides the opportunity for learning beyond the documentation; there's a wealth of really good code out there just waiting to be read.
评论 #5601897 未加载
ghshephardabout 12 years ago
One organization that I worked at had a firmware team that moved quickly, and wrote the interface layer to the PHY/MAC/Network devices. After they defined the interface, later on enterprise software teams, and utility software teams, would write the "User Friendly" tools that would be used to configure the networking devices, but the firmware team did write a tiny "shim" utility that they released with firmware, that could be used to control the firmware at a very raw/native level.<p>Whenever you were wondering what parameters to pass to this low level (very useful) utility, the answer was almost always, "Just check out the Code" - and answer that was actually surprising straightforward once you got used to it.
greenyodaabout 12 years ago
"<i>I realize complaining about the lack of documentation in some open source projects is like complaining that there is no foie gras at a friend’s free dinner party</i>"<p>Actually, it's more like not having <i>chairs</i> at a dinner party. It's a significant discomfort, not a lack of a luxury.<p><i>"The Spring Security documentation says it best…<p>It is much easier to debug your application or to work out where a problem lies if you don’t treat the external code you are working with as a black box which you never look inside. The first thing you should do when an exception you don’t understand is thrown from an open source library is jump to the class and line number and take a look to figure out what the code was doing there. Otherwise you’re missing out on much of the benefit of using open source code."</i><p>Sorry, but it's a lot easier to debug your application if you have documentation that tells you under what conditions the library throws a particular exception.<p>Having to understand the source code of a library to be able to figure out its behavior eradicates much of the benefit of using a library in the first place. And the average product these days relies on so much open source software that you can't possibly have the time to dig through the sources to solve every little problem. Would the author of this statement be happy if he had to dig through Linux kernel code, or Apache web server code, or the code of the dozens of Java libraries that Spring is dependent on? I don't think so.
jamiebabout 12 years ago
I'm using Spring 3.1, Jetty, various OWASP, guava. I am in the code of Spring and Jetty on a daily basis, and OWASP when I first used it. I learned guava by writing unit tests to verify my assumptions - assumptions I learned from the documentation - and which turned out to be wrong in key aspects.<p>Documentation is ambiguous, and even documentation which is unambiguous is often wrong (or perhaps more kindly, "out of date").
stoxabout 12 years ago
I always preferred UTSL ( Use The Source, Luke ), instead of RTFC.