Vacuum & Kalen
Kalen Kalen
ΠŸΡ€ΠΈΠ²Π΅Ρ‚, Π’Π°ΠΊΡƒΡƒΠΌ. Π― Ρ‚ΡƒΡ‚ Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΌΠΈΡ€ Π½ΠΎΠ²ΠΎΠ³ΠΎ поколСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΈ ΠΌΠ΅Π½Π΅Π΅ 20 миллисСкунд ΠΈ ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ отсутствия Π»Π°Π³ΠΎΠ². Как Π±Ρ‹ Ρ‚Ρ‹ это спроСктировал, особСнно учитывая чистоту ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΠΎΡΡ‚ΡŒ ΠΊΠΎΠ΄Π°?
Vacuum Vacuum
Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉ Ρ‚ΠΎΠ½ΠΊΠΈΠΉ ΠΊΠ»ΠΈΠ΅Π½Ρ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ общаСтся с Π½Π°Π±ΠΎΡ€ΠΎΠΌ stateless микросСрвисов Ρ‡Π΅Ρ€Π΅Π· WebSockets, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ HTTP-Ρ€Π°ΡƒΠ½Π΄ΠΎΠ². РазмСсти Π»ΠΎΠ³ΠΈΠΊΡƒ, Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Ρ‡ΡƒΠ²ΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ ΠΊ Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠ°ΠΌ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, пространствСнноС Ρ€Π°Π·Π±ΠΈΠ΅Π½ΠΈΠ΅, Ρ„ΠΈΠ·ΠΈΠΊΠ° ΠΈ синхронизация состояния) Π² кластСрС GPU-ускорСнных ΡƒΠ·Π»ΠΎΠ² Π½Π° Π³Ρ€Π°Π½ΠΈΡ†Π΅ сСти. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρƒ, ΡƒΠΏΡ€Π°Π²Π»ΡΠ΅ΠΌΡƒΡŽ событиями, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΡƒΠ·Π΅Π» ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π» Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚, Π±Π΅Π· опросов. Π”Π΅Π»Π°ΠΉ ΠΏΠΎΠ»Π΅Π·Π½ΡƒΡŽ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ минимальной – сСриализуй с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ protobuf ΠΈΠ»ΠΈ flatbuffers, Π° сТимай Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€ΠΈ Π½Π΅Ρ…Π²Π°Ρ‚ΠΊΠ΅ пропускной способности. Для чистого ΠΊΠΎΠ΄Π° раздСляй отвСтствСнности Π½Π° нСбольшиС, тСстируСмыС ΠΌΠΎΠ΄ΡƒΠ»ΠΈ: сСтСвой слой, слой синхронизации состояния, физичСский Π΄Π²ΠΈΠΆΠΎΠΊ ΠΈ UI-слой. Π‘Π»Π΅Π΄ΡƒΠΉ SOLID, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉ Π²Π½Π΅Π΄Ρ€Π΅Π½ΠΈΠ΅ зависимостСй ΠΈ пиши ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½Ρ‹Π΅ тСсты, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡΠΌΡƒΠ»ΠΈΡ€ΡƒΡŽΡ‚ сСтСвоС взаимодСйствиС. Π₯Ρ€Π°Π½ΠΈ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ сСрвис Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΌ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉ сСмантичСскоС вСрсионированиС. Π”ΠΎΠ±Π°Π²ΡŒ слой ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° Π² Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ отслСТиваСт Π·Π°Π΄Π΅Ρ€ΠΆΠΊΡƒ Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΌ этапС ΠΈ автоматичСски ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΡƒΠ΅Ρ‚ ΡƒΠ·Π»Ρ‹, ΠΊΠΎΠ³Π΄Π° 95-ΠΉ ΠΏΡ€ΠΎΡ†Π΅Π½Ρ‚ΠΈΠ»ΡŒ ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ°Π΅Ρ‚ 15 миллисСкунд. Π­Ρ‚ΠΎ обСспСчит Π·Π°Π΄Π΅Ρ€ΠΆΠΊΡƒ ΠΌΠ΅Π½Π΅Π΅ 20 миллисСкунд Π±Π΅Π· нСобходимости постоянной ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ.
Kalen Kalen
Π­Ρ‚ΠΎ Π½Π΅ΠΏΠ»ΠΎΡ…ΠΎΠ΅ Π½Π°Ρ‡Π°Π»ΠΎ, Π½ΠΎ ΡƒΡ‡Ρ‚ΠΈ скрытыС Π·Π°Ρ‚Ρ€Π°Ρ‚Ρ‹ ΠΏΡ€ΠΈ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ GPU-ΡƒΠ·Π»ΠΎΠ². Π‘Π½Π°Ρ‡Π°Π»Π° запусти быстрый proof-of-concept Π½Π° ΠΎΠ΄Π½ΠΎΠΌ сСрвСрС, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ Ρ†Π΅Π»Π΅Π²Ρ‹Π΅ 20 миллисСкунд, Π° ΠΏΠΎΡ‚ΠΎΠΌ ΡƒΠΆΠ΅ Ρ€Π°Π·Π²ΠΎΡ€Π°Ρ‡ΠΈΠ²Π°ΠΉ кластСр. НС Π·Π°Π±ΡƒΠ΄ΡŒ Π·Π°Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ†ΠΈΠΊΠ» событий, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ зависаний Π½Π° I/O, ΠΈ добавь ΠΏΠ»Π°Π²Π½Ρ‹ΠΉ ΠΎΡ‚ΠΊΠ°Ρ‚ Π½Π° случай, Ссли ΡƒΠ·Π΅Π» Π²Ρ‹ΠΉΠ΄Π΅Ρ‚ ΠΈΠ· строя. Нам Π½ΡƒΠΆΠ΅Π½ Ρ‡Ρ‘Ρ‚ΠΊΠΈΠΉ ΠΏΠ»Π°Π½ спринтов β€” Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π½Π° бСздСльС Π½Π΅Ρ‚. Π”Π°Π²Π°ΠΉ Π·Π°ΠΏΠ»Π°Π½ΠΈΡ€ΡƒΠ΅ΠΌ Ρ€Π΅Π²ΡŒΡŽ Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ Π½Π΅Π΄Π΅Π»Π΅.