提高生产性工具 - Model代码生成器(二)

时间:2022-04-08 09:01:48

首先,我想阐述一下我开发这个工具的一个观点.

如果大家做过对日软件的话,很多时候,日方是进行设计的,数据模型是什么样子的,各个字段的类型,需要做什么验证,验证规则,错误信息,都是日方制定的.

外包就是廉价劳动力市场,所有,到了中国之后,大家只是机械式的编码,或者说,只是将设计书翻译成为代码罢了.

我的一个观点是,设计即代码,如果可以将数据设计书作为源头,直接生成源代码,则可以让大家从枯燥的编码中解放出来.更重要的是,可以节约大量Review的时间.

虽然,错误信息这样的东西,大都是复制粘贴的,但是,由于是手工作业,仍然需要Review代码,如果是工具生成的话,就可以杜绝这些问题.

有人可能要说,我们有T4模板,也可以做到同样的效果,我们可以先Model First.

这里我想说的是,这个工具应该能够帮设计和开发的人,将MVC5的细节都屏蔽掉,让设计的人关注业务,让开发的人关注算法和性能优化.

例如,一个主Key项目,如果想在编辑状态的视图里面,只读显示.标准的做法是

日方说,在设计书某个项目标为[Key项目,无法通过视图编辑],然后我们这里编码的时候,需要加上 HiddenInput 特性。这样可能会发生的问题是

新手开发人员不知道 HiddenInput 特性,错用了其他特性

团队会用其他方法进行编码,功能实现不统一

Review的人需要检查是不是漏了 HiddenInput特性

在使用工具的情况下,如果事先和日方约定好了,[Key项目,无法通过视图编辑],使用 HiddenInput ,那么,完全可以做到 0 BUG编码。

有些项目,日方可能会提出各种特性的顺序问题,当需要多个特性的时候,必须按照指定顺序写。

例如,先是 Required,然后是Range。手工编码的时候,一忙起来,编码规则都会忘记,如果用工具的话,这种问题完全可以保障。

提高生产性工具 - Model代码生成器(二)

提高生产性工具 - Model代码生成器(二)

很久之前,我接触过一个日本的项目框架,大概意思就是,在系统里面保存一张路由表(迁移配置),里面包含了,某个页面会调用什么模块,然后根据不同的返回值,迁移到不同的页面。一个MVC项目,其实,MVC代码完全可以全自动化生成的,如果业务和MVC分离的好的话,Action里面也应该调用一个BL方法,然后根据返回值,决定不同的视图。如果路由规则也可以可视化编辑,Controller,Action可以做到表格化设计,整个MVC可以完全通过设计文档生成代码。或者,再深入考虑,Controller,Action,Route这些东西,为什么不能是IOC的呢?

提高生产性工具 - Model代码生成器(二)

暂时先将MVC框架的自动编码工具开发完成,如果可以的话,希望能够开发一个前端代码自动完成的工具。

MVC自动生成的View已经很不错了,但是,很多式样的修改,还是要依靠手工,

当然,通过修改模板可以做到自定义,但是,能不能让这个工作更高效率呢?

例如,我在XML里面编写好左边的菜单结构,然后一键将菜单的DOM生成好,修改起来也会很便利。

提高生产性工具 - Model代码生成器(二)

当然,一切都有个度,有些东西,还是要人来开发的。

