Guiu

关于Project Babel的代码风格

  •  
  •   Guiu · Oct 23, 2010 · 6435 views
    This topic created in 5703 days ago, the information mentioned may be changed or developed.
    经朋友介绍,知道Project Babel这个程序,界面清新漂亮,很喜欢。
    今天准备将Project Babel用到某个小项目上,特地去看了一下它的源代码,
    但发现源代码风格似乎相当凌乱,看不到python的味道,缺少设计的美感。
    不知道是不是Livid为快速实现功能而折衷的使用了这种代码风格,毕竟现在PB还没有正式发布。

    现在的源代码风格,对于多人配合开发和后续功能开发相当麻烦,如果要使用的话,只能完全推倒重构代码了,因此采取PB的想法只能作罢。

    不知道这里有没有朋友已经重构过PB的?假如开源的话那就相当的nice了。
    18 replies    1970-01-01 08:00:00 +08:00
    Livid
        1
    Livid  
    MOD
    PRO
       Oct 23, 2010 via iPhone
    谢谢。可否给出一个开源 GAE 项目的例子,在代码上符合您对美感和设计的要求的,我去学习学习。
    darcy
        2
    darcy  
       Oct 23, 2010
    可以参考这个代码风格建议 http://google-styleguide.googlecode.com/svn/trunk/pyguide.html#Indentation

    具体项目源代码可以参考GAE的源代码
    Livid
        3
    Livid  
    MOD
    PRO
       Oct 23, 2010
    @darcy 有现实中 GAE 开源网站项目的例子吗?
    m
        4
    m  
       Oct 23, 2010
    Livid
        5
    Livid  
    MOD
    PRO
       Oct 23, 2010
    @m 可否告诉我,jaikuengine 的源代码,相比 V2EX 的,好在哪里?
    fanix
        6
    fanix  
       Oct 23, 2010
    python是什么味道呢?
    Los
        7
    Los  
       Oct 23, 2010
    ^_^ 不熟悉GAE不熟悉Python,来一小段rails式的建议,估计比较适合现在PB的情况

    “Move Model Logic into the Model”
    http://rails-bestpractices.com/posts/7-move-model-logic-into-the-model
    zhaiduo
        8
    zhaiduo  
       Oct 23, 2010
    jaiku可是google的败笔
    m
        9
    m  
       Oct 23, 2010
    @Livid 不好意思,这两套代码都没看过。只是知道这也是个开源 GAE 项目,所以向你介绍的,或许有可学习借鉴的地方。
    darcy
        10
    darcy  
       Oct 23, 2010
    我个人觉得每个get方法都有一个
    template_values['system_version'] = SYSTEM_VERSION
    类似的公共代码可以提取出一个父类出来。
    如:http://code.google.com/p/google-app-engine-samples/source/browse/trunk/tasks/tasks.py
    建立一个BaseRequestHandler类

    另外,对于楼主来说,可能作为开源项目v2ex缺少必要的注释。风格上我倒不觉得有什么不美,反而很多地方@livid设计得很优雅。
    Los
        11
    Los  
       Oct 23, 2010
    "控制层"充满了大量的if else之类的逻辑代码是一件让人比较头疼的事,或者可以移动这部分代码到合适的地方。
    darasion
        12
    darasion  
       Oct 23, 2010
    我也总觉得自己写的东西不太对劲儿,但总是不知道哪里出了毛病。
    billychow
        13
    billychow  
       Oct 23, 2010
    1. 代码的重用性做得不够,如模版的初始化等完全可以简单抽象一下,进行包装。
    2. 逻辑混乱,缓存的设置四处散落。可以考虑使用 python decorator 进行分离。
    3. 每一个操作都有一个 handler,一组同样的逻辑却相互独立,造成重复,建议实现一个简单的 url routing。
    还有一些一时想不起来了,前段时间又大致看了一下,发现很多地方仍然没有改进,在功能不断膨胀后,维护性会变得越来越糟。不适合团队开发。
    darcy
        14
    darcy  
       Oct 23, 2010
    @darasion 同感。
    fsw90628
        15
    fsw90628  
       Oct 24, 2010
    OO is a trade-off. Livid 的代码细节处理的已经不错了,组件拆分的很得当,过度的追求重用也未必是好的事情。
    p.s. 读着Project Babel的代码个人觉得是很享受的事情,直觉上觉得清晰,美观。
    9hills
        16
    9hills  
       Oct 24, 2010
    注释有点少---貌似很少

    除此之外就我的水平也看不出什么来。。
    xuming
        17
    xuming  
       Oct 24, 2010
    看了PB的代码,很多PHP的味道
    Tianpu
        18
    Tianpu  
       Oct 29, 2010 via iPad
    我看着不吃力,哈。好用就行
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   3606 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 52ms · UTC 04:59 · PVG 12:59 · LAX 21:59 · JFK 00:59
    ♥ Do have faith in what you're doing.