جداول البيانات كأداة لتطوير تطبيقات الأعمال

غالبًا ما يستخدم Excel كأداة متعددة الاستخدامات لتطوير تطبيقات الأعمال. في هذه المقالة ، أريد مقارنة جداول البيانات التي كانت موجودة دون تغيير كبير لأكثر من 30 عامًا مع نموذج البرمجة الحتمية الكلاسيكية الحديثة من وجهة نظر مهندس البرمجيات. ثم أريد أن أتحدث عن عملي على معالج جداول بيانات جديد يصحح العديد من نقاط الضعف التي تم تحديدها في المقارنة ، مما يتيح لك إنشاء تطبيقات أعمال أكثر موثوقية وقابلة للتطوير وأسهل في الحفاظ عليها وتطويرها.







جداول البيانات وقدراتها



ظهر المبدأ الذي تعمل به جداول البيانات الحديثة (Microsoft Excel أو LibreOffice Calc أو Google Sheets) في أواخر السبعينيات ومنتصف الثمانينيات. ظهر صفيف من الخلايا ثنائي الأبعاد كنموذج بيانات والقدرة على الحساب تلقائيًا باستخدام الصيغ في VisiCalc في عام 1979. ظهرت مجموعة ثلاثية الأبعاد من الخلايا (القدرة على استخدام أوراق متعددة) لأول مرة في عام 1985 في Boeing Calc.



من الناحية النظرية ، تعد جداول البيانات جيدة مثل أي لغة برمجة. هناك آلة تورينج تعتمد على صيغ Excel ( رابط ) ، مما يعني أن أي خوارزمية يمكن تنفيذها باستخدام جهاز كمبيوتر يمكن تنفيذها في Excel. السؤال الوحيد هو ملاءمة وكفاءة مثل هذا التنفيذ.



من الناحية العملية ، صادفت أنظمة معقدة للغاية تم تنفيذها في Excel. على سبيل المثال ، نموذج مالي لتطوير مطار دولي مع القدرة على المساهمة بالعديد من أنواع الكائنات المختلفة (مواقف السيارات ، المستودعات ، الممرات ، ...) وإعادة حساب الأمتار المربعة وأماكن وقوف السيارات في التدفق النقدي (تكاليف سنوات البناء مقابل الربح لسنوات التشغيل) ، مع مراعاة النماذج المختلفة التضخم. يمكن أن يستغرق الأمر من عدة شهور إلى عدة سنوات من الأشخاص "لإعادة كتابة" مثل هذا "الامتياز" في Java باستخدام قاعدة بيانات علائقية. في هذه الحالة بالذات ، يتألف النموذج العلائقي في قاعدة البيانات من أكثر من 50 جدولًا. والأكثر إثارة للاهتمام ، أنه كان من الممكن تجنب "إعادة الكتابة" هذه إذا لم تسمح جداول البيانات بإنشاء البرامج فحسب ، بل أتاحت أيضًا صيانتها وتوسيع نطاقها.بالنسبة للمستخدم النهائي (الاقتصادي) ، يعتبر نظام Java خطوة إلى الوراء ، لأنه لم يعد يرى نتائج وسيطة ولا يمكنه تغيير النموذج أو استكماله بنفسه.



اتضح أنه يمكن حل نفس المشكلة عن طريق جدول بيانات ولغة برمجة عالمية. هذا يعني أنه يمكننا مقارنة نقاط القوة والضعف في هاتين الأداتين كوسيلة لإنشاء تطبيقات الأعمال. سنحاول هنا إلقاء نظرة على برنامج Excel من خلال عيون مبرمج معماري وتطبيق قواعد هندسة البرمجيات الراسخة بالفعل في تطوير البرامج الكلاسيكية.



فوائد جداول البيانات



  1. مفهوم بديهي : رأى كل واحد منا في المدرسة علامات على قطع من الورق في صندوق وملأها ولعب معركة بحرية. لم يتلق معظم الأشخاص الذين يعملون مع Excel أي تدريب خاص (في أحسن الأحوال ، أظهر أحد الزملاء الأزرار التي يجب الضغط عليها خلال نصف ساعة) هذه ميزة كبيرة على لغات البرمجة حيث تبدو عبارة "C ++ في 21 يومًا" متفائلة جدًا.
  2. : , , - . breakpoints . . , .
  3. : , . , UI, .




  1. : . Notepad, Java . . . , E5 . VLOOKUP . -, .
  2. : DRY (Don’t repeat yourself — ). , (, /) . . , , , . . .
  3. عدم تفاعل الواجهة : لا تسمح لك جداول البيانات بتغيير طريقة عرض البيانات ديناميكيًا لا يمكن أيضًا إنشاء عمليات مبرمجة يتم إجراؤها ، على سبيل المثال ، بالضغط على زر.


كيف تجعل جداول البيانات أفضل؟



