หน้าแรก บริการ เกี่ยวกับ บล็อก เครื่องมือ ติดต่อเรา
เริ่มการร่วมมือ สายด่วนฉุกเฉิน
Englishen Españoles Magyarhu العربيةar Русскийru Українськаuk Deutschde Slovenčinask ไทยth 中文zh-CN 日本語ja 한국어ko Românăro Françaisfr हिन्दीhi বাংলাbn Portuguêspt Türkçetr Basa Jawajv Polskipl Češtinacs Bahasa Indonesiaid Tiếng Việtvi فارسیfa Kiswahilisw မြန်မာmy አማርኛam Italianoit Tagalogtl اردوur
PYTHON

สง่างาม. ยืดหยุ่น. ทรงพลัง.

สัตว์โทเทม
ของแบ็กเอนด์คุณ
จะเป็นอะไร?

เราสร้างระบบแบ็กเอนด์ที่แข็งแกร่ง ปลอดภัย ขยายได้ และออกแบบเพื่อประสิทธิภาพสูงสุด

RUST

ปลอดภัย. รวดเร็ว. ทำงานพร้อมกัน.

01 สองภาษา ไม่ใช่ห้า

หนึ่งกองที่เลือกมาโดยตั้งใจ

เอเจนซี่ที่พูดได้หลายภาษานั้นฟังดูดีในสไลด์นำเสนอ แต่ในกระบวนการผลิตจริง หมายถึงระบบสร้างสามแบบ ค่าว่างเปล่าสี่รูปแบบ และสุสานของบริการที่ดูแลเพียงครึ่งเดียว เราเลือก สองภาษาที่ครอบคลุม 95% ของงานจริง — และเราเก่งมากในทั้งสองภาษา

เส้นทางความร้อน · ระบบ · ความปลอดภัย

สนิม

9.6 คะแนนความเหมาะสมภายใน

ปลอดภัยจากความผิดพลาดในการจัดการหน่วยความจำโดยไม่ต้องใช้ตัวเก็บขยะ ปราศจากการแข่งขันของข้อมูลในขณะคอมไพล์ ผู้ตรวจสอบโค้ดที่เข้มงวดที่สุดที่คุณเคยมี — และเมื่อมันปล่อยให้คุณผ่านไป บริการของคุณจะไม่ปลุกคุณในวันอาทิตย์ อย่างแน่นอน

เมื่อเราเอื้อมมือไปหามัน

  • ระบบชำระเงินและทุกสิ่งที่เกี่ยวข้องกับเงินหรือข้อมูลส่วนบุคคล
  • เกตเวย์ API แบบร้อนพร้อม SLA ระดับห้าเก้า
  • เครื่องยนต์จับคู่ที่มีความหน่วงต่ำ, การซื้อขาย, แบบเรียลไทม์
  • โมดูล WebAssembly ที่ถูกส่งไปยังเบราว์เซอร์
  • เครื่องมือ CLI และดีมอนที่ต้องเริ่มต้นภายในไม่กี่มิลลิวินาที

การแลกเปลี่ยนที่เราจะไม่แสร้งทำเป็นไม่มี

  • การเตรียมความพร้อมสำหรับพนักงานใหม่: ~2–4 สัปดาห์จนถึงการทำงานอย่างมีประสิทธิภาพ
  • เวลาในการคอมไพล์บนพื้นที่ทำงานขนาดใหญ่ (เราได้แก้ไขด้วย sccache แล้ว)
  • ระบบนิเวศที่อายุน้อยกว่า Java — มีความสมบูรณ์ในจุดที่สำคัญ
กาว · ข้อมูล · ML · ความเร็ว

ไพธอน

9.3 คะแนนความเหมาะสมภายใน

เส้นทางที่เร็วที่สุดจากไวท์บอร์ดสู่ระบบที่ใช้งานได้จริง ระบบนิเวศที่สมบูรณ์ที่สุดบนโลก สำหรับข้อมูล, ML และการทำงานอัตโนมัติ Python สมัยใหม่ — 3.12, uv, ruff, pydantic, FastAPI — เป็นภาษาที่แม่นยำ มีประเภทข้อมูลชัดเจน และรวดเร็วเพียงพอสำหรับสิ่งที่คุณต้องการส่วนใหญ่

