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

科技回声

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

GitHubTwitter

首页

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

资源链接

HackerNews API原版 HackerNewsNext.js

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

Software developers have stopped caring about reliability

94 点作者 ciprian_craciun超过 3 年前

41 条评论

wokwokwok超过 3 年前
Well, it&#x27;s easy to complain.<p>The reality is that money dictates decisions and behaviour; and if consumers wanted reliable stuff, they&#x27;d buy it.<p>They don&#x27;t.<p>They want free stuff, and if it doesn&#x27;t work well, they&#x27;ll complain and suck it up because it&#x27;s free.<p>The idea that developers are somehow empowered to a) not do as they&#x27;re told by their bosses, and b) should just go off on their own and do whatever the hell they want (eg. making things reliable), when it is not what they have been asked or instructed to do...<p>...well, it&#x27;s a big ask.<p>If you want change you need to do one of probably these things:<p>- Empower developers to somehow write more reliable software at no additional effort.<p>- Convince consumers to buy more expensive stuff.<p>- Provide a legal mandate to punish companies that fail to adhere to specific levels of quality control.<p>- Provide a meta framework the punish individuals that fail to adhere to specific levels of quality control (eg. IEEE and other professional organisations which can expel you).<p>I can&#x27;t imagine how you do the first two. Those are Hard Problems.<p>The last two have worked in the past in some circumstances in other professions... but, you know, many folk don&#x27;t like the idea that there are codes of behaviour, ethics and conduct they should be forced to adhere to; but they want people to take <i>personal</i> responsibility for things not being perfect.<p>It&#x27;s a bit of a joke that everyone has to &#x27;do the right thing&#x27; with no rules to enforce it... but hey, it&#x27;s easy to <i>ask</i> for, because you don&#x27;t have to <i>do anything</i> except <i>complain</i> people aren&#x27;t doing the right thing.<p>Thats why you can&#x27;t have nice things like software that works.
评论 #28895055 未加载
评论 #28895035 未加载
评论 #28895364 未加载
评论 #28895413 未加载
评论 #28895724 未加载
评论 #28896202 未加载
phendrenad2超过 3 年前
Ah I remember when I thought like this. I was so young and naive. Good times.<p>Fact of the matter is, software is NOT like building a bridge, or any other engineering discipline, it&#x27;s much, much more complex. We&#x27;ll never achieve high reliability for anything but the simplest software (reactor control rooms come to mind). Accept the fact that software is hopelessly broken, and find tactics to deal with it.
评论 #28895273 未加载
评论 #28895146 未加载
评论 #28895111 未加载
wruza超过 3 年前
That’s a good rant but it hits the wrong dudes. We haven’t stopped, we were overwhelmed.<p><i>Our industry is characterized by institutional recklessness and a callous lack of empathy for our users. It’s time for a come-to-jesus moment. This is our fault, and yes, dear reader, you are included in that statement. We are personally responsible for this disaster, and we must do our part to correct it.</i><p>No, the examples the author provides are the fault of stubborn people who continue to say that a winword-like text renderer with left-right-justify-float-border-margin is the right tool for applications. There is javascript in the button because otherwise there was javascript at the serverside, or even more javascript to reload the current state into the new tab. Controls have javascript in them because native behavior is so full of bullshit. And why it’s javascript? Because we’re given no choice.<p>I tried to bring up the topic of “web” “applications” so many times only to hear that I’m wrong and I don’t get it. While having around 15 years of desktop development experience and a couple of ui frameworks that I wrote myself. And clearly seeing the insanity of modern state of things and what they gave birth to. Back in the day I was able to hack together gta:sa vehicle editor or a simple accounting system in pygtk in an hour, now I don’t even know if I want to begin to map state to props and do other bs unrelated to the business itself.<p><i>This is what you must do. You must prioritize simplicity. You and I are not smart enough to be clever, so don’t try.</i><p>I stopped trying already, let this crap burn in flames and maybe I will still be not dead when the springtime comes.<p><i>Design your data, identify error classes</i><p>It’s hard to do through layers of what you <i>need</i> to be able build a decent app, but we try hard, really. The author comes from the web1 perspective and feels missing the simplicity of it, but bad news it was already a stupid way to make apps even back then.
评论 #28895344 未加载
评论 #28895562 未加载
kvgr超过 3 年前
Maybe the managers and product owners decided it is not a priority for this sprint as it does not fit this quartals OKRs?
评论 #28894951 未加载
kryptiskt超过 3 年前
I was there back in the 90s and they cared even less back then. If anything, things have improved over time, I don&#x27;t even know what the Windows 10 crash screen looks like.
评论 #28895434 未加载
ram_rar超过 3 年前
I dont agree with OP. In fact on the contrary, much of the backend software is becoming lot more reliable than it ever was before. Lately most of the back end dev is leveraging various cloud services like dynamodb, big table etc, which have north of 99.99% uptime. Back when I was at Yahoo!, reaching those SLIs was a monumental goal. But nowadays its expected.<p>Any microservice built leveraging these cloud services, is already far more reliable than building things from scratch. Obviously, there is lots of room to shoot oneself in the foot. But overall, I am far more optimistic of backend core services than what OP presents.
评论 #28895021 未加载
评论 #28895009 未加载
评论 #28895193 未加载
评论 #28896494 未加载
i_have_an_idea超过 3 年前
I&#x27;d love to work on reliability. Unfortunately, my TODO list contains <i>months</i> of new features that need to be shipped, asap. My clients push aggressively to get the new stuff done, reliability almost never something they&#x27;re interested in, as long as it is not embarrassingly obviously broken feature.<p>I do what I can, given the constraints imposed on me (since I also hate buggy software), but it&#x27;s very tough when it&#x27;s not a key customer priority.
xiphias2超过 3 年前
,,Finally, stop letting economics decide everything you do.&#x27;&#x27;<p>Money is one of the best inventions of humans, and a great organizer in the world. I would say a better organizer than the writer of this article. It&#x27;s not perfect (especially nowdays with 0% interest rates), but still a good guidance on what value the customer wants.
评论 #28894957 未加载
krisrm超过 3 年前
While I agree with much of this, it also reeks of confirmation bias. It&#x27;s very difficult to notice when software is reliable, but poor reliability can often (but not always) be quite apparent.
zokier超过 3 年前
I feel this is taking extremely rose-tinted view of past. I don&#x27;t think software was ever particularly reliable.
评论 #28895134 未加载
评论 #28895053 未加载
评论 #28895074 未加载
ChrisMarshallNY超过 3 年前
Ah. A good old-fashioned <i>Jerry Maguire</i> rant.<p>While I totally feel for the author, as someone else commented, money talks. People pay for dross, and companies will build their infrastructure around creating and shipping dross.<p>For myself, I am totally focused on writing and shipping ultra-high-Quality software. It’s difficult, frustrating, time-consuming, and very, very rewarding (but mostly on an emotional level).<p>I work for free. Honestly, I can’t see commercial entities paying the very substantial premium required to ship software at the Quality bar that I set. It’s orders of magnitude costlier than junk-grade software. Just yesterday, I spent almost all day, “tuning” a popover presentation controller to manage and present flexible content within a 1-pixel tolerance. It required that I rip out almost all my previous work, and realign my fundamental design.<p>I can think of no corporate entity that would tolerate that kind of anal-retentive level of detail. I would have been forced to ship the crap I had working the day before. People really, really like using my software, but they also don’t pay for it.<p>Calls for licensing are quite reasonable for things like medical devices, transportation, educational, infrastructure, children’s software, etc., but would be ridiculous for a significant swath of SV’s products.<p>As someone who has worked in a highly-structured, Quality-focused environment, I can report that the structure can easily crush innovation and development velocity. I call it “concrete galoshes”[0].<p>I feel that the industry is currently run by folks that use money as the <i>only</i> measure of success, and they aren’t actually mistaken. Money brings power and influence. It drives culture. The people who make the money, make the rules (the classic “golden rule”).<p>Until a <i>reward</i> structure (as opposed to a regulatory structure) is in place to <i>encourage</i> (as opposed to enforce) high Quality, I suspect we won’t be seeing significant improvement.<p>[0] <a href="https:&#x2F;&#x2F;littlegreenviper.com&#x2F;miscellany&#x2F;concrete-galoshes&#x2F;" rel="nofollow">https:&#x2F;&#x2F;littlegreenviper.com&#x2F;miscellany&#x2F;concrete-galoshes&#x2F;</a>
systemvoltage超过 3 年前
This can be said about pretty much any field these days. Graphic design is shit, product design sucks, home interiors are all the same with chinese made single purpose kitchen tools, unrepairable gadgets surround you, iot apps last updated in 2016, complete assault on user-centric design, broken touchscreen displays in cars and feature creep driven software that will eventually become unusable. No one cares. Everything is fine. Nod along, pour a glass and sip some plastic bottle moonshine.
评论 #28895063 未加载
timdaub超过 3 年前
I completely agree with this post and I also feel burned out by ~~assholes~~ making economical decisions to build software. I&#x27;ve decided to fight it by writing.<p>My motivation was: Can I flip the engineering mind towards understanding that well-built software can be a reasonable economic bet too?<p>My article is called &quot;On Technical Yield (and Technical Debt)&quot;: <a href="https:&#x2F;&#x2F;timdaub.github.io&#x2F;2021&#x2F;09&#x2F;06&#x2F;technical-debt-and-yield&#x2F;" rel="nofollow">https:&#x2F;&#x2F;timdaub.github.io&#x2F;2021&#x2F;09&#x2F;06&#x2F;technical-debt-and-yiel...</a><p>I&#x27;ve also been annoyed about scope creep as it&#x27;s been my manager colleagues favorite micromanagement argument. Scope creep can be a great thing: <a href="https:&#x2F;&#x2F;timdaub.github.io&#x2F;2021&#x2F;06&#x2F;18&#x2F;when-scope-blows-up&#x2F;" rel="nofollow">https:&#x2F;&#x2F;timdaub.github.io&#x2F;2021&#x2F;06&#x2F;18&#x2F;when-scope-blows-up&#x2F;</a><p>Let&#x27;s just do things differently.
krisoft超过 3 年前
The one concrete example he uses is a broken form to pay for electricity.<p>I’m pretty sure that the form works for most people most of the time. Why? Because otherwise the electricity utility in question would be hemorhaging money. If it would be completely borked the beancounters would be kicking the developers door in in no time.<p>I cannot say if this is what is happening but I have seen this many times where an expert user gets hung up on some process because they choose options only an expert user would even know about, while masses of regular people passes through uneventfully.
评论 #28895245 未加载
yoit超过 3 年前
Longtime lurker, I just created an account to respond to this thread.<p>Why not consider how much software has improved our life collectively and only find faults in it.<p>Developer is someone who knows how to instruct machines. They are not the owner of the product. So it might not their decision to disable right click.<p>The era that author talks about when everything was achievable with &quot;html form&quot;, we should also consider the number of people who had access to the internet at that time. Also most of the people were technologist or early adopters. The usecases have changed in last &quot;28 years&quot; that &quot;HTML forms&quot; are not enough. The problem they solved in 1993 was good for that time but it does not always fit for the current standards and requirements.<p>There are 1.7 billion websites[1]. If we apply &quot;Six Sigma&quot; to it, still there would be 5780 websites would be defected. what are the chances that author might be browsing only those sites &#x2F;s<p>I&#x27;d like to close with this - we have made huge advancements as a humankind and many of them seems impossible imagine without software developers. I&#x27;m grateful for all the technologist before me for their contributions even if its just &quot;JAVASCRIPT-POWERED CUSTOM TEXTBOX WIDGET&quot;.
rtall10超过 3 年前
That is a consequence of corporations taking over &quot;open&quot; source projects. They hire too many people, many of them clueless. Because of &quot;equity&quot; no criticism is allowed and all &quot;contributions&quot; are merged.<p>We have a gigantic unstable churnfest with the most ridiculous unreliable half baked features getting you a promotion. Bonus points if you &quot;grow the team&quot;!
l0b0超过 3 年前
<p><pre><code> &gt; Grab a notepad and make a note every time you encounter some software bug in production (be it yours or someone else’s), or need to rely on your knowledge as a computer expert to get a non-expert system to work. Email me your list in a week. </code></pre> Sorry, writing that list would take longer than I spend actually using software. Evolution telling me I&#x27;m &quot;offline&quot; because the DNS resolution isn&#x27;t working because of some resolv.conf DNS extension gobbledygook. Community members seriously suggesting to blow away configuration which took a long time to establish in order to <i>maybe</i> fix some completely broken desktop application. CLI tools doing their own <i>hard</i> line splitting because they don&#x27;t understand how terminals work. Web sites broken in any browser other than Chrome (I could have sworn the IE6 days were over). I can find about 10x more bugs than I have energy to even report, considering how completely broken most bug reporting processes are.
eterevsky超过 3 年前
I think different categories of software require different mentality. It&#x27;s ok for a user-facing innovative software to be built in the &quot;move fast and break things&quot; way. On the other hand, it is totally inappropriate for a filesystem or almost any firmware.<p>You need to strike the right balance for your use case between reliability and being able to deliver new things.
rasz超过 3 年前
Windows 10 Settings menu has no error checking. If you disable &quot;critical&quot; service like StateRepository you wont be able to start Settings. It will just crash!<p><pre><code> Faulting application name: SystemSettings.exe, version: 10.0.19041.789, time stamp: 0x4aa1ce82 Faulting module name: KERNELBASE.dll, version: 10.0.19041.906, time stamp: 0x2f2f77bf Exception code: 0xc000027b Fault offset: 0x000000000010b2dc </code></pre> If you disable something more subtle you can even get Settings to crash with stack buffer overflow :o and it wont be logged as an Error! Just a friendly Application Popup information Event in the System log:<p><pre><code> Application popup: SystemSettings.exe - System Error : The system detected an overrun of a stack-based buffer in this application. This overrun could potentially allow a malicious user to gain control of this application.</code></pre>
TacticalCoder超过 3 年前
&gt; Every morning, I boot, then immediately hard-reboot, my workstation, because it seems to jigger my monitors into waking up properly to do their job.<p>I know Drew reads thread here (and I already sent him emails in the past) but... I&#x27;ve had similar issues over the years and typically these can be solved using several tricks: for example not using NVidia GPUs (and hence not using proprietary drivers).<p>Or configuring the system once to boot into text mode, then running &quot;startx&quot; from text mode.<p>Or booting into graphical mode, but then using a shortcut to switch to console mode, then back to graphical mode.<p>Similar shenanigans may happen too with the various types of sleep&#x2F;powersaving modes. But I think they&#x27;re all solvable or, at least, there are always workaround (not that Drew&#x27;s &quot;boot twice&quot; workaround is that bad seen how fast Linux boots nowadays).
评论 #28895789 未加载
评论 #28895057 未加载
xupybd超过 3 年前
I&#x27;ve never read the source code of a database system. I don&#x27;t think that will ever pay off. I have learned Postgres and SQL server pretty well. I&#x27;ll pick either if given the choice. But reading the source would not help me.
nokya超过 3 年前
Fully agree with the author except two things.<p>First, I think he is biased by his own job and missed looking beyond the curtain: the problem he describes is not specific to software development. What he describes as &quot;Institutional recklessness and callous lack of empathy for users&quot; is, in my opinion, much more widespread than just software development. I observe this almost everywhere: my health services, my food, my furniture, my electronics, my transportation, my holidays, etc.<p>The only industries where I still observe some degree of reliability or excellence are products&#x2F;services heavily regulated and subject to the most stringent QA processes, and sport athletes. Anything else that is not thoroughly tested, vetted, certified and constantly subject to systematic rejection due to failure to achieve a high standard ends up being shipped broken.<p>Second, I do not believe a call to arms is necessary. At all. The reason for this, in my opinion, is because most people seem to be fine with how things are. I guess some wish they could get reliability, but I bet most will never fight for it. Many people do not even realize that they deserve to be treated better as customers&#x2F;consumers than they are, in my opinion.<p>So, yes, while I agree with the general thesis (software is shipped broken, devs do not care anymore, stuff simply ends up being fixed iteratively through constant alpha testing by consumers who paid for a reliable product), I disagree that there is anything to do but surrender and start playing by its rules.<p>I have been working as a technology consultant for more than 20 years. I noticed this trend of increasing mediocrity and fought it for years. Only result is I am the one getting tired. Recently, I started caring much less about my quality of work. I stopped working late night to complete writing my reports or learn stuff, I stopped doing exhaustive research to give the best recommendations, I stopped giving presentations and sharing my knowledge with my peers, I stopped throwing new ideas or improvement suggestions at work, I stopped reviewing thoroughly any document when asked by a friend or colleague, etc. Guess what? I get constantly rewarded for being mediocre: more money, customers never been happier, colleagues feel more secure around me, I get asked much less questions by my boss and I get plenty of time to play video games.<p>Welcome to mediocre-istan.
nomemory超过 3 年前
There are a few valid points, but also unfounded pessimism.<p>The amount of stable libraries and stable innovative products is amazing. It&#x27;s normal there&#x27;s chaos, but what is good will survive the test of time.
ricc超过 3 年前
Probably the result of companies like Facebook being mainstream popular who propagate mantras like &quot;move fast and break things&quot;. I&#x27;m left thinking if there are other companies with Facebook-level success who preach reliability... All I can think of is Apple but I&#x27;m not even sure if they&#x27;re already the best example. Assuming they are, it seems either &quot;moving fast and breaking things&quot; and making reliable products can make economic sense, but why do people tend towards the Facebook model?
tuukkah超过 3 年前
I think it&#x27;s important that the users have a choice: Do I want more features, or do I want more reliability? (Here I&#x27;m especially worried about ecosystems such as Apple that already limit user choice much more than this.)<p>After that, it comes down to whether businesses are customer-centric or profit-centric and why those are not the same. (I&#x27;d say the willful exploitation of people&#x27;s personal data is much worse than any lack of reliability.)
spion超过 3 年前
Or maybe browser vendors can invest in high quality, easy to style, feature rich built in components, so we don&#x27;t have to reimplement the wheel.<p>Its 2022 almost, and we still can&#x27;t get a html select that has 20% of the features that chosen (<a href="https:&#x2F;&#x2F;harvesthq.github.io&#x2F;chosen&#x2F;" rel="nofollow">https:&#x2F;&#x2F;harvesthq.github.io&#x2F;chosen&#x2F;</a>) had 8 years ago.
cloudyglider超过 3 年前
Ironically I recently gave up using aerc, an email client that the author had a part it writing, because it kept crashing on my machine. I know its a WIP and there is a disclaimer warning of bugs but I thought it was a little funny. I do agree we should be doing better as a industry, but I&#x27;m not sure saying &quot;hey everyone do better!&quot; is going to have any effect.
xtracto超过 3 年前
This is one of the reasons why I like blockchain development: web &#x2F; app developers are used to release shitty software and then play whack a mole with the bugs. That&#x27;s a luxury that embedded systems developers dont have. Similarly, blockchain devs have learnt that once you publish your crap in the blockchain, theres no way to update the contract.
pacifika超过 3 年前
I guess developers should own the feature not just the implementation.<p>Unfortunately the impression is that people won’t use such systems
badsectoracula超过 3 年前
The irony of this been by a proponent of Wayland, which instead of fixing whatever issues were with X11 decided to nuke everything and rewrite it from scratch - such rewrites are some of by far the most common sources of bugs. And also one of many developers&#x27; favorite things to do since they replace something with known issues with something with unknown issues but of course they believe those issues wont exist or wont be as important (which of course can only be judged <i>after</i> the issues become known but hey, old stuff suck and new stuff are amazing).<p>&gt; Prefer to use proven technologies.<p>LOL.<p>What he writes is not wrong, but i just can&#x27;t get over that he is the one writing all that stuff when he is among the people who contribute to bit rot and buggy unstable software that comes from having to rewrite shit over and over just to do the same thing and keep up with the &quot;~assholes~ developers&quot; (as he calls them) who break existing systems (and i&#x27;m sure there will be some excuse about why in Wayland&#x27;s case it wont matter and isn&#x27;t the same thing).
评论 #28895428 未加载
andix超过 3 年前
True. But there is another fact to consider, the target for products is: they have to be good enough to be sold. If 90% of people are happy with it, you won. Even if it’s far from perfect.<p>Everything on top of that is just sugarcoating.
imron超过 3 年前
&gt; I know that when I middle click a link and “javascript:;” opens in a new tab, an asshole a developer wants me to left click it instead.<p>It frustrates me when developers actively break things like this
IshKebab超过 3 年前
Yeah nobody cares about building fast reliable software. That must be why Rust and Ada are so unpopular at the moment.
lamontcg超过 3 年前
It ain&#x27;t the devs, its the managers and execs.<p>Our whole management class in this country is broken.
kubb超过 3 年前
&gt; assholes<p>&gt; stupid<p>&gt; stupid<p>OK that&#x27;s enough I&#x27;m not reading some frustrated ramblings.
svarog超过 3 年前
Not developers, but rather their managers.
KingOfCoders超过 3 年前
The reason I promote Radical Simplicity.
sys_64738超过 3 年前
File under Tech Debt?
yumiris超过 3 年前
The post ultimately seems to boil down to &quot;be more empathetic and considerate of your users&quot;, and building reliable software is of course one of the ways to accomplish that.<p>Unfortunately, the OP&#x27;s points stem from various biases, and the idealism is harder to accomplish in practice than the OP makes it out to be.<p>&gt; Almost all software that users encounter in $CURRENTYEAR is straight-up broken, and often badly.<p>Always been the case, whether now or decades ago. Many issues have been resolved; however, new ones will inevitably continue to appear. This is because the complexity of software will always increase, primarily as a result of market demands.<p>&gt; My web browser has been perfectly competent at submitting HTML forms for the past 28 years, but for some stupid reason some ~~asshole~~ developer decided to reimplement all of the form semantics in JavaScript<p>Repeatedly unprofessional tone aside, HTML forms in their simplest form come still come with their own limitations and quirks.<p>Case in point, I&#x27;ve recently had to build a rudimentary form for uploading multiple files. By default, a file input field requires the user to select their desired files in one go, either by using Ctrl&#x2F;Command or by selecting the files.<p>But, how do you allow users to drag and drop files from their file manager into the form? How do you allow users to select some files in one folder, then other files in another folder? What about an even simpler scenario: how do you let the user click on the &quot;Browse...&quot; button to select files, without overriding the previous selection? JavaScript is the answer to this.<p>Luckily, this specific problem doesn&#x27;t require drastic solutions, though it hopefully does bring light to the fact that HTML forms aren&#x27;t as perfect as they could be.<p>&gt; Finally, stop letting economics decide everything you do. Yes, developers have finite time, and that time costs. Yes, users with annoying needs like accessibility and internationalization are more expensive to support than the returns they produce. You need to pay for it anyway. It’s the right thing to do. We can be profitable and empathetic.<p>Although I agree with the principle, the practical circumstances make it difficult to make this a reality. Many developers aren&#x27;t full-time OSS developers like the OP is; instead, they work under an employer with demands, deadlines and restrictions in place.<p>This includes having to implement aggravating things like ads and abysmally re-invented forms, or having to sacrifice empathetic features for profitable features. In an ideal world, this shouldn&#x27;t even be a problem, or at the very least a developer should speak up or change jobs when users&#x27; rights are compromised. Unfortunately, locations and opportunities can make this difficult, never mind having to keep the family fed.<p>There are of course many scenarios where it&#x27;s the developers making incompetent decisions and being architect astronauts. But the problems the OP mentions are not caused by that; like they said, they are caused by economics. Economics shouldn&#x27;t be the dictator of technical decisions, but unfortunately for most developers, it is.<p>This is why I believe that most of the user-hostility &amp; brittle complexity is a result of a deeper problem, which is the developers not having enough liberty and resources. I&#x27;m confident that most developers didn&#x27;t implement user-hostile features - including intrusive ads and awful forms - because they wanted to. It&#x27;s easy to blame the developer for building the things, but in most practical cases, they built based on what they&#x27;ve been requested, not on what they&#x27;ve decided. I&#x27;m sure a developer will dedicate much more time and resources into robustness and friendliness if they were given the opportunity to.<p>Luckily, I have full control over all the technical decisions on the software I build for my employer, so I do strive for simplicity and robustness as much as I can, but I&#x27;m all too aware that not every developer has that luxury. I hope the OP will realise this, too. This isn&#x27;t to spare developers from responsibility and accountability, but to bring to light that the problem the OP poses is much more nuanced, both in its causes and in its details.
rado超过 3 年前
The title misspelt “managers”
vadfa超过 3 年前
&gt;Every morning, I boot, then immediately hard-reboot, my workstation, because it seems to jigger my monitors into waking up properly to do their job.<p>Maybe stop using Linux and wayland?
评论 #28895145 未加载