কোন প্রকল্পে উন্নয়ন শুরু করার আগে কী পরিকল্পনা করবেন? [বন্ধ]


17

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

যাইহোক, আমি মনে করি যদি আমি চশমাগুলির উপর দিয়ে গিয়ে পরিকল্পনা করতাম যে কোডটি কোড করার আগে সিস্টেমটি কীভাবে কাজ করবে, উদাহরণস্বরূপ মূল উপাদানগুলি কী কী, তারা কীভাবে ইন্টারঅ্যাক্ট করতে চলেছে ইত্যাদি I'm আমি কেবল আমার ঠিক কী পরিকল্পনা করা উচিত তা নিশ্চিত নয়।

আমি যা চাইছি তার আরও ভাল ধারণা দেওয়ার জন্য, আমার কীভাবে হওয়া উচিত-

ক) প্রকল্পটি উপাদানগুলিতে ভাগ করুন,

খ) তাদের মিথস্ক্রিয়া পরিকল্পনা করুন, উদাহরণস্বরূপ, আমার ক্লাস ডায়াগ্রামগুলি করা উচিত, ইউনিট পরীক্ষা লিখতে হবে, ইত্যাদি?

কোন ধারনা?


"আমার ঠিক কী পরিকল্পনা করা উচিত তা আমি নিশ্চিত নই"? কেন না? আপনি নির্দিষ্ট বিষয় তালিকাভুক্ত করেছেন। আপনার তালিকাভুক্ত বিষয়গুলির মধ্যে কী ভুল। "মূল উপাদানগুলি কী কী, তারা কীভাবে ইন্টারঅ্যাক্ট করতে চলেছে" এতে কী সমস্যা আছে? যেহেতু সেগুলি সম্পর্কে আপনি উদ্বিগ্ন তাই কেন শুরু করবেন না?
এস .লট

4
আপনার ক্লায়েন্ট শীঘ্রই বা পরে চশমা পরিবর্তন করবে। মডিউল ইন্টারঅ্যাকশনগুলি এমনভাবে পরিকল্পনা করুন যাতে পরিবর্তনগুলি আপনার পুরো কোড বেসকে গোলমেলে না ফেলে।
রেনো

উত্তর:


23

