Pegjs: كيفية تحديد قاعدة لتتطابق مع نمط عدة مرات في PEG.js؟

تم إنشاؤها على ٢٥ يناير ٢٠٢٠  ·  22تعليقات  ·  مصدر: pegjs/pegjs

نوع القضية

  • تقرير الشوائب:
  • طلب المواصفات:
  • سؤال: نعم
  • ليست مشكلة:

المتطلبات الأساسية

  • هل يمكنك إعادة إظهار المشكلة ؟: نعم
  • هل قمت بالبحث في مشكلات المستودع ؟: إلى امتداد
  • هل قمت بفحص المنتديات ؟: لا
  • هل أجريت بحثًا على الويب (google ، yahoo ، إلخ) ؟: نعم

وصف


أحاول تحليل ملف حيث يمكن رؤية النمط عدة مرات:

G04 hello world*
G04 foo bar*

قواعد PEG.js المقابلة هي:

  = "G04" _ content:String* _ EOL
  {
    return content
  }

_ "whitespace"
  = [ \t\n\r]*

String
  = value:[a-zA-Z0-9.(): _-]+
  {
    return value.join('') 
  }

EOL
  = [*] _ 

سلوك متوقع:

أتوقع أن ينتج PEG.js مصفوفة مكونة من عنصرين لكل سطر G04 .

السلوك الفعلي:

تم طرح الخطأ التالي:

السطر 2 ، العمود 1: نهاية متوقعة للإدخال ولكن تم العثور على "G".

برمجة

  • PEG.js: نسخة عبر الإنترنت
  • Node.js:
  • NPM أو الغزل:
  • المستعرض:
  • نظام التشغيل:
  • محرر:

ال 22 كومينتر

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

المكان المناسب لطلبات المساعدة هو StackOverflow. أدوات تعقب المشكلات هي ما يستخدمه المطورون لتتبع ما تم كسره ، وما هي مستودعات الحزم التي تستخدمها لقياس جودة المشروع.

Document
  = ClassRow+

ClassID
  = "G04"

ClassTitle
  = title:[^\n]+ { return title.join(''); }

ClassRow = 
  id:ClassID title:ClassTitle '\n'? { return { id, title }; }

بمجرد رؤية هذا ، الرجاء إغلاق هذه المشكلة. شكرا.

image

المفتاح هو تعلم قراءة القواعد النحوية لـ PEG. هذا يقول:

  1. "A Document هو واحد أو أكثر ClassRow s."
  2. "A ClassID هي السلسلة الثابتة "G04" ."
  3. "A ClassTitle هو أي نص يصل إلى السطر الجديد التالي ، ولكن لا يشمله. ستطلق على ذلك" العنوان ". إرجاع العنوان كسلسلة ، وليس مصفوفة من الأحرف."
  4. "A ClassRow هو ClassID متبوعًا بـ ClassRow .

لأن ClassRow ينتهي بسطر جديد ، يبدأ السطر الجديد بشكل فعال في الصف الجديد.

سأستخدم StackOverflow لأسئلتي الإضافية ، شكرًا للإجابة والتوضيحات.

ومع ذلك ، هناك بعض الأشياء التي أود التعبير عنها:

  1. جزء "نوع المشكلة: السؤال: [نعم / لا]" مضلل قليلاً فيما يتعلق بالتوجيه الذي ذكرته. فسرت هذا القسم على أنه "متتبع المشكلات هو المكان المناسب لطرح الأسئلة"
  2. "أمثلة": يمكنني مشاهدة 4 أمثلة لقواعد النحو في المجلد examples/ . ومع ذلك ، IMHO ، لا يوجد أي منها مناسب (بسيط بما فيه الكفاية) للمبتدئين (مثلي ، أو بالنسبة لي) باستثناء "arithmetics.pegjs". أفهم أن PEG.js قيد التطوير (ثقيل؟) ، لذلك من المفهوم تمامًا أنك قد تكون أكثر تركيزًا على مشاكل / سيناريوهات العالم الواقعي المعقدة. لقد توقعت للتو أمثلة خطوة بخطوة من القواعد البسيطة إلى القواعد المعقدة.

