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