初识llbc

返回目录
llbc为一个服务端框架,底层使用c++编写,上层支持python, c#, lua语言,最初的意图是作为基础组件库使用,并且提供面向Service, Facade模式的编码支持,以在实际项目的时候可以直接使用llbc完成业务框架搭建。

为什么会写llbc,跟其它框架有什么区别?

“为什么会写llbc?”,这个问题也困扰了自己几年,要怎么给自己答案,在今天,终于有一个比较合理的答案:服务器框架设计及实际开发的时候,会遇到非常非常多的问题,而每一个问题,或许业界都有各种工具、库可以帮你分别解决,我们要做的就是组合。这看似很“官方”、“教科书”式的解决方案,事实上我相信大部程序员,在付诸实施的时候,总会遇到非常非常多的问题:

  1. 每种工具库都有其特点,包括编译流程、跟其它库如何结合的建议、代码风格,这使得在组合这些库的时候,就会遇到非常非常多的问题,这还是开始组合时候出现的。
  2. 实际工程应用的时候,要对每种库都非常熟悉、了解,你才有把握应用在产品环境(除非你根本没有产品环境的概念或你不care产品环境出问题所带来的后果),如果你的服务器开发框架是基于这些一堆库之上构建的,你后面会不断游走在这些各自库的文档及bug list列表中,而不能全盘的从架构层面去优化你当前的业务框架。
  3. 在这些库组合在一起工作的时候,要如何在上层再提供一层“封装”来使得这些库能彼此协调的工作在一起,也是一个需要解决的问题,这花费的时间有时候不亚于你自己写一套真正的封装。
  4. 在产品开发后期,如果项目需求有变更,这些组合出来的库在调整的时候,很多情况下也会成为你掣肘。
    5, 线上出现问题,因为框架基于各种库组合出来,在定位一个问题的时候,如果你对刚才发生这个问题的库不熟悉、不了解,那么将会花费非常多的时间在问题定位上,事实上每个程序员在这样做的时候,都不能确保自己对自己所组合的库都有很全面、深入的了解,可能只是了解其中几个而已。

以上的一些问题,并不是说完全否定了组合这些库来开发的思路,实际情况也不可能不用任何第三方库,只是想说在组合开发跟完整起一套框架来开发这个问题上,应该取一个平衡,llbc个人看来恰恰是这个平衡点上的一个产物。跟其它大型的框架如ACE之流比起来,它显得非常小巧简洁,但五脏具全;跟其它独立的工具库如json比起来,它感觉不够专业(事实上未必),但却好用,风格统一并能跟主体框架有机整合。为什么会写llbc,或许上面的啰嗦,就是答案了吧。

为什么使用llbc?

用llbc,能够在短时间内搭建出你的跨平台服务器框架(底层,业务),基础工具方面,llbc提供了内聚性足够强的支持并在上层通过Service及Facade有机整合,在易用性方面框架代码设计思想足够简单,自身架构也足够简洁,保证你能够在短时间内上手、搭建你的基础框架、平台。

llbc当前支持哪些平台、哪些语言?

当前llbc支持的平台分别为WindowsLinuxMaciOSAndroid(理论上支持、未实际进行移植)
支持的语言:c/c++pythonc#(.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:

暂时未提供编译工具支持。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,271评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,275评论 2 380
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,151评论 0 336
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,550评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,553评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,559评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,924评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,580评论 0 257
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,826评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,578评论 2 320
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,661评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,363评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,940评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,926评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,156评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,872评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,391评论 2 342

推荐阅读更多精彩内容