ข้ามไปยังเนื้อหา

เริ่มต้นอย่างรวดเร็วบน Go

ในอีกไม่กี่นาที บริการ Go ของคุณจะประเมิน feature flag ในโปรเซส — ไม่มีการวิ่งข้ามเครือข่ายต่อการตรวจสอบ ไม่มีเวลาหน่วงในเส้นทางคำขอของคุณ การ poll หนึ่งครั้งรับใช้ทุกคำขอที่โปรเซสของคุณจัดการ

ไม่มี runtime dependency บล็อก require ของ SDK ว่างเปล่า และจะเป็นเช่นนั้นต่อไป

SDK อยู่ในรีโพซิทอรีสาธารณะบน GitHub — ติดตั้งจากตรงนั้นได้เลย โดยปักหมุดไว้ที่รีลีส

Terminal window
go get github.com/FortressFlag/FortressFlag_SDK_go@v1.0.0

SDK นี้ใช้ คีย์เซิร์ฟเวอร์ (ffs_…) และมันตรงข้ามกับคีย์ไคลเอนต์ที่ SDK มือถือและเว็บฝังไป มันดาวน์โหลด ruleset ทั้งชุดของคุณได้ รวมกฎการเจาะกลุ่ม ปฏิบัติกับมันเหมือนรหัสผ่านฐานข้อมูลทุกประการ — ตัวแปรสภาพแวดล้อมหรือ secret manager ไม่ใช่โค้ด ไม่ใช่รีโพซิทอรี ไม่ใช่ log เด็ดขาด คีย์สองคลาส เทียบกันข้าง ๆ

package main
import (
"context"
"os"
"time"
fortressflag "github.com/FortressFlag/FortressFlag_SDK_go"
)
func main() {
client, err := fortressflag.New(fortressflag.Configuration{
Key: os.Getenv("FF_SERVER_KEY"),
})
if err != nil {
// ที่เดียวที่ SDK คืน error ได้ คือคอนฟิกที่ผิดรูป
// ก่อนที่จะมีอะไรให้บริการ
panic(err)
}
defer client.Close()
startCtx, cancel := context.WithTimeout(context.Background(), 15*time.Second)
client.Start(startCtx) // บล็อกจนกว่า ruleset ชุดแรกจะมาถึง (หรือ context สิ้นสุด)
cancel()
// ... บริการของคุณทำงาน การตรวจสอบ flag ตอนนี้คือการเรียกฟังก์ชันในหน่วยความจำ
}

Start ไม่มีวันคืนค่าความล้มเหลวร้ายแรง — ถ้าการดึงครั้งแรกมาไม่ทันเวลา client จะพยายามต่อในเบื้องหลัง และผู้เรียกของคุณได้ค่าเริ่มต้นไปพลาง

enabled := client.Bool("new-checkout", fortressflag.Context{
Key: "user-42", // คีย์บริบทที่คงที่ของคุณ จะเป็น user id หรือ session id ก็แล้วแต่คุณ
Tags: map[string]string{"cohort": "beta"},
}, false) // ค่า fallback ถ้าไม่รู้จัก flag หรือไม่เคยดึงอะไรมาเลย

client.String และ client.Number ทำงานแบบเดียวกัน Key ของบริบทคือสิ่งที่ rollout ตามเปอร์เซ็นต์ใช้จัดกลุ่ม — ส่งตัวระบุเดิมอย่างสม่ำเสมอ แล้วผู้ใช้แต่ละคนจะได้กลุ่มที่คงที่ มันคือข้อมูลของคุณ SDK ไม่มีวันตรวจสอบ เก็บ หรือ log มัน

แค่นั้น — บริการของคุณกำลังประเมิน flag ในเครื่องแล้ว การเปลี่ยนแปลงในแดชบอร์ดไปถึงทุกโปรเซสภายในราวหนึ่งนาที

Bool String และ Number ตอบเสมอและไม่มีวัน panic — ปัญหาเรื่อง flag ต้องไม่ทำให้บริการของคุณล่มเด็ดขาด โปรเซสที่รีสตาร์ตให้บริการค่า fallback ณ จุดเรียกของคุณจนกว่าการดึงครั้งแรกจะมาถึง (หรือตั้ง CachePath ในคอนฟิกเพื่อบันทึก ruleset ล่าสุดลงไฟล์ที่คุณเลือก แล้วการรีสตาร์ตจะกลับมาจากมันทันที) แม้แต่คีย์ที่ถูกเพิกถอนก็ไม่ทำให้อะไรพัง SDK ประเมินต่อด้วย ruleset ล่าสุดที่มันดาวน์โหลดมา จนกว่าคุณจะให้คีย์ใหม่