รับโครงการใหม่ · ทีมเฉพาะผู้มีประสบการณ์ · เน้นการทำงานทางไกล PWN-ALL · สตูดิโอซอฟต์แวร์สั่งทำพิเศษ

ซอฟต์แวร์ใน การแปล: "การแปล" สนิมและไพธอน ที่คงอยู่ยาวนานกว่า ทีมที่ส่งมอบ

เราเป็นสตูดิโอสำหรับผู้เชี่ยวชาญเท่านั้น ที่พัฒนาซอฟต์แวร์ตามความต้องการในสองภาษาโดยเจตนา: Rustที่ซึ่งการทำผิดพลาดมีค่าใช้จ่ายสูง, และ Pythonที่ซึ่งการส่งมอบล่าช้านั้นมีค่าใช้จ่ายสูง.

ค่าเฉลี่ยการปรับปรุง p99 ข้าม 40 การย้ายถิ่น
การลดความจำ ศูนย์เปอร์เซ็นต์ เทียบกับ JVM / Node baselines
บริการที่อยู่ในระหว่างการผลิต 0 ตั้งแต่ปี 2024
เหตุการณ์ด้านความปลอดภัยที่เกิดขึ้น 0 ตลอดประวัติศาสตร์ทั้งหมดของเรา
ทีมที่ไว้วางใจโค้ดของเรา
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 ปะทะคู่แข่งประจำ

แตะที่เมตริกเพื่อเน้นตำแหน่งของแต่ละภาษา คะแนนอยู่ในช่วง 0–10 ซึ่งรวบรวมจาก เกณฑ์มาตรฐานของเราเองและแหล่งข้อมูลสาธารณะ (Techempower R22, CLBG, การย้ายระบบจริงที่เราดำเนินการ)

เกณฑ์ สนิม ไพธอน ไป C++ Java Node.js
ประสิทธิภาพดิบ(หน้า 99, คอร์เดียว) 10 3 7 10 7 5
ความปลอดภัยของหน่วยความจำและการแข่งขันข้อมูล 10 9 8 2 8 7
เวลาในการสร้างต้นแบบที่ใช้งานได้ 5 10 7 3 6 8
ความกว้างของระบบนิเวศ 8 10 7 9 10 9
การทำงานพร้อมกันโดยไม่เกิดปัญหา 10 6 9 4 6 7
ค่าใช้จ่ายในการดำเนินงานต่อคำขอ 10 5 8 9 5 6
ความพร้อมของบุคลากรระดับอาวุโส 6 10 7 8 10 9
ความสามารถในการบำรุงรักษา 10 ปี 10 8 8 5 8 5
03 จาก → ถึง

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

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

กำลังดำเนินการ

C / C++

เร็ว ใช่ แต่ทุกตัวชี้ว่างคือ CVE ที่อาจเกิดขึ้นได้ทุกเมื่อ ทุกเธรดคือความเสี่ยงของ การแข่งข้อมูล และระบบสร้างของคุณคืองานเต็มเวลาของใครบางคน

อาการปวดทั่วไป
  • CVE ที่เกี่ยวข้องกับความปลอดภัยของหน่วยความจำ
  • พฤติกรรมที่ไม่ถูกกำหนด
  • การขยายตัวของระบบสร้าง
ย้ายไป

สนิม

ปริมาณงาน คูณด้วย 6.4
พื้นที่หน่วยความจำที่ใช้ -78%
การหยุดทำงานของโปรแกรมขณะใช้งาน −99%
บิลค่าบริการคอมพิวเตอร์รายเดือน ลด 65%

เหมาะที่สุดเมื่อคุณกำลังเผชิญกับบั๊ก null-pointer, การแข่งขันของข้อมูล, หรือหน่วยความจำที่ เพิ่มขึ้นอย่างไม่มีขีดจำกัด Rust รักษาความเร็วไว้และกำจัดปัญหาที่เกิดจากความประมาท

ย้ายไป

ไพธอน

ความเร็วในการพัฒนา ×3.1
บรรทัดของโค้ด ลด 55%
เวลาปล่อย ลด 60%
ค่าใช้จ่ายในการทำงาน บวกสี่สิบเปอร์เซ็นต์

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

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

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

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

คำขอต่อวินาทีภายใต้โหลดจริง

ปริมาณงานที่เท่ากัน — ตรวจสอบ JSON → สอบถามข้อมูลจาก Postgres → แสดงผล — วัดผลบน เครื่อง AMD Ryzen 7 เครื่องเดียว นี่ไม่ใช่ไมโครเบนช์มาร์คแหล่งที่มาและวิธีการ ↓

  1. 1 สนิม · อัซซูม
    21,030คำขอ/วินาที
  2. 2 C# .NET· ASP.NET Core
    14,707คำขอ/วินาที
  3. 3 Node.js· Fastify
    9,340คำขอ/วินาที
  4. 4 C++· ดรากอน
    7,200คำขอ/วินาที
  5. 5 โก· จิน
    3,546คำขอ/วินาที
  6. 6 ไพธอน · FastAPI (Uvicorn)
    1,185คำขอ/วินาที
  7. 7 PHP· Laravel
    299คำขอ/วินาที

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

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 วันทำการ ไม่ล้อเล่น

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

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

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