代码生成那点事

在微软技术中浸淫6年多了,我就常想啊,有没有一个工具,能让开发简单一点,哪怕就简单一点点?!

这还是去年的事情,手里的项目都成功上线了,我和james聊天,我说咱们的这几个项目很多地方长的都一样,有些模块功能也一样,以后的开发能不能将这些经验和技术积淀下来啊,不用再机械重复。

公司又招了两个新人,一男一女,都是刚毕业的,让我带,我就让他们一人维护一个项目,每个项目的架构和技术选型还都不一样,库房项目的底层是使用的ado.net的,直接写sql语句,而看板系统是使用的entity framework做的底层,写的都是linq语句,我就想能不能有一套成熟了技术选型啊?这样新人就能一起培训,也不用学那么多东西。

每当核心功能和代码出问题,都是我手把手教他们定位错误和修改bug,可有时候他们两个谁请假了,另一个人又不能补上,因为他们在不同的项目之间切换,技术门槛太高了,只能自己补上,感觉自己切换在两个架构中真累啊,有没有一套稳定的架构啊?

仔细回味这些事情,让我迷茫,让我沉思。

我决定写一个工具,一个能积淀经验的工具,一个能生成成熟的技术选型的工具,一个能生成稳定架构的工具。

James是2001年毕业于南开计算机系的大牛,关于架构的确定,我没少叨扰james,我们分析已有的项目架构,也找了很多微软的架构资料,有简单的,有复杂的,最后我们一致中庸的认为四层的架构是最优的,既降低了入门成本,又使系统具有了很好的扩展性。

架构很快确定了,可技术选型,我们出现了严重的分歧,他有他的一套技术体系,我有我的一套,数据库底层我听取了他的建议,采用entityframework,现在看来他是正确的,因为伴随着项目做大和跨库的要求,ado.net会乱作一团。James也肯定了我“从业务层提取接口,加入服务层”的方案,而界面层,我们默契的选择了轻量级的MVC框架。

架构和技术都选择好了,我就开始动手实践。

不知道你在的公司是使用什么工具设计数据库的,我们公司都是使用Powerdesigner来设计数据库模型的,在使用过程中,我发现可以从中分析出很多有开发价值的东西,比如表之间的关系和备注中的信息,灵光一闪,为什么不使用Powerdesigner的设计文件做我的工具的数据源呢!

同时,我把这几年开发的项目都拿过来一块分析,找出共性,抽象出模型……

当你一头扎进你的兴趣的时候,约会的时间没有了,聊天的时间少了,周末的活动也少了,可是女友的抱怨越来越多了。

至此,狼奔代码生成器的思路在我的脑海中成型,一个让开发简单一点点的工具!

 

对比这几个信息化的项目,我发现都需要一个的权限管理系统,嗯!于是我就使用代码生成器写了一个通用的狼奔权限管理系统,方便以后可以基于此项目进行开发。

狼奔代码生成器官方网站www.langben.com

感谢为我打开程序员大门的导师james,感谢给过我帮助和鼓励的同事们,感谢网友对代码生成器提出的宝贵建议,我想说,正是因为有了你们,我才走到了今天。

 

转载于:https://www.cnblogs.com/angben/archive/2012/11/30/2795758.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/260220.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

HDU 1003 Max Sum

同上题一样&#xff0c;求连续子序列的最大和 而且比上题还要简单一些&#xff0c;用不到long long了 直接水过 1 //#define LOCAL2 #include <iostream>3 #include <cstdio>4 #include <cstring>5 using namespace std;6 7 const int maxn 100000 10;8 in…

百度关键词抓取工具_VBA利用XMLHTTP抓取百度查询关键词结果的个数

大家好,我们今日讲解"利用XMLHTTP抓取百度查询关键词结果的个数"&#xff0c;这节内容是"VBA信息获取与处理"教程中第六个专题"VBA中利用XMLHTTP完成网抓数据"的第二节。第二节 利用XMLHTTP抓取百度查询关键词结果的个数在上一讲中我们讲解了一些…

多系统通讯-DotNetMQ

很久都没有写博客了&#xff0c;从15年4月份一直忙到现在&#xff0c;我才有时间去做梳理和总结&#xff0c;因为我提离职了&#xff0c;感觉整个世界突然变得不一样&#xff0c;随着而来的就是心情的放松&#xff0c;写一篇文章也是对过去一年多工作的梳理&#xff0c;加深印象…

九大现代病!中枪了吗?

现代人在享受现代化的生活和工作方式带来的便捷之时&#xff0c;也为此付出了不小的代价&#xff0c;下面列出的九大现代病就是典型的例子&#xff0c;看看你有没有中枪。 办公臀 常坐办公室&#xff0c;如果你发现屁股越坐越大&#xff0c;大腿越坐越粗&#xff0c;你可能有了…

驱动提取软件_深入分析施耐德工控软件代码执行漏洞

更多全球网络安全资讯尽在邑安全简介在本文中&#xff0c;我们将为读者详细介绍Claroty Research团队的Amir Preminger和Sharon Brizinov是如何组合利用两个漏洞&#xff0c;来触发施耐德工控软件EcoStruxure Operator Terminal Expert的代码执行漏洞&#xff0c;从而在首届举办…

atitit.表单验证 的dsl 本质跟 easyui ligerui比较

atitit.表单验证的dsl 本质跟 easyui ligerui比较 1. DSL 声明验证 1 2. 自定义规则 1 3. 正则表达式验证,可以扩展实现 2 4. 犯错误消息提示,generic canBeEmpty is good 3 5. Prevent the form to submit when invalid 3 6. 为空则不验证&#xff0c;不为空则验证&#xff0…

