JCR API或Apache Sling

Ant*_*ski 5 jcr sling aem

我阅读了很多文章,比如JCR和Apache Sling,我对使用什么感到困惑.一些作者建议使用JCR API,例如更多性能优化,其余的都在Apache Sling一边,因为它的编写速度更快,而且从长远来看,可读性和可维护性更高.我有一些问题:

  • 从你的角度来看,哪种做法更好?
  • 什么在生产项目中经常使用?

Kam*_*ski 5

我认为Maciej Matuszewski在他的演讲JCR,Sling或AEM中已经足够用尽这个主题了吗?我应该使用哪种API以及何时使用?.

在大多数情况下,建议使用Apache Sling作为更高的API,而在需要考虑性能时需要JCR.然而,重要的是要知道这两种情况之间的边界.

Maciej注意到,在不考虑任何缓存的情况下打开常规AEM页面大约相差1ms.在这种情况下,完全没有必要照顾性能.我们应该专注于编写可读,可理解,减少到最小的代码,并重用已经通过适当的单元测试和同行评审已经涵盖的现有API,框架,util类,而不是从一开始就重新发明轮子.基于此,我们还应该更喜欢AEM层而不是Sling层.

根据我的经验,我会说JCR应该在少数情况下使用,主要是在遍历CRX数据库的大量数据时,任何搜索API都无法实现.

因此,区别在于使用C#或C++作为计算机游戏开发的编程语言 - 在某些情况下,它足以保持更高的API以便于开发,但是在某些情况下需要降低并开始使用C++指针.

但是,最重要的是不要在实现中混合使用两个抽象层.