这个列表中,是目前已知的存在于 PB2 项目的问题。其中既有我们自己在做这个项目过程中的反思,也有来自用户的反馈。我们将这些问题列在这里,既是作为将来改进的方向,也是为了帮助你充分了解此系统。
PB2 是一个完全运行在 Google App Engine 平台上的网站项目,用到了 GAE 平台提供的几乎所有功能。因此目前项目实际上已经被锁定在 GAE 平台,如果要将代码和数据迁移至自己的私有服务器上运行,那么将需要改写数据访问方面的很多代码(目前 PB2 并没有一个足够好的数据访问层抽象),并且进行一些复杂且耗时的数据迁移工作。
PB2 使用了 Google 的 webapp 框架,但是由于 2010 年第一季度初期设计时的匆忙,并没有在代码复用和设计模式上有足够充分的考虑,所以目前 PB2 中存在大量重复代码,并且也缺乏一个足够好用的 BaseHandler 实现。
目前 PB2 在应该用到事务封装的数据写入时,完全没有用事务封装,这是由于开发人员缺乏此方面的经验。因此如果在访问量非常巨大时,可能会出现一些目前无法预料的问题。
PB2 的数据写入延迟平均在 100ms 甚至更高,这是很糟糕的性能指标。但是目前完全没有办法对此进行优化,除非 Google 自身对 App Engine 的 datastore 进行大升级。目前即使想花钱也无法对 PB2 的写入延迟进行优化。
由于 datastore 的一些限制(包括性能和功能方面),目前在一些非常适合用 Follow 进行信息架构设计的地方无法实现。