সলড সফটওয়্যার ডিজাইন বনাম এটি হয়ে গেল?


17

আমরা যে কারুকার্যগুলি তৈরি করি তা শেষ করার জন্য আমাদের হাতে পর্যাপ্ত সময় থাকলে আপনি কীভাবে শক্ত সফটওয়্যার আর্কিটেকচার এবং এটি সম্পন্ন করার জন্য ভাল অগ্রগতি করার মধ্যে একটি ভাল ভারসাম্য বজায় রাখতে পারেন?

আমার ব্যক্তিগত চ্যালেঞ্জ: আজ কার্যকর এবং একই সাথে দীর্ঘমেয়াদী চিন্তাভাবনা সম্পর্কে কীভাবে? এছাড়াও, আপনি এটি করছেন যখন আপনি ঠিক সেই একই পুনরাবৃত্ত নিদর্শনগুলি ব্যবহার করতে চেয়ে বরং আপনি গত 5 বছরে নতুন জিনিস শিখতে চান?

উত্তর:


20

আপনার যত কম অভিজ্ঞতা হবে, তত বেশি সময় আপনি আপ-ফ্রন্ট ডিজাইনের সাথে অপচয় করবেন। ভাল ডিজাইন তৈরি করা এমন কিছু যা আপনি এটি করে শিখবেন এবং তারপরে এটি কীভাবে সক্রিয় হয় তা দেখে / মূল্যায়ন করবেন। কিছু সিদ্ধান্তের সুদূরপ্রসারী কিন্তু অস্পষ্ট প্রভাব। কিছু গেমের পরে আপনি সম্ভবত প্রাথমিক নকশাটিকে বেশ শক্ত করতে সক্ষম হবেন এবং এই পর্যায়ে আরও কিছু সময় বিনিয়োগের জন্য এটি প্রদান করবে।

আমার উদ্দেশ্য: জিনিসগুলি প্রথম স্থানে সম্পন্ন করুন, তবে আপনার সময়সীমার মধ্যে কোন উপাদানগুলি অন্যদের চেয়ে বেশি সমালোচনামূলক তা সনাক্ত করতে আপনার সাধারণ জ্ঞান ব্যবহার করুন এবং সেগুলি আপনার সময়সীমার মধ্যে বেশ সুন্দরভাবে নকশা করুন। উদাহরণস্বরূপ, যদি এআই আপনার গেমের পক্ষে সমালোচনা করে থাকে তবে নিশ্চিত হয়ে নিন যে আপনি পরে এটিকে সহজেই প্রসারিত / পরিবর্তন করতে পারবেন। অথবা, আপনি যদি এমন কোনও উপাদান লিখতে চলেছেন যা আপনি প্রতিটি খেলায় ব্যবহার করবেন তবে এটি পুনরায় ব্যবহারের জন্য ডিজাইন করুন। আপনার সময় ট্র্যাক করুন এবং ডিজাইনিং এ জোর না। একটি নকশা-সময়সীমা সেট করুন এবং তার পরে, আপনার প্রকাশের সময়সীমা পেতে সমস্ত কিছু হ্যাক করা শুরু করুন। তবে নিশ্চিত হয়ে নিন যে কী পয়েন্টগুলি পরে পুনর্নির্মাণের / পুনরায় নকশা করা দরকার এবং সেই জিনিসগুলিকে উন্নত করতে আপনি পরবর্তী গেমটি শুরু করার আগে কিছু সময়ের মধ্যে গণনা করুন, যাতে তারা আপনাকে পিছনে কামড়তে না পারে!

একটি ভাল পরামর্শ: যদি আপনাকে দুটি বিকল্পের মধ্যে বেছে নিতে হয় তবে বিশদ বিবরণে খুব বেশি দেরি করবেন না। বেশিরভাগ ক্ষেত্রে, কোনও "ভাল" বা "খারাপ" থাকে না। কিছু পরিস্থিতিতে, এ আরও ভাল হবে, কিছুতে বি হবে এবং সামগ্রিকভাবে, উভয়ের মধ্যে পার্থক্য সর্বদা সময়ের জন্য উপযুক্ত নয়।

