gpt4 book ai didi

objective-c - 在实际代码中使用 Uncle Bob 的 Clean Code 中的想法

转载 作者:搜寻专家 更新时间:2023-10-30 19:57:16 25 4
gpt4 key购买 nike

我刚刚读完 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com