- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我刚刚读完 Uncle Bob 的 Clean Code 中的“函数”一章。主要建议是确保函数短小——真的短。他们应该在每个抽象级别只做一件事。这是我正在制作的用于学习 Cocoa 的应用程序的功能(来自 Andy Matuschak 的想法)。
- (IBAction)go:(id)sender
{
NSString *output = nil;
if ([[nameInputField stringValue] isEqualToString:@""])
{
output = @"Please enter your name";
}
else
{
NSString *date = [[NSDate date] descriptionWithCalendarFormat:@"%A, %B %d"
timeZone:nil
locale:[[NSUserDefaults standardUserDefaults] dictionaryRepresentation]];
output = [NSString stringWithFormat:@"Hello, %@! Today is %@.", [nameInputField stringValue], date];
}
[responseOutputField setStringValue:output];
}
基本上,此函数从文本字段 (nameInputField
) 中读取名称并将消息输出到另一个文本字段 (responseOutputField
) 我想知道 a) 如果这个函数在每个抽象级别做“一件事”,以及 b) 如何缩短它。
最佳答案
我不同意此功能处于正确的级别。根据当前输入计算出输出内容的核心计算应该纳入另一个函数。这将使该计算更易于测试(因为您不需要任何文本字段,您可以单独进行单元测试)和可重用,因为它具有更少的上下文包袱。实际上,该函数是硬连接到特定用途的,因此不可重复使用。
实际上,如何在不实际运行应用程序的情况下对其进行测试?
关于objective-c - 在实际代码中使用 Uncle Bob 的 Clean Code 中的想法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2852444/
在这个 fiddle 中:http://jsfiddle.net/d8582tg2/ ,我正在尝试使用悬停选择器来显示工具提示,但无法正常工作。 Hover over
关闭。这个问题是opinion-based .它目前不接受答案。 想要改进这个问题? 更新问题,以便 editing this post 可以用事实和引用来回答它. 关闭 5 年前。 Improve
一周前,我观看了 Robert C. Martin 关于架构的演讲: http://www.youtube.com/watch?v=WpkDN78P884 我不明白您在 0:24:46 看到的图表。我
考虑 Uncle Bob's Clean Architecture (或洋葱架构) 假设作为我应用程序中的登录用户,我收到了一个深层链接 url “myapp://events/[event_id]”
这个问题在这里已经有了答案: Is there a CSS parent selector? (33 个回答) 6年前关闭。 有没有办法用css选择元素的叔叔?具体来说,我正在为具有以下形式条目的页面
有一道练习题Uncle Johny上www.codechef.com 由于篇幅较长,我提供了链接。 https://www.codechef.com/problems/JOHNY/ 我有两个解决该问题
所以我有一些代码, Notes... n + 现在,div.tools
在第 2 章:有意义的名称中,Bob 叔叔写道: Don't Add Gratuitous Context In an imaginary application called "Gas Statio
这个问题已经有答案了: How to access the correct `this` inside a callback (15 个回答) 已关闭 7 年前。 问题是我无法访问 set方法:
我刚刚读完 Uncle Bob 的 Clean Code 中的“函数”一章。主要建议是确保函数短小——真的短。他们应该在每个抽象级别只做一件事。这是我正在制作的用于学习 Cocoa 的应用程序的功能(
我有一个基于多个参数计算契约(Contract)利息的重型方法。我确实需要这些参数中的每一个,但这违反了鲍勃叔叔的规则,即参数不得超过 2 或 3 个。 public double calculInt
我正在尝试在我的 Android 应用程序中使用 Uncle Bob 的简洁架构。所以,我关注了这个人的great implementation基于 RxAndroid,用于 DI 的 Dagger
我是一名优秀的程序员,十分优秀!