সফ্টওয়্যার বা গেমস ডিজাইনের ক্ষেত্রে অনেক অভিজ্ঞতা রয়েছে, সুতরাং আপনার গবেষণায় আপনার কিছুটা সময় ব্যয় করা নিশ্চিত করুন (যেমন ডিজাইনের উপর একটি বই পড়া, অন্যের অভিজ্ঞতা সম্পর্কে পড়া, আপনার ডিজাইন সম্পর্কে সহকর্মী প্রোগ্রামারদের সাথে কথা বলা ইত্যাদি ... )।


7
+1, ভাল পরামর্শ। নিজেকে কুখ্যাত বিশ্লেষণ প্যারালাইসিস দ্বারা ধরা পড়বেন না কারণ এটি আপনার কোথাও নেই। যেখানে রিফ্যাক্টরিং অতীতের ত্রুটিগুলি সোজা করার একটি শক্তিশালী হাতিয়ার তাই ভুল করতে ভয় পাবেন না।
মাইকেল ক্লেমেন্ট

1
আহা। বিশ্লেষণ পক্ষাঘাত । আমার সবচেয়ে বড় শত্রু! আমার এমন একটি গেম তৈরি করা উচিত যেখানে বিশ্লেষণ প্যারালাইসিস এন্ড-বস হিসাবে পরিবেশন করা হয়। আমি প্রথমে গেম-আর্কিটেকচার ডিজাইনের মাধ্যমে শুরু করছি ... নূ! একপাশে ঠাট্টা: দুর্দান্ত উত্তর এবং ভাল মন্তব্য!
বাম্মজ্যাক

12

মানুষ ভবিষ্যতের ভবিষ্যদ্বাণী করতে ভয়ানক। এটি গেমসের ক্ষেত্রে বিশেষত সত্য, যেখানে প্রয়োজনীয়তাগুলি প্রতিদিনের ভিত্তিতে পরিবর্তিত হতে পারে।

ইয়াজিএনআই নামে একটি নীতি আছে, যার নাম "আপনার দরকার নেই এটি", যা মূলত বলেছে যে আপনার প্রয়োজনের দরকার না হওয়া অবধি আপনার কিছু প্রয়োগ করা উচিত নয় ।

আমি দেখতে পেয়েছি যে অনেকগুলি কাঠামোগত দৃ rig়তার সাথে জর্জরিত হয়ে পড়েছে যা বাস্তবে এর কোনও ব্যবহার করেনি যেহেতু যে বৈশিষ্ট্যগুলি লোকেরা ভেবেছিল যে তারা প্রয়োজন হবে সেগুলি ব্যবহারের আশেপাশে কখনই আসেনি।

আমার ব্যক্তিগত দর্শন হ'ল ডু দ্য সিম্পিলস্ট থিং যা সম্ভবত কাজ করতে পারে । বলা হচ্ছে, গেটিং ইট ডোন এবং হ্যাকিং শিট টুগেদার এর মধ্যে পার্থক্য রয়েছে। একটি উদ্দেশ্য সহ কোড লেখার অর্থ এমন কিছু করা উচিত নয় যা "কোড গন্ধ" উত্সাহিত করে যা সবকিছুকে জনসাধারণের মতো করে তোলে, সব কিছু করে এমন ব্লব ক্লাস করে, বা "খারাপ" কোড চিহ্নিতকারী অন্যান্য কয়েক ডজন কাজ করে।


8

এটি আজ আমার মানসিকতায় সত্যকে মূল্যায়ন করে:

  • আদর্শবাদ উপর বাস্তববাদ
  • (1) এটিকে কাজ করুন (২) তারপরে এটি ঠিক করুন - আপনি যদি পদক্ষেপ 2 ভুলে যান তবে গেমটি শেষ করুন
  • এটিকে মুক্ত কর!
  • অনেক বেশি আপ-ফ্রন্ট ডিজাইনের সময় নষ্ট হবে
  • টিডিডি এবং ক্লিন কোড আরও সহজ, আরও স্থিতিশীল সফ্টওয়্যার ডিজাইনের দিকে পরিচালিত করে

