日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

开始CSRebot

發(fā)布時間:2023/12/4 编程问答 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 开始CSRebot 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

寫代碼很久了了,時不時想把這些年學(xué)到的,用到的,或自己感悟到的,匯總一下,形成一個東西,或資料,或工具。但每當(dāng)開始時就一片空白,總是覺得這些大家都會,這些只是自己片面的觀點(diǎn),這些拿不出手……

轉(zhuǎn)念又想,再不寫就更老了,再說社區(qū)的力量是偉大的,在寫的過程中,可以集大家之思想,來完善,優(yōu)化。

所以,在這里,如果大家對CSRebot有什么想法,都可以留言,建議也好,指正也好,觀點(diǎn)也好,我會認(rèn)真思考,認(rèn)真對待,把CSRebot變成一個貼心的代碼的小助手。


什么是CSRebot?

答:我想的一個名字,意思就是在我們寫csharp時能輔助我們的小工具。


市面上有很多各種各樣的工具,肯定會有重復(fù),也可能不如別人做的好,還是那句話,再不寫就更老了,更重要的是,在寫的路上本身就是一件很幸福的事,沒有最好,但求更好。

理想是偉大的,現(xiàn)實(shí)是骨感的,從哪里開始?

就從.net tool開始吧,這是一個助手切入點(diǎn);

開發(fā)是一個復(fù)雜的過程,CSRebot能從什么方面幫助呢?

就從手邊開始吧,先把表轉(zhuǎn)成實(shí)體類。


想了一下,把數(shù)據(jù)庫結(jié)構(gòu)轉(zhuǎn)成實(shí)體需要兩個步驟和一前提:

兩個步驟:

1、查詢出數(shù)據(jù)結(jié)構(gòu)

2、轉(zhuǎn)換實(shí)體

一個前提:

具備數(shù)據(jù)類型和語法類型的映射關(guān)系

下面是我的想(代)法(碼):

數(shù)據(jù)庫的結(jié)構(gòu)信息用如下實(shí)體類承載

public class DataBase{public?string?DataBaseName?{?get;?set;?}public?List<Table>?Tables{?get;?set;?}?=?new?List<Table>();}public class Table{public?string?TableName?{?get;?set;?}public?string?TableDescribe?{?get;?set;?}public List<Field> Fields { get; set; } = new List<Field>();}public class Field{public?string?FieldName{?get;?set;?}public?string?FieldDescribe?{?get;?set;?}public string DBType { get; set; }}

兩個步驟用兩個接口完成

/// <summary> /// 完成從數(shù)據(jù)庫生成數(shù)據(jù)庫結(jié)構(gòu)實(shí)體 /// </summary> public interface ITraverser {DataBase?Traverse(); } ///?<summary> ///?完成對應(yīng)編程語言實(shí)體類生成 ///?</summary>???? public?interface?IBuilder {void?Build(DataBase?database,?CommandOptions?options); }

一個條件(初步整理)

_typeMap = new Dictionary<string, string> {{"char","char" },{"varchar","string" },{"tinytext","string" },{"text","string" },{"blob","string" },{"mediumtext","string" },{"mediumblob","string" },{"longblob","string" },{"longtext","string" },{"tinyint","short" },{"smallint","short" },{"mediumint","short" },{"int","int" },{"bigint","long" },{"float","float" },{"double","double" },{"decimal","decimal" },{"date","DateTime" },{"datetime","DateTime" },{"timestamp","string" },{"time","DateTime" }, {"boolean","bool" }, };

有了思路,接下來是兩個工作:

1、是根據(jù)工具的命令和參數(shù)選項來執(zhí)行命令

收集思路:工具的關(guān)鍵字是csrebot,那數(shù)據(jù)轉(zhuǎn)實(shí)體的關(guān)命令用什么好?

我初步想的是用gen,generate頭三個字母,簡單,如果你有好的建議請留言。

2、二是實(shí)現(xiàn)數(shù)據(jù)庫結(jié)構(gòu)轉(zhuǎn)實(shí)體

收集思路:這里要實(shí)現(xiàn)上面的兩個接口:ITraverser,Builder。

我的初步想法是,生成的實(shí)體類時,項目不同,要求不一,比如實(shí)體類上要求帶特定的attribute,如果這里能用個模板的,就更加靈活了,工具只用來填空實(shí)體名稱,屬性名稱,類型就好了,這里大家有什么建議,可以留言給我。

期待您的建議!

總結(jié)

以上是生活随笔為你收集整理的开始CSRebot的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。