ดังนั้นในความพยายามของฉันในการเขียนโปรแกรมเพื่อผันคำกริยา (อัลกอริทึมไม่ใช่ผ่านชุดข้อมูล) สำหรับภาษาฝรั่งเศสฉันเจอปัญหาเล็กน้อย
อัลกอริธึมที่จะผันคำกริยานั้นง่ายมากสำหรับกรณีของคำกริยา 17- หรือ - และในรูปแบบเฉพาะสำหรับแต่ละกรณี; ดังนั้นการผันคำต่อท้ายสำหรับ 17 ชั้นเรียนเหล่านี้เป็นแบบคงที่และจะ (ไม่น่าจะ) เปลี่ยนแปลงเร็ว ๆ นี้ ตัวอย่างเช่น:
// Verbs #1 : (model: "chanter")
terminations = {
ind_imp: ["ais", "ais", "ait", "ions", "iez", "aient"],
ind_pre: ["e", "es", "e", "ons", "ez", "ent"],
ind_fut: ["erai", "eras", "era", "erons", "erez", "eront"],
participle: ["é", "ant"]
};
เหล่านี้เป็นคำต่อท้ายผันสำหรับชั้นเรียนที่พบมากที่สุดของคำกริยาในภาษาฝรั่งเศส
มีคลาสอื่น ๆ ของคำกริยา (ความผิดปกติ) ซึ่งการผันคำกริยาจะมีแนวโน้มที่จะคงที่ในศตวรรษถัดไปหรือสองปี เนื่องจากพวกมันไม่สม่ำเสมอการผันคำกริยาที่สมบูรณ์ของพวกเขาจะต้องถูกรวมเข้าด้วยกันเพราะพวกเขาไม่สามารถผันจากรูปแบบที่เชื่อถือได้ ตัวอย่างเช่น:
// "être":
forms = {
ind_imp: ["étais", "étais", "était", "étions", "étiez", "étaient"],
ind_pre: ["suis", "es", "est", "sommes", "êtes", "sont"],
ind_fut: ["serai", "seras", "sera", "serons", "serez", "seront"],
participle: ["été", "étant"]
};
ฉันสามารถใส่สิ่งนี้ลงใน XML หรือแม้กระทั่ง JSON และเลิกทำการ deserialize เมื่อจำเป็นต้องใช้ แต่มีจุดหรือไม่ สตริงเหล่านี้เป็นส่วนหนึ่งของภาษาธรรมชาติซึ่งมีการเปลี่ยนแปลง แต่ในอัตราที่ช้า
ความกังวลของฉันคือการทำสิ่งที่ "ถูกต้อง" และกำจัดแหล่งข้อมูลบางอย่างฉันไม่เพียง แต่ทำให้ปัญหาซับซ้อนซึ่งไม่จำเป็นต้องซับซ้อน แต่ฉันยังติดตามย้อนกลับอย่างสมบูรณ์ในเป้าหมายทั้งหมดของ วิธีอัลกอริทึม: อย่าใช้แหล่งข้อมูล! ใน C #, ฉันสามารถสร้างชั้นใต้namespace Verb.Conjugation
(เช่นclass Irregular
) บ้านสตริงเหล่านี้ในชนิดนับหรือสิ่งแทนการบรรจุพวกเขาเข้าไปใน XML class IrregularVerbDeserializer
และการสร้าง
ดังนั้นคำถาม: มันคือการจัดสรรสตริงโค้ดยากที่มีมากไม่น่าจะมีการเปลี่ยนแปลงในช่วงอายุการใช้งานของโปรแกรมประยุกต์หรือไม่ แน่นอนฉันไม่สามารถรับประกันได้ 100% ว่าพวกเขาจะไม่เปลี่ยนแปลง แต่ความเสี่ยงเทียบกับค่าใช้จ่ายเกือบเป็นเรื่องเล็กน้อยที่จะชั่งน้ำหนักในสายตาของฉัน - ฮาร์ดโค้ดเป็นความคิดที่ดีกว่าที่นี่
แก้ไข : สำเนาที่ซ้ำกันเสนอให้ถามถึงวิธีการจัดเก็บสแตติกสตริงจำนวนมากในขณะที่คำถามของฉันคือเมื่อใดที่ฉันควรโค้ดฮาร์สตริงสแตติกเหล่านี้เมื่อใด