يرجى اعتبار ذلك بمثابة ردود فعل الوافد الجديد.

جزء "نوع المشكلة: السؤال: [نعم / لا]" مضلل قليلاً فيما يتعلق بالتوجيه الذي ذكرته. فسرت هذا القسم على أنه "متتبع المشكلات هو المكان المناسب لطرح الأسئلة"

أنا موافق. أريد إزالة هذا النص ، وطلبت ذلك في عام 2017.

سبب وجود النص هو أن ديفيد ، الذي لم يعد يدير هذه المكتبة ، سئم من قول الناس "هذا خطأ" دون النظر إلى المشكلات والعثور على الشخص الآخر الذي اعتقد أن هناك خطأ ، ولم يكن هناك

هذه القضية ، على سبيل المثال ، لديها نصف دزينة من الحيوانات المستنسخة

.

"أمثلة": يمكنني رؤية 4 أمثلة لقواعد النحو في الأمثلة / المجلد. ومع ذلك ، IMHO ، لا يوجد أي منها مناسب (بسيط بما فيه الكفاية) للمبتدئين (مثلي ، أو بالنسبة لي) باستثناء "arithmetics.pegjs".

أنا موافق. أود أن أكتب الكثير منهم.

.

أدرك أن PEG.js قيد التطوير (ثقيل؟)

انها بالتأكيد ليست كذلك.

كان المؤلف الأصلي قد تركها في وضع الخمول لمدة عام ، لذلك طلب مشرفين جدد.

لم يقم المشرف الجديد الذي تولى المسؤولية في مايو 2017 بإصدار بايت واحد من التعليمات البرمجية للفرع الرئيسي.

لقد بدأت عملية التحريض على الاستحواذ ، لأن استخدام المكتبة آخذ في الانخفاض ، والمكتبة لا تدعم جافا سكريبت منذ عام 2014 ، ولم يكن هناك readme على NPM لمدة ثلاث سنوات تقريبًا ، إصلاحات AST أحادية الحرف هي لم يتم الرد عليه لمدة عام في المشكلات ، وقرر المشرف الجديد التخلص من 2.5 عام من فرع الميزات الذي وضع علامة عليه على أنه يغلق الكثير من المشكلات ، واستبدال المكتبة بأكملها بشيء جديد كتبه بنفسه بلغة مختلفة

.

من المفهوم تمامًا أنك قد تكون أكثر تركيزًا على مشاكل / سيناريوهات العالم الحقيقي المعقدة. لقد توقعت للتو أمثلة خطوة بخطوة من القواعد البسيطة إلى القواعد المعقدة.

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

من أجل الوضوح ، أنا لست المؤلف الأصلي. dmajda هو.

من أجل الوضوح ، أنا لست المشرف. لا يوجد مشرف.

جزء "نوع المشكلة: السؤال: [نعم / لا]" مضلل قليلاً فيما يتعلق بالتوجيه الذي ذكرته. فسرت هذا القسم على أنه "متتبع المشكلات هو المكان المناسب لطرح الأسئلة"

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

بشكل عام ، أداة تعقب المشكلات مخصصة للمشكلات وليس الأسئلة

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

العديد من الأسئلة المماثلة مثل هذه بدون إجابة هنا بعد عام أو أكثر. هناك ستة أشخاص يبلغون من العمر ثماني سنوات.

.

لا يمكنك معرفة أن سؤالك مجرد سؤال أو وصف لخلل في المكتبة.

نعم يستطيع. كان يسأل "كيف أفعل هذا؟"

ما لم يكن يعتقد أن المحلل اللغوي لا يستطيع القيام بذلك ، فهذا ليس خطأ أبدًا .

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

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

ليس من قبيل المصادفة أن هذا لم يتم الرد عليه حتى بدأت في وضع علامات على الأشخاص ، كما فعلت نصف دزينة من المشكلات الأخرى حتى الآن

لا يتم اتخاذ قرارات. كنت أقدم له النصيحة.

كما أجبت على سؤاله .

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