เมื่อเราเอื้อมมือไปหามัน

  • เครื่องมือภายใน, แดชบอร์ด, แผงควบคุมผู้ดูแลระบบ
  • ETL, ท่อข้อมูล, Airflow / Dagster / Prefect
  • ML — การฝึกอบรม, การให้บริการ, การประเมินผล
  • ระบบอัตโนมัติและการเชื่อมต่อกับ API ของผู้ขาย
  • MVP ที่จะเปิดตัวในไตรมาสนี้ไม่ใช่ปีหน้า

การแลกเปลี่ยนที่เราจะไม่แสร้งทำเป็นไม่มี

  • ประสิทธิภาพการทำงานแบบแกนเดียวช้ากว่า Rust 20–50 เท่า
  • หน่วยความจำต่อคำขอที่สูงขึ้น — เป็นอันตรายถึงชีวิตสำหรับบางภาระงาน
  • การพิมพ์แบบไดนามิกสร้างปัญหาเมื่อไม่มี mypy / pydantic ที่เข้มงวด
สนิมในที่ที่ไม่ควรมีนั้น มีราคาแพง Pythonในกรณีที่มีการจัดส่งล่าช้าและมีค่าใช้จ่ายสูง หนึ่งทีม ไม่มีหลักการตายตัว
02 จาก → ถึง

อะไรเปลี่ยนแปลงเมื่อคุณย้ายระบบ

เลือกภาษาต้นทาง แล้วดูผลกระทบของการย้ายไปยัง Rust หรือ Python ตัวเลขเหล่านี้เป็นค่ากลางจากโครงการย้ายระบบ 40 โครงการล่าสุดของเรา ไม่ใช่คำโฆษณาทางการตลาด

Rust เทียบกับ Python เทียบกับ C / C++

ผลลัพธ์ทางวิศวกรรมในโลกจริงเปรียบเทียบกับ stack ต้นทางที่เลือก

Rust Python C / C++ baseline

สัญญาณระดับ stack

ปัจจัยเชิงคุณภาพทางวิศวกรรมที่สำคัญนอกเหนือจากตัวเลขประสิทธิภาพการทำงาน

เส้นประสีเทาแสดง stack ต้นทางที่เลือก Rust และ Python วัดเทียบกับเส้นฐานนั้น ไม่ใช่เทียบกันเอง

วิธีที่เราวัดตัวเลขเหล่านี้

ค่ากลางจาก 40 โครงการย้ายระบบที่เสร็จสมบูรณ์ระหว่างปี 2023 ถึง 2026 วัด throughput ที่ชั้นแอปพลิเคชัน (end-to-end p50 ภายใต้ภาระงานจริง ไม่ใช่ microbenchmark) หน่วยความจำคือ RSS ในสภาวะสมดุล ค่าใช้จ่ายคือการคำนวณรายเดือนแบบ on-demand บน AWS/GCP โดยเงื่อนไขอื่นเท่ากัน ผลลัพธ์แต่ละโครงการแตกต่างกัน — เราเผยแพร่โครงการที่ไม่เป็นไปตามแผนด้วยเมื่อมีการร้องขอ

03 ตัวเลขที่ไม่มีเครื่องหมายดอกจัน

คำขอต่อวินาทีภายใต้ภาระงานจริง

ภาระงานเหมือนกัน — ตรวจสอบ JSON → query Postgres → render — วัดบนเครื่อง AMD Ryzen 7 เครื่องเดียว นี่ไม่ใช่ microbenchmark แหล่งที่มา & วิธีการ ↓

  1. 1 Rust · Axum
    21,030 req/s
  2. 2 C# .NET · ASP.NET Core
    14,707 req/s
  3. 3 Node.js · Fastify
    9,340 req/s
  4. 4 C++ · Drogon
    7,200 req/s
  5. 5 Go · Gin
    3,546 req/s
  6. 6 Python · FastAPI (Uvicorn)
    1,185 req/s
  7. 7 PHP · Laravel
    299 req/s

