V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
xuegj1010
V2EX  ›  Python

代码写大了,该如何规划、布局、架构?

  •  
  •   xuegj1010 · 2018-06-01 17:22:11 +08:00 · 4700 次点击
    这是一个创建于 2356 天前的主题,其中的信息可能已经有所发展或是发生改变。

    小白一个,感觉代码写的越大就越乱,看着很不舒服,不知道该怎么布局,怎样才能让自己的代码看起来更舒服,结构更清晰。python 的设计模式也看不明白,看明白了也不会用。看看自己写的东西,真是糟心~~,文件一多,python 文件互相引用,引着引着就乱了。。。看着 github 上 star 多的项目代码,看着就很舒服,再看看自己写的,感觉就是一坨一坨。。。

    系统各位大神能给小弟出出主意,该怎么进步。

    24 条回复    2018-06-02 12:00:47 +08:00
    kindjeff
        1
    kindjeff  
       2018-06-01 17:23:17 +08:00 via iPhone   ❤️ 2
    照着别人的抄
    zynlp
        2
    zynlp  
       2018-06-01 17:47:31 +08:00 via iPhone   ❤️ 1
    kiss 原则了解一下?
    xrlin
        3
    xrlin  
       2018-06-01 17:51:38 +08:00   ❤️ 2
    多拆分,多分层,少用魔法,避免魔数,逻辑复杂的要添加注释,多写测试。
    qiaobeier
        4
    qiaobeier  
       2018-06-01 18:02:54 +08:00
    照着抄 +1,当然不要瞎抄,一边思考一边抄。
    Raymon111111
        5
    Raymon111111  
       2018-06-01 18:15:14 +08:00
    领域划分
    jinhan13789991
        6
    jinhan13789991  
       2018-06-01 18:17:01 +08:00
    领域划分+1,然后单元测试覆盖,自动化测试,持续集成。
    设计模式~
    anotherlf
        7
    anotherlf  
       2018-06-01 18:34:51 +08:00 via Android   ❤️ 5
    只要代码起作用,大坨有什么关系?
    用这些代码先实现一个小目标,然后雇佣楼上楼下的帮你重构就好了。
    fuckshiter
        8
    fuckshiter  
       2018-06-01 18:35:00 +08:00 via iPhone
    多写,多看别人的代码,然后反过来对比自己,一步一步来,谁小白的时候不是写的乱乱的
    x7395759
        9
    x7395759  
       2018-06-01 18:39:38 +08:00
    多看书啊
    fatedier
        10
    fatedier  
       2018-06-01 18:49:18 +08:00
    考虑下换个语言不~
    misaka19000
        11
    misaka19000  
       2018-06-01 18:54:13 +08:00
    一个字:拆

    把组件和模块拆分开来,每一个模块再继续拆,如此反复,同样对于代码段也观察能否继续拆分,保持方法最小原则,如此反复进行重构
    Light3
        12
    Light3  
       2018-06-01 18:57:07 +08:00

    然后比如说重复的代码 变一个模块 一点点来少很多的
    woodface2233
        13
    woodface2233  
       2018-06-01 18:58:56 +08:00 via iPhone
    花 100w 现金每年请人吧。
    shilyx
        14
    shilyx  
       2018-06-01 19:13:47 +08:00
    多学多练,法无定法
    realpg
        15
    realpg  
       2018-06-01 20:20:11 +08:00
    代码写大了才去考虑这些问题的,多半即使考虑了也会有更多的这个问题……

    我个人的习惯,不管写多小,都是有规划有架构,突然增大了负载也可以 handle
    chemzqm
        16
    chemzqm  
       2018-06-01 20:27:31 +08:00
    用类型语言好一些
    hobochen
        17
    hobochen  
       2018-06-01 20:52:00 +08:00
    《设计模式》了解一下?
    LukeChien
        18
    LukeChien  
       2018-06-01 20:54:46 +08:00 via Android
    Java 了解一下
    picture2200
        19
    picture2200  
       2018-06-01 20:55:15 +08:00 via Android
    大了就拆,拆了太多了就合并。
    glfpes
        20
    glfpes  
       2018-06-01 21:19:00 +08:00 via Android
    花一个季度重构个 2.0 版本吧。。。
    limbo0
        21
    limbo0  
       2018-06-02 03:20:58 +08:00 via Android
    先分层,再划分
    wuqiangroy
        22
    wuqiangroy  
       2018-06-02 08:36:20 +08:00
    拆分,然后把类似的相同调用的归为一起。
    多文件夹。
    wuqiangroy
        23
    wuqiangroy  
       2018-06-02 08:36:50 +08:00
    你可以参考参考 java 的结构。
    RonaldoC
        24
    RonaldoC  
       2018-06-02 12:00:47 +08:00
    高内聚低耦合
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1044 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 19:51 · PVG 03:51 · LAX 11:51 · JFK 14:51
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.