اسمي فاديم. أنا كبير مسؤولي التكنولوجيا في CubeWeaver وأعمل على تطوير جدول بيانات جديد لبعض الوقت الآن. قبل عدة سنوات ، كتبت بالفعل ( رابط ) عن إصدار مبكر من النظام ، ولكن منذ ذلك الحين تغير الكثير ووصل المشروع هذا العام إلى المرحلة التجارية.



فيما يلي قائمة بالابتكارات في مشروعي التي تعالج العيوب المذكورة أعلاه أثناء محاولة الحفاظ على فوائد جداول البيانات:



نموذج بيانات متعدد الأبعاد



يستخدم نموذج البيانات متعدد الأبعاد على نطاق واسع في أنظمة ذكاء الأعمال و OLAP لتحليل البيانات. يتمثل جوهر النموذج في تخزين البيانات في خلايا مكعب متعدد الأبعاد ، يتم توقيع حوافه بواسطة رؤوس كائنات الأعمال:





لا تعرض واجهة البرنامج المكعب متعدد الأبعاد بالكامل ، ولكن شريحة ثنائية الأبعاد تتوافق مع مجموعة المرشحات التي اخترناها:





عند تنفيذ مثل هذا النموذج في نظام ذكاء الأعمال العلائقي ، غالبًا ما يتم استخدام مخطط ندفة الثلج. يتم تطبيق المكعبات بواسطة جداول البيانات الواقعية ، ويتم تخزين رؤوس الوجوه في جداول الأبعاد.



في نظامي ، تسمى المكعبات أوراق العمل ، وتسمى العناوين الموجودة على حواف المكعب عناصر القائمة.



لكل خلية في ورقة العمل متعددة الأبعاد عنوان فريد يتكون من تسميات على الحواف. على سبيل المثال ، القيمة 935 في الصورة لها العنوان: دراجات ، 2020 ، باريس.

كل عنصر في القائمة له اسم ومعرف. تستخدم مراجع الخلايا المعرفات ، وقد يبدو العنوان أعلاه في الصيغة على النحو التالي (المراجع محاطة بأقواس مربعة):



[PROD:23, YEAR:2020, CITY:24]، حيث يمثل PROD معرّف قائمة "المنتج" و 23 هو معرّف عنصر "الدراجات".



يمكن أن يؤدي استخدام نموذج متعدد المتغيرات إلى تحسين الوضع بشكل كبير مع عدم وجود رقم 1. أولاً ، يتم الآن تخزين العناوين الرئيسية بشكل منفصل عن البيانات الرقمية. ثانيًا ، يتيح إدخال بُعد إضافي "مقياس" (أو "موضع التقرير") معالجة الخلايا ليس برقمها الترتيبي ، ولكن بالمعنى الدلالي ، مما يؤدي إلى التخلص من الأخطاء الناتجة عن إضافة أعمدة أو صفوف أو إزالتها.



بالطبع ، يجب أن يقال أن هذا النهج يفسد الموقف قليلاً مع الميزة رقم 1. لعب الجميع معركة بحرية ، ولم يلعب سوى عدد قليل من طلاب الرياضيات الشطرنج رباعي الأبعاد. لكن التجربة توضح أنه بفضل التمثيل ثنائي الأبعاد للمكعب ، يعتاد معظم المستخدمين بسرعة على نموذج البيانات الجديد.



وظيفة JOIN والبيانات الوصفية



يتيح لك النموذج متعدد الأبعاد استخدام البيانات الوصفية لوصف الخلايا. تعني طريقة العنونة الموضحة أعلاه أن كل خلية في ورقة العمل تتوافق مع مجموعة محددة من عناصر القائمة (على سبيل المثال ، السنة والمنتج ونقطة البيع). يمكن أن تحتوي القوائم بدورها على سمات (أعمدة) ، مما يجعلها تبدو وكأنها جداول علائقية عادية. على سبيل المثال ، يمكنك إضافة عمود عملة إلى قائمة نقاط البيع ، وبالتالي ربط نقاط البيع وقوائم العملات بعلاقة أصل واحد.



تتيح وظيفة JOIN إمكانية الإشارة إلى الخلايا ديناميكيًا باستخدام مثل هذه العلاقة. تحل هذه الوظيفة محل VLOOKUP ، مما يلغي الحاجة إلى العمل مع الفهارس.



مثال: لحساب حجم المبيعات في جميع أنحاء العالم ، يجب عليك أولاً تحويل حجم المبيعات لكل بلد إلى عملة واحدة (اضرب موضع "المبيعات" في سعر الصرف). في Excel ، نقوم بتخزين جدولين: قائمة البلدان بعملة لكل دولة وقائمة بالعملات مع سعر الصرف. للعثور على السعر الصحيح ، سنستخدم وظيفة VLOOKUP مرتين: ابحث عن رمز العملة حسب اسم البلد والعثور على سعر الصرف حسب رمز العملة.



يمكن أن تبدو الإشارة إلى خلية بها سعر الصرف كما يلي: ،

