返回目录
llbc为一个服务端框架,底层使用c++编写,上层支持python, c#, lua语言,最初的意图是作为基础组件库使用,并且提供面向Service, Facade模式的编码支持,以在实际项目的时候可以直接使用llbc完成业务框架搭建。
为什么会写llbc,跟其它框架有什么区别?
“为什么会写llbc?”,这个问题也困扰了自己几年,要怎么给自己答案,在今天,终于有一个比较合理的答案:服务器框架设计及实际开发的时候,会遇到非常非常多的问题,而每一个问题,或许业界都有各种工具、库可以帮你分别解决,我们要做的就是组合。这看似很“官方”、“教科书”式的解决方案,事实上我相信大部程序员,在付诸实施的时候,总会遇到非常非常多的问题:
- 每种工具库都有其特点,包括编译流程、跟其它库如何结合的建议、代码风格,这使得在组合这些库的时候,就会遇到非常非常多的问题,这还是开始组合时候出现的。
- 实际工程应用的时候,要对每种库都非常熟悉、了解,你才有把握应用在产品环境(除非你根本没有产品环境的概念或你不care产品环境出问题所带来的后果),如果你的服务器开发框架是基于这些一堆库之上构建的,你后面会不断游走在这些各自库的文档及bug list列表中,而不能全盘的从架构层面去优化你当前的业务框架。
- 在这些库组合在一起工作的时候,要如何在上层再提供一层“封装”来使得这些库能彼此协调的工作在一起,也是一个需要解决的问题,这花费的时间有时候不亚于你自己写一套真正的封装。
- 在产品开发后期,如果项目需求有变更,这些组合出来的库在调整的时候,很多情况下也会成为你掣肘。
5, 线上出现问题,因为框架基于各种库组合出来,在定位一个问题的时候,如果你对刚才发生这个问题的库不熟悉、不了解,那么将会花费非常多的时间在问题定位上,事实上每个程序员在这样做的时候,都不能确保自己对自己所组合的库都有很全面、深入的了解,可能只是了解其中几个而已。
以上的一些问题,并不是说完全否定了组合这些库来开发的思路,实际情况也不可能不用任何第三方库,只是想说在组合开发跟完整起一套框架来开发这个问题上,应该取一个平衡,llbc个人看来恰恰是这个平衡点上的一个产物。跟其它大型的框架如ACE之流比起来,它显得非常小巧简洁,但五脏具全;跟其它独立的工具库如json比起来,它感觉不够专业(事实上未必),但却好用,风格统一并能跟主体框架有机整合。为什么会写llbc,或许上面的啰嗦,就是答案了吧。
为什么使用llbc?
用llbc,能够在短时间内搭建出你的跨平台服务器框架(底层,业务),基础工具方面,llbc提供了内聚性足够强的支持并在上层通过Service及Facade有机整合,在易用性方面框架代码设计思想足够简单,自身架构也足够简洁,保证你能够在短时间内上手、搭建你的基础框架、平台。
llbc当前支持哪些平台、哪些语言?
当前llbc支持的平台分别为Windows
,Linux
,Mac
,iOS
,Android(理论上支持、未实际进行移植)
。
支持的语言:c/c++
,python
,c#(.Net,mono)
,lua(新增,支持逐步增加中)
。
如何使用llbc?
每个人最关心的,不过就是如何上手的问题啦,按照套路,我们以print("Hello")
开始第一个demo:
// c++ demo:
#include <llbc.h> // 包含llbc基础库统一头文件llbc.h
using namespace llbc; // 使用llbc命名空间
int main(int argc, char *argv[])
{
LLBC_Startup(); // 初始化llbc框架, 在主线程开始处完成初始化
LLBC_PrintLine("Hello World!"); // 使用LLBC_PrintLine完成到stdout的输出
LLBC_Cleanup(); // 销毁llbc框架
return 0;
}
如何编译llbc?
编译写在使用之后,是为了让大家尽快看到用例,有一个直观的了解。对于llbc,编译是非常简单的,这得益于premake工具,编译前请先clone llbc:
git clone https://github.com/lailongwei/llbc.git
cd llbc
git submodule update --init --recursive
下面是相关平台的编译说明:
Windows:
运行WinPreBuild.bat,生成指定vs版本sln文件,打开并选择你要的语言项目编译。
当前支持的vs版本: vs2005、vs2008、vs2010、vs2012、vs2013、vs2015。
Linux/Mac:
在linux环境下,请确认是否已经安装libuuid(
sudo yum install libuuid-devel
)在> Mac环境下,请确认是否已经安装xCode command line tools。
- 编译llbc c++核心库: make core_lib
- 编译核心库测试套件: make test
- 编译pyllbc: make py_wrap
- 编译lullbc: make lu_wrap
- 编译csllbc: make cs_wrap
ps: 直接make可以查看具体编译命令说明。
iOS:
使用xCode编译即可(untested)
Android:
暂时未提供编译工具支持。