আমি মাঝারি আকারের সি লাইব্রেরী প্রকল্পের জন্য ফাংশন নামকরণের কনভেনশন সম্পর্কে বাস্তববাদী বাস্তব-বিশ্বের পরামর্শ সন্ধানের জন্য সংগ্রাম করছি। আমার লাইব্রেরি প্রকল্পটি তাদের নিজস্ব শিরোনাম সহ কয়েকটি মডিউল এবং সাবমডিউলগুলিতে পৃথক করা হয়েছে এবং শিথিলভাবে একটি ওও স্টাইল অনুসরণ করে (সমস্ত ফাংশন একটি নির্দিষ্ট কাঠামোকে প্রথম যুক্তি হিসাবে চিহ্নিত করে, কোনও গ্লোবাল ইত্যাদি)। এটি আমাদের মতো কিছু রাখে:
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আইএনজি-তে অনেক সাহায্য করে । উদাহরণস্বরূপ আমি যেমন OpenGL সঙ্গে UI 'তে অঙ্কনের জন্য একটি মডিউল আছে, এবং আমি পৃথক আছে.cপ্রতিটি উপাদানের জন্য ফাইল আমি প্রয়োজন (slider.c,indicator.cইত্যাদি)। এই উপাদানগুলির বাস্তবায়নে একটি মূল অঙ্কন ফাংশন হতে পারে কয়েকশ লাইন দীর্ঘ এবং এরstaticমধ্যে বেশ কয়েকটি সহায়ক সহায়ক । তারা ইউআই মডিউল থেকে কিছু বিশুদ্ধ জ্যামিতি ফাংশন কল করে। শব্দটি কি মোটামুটি সাধারণ?