لقد رأيت كل مجموعة من استخدامات تعقب المشكلات:

  • لتقارير الأخطاء فقط ، إذا تم توفير منتدى منفصل أو مجموعة بريد (PaperJS ، على سبيل المثال) ،
  • لكل من الأسئلة وتقارير الأخطاء (RactiveJS <3 ، FreeCAD_Assembly3 <3)
  • لشيء لا أحصل عليه في الواقع ، إلى جانب منتدى منفصل ، حيث تولى المشتبه بهم المعتادون المسؤولية ويتحدثون نيابة عن مالكي المشروع ، مما يسبب إحباطًا أكبر من أي شيء آخر (مثل KiCAD (grrr))
  • من أجل لا شيء (Espruino ، AFAIR). يتم إغلاق كل قضية على الفور وتضطر إلى فتح موضوع مناسب في المنتدى الخاص بهم.

لا يوجد خيار واحد أفضل لذلك (لا يوجد أحد يناسب كل حالة) ، لكني أحب استخدام أداة تعقب المشكلات في كل شيء.

لا يمكنك معرفة أن سؤالك مجرد سؤال أو وصف لخلل في المكتبة.

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

أنا موافق. أود أن أكتب الكثير منهم.

أنا أحب أسلوبك في هذه المكتبة. يبدو أنك تهتم كثيرا.

لذلك لا أعتقد أنه يعتقد أن منشئ المحلل اللغوي لم يكن قادرًا على استخدام قاعدة أكثر من مرة

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

ومع ذلك ، لم تكن هناك أنشطة على سؤالي SO ، لذلك جئت وسألت هنا.

يا رجل ، هل مات مجتمع الوتد هناك أيضًا؟

هذا محزن جدا ☹️

حسنًا ، إذا قمت بالفعل بإنشاء منشور SO ، فأنت محق بنسبة 100٪ في المجيء إلى هنا

.

لقد رأيت كل مجموعة من استخدامات تعقب المشكلات:

نعم ، ينتهك الناس أعراف المجتمع في كل وقت

.

أنا موافق. أود أن أكتب الكثير منهم.

أنا أحب أسلوبك في هذه المكتبة. يبدو أنك تهتم كثيرا.

كثيرا جدا. كنت أرغب في المشاركة في نقل الملكية لعام 2017 ، لكن شخصًا ما قدم خطة مع 17 إصدارًا رئيسيًا ، وصدقها المالك القديم

هذا الشخص تخلى عن أول إطلاق سراح قاصر بعد ثلاث سنوات.

الحقيقة هي أن البرامج العامة يصعب حقًا كتابتها. يميل كل شخص أعرفه تقريبًا ، بمن فيهم أنا ، إلى القول "هذا الإصدار ليس جاهزًا حتى يتم الانتهاء من X و Y و Z."

وبعد ذلك ، عندما تنتهي Y ، تدرك أنك بحاجة أيضًا إلى V و W.

وبعد ذلك ، عندما تنتهي Z ، تدرك أنك بحاجة أيضًا إلى S و T و U.

وبعد ذلك عندما ينتهي V ...

هذه هي الطريقة التي بدأ بها 0.11.0 مع نصف دزينة من الميزات في عام 2017 ، وتوفي مع مئات الدمج التي تم وضع علامة عليها بشكل غير صحيح في أداة التعقب في عام 2020

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

ثم غادر دماجدة ، وتوقف كل شيء.

وانتظرنا بصبر لوقت طويل.

لكن الرجل الجديد يسمي هذا الآن مشروعه الهوائي ، ويقول إنه ألغى الأمر برمته لصالح شيء جديد وغير متوافق كتبه. وحتى لو كان يحتوي على نفس AST ونفس الميزات والمزيد ، فلن يكون هناك عشر سنوات من تصحيح أخطاء المجتمع وراءه ، ولن أتمكن من التبديل

وأنت تعلم ، إذا أراد أن يكتب محلل PEG جديدًا أكثر قوة ، حسنًا ، رائع ، تفضل.

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

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

من الواضح أن هناك حاجة ماسة للتغيير

.

أنا فقط لم أجد طريقة لإعادة استخدام نفس القاعدة لأسطر متعددة.