อ่านให้ถูกต้อง: Python อยู่ใกล้ด้านล่างของกราฟนี้ และนั่นก็ไม่เป็นไร เราไม่เรียกใช้ FastAPI บน hot path เราใช้มันในกรณีที่ 1,185 req/s มากกว่าที่ภาระงานต้องการอยู่แล้วถึง ~10× และชั่วโมงทำงานของวิศวกรมีค่ามากกว่ารอบการทำงานของ CPU วิธีการ: AMD Ryzen 7, Linux, Docker, instance เดียว, framework ยอดนิยมหนึ่งตัวต่อภาษา ตัวเลขเป็นค่าเฉลี่ยจากหลายรอบการทดสอบ

05 ต้นทุนที่แท้จริงของโค้ดที่เสียหาย

การหยุดให้บริการที่แท้จริงทำให้คุณเสียค่าใช้จ่ายอะไรบ้าง

"ห้าเก้า" ไม่ใช่การตลาด ด้านล่างนี้คือต้นทุนของการหยุดทำงานที่ไม่คาดคิดเป็นเวลาหนึ่งชั่วโมง ตามอุตสาหกรรม — พร้อมแหล่งที่มา เราสร้าง Rust ในที่ที่ตัวเลขเหล่านี้มีอยู่

ค่าใช้จ่ายที่เกิดขึ้นตั้งแต่คุณเปิดส่วนนี้
การเงิน / การดูแลสุขภาพ 0 บาท ประมาณ $83,000 ต่อนาที · $5,000,000 ต่อชั่วโมง
ยานยนต์ 0 บาท ประมาณ $38,000 ต่อนาที · $2.3 ล้านต่อชั่วโมง
องค์กรขนาดใหญ่ 0 บาท 23,750 ดอลลาร์/นาที · 1.4 ล้านดอลลาร์/ชั่วโมง
องค์กรขนาดกลาง 0 บาท ประมาณ $5,000 ต่อนาที · $300,000 ต่อชั่วโมง
การเงินและการดูแลสุขภาพ มากกว่า 5 ล้านดอลลาร์ ต่อชั่วโมง

กลุ่มอุตสาหกรรมที่มีความเสี่ยงสูงที่สุด แพลตฟอร์มการซื้อขาย ระบบการชำระเงิน และระบบทางคลินิก สามารถสูญเสียมากกว่า 5 ล้านดอลลาร์ต่อชั่วโมงในกรณีที่เกิดการหยุดชะงักอย่างรุนแรง — ก่อนที่จะนับรวมค่าใช้จ่ายด้านกฎระเบียบหรือการฟ้องร้องใดๆ เลย

ที่มา: การศึกษา Fortune 500 ประจำปี 2024 โดย Gartner; ต้นทุนการหยุดทำงานรายชั่วโมงประจำปี 2024 โดย ITIC
การผลิตยานยนต์ 2.3 ล้านดอลลาร์ / ชั่วโมง

สายการผลิตที่หยุดทำงานจะสูญเสียเงินประมาณ 640 ดอลลาร์ต่อวินาที การหยุดให้บริการของ CrowdStrike ในเดือนกรกฎาคม 2024 ทำให้ Delta Air Lines เพียงสายการบินเดียวสูญเสียเงิน 380 ล้านดอลลาร์ในระยะเวลาเพียงห้าวัน

แหล่งที่มา: การวิเคราะห์อุตสาหกรรมปี 2025 ของกลุ่มเออร์วูด; การวิเคราะห์หลังเหตุการณ์ของแอนไทเธซิส คราวด์สไตรค์
องค์กรขนาดใหญ่ (เฉลี่ย) 1.4 ล้านดอลลาร์ / ชั่วโมง

ตัวเลขของ BigPanda สำหรับองค์กรขนาดใหญ่ในปี 2024:$23,750 ต่อนาที ITIC รายงานว่า41%ขององค์กรขนาดใหญ่สูญเสียเงินระหว่าง $1M ถึง $5M ต่อชั่วโมง ของการหยุดทำงาน

แหล่งที่มา: งานวิจัย BigPanda ปี 2024; ITIC รายงานประจำปีครั้งที่ 11 เรื่องต้นทุนต่อชั่วโมงของการหยุดทำงาน
โกลบอล 2000 (ออกซ์ฟอร์ด อีโคโนมิกส์) 400,000 ล้านดอลลาร์สหรัฐ / ปี

