این چالش شما رو با جنبههای مختلف یک پروژه واقعی مثل استفاده از ابزارهای بیلد و دیپلوی، کار تیمی، بهینهسازیهای IO و شبکه، استفاده از دادهساختارهای مناسب و … آشنا میکنه. تا حد زیادی هم دستتون بازه که از چه زبان و کتابخونه و فریمورکهایی استفاده کنید.
هر یک ساعت بطور خودکار یک تست Load روی پروژهتون انجام میشه و نتایج داخل اسکوربورد همین صفحه بروزرسانی میشن. پس راهحلتون:
همه کدها به صورت پابلیک در دسترسه، پس میتونید کد بقیه شرکتکنندهها رو هم پیدا و review کنید.
بطور کلی:
کافیه لینک پروژهتون روی گیتهاب رو با فرمت زیر به این فایل اضافه کنید و پولریکوئست بفرستین:
- nickname: my-nickname
profile: https://github.com/birlug
repository: https://github.com/birlug/soallpeach
هدف اصلی این چالش آشنا کردن شرکتکنندهها با مفاهیم پایه http و همینطور مقایسه ویژگی زبانها و فریمورکهای مختلف برا حل کردن یه مساله به نظر پیش پا افتاده است.
کاری که برای شرکت در این چالش نیازه انجام بدید پیادهسازی دو http endpoint ساده است. یکی از این endpoint ها وظیفهاش دریافت عدد و جمع اون با اعدادیه که تا به حال دریافت کرده و وظیفه endpoint دیگه برگردوندون مجموع کلی اعدادی است که تا به حال این سرویس دریافت کرده.
/
این endpoint درخواستها رو با متد POST دریافت میکنه و مسیر اون هم /
است. مثال زیر نمایش نحوه صدا زدن این endpoint ئه:
$ curl -XPOST -d 6 localhost:80/
در این مثال عدد ۶ برای سرویس ارسال میشه و انتظار ما اینه که مقدار ۶ به مجموع اعدادی که تا به حال به سرویس ارسال شده اضافه بشه.
/count
این endpoint درخواستها رو با متد GET دریافت میکنه و مسیرش /count
هست. مثال زیر نمایش نحوه صدا زدن این endpoint ئه:
$ curl localhost:80/count
اگه فرض کنیم که مثال قبلی، یعنی ارسال عدد ۶ به /
۱۰ بار انجام شده باشه، مقدار خروجی مثال بالا باید 60 باشه.
پروژه شما باید داخل یه دایرکتوری با اسم countme
باشه و حتما یک Dockerfile برای بیلد و اجراش نوشته باشید. مثلا:
-> countme/
|
-> Dockerfile
-> main.py
-> requirements.txt
از این لینک میتونید پیادهسازی ساده این برنامه، ساختار دایرکتوریهای پروژه و همینطور Dockerfileش رو ببینید.
Nickname | 99th | State |
---|