إذا كنت تواجه مشكلة في العثور على إجابات مرة أخرى ، فلا تتردد في الإشارة إليّ شخصيًا

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

بشكل عام ، على الرغم من ذلك ، ما كنت أتمنى أن يقوله لي شخص ما عندما كنت جديدًا هو الشيء الذي قلته تحت التعليق بدءًا من "المفتاح هو تعلم قراءة القواعد النحوية لـ PEG"

بمجرد أن تتعلم قراءة القواعد النحوية لـ PEG في نموذج المناقشة هذا ، يصبح من السهل جدًا التفكير فيها ، وفي هذه المرحلة يصبح من السهل جدًا كتابتها.

إنه مثل مفتاح الإضاءة. لا منحدر. مباشرة من المستحيل إلى السهل

إنه مثل مفتاح الإضاءة. لا منحدر. مباشرة من المستحيل إلى السهل

لقد شجعتني! :) لذلك لا يجب أن أشعر بالغباء الشديد عندما أرى فقط بعض مجموعات قواعد "gibberish" :)

إذا كنت تواجه مشكلة في العثور على إجابات مرة أخرى ، فلا تتردد في الإشارة إليّ شخصيًا

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

من الواضح أن هناك حاجة ماسة للتغيير

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

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

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

لقد شجعتني! :)

أنا سعيد.

.

إنه مثل مفتاح الإضاءة. لا منحدر. مباشرة من المستحيل إلى السهل

لذلك لا ينبغي أن أشعر بالغباء الشديد عندما أرى فقط بعض مجموعات القواعد "المبهمة" :)

ناه. المحللون هم حالة متطرفة لـ "الأمر سخيف ومن ثم فجأة يصبح الأمر سهلاً".

ها هو الراكل - نسبيًا ، الربط سهل جدًا. غالبا ما تكون الآخرين وحشية.

هناك في رأيي أربع مشاكل كبيرة في تعلم الوتد.

  1. لا توجد مواد تمهيدية جيدة التنظيم حقًا
  2. هناك الكثير من الأمثلة من المستوى المتوسط ​​ولكن عليك أن تكون جيدًا في google للعثور عليها
  3. هناك أيضًا أمثلة سيئة ويستغرق الأمر خبرة حتى تتمكن من التعرف عليها
  4. يجب أن تكون قادرًا على "التفكير بهذه الطريقة" ، وهذا لا يحدث على الفور

لقد كنت أفكر في عمل بعض دروس الفيديو. أعتقد أنهم سيجعلون هذا أسهل للفهم.

.

لا أريد إساءة استخدام هذا ، لذلك سيكون الاتصال صعبًا في كل مرة إذا كان الأمر يستحق السؤال

مرة واحدة في الأسبوع جيد. افهم أنني في بعض الأحيان بطيئة في الاستجابة

.

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

بالكاد بدأت. أولاً ، أريد أن أرى ما إذا كان يمكن إنقاذ الريبو الحقيقي

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

.

لذلك أنا فضولي ، لماذا لا تتولى الأمر؟

وأود أن.

في هذا الوقت ، تكون كلمات المرور والمصادقة ذات الصلة في يد شخص واحد ، ولم يستجبوا بعد.

سوف نرى.

.

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

وهذه حالة خاصة

ما تم نشره هو 0.10.0

سمح المشرف الجديد للفرع 0.11.0 أن ينمو بلا حدود لمدة ثلاث سنوات ، ثم قرر إلغاءه ، لصالح 0.12.0 وهو يكتب من الصفر في عزلة

لا يوجد شيء لوضع العلاقات العامة عليه. ما في npm من عام 2017 ، وما في github تحت إشراف المشرف الجديد تم إلغاؤه بعد ثلاث سنوات دون نشره على الإطلاق

.

بعد مرور بعض الوقت ، قرر المؤلف الأصلي مواصلة عمله ، وكنا على ما يرام. هل تعتقد أن هذا حل ممكن؟

إذا كان المسؤول عن الصيانة على استعداد للسماح بذلك ، فهذا هو بالضبط ما أريده.

