创建使用您构建的其他功能的函数是一种好习惯吗?

时间:2010-07-31 19:23:56

标签: function language-agnostic portability

创建使用您构建的其他功能的函数是不错的做法?

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

由于

7 个答案:

答案 0 :(得分:13)

非常好的练习。

它被称为代码重用,这就是编程的全部内容。

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

良好的代码由小而易懂的功能组成。有人说超过30行的功能太长了。

答案 1 :(得分:4)

是。这是编程的基础。它决不会使代码变得不那么便携,而是相反。

答案 2 :(得分:2)

在程序和面向对象的代码中 - 是的,虽然在某些时候你会想要回顾你已经得到的东西&查看库/ etc是否应该专用于您需要的功能。

在SQL中,没有。 SQL是基于集合的,抽象的函数/视图/存储过程是脆弱的,并且往往不能像使用尽可能少的函数/ etc重写一样好。

答案 3 :(得分:1)

除非你只有一个大功能,这是你的整个程序(并且你只能用意大利面条代码做复杂的事情),你将被迫调用其他功能,所以我不明白这一点你的问题。

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

  • 保存了很多代码行(重用)
  • 避免修复很多东西而不是那个
  • 保持高可读性
  • 保持高度可维护性:只改变功能,只要你调用它就会改变)

所以请调用你从其他函数编写的函数,它是如何工作的,它很棒。

答案 4 :(得分:1)

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

答案 5 :(得分:1)

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

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

答案 6 :(得分:0)

我会说是的。

如果您的功能可分为2个逻辑部分,可能是可重用的,请执行此操作。

所有大型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可以重复使用,例如通过搜索网站某种内容的功能。