شنبه ۱ اردیبهشت ۱۴۰۳ |  عضویت / ورود

پس از بیست سال برنامه نویسی به کجا رسیدم؟ معرفی DBBD یا DataBase-Based Design یا طراحی مبتنی بر پایگاه داده


این جمله را دانشجوها در کلاس‌های برنامه‌نویسی زیاد از من می‌شنوند: بعد از یادگیری دستور if ... else شما برنامه‌نویس به حساب می‌آیید و باید بتوانید هر مسأله‌ای در عالم را حل کنید (یک جمله مهم و پرتکرار دیگر از من: برنامه‌نویسی، کدنویسی نیست؛ بلکه «قدرت حل مسأله است»). بعد از آن مفهوم، به switch و حلقه‌ها و توابع و آرایه‌ها و... می‌رسیم. این مفاهیم هیچ چیزی به برنامه‌نویسی اضافه نمی‌کنند؛ بلکه فقط یک چیز کم می‌کنند: تکرار کد.

بنابراین هر چه برنامه‌نویسی پیشرفت کرد، فقط یک چیز تغییر کرد: تکرار کمتر شد! همین و بس!

نتیجه اینکه: هر چه سطح شما در برنامه‌نویسی بالاتر می‌رود باید تکرار کدهایتان کمتر و کمتر شود و کدهایتان کوتاه‌تر شود.

حالا فعلاً بعد از ۲۰ سال برنامه‌نویسی، به این مرحله رسیدم: این ویدئو را ببینید:

باور می‌کنید در این ویدئو در کل فرم‌هایی که می‌بینید و یعنی در کل پروژه، من فقط یک بار کد یک فیلد را نوشته‌ام؟ مثلاً فقط یک بار در کل پروژه کد تگ input type=text نوشته شده، فقط یک بار در کل پروژه کد تگ textarea نوشته شده و هر تگ دیگری...

سیستم به طور خودکار از دیتابیس فیلدها را می‌خواند و برایشان فرم می‌سازد و همینطور لیست و ویرایش و آپلود و...

در کل پروژ فقط یک بار کد لیست و حذف نوشته شده!

our_new_project.png (1127×807)

 

ممکن است بپرسید سیستم چطور می‌فهمد مثلاً فیلد عنوان را باید input type=text روی فرم نشان دهد اما مثلاً فیلد شاخه‌ها را به صورت لیستی از شاخه‌هایی که در فلان جدول تعریف شده؟ یا فیلد شرح را به صورت textarea همراه با ادیتور و یکی را بدون ادیتور، یا یک تاریخ را فارسی نشان دهد، یکی را انگلیسی و...؟

خوب، این یک نوع طراحی ابتکاری است که من آن را DBBD یا DataBase-Based Design یا «طراحی مبتنی بر پایگاه داده» می‌نامم.

در این روش، شما فقط کافی‌ست دیتابیس‌تان را آماده کنید و کار به هیچ چیز دیگری نداشته باشید! تقریباً هیچ نوع کدنویسی از طرف شما لازم نیست! فقط دیتابیس را طراحی کنید... از طریق دیتابیس به کدنویسی می‌فهمانید که مثلاً فیلد شاخه باید به جدول category متصل شود... همه چیز تحت کنترل شماست. مثلاً می‌توانید از طریق دیتابیس و به راحتی به سیستم بفهمانید که من می‌خواهم فیلد شرح در بخش افزودن باشد اما در لیست نباشد یا فقط در ویرایش باشد و بقیه جاها نباشد! حتی برچسب‌های فارسی فیلدها از طریق دیتابیس مشخص می‌شود.

با این سبک طراحی، احتمالاً به جای زبان‌های جدید، کیت‌های جدید خواهند آمد! شما یک کیت برای پروژه خود انتخاب و دانلود می‌کنید و فقط و فقط دیتابیس آن را می‌سازید! همین! سیستم شما آماده است...

احتمالاً طراحان سیستم‌های آینده فقط باید پایگاه داده بلد باشند و دیگر نیازی به یادگیری کدنویسی نیست!

