مسابقه کد نویسی شماره 1 : 4000 امتیاز پاداش برای این کلاس
به یک جواب کامل و بدون نقص 4000 امتیاز اهدا میشه ( هدف امتیاز نیست بلکه افزایش دانش دوستان از جمله خود نویسنده کلاس است و امتیاز بهانه )
شرایط مسابقه را در پایینتر بخونید.
سوژه مسابقه
یک کلاس کامل برای ارتباط به وب سرویس با امکانات زیر:
- ارسال درخواست با پارامترهای دلخواه به سرور ( راهنمایی: ارسال JSON مفید است ). 300 امتیاز
- تعبیه یک onReceiveListener که پس از دریافت پاسخ فراخوانی شود. 200 امتیاز
- سورس کد سمت سرور ( می تواند ساده و کار راه انداز باشد، اما باید باشد ) 200 امتیاز
- ذخیره کردن پاسخ سرور ( Cache کردن پاسخ ) و بازیابی آن. 1300 امتیاز
- Cache دارای زمان Expire باشد و اگر از لحظه ذخیره آن مدت قابل تنظیمی گذشته بود، معتبر نباشد و دوباره از اینترنت درخواست شود. 500 امتیاز
- استفاده از Builder Design Pattern برای تعریف متدها ، تنظیمات و ... 1000 امتیاز
- تمیز بودن کد بر اساس Sun Java Convention & Naming و اصولی بودن ساختار 500 امتیاز
شرایط و نحوه مسابقه
- معیار امتیاز دهی نسبی است ( ممکن است از هر قابلیت کد نویسی شده، امتیاز کامل دریافت نشود ).
- هیچ مدت زمانی برای این کار در نظر گرفته نشده و هر کس می تواند سورس خود را در هر زمانی ارسال کند.
- چنانچه بیش از یک جواب از طرف هر کاربر ثبت شود، جوابهای آخر حذف خواهند شد ( تنها جواب اول معیار است )
- قابلیت تصحیح جواب مطمئناً وجود دارد، پس جواب خود را تصحیح کنید بجای اینکه جواب جدید بگذارید.
- نظرات دوستان شما در جواب شما می تواند به امتیاز شما کمک کند.
- تعداد رأی های دوستان شما در امتیاز شما می تواند مفید باشد.
- همه می توانند نسبت به جوابی که ارائه داده اند، امتیاز کسب کنند.
- مسابقه همیشه یک برنده ندارد، بلکه بعضی از بعضی دیگر سبقت می گیرند. بنابراین همه نسبت به دانش و تلاش خود امتیاز کسب می کنند.
- برندگان مسابقه در صفحه دیگری از سایت که در آینده ایجاد خواهد شد، معرفی می شوند پس بیشتر در دید قرار می گیرند.
- چنانچه نیاز به راهنمایی یا سرنخ بود، مجاز است زیر جواب خودتان بپرسید، راهنمایی خواهم کرد. نمره منفی هم ندارد.
- پاسخ ارائه شده می تواند توسط دوستان در پروژه های تجاری مورد استفاده قرار گیرد.
- این سئوال ویژه است پس تنها کاربران ویژه پاسخ ها را خواهند دید.
- مطمئناً سورس های بی کیفیت و سهل انگارانه، حتی از حداقل امتیاز برخوردار نیستند و چنانچه آپدیت نشوند، از لیست پاسخ ها حذف خواهند شد.
توجه داشته باشید که از این پس مسابقات مشابه زیادی برگزار می شود، این فقط برای شما و دوستان شما مفید است، پس از این فرصت ها برای آزمون گرفتن از خود، اثبات خود به دیگران و کمک به دوستانتان استفاده کنید.
پیشنهاد، انتقاد و ... از این مسابقه را، فقط و فقط در قسمت نظر همین سئوال ( نه جواب ها ) و نه درج جواب جدید، ثبت کنید.
دیدم دوستان با دیزاین پترن بیلدر مشکل دارن گفتم یکم راهنمایی شون کنم ، البته از یکم بیشتره ، تقریبا 1000 امتیاز :))
فقط یک کلاس جاواست ، به اندروید ربطی نداره ،
new java project >
create a new class in defaultpackage "WebService.java"
حالا سورس زیر رو past کنید تو کلاس و پکیح رو run as java application کنید و کنسول رو ببینید
اساتید اگر درست پیدا نکردم اطلاع بدید :)
class Runner { public static void main(String args[]) { WebService myWebService = new WebService.Builder() .SetFirstName("Mojtaba") .SetLastName("Yeganeh") .build(); System.out.print(myWebService.toString()); } } public class WebService { private String FirstName; private String LastName; private WebService(Builder builder) { this.FirstName = builder.FirstName; this.LastName = builder.LastName; } @Override public String toString() { return FirstName + " " + LastName; } public static class Builder { private String FirstName; private String LastName; public Builder SetFirstName(String InputFirstName) { this.FirstName = InputFirstName; return this; } public Builder SetLastName(String InputLastName) { this.LastName = InputLastName; return this; } public WebService build() { return new WebService(this); } } }
استاد من کلاسو نوشتم. ولي در قالب 3 فايل جاوا شده.
کاملا با پکيج هاي java نوشته شده . با قابليت cache کردن و بازيابي آن و داراي زمان expire براي cache. داراي ساختار built pattern و قابليت ارسال namedValue ،JSON و String.
البته چون نميشه از پکيج org.json استفاده کرد پس نميشه يه شي JSON ارسال کرد و تنها راه ، ارسال يه String ه که متنش يه JSON باشه . اگه اين مد نظرتون نيست لطفا پکيجي از جاوا که توش شي JSON داره معرفي کنيد.
درضمن يه onRecieveListener هم نوشتم براش (البته ناقصه) ولي نميدونم همون چيزي هست که مد نظرتونه يا نه. لطفا در این باره راهنماییم کنید.
حالا براتون ايميلش کردم . اگه بعدا تصميم گرفتيد که بايد اينجا يا هرجاي ديگه بذارمش هم ، چشم.
ممنون
امتیاز مسابقه تخصیص داده شد.
بزودی آموزش کلاس وب سرویس بصورت ویدئویی تدوین می شود.
تا قبل از این موضوع چنانچه کد را نوشته اید، به ایمیل بنده ارسال کنید.
برای برگزاری مسابقات بیشتر، و بستر سازی سایت باید فکر بیشتری بکنم که البته در این شرایط تعداد شرکت کنندگان در مسابقه نباید دو نفر! باشه.
سلام من یک برنامه برای پارکبانان شهر نوشتم که اطلاعات رو به سرور میفرسته و جواب رو بعد از پردازش میگیره.
این بدرد میخوره که بفرستم یا نه؟
لازم به ذکر است که یکسری اطلاعات رو برای ورود به برنامه از هاست دریافت میکنه.
با سلام
من ماژول وب سرویس توسط استاد رو دیدم یه نکته و مشکل اساسی از دید من که تو کدها بود عرض کنم اگه برداشتم اشتباهه اصلاحش کنید.
استاد در کلاس تست تاریخ انقاضی کش را بصورت ثانیه می دهد.(نه میلی ثانیه).
.cacheExpireTime(30)
در کلاس وب سرویس هم به همان صورت ذخیره میکند.
outputStream.writeLong(when);
ولی زمانی که فراخونی میکند زمان هم اکنون را بصورت میلی ثانیه خوانده و زمان کش را بصورت میلی ثانیه مقایسه می کند اما مقدار when که خوانده می شود همچنان بر اساس ثانیه هست نه میلی ثانیه.
cacheExpireTime*1000 میشود میلی ثانیه، now بصورت میلی ثانیه خوانده میشود . اما when بصورت ثانیه می باشد.
long when = inputStream.readLong(); long now = System.currentTimeMillis(); if (now - when > cacheExpireTime * 1000) { new File(cacheDir + "/cache.dat").delete(); return null; }
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .