Skip to content

khostya/route

Repository files navigation

сваггСр Π±ΡƒΠ΄Π΅Ρ‚ Π½Π° http://localhost:8888/swagger/index.html

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ ΠΊΠΎΠΌΠ°Π½Π΄

help
deliver --id=1 --user=1 --exp=2024-06-25T03:32:02+05:00 --wrapper=<[box package stretch]> --weight_in_kg=10.3 --price_in_rub=10.3
list --user=1
issue 1
refund --id=1 --user=1
refunded --size=20 --page=1
return --id=1
procs --n=10
exit

Π’Ρ‹Π±Ρ€Π°Π½ LFU Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ. ΠŸΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Ссли ΠΎΡ‚Ρ‚Π°Π»ΠΊΠΈΠ²Π°Ρ‚ΡŒΡΡ ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ запрос /v1/orders Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ для отобраТСния списка Π·Π°ΠΊΠ°Π·ΠΎΠ² ΠΊΠ°ΠΊ Π½Π° Π³Π»Π°Π²Π½ΠΎΠΉ станицС, Ρ‚ΠΎ ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ, Ρ‡Ρ‚ΠΎ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ страницы Π·Π°ΠΏΡ€Π°ΡˆΠΈΠ²Π°ΡŽΡ‚ Ρ‡Π°Ρ‰Π΅ Ρ‡Π΅ΠΌ ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅, поэтому простой LRU Π±ΡƒΠ΄Π΅Ρ‚ Π½Π΅ ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»Π΅Π½. Π˜Π½Π²Π°Π»ΠΈΠ΄Π°Ρ†ΠΈΡ: ПослС ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ измСнСния Π·Π°ΠΊΠ°Π·Π° ΠΈΠ· кэша ΡƒΠ΄Π°Π»ΡΡŽΡ‚ΡΡ значСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ содСрТат этот Π·Π°ΠΊΠ°Π·. НовыС созданныС Π·Π°ΠΊΠ°Π·Ρ‹ ΠΏΠΎΠΏΠ°Π΄Π°ΡŽΡ‚ Π² кСш Ρ‚ΠΎΠ»ΡŒΠΊΠΎ послС истСчСния срока хранСния ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅Π³ΠΎ кэша.

Π”ΠΎΠΌΠ°ΡˆΠ½Π΅Π΅ Π·Π°Π΄Π°Π½ΠΈΠ΅ β„–8 "Π”ΠΎΡ€ΠΎΠ³Π° ΠΊ Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹ΠΌ сСрвисам"

ЦСль

ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Π½Π° сСрвис, наблюдСниС ΠΈ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρ‹ сСрвиса

ОсновноС заданиС

  • Π Π΅Π°Π»ΠΈΠ·ΡƒΠΉΡ‚Π΅ простоС ΠΊΠ΅ΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ (In-memory Cache) для ΡƒΠΌΠ΅Π½ΡŒΡˆΠ΅Π½ΠΈΡ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Π½Π° Π±Π°Π·Ρƒ Π΄Π°Π½Π½Ρ‹Ρ… вашСго прилоТСния
  • Π’Π½Π΅Π΄Ρ€ΠΈΡ‚Π΅ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ ΠΈΠ½Π²Π°Π»ΠΈΠ΄Π°Ρ†ΠΈΠΈ кСша, ΠΎΠ±ΡŠΡΡΠ½ΠΈΡ‚Π΅ свой Π²Ρ‹Π±ΠΎΡ€ Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚Π° кСш ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° (godoc/md)
  • НСобходимо Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ сбор ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊ с вашСго прилоТСния. Π”ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ ΠΊΠ°ΡΡ‚ΠΎΠΌΠ½ΡƒΡŽ ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΡƒ ΠΏΠΎ количСству Π²Ρ‹Π΄Π°Π½Π½Ρ‹Ρ… Π·Π°ΠΊΠ°Π·ΠΎΠ²

Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ Π·Π°Π΄Π°Π½ΠΈΠ΅

  • Π”ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ потрСблСния рСсурсов вашСго кСша (LRU/LFU ΠΈΠ»ΠΈ ΠΈΡ… ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ). ΠžΠ±Π½ΠΎΠ²ΠΈΡ‚Π΅ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ ΠΏΠ°ΠΊΠ΅Ρ‚Π° ΠΊΠ΅ΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ
  • Π”ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ трСйсинг запросов Π²Π½ΡƒΡ‚Ρ€ΠΈ прилоТСния
  • Π’Ρ‹Π΄Π΅Π»ΠΈΡ‚Π΅ ΠΏΠ°ΠΊΠ΅Ρ‚ ΠΊΠ΅ΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ Π² ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹ΠΉ, с Generic Ρ‚ΠΈΠΏΠ°ΠΌΠΈ ΠΊΠ»ΡŽΡ‡Π΅ΠΉ ΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ, ΠΈ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠ΅ΠΉ снаруТи (стратСгия ΠΊΠ΅ΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ для экономии рСсурсов, TTL ΠΊΠ΅ΡˆΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΈ Π΄Ρ€.)

