• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            posts - 9,  comments - 19,  trackbacks - 0

            背景

            前段時(shí)間項(xiàng)目需要一個(gè)點(diǎn)擊服務(wù),大致是要根據(jù)用戶請(qǐng)求的url及數(shù)據(jù)庫中的規(guī)則,匹配出一個(gè)結(jié)果并記錄日志。最開始是一個(gè)很小的需求,結(jié)果業(yè)務(wù)越來越復(fù)雜,業(yè)務(wù)邏輯中經(jīng)常要處理header頭和一些其他的信息,導(dǎo)致代碼越來越混亂。在一期結(jié)束之后,抽時(shí)間把這段時(shí)間的工作抽象出了一個(gè)輕量級(jí)框架,只做了適量的封裝,加入了代碼生成的模塊,可以幫助開發(fā)者迅速做出一個(gè)可用的web服務(wù)。

            介紹

            dodolu框架地址(Github)。

            該框架只做了最小化的封裝,幾乎沒有性能損失,并提供了根據(jù)配置文件(meta.lua),自動(dòng)生成route模塊,nginx.conf配置,logger模塊的功能,減輕了開發(fā)工作量,避免重復(fù)手寫大量易錯(cuò)的配置或字符串變量,有助于多人開發(fā)統(tǒng)一風(fēng)格。

            詳情Github的README

            功能

            包括三個(gè)部分,一個(gè)是web框架,一個(gè)是代碼自動(dòng)生成模塊,一個(gè)是魔改出的lua遠(yuǎn)程調(diào)試器

            web框架部分

            只有1k行以下的代碼,集成了resty.template、resty.cookie、UUID生成等第三方模塊。提供request、response、context、util等庫方便開發(fā)人員使用。

            代碼自動(dòng)生成部分

            可自動(dòng)生成:

            1. 路由配置
            2. 日志記錄模塊
            3. nginx.conf

            主要目的在于解決nginx配置與lua代碼的分離問題(在日志記錄中尤為嚴(yán)重)。

            開發(fā)人員新建應(yīng)用步驟:在App文件夾下,新建lua文件,然后填入do_get()方法即可處理相應(yīng)的get請(qǐng)求,所有配置在meta/meta.lua里面。

            一個(gè)記錄日志并返回1x1gif的例子:

            -- 這個(gè)文件下面存放你的業(yè)務(wù)邏輯
            -- 這個(gè)文件下面存放你的業(yè)務(wù)邏輯
            local app = {} function app.do_get(ctx)      local response = ctx.response     local request = ctx.request     local cookie = ctx.cookie
                response:set_content_type("text/html")     local url = request.uri     -- do some process
                ------------- write log ---------------     -- my_log 日志模塊是根據(jù)meta.lua自動(dòng)生成的     local logger = ctx.get_logger('my_log')       local log_data = { a = "xxx"}     logger.write(log_data, other_params)
                ------------- return empty gif -------     response:empty_gif()     response:close() end
            function app.do_post(ctx) end function app.do_put(ctx) end function app.do_delete(ctx) end
            return app

            lua遠(yuǎn)程調(diào)試器

            文檔詳細(xì)見這里,這里只演示下用法:
            sh debug.sh,然后運(yùn)行用戶程序,成功后

            Lua Remote Debugger
            Run the program you wish to debug
            Paused at file a.lua
            Type 'help' for commands

            下一步  n

            n
            Paused at file a.lua line 8
            8: print("Start")


            查看源碼  l

            > l  
            source file: a.lua
            2:   
            3:   local tab = {
            4:       foo = 1,
            5:       bar = 2
            6:   }
            7:   
            8:>> print("Start")
            9:   
            10:  local bb = require "b"
            11:  bb.foo()
            12:   
            13:  for i = 1, 10 do
            14:      print("Loop")


            設(shè)置斷點(diǎn)   b <file>:<line>   查看    listb

            > b a.lua:11
            > listb 
            a.lua: 11

            查看局部變量  local

            > local {         ["tab"] = {                 {                         ["bar"] = 2,                         ["foo"] = 1,                 },                 "table: 0x2589ee0",         }, }

            查看變量   p tab

            > p tab
            {
                    ["bar"] = 2,
                    ["foo"] = 1,
            }
            繼續(xù)執(zhí)行,直到斷點(diǎn)  r
            > r Paused at file a.lua line 11


            posted on 2014-12-22 18:22 右席 閱讀(3344) 評(píng)論(1)  編輯 收藏 引用 所屬分類: Luajit
            色综合久久久久综合体桃花网| 亚洲va中文字幕无码久久不卡| 国产精品免费看久久久| 狠狠精品久久久无码中文字幕| 欧美久久久久久精选9999| 99久久综合国产精品二区| 精品久久久久久无码中文野结衣| 色综合久久综精品| 久久九九免费高清视频| 亚洲色欲久久久久综合网| 久久婷婷五月综合成人D啪| 国产亚洲精久久久久久无码77777| 国产精品久久久香蕉| 久久久噜噜噜www成人网| 国产精品青草久久久久婷婷| 国产福利电影一区二区三区久久老子无码午夜伦不 | 久久无码av三级| 国产精品热久久毛片| 中文字幕乱码人妻无码久久| 久久精品国产亚洲AV嫖农村妇女| 国产精品久久久久久搜索| 91久久成人免费| 国内精品伊人久久久影院| 久久精品黄AA片一区二区三区| 久久精品国产一区| 精品久久久久久久国产潘金莲| 麻豆成人久久精品二区三区免费 | 欧美亚洲色综久久精品国产| 青青热久久综合网伊人| 人妻无码αv中文字幕久久琪琪布 人妻无码精品久久亚瑟影视 | 噜噜噜色噜噜噜久久| 狠狠色丁香婷综合久久| 性做久久久久久久久久久| 色欲久久久天天天综合网精品| 国产毛片久久久久久国产毛片| 亚洲午夜无码久久久久| 国产精品成人无码久久久久久| 久久人人妻人人爽人人爽| 日本欧美国产精品第一页久久| 狠狠色丁香久久婷婷综合五月 | 色老头网站久久网|