初识llbc

作者: blueuee | 来源:发表于2017-07-27 23:34 被阅读0次

    返回目录
    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:

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

    相关文章

      网友评论

        本文标题:初识llbc

        本文链接:https://www.haomeiwen.com/subject/nxwtlxtx.html