سؤال

لدي وظيفة، parseQuery، التي تقوم بتحليل استعلام SQL إلى تمثيل مجرد لهذا الاستعلام.

أنا على وشك كتابة دالة تأخذ تمثيلاً مجردًا للاستعلام وتقوم بإرجاع سلسلة استعلام SQL.

ماذا يجب أن أسمي الوظيفة الثانية؟

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

المحلول

أعتقد أن الفعل الذي تريده هو "يؤلف".

نصائح أخرى

على العكس من تحليل يكون تسلسل

في مصطلحات المترجم، العكس هو "unparse".على وجه التحديد، يقوم التحليل بتحويل دفق من الرموز المميزة إلى أشجار بناء جملة مجردة، بينما يؤدي إلغاء التحليل إلى تحويل أشجار بناء الجملة المجردة إلى دفق من الرموز المميزة.

مؤلف موسيقى؟عند تحليل استعلام، تقوم بتقسيمه إلى الأجزاء المكونة له (الرموز المميزة، وما إلى ذلك)، والعكس هو تركيب الأجزاء في استعلام سلسلة.

لاستكمال التسمية الحالية الخاصة بك، composeQuery يبدو أفضل.

ولكن في الحالة العامة، فإن عكس التحليل هو ɹsɹɐd

سأستخدم واحدة من هذه:

  • إلى سلسلة()
  • توSQL ()
  • يجعل()

أعتقد أن "التسلسل" هو على الأرجح الكلمة التي تريدها.يعني إنتاج تمثيل نصي للبيانات التي يمكن تصديرها (واستيرادها) من البرنامج.

إن متناقض "تحليل" هو "توليف".

سلسلة ToQuery()

تقديم بالتأكيد.

أود أن أسميها buildQuery.

ربما تولد أو تنبعث.

فقط لإضافة بعض الأشياء.

بالتأكيد التحليل هو كلمة ذات اتجاهين.

يمكنك تحليل ملخص إلى استعلام.

يمكنك تحليل الاستعلام إلى ملخص.

يجب أن يكون السؤال هو، ماذا تسمي الجزء الأخير من الطريقة، ولأنك في هذه الحالة تقوم بتحليل ملخص لإجراء استعلام يمكنك تسميته parseAbstract.

للإجابة على السؤال، التحليل ليس له عكس.

توليد الاستعلام، ربما؟إنشاء استعلام؟

قم بالاختيار

  • يولد
  • أحمق
  • تسلسل
  • ينبعث

ولكل منهم دلالات مختلفة قليلا.

ربما PrettyPrintQuery?

إنشاء، إنشاء، إنشاء، تقديم، تكثيف، تقليل، toSQL، toString اعتمادًا على طبيعة الفئة والعوامل المرتبطة بها

يتكون المترجم التقليدي من جزأين:محلل ومولد رمز.

لذا يمكنك تسميتها "إنشاء".بالطبع، الأمر مختلف قليلاً هنا لأن المترجم لا يكتب كود المصدر.(ما لم يكن مترجمًا مسبقًا).

ربما تنسيق ().أو ToSQL() في المثيل الخاص بك؟

إلغاء التحليل ()؟فقط أمزح، سأختار toQueryString()

تتسطح؟

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

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

أود أن أقول التسلسل وإلغاء التسلسل، بدلاً من التحليل و...

سأختار ToString()، حيث يمكنك عادةً ربطها بالتسلسل (الوظائف المعاكسة، التي تتيح لك الانتقال من Class1 إلى Class2 والعكس صحيح)

DateTime.Parse( DateTime.Parse( myDate.ToString() ).ToString() );

يبدو أن Serialize() خيار جيد، ولكن له بالفعل عكس ذلك في Deserialize().

في السيناريو الخاص بك، كما أشار الآخرون، يعد ToSql() خيارًا جيدًا آخر.

سأستخدم تقديم

> a = 'html': { 'head': {'title': 'My Page'}, 'body': { 'h1': 'Hello World', 'p': 'This is a Paragraph' } }

> b = render(a)

> console.log(b)

<html>
    <head>
        <title>My Page</title>
    </head>
    <body>
        <h1>Hello World</h1>
        <p>This is a Paragraph</p>
    </body>
</html>

وهو IMHO، عكس التحليل ()

> c = parse(b)

{ 'html': {
    'head': {
        'title': 'My Page'
    }
    'body': {
        'h1': 'Hello World',
        'p': 'This is a Paragraph'
    }
}

إجراء 1+ للإنشاء، ولكن قم بمعالجة ما تقوم بإنشائه، على سبيل المثال.إنشاء SQL ()

لقد قمت بالتصويت لصالح "إنشاء" ولكن إذا لم يعجبك ذلك، فسأقترح أيضًا "إنشاء"

ماذا عن asSQL() أو حتى asQuery()؟

INHO Serialize، Synthesis هي خيارات جيدة.أيضًا، كما قمت بتسمية parseQuery، سأستخدم codeQuery

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

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

public class FooBarParser{

    public Foo parse(Bar bar);
    public Bar parse(Foo foo); 
}

رحيل

Deparse هو التحليل ، على النحو التالي:

  • فك هو تجميع
  • التحلل هو التأليف
  • إلغاء التسلسل هو إجراء تسلسل
  • degroovy هو رائع :) ;)

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

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

يُظهر البحث السريع المصطلح المستخدم في:

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