Π”Π΅Π΄Π»Π°ΠΉΠ½Ρ‹ сдачи ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ задания:

  • 20 июля 23:59 (сдача) / 23 июля, 23:59 (ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ°)

Π”ΠΎΠΌΠ°ΡˆΠ½Π΅Π΅ Π·Π°Π΄Π°Π½ΠΈΠ΅ 7 "Π Π°Π±ΠΎΡ‚Π° с gRPC"

ОсновноС заданиС

ΠŸΠ΅Ρ€Π΅Π²Π΅ΡΡ‚ΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ ΠΈΠ· домашнСго задания 6 Π½Π° Ρ€Π°Π±ΠΎΡ‚Ρƒ с gRPC. Для этого:

  • Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ proto ΠΊΠΎΠ½Ρ‚Ρ€Π°ΠΊΡ‚ сСрвиса
  • Π’ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅ Π½ΡƒΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π² Makefile ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ для Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ .go Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈΠ· proto Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈ установки Π½ΡƒΠΆΠ½Ρ‹Ρ… зависимостСй (ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ protoc)
  • Π‘Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ gRPC сСрвис
  • ΠŸΠΎΠΊΡ€Ρ‹Ρ‚ΡŒ gRPC-Ρ…Π΅Π½Π΄Π»Π΅Ρ€Ρ‹ тСстами

Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ Π·Π°Π΄Π°Π½ΠΈΠ΅

  • Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ HTTP-gateway ΠΈ Π²Π°Π»ΠΈΠ΄Π°Ρ†ΠΈΡŽ protobuf сообщСний
  • Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ swagger-ui ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΡΠΎΠ²Π΅Ρ€ΡˆΠ°Ρ‚ΡŒ запросы ΠΈΠ· сваггСра ΠΊ сСрвису (ΠΏΠΎΠ΄Π½ΡΡ‚ΡŒ swagger-ui сСрвСр)

Π”Π΅Π΄Π»Π°ΠΉΠ½Ρ‹ сдачи ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ задания:

  • 13 июля 23:59 (сдача) / 16 июля, 23:59 (ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ°)

Π”ΠΎΠΌΠ°ΡˆΠ½Π΅Π΅ Π·Π°Π΄Π°Π½ΠΈΠ΅ β„–6 Β«Π›ΠΎΠ³ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠΉ Π² ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Ρ‡Π΅Ρ€Π΅Π· KafkaΒ»

ЦСль:

ВывСсти события ΠΏΠΎ обращСниям Π² ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ сСрвиса Π² консоль

ОсновноС заданиС:

  1. ΠŸΡ€ΠΈ Π²Ρ‹Π·ΠΎΠ²Π΅ любого API ΠΌΠ΅Ρ‚ΠΎΠ΄Π° (консольная ΠΊΠΎΠΌΠ°Π½Π΄Π°) записываСм событиС ΠΎΠ± этом Π² Kafka
  2. Π‘ΠΎΠ±Ρ‹Ρ‚ΠΈΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ врСмя обращСния, Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° ΠΈ сырой запрос
  3. По Ρ…ΠΎΠ΄Ρƒ Ρ€Π°Π±ΠΎΡ‚Ρ‹ прилоТСния Π² консоль Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ эти события ΠΈΠ· Kafka
  4. НСобходимо ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ настройку-свитч, которая Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ ΠΌΠ΅ΠΆΠ΄Ρƒ Π²Ρ‹Π²ΠΎΠ΄ΠΎΠΌ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ Π² консоль ΠΈ Π²Ρ‹Π²ΠΎΠ΄ΠΎΠΌ Ρ‡Π΅Ρ€Π΅Π· Kafka. Оба Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π° сразу Π΄Π΅Π»Π°Ρ‚ΡŒ нСльзя. Настройка Π΄ΠΎΠ»ΠΆΠ½Π° ΠΏΠΎΠ΄Π³Ρ€ΡƒΠΆΠ°Ρ‚ΡŒΡΡ ΠΏΡ€ΠΈ стартС прилоТСния
  5. РСшСниС Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠΊΡ€Ρ‹Ρ‚ΠΎ Unit-тСстами

Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ Π·Π°Π΄Π°Π½ΠΈΠ΅:

  • ΠΠ°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Π΅ тСсты Π½Π° взаимодСйствиС с Kafka

