Masonite框架还不成熟,它的不足、bug列表,持续更新
最近一直在研究python的web框架,认真看了django, 也认真看了masonite。还看了laravel。
我很喜欢masonite laravel thinkphp三个框架的容器,还有它们的服务提供者。非常棒的设计,有助于框架性能提升,以及插件的开发。
我挺喜欢masonite的设计。但却发现这框架不成熟,没有经过正式项目的长期磨练。
我跟框架作者联系过,提了一些建议。有些正在改进中。有些在未来会考虑。有些因为忙,以后再说。
以下测试,全部基于最新版masonite 4.15.0, linux操作系统
bug:
1 这是判断key是否存在,而不是判断是否有值。若这样使用,缓存穿透问题,就无解。
应该用exists(),这是redis包官方提供的正确用法。
注:laravel thinkphp django 均无此问题
2 这是自增自减的操作,redis包官方提供了incrby() decrby()方法。他偏不用,又要自己实现。但这会导致性能不好,他自己查出来再计算后重新写入。以及会有并发问题。
注:laravel thinkphp django 均无此问题
性能不好:
1 使用Masonite封装的缓存,此代码,用时2.76秒
注:其它框架只测试了thinkphp,无此问题。但由于php的redis插件是C语言所写,所以也没可比性。
我自己另外单独使用redis库,用时0.90秒
不足:
注:laravel thinkphp django 均无以下不足
1 迁移文件,无法设置联合索引,只有简单的几个单字段索引
2 session,不支持存到redis
3 没有日志模块,如果要写日志,自己想办法。
4 没多语言模块
5 ORM不支持读写分离。
向楼主学习。。我之前使用过thinkphp,再看这个软件的时候 MVC的结构很像,感觉也容易入门,但缺乏案例代码学习。
thinkphp其实之前的3.2版本也很经典,后面的感觉反而复杂了。
还是喜欢laravel啊,能用laravel开发WEB,为啥要用这个啊,虽然好多东西和laravel很像,但不放心啊。