<menu id="guoca"></menu>
<nav id="guoca"></nav><xmp id="guoca">
  • <xmp id="guoca">
  • <nav id="guoca"><code id="guoca"></code></nav>
  • <nav id="guoca"><code id="guoca"></code></nav>

    go全棧開發框架bud,go語言中的ruby on rails

    VSole2022-08-03 10:22:40
    • 介紹

    Bud是一個go語言編寫的全棧開發框架,類似ruby on railsBud的使命是降低構建、開發和維護web應用的成本。Bud提供了一整套文檔完善的、充分測試的工具來降低web應用開發成本。

    • 安裝
    curl -sf https://raw.githubusercontent.com/livebud/bud/main/install.sh | sh
    bud -h
    
    • 創建web app
    bud create hello
    cd hello
    ls
    go.mod  node_modules/  package-lock.json  package.json
    

    不像其他全棧框架,bud生成的初始代碼非常少,再添加依賴之后,bud才會生成所有的代碼。

    bud run運行項目,開啟一個開發模式的Server:

    bud run
    | Listening on http://0.0.0.0:3000
    

    • 目錄結構

    Bud提供了一個標準目錄結構:

    $YOUR_APP
    ├─ bud
    ├─ controller
    ├─ internal
    ├─ public
    └─ view
    
    • bud/ 這個目錄是創建的時候自動生成的,包含框架生成的代碼,偶爾會需要從這個目錄導入packages,但大部分時候都可以忽略它,建議不要放在版本控制器里
    • controller/ 控制器目錄用來獲取http請求,并響應返回
    • view/ 視圖目錄用來存放視圖文件
    • public/ public目錄用來存放靜態資源
    • internal/ 這個目錄不會被Bud框架引用,建議放這個應用特定的packages
    • 控制器和路由

    Bud的路由不同于傳統的go框架,它遵循一套約定:每個控制器對應一組標準路由,也可以自定義Action,Action和路由一一對應,下面看例子:

    bud new controller post

    這個命令會生成

    controller/post/controller.go 此時這個文件里只能包含以下方法:

    可以選擇實現任意方法,如果要新增一個自定義路由,則需要新增一個方法:

    func (c *Controller) About(ctx context.Context) (string, error) {
        return "hello", nil
    }
    

    這個方法有一個默認路由/about,首字母大寫的Action會自動獲得對應小寫的路由,首字母小寫的Action不會獲得路由。

    • 請求和響應

    解析請求框架會自動完成,可以在action參數里接收,也可以使用單獨的結構體接收,例如:

    func (c *Controller) About(ctx context.Context, name string) (string, error) {
        return fmt.Sprintf("hello %s", name), nil
    }
    type Input struct {
        Name string
    }
    func (c *Controller) About(ctx context.Context, in *Input) (string, error) {
        return fmt.Sprintf("hello %s", in.Name), nil
    }
    

    一個控制器如果沒有對應的視圖,總是返回json,例如:

    func (c *Controller) Create() (id int, email string) {
      return 10, "alice@livebud.com"
    }
    type Output struct {
      ID int
      Email string
    }
    func (c *Controller) Create() Output {
      return Output{
        ID: 10, 
        Email: "alice@livebud.com",
      }
    }
    

    上述這兩種形式都將返回:

    {
      "id": 10,
      "email": "alice@livebud.com"
    }
    
    • 視圖

    視圖用來展示HTML頁面,bud默認使用svelte渲染視圖,svelte是一個高性能前端js框架。

    $YOUR_APP
    └─ view
       ├─ index.svelte     -> Root index page
       ├─ posts
       │  ├─ edit.svelte   -> Edit post page
       │  ├─ index.svelte  -> Post index page
       │  ├─ new.svelte    -> New post page
       │  ├─ show.svelte   -> Show post page
       │  └─ Post.svelte   -> Post component (not rendered)
       └─ users
          ├─ edit.svelte   -> Edit user page
          ├─ index.svelte  -> User index page
          └─ show.svelte   -> Show user page
    

    控制器中返回的值,如果有對應視圖文件,則值會被傳遞到視圖中:

    <script>
      export let users = [] //來自控制器
    </script>
    <h1>Users</h1>
    <ul>
        {#each users as user}
        <li>{user.name} is {user.age} years old</li>
        {/each}
    </ul>
    
    • 其他

    Bud框架并沒有自己的ORM,用戶可自行選擇orm框架,通過依賴注入在控制器中使用。另外,還有全棧框架包含的特性,如錯誤處理、插件系統、數據驗證及安全、日志、隊列與定時任務、文件與存儲等都可以在官方文檔上找到。

    開發框架rails
    本作品采用《CC 協議》,轉載必須注明作者和本文鏈接
    最全的Python開發庫!
    2022-07-01 08:24:52
    Web 框架主要用于網站開發,可以實現數據的交互和業務功能的完善。使用 Web 框架進行 網站開發的時候,在進行數據緩存、數據庫訪問、數據安全校驗等方面,不需要自己再重新實現,而是將業務邏輯相關的代碼寫入框架就可以。
    不像其他全棧框架,bud生成的初始代碼非常少,再添加依賴之后,bud才會生成所有的代碼。用bud run運行項目,開啟一個開發模式的Server:bud run. 其他Bud框架并沒有自己的ORM,用戶可自行選擇orm框架,通過依賴注入在控制器中使用。另外,還有全棧框架包含的特性,如錯誤處理、插件系統、數據驗證及安全、日志、隊列與定時任務、文件與存儲等都可以在官方文檔上找到。
    InfoWorld 公布了 2022 年最佳開源軟件榜單。InfoWorld 的 2022 年 Bossie 獎旨在表彰年度最重要和最具創新性的應用程序開發、devops、數據分析和機器學習工具。Redwood 允許針對各種部署環境,包括 Vercel 和 Netlify 等無服務器平臺。它允許拖放組件來構建儀表板、使用 JavaScript 對象編寫邏輯并連接到任何 API、數據庫或 GraphQL 源。Spinnaker 是一個持續交付平臺,它定位于將產品快速且持續的部署到多種云平臺上。Spinnaker 主要特性:配置一次,隨時運行;隨地部署,集中化管理;開源。
    是一套用于對域名進行偵察的工具。該程序會檢查 SPF 和 DMARC 記錄中是否存在允許欺騙的弱配置。用于發現計算機網絡上的主機和服務,從而構建網絡的“地圖”。自動滲透測試偵察掃描儀。不受 API 限制,因為它使用 Selenium 檢測瀏覽器。輸出報告以幫助關聯跨站點的目標。是一個 python 腳本,它檢查電子郵件帳戶是否在數據泄露中受到損害,如果電子郵件帳戶受到損害,它會繼續查找受損害帳戶的密碼。LinkedIn 枚舉工具,通過搜索引擎抓取從組織中提取有效員工姓名。
    企業的安全性取決于其自身,與低代碼或無代碼沒有太大關系。
    1. Arachni Arachni是一款基于Ruby框架構建的高性能安全掃描程序,適用于現代Web應用程序。它可用于Mac,Windows和Linux的便攜式二進制文件
    Web Hacking 101 中文版:https://wizardforcel.gitbooks.io/web-hacking-101/content/ 淺入淺出Android安全 中文版:https://wizardforcel.gitbooks.io/asani/content/ Android 滲透測試學習手冊 中文
    現在,我利用它運行一個Puma Web服務器,上面跑著一個簡單的Sinatra應用。一臺舊的安卓手機可能并不會有太高的性能,但t2.nano的AWS服務器也沒有。當然,手機的處理器是ARM,而云服務器通常是x86;內存管理也完全不同。不論如何,這篇文章的目的是介紹如何將安卓設備改造成Web服務器或任何其他東西。安裝完成后不需要任何配置。方法實現有幾種,但我認為最方便的是通過一個名為Dropbear的軟件。
    上周在拉斯維加斯舉行的Black Hat2022大會連續第25年通過調查分析和報告大規模安全漏洞和網絡攻擊為業界敲響警鐘,指明方向。IOA已被證明可以有效地根據實際的對手行為來識別和阻止違規行為,而與攻擊中使用的惡意軟件或漏洞無關。
    VSole
    網絡安全專家
      亚洲 欧美 自拍 唯美 另类