در قسمت اول مقاله اینترنت اشیاء را اهلی کن ! درباره موتور اصلی پروژه یعنی API صحبت کردیم که وظیفه اون ارتباط با پایگاه داده و دادن توابعی به کاربر برای درج، حذف، ویرایش و دریافت اطلاعات از پایگاه داده است.
مشکل اصلی این بود که کار کردن با API حتی با ابزاری مثل Postman برای خیلیها از جمله اکثر مهندسین سختافزار یا الکترونیک ممکنه به پیچیدگی خنثی کردن بمب ساعتی با دست راست وقتی داری با دست چپ پیانو میزنی باشه! دیگه از مشتری نهایی که نباید انتظاری داشت!
تعریف پروژه دوم
برای این وب سرویس اینترنت اشیاء یک واسط کاربری ایجاد کنیم که تمام توابع قسمت اول مقاله رو با یک طراحی هیجانانگیز در اختیار کاربر قرار بدیم، بطوری که نیازی نباشه برای تعاریف اولیه یا مشاهده اطلاعات مستقیما با API ارتباط بگیره.
خبر خوب، خبر بد
خبر بد اینه که همچنان برای یک کار یعنی فرستادن اطلاعات از دستگاه یا نرم افزارتون باید به API متصل بشید، چون احتمالاً انتظار ندارید که دستگاه بره تو سایت یا اطلاعات خود به خود به سیستم اضافه بشه که؟
و خبر خوب هم اینه که پاییز امسال بارندگی بهتر از پارسال بوده! شاید بیربط باشه ولی به هر حال کی میتونه بگه خبر خوبی نیست؟!
و ما جهان را در 6 روز خلق کردیم، اون هم با جاوااسکریپت!
جاوااسکریپت زمانی برای توسعهدهندههای وب در حد رژ گونه برای خانمها بود!، بعضیها برای جذابتر شدن ازش استفاده میکردند در حالی که از نظر بعضی نبودنش هم چیزی از ارزش کار کم نمیکرد! معمولاً در نهایت برای فعال/ غیرفعال کردن دکمه یا ورودی و یا تعویض رنگ بعضی آیتم ها استفاده میشد. چند سال بعد با جدیتر شدن بحث Ajax و اومدن کتابخونه هایی مثل JQuery کمی از اعماق تاریک زمین بیرون اومد اما همچنان یک بخش فرعی از تواناییها برنامهنویس و ملزومات پروژه بود.
و البته نکته مهم این که
و اما React
فریمورک ها برنامهنویسی جاوااسکریپت رو بسیار قدرتمند و شیرین کردند، یکی از همین فریمورک های عالی (و از نظر من بهترینشون) فریمورکی هست به اسم React.js یا به اختصار React. ریکت توسط تیم فیسبوک ارایه شد (برای مقایسه گوگل فریمورک آنگولار رو منتشر کرده!) و ما برای ساخت قسمت دوم پروژه از همین فریمورک استفاده کردیم،
ریکت مثل همه هم رده های خودش (و اصولاً چون بر مبنای جاوااسکریپت ساخته شده) فقط سمت کاربر اجرا میشه و به هیچ وجه به منابع سمت سرور دسترسی نداره بنابراین همیشه باید همراه یه زبان برنامه نویسی سمت سرور (مثل چیزی که ما در قسمت اول مقاله توضیح دادیم) ارایه بشه.
بلاخره پروژه چی شد؟
لازم بود قبل از اینکه به پیادهسازی عملی پروژه برسیم کمی مقدمه چینی کنیم هم برای اینکه بدونید درباره چی قراره صحبت کنیم و هم برای اینکه یکم شوآف کنیم که نرمافزار چه دنیای خفن، بزرگ و باحالی داره! طبیعتاً پروژه دوم نمیتونه امکانات مهمی فراتر از API داشته باشه، چون کاملاً وابسته به اون هست. بنابراین نیازی نیست امکانات اون رو از نو متذکر بشیم، جای اون چندتا اسکرینشات از محیط برنامه رو قرار میدم.
تعریف سرویس و مشخصه ها
این صفحه مربوط به تعریف سرویس هاست، همونطور که میبینید به تعداد دلخواه مشخصه و سرویس میتونید تعریف کنید، واسط کاربریش عالی نیست؟
تعریف دستگاهها یا کاربرها
این قسمت دستگاهها و کاربران مجاز و نحوه دسترس رو مشخص میکنید، طبیعتاً فقط این کاربرها میتونند اطلاعات رو به سرویس مجاز خودشون ارسال کنند.
گزارش گیری
طبیعتاً تا زمانی که اطلاعات دریافت و نمایش داده نشه کل این سیستم کاربردی نداره، اطلاعات که همونطور که گفتیم توسط دستگاه به API ارسال میشه و به این صورت هم میتونید گزارش بگیرید.
من که تا اینجا هیچی نفهمیدم!
تبریک میگم! شما یا خیلی با دنیای نرمافزار خارج از زمینه خودتون کاری نداشتید ( که بالقوه مشکلی هم نداره) یا متوجه هستید که با نوشتن یه برنامه نمونه #C یا کپی کردن چند خط کد از تو اینترنت نباید فکر کنید که مرزهای دنیای نرمافزار رو درنوردیدید!
حتی توی همین پروژه نه چندان بزرگ هم میبینید که بخشهای مختلف تو چه دنیا های متفاوتی کار میکنند، اینکه تلاش کنید باهاشون آشنا بشید خیلی هم کار عالیه اما با خوندن چندتا مقاله خودتون رو متخصص اون زمینه ندونید و اجازه بدید کسانی که تخصصش رو دارند اظهار نظر نهایی رو کنند. 😉
سورس پروژه و توضیحات فنی تر رو میتونید روی گیتهاب من ببینید.
حالا باید چیکار کنم؟
توی حالت ایدهآل، سیسوگ میتونست این سرویس اینترنت اشیاء رو برای نمونه یا برای استفاده مشخصی در اختیار کاربرانش قرار بده. هم مخاطبین بدون درگیر شدن توی جزییات فنی و نرم افزاری میتونستند سرویس هاشون رو اجرایی کنند و هم اینکه اول میتونستن ببینند خروجی واقعی پروژه چی هست و اگر مناسبشون بود، دنبال نصب اختصاصی برند.
اما متأسفانه کمپین کمک به سیسوگ مدتی فعالیتش رو شروع کرده، بازخورد مناسبی هنوز نگرفته !. تا وقتی که این فرهنگ بین ما جا نیفتاده، که معدود سایتهایی مثل سیسوگ که بجای کپی کردن از این طرف و اون طرف، رایگان تولید محتوای فنی میکنند (که بعضی از اونها حاصل چند سال تجربه یک نفر ممکنه باشه) روی گنج ننشستند و فقط با حمایت مالی میتونند سرپا بمونند، سیسوگ مجبوره بیشتر به فکر کم کردن هزینه هاش باشه تا اضافه شدن هزینه سرور برای نصب این سرویس.
دقت داشته باشید که همه جای دنیا تقریباً بیشتر از 90 درصد مخاطبین نرمافزار ها و سایتهای رایگان تا وقتی مجبور نباشن (مثلا با پرداخت هزینه عضویت) حاضر به پرداخت نیستند، و بین 6 تا 8 درصد مخاطبین پرداخت انجام میدند، پس دفعه بعدی که به خودتون گفتید حالا من هم کمک نکنم یکی دیگه هست اینکار رو بکنه یادتون باشه که اتفاقاً اکثراً پرداخت نمیکنند پس شما باید جزو معدود ۶ درصد مخاطبین باشید.
حالا که حالت اول امکانپذیر نیست (حداقل فعلا) شما میتونید قبل از پرداخت هزینه سرور و … خودتون، یا با کمک از کسی که بیشتر اطلاع داره راهنمای نصب پروژه ها رو توی گیتهاب بخونید و روی کامپیوتر شخصی خودتون با هر سیستم عاملی که هست نصب کنید، تا توی عمل با پروژه اینترنت اشیاء آشنا بشید. برای تست ارسال اطلاعات توسط دستگاه هم یا میتونید از آی پی داخلی استفاده کنید و یا با هزینه ای حدود ۱۰ هزارتومان ماهانه از سرویس دهنده اینترنت خودتون یک IP Valid تهیه کنید.
سیسوگ میتونه در مقابل هزینه اندکی سرور مناسبی رو براتون تهیه و راه اندازی کنه، برای این کار میتونید از این طریق اقدام کنید و شرکتهایی که دنبال یک سرویس مناسب اینترنت اشیا هستند میتونند از این سورس به عنوان پایه و شروع ایجاد یک پروژه حتی کاملتر حساب باز کنند 🙂