Π”Π΅Π΄Π»Π°ΠΉΠ½Ρ‹ сдачи ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ задания:

  • 6 июля 23:59 (сдача) / 9 июля, 23:59 (ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ°)

Homework 5

ОсновноС заданиС:

  • ΠžΡ‚Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΡ‚ΡŒ ΠΊΠΎΠ΄ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΡ… Π”Π— (Ссли Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ). ΠŸΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ DI, ΠΏΠ΅Ρ€Π΅ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Π‘Π” Π½Π° использованиС интСрфСйсов

  • ΠŸΠΎΠΊΡ€Ρ‹Ρ‚ΡŒ Unit-тСстами Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π», написанный Π² Ρ€Π°ΠΌΠΊΠ°Ρ… ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΡ… Π”Π—. Unit-тСсты Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ ΠΈ Π½Π΅ Π°Ρ„Ρ„Π΅ΠΊΡ‚ΠΈΡ‚ΡŒ Π΄Ρ€ΡƒΠ³ Π΄Ρ€ΡƒΠ³Π°

  • ΠŸΠΎΠΊΡ€Ρ‹Ρ‚ΡŒ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹ΠΌΠΈ тСстами всю Ρ€Π°Π±ΠΎΡ‚Ρƒ с Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½Ρ‹Ρ… (Ρ‡ΠΈΡ‚Π°ΡŽΡ‰ΠΈΠ΅ ΠΈ ΠΏΠΈΡˆΡƒΡ‰ΠΈΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹)

  • ΠŸΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΈΡ‚ΡŒ Makefile, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π±ΡƒΠ΄ΡƒΡ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹: запуск тСстового окруТСния ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ docker-compose, запуск ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… тСстов, запуск Unit-тСстов, запуск скрипта ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΠΉ, ΠΎΡ‡ΠΈΡ‰Π΅Π½ΠΈΠ΅ Π±Π°Π·Ρ‹ ΠΎΡ‚ тСстовых Π΄Π°Π½Π½Ρ‹Ρ…

Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ Π·Π°Π΄Π°Π½ΠΈΠ΅:

  • ΠΠ°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Π΅ тСсты с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ тСст-ΡΡŒΡŽΡ‚ΠΎΠ² (https://github.com/stretchr/testify/blob/master/suite/suite_test.go). Π‘ΡŒΡŽΡ‚Ρ‹ Π½Π΅ ΠΈΡΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ написаниС ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… тСстов Π² классичСском Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅

Π”Π΅Π΄Π»Π°ΠΉΠ½Ρ‹ сдачи ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ задания:

  • 29 июня 23:59 (сдача) / 2 июля, 23:59 (ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ°)

Π”ΠΎΠΌΠ°ΡˆΠ½Π΅Π΅ Π·Π°Π΄Π°Π½ΠΈΠ΅ β„–4 Β«Π’Ρ‹Π΄Π°Ρ‡Π° Π·Π°ΠΊΠ°Π·ΠΎΠ² Π² Ρ€Π°Π·Π½ΠΎΠΉ ΡƒΠΏΠ°ΠΊΠΎΠ²ΠΊΠ΅Β»

ОписаниС UML https://www.uml-diagrams.org/ ΠžΡ‚ΠΊΡ€Ρ‹Π²Π°Ρ‚ΡŒ Π² https://app.diagrams.net/ https://drive.google.com/file/d/1eI_kM_SfUT-Yih2sY3-p-XprEcHXEsOO/view?usp=sharing

ЦСль:

ΠœΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ваш сСрвис, Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π² ΠŸΠ’Π— Π²Ρ‹Π΄Π°Π²Π°Ρ‚ΡŒ Π·Π°ΠΊΠ°Π·Ρ‹ Π² любой ΠΈΠ· Ρ‚Ρ€Π΅Ρ… Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΡƒΠΏΠ°ΠΊΠΎΠ²ΠΎΠΊ

ОсновноС заданиС:

  • ΠœΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€ΡƒΠΉΡ‚Π΅ Go-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ Π² ΠΌΠ΅Ρ‚ΠΎΠ΄ "ΠŸΡ€ΠΈΠ½ΡΡ‚ΡŒ Π·Π°ΠΊΠ°Π· ΠΎΡ‚ ΠΊΡƒΡ€ΡŒΠ΅Ρ€Π°" Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ ΡƒΠΏΠ°ΠΊΠΎΠ²ΠΊΠΈ
  • ВсСго Π΅ΡΡ‚ΡŒ Ρ‚Ρ€ΠΈ Π²ΠΈΠ΄Π° ΡƒΠΏΠ°ΠΊΠΎΠ²ΠΊΠΈ: ΠΏΠ°ΠΊΠ΅Ρ‚, ΠΊΠΎΡ€ΠΎΠ±ΠΊΠ°, ΠΏΠ»Π΅Π½ΠΊΠ°
  • Π Π΅Π°Π»ΠΈΠ·ΡƒΠΉΡ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π» Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π² Π±ΡƒΠ΄ΡƒΡ‰Π΅ΠΌ ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ просто Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π΅Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ Π²ΠΈΠ΄ ΡƒΠΏΠ°ΠΊΠΎΠ²ΠΊΠΈ
  • ΠŸΡ€ΠΈ Π²Ρ‹Π±ΠΎΡ€Π΅ ΠΏΠ°ΠΊΠ΅Ρ‚Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ вСс Π·Π°ΠΊΠ°Π·Π° мСньшС 10 ΠΊΠ³, Ссли Π½Π΅Ρ‚, Ρ‚ΠΎ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠ²Π½ΡƒΡŽ ΠΎΡˆΠΈΠ±ΠΊΡƒ
  • ΠŸΡ€ΠΈ Π²Ρ‹Π±ΠΎΡ€Π΅ ΠΏΠ°ΠΊΠ΅Ρ‚Π° ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒ Π·Π°ΠΊΠ°Π·Π° увСличиваСтся Π½Π° 5 Ρ€ΡƒΠ±Π»Π΅ΠΉ
  • ΠŸΡ€ΠΈ Π²Ρ‹Π±ΠΎΡ€Π΅ ΠΊΠΎΡ€ΠΎΠ±ΠΊΠΈ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ вСс Π·Π°ΠΊΠ°Π·Π° мСньшС 30 ΠΊΠ³, Ссли Π½Π΅Ρ‚, Ρ‚ΠΎ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠ²Π½ΡƒΡŽ ΠΎΡˆΠΈΠ±ΠΊΡƒ
  • ΠŸΡ€ΠΈ Π²Ρ‹Π±ΠΎΡ€Π΅ ΠΊΠΎΡ€ΠΎΠ±ΠΊΠΈ ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒ Π·Π°ΠΊΠ°Π·Π° увСличиваСтся Π½Π° 20 Ρ€ΡƒΠ±Π»Π΅ΠΉ
  • ΠŸΡ€ΠΈ Π²Ρ‹Π±ΠΎΡ€Π΅ ΠΏΠ»Π΅Π½ΠΊΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΎΠΊ Π½Π΅ трСбуСтся
  • ΠŸΡ€ΠΈ Π²Ρ‹Π±ΠΎΡ€Π΅ ΠΏΠ»Π΅Π½ΠΊΠΈ ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒ Π·Π°ΠΊΠ°Π·Π° увСличиваСтся Π½Π° 1 Ρ€ΡƒΠ±Π»ΡŒ

Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ Π·Π°Π΄Π°Π½ΠΈΠ΅:

  • ΠžΠΏΠΈΡˆΠΈΡ‚Π΅ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρƒ своСго Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π»ΡŽΠ±Ρ‹ΠΌ извСстным стандартом (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, UML)
  • Π’ MR Π²Π»ΠΎΠΆΠΈΡ‚Π΅ Ρ„Π°ΠΉΠ» с описаниСм Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹
  • ΠŸΡ€ΠΈ Π²Ρ‹Π±ΠΎΡ€Π΅ стандарта Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ, ΠΊΠ°ΠΊΠΎΠΉ Π±Ρ‹Π» Π²Ρ‹Π±Ρ€Π°Π½ стандарт ΠΈ Π΄Π°Ρ‚ΡŒ ссылку Π½Π° Π΅Π³ΠΎ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ
  • ЗапрСщаСтся ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π³Π΅Π½Π΅Ρ€ΠΈΠ»ΠΊΠΈ Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌ, Π° Ρ‚Π°ΠΊΠΆΠ΅ инструмСнты Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ связСй ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ‚Π°Π±Π»ΠΈΡ†Π°ΠΌΠΈ Π² Π‘Π” Π² качСствС описания

Π”Π΅Π΄Π»Π°ΠΉΠ½Ρ‹ сдачи ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ задания:

  • 22 июня 23:59 (сдача) / 25 июня, 23:59 (ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ°)

Запрос

SELECT id, recipient_id, status, status_updated_at, expiration_date, hash, created_at
FROM ozon.orders
where status = 'delivered' and recipient_id = '1' and id = any('{1}')
order by created_at desc
limit 1
offset 0;
Π‘Π΅Π· индСксов

https://explain.tensor.ru/archive/explain/87fac1780751587d62913933111db0b9:0:2024-06-15

create index on ozon.orders using btree(created_at);

https://explain.tensor.ru/archive/explain/feadc442b3d6aadc89ea8d8337e4ea98:0:2024-06-15

create index on ozon.orders using btree(recipient_id);

https://explain.tensor.ru/archive/explain/f29d8fa9c4e1e076fbe690af341aefae:0:2024-06-15

create index on ozon.orders using btree(recipient_id);
create index on ozon.orders using btree(created_at);

https://explain.tensor.ru/archive/explain/e3b604ef4f363f75d602f06f58bfbd58:0:2024-06-15

create index on ozon.orders using btree(status, recipient_id, id);

https://explain.tensor.ru/archive/explain/efcc29899aa66af31134dd3df00a957f:0:2024-06-15

Π”ΠΎΠΌΠ°ΡˆΠ½Π΅Π΅ Π·Π°Π΄Π°Π½ΠΈΠ΅ β„–3 Β«Π Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³ слоя Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…Β»

ОсновноС заданиС

ЦСль: ΠœΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€ΡƒΠΉΡ‚Π΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, написанноС Π² "Π”ΠΎΠΌΠ°ΡˆΠ½Π΅Π΅ Π·Π°Π΄Π°Π½ΠΈΠ΅ β„–2", Ρ‡Ρ‚ΠΎΠ±Ρ‹ взаимодСйствиС с Ρ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ΠΌ Π΄Π°Π½Π½Ρ‹Ρ… Π±Ρ‹Π»ΠΎ Ρ‡Π΅Ρ€Π΅Π· Postgres, Π° Π½Π΅ Ρ‡Π΅Ρ€Π΅Π· Ρ„Π°ΠΉΠ».

Π—Π°Π΄Π°Π½ΠΈΠ΅:

ΠŸΠ΅Ρ€Π΅Π²Π΅Π΄ΠΈΡ‚Π΅ вашС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ с хранСния Π΄Π°Π½Π½Ρ‹Ρ… Π² Ρ„Π°ΠΉΠ»Π΅ Π½Π° Postgres. Π Π΅Π°Π»ΠΈΠ·ΡƒΠΉΡ‚Π΅ ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΡŽ для DDL ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ². Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ.

Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ Π·Π°Π΄Π°Π½ΠΈΠ΅:

ΠŸΡ€ΠΎΠ°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΡƒΠΉΡ‚Π΅ запросы Π² Π‘Π”. ΠŸΡ€ΠΈΠ»ΠΎΠΆΠΈΡ‚Π΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ Π°Π½Π°Π»ΠΈΠ·Π° Π² README.md. Π”ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ индСксы, Π³Π΄Π΅ это Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ.

Подсказки

ΠŸΠΎΠΌΠ½ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ Π² ΠΎΠ΄Π½ΠΎΠΌ Ρ„Π°ΠΉΠ»Π΅ ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΠΈ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ ΠΎΠ΄ΠΈΠ½ DDL ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€. Для Π°Π½Π°Π»ΠΈΠ·Π° ΠΏΠ»Π°Π½Π° запросов ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Explain Tensor.

Π”Π΅Π΄Π»Π°ΠΉΠ½Ρ‹ сдачи ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ задания:

15 июня 23:59 (сдача) / 18 июня, 23:59 (ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ°)

Π”ΠΎΠΌΠ°ΡˆΠ½Π΅Π΅ Π·Π°Π΄Π°Π½ΠΈΠ΅ β„–2 «УскорСниС ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π΄Π°Π½Π½Ρ‹Ρ…Β»

ЦСль:

ΠœΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€ΡƒΠΉΡ‚Π΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, написанноС Π² "Π”ΠΎΠΌΠ°ΡˆΠ½Π΅ΠΌ Π·Π°Π΄Π°Π½ΠΈΠΈ β„–1", Ρ‡Ρ‚ΠΎΠ±Ρ‹ процСсс ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π΄Π°Π½Π½Ρ‹Ρ… Π·Π°Π½ΠΈΠΌΠ°Π» мСньшС Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ.

Π—Π°Π΄Π°Π½ΠΈΠ΅:

  • ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π² нСзависимом Ρ€Π΅ΠΆΠΈΠΌΠ΅. ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ, Π½Π΅ доТидаясь Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΉ.
  • Π£ΡΠΊΠΎΡ€ΡŒΡ‚Π΅ Ρ€Π°Π±ΠΎΡ‚Ρƒ вашСго прилоТСния. Π Π΅Π°Π»ΠΈΠ·ΡƒΠΉΡ‚Π΅ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ Π·Π°Π΄Π°Π½ΠΈΠΉ Π² Π΄Π²Π° ΠΏΠΎΡ‚ΠΎΠΊΠ°, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΠΈΠ·ΡƒΡ‡Π΅Π½Π½Ρ‹Ρ… ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½ΠΎΠ² ΠΊΠΎΠ½ΠΊΡƒΡ€Π΅Π½Ρ‚Π½ΠΎΠΉ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ.
  • ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΌΡŒΡŽΡ‚Π΅ΠΊΡ) для синхронизации доступа ΠΊ Π΄Π°Π½Π½Ρ‹ΠΌ ΠΌΠ΅ΠΆΠ΄Ρƒ процСссами.

Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ задания:

  • Π”ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ систСмных сигналов, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ SIGINT (Ctrl+C) ΠΈ SIGTERM, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ прилоТСния. ΠŸΡ€ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠΈ сигнала ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚ΡŒ всС Π·Π°Π΄Π°Ρ‡ΠΈ Π΄ΠΎ Π²Ρ‹Ρ…ΠΎΠ΄Π° ΠΈΠ· консоли (graceful shutdown).
  • Π”ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ»-Π²ΠΎΠΌ Π³ΠΎΡ€ΡƒΡ‚ΠΈΠ½ Ρ‡Π΅Ρ€Π΅Π· ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ для выполнСния. Π’.Π΅. ΠΊΠΎΠ»-Π²ΠΎ Π³ΠΎΡ€ΡƒΡ‚ΠΈΠ½ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ динамичСски, Π±Π΅Π· рСстарта прилоТСния.
  • Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π½ΠΎΡ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΎ Π½Π°Ρ‡Π°Π»Π΅ ΠΈ ΠΎΠΊΠΎΠ½Ρ‡Π°Π½ΠΈΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π³ΠΎΡ€ΡƒΡ‚ΠΈΠ½Ρ‹. Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΉ Π³ΠΎΡ€ΡƒΡ‚ΠΈΠ½Π΅.

Подсказки:

  • Для рСагирования Π½Π° систСмныС сигналы Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠ°ΠΊΠ΅Ρ‚ os/signal Π² Go.
  • Для синхронизации доступа ΠΊ Ρ„Π°ΠΉΠ»Ρƒ ΠΌΠ΅ΠΆΠ΄Ρƒ процСссами записи ΠΈ чтСния Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠ°ΠΊΠ΅Ρ‚ sync ΠΈ Π΅Π³ΠΎ ΠΌΡŒΡŽΡ‚Π΅ΠΊΡΡ‹.
  • Для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ Π² Go Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠ°ΠΊΠ΅Ρ‚ os ΠΈΠ»ΠΈ io/ioutil.

Π”Π΅Π΄Π»Π°ΠΉΠ½Ρ‹ сдачи ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ задания:

  • 8 июня 23:59 (сдача) / 11 июня, 23:59 (ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ°)

Π”ΠΎΠΌΠ°ΡˆΠ½Π΅Π΅ Π·Π°Π΄Π°Π½ΠΈΠ΅ β„–1 Β«Π£Ρ‚ΠΈΠ»ΠΈΡ‚Π° для управлСния ΠŸΠ’Π—Β»

НСобходимо Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ½ΡΠΎΠ»ΡŒΠ½ΡƒΡŽ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρƒ для ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€Π° ΠŸΠ’Π—.

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π΄ΠΎΠ»ΠΆΠ½Π° ΠΎΠ±Π»Π°Π΄Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ help, благодаря ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ список доступных ΠΊΠΎΠΌΠ°Π½Π΄ с ΠΊΡ€Π°Ρ‚ΠΊΠΈΠΌ описаниСм.