আপনি কি গেম সেটিংয়ে পরীক্ষা-চালিত বিকাশটি আরও বিস্তারিতভাবে বর্ণনা করতে পারেন? কিছু মৌলিক যুক্তি বাদে, আমি এই জাতীয় জিনিসের জন্য খুব ইন্টারেক্টিভ প্রোগ্রামগুলি খুব ভাল-উপযুক্ত হতে দেখিনি। এছাড়াও, আপনি
বিশৃঙ্খলা

2
@ রানিরি যদি আপনি সেই অংশগুলির মধ্যে একটি লাইন আঁকেন যা গ্রাফিক্স হার্ডওয়্যার এবং ব্যবহারকারী ইনপুটটির সাথে ইন্টারফেস করে, পরীক্ষাটি সোজা হয়।
জোনাথন ফিশফফ

@ রানিয়ার ধন্যবাদ, লিঙ্কটি স্থির করুন। আমি সম্মত হচ্ছি যে ইন্টারেক্টিভ সিমুলেশন বা ক্লায়েন্ট-সার্ভার গেমগুলির জন্য প্রথমে পরীক্ষা নিয়ে আসা কঠিন হতে পারে। আপনার ইউনিট পরীক্ষার পাশাপাশি আপনি সম্ভবত কিছু উচ্চ স্তরের কার্যকারিতা পরীক্ষা এবং সম্ভবত কিছু বিরতিতে চলমান প্লেব্যাক সেশনগুলিও পেতে চাইতে পারেন। যাই হোক না কেন, পরীক্ষাগুলি সম্পর্কে প্রথমে চিন্তা করা অনেক পরিস্থিতিতেই পরিশোধের সম্ভাবনা। গেমদেব.স্ট্যাকেক্সেঞ্জার
কোয়েশনস /

5

আমি সফটওয়্যার দ্রুত প্রোটোটাইপিং এর বন্ধু। বিশেষত গেম ডেভলপমেন্টের সময়। জিনিসগুলি শিখতে, পরীক্ষা করতে এবং ব্যবহার করার জন্য এটি ভাল। হার্ডওয়্যার প্রোগ্রামিং বা জটিল অ্যালগরিদমের কাছাকাছি হওয়া আমার পক্ষে সেরা পদ্ধতি।

Theory();
RapidPrototype();
bool bOk = false;
while(!bOk)
{
 Testing();
 LotOfFixing();
 PlayingWith(); 
 bOk= AnalysingResults();
}
FinalFastAndNiceDataStructuresAndCode();

আমার র‌্যাপিড প্রোটোটাইপের সংস্করণটিতে সঠিক প্রোটোটাইপ ক্রাস্ট থাকতে হবে:

  • নির্দেশাবলী এবং সেটআপ ভেরিয়েবল বা ডেটা কনফিগার করতে সর্বোচ্চ বন্ধুত্বপূর্ণ ইনপুট ইন্টারফেস interface
  • স্থির ব্যতিক্রম এবং ত্রুটিগুলি পরিচালনা করে ling
  • অনলাইন ডিবাগার ফাংশন পছন্দ করে তবে আপনার যা প্রয়োজন তা স্তরে।
  • সমস্ত সম্ভাব্য ও প্রয়োজনীয় উপায়ে ফলাফল প্রদর্শন বা ক্যাপচারের জন্য সর্বাধিক বন্ধুত্বপূর্ণ আউটপুট ইন্টারফেস।

সুবিধাদি:

  • আপনি পুরো বিকাশের সময় র‌্যাপিডপ্রোটোটাইপ ক্রাস্ট উন্নত করতে পারেন।
  • আপনি আপনার কোডটি বিভিন্ন উপায়ে দেখতে এবং সেটআপ করতে পারেন।
  • আপনি কেবল তত্ত্ব এবং সমস্যা সমাধান করতে পারেন যা সমাধান করা দরকার focus
  • আপনি প্রকল্পের যে কোনও নতুন অংশ দ্রুত বিকাশ করতে পারবেন এবং চূড়ান্ত জিনিসগুলির সাথে এটি ব্যবহার করে দেখতে পারেন।
  • আপনি আরও দ্রুত কন্টেন্ট ফিলিং ব্যবহার করার জন্য নতুন জিনিস সরবরাহ করতে পারেন এবং এটি পরে চূড়ান্ত করতে পারেন Especially (বিশেষত স্যান্ডবক্সের ক্ষেত্রে)
  • আপনি সহজেই বর্ণনা করতে পারেন এবং অন্য কারও কাছে প্রিপিবল বা সমাধানগুলি প্রদর্শন করতে পারেন। অনলাইন।
  • ফানসিওনাল এবং স্বচ্ছ প্রোটোটাইপ চূড়ান্ত কোডের জন্য তথ্যের সর্বোত্তম উত্স (অন্য কেউ এটি করতে পারে)।

