Code Monkey home page Code Monkey logo

gen's Introduction

如果您对此项目感兴趣欢迎 star,如果您对有问题和建议欢迎 issues

通过接口生成一切


我们程序员每天都跟代码打交道,前端程序员coding, 后端程序员coding。 然而我们经常做重复性工作或者复制粘贴,或者前后端因为接口变动扯皮。 为了解决这些问题我打算通过接口生成代码。

为什么通过接口生成一切

任何语言都是在跟数据打交道

  1. 在web前端html用来展现数据,javascript处理数据
  2. go、java、php、nodejs等后端语言都在处理前端给的数据,或者给前端的数据
  3. mysql、oracle、mongodb、postsql等数据库用来存储数据

接口是前后端通讯的桥梁

接口可以约定json格式

  1. json易于人阅读和编写
  2. json易于机器解析和生成

我理想的目标

  1. 根据接口一键生成一套前可运行后端接口方案
  2. 不改变我的开发方式
  3. 低门槛轻松上手
  4. 可视化配置
  5. 如果是web页面所见即所得
  6. 有丰富的项目脚手架方便二次开发
  7. 生成接口文档

如何实现这些目标

  1. 我们把每个文件都看做一个大模版,而这个大模版又有多个小模版组成,小模版我们把它叫做组件,组件又有组件属性,这样就组成了一个component tree,而接口本省又是个data tree, 两者渲染成最终我们想要的文件,这里模版引擎我们用了unjuncks
  2. 接口使用hjson我通过注释表明这个字段对应的组件类型mock数据。 hjson和jsonSchema相互转换,这样我就可以使用jsonSchema进行可视化配置
  3. 通过jsonSchema配置字段对应的组件和定制组件扩展信息
  4. 配置完即可动态渲染实时得到渲染结果, 如果是web页面我们可以iframe在区块内实时预览
  5. 定制可服用模版和组件, 这样我们就可以定制各种页面
  6. 通过把组件生成可动态配置的组件文件,然后把配置组件属性通过postMessage传递给iframe页进行实时修改
  7. 把我们最佳项目实践直接做为脚手架,通用的文件设置为模版,或分隔多个小组件

在线运行太慢,或者网上代码不安全

  1. 使用辅助工具,直接把渲染结果输出到本地,同时调用git命令保存修改文件,方便查看修改记录或回滚

扩展字段

gen's People

Contributors

daycool avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.