ต้นทุนแฝงทั้งหมดจากการหยุดทำงานที่ไม่คาดคิดในบริษัทใหญ่ที่สุด 2,000 แห่งทั่วโลก ตามการศึกษาของ Oxford Economics ปี 2024 — โดยเฉลี่ยมีผลกระทบต่อบริษัทละ200 ล้านดอลลาร์ เมื่อรวมรายได้ ผลผลิต และการแก้ไขปัญหาเข้าด้วยกัน

แหล่งที่มา: Oxford Economics 2024, "ต้นทุนที่ซ่อนอยู่ของเวลาหยุดทำงาน".
ขนาดกลางและใหญ่ (ชั่วโมงปกติ) $300,000+ / ชั่วโมง

การสำรวจของ ITIC ประจำปี 2024: กว่า90%ขององค์กรขนาดกลางและขนาดใหญ่ในปัจจุบัน ประเมินความเสียหายจากการหยุดทำงานโดยไม่คาดคิดเพียงหนึ่งชั่วโมงสูงกว่าเกณฑ์ขั้นต่ำนี้ — ไม่รวมค่าปรับทางกฎหมาย แพ่ง หรือข้อบังคับต่าง ๆ

แหล่งที่มา: รายงานต้นทุนการหยุดทำงานรายชั่วโมง ITIC 2024
ขนาดเล็กและขนาดกลาง (SMB) 25,000–150,000 ดอลลาร์สหรัฐ / ชั่วโมง

การศึกษาความร่วมมือระหว่าง ITIC / Calyptix ประจำปี 2025 พบว่า SMB หลายแห่งสูญเสียเงินจำนวนนี้ต่อชั่วโมง; Siemens รายงานว่า SME ที่ประสบปัญหาการหยุดชะงักสามารถสูญเสียเงินได้สูงถึง$150,000 ต่อชั่วโมง เหตุการณ์การหยุดชะงักเฉลี่ยใช้เวลา87 นาที

แหล่งที่มา: ITIC + Calyptix 2025; Siemens True Cost of Downtime 2024.
06 ผลงานที่คัดสรร

สามโครงการ สามไฟที่แตกต่างกัน