যখন আপনি কোনও নতুন প্রকল্প শুরু করার সুযোগ পেয়েছেন তখন আপনার একটি ফাঁকা ক্যানভাস থাকে - যা একই সাথে উত্তেজনাপূর্ণ এবং দুশ্চরিত্র উভয়। আমি পুনরাবৃত্তিতে কাজ করি এবং এইভাবেই আমি কাজটি ভাগ করি:

  • প্রকল্পের লক্ষ্যগুলি দিয়ে শুরু করুন। লক্ষ্যগুলি অগত্যা সর্বাধিক অস্পষ্ট, তবে ক্লায়েন্ট বা ব্যবহারকারীর সফ্টওয়্যারটির সাথে কী করার ইচ্ছা রয়েছে তা আপনাকে ফোকাস করতে সহায়তা করে। দিনের শেষে, আপনি সেই লক্ষ্যগুলি সন্তুষ্ট করতে চান - এমনকি এর অর্থ যদি কিছু সত্যিই দুর্দান্ত বৈশিষ্ট্যগুলি বাদ দেওয়া হয়।
  • তারপরে আমি অ্যাপ্লিকেশনটিকে এর সাবডোমেনগুলিতে ভেঙে ফেলা শুরু করি। এটি করার জন্য সম্ভবত এক শতাধিক ভিন্ন উপায় রয়েছে, যার কারণে আমরা প্রকল্পের লক্ষ্যগুলি দিয়ে শুরু করি। আমরা অ্যাপ্লিকেশনটিকে কিছু সম্পর্কিত সাবসিস্টেমগুলিতে ভাঙতে চাই যা এই লক্ষ্যগুলিকে সমর্থন করে। এটি আমাদের পরবর্তী কাজগুলিতে ফোকাস করতে সহায়তা করে।
  • কীভাবে এবং কখন সাবসিস্টেমগুলি ইন্টারঅ্যাক্ট করতে হবে তা সনাক্ত করুন। আমরা সাবসিস্ট্রিগুলির একটি সমন্বিত সিস্টেম আছে তা নিশ্চিত করতে কেবল উচ্চ স্তরের তথ্য বিশদটি আমরা পরিচালনা করছি না। আপনার এ সম্পর্কিত একটি সাধারণ ধারণা প্রয়োজন যাতে আপনি প্রকল্পের সামগ্রিক লক্ষ্যগুলিকে সমর্থন করে এমন বিশদটি বের করতে পারেন।
  • এই মুহুর্তে আমি যে সাবসিস্টেমটিতে কাজ করছি তার জন্য কেবলমাত্র বিশদ সরবরাহ করুন (আপনার বর্তমান কৌশলের অনুরূপ)। আমি ইতিমধ্যে জানি যে এই উপ-সিস্টেমটি কীভাবে অন্যান্য উপ-সিস্টেমের সাথে ইন্টারঅ্যাক্ট করার প্রয়োজন, তবে আমাকে বেশ কয়েকটি বিকল্পের বাইরে কাজ করার প্রয়োজন হতে পারে যাতে এটি সর্বাধিক উপলব্ধি করে। প্রতিটি উপ-সিস্টেম একটি ইন্টারফেস দ্বারা পৃথক করা হয়, তাই আমি সম্পূর্ণরূপে সিস্টেমটি না ভেঙে বাস্তবায়নটিকে যতটা সম্ভব সামঞ্জস্য করতে পারি।
  • অন্যান্য বর্তমান সিস্টেমে কীভাবে এটি প্রয়োগ করা হয় তার তুলনায় আমার বর্তমান সাবসিস্টেমগুলিতে কীভাবে জিনিসগুলি প্রয়োগ করা হয় তা পর্যালোচনা করুন। প্রতিটি দৃষ্টিভঙ্গি যা সামঞ্জস্যপূর্ণ নয় তা ব্যবহারকারীকে শিখতে হবে। আমরা যদি একেবারে নতুন ধারণার কথা বলি তবে এটি ঠিক আছে। ব্যবহারের স্বার্থে আমরা অলসতার কারণে উপস্থিত তথ্যগুলি মুছে ফেলার 5 টি ভিন্ন উপায় চাই না। একই ব্যবহারকারীর ইন্টারফেস উপাদানগুলি পুনরায় ব্যবহার করা অ্যাপ্লিকেশনটিকে আরও স্বজ্ঞাত করার দ্রুততম উপায়। তিনটি ধারণা শেখা 20 শেখার চেয়ে অনেক সহজ।

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


"এটি করার জন্য সম্ভবত আরও একশ ভিন্ন উপায় রয়েছে, এজন্য আমরা প্রকল্পের লক্ষ্যগুলি দিয়ে শুরু করি।" আমি মনে করি আপনি সম্ভবত সম্ভাব্য লক্ষ্যগুলি মাপসই প্রযোজ্য ডিজাইনের ধরণগুলি দিয়ে শুরু করুন। আপনি 'লক্ষ্য' নিয়ে ভাবেন বলে আমি মনে করি না।
এস.লট

1
আমি যে বেশিরভাগ ক্লায়েন্টে প্রবেশ করেছি সেগুলি তাদের লক্ষ্যগুলি বেশ ভালভাবে প্রকাশ করতে পারে তবে অন্য সব কিছুর সাথে তাদের কঠিন সময় কাটাতে হয়। মূলত, আমি নিশ্চিত করতে চাই যে আমার নকশা তাদের যা প্রয়োজন তা পূরণ করে। যখন প্রকল্পের লক্ষ্য এবং ক্লায়েন্টের লক্ষ্যগুলি একত্রিত হয় তখন এটি সত্যই জিনিসগুলিতে সহায়তা করে। আরও কংক্রিট হওয়ার জন্য, হ্যাঁ আমি আমার নকশাটি পরিমার্জন করছি এবং সমস্যাটি ভেঙে দেওয়ার উপায়টি বেছে নিচ্ছি যাতে সমস্ত কিছু লাইন হয়ে যায়।
বেরিন লরিটস

8

আমি মনে করি আমি যদি চশমাটি দিয়ে যাই তবে ভাল হত

ঠিক। ভাল ধারণা.

আমি কোড করার আগে সিস্টেমটি কীভাবে কাজ করবে তা পরিকল্পনা করেছিল।

ভাল. আরও কিছু করুন।

প্রধান উপাদানগুলি কী,

চমৎকার।

তারা কীভাবে ইন্টারঅ্যাক্ট করতে চলেছে,

