मैं मध्यम आकार के C लाइब्रेरी प्रोजेक्ट के लिए फ़ंक्शन नामकरण परंपराओं पर व्यावहारिक वास्तविक-विश्व सलाह खोजने के लिए संघर्ष कर रहा हूं। मेरी लाइब्रेरी परियोजना को कुछ मॉड्यूल और अपने स्वयं के हेडर के साथ सबमॉडल्स में विभाजित किया गया है, और शिथिल एक OO शैली का अनुसरण करता है (सभी फ़ंक्शन पहले तर्क के रूप में एक निश्चित संरचना लेते हैं, कोई ग्लोबल्स आदि)। यह हमारी तरह कुछ रखी है:
MyLib
- Foo
- foo.h
- foo_internal.h
- some_foo_action.c
- another_foo_action.c
- Baz
- baz.h
- some_baz_action.c
- Bar
- bar.h
- bar_internal.h
- some_bar_action.c
आम तौर पर फ़ंक्शन बहुत अधिक बड़े होते हैं (उदाहरण के लिए) स्टिक some_foo_action
और another_foo_action
एक foo.c
कार्यान्वयन फ़ाइल में, अधिकांश फ़ंक्शन को स्थिर बनाते हैं, और इसे एक दिन कहते हैं।
मैं अपने ग्राहक कार्यक्रमों के साथ अपने उपयोगकर्ताओं के लिए संघर्ष से बचने के लिए पुस्तकालय का निर्माण करते समय अपने आंतरिक ("मॉड्यूल निजी") प्रतीकों को हटाने के साथ सौदा कर सकता हूं, लेकिन सवाल यह है कि मेरे पुस्तकालय में प्रतीकों का नाम कैसे दिया जाए? अब तक मैं कर रहा हूँ:
struct MyLibFoo;
void MyLibFooSomeAction(MyLibFoo *foo, ...);
struct MyLibBar;
void MyLibBarAnAction(MyLibBar *bar, ...);
// Submodule
struct MyLibFooBaz;
void MyLibFooBazAnotherAction(MyLibFooBaz *baz, ...);
लेकिन मैं पागल लंबे प्रतीक नामों (उदाहरणों की तुलना में लंबे समय तक) के साथ समाप्त कर रहा हूं। अगर मैं "नकली नाम स्थान" के साथ नामों को उपसर्ग नहीं करता हूं, तो मॉड्यूल के आंतरिक प्रतीक सभी टकरावों का नाम देते हैं।
नोट: मैं ऊंट / पास्कल मामले आदि के बारे में परवाह नहीं करता, बस खुद के नाम।
git merge
आईएनजी के साथ बहुत मदद करता है । उदाहरण के रूप में मेरे पास ओपनजीएल के साथ यूआई ड्राइंग के लिए एक मॉड्यूल है, और मेरे पास.c
प्रत्येक तत्व के लिए अलग-अलग फाइलें हैं जिनकी मुझे आवश्यकता है (slider.c
,indicator.c
आदि)। इन तत्वों के कार्यान्वयन में एक मुख्य ड्राइंग फ़ंक्शन हो सकता है कि कुछ सौ लाइनें लंबी हों, और उचित संख्या मेंstatic
सहायक हों। वे यूआई मॉड्यूल के भीतर से कुछ शुद्ध ज्यामिति फ़ंक्शन भी कहते हैं। क्या यह ध्वनि काफी सामान्य है?