ข้อมูลที่ไม่ระบุตัวตนในกรณีที่ข้อตกลงไม่เปิดเผยข้อมูล (NDA) กำหนดไว้ และระบุเฉพาะในกรณีที่ผลลัพธ์ระบุไว้ นี่คือ การมีส่วนร่วมที่เราจะชี้ให้ผู้ซื้อทางเทคนิคดูเป็นอันดับแรก

  1. กรณี 01 ไพธอน ฐานข้อมูล คริปโต GDPR

    คลังข้อมูลฟินเทค:เล็กลง 4 เท่า เร็วขึ้น 5.5 เท่า รองรับมาตรฐานสากลทั่วโลก

    ลูกค้าได้แบกรับคลัสเตอร์ Postgres ขนาด 1.8 TB ที่บวมไปด้วยคอลัมน์เก่า, ดัชนีที่ตายแล้ว, และ BLOB ที่เข้ารหัสแบบ inline ซึ่งได้เติบโตขึ้นเป็นเวลาเจ็ดปี การเข้ารหัสทำงานบนไลบรารีที่ถูกยกเลิกไปแล้วซึ่งถูกทำเครื่องหมายในรายงานการตรวจสอบสามฉบับแยกกัน ความเสี่ยงด้านกฎระเบียบเป็นเรื่องจริง; ผู้ตรวจสอบกำลังเฝ้าระวัง

    สิ่งที่เราทำ

    • ตรวจสอบโครงสร้างทั้งหมด + การใช้งาน, ลบคอลัมน์และดัชนีที่ไม่ใช้งาน, แนะนำการจัดแบ่งที่เหมาะสม
    • ย้ายระบบท่อส่งคริปโตจากไลบรารีเก่าไปยังสแต็ก AEAD ที่ทันสมัยและผ่านการตรวจสอบแล้ว พร้อมการหมุนเวียนกุญแจ
    • แปลงการเข้ารหัส BLOB แบบฝังในเนื้อหาเป็นการเข้ารหัสแบบซองจดหมายที่อ้างอิงพร้อม KMS เฉพาะ
    • จัดให้สอดคล้องกับการเก็บรักษาข้อมูลและการเข้าถึงข้อมูลส่วนบุคคลตามข้อกำหนดของ GDPR, CCPA และ APPI
    ผลลัพธ์

    ข้อมูลเดียวกัน ค่าใช้จ่ายในการจัดเก็บลดลงเหลือเพียงหนึ่งในสี่ ประสิทธิภาพเพิ่มขึ้น 5.5 เท่า และสุขภาพของระบบที่สะอาด พร้อมรับการตรวจสอบจากหน่วยงานกำกับดูแลรายถัดไปที่จะเข้ามาตรวจสอบ

  2. กรณี 02 สนิม C++ → Rust ความปลอดภัย การจัดเก็บ

    บริการ C++ เขียนใหม่ด้วย Rust:แก้ไขบั๊กระดับ CVE กว่า 100 รายการภายใน 9 สัปดาห์

    บริการประมวลผลไฟล์ที่ผู้ใช้ใช้งานในภาษา C++ ซึ่งเกิดข้อขัดข้องทุก 4–5 วัน และ ได้รับการแก้ไขในตำแหน่งเดิมทุกครั้ง การตรวจสอบของเราพบข้อบกพร่องจริงมากกว่า 100 รายการ: ช่องโหว่ที่ทำให้เกิดการปฏิเสธการให้บริการ (Denial-of-Service) บัฟเฟอร์ล้น การจัดการคำขอที่ไม่จำกัดขอบเขต ปัญหา 503 ในช่วงชั่วโมงเร่งด่วนกลายเป็นเรื่องปกติประจำสัปดาห์ ในด้านการจัดเก็บข้อมูล การอัปโหลดของผู้ใช้ได้สะสมกลายเป็นกองไฟล์ซ้ำซ้อนที่กินพื้นที่บักเก็ต จนเต็ม

    สิ่งที่เราทำ

    • เขียนใหม่ทั้งหมดด้วย Rust (axum + tokio) พร้อมการตรวจสอบข้อมูลขาเข้าอย่างเข้มงวดและจำกัดทรัพยากรอย่างชัดเจน
    • การทดสอบตามคุณสมบัติ +การทดสอบแบบสุ่มข้อมูลผ่านทุกตัวแยกวิเคราะห์และขอบเขตรูปแบบข้อมูล
    • ชั้นการจัดเก็บข้อมูลที่อ้างอิงเนื้อหาพร้อมการลบข้อมูลซ้ำออกในขณะเขียน
    • การเปิดตัวแบบ Blue-green หลังช่วงเวลาการรวมระบบ 4 ชั่วโมง โดยไม่มีการหยุดให้บริการ
    ผลลัพธ์

    บริการเปลี่ยนจาก "เปราะบางและต้องซ่อมแซมทุกสัปดาห์" เป็น "เราเลิกดูเพจเจอร์ไปแล้ว" ค่าใช้จ่ายในการจัดเก็บข้อมูลลดลงด้วยการลดข้อมูลซ้ำ ตั๋วสนับสนุนเกี่ยวกับข้อผิดพลาดและ 503 ลดลง และ การเขียนใหม่คืนทุนภายในไตรมาส

  3. เคส 03 สนิม ไพธอน eBPF / XDP CRM · ผู้ใช้ 4,000 คน

    ระบบ CRM สำหรับองค์กร, สร้างใหม่:18 เซิร์ฟเวอร์ → 5, ลดค่าใช้จ่ายลง 60%+

    ระบบ CRM ภายในที่ให้บริการผู้ใช้มากกว่า 4,000 คน ครอบคลุม IAM, SOC, การบันทึกข้อมูลแบบรวมศูนย์, แชท, การแชร์ไฟล์, VoIP และข้อมูลที่เข้ารหัสแบบ end-to-end มีเซิร์ฟเวอร์ 18 เครื่อง, Cloudflare บน ยอด และค่าใช้จ่ายคลาวด์ที่เพิ่มขึ้นเรื่อย ๆ โดยไม่คำนึงถึงจำนวนพนักงาน เราได้สร้างเส้นทาง ร้อนขึ้นใหม่ใน Rust, ยังคงใช้ Python ในชั้นการรวมและการรายงาน, และวาง ตัวกรอง eBPF/XDP ไว้ตรงหน้าการเข้า.

    สิ่งที่เราทำ

    • บริการ Rust สำหรับการตรวจสอบสิทธิ์ (IAM), การส่งข้อความแบบเรียลไทม์, การส่งสัญญาณ VoIP, การถ่ายโอนไฟล์
    • Python สำหรับส่วนติดต่อผู้ดูแลระบบ, การรายงาน, การเชื่อมโยงเหตุการณ์ SOC, การผสานรวมกับ API ของผู้ให้บริการ
    • eBPF/XDP บอทและการกรองการใช้งานที่ไม่เหมาะสมที่เคอร์เนล — แทนที่ Cloudflare สำหรับงานโหลดนี้
    • เขียนใหม่ระบบบันทึกข้อมูลแบบโครงสร้างโดยใช้โครงสร้างข้อมูลแบบไม่คัดลอกข้อมูล
    ผลลัพธ์

    เซิร์ฟเวอร์ลดลงสิบสามเครื่อง ไม่มีรายการ Cloudflare อีกต่อไป ทีม SOC เห็นสัญญาณที่ชัดเจนขึ้น ผ่านกระบวนการบันทึกข้อมูล และ CFO หยุดถามคำถามที่อึดอัด เกี่ยวกับงบประมาณโครงสร้างพื้นฐาน

