最近刚开始学习d的开发,D是一门系统开发语言,每一个程序员都应该学会一门系统开发语言。我之所以选择D,是因为我主要做服务器开发,应用开发,D有很高的开发效率。同时,服务器会要求有较高的执行效率,而D的另外一个优势就是编译后的二进制文件直接兼容C C++,所以调用C C++的开销基本可以忽略不计。最后一个很有吸引力的优势是:利用D,你可以选择使用GC,也可以绕过GC自己进行内存分配,也可以让一部分大对象不使用GC,而另外一部分生命周期较短的常用对象使用GC(如字符串),这样可以兼顾开发效率以及降低GC开销。
这里介绍的vibe.d是一个web开发框架,同时也是一个异步socket开发框架,同时你也不用像nodejs一样写无尽的回调,而是像写顺序程序一样来写异步处理。hibernated是D语言的一个ORM实现,和java里的hibernate有很大的相似之处,很容易上手。
所以,D博采众家所长,成为我理想中的开发语言,虽然D不流行,库也不是十分成熟(dub有个库管理,里面有百十个库,常用的基本都在),但是这些都瑕不掩瑜,我最想要的东西已经在这里了,剩下的就是完善一套开发环境。如果你和我一样是java程序员,也在寻找一门可以替代java的新语言,尝试一下D吧,应该不会让你失望。
创建工程testprj,
dub init testprj vibe.d
修改dub.json如下,这个配置是踩了许多坑之后能正常运行的一个配置:
{
"name": "testprj",
"description": "A simple vibe.d server application.",
"copyright": "Copyright © 2015, zhmt",
"authors": ["zhmt"],
"dependencies": {
"vibe-d": "~master",
"mysql-native": "0.1.0",
"hibernated": "0.2.19",
"ddbc": ">=0.2.16"
},
"subConfigurations": {
"hibernated": "MySQL",
"ddbc": "MySQL"
},
"versions": ["VibeDefaultMain","USE_MYSQL"]
}
修改dub.json如下,这个配置是踩了许多坑之后能正常运行的一个配置:
{
"name": "testprj",
"description": "A simple vibe.d server application.",
"copyright": "Copyright © 2015, zhmt",
"authors": ["zhmt"],
"dependencies": {
"vibe-d": "~master",
"mysql-native": "0.1.0",
"hibernated": "0.2.19",
"ddbc": ">=0.2.16"
},
"subConfigurations": {
"hibernated": "MySQL",
"ddbc": "MySQL"
},
"versions": ["VibeDefaultMain","USE_MYSQL"]
}
修改app.d如下:
import vibe.d;
import std.stdio;
//import serviceheader_types;
import hibernated.core;
import ddbc.core;
import ddbc.common;
class Customer
{
@Id string user;
string pwd;
string phone;
string mail;
this()
{
// Constructor code
}
}
shared static this()
{
import ddbc.drivers.mysqlddbc;
MySQLDriver driver = new MySQLDriver();
string url = MySQLDriver.generateUrl("10.211.55.10", 3306, "test");
string[string] params = MySQLDriver.setUserAndPassword("root", "你的密码");
DataSource ds = new ConnectionPoolDataSourceImpl(driver, url, params);
EntityMetaData schema = new SchemaInfoImpl!(Customer);
Dialect dialect = new MySQLDialect();
SessionFactory factory = new SessionFactoryImpl(schema, dialect, ds);
scope(exit) factory.close();
}
用dub编译运行testprj即可。
本文介绍D语言作为服务器和应用开发的强大工具,重点介绍了vibe.d框架和hibernated ORM,展示如何通过合理配置和使用D语言的特性来提高开发效率并减少GC开销。通过提供实际操作步骤,包括创建工程、配置dub.json和修改app.d文件,读者可以快速上手D语言,并应用于实际项目中。

680

被折叠的 条评论
为什么被折叠?



