তারপরে একটি গ্রিনলাইট রয়েছে এবং জিনিসগুলি পরিষ্কার করার প্রয়াসে কেউ গেমম্যানেজার লিখেছেন। সম্ভবত গেমস্টেটের একগুচ্ছ রাখা, সম্ভবত কয়েকটি গেমবজেক্টগুলি সঞ্চয় করা, বড় কিছু নয় really একটি সুন্দর, ছোট, পরিচালক।
আপনি জানেন, আমি যখন এটি পড়ছিলাম, তখন আমার মাথায় অ্যালার্মগুলি খুব কম ছিল। "গেমম্যানেজার" নামের একটি বস্তু কখনও সুন্দর বা সামান্য হতে পারে না। এবং কোডটি পরিষ্কার করার জন্য কেউ এই কাজ করেছে? এর আগে কেমন লাগছিল? ঠিক আছে, কৌতুকগুলি একদিকে রাখুন: শ্রেণীর নাম ক্লাস কী করে তার একটি স্পষ্ট ইঙ্গিত হওয়া উচিত এবং এটি একটি জিনিস হওয়া উচিত (ওরফে: একক দায়িত্বের নীতি )।
এছাড়াও, আপনি এখনও গেমম্যানেজারের মতো কোনও অবজেক্টের সাথে শেষ করতে পারেন, তবে স্পষ্টতই এটি একটি খুব উচ্চ স্তরে উপস্থিত রয়েছে এবং এটি উচ্চ স্তরের কাজগুলির সাথে নিজেকে উদ্বেগ করা উচিত। গেম অবজেক্টের একটি ক্যাটালগ বজায় রাখা? সম্ভবত। গেম অবজেক্টের মধ্যে যোগাযোগ সহজতর? অবশ্যই। বস্তুর মধ্যে সংঘর্ষ গণনা? না! এই কারণেই নাম পরিচালককে অস্বীকার করা হয় - এটি খুব বিস্তৃত এবং সেই ব্যানারটির অধীনে অনেক অপব্যবহারের অনুমতি দেয়।
শ্রেণীর আকারগুলিতে থাম্বের একটি দ্রুত নিয়ম: আপনি যদি প্রতি ক্লাসে কয়েকশ লাইনের কোডের মধ্যে ছুটে চলেছেন তবে কিছু ভুল হতে শুরু করছে। অতিমাত্রায় হতাশ না হয়ে কিছু বলুন, 300 এলওসি আমার কাছে একটি কোড গন্ধ এবং আপনি যদি 1000 এরও বেশি হয়ে যাচ্ছেন তবে সতর্কবার্তা বেলগুলি বন্ধ হওয়া উচিত। এই বিশ্বাস করে যে কোনওভাবে 1000 লাইন কোড প্রতিটি 250 এর 250 টির মতো সুগঠিত ক্লাসের চেয়ে বোঝা সহজ, আপনি নিজেকে বিভ্রান্ত করছেন।
সময় যখন সমস্যা হয়ে দাঁড়ায়, কোনও পৃথক শ্রেণি লেখার উপায় নেই, বা এই জায়ান্ট ম্যানেজারকে সাব-ম্যানেজারগুলিতে বিভক্ত করবেন।
আমি মনে করি এটি কেবল কারণ সমস্যাটি এমন জায়গায় পৌঁছানোর অনুমতি দেওয়া হয়েছে যেখানে সবকিছুই একটি সম্পূর্ণ গন্ডগোল। রিফ্যাক্টরিংয়ের অনুশীলনটি আপনি যা খুঁজছেন তা হ'ল - আপনাকে সামান্য পরিমাণে বর্ধনের ক্ষেত্রে কোডটির নকশাটি ক্রমাগত উন্নত করতে হবে ।
এটি যাতে না ঘটে তার জন্য আপনি কী পরামর্শ দেবেন?
সমস্যাটি কোনও প্রযুক্তিগত সমস্যা নয়, সুতরাং এটির জন্য আপনার প্রযুক্তিগত সংশোধন করা উচিত নয়। সমস্যাটি হ'ল: আপনার দলে একচেটিয়া কোডের টুকরো তৈরি করার প্রবণতা রয়েছে এবং এটি বিশ্বাস করে যে এটি মাঝারি / দীর্ঘ মেয়াদে এটির মতো কাজ করা কোনওভাবে উপকারী। এটিও মনে হয় যে দলে একটি শক্তিশালী আর্কিটেকচারাল নেতৃত্বের অভাব রয়েছে, যারা গেমটির আর্কিটেকচারকে চালিত করবে (বা কমপক্ষে, এই ব্যক্তিটি এই কাজটি সম্পাদন করতে খুব ব্যস্ত)। মূলত, বাইরে যাওয়ার একমাত্র উপায় হ'ল দলের সদস্যরা এই চিন্তাকে ভুল বলে স্বীকৃতি দেবেন। এটি কারও পক্ষ নেয় না। পণ্যের গুণমান খারাপ হবে, এবং দলটি আরও আরও অনেক রাত নির্ধারণ করতে ব্যয় করবে।
সুসংবাদটি হ'ল ক্লিন কোড লেখার তাত্ক্ষণিক, স্পষ্টত সুবিধাগুলি এতটাই দুর্দান্ত যে প্রায় সমস্ত বিকাশকারী তাদের সুবিধাগুলি খুব দ্রুত উপলব্ধি করে। কিছুক্ষণ এভাবে দলকে কাজ করতে রাজি করুন, ফলাফলগুলি বাকী অংশটি করবে।
কঠিন অংশটি হ'ল খারাপ কোড গঠনের জন্য অনুভূতি বিকাশ করা (এবং দ্রুত আরও ভাল নকশা নিয়ে আসার জন্য একটি প্রতিভা) বিকাশের ক্ষেত্রে শেখার আরও একটি কঠিন দক্ষতা। আমার পরামর্শ এই আশেপাশে জড়িত যে আপনার দলে পর্যাপ্ত সিনিয়র এমন কেউ আছেন যে এটি করতে পারে - এইভাবে লোককে বোঝানো অনেক সহজ।
সম্পাদনা করুন - আরও কিছু তথ্য:
সাধারণভাবে, আমি মনে করি না যে আপনার সমস্যা গেম বিকাশের মধ্যে সীমাবদ্ধ। মূলত এটি একটি সফ্টওয়্যার ইঞ্জিনিয়ারিং সমস্যা, সেজন্য আমার মন্তব্যগুলি comments গেম ডেভেলপমেন্ট ইন্ডাস্ট্রির প্রকৃতি যা ভিন্ন হতে পারে তা অন্যান্য ফলাফলের চেয়ে আরও বেশি ফলাফল এবং সময়সীমা ভিত্তিক কিনা, আমি নিশ্চিত নই।
বিশেষত গেমের বিকাশের জন্য, "বিশেষত গেমের আর্কিটেকচার" টিপস সম্পর্কিত স্ট্যাকওভারফ্লো সম্পর্কে এই প্রশ্নের গৃহীত উত্তর বলে:
অবজেক্ট ওরিয়েন্টেড ডিজাইনের সলিড নীতিগুলি অনুসরণ করুন ....
এটি মূলত আমি যা বলছি তা হ'ল। আমি যখন চাপের মধ্যে থাকি তখন আমি নিজেও কোডের বড় টুকরো লিখতে দেখি, তবে আমি এটি আমার মাথায় illedেলে দিয়েছি যে এটি প্রযুক্তিগত debtণ। আমার পক্ষে যা ভালভাবে কাজ করতে ঝোঁক, তা হল দিনের প্রথমার্ধ (বা তিন চতুর্থাংশ) একটি বৃহত পরিমাণে মাঝারি মানের কোড উত্পাদন করে ব্যয় করা, এবং তারপরে বসে বসে কিছুক্ষণ চিন্তা করা; কোডটি কীভাবে আরও উন্নত করা যায় সে সম্পর্কে আমার মাথায় বা কাগজে / হোয়াইটবোর্ডে কিছুটা নকশা করুন। প্রায়শই আমি পুনরাবৃত্তিমূলক কোডটি লক্ষ্য করি এবং পঠনযোগ্যতার উন্নতি করার সাথে সাথে সমস্ত বিষয়গুলি ভেঙে দিয়ে কোডের মোট লাইনগুলি হ্রাস করতে সক্ষম হয়েছি। এবার বিনিয়োগ করা নিজের জন্য এত তাড়াতাড়ি অর্থ প্রদান করে, একে একে "বিনিয়োগ" বলে নির্বোধ শোনায় - প্রায়শই আমি এমন বাগগুলি বাছাই করি যা হয়ত আমার অর্ধেক দিন (এক সপ্তাহ পরে) নষ্ট করে দিতে পারত, যদি আমি এটি চালিয়ে যেতে দিতাম।
- আপনি যে কোডগুলি দিন ঠিক সেদিনেই জিনিসগুলি ঠিক করুন।
- আপনি কয়েক ঘন্টা মধ্যে খুশি হবে।
উপরে বিশ্বাস করা আসলেই কঠিন; আমি আমার নিজের কাজের জন্য এটি পরিচালনা করতে পেরেছি কারণ আমি বারবার, প্রভাবগুলির অভিজ্ঞতা পেয়েছি। তবুও, যখন আমি আরও মন্থন করছিলাম তখন কোড ফিক্সিংয়ের পক্ষে ন্যায্যতা প্রমাণ করা আমার পক্ষে এখনও কঠিন ... সুতরাং আমি নিশ্চিতভাবে বুঝতে পারি আপনি কোথা থেকে আসছেন। দুর্ভাগ্যক্রমে, এই পরামর্শ সম্ভবত খুব সাধারণ, এবং করা সহজ নয়। আমি দৃ strongly়ভাবে এটি বিশ্বাস করি! :)
আপনার নির্দিষ্ট উদাহরণের উত্তর দিতে:
চাচা ববসের পরিষ্কার কোডটি ভাল মানের কোডটি কেমন তা সংক্ষিপ্ত করার জন্য একটি আশ্চর্যজনক কাজ করে does আমি এর প্রায় সমস্ত বিষয়বস্তুর সাথে একমত হতে পারি। সুতরাং, যখন আমি আপনার 30,000 এলওসি ব্যবস্থাপক শ্রেণীর উদাহরণ বিবেচনা করি, তখন আমি "ভাল কারণ" অংশের সাথে সত্যই একমত হতে পারি না। আমি আপত্তিকর শব্দটি বলতে চাই না, তবে সেভাবে ভাবলে সমস্যা দেখা দেবে। একটি একক ফাইলে এত কোড থাকার কোনও ভাল কারণ নেই - এটি প্রায় 1000 পৃষ্ঠার পাঠ্য! লোকালীর যে কোনও সুবিধা (কার্যকর করার গতি বা ডিজাইনের "সরলতা") তত্ক্ষণাত বিকাশকারীরা সেই মনস্ট্রিসিটি নেভিগেট করার চেষ্টা করার সাথে সাথে পুরোপুরি বঞ্চিত হয়ে যাবে, এবং এটি আমরা মার্জ করার বিষয়ে আলোচনা করার আগেই ইত্যাদি even
আপনি যদি নিশ্চিত না হন তবে আমার সর্বোত্তম পরামর্শটি হ'ল উপরের বইটির একটি অনুলিপি গ্রহণ করা এবং এটিতে নজর দেওয়া উচিত। এই ধরণের চিন্তাভাবনা প্রয়োগ করে লোকেরা স্বেচ্ছায় পরিষ্কার, স্ব-বর্ণনামূলক কোড তৈরি করে, যা সুন্দরভাবে কাঠামোযুক্ত।