أشك نوعًا ما في عودة ديفيد ، لكن إذا عاد ، فسيكون ذلك رائعًا

على هذا النحو ، أريد تحويل هذا إلى مشروع قياسي مفتوح المصدر مرة أخرى

ما هي أهم 3 قضايا هنا حسب رأيك؟

أعتقد أن قول أهم القضايا بالنسبة لي هو أمر خطير بعض الشيء ، لأن هناك عددًا لا بأس به من الأشخاص الذين لديهم خبرة أكثر مما أملك في peg ، وإذا قالوا "في الواقع هذا شيء آخر ، "من المحتمل أن أستمع.

تحقيقا لهذه الغاية ، أود أن أحذر من أنه بينما يسعدني التطور هنا ، فإن اهتمامي هنا هو كمشرف .

أعتقد أن هذا شيء لا يحصل عليه الكثير من الناس: ترميز التطوير والصيانة مختلفان حقًا.

  • يريد Development coding أفكارًا جديدة كبيرة وميزات جديدة وأفكارًا براقة جديدة.
  • يريد Maintenance coding إصلاح المشكلات الصغيرة قبل أن تتجمع وتجعل شيئًا جيدًا غير قابل للاستخدام.

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


ومع ذلك ، لأظهر وجهة نظري الشخصية:

1. استعادة إيقاع التحرير المنتظم

لا يجب أن يكون لدى peg.js فرع سحري مرة أخرى. إنه مثل الخاتم الواحد اللعين. يبدو الأمر رائعًا وقويًا ، لكنه لا يرقى إلى العمل اللعين ، وفي النهاية ، أنت جولوم. هذا ليس svn . في صوت ستيف بالمر ، feature branches ، feature branches ، feature branches ، feature branches .

يجب أن يكون الإصدار نتيجة ميزة ، وليس نقطة تجميع لخطة الميزات. نحن لسنا شركة من ثمانينيات القرن الماضي ولا يجب أن نخطط مثل شركة واحدة.

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

لقد كان الناس يعاملون القصر وكأنهم متخصصون. لهذا السبب لم يخرج القاصر أبدًا: لقد تم تعليقه في نفس الفخ السلوكي الذي يعلق على الشركات الكبرى. فقط لا تفعل ذلك سخيفًا ™.

على وجه التحديد ،

  • أعتقد أن الناس فقدوا إيمانهم بأن هذه المكتبة موجودة بعد الآن.
  • ثلاثة أشهر من الإصدارات الأسبوعية ستجعل الناس يمنحونها فرصة أخرى.

    • سيكون من السهل جدًا تحقيق ثلاثة أشهر من الإصدارات الأسبوعية

  • إذا لم نحصل على 0.12.0 فقط ، ولكن أيضًا 0.13.0 - ولاحظت أنني لا أقول ما بداخلها ، وأعتقد أنه لا يهم - فسنحصل احصل على لقطة حقيقية بسعر 1.0.0
  • مجرد المرور عبر العلاقات العامة المفتوحة والمغلقة غير المندمجة هنا ، هناك قدر هائل من القوة والجمال ، مع تعليق من عام 2015 أو نحو ذلك مثل "سأبحث في الأمر لاحقًا". كونك شخصًا كريمًا وإيجاد مساحة لمشاركة السلطة من شأنه أن يساعد peg ليس فقط على الحياة ، ولكن الازدهار
  • تحقيقا لهذه الغاية ، لا أريد أن أكون الفنان. اريد ان اكون القيم.

2. الحصول على الوثائق والاختبارات في مكان مقبول

يتحدث الجميع عن هذا ، لكن آلة الحالة المحدودة للهواية لديّ حاليًا 3500 وحدة اختبار وتغطية توثيقية 100٪ ، لذا خذني بجدية أكبر.

أنا أؤمن بشدة بالاختبار.

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

ولايات ميكرونيزيا الموحدة؟ ناه ، الاختبارات رائعة ، ستلحق بك

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

أعتقد أن جزءًا كبيرًا من مشكلة العمل على peg.js هو أن الاختبار والتوثيق في حالة من الفوضى. أعتقد أن الوقت قد حان لتغيير ذلك.