提高生产性工具 - Model代码生成器(二)的更多相关文章

  1. 提高生产性工具 - Model代码生成器(NET / JAVA) (一)

    原来在上一家公司,整整一年都在做工具,提高生产性,那个项目特别巨大,所以总共为老东家节约了500K左右的美金. (除了表扬之外,我个人什么好处都没有,领导们都升官发财了,郁闷) 到了新公司,也准备开发 ...

  2. 提高生产性工具(五) - 数据的过滤器和图形化(适用于 MVC5 + MongoDB)

    在下面流水账似的文章之前,先将一些感悟说一下. 1.如果一个系统对于某个功能在至少三个地方使用的话,必须将其抽象提炼出来,而且时间点最好是大规模测试之前. 2.提炼出来的功能,如果品质做得好,整个系统 ...

  3. 提高生产性工具(四) - XML数据库的尝试

    首先祝大家新年快乐.身体健康,平安就是福气. 对于一般的个人迷你项目,数据量不大的时候,完全没有必要使用数据库,管理数据使用XML就可以了. 自己尝试写了一个XML数据库,插入1w条小记录,大概3M大 ...

  4. ASP.NET MVC Model绑定(二)

    ASP.NET MVC Model绑定(二) 前言 上篇对于Model绑定的简单演示想必大家对Model绑定的使用方式有一点的了解,那大家有没有想过Model绑定器是在什么时候执行的?又或是执行的过程 ...

  5. ASP.NET MVC Model验证(二)

    ASP.NET MVC Model验证(二) 前言 上篇内容演示了一个简单的Model验证示例,然后在文中提及到Model验证在MVC框架中默认所处的位置在哪?本篇就是来解决这个问题的,并且会描述一下 ...

  6. ASP.NET MVC Model元数据(二)

    ASP.NET MVC Model元数据(二) 前言 在上篇中,给大家留个对Model元数据的印象,并没有对Model元数据有过多的讲解,而在本篇中也不会对Model元数据的本身来解释,而是针对于它的 ...

  7. Maven提高篇系列之(二)——配置Plugin到某个Phase(以Selenium集成测试为例)

    这是一个Maven提高篇的系列,包含有以下文章: Maven提高篇系列之(一)——多模块 vs 继承 Maven提高篇系列之(二)——配置Plugin到某个Phase(以Selenium集成测试为例) ...

  8. 深入浅出的webpack构建工具---DevServer配置项(二)

    深入浅出的webpack构建工具---DevServer配置项(二) 阅读目录 DevServer配置项 1. contentBase 2. port 3. host 4. headers 5. hi ...

  9. embed-it_Integrator memory compile工具使用之二

    embed-it_Integrator memory compile工具使用之二 主要内容 使用ish接口自动加载memory的cfg文件运行生成memory 脚本内容 打开Integrate &am ...

随机推荐

  1. oracle数据库从入门到精通

    oracle产品线围绕企业开发平台的企业开发平台四大组件:unix,weblogic中间件,java编程语言,oracle数据库oracle 开发主要分两类数据库管理:dba数据库编程:分两部分   ...

  2. Shell脚本基础II

    1.shell算术运算 1)加法 r=`expr 4 + 5`(注意! '4' '+' '5' 这三者之间要有空白) r=$[ 4 + 5 ] r=$(( 4 + 5 )) echo $r 2)乘法 ...

  3. 使用OPENROWSET(BULK...)从平面文件加载数据

    要使用OPENROWSET首先要开启一个configure选项 sp_configure ‘show advanced options’, 1;GORECONFIGURE;GOsp_configure ...

  4. gwt 创建 超链接cell (HyperTextCell)

    package com.cnblogs.hooligen.client; import com.google.gwt.cell.client.AbstractCell; import com.goog ...

  5. ASP.NET-FineUI开发实践-13(二)

    1.加图标和事件 上次已经通过DataSimulateTreeLevelField属性控制了树节点的显示,不用看也知道就是给指定列数据前面加个图标的HTML 可以在SimulateTreeHeper类 ...

  6. MySQL优化GROUP BY-松散索引扫描与紧凑索引扫描

    满足GROUP BY子句的最一般的方法是扫描整个表并创建一个新的临时表,表中每个组的所有行应为连续的,然后使用该临时表来找到组并应用累积函数(如果有).在某些情况中,MySQL能够做得更好,即通过索引 ...

  7. javascript中计算两个时间日期间隔的天数

    <script>              /*                  计算两个日期的时间间隔天数              */              //时间字符串的格 ...

  8. python初学之缓存清理:完全相同的代码与环境但是其中一个文件可以执行成功,一个执行不成功

    在使用python写接口测试脚本时,想要引入logging模块来在控制台输出当前执行进度日志,但是遇到了奇葩问题,困扰了一整个下午: 代码如下: __author__ = 'test'#!/usr/b ...

  9. 使用dstat命令的插件查看mysql的io状态

    使用dstat竟然还可以查看mysql的状态, man dstat之后发现的,原来在/usr/share/dstat目录下藏有很多python脚本作为插件帮助dstat搜集各类信息. 不过通常有可能会 ...

  10. picasso 在魅族手机无法加载缩略图的bug

    09-03 12:46:30.722 19088-19088/com.tongyan.subway.maintenance W/PerfScheduler: Cann't find the ListV ...