প্রকল্পের প্রথম পুনরাবৃত্তিতে কত বিশদ রাখবেন?


15

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

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

  1. সমস্ত ব্যতিক্রম হ্যান্ডলিং এবং এমন যে আপনি জানেন যে আপনার চূড়ান্ত প্রয়োজন হবে সহ গোড়া থেকে উচ্চ মানের কোডটি লিখুন।

  2. শুরু থেকে একটি স্বল্প পরিমাণে কাজ করা মোটামুটি খসড়াটি লিখুন এবং পরে সমস্ত মিনটিয়া পূরণ করতে যান।

সম্পর্কিত প্রশ্ন: প্রকল্পটি শেষ করার জন্য ডিজাইনের "ঝরঝরে" ত্যাগ করা কখন ঠিক হবে?


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

উত্তর:


10

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

শেষ ফলাফল

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

আপনি কি এমন কোনও প্রোগ্রাম লিখছেন যা কেবলমাত্র আপনি চালাবেন এবং আপনি কেবল একবারে নিজেই একবার চালাবেন? তারপরে ব্যতিক্রম নিয়ে বিরক্ত করবেন না। ভারী আর্কিটেকচার নিয়ে বিরক্ত করবেন না। এটি আপনার জন্য যেখানে কাজ করে সেই স্থানে কাজ করুন।

আপনি কীভাবে সেখানে পৌঁছানোর আশা করবেন?

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

আপনি কি অত্যন্ত চটুল বিকাশ করছেন, যেখানে আপনি এক-দু'সপ্তাহ একসাথে কিছু রেখে দিচ্ছেন, যা পরে স্টেকহোল্ডারদের দেখানো হবে, যারা র‌্যাডিকাল রিভিশনগুলির জন্য জিজ্ঞাসা করতে পারে, এবং যেখানে আপনি অনেকগুলি 1-2 টি স্প্রিন্টে পুনরাবৃত্তি করতে সক্ষম হবেন বলে আশা করছেন আপনি লক্ষ্য আঘাত না হওয়া পর্যন্ত? তারপরে আপনি কিছু কাজ করা ভাল, তবে দ্রুত একসাথে ভঙ্গুর হতে পারেন এবং কেবলমাত্র পণ্য প্রয়োজনীয়তা দৃ .় হিসাবে বেল্ট-এবং-সাসপেন্ডার যুক্ত করা adding

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

এখন আপনার নিজের উত্তরটি সন্ধান করুন

বেশিরভাগ ক্ষেত্রে, উত্তরটি কোথাও মাঝখানে থাকবে। আপনার প্রকল্প সম্পর্কে এই উভয় প্রশ্নের উত্তর দিন, এবং এটি আপনাকে প্রাথমিক দিক থেকে নিয়ে যাবে।

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

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


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

1
@ নিউরোনেট: কখনও কখনও "এটি কেবল সবে কাজ করে" দৃust়তা যথেষ্ট। এটি সম্পর্কে চিন্তা করার এক উপায় হ'ল সফ্টওয়্যারটির সাথে কাজ করার সময় যে হতাশার সাথে আপনি প্রয়োজনীয় দৃust়তার সাথে তুলনা করছেন। সফ্টওয়্যারটির সাথে সমস্যাগুলি যত হতাশাব্যঞ্জক, তত বেশি গুরুত্বপূর্ণ যে সেগুলি সমাধান হয়ে যায়।
বার্ট ভ্যান ইনজেন শেহানাউ

11

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

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

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

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


ভাল পয়েন্ট: আমি আমার প্রশ্নে এটি আরও স্পষ্ট করে দিয়েছি যে আমি জানি যে জিনিসগুলি আমি জানি (অন্যান্য প্রকল্পের উপর ভিত্তি করে) শেষ পর্যন্ত আমার একটি সমাপ্ত প্রকল্পে প্রয়োজন হবে।
নিউরনেট

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

4

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

প্রথমে আপনি সিস্টেমটি যা করতে চান তা নিয়ে কাজ করুন এবং পৃথক প্রতিটি বৈশিষ্ট্য নোট করুন। এটি পুরো ব্যবহারকারীর স্টোরি বোর্ডের মতো পরিশীলিত বা আপনার সামনে সামান্য কাগজের টুকরোতে কয়েকটি বুলেট পয়েন্ট হিসাবে সরল হতে পারে। তবে আপনি কী করতে চান তা জেনে রাখা গুরুত্বপূর্ণ ।

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

এই সমস্ত বৈশিষ্ট্যগুলির মধ্যে কর্মসূচীর মূল কাজগুলি কী - মূল বৈশিষ্ট্যগুলি কী করা উচিত out

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

মূল বৈশিষ্ট্যগুলি প্রয়োগ করা হয়ে গেলে, আমি সাধারণত সিস্টেমটিকে যতটা সম্ভব পরিবেশের পরিবেশের কাছে ব্যবহার করার চেষ্টা করি। এটি আপনাকে ক) আপনি যে কোনও বাগগুলি আগে মিস করেছেন এবং খ) পরবর্তী বৈশিষ্ট্যগুলির অগ্রাধিকারের একটি ভাল ধারণা পাবেন gives

তারপরে আপনি প্রয়োজনীয় বৈশিষ্ট্যগুলি যেমন প্রয়োগ করেন তেমন চালিয়ে যেতে পারেন।

কোড মানের বনাম বৈশিষ্ট্য

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

এখন, ব্যতিক্রম পরিচালনা সম্পর্কে কি?

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

তবে, ব্যাতিক্রমের জন্য ন্যূনতম প্রয়োজনীয়তা রয়েছে: আউটপুটটি যতই কুৎসিত হোক না কেন - কিছু নিশ্চিত হয়ে থাকলে ব্যবহারকারীকে অবহিত করা হয়েছে তা নিশ্চিত করুন। কোথাও ব্যতিক্রম গিলবেন না।


1
"আমি সাধারণত এই ধারণা নিয়ে চলি যে আমি এতটাই ব্যস্ত থাকব যে ফিচারটিতে ফিরে আসার এবং ঠিক করার মতো সময় আমার আর আসবে না।" এটাই আমার উদ্বেগ যেটি আমার উল্লেখ করা উচিত ছিল। আপনি এটি উল্লেখ করেছেন এবং সহায়ক পোস্টের জন্য খুশী।
নিউরোনেট
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.