Бписок ΠΊΠΎΠΌΠ°Π½Π΄ для Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ:

  1. ΠŸΡ€ΠΈΠ½ΡΡ‚ΡŒ Π·Π°ΠΊΠ°Π· ΠΎΡ‚ ΠΊΡƒΡ€ΡŒΠ΅Ρ€Π° На Π²Ρ…ΠΎΠ΄ принимаСтся ID Π·Π°ΠΊΠ°Π·Π°, ID получатСля ΠΈ срок хранСния. Π—Π°ΠΊΠ°Π· нСльзя ΠΏΡ€ΠΈΠ½ΡΡ‚ΡŒ Π΄Π²Π°ΠΆΠ΄Ρ‹. Если срок хранСния Π² ΠΏΡ€ΠΎΡˆΠ»ΠΎΠΌ, ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π²Ρ‹Π΄Π°Ρ‚ΡŒ ΠΎΡˆΠΈΠ±ΠΊΡƒ. Бписок принятых Π·Π°ΠΊΠ°Π·ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒ Π² Ρ„Π°ΠΉΠ». Π€ΠΎΡ€ΠΌΠ°Ρ‚ Ρ„Π°ΠΉΠ»Π° остаСтся Π½Π° Π²Ρ‹Π±ΠΎΡ€ Π°Π²Ρ‚ΠΎΡ€Π°.
  2. Π’Π΅Ρ€Π½ΡƒΡ‚ΡŒ Π·Π°ΠΊΠ°Π· ΠΊΡƒΡ€ΡŒΠ΅Ρ€Ρƒ На Π²Ρ…ΠΎΠ΄ принимаСтся ID Π·Π°ΠΊΠ°Π·Π°. ΠœΠ΅Ρ‚ΠΎΠ΄ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡƒΠ΄Π°Π»ΡΡ‚ΡŒ Π·Π°ΠΊΠ°Π· ΠΈΠ· вашСго Ρ„Π°ΠΉΠ»Π°. МоТно Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚Π΅ Π·Π°ΠΊΠ°Π·Ρ‹, Ρƒ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π²Ρ‹ΡˆΠ΅Π» срок хранСния ΠΈ Ссли Π·Π°ΠΊΠ°Π·Ρ‹ Π½Π΅ Π±Ρ‹Π»ΠΈ Π²Ρ‹Π΄Π°Π½Ρ‹ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Ρƒ.
  3. Π’Ρ‹Π΄Π°Ρ‚ΡŒ Π·Π°ΠΊΠ°Π· ΠΊΠ»ΠΈΠ΅Π½Ρ‚Ρƒ На Π²Ρ…ΠΎΠ΄ принимаСтся список ID Π·Π°ΠΊΠ°Π·ΠΎΠ². МоТно Π²Ρ‹Π΄Π°Π²Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚Π΅ Π·Π°ΠΊΠ°Π·Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±Ρ‹Π»ΠΈ приняты ΠΎΡ‚ ΠΊΡƒΡ€ΡŒΠ΅Ρ€Π° ΠΈ Ρ‡Π΅ΠΉ срок хранСния мСньшС Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Π΄Π°Ρ‚Ρ‹. ВсС ID Π·Π°ΠΊΠ°Π·ΠΎΠ² Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½ΠΎΠΌΡƒ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Ρƒ.
  4. ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ список Π·Π°ΠΊΠ°Π·ΠΎΠ² На Π²Ρ…ΠΎΠ΄ принимаСтся ID ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΊΠ°ΠΊ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ ΠΈ ΠΎΠΏΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹. ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ послСдниС N Π·Π°ΠΊΠ°Π·ΠΎΠ² ΠΈΠ»ΠΈ Π·Π°ΠΊΠ°Π·Ρ‹ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°, находящиСся Π² нашСм ΠŸΠ’Π—.
  5. ΠŸΡ€ΠΈΠ½ΡΡ‚ΡŒ Π²ΠΎΠ·Π²Ρ€Π°Ρ‚ ΠΎΡ‚ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° На Π²Ρ…ΠΎΠ΄ принимаСтся ID ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΈ ID Π·Π°ΠΊΠ°Π·Π°. Π—Π°ΠΊΠ°Π· ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π΅Π½ Π² Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ Π΄Π²ΡƒΡ… Π΄Π½Π΅ΠΉ с ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° Π²Ρ‹Π΄Π°Ρ‡ΠΈ. Π’Π°ΠΊΠΆΠ΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π·Π°ΠΊΠ°Π· выдавался с нашСго ΠŸΠ’Π—.
  6. ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ список Π²ΠΎΠ·Π²Ρ€Π°Ρ‚ΠΎΠ² ΠœΠ΅Ρ‚ΠΎΠ΄ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²Ρ‹Π΄Π°Π²Π°Ρ‚ΡŒ список ΠΏΠ°Π³ΠΈΠ½ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎ.

