ydf0509/funboost

引入的包太多了,可以优化包的管理吗?

Opened this issue · 6 comments

刚才重新创建了环境,专门用于学习测试这个框架,装一个包,发现有很多依赖包:
Successfully installed AMQPStorm-2.7.1 Automat-20.2.0 Flask-2.1.1 Jinja2-3.1.1 MarkupSafe-2.1.1 Werkzeug-2.1.1 aiohttp-3.8.0 aiosignal-1.2.0 amqp-5.1.0 apscheduler-3.7.0 async-timeout-4.0.2 attrs-21.4.0 bcrypt-3.2.0 blinker-1.4 certifi-2021.10.8 cffi-1.15.0 charset-normalizer-2.0.12 click-8.1.2 concurrent-log-handler-0.9.19 constantly-15.1.0 cryptography-36.0.2 decorator-4.4.0 deprecated-1.2.13 dnspython-1.16.0 dominate-2.6.0 elastic-transport-8.1.1 elasticsearch-8.1.2 eventlet-0.31.0 fabric2-2.6.0 flask-bootstrap-3.3.7.1 flask-login-0.6.0 flask-wtf-1.0.1 frozenlist-1.3.0 funboost-15.9 gevent-21.1.2 gnsq-1.0.1 greenlet-1.1.2 hyperlink-21.0.0 idna-3.3 importlib-metadata-4.11.3 incremental-21.3.0 invoke-1.7.0 itsdangerous-2.1.2 kafka-python-2.0.2 kombu-5.2.4 multidict-6.0.2 nats-python-0.8.0 nb-filelock-0.7 nb-log-7.5 packaging-21.3 paho-mqtt-1.6.1 pamqp-2.3.0 paramiko-2.10.3 pathlib2-2.3.7.post1 persist-queue-0.7.0 pika-1.2.0 pikav0-0.1.23 pikav1-1.0.13 portalocker-2.4.0 psutil-5.9.0 pyasn1-0.4.8 pyasn1-modules-0.2.8 pycparser-2.21 pymongo-4.0.2 pynacl-1.5.0 pyparsing-3.0.7 pysnooper-1.1.0 python-json-logger-0.1.10 pytz-2022.1 pyzmq-22.3.0 rabbitpy-2.0.1 redis-4.2.1 redis2-2.10.6.3 redis3-3.5.2.3 requests-2.27.1 rocketmq-0.4.4 semantic-version-2.9.0 service-identity-21.1.0 setuptools-rust-1.2.0 six-1.16.0 sqlalchemy-1.3.10 sqlalchemy-utils-0.36.1 tomorrow3-1.1.0 tornado-6.1 twisted-22.2.0 typing-extensions-4.1.1 tzlocal-2.1 urllib3-1.26.9 vine-5.0.0 visitor-0.1.3 wrapt-1.14.0 wtforms-3.0.1 yarl-1.7.2 zipp-3.7.0 zmq-0.0.0 zope.event-4.5.0 zope.interface-5.4.0

建议:

  1. 把不必要的依赖去掉;
  2. 如果实在需要,是否可以按需引入;

感谢作者开源出来的工具。这里有几个看法,欢迎探讨:

  1. 使用装饰器解决异步调用问题,这很简单,但是配置文件并不简单;
  2. 使用文档希望能写的正常一点,像大多数python包的一样。
  3. 如果作者有进一步的开发计划/优化想法,愿意尽绵薄之力。

你说的配置文件难,实际已经说明了,一个字母都不需要改,都有默认值,你没看文档吧。例如你使用redis中间件,只需要配置redis ip 密码,如果你是本机安装redis和没密码,那么配置文件一个字母都不用动,你以为要改很多配置吗。并不是

使用文档只有1.3,其余的用法哪里有什么变化,只是装饰器参数变化了,所以根本就不需要再举例子了。其他的举例子都是说明为什么,不然只是举代码例子,那所有例子都是千篇一律,因为这个框架就只有一个装饰器,并没有其他玩法。

框架已经支持了python届所有并发种类,多进程 多线程 单线程 gevent eventlet asyncio,中间件支持了所有能叫的出名字来的消息队列和模拟消息队列,控制方式上实现了celery和scrapy结合的所有控制方式,例如控频 过滤 超时杀死,现在没有需要实现的新功能了

关于依赖,顶多一两分钟就安装完了,一次性安装完中间件,后续方便切换中间件,不然每切换一种中间件,用户都要手动安装三方包太麻烦了。只要网络快不是什么大事,又不是天天安装

关于依赖,顶多一两分钟就安装完了,一次性安装完中间件,后续方便切换中间件,不然每切换一种中间件,用户都要手动安装三方包太麻烦了。只要网络快不是什么大事,又不是天天安装

这个理由比较完美一点