TE
科技回声
首页24小时热榜最新最佳问答展示工作
GitHubTwitter
首页

科技回声

基于 Next.js 构建的科技新闻平台,提供全球科技新闻和讨论内容。

GitHubTwitter

首页

首页最新最佳问答展示工作

资源链接

HackerNews API原版 HackerNewsNext.js

© 2025 科技回声. 版权所有。

We Just Undid Three Months of Dev work. Here's What We Learned.

98 点作者 acl超过 15 年前

8 条评论

stingraycharles超过 15 年前
I think the real lesson to learn here is to never assume anything. They assumed performance wouldn't be a problem, so they didn't test for it when prototyping, and they didn't make those tests part of their development cycle.<p>It's tough, these things, especially if you're talking about a feature you personally appreciate a lot. The article talks about the performance problems leading focus away from actively marketing these solutions, which makes me wonder: if properly marketed, would this have been a killer feature ?<p>The fact that they decided to get rid of it suggests no. However, are they putting the code in the freezer for a while until they fix these issues and re-release it ? Or is it simply a problem that can only be properly solved by giants like Google ?
评论 #867627 未加载
评论 #867786 未加载
评论 #867977 未加载
megamark16超过 15 年前
I wish I could send this to my boss. The functionality I'm working on right now was requested by a single client and is really only applicable to their unique billing situation. Why am I spending so much time on something that is going to have so little payoff, and yet which adds so much additional complexity to the system? But I've only been here a month and I don't feel like I can cast a dissenting voice. Maybe I'm just a coward.
评论 #867551 未加载
评论 #867668 未加载
mr_luc超过 15 年前
<p><pre><code> The database operations on the nested data were just taking too much processing power. </code></pre> Given that this is Rails, and given that it's certainly SQL involved here, I just have to ask (and I know the answer is probably "yes") -- did you try implementing nested sets?<p>I ask because my experience has been that nested data is (with the kinds of nested data I've been handed, anyway) not a performance problem. Selects and updates of nested data can be as responsive as any range query on flat data, and when it comes to managing the performance of inserting new nodes, deleting or moving subtrees, there are a lot of options depending on what you want to optimize for (like spreading out the range from 1 to the max integer supported and periodically re-packing; that way, inserting leaves and any kind of deletion is as fast as with flat data).<p>I'm curious about what your nested data looked like. Sorry to get distracted on a minor point, but I'm intrigued! When I'm developing, I just always <i>feel</i> as though I should only worry when I start seeing data that has to be a graph and can't be represented as a tree, but as long as it actually <i>is</i> hierarchical then I won't have to worry about speed too much; but now I'm wondering if that intuition will bite me.
评论 #868541 未加载
fizx超过 15 年前
Haha, I'm doing the same thing right now. When one feature costs &#62; 10% of dev time, and you can afford to get rid of it, do it! In my case, I was spending 50%+ of my time for a few weeks on stability issues caused by a feature that &#60;10% of my users need. Bye!
评论 #867407 未加载
davidmathers超过 15 年前
Short version:<p><i>In our case, the move from flat data to nested data was the killer...We came up with a sweet way of storing the nested data and abstracting away most of complexities of dealing all kinds of data...However, the load on our database was far more than we envisioned...MySQL.</i>
nestlequ1k超过 15 年前
Great, as a paying customer of scout they are telling me their going to now focus on getting new customers instead of servicing the ones they have.<p>Might make sense from a business standpoint, but probably something you dont want to advertise :-).
评论 #868525 未加载
amichail超过 15 年前
Just a meta comment about these lessons learned posts. The motivation behind these is to promote the product in question and one must therefore take them with a grain of salt.<p>Peer reviewed research is more reliable.
评论 #867574 未加载
评论 #867550 未加载
edw519超过 15 年前
This reminds me of one of my biggest internal conflicts: when to optimize.<p>"Premature optimization" has earned a negative reputation because it has a tendency to inflate dev schedules unnecessarily.<p>So I tend to just crank something, anything out just to have something. Once you can see what you have, it's often a lot easier to modify than come up with in the first place.<p>OTOH, I like to think that everything I build is a foundation for the next thing to be built upon it. I am constantly getting bitten in the ass by some grossly underperforming building block. If a prototype runs poorly a dozen times, it's a concern. If the same code runs poorly a million times, it's a disaster.<p>It's a constant trade-off. Get <i>something</i> running vs. build solid building blocks. Make a mistake one way and never release. Make a mistake the other way and have a time bomb to clean up. Sounds like OP has a lot of the same issues.