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


19

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

কোড বজায় রাখতে এটি ব্যাথা করে।

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

আমার সহকর্মীদের কাছে একই রকম সমস্যা আছে বলে মনে হয় না।

  1. তারা আমার চেয়ে অনেক দ্রুত লিখিত পদ্ধতিগুলি ডিবাগ করতে পরিচালিত করে।
  2. কোডবেস পরিবর্তন করার সময় তারা আমার চেয়ে কম বাগ প্রবর্তন করে।
  3. কোড পরিবর্তন করার জন্য তাদের প্রয়োজনীয় সমস্ত কিছু খুব ভাল মনে আছে বলে মনে হয়, এমনকি যখন বিশটি ফাইলগুলিতে কয়েক হাজার লাইনের কোড পড়ার প্রয়োজন হয়।
  4. তারা ইমেল, ফোন রিং, চারপাশে কথা বলার লোক এবং অন্যান্য লোকেরা তাদের জিজ্ঞাসা জিজ্ঞাসা করে বিরক্ত বলে মনে হয় না।
  5. আমরা টিএফএস ব্যবহার করার পরে আমাদের কাছে ইতিমধ্যে থাকা বাগ ট্র্যাকিং সিস্টেমটি তারা ব্যবহার করতে চায় না। তারা তাদের করা উচিত প্রতিটি কাজ মনে রাখতে পছন্দ করে।

কেন এমন হয়? দীর্ঘ সময় ধরে খারাপভাবে লিখিত কোডের সাথে কাজ করার সময় কি কোনও বিশেষ দক্ষতা বিকাশকারীরা অর্জন করে? খারাপ কোডের সাথে আমার অভিজ্ঞতার অভাব কি এই সমস্যাগুলি / অনুভূতিগুলিতে অবদান রাখে? আমার স্মৃতি নিয়ে কি সমস্যা আছে?


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

1
এ কারণেই এনক্যাপসুলেশন বিদ্যমান।
রবার্ট হার্ভে

উত্তর:


26

হ্যাঁ, কাঠামোগত লোকেরা আনস্ট্রাকচার্ড কোড / পরিবেশ দ্বারা প্রভাবিত হওয়া স্বাভাবিক normal আপনার সহকর্মীরা সম্ভবত সমস্ত ব্যাকগ্রাউন্ড গোলমাল ভাল ফিল্টার করছে। মাইগ্রেনের ভুক্তভোগী হিসাবে আমি জানি আমার মাইগ্রেন যখন আসবে তখন আমার পরিবেশ ফিল্টার করার দক্ষতা হ্রাস পায়। মানুষ বিভিন্ন রকম হয়।

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

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

হাজার লাইনের পদ্ধতিতে হারিয়ে যাওয়া স্বাভাবিক। এটি কোনও ভাল ভাঁজ সম্পাদকের সাথে আক্রমণ করে এবং বিভিন্ন অংশগুলিকে ফাংশন এবং / অথবা পদ্ধতিতে আসলে না করে মন্তব্য যুক্ত করে। স্টাফ মুদ্রণ এবং একটি পুরানো ফ্যাশন হাইলাইটার ব্যবহার সাহায্য করতে পারে।

ইউনিট পরীক্ষার সুরক্ষা নেট ছাড়া রিফ্যাক্টরিং নিজেকে পায়ে গুলি করছে। না। শুধু না।

কেউ আপনাকে সমস্ত কিছু স্মৃতিতে রাখার প্রয়োজন রাখে না। আপনার সহকর্মীরা যদি বাগ সিস্টেমটি না চান বা প্রয়োজন না হন, কেবল আপনার নিজের কাজ করার তালিকায় আপনাকে নির্ধারিত টাস্কটি লিখুন এবং / আপনার কাজের বিবরণ সম্পর্কে কারও সাথে কথা বলার পরে নোট লিখুন।


"হ্যাঁ, কাঠামোগত লোকদের জন্য কাঠামোগত কোড / পরিবেশ দ্বারা প্রভাবিত করা স্বাভাবিক normal"
মোঃ মাহবুবুর রহমান

2

আমি দেখতে 3 টি মূল পয়েন্ট আছে:

1, 2 এবং 3 টি স্টেমটি থেকে আপনার সহকর্মীরা কোডবেসের সাথে কেবল আরও অভিজ্ঞ যেটির অর্থ তারা তার চক্রগুলি জানেন from এর অর্থ এই যে তারা ডিবাগ প্রক্রিয়াটির জন্য তাদের দীর্ঘমেয়াদী মেমরি ব্যবহার করে এবং মনে রাখতে পারে যে ডক্সএইচজেড আসলে ইউভিডাব্লু করে তবে historicতিহাসিক কারণে কখনও নামকরণ হয় নি। তবে তাদের এটিকে কোড করা থেকে কয়েক মাস সময় নেওয়া উচিত তবে তারা আপনার ব্যথা অনুভব করতে শুরু করবে।

4 পয়েন্টের জন্য বাধা রোধ করুন, অ-জরুরি ব্যবসা আপনাকে জোন থেকে দূরে সরিয়ে দেবেন না , বাধা দেওয়ার পরে এটিতে ফিরে আসতে অনেক সময় লাগে; ব্যস্ততার জন্য কোম্পানির আইএম সেট করুন, কেবল কোডিংয়ের দীর্ঘ ব্লকগুলিতে (পুরো দুপুরে) সময় নির্ধারণের চেষ্টা করুন

