سؤال

وأنا على دراية كاوتش دي بي وفكرة رسم نتائجها إلى كائنات سكالا، فضلا عن العثور على بعض الطريقة الطبيعية لiteract معها، وجاء على الفور.

ولكن أرى أن اللغات الديناميكية مثل روبي وجافا سكريبت تفعل الأشياء بشكل جيد جدا مع aproach سلمان / وثيقة مركزية / خالية من shchema كاوتش دي بي.

وأي aproach جيد أن تفعل أشياء مع الأريكة في اللغات ثابتة؟

هل كانت مفيدة؟

المحلول

وأنا أفهم أن كاوتش دي بي يعمل بحتة مع كائنات JSON. منذ JSON هو بلا نوع، أنه من المغري للاعتقاد بأن انها تناسب أكثر طبيعية للغات الديناميكية. ومع ذلك، XML هو بلا نوع عموما أيضا، وسكالا يحظى بدعم مكتبة جيد جدا لخلق والتلاعب XML. لاستكشاف ميزات XML سكالا، انظر: http://www.ibm.com/ developerworks / مكتبة / س scalaxml /

وبالمثل مع JSON. بدعم مكتبة الصحيح، والتعامل مع JSON يمكن أن يشعر الطبيعية حتى في اللغات ثابتة. لنهج واحد للتعامل مع البيانات JSON في سكالا، انظر هذا المقال: <لأ href = "http://technically.us/code/x/weaving-tweed-with-scala-and-json/" يختلط = "noreferrer" > http://technically.us/code/x/weaving-tweed-with-scala-and-json/

ومع قواعد بيانات الكائن بشكل عام، وأحيانا يكون الوقت مناسبا لتحديد "نموذج" (باستخدام، على سبيل المثال، فئة في اللغة) واستخدام JSON أو XML أو بعض أخرى لغة المستند مصنف أن يكون تمثيل تسلسل الطبقة. يمكن دعم مكتبة الصحيح ثم تترجم بين شكل تسلسل (مثل JSON) وهياكل البيانات في الذاكرة، مع الكتابة ثابتة وجميع الأشياء الجيدة التي تأتي معها. على سبيل المثال واحدة من هذا النهج، انظر سجل ارفع والتي قد أضاف التحويلات من وإلى JSON: HTTP: //groups.google.com/group/liftweb/msg/63bb390a820d11ba

نصائح أخرى

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

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

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

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

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top