3. إزالة هراء محب.

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

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

    2. يجب إعادة تأسيس قواعد المجتمع.



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


      2. هذا لا يزال مشروع متصفح بأتمتة يدوية. يجب أن يتغير ذلك


      3. إنه تحد تعليمي كبير للوصول إلى مركز لتعديل README بشكل صحيح. بعد ثلاث سنوات ، لم يقم المشرف الحالي بإيقافه (!) ، ولم يكن لديه المطور الأصلي في الإصدارين الأخيرين





        • هذا هو أسينين. أجزاء من المشروع التي يجب أن تكون تافهة تتعطل لأنها لم تتم بالطريقة العادية البسيطة. يجب أن تتم بالطريقة العادية البسيطة ، لكن هذا يتطلب شخصًا يعرف العقدة ومستعدًا للقيام بعمل ممل.






    3. peg هو المستفيد والضحية للأتمتة الشديدة.



      • من المحتمل أن dmajda لم يتمكن من الوصول إلى المدى الذي فعله بدونه. أنا بالتأكيد لا أستطيع على أشيائي.


      • ومع ذلك ، فهذه هي أتمتة 2011 ، وليست أتمتة 2020


      • إنها أيضًا أتمتة 2013 و 2014 و 2016 و 2018. تنتشر هذه الأشياء عبر zeit ، الآن ، صفحات github ، وحساب yahoo الشخصي ، و gitlab ، والعديد من خدمات التتبع والنشر التلقائي الغريبة ، وربما مجموعة من الأشياء التي لم أجدها بعد


      • إنها مجرد أداة تضرب إما للنجاة من الانهيار أو اللعب بالشيء الجديد الساخن. يؤدي التحديد الدقيق للأداة إلى الاستمرارية حسب التصميم. الفعلي repl ما يقرب من عشر سنوات دائم الآن. يمكن أن يكون كل شيء آخر أيضًا ، إذا تم التعامل مع "يا لامعة" كعلامة حمراء.


      • يجب نقل هذا إلى gh pages و gh actions ، وهو ما يفهمه الجميع ، وتركه بمفرده إلى الأبد



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



      • عندما ساهم طرف ثالث بإصلاح يسمح لمدير حزمة اللغة القياسية بالعمل أيضًا ، رفضه.


      • هذا النوع من السلوك ، بصراحة ، غير مقبول في مشروع مجتمعي. إنه يجعل من الصعب جدًا المساهمة في المكتبة.


      • تم استبدال العديد من هذه الأدوات المتطرفة بأدوات متطرفة أخرى ، لذلك فهو لا يذهب إلى الأشياء التي يعرفها ؛ إنه يجرب الأشياء. في غضون ذلك ، ننتظر الأساسيات ، مثل الأخطاء الإملائية في AST ، مثل الحصول على readme على npm ثابتًا ، أو دمج es6 modules ، لمدة ثلاث سنوات في المرة الواحدة.


      • بصراحة ، في إعادة استرداد 0.12.0 ، ستظهر أشياء مثل الوحدة النمطية في مواد الغزل النمطية. تعمل عناصر بناء David منذ عام 2011. العناصر الجديدة من 2018 قد تم كسرها بالفعل في عام 2020. وداعًا لمزيد من التكنولوجيا المبتذلة.



  • ويمكنني من فضلك الحصول على تصدير ES6

لكنك ستلاحظ أن أياً من هؤلاء لا يتعلق فعلاً بالبرنامج في حد ذاته

لا أعتقد أن البرنامج هنا هو المشكلة

أعتقد أن العملية هي ، وبدرجة أقل ، المشروع

هذه هي ما سأصلحه ، إذا سمح @ futagoza بذلك

يمكن أن تعود هذه المكتبة إلى الحياة في غضون 30 يومًا إذا ابتلعنا فخرنا واخترنا احتياجات المجتمع الكبير للمكتبة على اهتمامات مشروعنا الهوائي.

دع الهواية تكون الشوكة

دع المشرف يبدأ في الصيانة

StoneCypher تعجبني الطاقة :-) اعتدت استخدام pegjs في الماضي (في زمن dmajda) وأعجبني كثيرًا.

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

