এটিকে এখনই সহজ রাখুন, না ভবিষ্যতের কথা মাথায় রেখে প্রোগ্রাম করবেন?


21

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

আমাকে মাসের শেষের দিকে সংস্করণ 1 আপ এবং চলমান কাজটি দেওয়া হয়েছে। আমি প্রায় অর্ধেক উন্নয়নের মধ্য দিয়ে এসেছি এবং আমি এখন এসে পৌঁছেছি যে দৃষ্টির শেষ আছে।

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

আমি জানি না আমি ভি 2 করব কিনা। এটি আমার হতে পারে বা এটি কোনও সহকর্মী, এমনকি কোনও ইন্টার্নও হতে পারে।

আপনি যদি আমার জুতোতে থাকতেন তবে ভবিষ্যতে আরও সহজ করার জন্য আপনি কি এখনই সময় ব্যয় করবেন, বা আপনি যখন সময়টি আসবেন তখন আপনার সমাধানটি ছেড়ে দিয়ে তা মোকাবেলা করবেন?



নিম্নলিখিত লিঙ্কটি আমার জন্য দরকারী ছিল: elegantcode.com/2012/01/16/marines-vs-boy-scouts
QuanhD

উত্তর:


18

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

যদি নির্ধারিত সময়সীমার মধ্যে পর্যাপ্ত নমনীয়তা থাকে (এটির শব্দে 1 দিন, সুতরাং 2.5 দিনের বর্ধনের লক্ষ্য রাখুন) তবে নিশ্চিত, এগিয়ে যান এবং জানা ভবিষ্যতের জন্য কোড করুন!


1
আরও শক্তিশালী সমাধানটি নথির পরামর্শের জন্য +1। বৈশিষ্ট্যটি যেমন আপনি পরিকল্পনা করেছিলেন ঠিক তেমন প্রয়োগ করা যেতে পারে বা নাও হতে পারে তবে ভবিষ্যতের প্রয়োগকারীকে পরিবর্তনের বিষয়ে আপনার চিন্তাভাবনা সম্পর্কে অবহিত করা ভাল ধারণা।
মাইক পার্টরিজ

2
আমি আজ সকালে ডকুমেন্টটি পড়ার পরে ভি 2 প্রত্যাশার জন্য পদ্ধতি স্টাবগুলি লিখতে শুরু করেছি। আমি মনে করি এটি ভবিষ্যতে কীভাবে খেলবে তা বলার জন্য আমি এটি ছেড়ে দেব এবং কিছু মন্তব্য করব। ধন্যবাদ :)
টায়না

1
বলের দিকে নজর রাখুন .... আমার অভিজ্ঞতা হ'ল ভি 2 এর সাথে নিজেকে কিছু করার জন্য উদ্বিগ্ন করা খারাপ জিনিস যখন আপনার ভি 1 এর সময়সীমা থাকে যখন আপনাকে চোখের মাঝে আঘাত করতে পারে তবে যদি এটি কোনও সময়সীমা না হয় তবে নমনীয় হয়। যদি কোনও উন্নয়ন একটি সময়সীমা মিস করে তবে এটি বিকাশকারীদের দোষ।
mattnz

13

দ্বিতীয় সিস্টেমের প্রভাবের শিকার (তাড়াতাড়ি) পড়া থেকে বিরত থাকুন । প্রয়োগ করার জন্য এখানে কিছু ভাল কৌশল রয়েছে:

  1. ডি-রেলিং সংস্করণ 1 কেবলমাত্র সংস্করণ 2 এ আপনি দেখতে পাচ্ছেন তা অবশ্যই এড়িয়ে চলুন
  2. (যদি সম্ভব হয়) দেখুন যে আপনি স্রষ্টাকে সংস্করণ 2 এর প্রয়োজনীয়তাগুলি পুনরায় কাজ করতে পারেন যা এখন আর বড় পরিবর্তনগুলির প্রয়োজন হবে না - এবং তারপরে পরে পরিকল্পনা করুন, সম্ভবত v3 এর জন্য।
  3. YAGNI কে মাথায় রাখুন , তবে মনে রাখবেন এক্সটেনসিবিলিটির জন্য কোড করার চেষ্টা করুন - যাদু নম্বর, হার্ড-কোডড মানগুলি এড়ানো, ভাল ইউনিট পরীক্ষা বা কোড চুক্তি লিখুন ইত্যাদি good

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

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


তারা সেই বৈশিষ্ট্যে বিবাহিত কিনা তা দেখার জন্য আমি ডিজাইনার এবং পরিচালনার সাথে কথা বলার ধারণাটি পছন্দ করি। আমি এটি একটি অকেজো ঘণ্টা হিসাবে আরও দেখছি যা এটির চেয়ে বেশি কাজের কারণ হয়ে দাঁড়ায় ... তবে তারপরে আমি একটি স্ট্রেসড দেব এটিএম। :)
টায়না

2
+1: ভবিষ্যতের পূর্বাভাস দেওয়ার চেষ্টা করা থেকে বিরত থাকুন। এটি এলে অবাক হবেন।
এস .লট

7

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


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

@ জোয়েলথেরটন: আপনার ব্যবসায়ের জ্ঞান থাকলেও, পরিবর্তনগুলি প্রত্যাশা করা খুব শক্ত, এই পর্যায়ে যে এটি প্রায়শই চেষ্টা করা উপযুক্ত নয় ... কেবল আমার অভিজ্ঞতা।
স্লেসকে দেখুন

@ সালস্ক: কখনও কখনও সম্ভবত, তবে আমার অভিজ্ঞতা উভয় দিকেই ছিল। আমার বর্তমান চাকরিতে, ভাল পরিকল্পনা এবং দূরদৃষ্টি আমাকে এক টন অতিরিক্ত মাথাব্যাথা বাঁচিয়েছে।
জোয়েল ইথারটন

6

এটি যেমন আছে তেমনি ছেড়ে দিন।

বিকাশকারীরা প্রকৃতপক্ষে একটি উত্তরাধিকার প্রকল্পের প্রশংসা করে যা এটি করার কথা বলেছিল তা করে এবং আরও কিছু করে না।

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


"অর্ধ-বাস্তবায়িত কার্যকারিতা নয়" এর জন্য +1। আশা করি আমি আরও উঁচু হতে পারে।
স্লেসকে দেখুন

1

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

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


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

1

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

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

যদি ভি 2 এর প্রয়োজনীয়তা সম্পর্কে কোনও সন্দেহ থাকে তবে YAGNI এর সাথে লেগে থাকুন। এছাড়াও যদি আপনি বর্ণালীটির অপর প্রান্তে থাকেন এবং সেই ক্লায়েন্টগুলির মধ্যে একজন রয়েছেন যারা তাদের ধারণা তৈরির আগে ক্রমাগত আপনাকে স্প্যাম করে থাকেন তবে আপনার ইমেলগুলি প্রতিদিন মাত্র 2 বা 3 বার চেক করুন এবং ক্রিয়াটি নিয়ে তাড়াহুড়ো করবেন না, আপনি অবাক হয়ে যাবেন কতগুলি "সমস্যা" এবং অনুরোধগুলি সেগুলি পড়ার আগেই আপনি অপ্রাসঙ্গিক হয়ে যান।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.