সঠিক।

আমার ঠিক কী পরিকল্পনা করা উচিত তা আমি নিশ্চিত নই।

আপনি ইতিমধ্যে একগুচ্ছ জিনিস তালিকাভুক্ত করেছেন যখন আপনি কিভাবে নিশ্চিত হতে পারবেন না ? সেগুলি যদি আপনার উদ্বেগের বিষয় হয় তবে কেন কেবল সেই বিষয়গুলিতে মনোযোগ দেবেন না?

4 + 1 ভিউ মডেলটিতে পড়ুন: http://en.wikedia.org/wiki/4%2B1_ আর্কিটেকচারাল_ভিউ_মডেল

জাচম্যান কাঠামোর উপর পড়ুন: http://en.wikedia.org/wiki/Zachman_Framework

আপনার পরিকল্পনা করা দরকার এটি।

আমি কীভাবে ক) প্রকল্পটি উপাদানগুলিতে ভাগ করব,

অন্যান্য, অনুরূপ প্রকল্পের জন্য বহুল ব্যবহৃত-গৃহীত নকশা নিদর্শনগুলি ব্যবহার করুন।

সন্দেহ হলে, ধারণাগুলির জন্য জে 2 ই ই ব্লুপ্রিন্টগুলি পড়ুন।

http://www.oracle.com/technetwork/java/javaee/blueprints/index.html

আমার কীভাবে খ) তাদের মিথস্ক্রিয়া পরিকল্পনা করা উচিত, উদাহরণস্বরূপ আমার ক্লাস ডায়াগ্রামগুলি করা উচিত, ইউনিট পরীক্ষা লিখতে হবে ইত্যাদি ইত্যাদি?

হ্যাঁ. ভাল ধারণা, সব।


4

করণীয় সর্বাধিক গুরুত্বপূর্ণ বিষয়: চশমাগুলি পর্যালোচনা করুন, আরও পরিমার্জিত চশমা পেতে গ্রাহকের সাথে যোগাযোগ করুন।

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

সুতরাং, আপনার চশমাগুলি পর্যালোচনা করা উচিত, গ্রাহকের সাথে সাক্ষাত্কার নেওয়া উচিত এবং এটি সত্যই তার প্রয়োজন এবং চান এবং এটি সামর্থ্য রাখেন ইত্যাদি if

পরীক্ষা / ব্যবহারের ক্ষেত্রে বিকাশ এবং গ্রাহকের সাথে পর্যালোচনা। যদি কোনও প্রয়োজন পরীক্ষণযোগ্য না হয় তবে এটিকে ফেলে দিন।

নকশাটি বিকাশ করুন এবং নিশ্চিত করুন যে সমস্ত টুকরা সঠিকভাবে কাজ করে যে এটি তাত্ত্বিকভাবে আপনার প্রয়োজন অনুসারে কাজ করবে।

একটি আর্কিটেকচার প্রোটোটাইপ বিকাশ করুন যা প্রতিটি স্তরে ব্যবহৃত সমস্ত প্রযুক্তির পরীক্ষা করে তবে কার্যকারিতা উপেক্ষা করে। আপনি আর্কিটেকচার পরীক্ষা করছেন, কার্যকরী স্পেসিফিকেশন নয়। ভুল আর্কিটেকচারের অর্থ হ'ল আপনাকে সবকিছু পুনর্লিখন করতে হবে, সুতরাং সঠিক আর্কিটেকচারটি পাওয়া গুরুত্বপূর্ণ। গতি, দক্ষতা, সুরক্ষা ইত্যাদির জন্য এটি আপনার প্রয়োজনীয় সংস্থাগুলি পূরণ করতে পারে তা নিশ্চিত করুন Make


3

কোডিং শুরু করার আগে আপনি অবশ্যই কিছু নকশা রাখতে চান।

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

তারপরে আমি 1 টি বৈশিষ্ট্য উপরে থেকে নীচে তৈরি করি যাতে আপনি কোনও কিছু পুরোপুরি বাস্তবায়ন করেছেন।

তারপরে সেখান থেকে যান।


0

সব

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


3
-1 আমি উত্তরটি সহায়ক বলে মনে করি না এবং বেশিরভাগ ক্ষেত্রে 'সবকিছু' অবশ্যই যাওয়ার উপায় নয়।
কিসডিজক
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.