V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
dbfox
V2EX  ›  分享创造

我想让开发变得更简单,配置下 xml 文件,整个后台或者整个系统就可以 展现出来,仅仅是一个想法,不知道有人去做么,空闲时间不多,否则会去专心去做这件事

  •  
  •   dbfox · 2014-07-23 21:49:57 +08:00 · 3933 次点击
    这是一个创建于 3787 天前的主题,其中的信息可能已经有所发展或是发生改变。
    通过配置文件来完成大部分工作,如果配置文件无法实现,可以通过自定义类和方法去实现想要的功能

    给出一个配置文件如下:通过此配置文件可以实现 一个新闻系统的 基本功能

    觉得使用 mongodb 的话,是可以很容易实现这样的功能


    article.xml

    <entity>
    <!--
    名称字段
    type 字段类型
    max 最大
    min 最小
    default 默认值
    render 渲染器类型,如果是 textbox ,那么说明这个字段 可以在html下 渲染为 一个 <input type="text" /> 的文本框


    reader 可以定义很多类型,比如 htmleditor (用html 编辑器渲染) multextbox( 是多行文本框渲染)
    -->



    <field name="name" type="string" max="20" min="0" default="" render="textbox" />

    <!--类别id-->
    <field name="categoryid" type="int32" max="20" min="0" default="0" render="custom.cateoryies" />

    <!--
    创建日期
    type 字段类型
    max 最大
    min 最小
    default 默认值
    render 渲染器类型

    only 仅进行的操作,如果为insert 的时候,意思就是 仅仅在sql insert 的时候,插入此字段的值
    must 必须进行的操作 ,must 意思是 此字段在sql insert 的时候必须加入
    do 需要的操作 ,意思是在那种 sql 语句中加入此值
    -->



    <field name="createddate" type="string" max="50" min="0" default=":now" render=":none" do="insert" only="insert" must="insert" />

    </entity>
    18 条回复    2014-07-25 20:47:42 +08:00
    regmach
        1
    regmach  
       2014-07-23 22:19:53 +08:00
    我不懂技术,但是听起来很赞
    lotem
        2
    lotem  
       2014-07-23 22:49:09 +08:00
    有想法蘭州。不過我想讓開發輸入法變得簡單: https://code.google.com/p/rimeime/wiki/RimeWithSchemata
    qiayue
        3
    qiayue  
       2014-07-23 23:06:39 +08:00
    这一两年写了好多站,的确后台都是重复的增删改查,可以做成工具的
    faceair
        4
    faceair  
       2014-07-23 23:09:02 +08:00
    jakwings
        5
    jakwings  
       2014-07-23 23:15:56 +08:00   ❤️ 1
    下一個 Wordpress?
    mcfog
        6
    mcfog  
       2014-07-23 23:31:12 +08:00   ❤️ 1
    狂用配置的,最后会死于复杂到无法理解的配置schema

    复杂度超过key-value的就不应该是配置,而应该是api和code as configuration
    zoowii
        7
    zoowii  
       2014-07-23 23:46:00 +08:00
    配置复杂度会超过代码.
    如果只是CRUD,元编程或者自动代码生成就够了,没多大意思
    markyangd
        8
    markyangd  
       2014-07-24 00:03:05 +08:00
    如果楼主懂C#,推荐你看看DevExpress XAF。
    est
        9
    est  
       2014-07-24 00:07:01 +08:00 via Android   ❤️ 1
    这样的配置,遇到关联CURD就是个死。死法很难看。
    vicalloy
        10
    vicalloy  
       2014-07-24 00:14:28 +08:00 via Android   ❤️ 2
    过多的XML配置绝对是个灾难。
    之前的JAVA就是什么都用XML来配置,结果配置文件弄得异常复杂,难以理解。之后的的很多JAVA框架都该有注解之类的来简化配置。
    用python之类的脚本语言来做复杂配置,远比XML要好的多。
    注:我感觉django的admin挺接近楼主的需求。
    oott123
        11
    oott123  
       2014-07-24 08:31:32 +08:00 via Android
    lazyrest?
    mingxiaobai
        12
    mingxiaobai  
       2014-07-24 14:03:02 +08:00
    如果懂java,可以看看Jaxb和Castor,需要编写一些DTD,直接生成java对象,内部DAO操作封装好或者用Spring DATA框架,应该可以通过配置实现一般通用。
    dbfox
        13
    dbfox  
    OP
       2014-07-24 17:26:46 +08:00
    @regmach
    @lotem
    @qiayue
    @faceair
    @jakwings
    @mcfog
    @zoowii
    @markyangd
    @est
    @vicalloy
    @oott123
    @mingxiaobai


    我觉得可以用在业务逻辑不太复杂的小项目上,比如博客系统,等一些简单的系统后台

    而逻辑复杂的部分交给 灵活的程序去实现
    regmach
        14
    regmach  
       2014-07-24 17:34:48 +08:00
    @est crud不麻烦,一旦关联就好烦啊
    dbfox
        15
    dbfox  
    OP
       2014-07-24 18:00:07 +08:00
    @regmach
    @lotem
    @qiayue
    @faceair
    @jakwings
    @mcfog
    @zoowii
    @markyangd
    @est
    @vicalloy
    @oott123
    @mingxiaobai


    顺便想到 mongodb 下这种方便做吧?


    mongodb 不用设计数据库列字段,可以动态扩展 我觉得这一点 很灵活



    比如 文章类别

    articles category collection

    [

    {"key":"news","name":"新闻"},
    {"key":"funny","name":"搞笑"},
    {"key":"video","name":"视频"}

    ]


    articles

    [

    {"category":“news”,"title":"这是一篇新闻","content":"内容xxxx"},
    {"category":“news”,"title":"这是一篇新闻","content":"内容xxxx"},
    {"category":“news”,"title":"这是一篇新闻","content":"内容xxxx"},
    {"category":“news”,"title":"这是一篇新闻","content":"内容xxxx"},
    {"category":“news”,"title":"这是一篇新闻","content":"内容xxxx"},
    {"category":“news”,"title":"这是一篇新闻","content":"内容xxxx"},
    {"category":“news”,"title":"这是一篇新闻","content":"内容xxxx"},
    {"category":“news”,"title":"这是一篇新闻","content":"内容xxxx"},
    {"category":“news”,"title":"这是一篇新闻","content":"内容xxxx"},
    {"category":“news”,"title":"这是一篇新闻","content":"内容xxxx"}

    ]





    我觉得写个文章系统还是很好做的
    jakwings
        16
    jakwings  
       2014-07-25 00:11:22 +08:00
    @dbfox 还是觉得太抽象,希望有人先做个示例。将数据接口和页面结构的定义方式合并实在是牺牲太多,势必要写各种自定义的方法……
    buliugu
        17
    buliugu  
       2014-07-25 11:22:34 +08:00
    元数据编程。。。如果lz接触过用友的ERP开发,就知道很久以前就有这类东西了,还开发一套相应的开发工具来用
    jakwings
        18
    jakwings  
       2014-07-25 20:47:42 +08:00
    有类似收费服务,不过是可视化的在线服务: http://www.webhook.com
    这绝对是个伟大的目标。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5676 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 02:59 · PVG 10:59 · LAX 18:59 · JFK 21:59
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.