代碼生成那點事

在微軟技術中浸淫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.pswp.cn/news/260220.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/260220.shtml
英文地址,請注明出處:http://en.pswp.cn/news/260220.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

python反爬蟲破解_python中繞過反爬蟲的方法總結

我們在登山的途中,有不同的路線可以到達終點。因為選擇的路線不同,上山的難度也有區別。就像最近幾天教大家獲取數據的時候,斷斷續續的講過header、地址ip等一些的方法。具體的爬取方法相信大家已經掌握住,本篇小編主要是給大家進…

vue上傳文件php,php文件上傳 – 前端開發,JQUERY特效,全棧開發,vue開發

文件上傳一般有下面2種方式:有兩種:1、標準input表單方式,典型的用$_FILES進行接收;2、以Base64的方式進行傳送,一般是AJAX異步上傳。第一種標準的input表單方式,適用于大文件進行上傳,同時支持…

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…

linux中如何查看進程占用了哪些端口?

使用netstat –apn | grep <進程名>便可以查看指定進程所占用的端口。轉載于:https://www.cnblogs.com/x10322/p/6020485.html

python畫端午節_我想帶你去旅行,我用Python提前做了一份端午旅游攻略,請收下!...

旅游是調節心情的有效途徑&#xff0c;越來越多的上班族和學生期待利用假期時間外出游 玩來開拓眼界、舒緩壓力。然而真正有了假期&#xff0c;許多人卻會因“去哪玩”的問題倍感困惑&#xff0c;六月份正是出行的好時節&#xff0c;期間還有端午節小長假&#xff0c;就讓我們一…

iOS: 在Object-C中監聽javascript事件( Javascript communicating back with Objective-C code)

在iOS開發之Objective-C與JavaScript交互操作 中我們可以通過stringByEvaluatingJavaScriptFromString 去實現在obj-C中獲取到相關節點屬性&#xff0c;添加javascript代碼等功能。但是我們如何監聽到javascript的響應事件呢。在MAC OS中有效的API去實現&#xff0c;但iPhone沒…

ECharts-圖表回執組件

測試地址&#xff1a;http://echarts.baidu.com/doc/example.html轉載于:https://www.cnblogs.com/HOH/p/3868617.html

matlab r2007課后答案,《MATLAB R2007基礎教程》習題答案.doc

打開“圖形窗口”&#xff0c;熟悉其中各個菜單和工具的功能和用法參考答案&#xff1a;略編寫程序&#xff0c;該程序在同一窗口中繪制函數在 之間的正弦曲線和余弦曲線&#xff0c;步長為 &#xff0c;線寬為 4 個象素&#xff0c;正弦曲線設置為藍色實線&#xff0c;余弦曲線…

第一本書14單元

14.linux中設備的訪問*****1.設備的訪問******1.設備識別/dev/xdxn /*硬盤設備/dev/sdal/dev/cdrom /*光驅/dev/mapper/* /*虛擬設備****.設備的發現*****fdish -l /*查看真實存在的設備cat /proc/partition /*系統能夠識別的設備blkid /*系統能夠掛載使用的設備df /*查看設備被…

夜深了,發點無聊的東西

研究一個東西遇到gcnew這個關鍵詞&#xff0c;mark一下&#xff01;new和gcnew的區別。 C/CLI中使用gcnew關鍵字表示在托管堆上分配內存&#xff0c;并且為了與以前的指針區分&#xff0c;用^來替換* &#xff0c;就語義上來說他們的區別大致如下: 1. gcnew返回的是一個句…

變速積分pid控制器matlab,變速積分PID控制系統設計.docx

課程設計報告設計題目變速積分PID控制系統設計課程名稱計算機控制技術B姓名 蘇丹學號 2008100731班級自動化0803 教師閆高偉摘 要錯誤!未定義書簽。Abstract第1章數字PTD及變速積分簡介錯誤!未定義書簽。TOC \o "1-5" \h \z 1數字PTD發展介紹1HYPERLINK \l "boo…

百度關鍵詞抓取工具_VBA利用XMLHTTP抓取百度查詢關鍵詞結果的個數

大家好,我們今日講解"利用XMLHTTP抓取百度查詢關鍵詞結果的個數"&#xff0c;這節內容是"VBA信息獲取與處理"教程中第六個專題"VBA中利用XMLHTTP完成網抓數據"的第二節。第二節 利用XMLHTTP抓取百度查詢關鍵詞結果的個數在上一講中我們講解了一些…

多系統通訊-DotNetMQ

很久都沒有寫博客了&#xff0c;從15年4月份一直忙到現在&#xff0c;我才有時間去做梳理和總結&#xff0c;因為我提離職了&#xff0c;感覺整個世界突然變得不一樣&#xff0c;隨著而來的就是心情的放松&#xff0c;寫一篇文章也是對過去一年多工作的梳理&#xff0c;加深印象…

九大現代病!中槍了嗎?

現代人在享受現代化的生活和工作方式帶來的便捷之時&#xff0c;也為此付出了不小的代價&#xff0c;下面列出的九大現代病就是典型的例子&#xff0c;看看你有沒有中槍。 辦公臀 常坐辦公室&#xff0c;如果你發現屁股越坐越大&#xff0c;大腿越坐越粗&#xff0c;你可能有了…

Java學習筆記(4)——枚舉類型

1.在類別&#xff08;Class&#xff09;或接口&#xff08;Interface&#xff09;中宣告常數加以管理&#xff0c;這只是讓您存取與管理常數方便而已&#xff0c;來看看這個例子&#xff1a; public void someMethod() {....doOp(OpConstants.TURN_RIGHT);.... } public void d…

驅動提取軟件_深入分析施耐德工控軟件代碼執行漏洞

更多全球網絡安全資訊盡在邑安全簡介在本文中&#xff0c;我們將為讀者詳細介紹Claroty Research團隊的Amir Preminger和Sharon Brizinov是如何組合利用兩個漏洞&#xff0c;來觸發施耐德工控軟件EcoStruxure Operator Terminal Expert的代碼執行漏洞&#xff0c;從而在首屆舉辦…

ubuntu 網卡突然無法連接

今天要用到VM BT的Namp掃描服務器端口&#xff0c;發現橋接后無法使用。ifconfig 只看到 lo地址&#xff0c;看不到以太網網卡地址使用lspci 查看是否安裝了以太網網卡驅動lscpi | grep Ethernet02:01.0 Ethernet controller: Advanced Micro Devices [AMD] 79c970 [PCnet32 LA…

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…

StartActivityForResult

StartActivity 用startActivityForResult(intent, requestcode);啟動子功能模塊activity onActivityResult(int requestCode, int resultCode, Intent data)對子activity返回進行判斷處理 public class StartActivity extends Activity implements OnClickListener {private Bu…

micropython 串口寫文件_MicroPython通過2G模塊串口收發短信

集成2G通信、定位模組&#xff0c;賦予物聯網特性。本例使用M6220&#xff0c;它是一款基于eSIM技術的2G模組&#xff0c;支持GSM/GPRS&#xff0c;提供GPS北斗雙模定位功能&#xff0c;并具備一定的數據處理能力&#xff0c;其2G工作頻段有GSM850、GSM900、DCS1800和PCS1900&a…