fak*_*eft 36
使用linux的文件访问时间来查看实际使用的内容.
这需要:
安装在使用atime(ubuntu 12.04上的strictatime)选项安装的分区上的gem:
sudo mount -o remount,strictatime /
完整的测试覆盖率(即我们将依靠测试运行来更新文件访问时间)
记下时间并运行测试.然后从你的gemdir,做:
ls --time-style long-iso -ltud1 $PWD/*/lib/** | grep "21:44" | sed s/.*gems.// | sed s/.lib.*// | sort -u
Run Code Online (Sandbox Code Playgroud)
将21:44改为你运行测试的时间.
L.R*_*.R. 13
运行您的测试,然后:
gem stale
Run Code Online (Sandbox Code Playgroud)
执行以下操作:
stale 命令列出已安装 gem 中所有文件的最新访问时间。
您可以使用此命令来发现您不再使用的 gem 和 gem 版本。
mah*_*off 12
如果在缺席的情况下通过所有测试,则应考虑删除任何宝石.
假设你有很好的测试覆盖率 - 特别是高级功能测试 - 你可以编写一个脚本来有选择地一次删除一个gem.即运行所有测试N次,其中N是Gemfile中的宝石数量,每个测试都有一个缺少的宝石.这将有助于清除宝石,而不是减轻它们的重量.
我怀疑是否有一种自动方法可以在Gemfile中找到未使用的宝石.
对于随着时间的推移构建应用程序的人,应该很容易手动识别由于某种原因而被丢弃的宝石.
对于从其他人继承的遗留应用程序,手动识别未使用的宝石是一项非常困难的任务.如果系统有全面的测试覆盖率,它将有助于通过反复试验删除未使用的gem,同时确保测试在Gemfile中的每次更改时通过.
有一个bundle clean --force命令可以删除Gemfile.lock定义之外的gem .
请参阅bundle-clean.
| 归档时间: |
|
| 查看次数: |
9486 次 |
| 最近记录: |