<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                服務器裸奔 ========== 在 go 語言下要跑起一個HTTP服務器是很容易的. ```go package main import "net/http" func main() { http.ListenAndServe(":8080", http.FileServer(http.Dir("/usr/share/doc"))) } ``` 這就行了,一個靜態文件服務器就跑起來了. TypePress 下的代碼是這樣的 ```go package main import "github.com/typepress/server" func main() { server.Simple() } ``` 這個服務器沒有設置任何 Route, 只返回 404, 裸奔的服務器. 這只是表面, 下面來列舉下這個 Simple Server 背后都做了哪些工作 ## 配置基本參數 有三種方法設置服務器基本參數: - 通過命令行參數 --help 可以獲得幫助列表 - os.Getenv 獲取 應用通過 os.Setenv 設置參數 - 從 TOML 文件讀取 [TOML][1] 文件支持已經默認加入 ## 基本功能 有些基本的功能是一個框架需要提供的 - 安全關閉機制 shutdown 總用 kill 是不安全的. 得益于 [manners][2] - i18n 接口 [i18n][3] 接口非常輕量, 當 fmt.Sprintf 使就行 - 自定義信號 完全采用 os.Signal 接口, 安全關閉信號就是基于這個 - 延遲初始化 有些初始化工作需要在 main 執行時調用 - 子路由 按 http method 劃分的子路由, 主路由只能由 main 函數調用 - 角色控制 字符串角色命名, 自動轉化為 [accessflags][4] 支持的 interger - 日志支持 引入 [typepress/log][5], 支持 file 分割, email發送 - 數據庫接口支持 引入[typepress/db][6], 即便不需要也不必擔心, 這是個輕量接口 - [core][7] 全局可訪問的對象和 [types][8] 類型 - **基于 Martini Injector 的設計 這是最最重要的** 這樣列舉起來, 貌似這個 Simple Server 貌似已經不輕量了. 不! 他依然是輕量的, 因為這些接口設計的很輕量, 當你不用他們的時候, 他們不會產生過多的消耗. 這些接口的代碼都很短, 引入他們, 怎加不了多少代碼空間. 應該可以看出僅僅是這些基礎的功能已經形成了一個服務器框架. 這些都已經準備好了. 哦還有模板, 這個東西不打算默認引入, 各種口味難調. ## 模塊化 這些很多都是獨立的 package, 可以單獨使用. 從 [typepress][9] org 可以看出, 模塊以獨立的 rep 出現. typepress 特別注意降低依賴, 寫成獨立 rep 是最基本的方法. [1]: https://github.com/mojombo/toml [2]: github.com/braintree/manners [3]: https://github.com/typepress/i18n [4]: https://github.com/typepress/accessflags [5]: https://github.com/typepress/log [6]: https://github.com/typepress/db [7]: https://github.com/typepress/core [8]: https://github.com/typepress/types [9]: https://github.com/typepress
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看