পয়েন্ট 5 সেকেন্ডের জন্য আপনি বর্তমানে আপনার ব্যক্তিগত টুডো তালিকা হিসাবে কাজ করছেন যে বাগগুলি নিয়ে একটি এক্সেল শীট তৈরি করুন, (বা আপনার আইডিইতে টাস্ক পরিচালনার ক্ষমতাগুলি ব্যবহার করুন), আমি বাজি রাখতে রাজি আছি যে আপনার কয়েকজন সহকর্মীও একই কাজ করছে


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

2

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

  1. হাজার লাইনের পদ্ধতি - তারা কেবল এতে কাজ না করলে প্রত্যেকে এতে হারিয়ে যেতে চলেছে। তারা এটিকে বাছাই করতে বা এটিকে ফিরে পেতে দ্রুত হতে পারে। আপনি অভিজ্ঞতার মাধ্যমে বাদ দিয়ে তা পরিবর্তন করতে পারবেন না, এবং সম্ভবত তখনও না।

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

  3. কাজটি করার জন্য আপনার যা প্রয়োজন তা তৈরি করুন। এর অর্থ যদি কোনও ফ্লো চার্ট বা অন্য কোনও ডকুমেন্টেশন তৈরি করা হয় তবে তা করুন। তাদের এটির প্রয়োজন হয় বা না, এবং তারা এটি তৈরির পরে আপনার তৈরির পরে তা অপ্রাসঙ্গিক।

  4. বাধা সকলকে ধীর করে দেয়। এটিতে দৃষ্টি নিবদ্ধ করা আপনাকে আরও কমিয়ে দেবে। এটি গ্রহণ করুন এবং যত তাড়াতাড়ি সম্ভব খাঁজে ফিরে যাওয়ার চেষ্টা করুন।

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

প্রোগ্রামিং কোনও নিখুঁত স্মৃতি সম্পর্কে নয়, এবং এগুলি বিক্ষিপ্ততাগুলি উপেক্ষা করতে সক্ষম হওয়া সম্পর্কে নয় - এটির উপর দৃষ্টি নিবদ্ধ করা আপনার তৈরি করা কেবলমাত্র বিঘ্ন are


1

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

সম্পূর্ণরূপে মতামতযুক্ত উত্তর:

1) এটি প্রযুক্তির অভিজ্ঞতার উপর নির্ভর করে, অ্যাপ্লিকেশন বজায় রাখার ক্ষেত্রে (এটি আরও খারাপভাবে ডিজাইন করা থাকলে) এবং এমনকি অ্যাপ্লিকেশনের নির্দিষ্ট অংশগুলিতেও। আপনার ঘনত্বের সমস্যাগুলির উপরও নির্ভর করে (সংখ্যা 4)

2) এটি 1 নম্বরের সমান, তবে ভিন্ন মেট্রিক ব্যবহার করছে। একই উত্তর.

3) নোটব্লক এবং কলম। অথবা একটি শব্দ / এক্সেল ডকুমেন্ট। সমাধান করা যে কঠিন নয়।

4) এটি ঘনত্বের ব্যক্তিগত সমস্যা। যদিও এটি নিজের দ্বারা এটি উন্নত করা কার্যকর হবে কিনা তা নিশ্চিত নয়।

৫) টিকিট ব্যবস্থা ব্যবহারের বিষয়টি প্রোগ্রামারদের দ্বারা সিদ্ধান্ত নেওয়া উচিত নয় তবে প্রকল্প পরিচালকের দ্বারা নেওয়া উচিত। তার মতামত জিজ্ঞাসা করুন / আপনার পয়েন্ট উপস্থাপন। তিনি যদি এর বিপক্ষে থাকেন তবে নোটব্লক করুন এবং আবার কলম করুন।


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

@ এমজিডাব্লু 4৮৪ আমি আমার উত্তরটি পুনরায় পাঠ করেছি এবং আমি সম্মত হলাম যে এটি আমার ইচ্ছা থেকে কিছুটা আরও কঠোর মনে হতে পারে। আমি কোনও মুহুর্তে এই বলতে চাইছি না যে বিষয়গুলি কেবল ওপি'র দোষ, এবং পরিবেশ (শারীরিক এবং সাংগঠনিক উভয়) ভয়াবহ বলে মনে হচ্ছে। এমনকি সেখানকার সেরা প্রোগ্রামারদের ক্ষেত্রেও আমি নিশ্চিত যে এই সমস্যাগুলি পারফরম্যান্সে একটি ভারী হিট নেবে। আমি কেবল "ফাঁক" হ্রাস করার উপায়গুলি ইঙ্গিত করছিলাম যা ওপি মনে করে যা একই পরিবেশে অন্যান্য প্রোগ্রামারদের সাথে বিদ্যমান।
এসজুয়ান 76

0

আমি এর আগে এমন পরিস্থিতির মধ্য দিয়ে এসেছি এবং সেই অভিজ্ঞতার ভিত্তিতে আমি বলতে পারি যে আপনার সমস্যা স্মৃতি সম্পর্কিত নয় এবং আপনার মনে এমন কিছু আছে যা (সম্ভবত অবশ্যই কাজ সম্পর্কিত নয়) যা আপনাকে চাপ তৈরি করে এবং আপনাকে ১০০ ফোকাস করা থেকে বিরত রাখছে হাতের কাজটিতে%

সুতরাং প্রথম পদক্ষেপটি হ'ল আপনি যখন আপনার ডেস্কে থাকবেন তখন সেই জিনিসগুলি থেকে আপনার মন পরিষ্কার করুন।

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

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

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