【问题标题】:What does "stack" mean, not as in push/pop but as in "the software stack"“堆栈”是什么意思,不是在推送/弹出中而是在“软件堆栈”中
【发布时间】:2015-11-23 16:45:21
【问题描述】:

我经常看到这个作品“堆栈”被用在与我熟悉的不同的环境中。我知道堆栈是一个动态的后进先出列表,您可以在其中推送和弹出内容。即使在过去的汇编程序编程中使用专用的堆栈指针 CPU 寄存器。

但现在我经常看到人们谈论他们的“软件堆栈”(我不知道是指他们的整个代码库?)或“Android 堆栈”或“Microsoft 堆栈”。我对这意味着什么有一个粗略的感觉,但我似乎无法找到一个明确的、确凿的定义。有人吗?

【问题讨论】:

标签: stack


【解决方案1】:

软件堆栈之所以这样考虑,是因为它们通常倾向于将几层抽象层堆叠在一起。

例如,“微软堆栈”是这样的:

  • 一种可用的语言(比如 C#)
  • 使用某些版本的 .NET
  • 在某些版本的 CLR 上运行
  • 在某些版本的 Windows 上运行

可以说,如果您认为工具是其中的一部分,那么软件堆栈会进一步发展,因此可能是某个版本的 Visual Studio 或任何类型的 IDE 和界面构建器和构建工具以及您正在使用的任何东西。

其他人提到了LAMP堆栈,这也是一个堆栈

  • 你写 PHP
  • 使用 MySQL 并由 Apache 调用
  • 在 Linux 上运行

大多数时候,你生活在堆栈的顶部,那里的生活是愉快的。例如,您可以使用 C#,而不必对 CLR 了解太多(尽管您最好了解它)或处理 .NET 的实现方式或不必直接进行内核调用。在 PHP 中,您也不必手动与 MySQL 服务器交互(打开套接字、写入命令、读取答案、反序列化等)。实际上,如果您的堆栈包含诸如 Symfony 之类的框架,那么您甚至大部分时间都不会处理 SQL,因为框架会处理它。

【讨论】:

    【解决方案2】:

    它通常是指用于实现特定目的的程序组合。

    该术语的一个流行用法是 LAMP 堆栈,它指的是:

    • Linux
    • 阿帕奇
    • MySQL
    • PHP

    【讨论】:

      【解决方案3】:

      如果是计算机,我们将拥有多种类型的堆栈

      调用堆栈:堆栈数据结构,用于存储有关计算机程序的活动子例程的信息。 基于堆栈的内存分配。

      Stacks(软件):Mac OS X Dock 上的文件夹视图。

      协议栈:计算机网络协议套件的特定软件实现。

      解决方案栈:一组软件系统,自下而上抽象增加。

      【讨论】:

        【解决方案4】:

        意思是:你使用什么样的开发环境组合?

        常见示例:LAMP

        个人例子:我使用 R、SAS、Python 和 Hadoop

        【讨论】:

          【解决方案5】:

          我想我明白你想问的了。当我遇到数据结构之外的“堆栈”时,它通常是对特定软件生态系统的引用。例如,您可能需要程序 A 和程序 B 来运行程序 C。基本上是为特定结果/结果共同运行的软件。我不确定您是否正在寻找这种类型的高级定义,但我希望它有所帮助。

          【讨论】:

            【解决方案6】:

            “软件堆栈”是一个通用术语,用于引用一组主流技术,当它们一起使用时,可以完成一个完整的软件系统(例如 UI、服务、逻辑和持久性),通常在特定的操作系统上(例如WindowsLinux)和/或运行时(JVMCLRjavascript 等)。

            例如,一个常见的“Microsoft Web Stack”可能包含jQuery(或Angular.js)、ASP.Net MVCASP.Net Web APIC#Entity Framework,以及一个关系数据库,例如Sql Server .

            其他堆栈包括MEAN和“LAMP”等

            同样,这导致了Full Stack Developer 一词,即具有特定堆栈的所有技术能力的开发人员,即在特定软件堆栈中可以构建任何层或构建完整系统的开发人员。

            不要与Full StackOverflow Developer :)混淆

            【讨论】:

              猜你喜欢
              • 2011-05-30
              • 2011-05-09
              • 1970-01-01
              • 2023-03-09
              • 2014-01-29
              • 2010-09-07
              • 2010-09-15
              • 1970-01-01
              相关资源
              最近更新 更多