- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在他的Monad Reader article on Hoogle第 33 页,Neil Mitchell 提倡将 Haskell 项目捆绑到一个具有多种模式的可执行文件中。 (仅供引用,Neil Mitchell 的 CmdArgs 库让这一切变得简单。)所以可能有一种模式可以启动 Web 服务器,另一种模式可以从命令行查询数据库,等等。引用:
Provide one executable
Version 3 had four executable programs – one to generate ranking information, one to do command line searching, one to do web searching, and one to do regression testing. Version 4 has one executable, which does all the above and more, controlled by flags. There are many advantages to providing only one end program – it reduces the chance of code breaking without noticing it, it makes the total file size smaller by not duplicating the Haskell run-time system, it decreases the number of commands users need to learn. The move to one multipurpose executable seems to be a common theme, which tools such as darcs and hpc both being based on one command with multiple modes.�
我的问题:通常认为 Haskell 中的最佳实践是将所有内容放在一个更大的、单一的可执行文件中,而不是遵循“Unix 哲学”并构建小型、独立、互操作的 Haskell 程序,这些程序通过数据库或文本流?
我可以看到大型单体 Haskell 程序如何通过在整个系统中共享核心数据类型来让您更好地利用类型安全。但是针对大型整体的标准警告似乎仍然适用,包括增加依赖冲突的风险。
最佳答案
经常有许多 Unix 工具通过子命令提供复杂的功能,而且我认为最近它们的数量一直在增长。
我的第一个例子是 Unix shell。有几个内置命令,各种 shell 构建在不同的命令集中,同时将其他命令作为二进制文件实现。
另一个经典的 Unix 例子是 vi 编辑器。许多实现提供只读文件查看器 (view) 以及基于命令的编辑器 (ex) 的功能,具体取决于调用二进制文件的名称。二进制文件以多个名称链接到文件系统,以便同一个二进制文件提供所有工具。
作为一个更现代的例子,git 版本控制包的实现方式与我描述的 vi 类似,尽管它有一小部分二进制文件,这些二进制文件链接为一个多更大的名称集在文件系统中,而不仅仅是一个二进制文件。此外,您可以通过单独的文件名调用功能,例如 git-status
和 git-diff
,或者您可以通过主要的 使用多级命令code>git
二进制文件,例如git status
和 git diff
。
所以我建议,即使在 Unix 世界中,这已经被接受了很长一段时间的做法,你不应该因为与 Unix 哲学的冲突而放弃这个建议。
关于haskell - 单体 Haskell 项目 vs 将它们分割成更小的程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21917296/
现在我需要确切地知道如何在需要时立即部署基于微服务的后端?我可以自己管理所有技术的集成,但是在 AWS 上托管时,我不可能获得这么多实例,而且现在也买不起。 我正在考虑从单一后端开始的想法,同时有可能
我有一个使用 spring 3.1 和 spring-security 3.1 以及 Java 7 开发的整体式 Spring Web 应用程序,并将其部署在 tomcat 7 上。 现在我有一个新要
在他的Monad Reader article on Hoogle第 33 页,Neil Mitchell 提倡将 Haskell 项目捆绑到一个具有多种模式的可执行文件中。 (仅供引用,Neil M
我有一个单进程有 5 个线程的单体应用程序。每个线程完成某些特定任务。考虑使用 docker 将此应用程序移动到微服务。如果我看一下架构,每个工作线程都会变成一个 docker 进程。因此,在某种程度
我知道有人问过很多类似的问题,但我还没有看到对链接和管理样式的所有三种可能方法的比较。哪个是浏览性能最好和最差的?我知道 推荐超过@import因为它允许并行下载,但我也听说单个大型 CSS 优于 正
多年来,我的目标是从 ASP/VBScript 转向“更好”的语言——我的偏好是 C#,因为我有 C 技能——但我也会考虑其他语言(包括 PHP 等,所以不仅仅是 DotNet ) 目标是使用一种对我
我是一名优秀的程序员,十分优秀!