আপনি যদি এটি ভালভাবে করেন তবে আপনার শেষে আপনার পণ্যটির সত্যিকারের ডিবাগ / শিখতে সংস্করণ থাকতে পারে।
আমরা এটি আমাদের প্রকল্পে ব্যবহার করছি এবং আমরা এতে খুশি।


1
এটি বেশ ভাল পরামর্শ, যদিও আমি একটি সময় বা অন্য কোনও ধরণের উত্সকে লুপের সাথে আবদ্ধ করার সুপারিশ করব, যার পরে আপনি কেবল প্রস্থান করুন (0) এবং অন্য প্রোটোটাইপ চেষ্টা করবেন।

@ জো ফ্রেসনিগ - সময় পরিকল্পনাগুলি এনালাইসিংআরসাল্টস () এ অন্তর্ভুক্ত করা যেতে পারে তবে আমি মনে করি আপনি কিছুক্ষণের জন্য র‌্যাপিডপ্রোটোটাইপটি ব্যবহার করতে পারেন এবং এটি পরে শেষ করতে পারেন বা পরিকল্পনাগুলিতে রেখে দিতে পারেন। এরপরে আরও ভাল করে চিরকাল আটকে গেল :)। র‌্যাপিডপ্রোটোটাইপ এ আপনি কার্যকারিতাও অনুকরণ করতে পারেন। এটি প্রীতিটি বিভিন্ন উপায়ে কার্যকর।
সাম্বৌশ

1

কটাক্ষপাত আছে চঞ্চল সফটওয়্যার উন্নয়ন । যদিও এটি কোনও রূপালী বুলেট নয়, এর লক্ষ্য উভয়ই করা (এটি করা এবং শক্ত সফ্টওয়্যার নকশা)।


2
আমি মনে করি না যে এমন কোনও বিকাশ পদ্ধতি রয়েছে যা "এটি সম্পন্ন করার এবং একটি শক্ত সফটওয়্যার ডিজাইনার থাকার" দাবি করে না।

@ জো আমি মনে করি অনেকগুলি "হেভিওয়েট" পদ্ধতি সল্ট সফ্টওয়্যারটির চেয়ে সিওয়াইএ পছন্দ করে। প্রকৃতপক্ষে, আমার অবিচল অভিজ্ঞতার বেশিরভাগ ক্ষেত্রে "এটি সঠিক হওয়ার দরকার নেই, এটি এখনই হওয়া দরকার" যেখানে "চটচটে" বলতে চাইছে "এটি এখনই হওয়া দরকার, তবে আপনি যা কিছু করেন তা করুন আপনি পাশাপাশি যেতে পারেন জিনিস তৈরি করতে পারেন। "
ড্যাশ-টম-ব্যাং

আমি যুক্তি দিয়ে বলব যে কোডটি শক্ত কিনা তা নিয়ে চটজলদি বিকাশের খুব কম প্রভাব রয়েছে। চতুর সারমর্মটি হ'ল আপনার সমস্ত বিকাশের সময়টি কেবলমাত্র গুরুত্বপূর্ণ জিনিসগুলিতে ব্যয় করা। কোডটি সরবরাহের পরেও বিশৃঙ্খলা হতে পারে, কারণ কোডের মান (বা প্রযুক্তিগত debtণের অভাব) খুব কমই সরবরাহের ক্ষেত্রে সাফল্যের পরিমাপ।
ম্যাগনাস ওলফেল্ট
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.