توضیحات بیشتر نیاز دارید؟ باید صبور باشید تا این سیستمی که در حال کار هستیم آماده و منتشر شود؛ سپس احتمالاً کیت آن را هم منتشر کنیم تا شما خودتان هر سیستمی نیاز دارید، پایگاه داده‌اش را طراحی کنید و کیت ما را دانلود کنید و روی سایت خود قرار دهید و سیستم را تحویل بگیرید.

و توجه کنید که اگر همه چیز خوب پیش برود، ما می‌توانیم از این پس چقدر سریع سیستم‌هایی که سال‌ها بود منتظر فرصت برای ایجاد بودیم را آماده و منتشر کنیم!؟

موفق باشید؛
حمید رضا نیرومند 


[ارسال شده در مورخه : چهارشنبه، 9 آذر، 1401 توسط Hamid]
[ #برنامه‌ نويسي]



بازدیدها از این مطلب: 2424 بار   امتیاز متوسط : 0  تعداد آراء: 0   امتیاز دهید:

نظرات طرح شده

نام: [ کاربر جدید ]
ایمیل:

نظر:


اجازه استفاده از تگهای HTML را ندارید


جمع عدد 6 با 5 را در كادر زیر وارد نمایید:
(این كار برای جلوگیری از فعالیت موتورهای اسپمر است)


* توجه: نظر شما بعد از بررسی، نمایش داده خواهد شد.

حسین ریاستی (امتیاز : 0)(لینک نظر)
توسط حسین ریاستی در مورخه : پنجشنبه، 10 آذر، 1401
سلام و خدا قوت.
خیلی فکر خوبیه. بی صبرانه منتظریم. روی هر پایگاه داده و هر زبانی میشه ازش استفاده کرد؟


[ ارسال جوابیه ]

    Hamid (امتیاز : 1)
    توسط Hamid در مورخه : جمعه، 11 آذر، 1401
    سلام،
    اگر تصمیم به انتشار گرفته شد، توضیح خواهم داد...
    موفق باشید


    [ ارسال جوابیه ]


qwerty13                توسط qwerty13 در مورخه : جمعه، 11 آذر، 1401(لینک نظر)
سلام
کاش یک مثال کوچک از نحوه کارش می‌زدید.
سرعت کارش نسبت به دستی چطوره؟ فکر کنم کارها قبل از ایجاد صفحه نهایی انجام میشه درسته؟ آخه کوئری گرفتن موقع نمایش صفحه کند میشه...


[ ارسال جوابیه ]

    Hamid (امتیاز : 1)
    توسط Hamid در مورخه : شنبه، 12 آذر، 1401
    سلام،
    به‌موقع‌ش توضیح خواهم داد ;)


    [ ارسال جوابیه ]


پیگیر                توسط پیگیر در مورخه : چهارشنبه، 16 آذر، 1401(لینک نظر)
سلام.
پی اچ پی رو نمیدونم. اما تو c# خیلی وقته که همچین امکانی هست.مفهومی به نام db first در entity framework داریم که فقط کافیه شما دیتابیس تون رو دیزاین کنید و با چند تا کلیک کل کلاس های مربوط به موجودیت های شما در برنامه ساخته می شه.
و مبحث t4 tempalet که فقط یک بار یک پترن آماده میکنید و بعدش خیلی راحت با چند تا کلیک کل فرم های عملیات crud رو براتون پیاده سازی میکنه.
البته این سبک کار کردن خوب هست ولی همه جا پاسخگو نیست و نمیشه گفت که از برنامه نویسی بی نیاز میشید.


[ ارسال جوابیه ]

    Hamid (امتیاز : 1)
    توسط Hamid در مورخه : چهارشنبه، 16 آذر، 1401
    سلام، بله، تقریباً همون چیزی هست که در Access هم هست اما با زبان‌های تحت وب من چیزی نیافتم...
    درسته، کدنویسی به طور کامل حذف نخواهد شد.


    [ ارسال جوابیه ]

      [بدون موضوع] (امتیاز : 0)
      توسط کاربر مهمان در مورخه : دوشنبه، 21 آذر، 1401
      این که گفتم برای asp mvc هست. یعنی کاملا تحت وب میشه این کار رو انجام داد.


      [ ارسال جوابیه ]