问题标签 [production-environment]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - 如何处理跨站点的 javascript 和 css 文件?
我最近对如何在 Web 应用程序中处理共享的 javascript 和 css 文件有了一些想法。
在我正在处理的当前 Web 应用程序中,我得到了大量不同的 javascripts 和 css 文件,它们放置在服务器上的一个文件夹中。一些文件被重用,而另一些则没有。
在生产站点中,加载大量 HTTP 请求以及加载大量不必要的 javascript 和冗余 css 是非常愚蠢的。解决方案当然是在每页创建一个仅包含必要信息的大捆绑文件,然后将其最小化并压缩(GZIP)发送到客户端。
如果您打算创建一组 javascript 文件并手动最小化它们,则无需担心,但由于该应用程序会持续维护并且事情确实会发生变化和发展,因此在推出时手动执行此操作很快就会变得令人头疼将 javascripts 和/或 css 文件更改为生产的新更新。
有什么好的方法来处理这个?你如何在你的应用程序中处理这个问题?
debugging - 调试仅生产错误的过程是什么?
让我先说一下,我对这个话题非常无知,以至于我什至不知道这个问题是否有客观的答案。如果它最终是“不是”,我将删除或投票关闭该帖子。
场景如下:我刚刚编写了一个小 Web 服务。它适用于我的机器。它适用于我的团队负责人的机器。据我所知,它在除生产服务器之外的每台机器上都有效。生产服务器在失败时吐出的异常源自第三方 JAR 文件,并且信息不足。我在网上搜索了几个小时,但没有找到任何有用的东西。
那么跟踪仅在生产机器上发生的问题的程序是什么?为此,是否有标准方法,或者可能是工具类别/系列?
引发这个问题的错误已经得到修复,但这更多是由于好运而不是可靠的调试方法。我问这个问题以供将来参考。
编辑:
到目前为止,这个问题的答案似乎可以用一个词来概括:logging。日志记录的一个问题是它需要预先考虑。如果现有系统中出现日志记录不佳的情况,或者客户担心敏感数据并且不希望系统中有大量日志记录系统,该怎么办?
一些相关问题:
在生产系统中测试帐户和产品 在
生产代码/服务器上运行测试
.net - Replay Director 的 .NET 等效项
我想知道是否有与 Replay Director 相当的 .NET 第三方工具。
ruby-on-rails - 在生产环境中设置 Subdomain-Fu?
我在我的 Rails 应用程序中使用流行的 subdomain-fu 来实现子域功能。我看过 Railscast 并阅读了我可以通过谷歌找到的所有内容。
在开发环境中,您需要手动将可用的子域添加到 /etc/hosts 文件中。我明白了。但是这在生产中是如何工作的呢?这似乎被认为是如此明显,以至于没有人在任何地方提及它。但我想我不明白。
显然,必须可以在生产中设置动态解决方案,否则子域根本无法扩展,但我不确定我需要做什么。我在 Ubuntu 机器上运行 Apache + Passenger。我在我的虚拟主机文件中设置了一个通配符 ServerAlias,如下所示:
但我不确定我还需要做什么才能让我的子域正确解析。任何有关此标准方法的指导将不胜感激。
erlang - 便携式二郎
有没有推荐的方法来“引导”一个 Erlang 发行版?我想在我没有根提升或开发工具集(没有编译器等......)的一堆机器上运行 erlang。我的想法是尽可能多地预先打包(在具有相同架构的机器上)。一个可用的 Erlang 环境的最低要求是什么?
iphone - iPhone 生产/发布异常处理
在此之前,请原谅我对 iPhone/Objective-C 最佳实践缺乏了解;我来自 .NET/C# 背景。
虽然,我已经阅读了很多关于 iPhone 异常处理的帖子,但我仍然不清楚大多数人为生产代码做了什么。此外,我还没有找到任何具有我通常期望的错误处理的开源应用程序。以下是我的问题:
1)如果出现意外结果导致应用程序最终失败,你会抛出异常还是等待它稍后失败?例如,
2)你验证参数吗?例如,在 C# 中,我通常会检查 null,如果需要,会抛出 ArgumentNullException。
3) 当应用程序崩溃时,崩溃信息会自动记录还是我需要设置未处理的异常处理程序?我可以在这个方法中显示一个 UIAlertView 来通知用户发生了一些不好的事情,而不是让应用程序消失吗?(如果是这样,我无法让它工作。)
4) 最后,为什么我没有看到有人实际使用@try/@catch/@finally?它在 C# 中被广泛使用,但我还没有找到使用它的开源应用程序。(也许我只是在看错误的应用程序。)
ruby-on-rails - 多服务器 Ruby on Rails 生产日志记录
我目前有一个跨四个应用程序服务器的 RoR 应用程序,每个实例具有独立的日志。在不求助于系统日志的情况下,将日志汇总到一个公共位置的最佳方法是什么?
java - 高效访问 HttpServletRequest 以进行调试打印
为了调试失败的请求,我想打印来自 HttpServletRequest 的所有信息。
现在,一个请求可能会部分失败(例如,几个匹配成功,但一个失败)在这种情况下,我想在失败的内部方法中捕获异常,打印错误 + ServletUtil.toStringHttpServletRequest( ) 并继续提供服务(降级但仍然有用与完全请求失败相比)。
我们当前的实现要么捕获异常并打印哑信息(“getRules failed”),要么将异常一直抛出到 doGet() (有效地为用户取消服务),在 doGet() 中我可以访问 HttpServletRequest 我可以在相关的调试信息(标题、参数...)处打印。
将 HttpServletRequest 传递给可能失败的请求期间调用的每个函数似乎有点难看,如果没有其他优雅的解决方案会弹出,我会这样做。
制作一个前置 ServletUtil.toStringHttpServletRequest() 并将其存储在 ThreadLocal 映射中会浪费内存和 CPU 时间。出于某种原因,将 HttpServletRequest 对象存储在 ThreadLocal 中感觉不对(如果我错了,请更正)。
调试信息被写入本地机器日志并直接通过电子邮件发送给开发人员(伟大的工作 log4j TLSSMTPAppender),因此在几个地方登录是不切实际的(需要组合几封电子邮件以了解发生了什么)和 ssh'ing服务器已经老了:)(我们这里都是阴天......当我看到错误时服务器可能不存在)
因此,我的解决方案是访问“PrintErrorUtility”(TODO:更好地命名它)。这将接收 (String errorMsg, Throwable t, HttpServletRequest) 将所有相关信息一起打印错误...这将从内部 try {} catch 块中调用,该块将通知错误但不会取消请求,因为其中。
显然,我正在考虑在生产中运行的服务器。
评论?请指教。
谢谢你,马克西姆。
git - 如果它也是 GIT 存储库,则从网络服务器提供目录
如果解决了正确的安全问题,是否有任何理由不提供包含生产代码的 GIT 存储库的目录。该目录是应用程序的 webroot,但如果使用 Apache 拒绝访问 .git 文件,是否有理由不这样做?
sql - 推荐的方法如何修改生产 SQL 数据库的架构?
假设有一个包含 100 多个表的数据库,并添加了一个主要功能,这需要修改 20 个现有表并添加 30 个以上。这些更改是由多个开发人员在开发数据库上花费很长时间(6 个月)完成的。让我们假设更改不会使任何现有的生产数据无效(例如,添加的列上允许使用默认值/空值,没有无法满足的新关系或约束)。
将模式中的这些更改发布到生产数据库的最简单方法是什么?最好不要长时间关闭数据库。