• ActiveSupport 的 Autoload 扩展

    Ruby 有个内核方法 autoload,可以很方便的完成复杂的依赖加载,但是这个方法需要指定目录。遵守约定大于配置的 Rails,早已经定义好了 目录规范,此时就显得目录参数有点多余,于是 Rails 就在 ActiveSupport::Autoload 里对它进行了扩展。另外 eager_load 则是 ActiveSupport::Autoload 里进一步通过预加载提升性能的功能。 [阅读全文]
  • 内部系统的 API 响应和异常实践

    Post thumbnail
    Post thumbnail
    Web 开发中前后端分离的一大阻碍是交互的数据结构复杂难用,离服务端直接渲染那样简单和灵活相差甚远。另外很多项目没考虑自身场景的滥用了 API 规范,比如内部的后台系统,经常被“规范”束缚强制统一响应结构,将 4xx 甚至 5xx 异常全部改成 2xx 响应,然后自己定义一套复杂的异常规范。 [阅读全文]
  • 后台系统重构 - 菜单同步

    公司决定要使用前后端分离方式,重构一个维护了十余年的后台系统(原来是后端渲染方式)。由于持续过程较长,需要新旧系统并存一段时间。这个并存希望对使用者透明,因此我们把新系统界面结构弄的跟旧系统很相似,且我们要实现两个系统菜单完全一致。 [阅读全文]