Function 创建使用您构建的其他函数的函数是否是一种良好的做法?

Function 创建使用您构建的其他函数的函数是否是一种良好的做法?,function,language-agnostic,portability,Function,Language Agnostic,Portability,创建使用您构建的其他函数的函数是否是一种良好的做法 我想知道这样做是否好,因为这样会降低代码的可移植性 谢谢你,非常好的练习 这就是所谓的代码重用,这就是编程的全部内容 至于你关于它使“代码不那么可移植”的论点,这只在非常低级的语言(如汇编语言)中才有意义,即使这样,它也使它更可移植,因为你可以将特定于平台的代码隔离到函数中 好的代码由小的、可理解的函数组成。有人说一个超过30行的函数太长了。非常好的实践 这就是所谓的代码重用,这就是编程的全部内容 至于你关于它使“代码不那么可移植”的论点,这只

创建使用您构建的其他函数的函数是否是一种良好的做法

我想知道这样做是否好,因为这样会降低代码的可移植性

谢谢你,非常好的练习

这就是所谓的代码重用,这就是编程的全部内容

至于你关于它使“代码不那么可移植”的论点,这只在非常低级的语言(如汇编语言)中才有意义,即使这样,它也使它更可移植,因为你可以将特定于平台的代码隔离到函数中

好的代码由小的、可理解的函数组成。有人说一个超过30行的函数太长了。

非常好的实践

这就是所谓的代码重用,这就是编程的全部内容

至于你关于它使“代码不那么可移植”的论点,这只在非常低级的语言(如汇编语言)中才有意义,即使这样,它也使它更可移植,因为你可以将特定于平台的代码隔离到函数中


好的代码由小的、可理解的函数组成。有人说一个超过30行的函数太长了。

是的。这是编程的基础。它绝不会降低代码的可移植性,相反。

是的。这是编程的基础。它绝不会降低代码的可移植性,反之亦然。

除非你要有一个大函数,那就是你的整个程序(而且你只能用意大利面条代码来做复杂的事情),否则你将被迫调用其他函数,所以我看不出你问题的重点

实际上,如果您将功能封装在函数中并在程序中使用它,您将:

  • 保存大量代码行(重用)
  • 避免修理很多东西,而不是那个
  • 保持高可读性
  • 保持高可维护性:仅更改功能,无论何时调用它,它都会更改)

因此,请调用您从其他函数编写的函数,这就是它的工作方式,它非常棒。

除非您将拥有一个大函数,这就是您的整个程序(并且您将只能使用意大利面代码来完成复杂的事情)您将被迫调用其他函数,因此我看不出您问题的重点

实际上,如果您将功能封装在函数中并在程序中使用它,您将:

  • 保存大量代码行(重用)
  • 避免修理很多东西,而不是那个
  • 保持高可读性
  • 保持高可维护性:仅更改功能,无论何时调用它,它都会更改)

因此,请调用您从其他函数编写的函数,这就是它的工作方式,非常好。

不编写很长的函数是一种很好的做法。这通常需要使用其他自行编写的函数。

最好不要编写很长的函数。这通常需要使用其他自写函数。

我会说是的

如果您有一个功能可以分解为两个逻辑部分,可能是可重用的,那么就这样做

所有大型API都使用内部组件,甚至公共功能也经常使用其他公共功能

例如:

ShowPage(url) {
    request = new Request(url)
    response = request.Send()
    page = response.GetHTML()
    browser.Load(page)
}
可以成为:

RetrievePage(url) {
    request = new Request(url)
    response = request.Send()
    return response.GetHTML()
}

ShowPage(url) {
    page = Retrieve(url)
    browser.Load(page)
}
现在可以重复使用
RetrieveUrl
,例如,通过一个函数在网站上搜索某种内容。

我会说是的

如果您有一个功能可以分解为两个逻辑部分,可能是可重用的,那么就这样做

所有大型API都使用内部组件,甚至公共功能也经常使用其他公共功能

例如:

ShowPage(url) {
    request = new Request(url)
    response = request.Send()
    page = response.GetHTML()
    browser.Load(page)
}
可以成为:

RetrievePage(url) {
    request = new Request(url)
    response = request.Send()
    return response.GetHTML()
}

ShowPage(url) {
    page = Retrieve(url)
    browser.Load(page)
}

现在可以重用
RetrieveUrl
,例如通过函数搜索网站中的某种内容。

在过程性和面向对象的代码中-是的,但在某些时候,您会想查看您所获得的内容&看看库/etc是否应该专用于您所需的功能


在SQL中,没有。SQL是基于集合的,抽象的函数/视图/存储过程是脆弱的,并且往往不会在尽可能少的函数/etc使用的情况下执行和重写。

在过程和面向对象代码中-是,虽然在某个时候你会想回顾一下你所拥有的&看看一个库/etc是否应该专用于你所需要的功能


在SQL中,没有。SQL是基于集合的,抽象的函数/视图/存储过程是脆弱的,并且往往无法在尽可能少使用函数/etc的情况下执行和重写。

您刚刚描述了编程。 熟悉:


重用“东西”是任何工程学科的基本原则之一,而不仅仅是计算机科学。

您刚才描述了编程。 熟悉:


重复使用“东西”是任何工程学科的基本原则之一,而不仅仅是计算机科学。

这是如何降低代码的可移植性的?这不是创建自己功能的全部目的吗?使用它们?它的可移植性较低,因为如果您经常发现自己在一个庞然大物类中拖动只是为了使用单个函数(而且它不是某种形式的“实用类”-一个只包含有用函数的类),则可能需要拖动整个类来使用函数那么你很可能做错了什么。@Jex我想你不明白“可移植”是什么意思。这是怎么让代码变得不那么可移植的?你知道,这不是创建自己函数的全部目的吗?如果你经常发现自己在一个庞然大物类中拖拽仅仅是为了使用一个函数(而且它不是某种形式的“实用类”——一个只包含有用函数的类),那么它的可移植性就比较差,因为你可能需要拖拽整个类来使用函数