07 วิธีที่เราทำงานจริง ๆ

หมุนปุ่มตัวเลข ดูแผนการเปลี่ยนไป

ทุกโครงการต้องบาลานซ์ระหว่างความเร็ว, ค่าใช้จ่าย, และความน่าเชื่อถือ. การประมาณการแบบห้าขั้นตอนต่อไปนี้ ได้รับการปรับให้สอดคล้องกับค่าเฉลี่ยของอุตสาหกรรม (การค้นหา 2–6 สัปดาห์, สถาปัตยกรรม 1–4 สัปดาห์, การนำไปใช้ 4–20 สัปดาห์, การทำให้แข็งแกร่ง 2–8 สัปดาห์, การส่งมอบ 1–2 สัปดาห์ — ต่อ รายงานปี 2024–2026 จาก NIX United, Agilie, SOLTECH, OTG Lab) เลื่อนแถบเลื่อน; แผนจะปรับน้ำหนักใหม่ทันที

01

การค้นพบ

3 สัปดาห์

อ่านโค้ดของคุณ สัมภาษณ์ทีมปฏิบัติการของคุณ ระบุสิ่งที่ยังไม่ทราบ เลือกภาษาตามแต่ละส่วนประกอบ

  • สัมภาษณ์โดเมน & ตรวจสอบโค้ด
  • ทะเบียนความเสี่ยง & เป้าหมาย SLA
  • การตัดสินใจเรื่องภาษาต่อบริการ
02

สถาปัตยกรรม

2 สัปดาห์

สัญญาต้องมาก่อนโค้ด OpenAPI / protobuf, โมเดลข้อมูล, โครงสร้างการปรับใช้, โครงร่างของคู่มือการดำเนินงาน

  • RFC สำหรับทุกสัญญาสาธารณะ
  • แบบจำลองข้อมูล + แผนการย้ายข้อมูล
  • อินฟรา-แอส-โค้ด เบสไลน์
03

การนำไปปฏิบัติ

8 สัปดาห์

PR ขนาดเล็ก, CI ผ่านตั้งแต่วันแรก, ทำการปรับใช้ทุกครั้งที่มีการผสาน, ตรวจสอบโดยผู้อาวุโสคนที่สอง

  • Rust: axum · tonic · sqlx
  • Python: FastAPI · Pydantic · SQLAlchemy
  • การสาธิตรายสัปดาห์ + บันทึกการเปลี่ยนแปลง
04

การเสริมความแข็งแกร่ง

3 สัปดาห์