EX_RATES.[COUNTRY.join(CURRENCY)]أين

EX_RATESاسم ورقة العمل مع أسعار الصرف

COUNTRY- البعد مع البلدان

CURRENCY- البعد مع العملات



يمكن أن تكون سلاسل الارتباط بأي طول ، على سبيل المثال:STORE.join(COUNTRY).join(CURRENCY)



في الواقع ، عندما نبني النموذج ، نقوم بإنشاء مخطط ندفة الثلج. تسمح وظيفة JOIN للصيغ بالإشارة إلى الخلايا ديناميكيًا في أوراق العمل باستخدام الروابط بين الجداول (القوائم) في هذا المخطط. في هذه الحالة ، يتم تحديد التبعيات بين الخلايا صراحةً في وسيطات الدالة JOIN.



مجال صلاحية الصيغ



القدرة على تحديد منطقة التأثير تلغي الحاجة إلى نسخ الصيغ.



لكل بُعد من أبعاد المكعب ، نحدد مجموعة من العناصر التي تعمل عليها الصيغة ، مثل: كل السنوات ، منتجات من النوع "دراجة" ، عنصر "الإيرادات" في التقرير. من الناحية العملية ، يبدو الأمر على هذا النحو (تم وضع علامة على هدف الصيغة باللون الأزرق ، وتم تمييز وسيطاتها باللونين الأحمر والبرتقالي. توجد قائمة العناصر المحددة لكل بُعد في أسفل الشاشة):





يعمل هذا النهج على إصلاح الخلل رقم 2 ويسمح لك بإضافة وإزالة العناصر أو حتى الأبعاد دون تغيير الصيغة. كما أنه يلغي الحاجة إلى البحث عن جميع الخلايا التي تم نسخ الصيغة فيها في كل مرة نريد تغييرها.



تفاعل الخلايا



يتيح لك هذا الابتكار إنشاء واجهات تفاعلية باستخدام الصيغ. يمكن استخدام الصيغ ليس فقط لحساب قيمة الخلية ، ولكن أيضًا لتنسيق الخلايا (تنسيق الخلية) وتغيير لون الخلايا (لون الخلية) وإخفاء أو إظهار مجموعة من الخلايا أو أعمدة أو صفوف بأكملها (رؤية الخلية). يمكن تنسيق الخلايا ليس فقط كأرقام وتواريخ ونص ، ولكن أيضًا كأزرار ومربعات اختيار وقوائم منسدلة.



وهكذا ، على سبيل المثال ، يمكن أن يتغير لون الخلايا حسب قيمة الخلية. يمكن أن يعرض مربع الاختيار أو قائمة الاختيار في ورقة واحدة خلايا في ورقة أخرى أو يخفيها أو يقفلها.



تسمح لك الأزرار الموجودة في الخلايا بإنشاء عمليات معقدة إلى حد ما على قيم الخلايا. من خلال إنشاء الزر ، قمنا بتعيين هدف العملية (نطاق الخلايا) والصيغة ، والتي يتم تنفيذها مرة واحدة لكل خلية من الخلايا المستهدفة. يمكن أن يكون هناك عدة عمليات على زر واحد. لذلك ، يمكن أن يؤدي الضغط على زر ، على سبيل المثال ، إلى نسخ البيانات من العام السابق إلى العام التالي ، أو توزيع محتويات خلية إلى عدة خلايا أخرى ، بما يتناسب مع بعض القيمة (الرش).



تسمح الأزرار جنبًا إلى جنب مع قيود وصول المستخدم بوظائف لا رجعة فيها. لذلك ، على سبيل المثال ، المستخدم الذي قام بالوصول إلى زر ، ولكن لم يتمكن من الوصول إلى الخلية المستهدفة ، سيكون قادرًا على الكتابة إلى الخلية فقط ما تسمح له الصيغة الموجودة في الزر.



خاتمة



يسمح معالج جداول البيانات الجديد بنماذج أكثر تعقيدًا بكثير مما هو ممكن في الأنظمة الأخرى. في الوقت نفسه ، تظل النماذج واضحة وسهلة الصيانة. يتم أيضًا تقليل احتمال حدوث أخطاء في الصيغ بشكل كبير.



الثمن الذي يجب دفعه مقابل هذه المزايا هو التعقيد المتزايد للنظام. قبل البدء في العمل ، يجب على المستخدم إنشاء نموذج بيانات في شكل قوائم ومكعبات.



بشكل عام ، تم تصميم النظام لمستخدم أكثر إلمامًا بالقراءة والكتابة من الناحية الفنية من Excel (على سبيل المثال ، الاقتصاديون الذين لديهم معرفة أساسية بالبرمجة أو المبرمجين الذين يعملون على النماذج الاقتصادية).



يسعدني الرد على أسئلتكم في التعليقات أو الرسائل الخاصة. أيضًا ، على الإنترنت ، يمكنك العثور على وثائق للنظام والعديد من مقاطع الفيديو التدريبية.



All Articles