توسعه کم کد (Low–Code) چیست؟ | به زبان ساده


از سپیدهدم عصر رایانه که با ظهور رایانههای عظیمالجثه مجهز به لامپهای خلأ در دهه 1940 آغاز شد، توسعه نرمافزار رایانهای نیازمند داشتن درک گستردهای از ریاضیات، منطق رقومی و یک یا چند زبان برنامهنویسی برای اجرای کارهای مختلف بوده است. با این حال در این نوشته با رویکرد جدید توسعه نرمافزار به نام توسعه کم کد آشنا خواهیم شد.
به طور سنتی هر چه فرد درک عمیقتری از مفاهیم مورد بحث داشته باشد، تولید نرمافزار رایانهای با کیفیت بالا برای وب آسانتر خواهد بود، در حالی که داشتن درک محدود موجب میشود که کار توسعه نرمافزار به وظیفهای دشوار تبدیل شود.
با این حال امروزه همه چیز به میزان زیادی تغییر یافته است. با ظهور رابطهای کاربری گرافیکی و رایانههای با قدرت بیشتر و پشتیبانی از نرمافزار موجب شده که امکان توسعه کم کد برای افزایش سرعت کدنویسی فراهم شود امکان طراحی وبسایت، اپلیکیشن و حتی سیستمهای کامل با داشتن دانش اندکی از علوم رایانه یا مفاهیم مهندسی نرمافزار میسر شود.
بر اساس تعریف ویکیپدیا، یک «پلتفرم توسعه کم کد» (LCDP) نرمافزاری است که یک محیط در اختیار برنامهنویسها قرار میدهد تا نرمافزارهای کاربردی را از طریق رابطهای کاربری گرافیکی و پیکربندی کردن به جای روشهای سنتی برنامهنویسی رایانه توسعه دهند.
این تعریف تا حدود زیادی گویا است. توسعه کد دقیقاً به همین معنا و به صورت توسعه نرمافزار به روش گرافیکی و نوشتن کد کم یا کلاً بدون نوشتن کد در این فرایند است. در این مقاله برخی از مفاهیم، دغدغهها و ابزارهای موجود برای توسعه کم کد را معرفی میکنیم.
طرز کار توسعه کم کد چگونه است؟
پلتفرمهای توسعه کم کد ابزارهای گرافیکی برای طراحی یک اپلیکیشن یا سیستم را همراه با ورودیهای مورد نظر، خروجیها، منطق تجاری و دیگر جنبهها فراهم میسازند. بسته به قابلیتهای پلتفرم که مورد استفاده قرار میگیرند و الزامات کلی سیستم، توسعهدهنده ممکن است طراحی را با مقداری کد به سبک قدیمی خوب ارتقا دهد و یا ممکن است پلتفرم کل راهکار را بدون هیچ گونه کد اضافی تولید کند.
این فرایند میتواند بسته به نوع پلتفرم کم کد بسیار متفاوت باشد. مانند پلتفرمی که در ادامه بررسی خواهیم کرد، هر پلتفرم بسته به تیمی که آن را توسعه داده است و یا نیازهای تجاری که هر پلتفرم برای رفع آنها توسعه یافته است، میتواند متفاوت باشد. با این حال، مفاهیم عمومی یکسان هستند و فرایند به طور کلی شامل نگاشت طراحیهای رابط کاربری پایگاههای داده، API-ها و رفتار اپلیکیشن کلاینت برای تولید مشخصاتی است که پلتفرم برای گردآوری سیستم کاری مورد استفاده قرار میدهد.
از دیدگاه رایانهای، هر چیزی یک یا صفر است و از این رو برای رایانه فرق نمیکند که فایلهای باینری کامپایل شده، طراحیهای UX، پایگاه داده یا هر چیز دیگری از سمت پلتفرم توسعه کم کد و یا کدنویسی دستی به آن داده شود. با این حال هر روش مزایا و معایبی دارد.
مزیتهای توسعه کم کد
استفاده از روش توسعه کم کد موجب میشود که یک سازمان ابزاری برای تولید نرمافزار پیچیده و کارآمد در زمان کم به دست آورد و نیازی هم به استخدام مهندسان نرمافزار زیاد که غالباً نیازمند پرداخت هزینه زیاد و فرایند دشوار گزینش و استخدام هستند، نداشته باشد.
یک معمار نرمافزار با استفاده از یک پلتفرم توسعه کم کد و برای تواناییهای کدنویسی میتواند یک طراحی انفرادی داشته باشد تا یک اپلیکیشن تجاری پیچیده را برای شرکت خود در طی زمان بسیار کم و بدون نیاز به پرداخت هزینه بالا برای استخدام مهندسان نرمافزار متعدد و یا پرداخت به یک شرکت برنامهنویسی دیگر توسعه دهد. به طور مشابه یک کارآفرین با مهارتهای متوسط رایانه میتواند ایدههای جدید را امتحان کند و حتی یک محصول کامل را با همه قابلیتهای مطلوب و کارکردهای مورد نیاز ساخته و منتشر کند. این یک مزیت بزرگ برای افرادی است که به توسعه اپلیکیشن علاقهمند هستند، اما زمان زیادی برای یادگیری مهندسی نرمافزار ندارند و یا سطح توانایی آنها برای عرضه یک محصول رقابتی و پایدار کافی نیست.
معایب یا دغدغههای توسعه کم کد
یکی از دغدغههای توسعه کم کد این است که در آن فرد بدون درک عمیقی از مفاهیم مهندسی نرمافزار یک اپلیکیشن را طراحی میکند و ممکن است تجربه لازم برای اتخاذ تصمیمهای مناسب در مورد طرز کار سیستمهای رایانهای را نداشته باشد. یک محیط گرافیکی با کد کم موجب میشود که فرد نتواند خطاهای نحوی مرتبط با کد را تولید کند، چون اصولاً «نحو» (Syntax) وجود ندارد، اما به طور کلی تمایزی هم بین ایده خوب و بد وجود ندارد.
ضمناً محیطهای توسعه کم کد، فاقد آن شهود و درک از چارچوب کار هستند که یک برنامهنویس خبره میتواند داشته باشد. از این رو همواره این ریسک وجود دارد که یک اپلیکیشن کم کد برای مثال از برخی الزامات که طراح پیشبینی نکرده است، مانند بازیابی، محاسبه و ذخیرهسازی برخی دادههای حیاتی تاریخی مرتبط با رویداد که اگر در زمان مناسب ذخیره نشوند برای همیشه از دست میروند، پشتیبانی نکند.
با این که در یک چنین سناریویی، مسئولیت اصلی بر عهده تیم تجاری است تا دامنه الزامات را به درستی مشخص کنند، اما در میان مهندسان نرمافزار مشهور است که اشتباهات در دامنهبندی همیشه رخ میدهند و غالباً از سوی برنامهنویسان در طی زمان توسعه و چرخههای نگهداری کد اصلاح میشوند. در این چرخهها برنامهنویس تصور روشنی از میزان تطبیق الزامات با واقعیت به دست میآورد. یک توسعهدهنده اپلیکیشن کم کد، این فرصت را مانند افراد حرفهای ندارد که این موارد ظریف را در نظر بگیرد و غالباً موجب بروز فاجعه میشود.
بررسی یک پلتفرم نمونه
برای این که درک بهتری از ظاهر یک پلتفرم توسعه کم کد داشته باشید، در این بخش به بررسی یک پلتفرم نوظهور به نام Microsoft PowerApps میپردازیم. این پلتفرم برای طراحی و توزیع سریع اپلیکیشنهای تجاری طراحی شده است.
مایکروسافت پاوراپز دو روش برای توسعه اپلیکیشنها کم کد ارائه کرده است:
- Canvas Apps – در این روش، توسعهدهنده کار خود را با طراحی کردن UX اپلیکیشن آغاز کرده و سپس به منطق و دادهها میپردازد.
- Model-Driven Apps – در این روش توسعهدهنده کار خود را با نوشتن دادههای خام آغاز کرده و رفتار اپلیکیشن را مدلسازی میکند.
زمانی که از رویکرد canvas استفاده میکنید، یک سیستم از بالا به پایین طراحی میشود که روی اینترفیسها و تعاملها، الزامات سیستم و رفتار کلی اپلیکیشن تمرکز میکند که بسته به نیاز روی جزییات نیز کار میکنیم.
به طور عکس رویکرد Data-Model با دادهها آغاز میشود و توسعهدهنده کار خود را با مقداری دادههای مهم شروع کرده و سپس به کار روی تعامل و در نهایت ساخت یک محصول یا سرویس بر مبنای آن میپردازد. در ادامه از دادهها و الزامات منطق تجاری سطح پایین جدا شده و روی کارکردهای سطح بالای محصول متمرکز میشویم.
Microsoft PowerApps نمونه خوبی از پلتفرم کم کد است که امکان اتصال به هر دو نوع دیتااستور داخلی و خارجی را فراهم میسازد. بدین ترتیب به سادگی امکان طراحی منطق تجاری و UX فراهم میشود که به کاربران امکان میدهد تا با سیستم و دادههای زیرساختی تعامل پیدا کنند.
توضیحات بیشتر در رابطه با توسعه کم کد
اصطلاح توسعه کم کد تنها چند سال است که معرفی شده و روشهای زیادی برای طراحی یک چنین پلتفرمی وجود دارند. از این رو این فیلد در سالهای آتی با احتمال بالایی شاهد تغییرات زیادی خواهد بود. انواع مختلف اپلیکیشنها دارای الزامات متفاوتی هستند، یعنی یک پلتفرم مناسب برای توسعه بازی ممکن است برای توسعه اپلیکیشنهای سازمانی بیاستفاده باشد و برعکس.
در این بخش فهرستی از برخی از پلتفرمهای مفیدی که هم اینک موجود هستند را معرفی میکنیم.
- Microsoft PowerApps
- Google AppMaker
- Betty Blocks
- Mendix
- QuickBase
- OutSystems
سخن پایانی
توسعه کم کد یک گزینه هیجانانگیز برای هر دو قشر برنامهنویس و غیر برنامهنویس جهت طراحی و ساخت انواع مختلفی از نرمافزار از اپلیکیشنهای کاربردی ساده گرفته تا نرمافزارهای پیچیده مدیریت منابع سازمانی است. در زمان ساخت اپلیکیشنهای کم کد باید دقت خاصی داشته باشید تا طراحی بتواند الزامات مورد نیاز را پاس کند، چون هیچ تیمی وجود ندارد که در ادامه اشتباهات احتمالی را که در فرایند مهندسی نرمافزار به طور مکرر رخ میدهند، شناسایی کرده و آنها را رفع کند. معنی این حرف آن است که توسعه کم کد وقتی به درستی استفاده شود یک گزینه عالی برای افرادی خواهد بود که نیازمند نرمافزار سفارشی هستند، اما مهارت کافی برای ساخت اپلیکیشنهای نرمافزاری سنتی ندارند.
کامل و عالی بود، ممنون