ثمانية شوكة ستجعلها "تعود إلى الأصل" في وقت ما في المستقبل أو سيكون لها حياتها الخاصة. كلا الخيارين صالح وغرامة IMO.

من فضلك توقف عن ذلك مع هراء "اصنع شوكة". هناك أربعة منهم وأنت لا تعرف ما هم. لن تحفظ الشوكة أيًا من المستهلكين الحاليين في المصب ، ولن تحفظ العلاقات العامة ، ولن تحفظ المشكلات ، ولن تحمل المجتمع ، ولن تكون مرئية.

كان الناس يحاولون ذلك لمدة ثلاث سنوات. انه لا يعمل.

لا تستمر في تقديم هذه النصيحة.

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

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

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

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

عندما قلت "لا تعطي هذه النصيحة مرة أخرى" ، كنت أعنيها أيضًا حقًا.

أحب هذه المحادثة.

StoneCypher يجب أن أختلف معك هنا ، لأنني رأيت العكس تمامًا:

  1. قررت أن أبدأ في تعلم برنامج FreeCAD. ومع ذلك ، كانت هناك مشكلة: "وحدة التجميع" الخاصة بها لم تكن كاملة ، لذلك لم نتمكن تقريبًا من إنشاء تجميعات معقدة مما يجعلها غير مجدية للعمل الاحترافي.
  2. قرر رجل ، realthunder حل هذه المشكلة. كان بحاجة إلى تغيير بعض الخصائص الأساسية لتحقيق الهدف ، والذي بدوره جعل شوكة عمله غير متوافقة مع الفرع السائد. لقد فقد جميع المستخدمين ، كل المجتمع تقريبًا. باستثناء قلة من الناس ، لم يكن لديه مؤيدين (هذا ما أراه). كما لم يكن لديه مستخدمون نشطون ، على حد علمي.
  3. لقد قمت بفحص وثائقه ¹ وعلى الرغم من عام التوقف عن التطوير (كان هذا ما رأيته في ذلك الوقت) قمت بإجراء الرياضيات (الرياضيات الشيقة) وقررت أن أجربها.
  4. طرحت العديد من الأسئلة ¹ وأجابهم بصبر. في غضون ذلك ، قمت بتدوين ملاحظات حول ما تعلمته ، وبالتالي قدمت مادة تمهيدية جيدة.
  5. لم يشجع الناس ¹ على استخدام فرعه بدعوى أنه المؤلف الوحيد والمشرف ولا ينبغي الوثوق بعمله من حيث الاستدامة. أنا فقط تجاهلتهم.
  6. لم يتم دمج طلب السحب الخاص به لفترة طويلة (حوالي عام أو نحو ذلك).

في الآونة الأخيرة ، تم البدء في مراجعة علاقاته العامة. تم إنجاز قدر كبير من العمل ، وفي النهاية أصبح فرعه والتيار الرئيسي متوافقين. في الإصدار القادم ، أعتقد أنه سيتم دمج فرعه في التيار الرئيسي.

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

أحيانًا يكفي شخص واحد لإشعال حريق.

وابتعد عن الطريق

تعارض. دعهم يبقون في الطريق سيجد الدافع الجيد دائمًا طريقه للخروج. إذا لم تستطع ، فذلك لأنه لم يكن جيدًا.

أنا بصراحة ووضوح لا أجمع النصائح حول هذا الموضوع.

هذه المكتبة بحاجة إلى إحياء. أنا آسف إذا لم أشرح ذلك بشكل كافٍ ، لكن الردود التي أتلقاها فشلت في معالجة أي من المخاوف العملية التي أثيرت.

حياة الناس ووظائفهم تركب على هذا.

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات

القضايا ذات الصلة

emmenko picture emmenko  ·  15تعليقات

marek-baranowski picture marek-baranowski  ·  6تعليقات

Coffee2CodeNL picture Coffee2CodeNL  ·  13تعليقات

mattkanwisher picture mattkanwisher  ·  5تعليقات

mreinstein picture mreinstein  ·  12تعليقات