কোড লেখার পরে কেন আমি মনে করি যে কিছু সময়ের পরে "আমি আরও ভাল লিখতে পারতাম"? [বন্ধ]


12

আমি আমার শখের প্রকল্পে সি ++ এ 2 বছরেরও বেশি সময় ধরে কাজ করছি। আমি যখনই কোনও মডিউল / ফাংশন লিখি, তখন আমি অনেক চিন্তাভাবনা করে কোড করি। এখন সমস্যাটি দেখুন,

do {
  --> write the code in module 'X' and test it
  --> ... forget for sometime ...
  --> revisit the same piece of code (due to some requirement)
  --> feel that "This isn't written nicely; could have been better"
} while(true);

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

এটি কি অনেক মানুষের কাছে সাধারণ অনুভূতি? এই ভাষা কি নির্দিষ্ট ঘটনা? (কারণ সি ++ তে কেউ একই জিনিস বিভিন্ন উপায়ে লিখতে পারে)।

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


14
আমি যদি আমার পুরানো কোডটিতে কোনও সমস্যা না পাই তবে আমি আরও উদ্বিগ্ন হব। এটি দেখায় যে আপনার দক্ষতা বিকাশ করছে।
ড্যারেন ইয়ং

1
আপনি আপনার পুরোনো কোড তাকান এবং না যদি না মনে হয় "অভিশাপ, কেন আমি এটা করতে পারে না এই তাহলে পেছনে ফিরে যাই ?!", তাহলে আপনি যথেষ্ট যেহেতু আপনি কোড লিখেছেন শিখেছি নি।
sbi

উত্তর:


17

এই ঘটনাটি খুব সাধারণ এবং প্রোগ্রামারগুলির জন্য নির্দিষ্ট নয়। আপনি যখনই কোনও বৌদ্ধিক কাজ সম্পাদন করেন, তখন কয়েক ডজন জায়গা আপনি লক্ষ্য করতে পারবেন যেখানে আপনি উন্নতি করতে পারতেন - কিছুটা দূরে যাওয়ার পরে । কোন জ্ঞানী (wo-) লোকটি কখনও একটি থিসিস লিখেছিলেন জিজ্ঞাসা করুন, এবং তারা আপনাকে এক জিনিস বলব: "। এটি তাকান না তুমি হবে এক নজরে একটি ত্রুটি খুঁজে।"

রিফ্যাক্টরিং লুপ এড়াতে মূলত দুটি জিনিস রয়েছে:

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

এটি পড়ুন। en.wikedia.org/wiki/Buyer's_remorse খুব সহায়ক।
এস .লট

3

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

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

আমি আমার কোডের 20% -30% বিদ্যমান কোডটি রিফ্যাক্টর করতে ব্যয় করি। আমি একটি টেক সংস্থায় কাজ করি এবং "পরিচালন" বিদ্যমান কোড পরিবর্তন করার বিষয়ে কখনও অভিযোগ করেনি। তবে, আমি বুঝতে পারি যে এটি কিছু সংস্থায় সমস্যা হতে পারে। মার্টিন ফওলারের এমনকি তার রিফ্যাক্টরিং বইতে এটির একটি বিভাগ রয়েছে ।

সংক্ষেপে, এটি আমার অভিজ্ঞতার একটি সাধারণ অনুভূতি, তবে এটি নেতিবাচক নয়।


2

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


2

এটি কি অনেক মানুষের কাছে সাধারণ অনুভূতি? এই ভাষা কি নির্দিষ্ট ঘটনা?

এর অর্থ আপনি নিজের জ্ঞান এবং দৃষ্টিভঙ্গি প্রসারিত করছেন।

যদি আপনার উচ্চ অগ্রাধিকারের কোনও কাজ না থাকে তবে আপনার সর্বদা ফিরে আপনার কোডটি উন্নত করা উচিত।


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

1
@ ডেভিড ওয়ালেস - যদি কারও কখনও পুরানো কোডে ফিরে না যেতে হয়, আমরা এটি নিয়ে এলোমেলো করব না।
জেফও

1
"একবার আপনার কোডটি কাজ হয়ে গেলে, এগিয়ে যান" - প্রডাকশন কোডে আমি কী ধরণের বাগগুলি দেখেছি তা আপনি বিশ্বাস করবেন না কারণ কোডটি কাজ করেছে;)
BЈовић

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

@ ভিজোভিচ - যদি উত্পাদনে বাগ থাকত তবে এটি কোডটি কাজ করে না বলেই। আমি মনে করি ওপি কোডটির কথা বলছিল যা সঠিকভাবে কাজ করে তবে এটি কুৎসিত।
দাউদ ইবনে কেরেম

2

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

প্রোগ্রামিং কোর্স করার সময় আপনি যদি-তারপর-অন্য সম্পর্কে শিখেছিলেন যা আপনি সুইচ সম্পর্কে না শিখার আগে পর্যন্ত অনেক কিছু করেছিলেন। আপনি যখন নতুন কিছু শিখছেন তখন আপনি এই অগ্রগতির মধ্য দিয়ে যান, প্রত্যেকেই তা করে।


2

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

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


1

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

আপনার যদি এই অনুভূতি না থাকে তবে এর অর্থ দুটি জিনিসের মধ্যে একটি:

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