การทดสอบแบบฟูซซิ่ง, การทดสอบตามคุณสมบัติ, การทดสอบโหลดกับปริมาณการใช้งานจริง, แบบจำลองภัยคุกคาม

  • cargo-fuzz · การทดสอบโปรโตคอล · สมมติฐาน
  • การทดสอบโหลด k6 ที่เชื่อมโยงกับ SLO
  • การตรวจสอบความปลอดภัยและการตรวจสอบการพึ่งพา
05

การส่งมอบ

1 สัปดาห์

Runbooks, การหมุนเวียนเวร, ADRs, และทีมที่เคยส่งมอบสิ่งนี้มาแล้ว

  • คู่มือปฏิบัติการ + ตารางเวร
  • บันทึก ADR และแผนผังสถาปัตยกรรม
  • การสนับสนุนหลังการเปิดตัว 30 วัน
08 ปัญหาเดียวกัน สองภาษา

จุดสิ้นสุดเดียวกันจะปรากฏอย่างไรในแต่ละรายการ

ดึงข้อมูลผู้ใช้, ตรวจสอบข้อมูลที่ป้อน, เก็บข้อมูลใน Postgres, ส่งคืน JSON. สลับระหว่าง ภาษา — ทั้งสองเป็นโค้ดจริงที่เราจะใช้งานจริง.

SQL_CREATE_USER ="insert into users(email,name) values(lower($1),$2) returning id,email,name"
Name = Annotated[str, StringConstraints(strip_whitespace=True, min_length=1, max_length=120)]

class UserIn(BaseModel):
    email: EmailStr
    name: ชื่อ

class UserOut(UserIn):
    id:int

@router.post("/users", response_model=UserOut, status_code=201)
async def create_user(u: UserIn) -> UserOut:
    try:
        row =await pool.fetchrow(SQL_CREATE_USER,str(u.email), u.name)
   ยกเว้นUniqueViolationErrorเป็นexc:
        ยกHTTPException(status_code=409, detail="อีเมลมีอยู่แล้ว")จากexc
    ถ้าrowเป็น None:
        ยกHTTPException(status_code=500, detail="การแทรกไม่สำเร็จ")
    คืนUserOut.model_validate(dict(row))
#[derive(Deserialize, Validate)]
#[serde(deny_unknown_fields)]
pub struct UserIn{
    #[validate(email)]
    pubemail: String,
    #[validate(custom(function ="valid_name"))]
    pubname: String,
}

pub async fn create_user(
    State(pool): State<PgPool>,
    ValidatedJson(u): ValidatedJson<UserIn>,)
 ->Result<(StatusCode, Json<UserOut>), ApiError> {
   letuser = sqlx::query_as!(UserOut,
        "insert into users(email,name) values(lower($1),$2) returning id,email,name",
        u.email.as_str(),
        u.name.trim(),
    )
    .fetch_one(&pool)
    .await
    .map_err(ApiError::from_db)?;

    Ok((StatusCode::CREATED, Json(user)))
}
บรรทัดของโค้ด
16 22
ปริมาณงานที่ดำเนินการ
1,185 คำขอ/วินาที 21,030 คำขอ/วินาที
ค่าความหน่วง p50
21.0 มิลลิวินาที 1.6 มิลลิวินาที
RAM ขณะไม่ได้ใช้งาน
41.2 MB 8.5 MB
เราจะตอบกลับภายใน 1 วันทำการ ไม่ล้อเล่น

คุณอ่านทั้งหน้าแล้ว
มาสร้างสิ่งนี้กันเถอะ

บอกเราว่าอะไรผิดปกติกับสแต็กของคุณ หรือสิ่งที่คุณต้องการสร้างจากศูนย์ คุณจะได้รับคำแนะนำทางวิศวกรรมที่แท้จริง — ไม่ใช่แค่การขาย

  • ไม่รับวิศวกรระดับจูเนียร์ ไม่ส่งงานไปต่างประเทศ
  • ตัวเลือกราคาคงที่สำหรับงานที่มีขอบเขตชัดเจน
  • ลงนามในข้อตกลงไม่เปิดเผยข้อมูลก่อนที่เราจะถามอะไรคุณ