企业级应用框架(五)IOC容器在框架中的应用

前言 在上一篇我大致的介绍了这个系列所涉及到的知识点&#xff0c;在本篇我打算把IOC这一块单独提取出来讲&#xff0c;因为IOC容器在解除框架层与层之间的耦合有着不可磨灭的作用。当然在本系列前面的三篇中我也提供了一种基于反射的解耦方式&#xff0c;但是始终不是很优雅&…

后端开发需要学什么_都2020年了,还在纠结学什么语言?| 后端篇

几个礼拜前&#xff0c;一个学弟问我&#xff1a;“Ray&#xff0c;我打算之后要找工作了&#xff0c;不过现在自己没有特别深入的语言&#xff0c;最近想找一门好好学一下&#xff0c;你觉得学什么语言好呀&#xff1f;”我表示&#xff1a;“这个要看你求职方向、个人喜好、市…

10个非常有用的CSS hack和技术

转自&#xff1a;http://www.qianduan.net/10-useful-css-hacks-and-technique.html 1 – 跨浏览器的inline-block <style>li {width: 200px;min-height: 250px;border: 1px solid #000;display: -moz-inline-stack;display: inline-block;margin: 5px;zoom: 1;*display:…

Java的递归算法

递归算法设计的基本思想是&#xff1a;对于一个复杂的问题&#xff0c;把原问题分解为若干个相对简单类同的子问题&#xff0c;继续下去直到子问题简单到可以直接求解&#xff0c;也就是说到了递推的出口&#xff0c;这样原问题就有递推得解。 关键要抓住的是&#xff1a; &…

发现Java程序中的Bug

昨天在CSDN上阅读 "Java中十个常见的违规编码"这篇文章时&#xff0c;无意中找到了3个 "发现Java程序中的Bug"工具。 文章地址&#xff1a;http://www.csdn.net/article/2012-09-11/2809829-common-code-violations-in-java其中&#xff0c; FindBugs™ - …

shiro前后端分离_为什么要前后端分离?前后端分离的优点是什么?

随着互联网的高速发展以及IT开发技术的升级&#xff0c;前后端分离已成为互联网项目开发的业界标准使用方式。在实际工作中&#xff0c;前后端的接口联调对接工作量占HTML5大前端人员日常工作的30%-50%&#xff0c;甚至会更高。接下来千锋小编分享的广州HTML5大前端学习就给大家…

hdu--1075--字典树||map

做这题的时候 我完全没想到 字典树 就直接用map来做了 - 我是有 多不 敏感啊~~ 然后去 discuss 一看 很多都是说 字典树的问题.... 字典树 给我感觉 它的各个操作的意思都很清晰明了 直接手写 不那么容易啊。。 晚些 时候 试下来写------用map写是真心方便 只要注意下那么\n的吸…

php的类装载的步骤,设计PHP自动类装载功能

在使用面向对象方法做PHP开发时&#xff0c;可能会经常使用到各个路径中的类文件&#xff0c;这就需要大量的 include 或 require&#xff0c;而 PHP 提供了一个比较快捷的方式&#xff0c;就是利用函数 __autoload 可以编程实现动态的类装载功能&#xff0c;这样就不需要手动的…

网站首页幻灯片

Js页面: View Code /** * 大眼睛广告轮播 */ var indexEye {autoTime: 0,init: function () {var eyeObj $("#dyj_pics a:eq(0) img:eq(0)");eyeObj.attr("src", eyeObj.attr("data-imgSrc"));eyeObj.load(function () {indexEye.autoTime se…

Qt之QAbstractItemView视图项拖拽(二)

一、需求说明 上一篇文章Qt之QAbstractItemView视图项拖拽(一)讲述了实现QAbstractItemView视图项拖拽的一种方式&#xff0c;是基于QDrag实现的&#xff0c;这个类是qt自己封装好了的&#xff0c;所以可定制性也就没有了那么强&#xff0c;最明显的是&#xff0c;这个类在执…

电脑控制苹果手机_必备神器,电脑控制手机

序一款电脑端的神器&#xff0c;它可以任意的操纵你的手机。****QtScrcpy可以通过USB(或通过TCP/IP)连接Android设备&#xff0c;并进行显示和控制。不需要root权限。单个应用程序最多支持16个安卓设备同时连接。同时支持GNU/Linux&#xff0c;Windows和MacOS三大主流桌面平台。…

生活大爆炸版石头剪刀布

题目描述 Description石头剪刀布是常见的猜拳游戏&#xff1a;石头胜剪刀&#xff0c;剪刀胜布&#xff0c;布胜石头。如果两个人出拳一样&#xff0c;则不分胜负。在《生活大爆炸》第二季第8集中出现了一种石头剪刀布的升级版游戏。升级版游戏在传统的石头剪刀布游戏的基础上&…

jquery事件 on(),live(),delegate(),blind()

jQuery推出on()的目的有2个&#xff0c;一是为了统一接口&#xff0c;二是为了提高性能&#xff0c; 所以从现在开始用on()替换bind(), live(), delegate吧。 尤其是不要再用live()了&#xff0c;因为它已经处于不推荐使用列表了[1.7已经被删除]。 如果只绑定一次事件&#xff…

用python庆祝生日_生日到底该过阴历还是阳历好呢?不是迷信,都怪我们大意!...

过生日到底该过阴历还是阳历&#xff1f;答案说出来你可能都不信在我们国家&#xff0c;过生日有两种不同的方式&#xff0c;因为有两种不同的日子的计算方式&#xff0c;分为阴历和阳历。一般来说&#xff0c;在农村和一些比较落后的地方&#xff0c;人们习惯于用阴历来计算生…