Подсказки

  • os.OpenFile, os.Create, os.ReadALL

Π”Π΅Π΄Π»Π°ΠΉΠ½Ρ‹ сдачи ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ задания:

  • 1 июня 23:59 (сдача) / 4 июня, 23:59 (ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ°)

Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ задания. РСализация для получСния 10 Π±Π°Π»Π»ΠΎΠ²

  1. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° запускаСтся ΠΈ ΠΎΠΆΠΈΠ΄Π°Π΅Ρ‚ поступлСниС ΠΊΠΎΠΌΠ°Π½Π΄
  2. ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π½Π°Π±ΠΈΡ€Π°Π΅Ρ‚ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ ΠΈ Π½Π°ΠΆΠΈΠΌΠ°Π΅Ρ‚ ΠΊΠ»Π°Π²ΠΈΡˆΡƒ Enter
  3. ПослС наТатия клавиши Enter, ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° выполняСт Π²Π²Π΅Π΄Π΅Π½Π½ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ ΠΈ записываСт измСнСния Π² Ρ„Π°ΠΉΠ»
  4. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΎΠΆΠΈΠ΄Π°Π΅Ρ‚ Π²Π²ΠΎΠ΄Π° Π½ΠΎΠ²ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹
  5. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π·Π°Π²Π΅Ρ€ΡˆΠ°Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ послС наТатия ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΠΈ клавиш ctrl+c ΠΈΠ»ΠΈ Π²Π²ΠΎΠ΄Π° ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ exit
  6. ΠŸΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π² Π²Ρ‹Ρ…ΠΎΠ΄Π½ΠΎΠΉ Ρ„Π°ΠΉΠ» записываСтся/обновляСтся Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ ΠΏΠΎΠ»Π΅ "hash"
  7. Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ ΠΏΠΎΠ»Π΅ "hash" считаСтся с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ hash.GenerateHash()
    Ѐункция GenerateHash() - это сторонняя функция, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π½ΡƒΠΆΠ½ΠΎ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ, Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ Π΅Ρ‘ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ, ΠΎΠ½Π° прСдоставляСтся прСподаватСлям ΠΈΠ»ΠΈ Ρ‚ΡŒΡŽΡ‚ΠΎΡ€ΠΎΠΌ. Ѐункция GenerateHash() Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ "Π΄ΠΎΠ»Π³ΠΎ", Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, нСсколько сСкунд. ИспользованиС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ замСдляСт Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΈ Π½Π΅ позволяСт ввСсти ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ.
  8. ΠŸΡ€ΠΈΠ΄ΡƒΠΌΠ°ΠΉΡ‚Π΅ свой/свои интСрфСйсы ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΈΡ… Π² вашСй ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅. ΠŸΡ€ΠΎΠ΄Π΅ΠΌΠΎΠ½ΡΡ‚Ρ€ΠΈΡ€ΡƒΠΉΡ‚Π΅ усвоСниС ΡƒΡ‡Π΅Π±Π½ΠΎΠ³ΠΎ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Π° ΠΎΠ± интСрфСйсах

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published