注意这是关于软件架构设计的内容: Imagine, for a moment, that we have a system that displays a financial summary on a web page. The data on the page is scrollable, and negative numbers are rendered in red. Now imagine that the stakeholders ask that this same information be turned into a report to be printed on a black-and-white printer. The report should be properly paginated, with appropriate page headers, page footers, and column labels. Negative numbers should be surrounded by parentheses. Clearly, some new code must be written. But how much old code will have to change? A good software architecture would reduce the amount of changed code to the barest minimum. Ideally, zero.
-- 来自《架构整洁之道》(Clean Architecture A Craftsman Guide to Software Structure and Design)
设想我们有一个系统,用于在网页上展示财务概览。这个页面可以滚动查看,负数显示为红色。假设现在需要把这些信息制作成一份报告,并用黑白打印机打印出来。这份报告需要恰当分页,并配有页眉、页脚以及清晰的列标题。负数则用括号标注。为此,我们需要编写新的代码。那么,需要修改多少现有代码呢?在优秀的软件架构下,需要修改的代码量应该尽可能少,理想情况下甚至为零。
设想我们有一个系统,能在网页上展示财务概览。用户可以滚动浏览页面上的数据,而且负数是用红色标出的。 现在,如果需要将同样的信息转换成一份可以在黑白打印机上打印的报告,要求报告清晰分页,包括页眉、页脚和列标题。负数则要用括号标注。 显然,我们需要写一些新代码来实现这个功能。但问题是,我们有多少旧代码需要修改呢? 在一个设计良好的软件架构中,需要更改的代码应该尽量少。最好,不需要任何修改。
设想一下,我们有一个系统,可以在网页上展示财务摘要。页面上的数据可以滚动查看,而且负数会用红色高亮显示。 现在,假如项目干系人要求把同样的信息整理成一份报告,用黑白打印机打印出来。这份报告需要正确分页,包含适当的页眉、页脚和列标签。负数则需要用括号标出。显然,我们需要编写一些新的代码来实现这个功能。但是,我们需要修改多少旧的代码呢?一个好的软件架构应该能够将需要修改的代码量降至最低限度。在理想情况下,这个数值是零。
我们先假设有这样一个系统,可以在网页上显示财务摘要。网页上的数据是可滚动的,并且负数以红色显示。 现在假设相关人员要求将同样的信息转换为一份在黑白打印机上打印的报告。这份报告需要分页,包括适当的页头、页脚和列标签,同时负数应该用括号括起来。 显然,我们需要编写一些新的代码。但是,需要更改的旧内容有多少呢? 良好的软件架构应将需要更改的代码量减少到最低限度,最好为零。
设想一下,我们有一个系统,可以在网页上显示财务摘要。这个页面数据是可以滚动的,而且负数会用红色显示。 现在,利益相关者希望我们将这个信息做成一份黑白打印的报告。这份报告需要适当地排版,包括合适的页眉、页脚和列标签。此外,负数应该用括号标注出来。很明显,我们需要编写一些新的代码,但是我们想知道需要修改多少原有的代码呢? 一个好的软件架构能够尽量降低需要修改的代码量,最好是零。
设想一下,我们有一个系统,可以在网页上展示财务汇总。这个页面的数据是可以滚动的,而且负数会用红色字体显示。 现在,我们需要将这个财务汇总信息做成一份报告,然后用黑白打印机打印出来。这个报告需要页面适当分页,每一页都有适当的页眉、页脚和栏目标签。而且,负数应该用括号括起来。 很明显,我们需要编写一些新的代码来完成这个任务。但是我们想知道,现有的代码需要改动多少呢? 一个好的软件架构能够最大程度地减少代码的修改量。理想状态下,不应该有任何代码更改。为了实现这个目标,我们需要考虑如何设计软件架构,让它能够轻松地适应不同的输出格式和要求。
设想这样一个场景:我们拥有的一个系统能够在网页上展示一份可滚动的财务摘要,其中负数值会用红色标识出来。 现在,假设我们的客户或决策者提出需求,希望将这些相同的数据制作成一份能在黑白打印机上打印的报告。这份报告需要具备合理的分页功能,配有适当的页眉、页脚以及列标题,并且负数要用括号括起来。 很显然,我们需要编写新代码来实现这一变化。但问题是,我们需要修改多少现有的代码呢? 一个优秀的软件架构设计会尽可能减少对原有代码的修改,最好能做到完全不用修改现有代码。
想象一下,我们现在有一个在网页上展示财务概览的系统,其中的数据是可滚动的,而所有的负值则以红色展示。 现在,如果我们的合作伙伴提出请求,希望把这些信息转换为一份报告,用于在黑白打印机上打印,我们应该如何操作呢?这份报告需要有清晰的分页标记,合理的页眉、页脚以及合适的列头。同时,报告中的负数要用括号标注。 我们必须编写一些新的代码来实现这些要求,但问题是,我们需要改动多少现有的代码呢?理想的软件架构设计会将需要修改的代码量降到最低,最好能做到无需改动。
设想我们有一个系统,它能够在网页上展示财务摘要。这个系统具备滚动功能,并且能够将负数以红色突出显示。 现在,假设利益相关者希望将同样的信息整理成一份报告,以便在黑白打印机上打印出来。这份报告应当有恰当的分页设计,包括页眉、页脚以及列标题。此外,报告中的负数应该用括号括起来,以便清晰标识。 显然,我们需要编写一些新的代码来处理这些需求。但是,究竟有多少现有的代码需要被修改或更新呢? 一个优秀的软件架构应当将需要修改或更新的代码量降至最低,理想情况下,这个数量应该是零。
想象一下,我们有一个系统,它在一个网页上显示财务摘要。网页上的数据可以滚动,负数以红色显示。 现在,假设利益相关者要求我们将相同的信息制作成一个报告,以便在黑白打印机上打印。这个报告需要有页码、页眉、页脚和列标题,并且负数需要用括号括起来。 显然,我们需要编写一些新的代码来实现这个功能。但是,我们需要修改多少旧的代码呢? 一个好的软件架构设计应该尽可能少地改变旧代码。理想情况下,我们不应该改变任何旧代码。
设想我们有一个系统,可以在网页上展示财务摘要。网页上的数据可以滚动,负数显示为红色。 现在,设想利益相关方要求我们将相同的信息制作成一份报告,用于黑白打印机打印。报告需要适当分页,包括适当的页眉、页脚和列标签,负数应被括号包围。 显然,我们需要编写一些新的代码。但需要修改多少旧的代码呢? 一个优秀的软件架构应尽量减少需要修改的旧代码量,理想情况下为零。
想象一下,我们有这样一个系统:在网页上显示财务摘要。页面上的数据显示可滚动,负数以红色渲染。 现在想象一下,利益相关者要求将这些相同的信息转换为报告,以便在黑白打印机上打印出来。报告应正确分页,包括适当的页眉、页脚和列标签。负数应用括号括起来。 显然,必须编写一些新的代码。但是需要更改多少旧代码? 一个好的软件架构会将更改的代码量减少到最低限度。理想情况下是零。
想象一下,我们有一个系统,在网页上显示财务摘要。页面上的数据可以滚动,负数以红色显示。 现在想象一下,利益相关者要求将这些信息转化为一份要打印在黑白打印机上的报告。报告应该有适当的分页、页眉、页脚和列标签。负数应该用括号括起来。 显然,需要编写一些新代码。但是,有多少旧代码需要改变呢? 一个好的软件架构应该将需要改变的代码量减少到最低限度。理想情况下,是零。
假设我们有一个系统,它在网页上显示财务摘要。页面上的数据是可滚动的,负数以红色显示。 现在想象一下,利益相关者要求将这个相同的信息转换为报告,以便在黑白打印机上打印。报告应该正确分页,包括适当的页眉、页脚和列标签。负数应被括号包围。 显然,必须编写一些新代码。但是,有多少旧代码需要更改呢? 一个好的软件架构将更改的代码量减少到最低限度。理想情况下,为零。
想象一下,我们有一个系统在网页上显示财务摘要。页面上的数据是可滚动的,负数以红色呈现。 现在设想一下,利益相关者要求将这些相同的信息转换为一份报告,以便在黑白打印机上打印。报告应该正确分页,包括适当的页眉、页脚和列标签。负数应该用括号括起来。 显然,需要编写一些新的代码。但是需要更改多少旧代码? 一个好的软件架构会将更改的代码量减少到最低限度。理想情况下,零。
想象一下,我们有一个系统,能在网页上展示财务摘要。页面上的数据可以滚动,负数以红色显示。然后设想,利益相关者希望将同样的信息转化为一份黑白打印的报告。这份报告需要适当分页,并具备合适的页眉、页脚以及列标签。负数应包围在括号内。显然,我们需要编写一些新代码。但究竟有多少旧代码需要修改呢?优秀的软件架构旨在将变更代码量降至最低,甚至实现零变更。
想象一下,我们的系统可以在一个网页上展示财务概览,并且当出现负数时会用红色高亮显示。然后,假设利益相关方希望将同样的信息转换成一个可打印的报告,且这份报告需要在黑白打印机上进行打印,包含合适的页码、页眉、页脚以及列标题。此外,报告中的负数需要用括号括起来以示区分。 显然,我们需要编写一些新代码来实现这一需求。但问题来了:我们需要改动多少现有的代码呢?优秀的软件架构应该能够最大限度地减少这种代码修改的工作量,理想状态下甚至完全不需要修改现有代码。
在设计软件架构时,需要考虑一个系统既要展示在网页上的财务摘要,又要生成一份黑白打印机可打印的报告。报告需要正确分页,并具有适当的页眉、页脚和列标签。对于负数,应使用括号进行包裹。 为了减少更改的代码量,需要设计一个灵活的架构,以便在两种情况下都能良好地工作,并尽可能减少对已有代码的修改。对于数据格式的修改,可以提供一些通用的转换函数或方法来实现。对于“negative numbers should be surrounded by parentheses”的要求,可以解释为打印报告时需要将负数显示为红色,并在其前后添加括号以示区别。
设想一下,我们需要把一个网页上的财务总结转化为打印版的报告。这个报告要在黑白打印机上打印,有页眉、页脚和列标签,还要特别标注出负数。这需要我们添加一些新的代码。那么,我们要改动多少原本的代码呢?良好的软件架构可以让改动的代码量降到最低。最好是不改动任何代码。
OpenAI/gpt-3.5-turbo
和Xunfei/Spark3.1
没有做意译,没有完全理解这个需求。Ali/qwen-turbo
的翻译,第一部分大段内容被漏掉了。Tencent/ChatPro
整体很流畅,但是自己加了一部分原文没有的内容。- 注意:大型语言模型的响应基于概率性预测,因此并不保证每次都一致。只有通过广泛的测试用例和多次测试,才能更准确地评估模型的性能。