生活随笔
收集整理的這篇文章主要介紹了
开始CSRebot
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
寫代碼很久了了,時不時想把這些年學到的,用到的,或自己感悟到的,匯總一下,形成一個東西,或資料,或工具。但每當開始時就一片空白,總是覺得這些大家都會,這些只是自己片面的觀點,這些拿不出手……
轉念又想,再不寫就更老了 ,再說社區的力量是偉大的,在寫的過程中,可以集大家之思想,來完善,優化。
所以,在這里,如果大家對CSRebot有什么想法,都可以留言,建議也好,指正也好,觀點也好,我會認真思考,認真對待,把CSRebot變成一個貼心的代碼的小助手。
什么是CSRebot?
答:我想的一個名字,意思就是在我們寫csharp時能輔助我們的小工具。
市面上有很多各種各樣的工具,肯定會有重復,也可能不如別人做的好,還是那句話,再不寫就更老了,更重要的是,在寫的路上本身就是一件很幸福的事 ,沒有最好,但求更好。
理想是偉大的,現實是骨感的,從哪里開始?
就從.net tool開始吧,這是一個助手切入點;
開發是一個復雜的過程,CSRebot能從什么方面幫助呢?
就從手邊開始吧,先把表轉成實體類。
想了一下,把數據庫結構轉成實體需要兩個步驟和一前提:
兩個步驟:
1、查詢出數據結構
2、轉換實體
一個前提:
具備數據類型和語法類型的映射關系
下面是我的想(代)法(碼):
數據庫的結構信息用如下實體類承載
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>
/// 完成從數據庫生成數據庫結構實體
/// </summary>
public interface ITraverser
{DataBase?Traverse();
}
///?<summary>
///?完成對應編程語言實體類生成
///?</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、是根據工具的命令和參數選項來執行命令
收集思路:工具的關鍵字是csrebot,那數據轉實體的關命令用什么好?
我初步想的是用gen,generate頭三個字母,簡單,如果你有好的建議請留言。
2、二是實現數據庫結構轉實體
收集思路:這里要實現上面的兩個接口:ITraverser,Builder。
我的初步想法是,生成的實體類時,項目不同,要求不一,比如實體類上要求帶特定的attribute,如果這里能用個模板的,就更加靈活了,工具只用來填空實體名稱,屬性名稱,類型就好了,這里大家有什么建議,可以留言給我。
期待您的建議!
總結
以上是生活随笔 為你收集整理的开始CSRebot 的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔 網站內容還不錯,歡迎將生活随笔 推薦給好友。