সফটওয়্যার ইঞ্জিনিয়ার হিসাবে, অন্যের কোডটি পড়া কতটা গুরুত্বপূর্ণ?


25

আমি একজন উদীয়মান সফটওয়্যার ইঞ্জিনিয়ার (এখন একটি সোফমোর, সিএস-এ মেজর) এবং অন্য লোকের প্রোগ্রামগুলি বোঝার জন্য আমি সত্যিই সংগ্রাম করি। আমি জানতে চাই যে এই দক্ষতাটি (বা এর অভাব) আমার জন্য প্রতিবন্ধক হতে পারে এবং যদি হ্যাঁ, তবে আমি কীভাবে এটি বিকাশ করতে পারি?


1
কোডটি যখন আপনাকেও ব্যাখ্যা করা হয়েছে তখন আপনি কি কোডটি বুঝতে পেরেছেন বা আপনি কেবল পরীক্ষা এবং ত্রুটি করে শিখছেন?
জেফো

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

আজ সকালে কেবল একটি নিবন্ধ পড়ুন যা আমাকে এই প্রশ্নের স্মরণ করিয়ে দিয়েছে। কেন ক্রোমে কাজ করা আমাকে উত্স কোড পড়ার জন্য একটি সরঞ্জাম বিকাশ করেছে
এরিক কিং

এটা একটা ভাল প্রশ্ন! আমার একটি ফলো-আপ প্রশ্ন ছিল: আপনি যদি নিজের কোডে প্রাথমিকভাবে নিজেই কাজ করেন (উদাহরণস্বরূপ একটি ছোট প্রকল্পে বৈজ্ঞানিক প্রোগ্রামার হিসাবে), আপনি কীভাবে ভাল কোড পড়তে পেলেন? এটি এর আগে জিজ্ঞাসা করা হয়েছে: সফ্টওয়্যারেনজেনারিং.স্ট্যাকেক্সেক্সঞ্জ
গৌরব

উত্তর:


49

এটা অপরিহার্য.

আপনি যেভাবে এটি বিকাশ করছেন তা হ'ল আপনার নিজের কোড লিখে (প্রচুর পরিমাণে), এবং হ্যাঁ, অন্য ব্যক্তির কোড পড়ার মাধ্যমে লড়াই করে।

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

এটি অনুসরণ করে যে আপনার ভাল কোড পড়া উচিত ।

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

আপনার অ্যালগোরিদম এবং ডেটা স্ট্রাকচারও অধ্যয়ন করা উচিত।

তাত্পর্যপূর্ণ: আপনার বরাবর কোডটি লেখার চেষ্টা করা উচিত যা অন্য বিকাশকারীরা সহজেই বুঝতে পারে।


7
পরিণতি: আপনি সহজেই বুঝতে পারবেন এমন কোডটি লেখার চেষ্টা করে সহজ শুরু করুন :-)
gnasher729

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

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

15

এটা খুব গুরুত্বপূর্ণ।

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

এটি এমন একটি দক্ষতা যা অনুশীলন এবং ধৈর্য্যের মধ্য দিয়ে অর্জিত হয় এবং অনেক ক্ষেত্রে এটি এমন একটি দক্ষতা যা স্নাতক হওয়ার পরে প্রথম কাজটি অর্জন না হওয়া পর্যন্ত অনেক লোক সত্যই কাজ করার সুযোগ পায় না । আরাম করুন!

(যদিও আপনার স্কুলে যদি কোনও কো-অপ প্রোগ্রাম থাকে তবে এটি আপনাকে বড় প্রকল্পগুলিতে কাজ করার প্রাক-স্নাতকের অভিজ্ঞতা দেয় যা বেশিরভাগ লোকেরা লিখে থাকে এবং এটি আপনাকে একাডেমিক ক্রেডিট দেয়! যদি এটি উপলব্ধ থাকে তবে কিছু দেখার জন্য)


7

আপনি কোথায় কাজ করেন তার নির্দিষ্টতার উপর নির্ভর করে এটি একটি বড় দক্ষতা , কোড কোড লেখার চেয়েও এটি আরও গুরুত্বপূর্ণ হতে পারে।

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


এছাড়াও, আপনি যে কোনও ওপেন সোর্স প্রকল্পটি ব্যবহার করছেন তা জানার এবং অভ্যন্তরীণ কোড কীভাবে কার্যকর তা সহায়ক হতে পারে তা বোঝার চেষ্টা করুন
RMalke

4

উভয়ই পড়া এবং লেখার কোডে স্বতন্ত্র দক্ষতা রয়েছে।

  • একটি সিনট্যাক্স। কোনও পদ্ধতি ঘোষণার মতো দেখতে কী।
  • অন্যটি অভিপ্রায়। পদ্ধতিটি কেন আছে এবং এটি কী উদ্দেশ্যে কাজ করে তা জেনে।

বনাম লেখার পড়া হিসাবে। হ্যাঁ পড়া জরুরি।
কয়েকটি ম্যাক্সিমস যা আমাদের অনেককে সেই সাথে সহায়তা করে:

  • কোডটি প্রতিবার লিখিত হওয়ার জন্য 10 বার (কমপক্ষে) পড়া হয়।
  • অন্য কারও কোডটি পড়ার প্রায়শই হয় ... ভবিষ্যতে আমি কোডটি পড়ছি।
  • আমি আমার কোড স্টাইল 1 বছরেরও বেশি আগে থেকে রক্ষা করব না, তখন থেকে এটি উন্নত হয়েছে।

ঠিক আছে. সুতরাং এটি দুর্দান্ত। এখন আপনি সম্ভবত যা অভিজ্ঞতা করছেন তা নীচে।

হ্যাঁ, কয়েক হাজার লাইনের সোর্স কোড এবং ক্লাসগুলি যা পাগল নির্ভরতার সাথে শত শত লাইন দীর্ঘ এবং প্রতিটি সময় আমি কিছু কিছু অনুসরণ করার চেষ্টা করি যখন আমার মাথার 10 টি স্তর রাখতে হয় ইত্যাদি ইত্যাদি, এই প্রচুর কোডবেসটি শোনার সাথে
পরিচিত ? হ্যাঁ। গভীর নিঃশাস. আরাম করুন। এটা স্বাভাবিক. এটি হ'ল প্রোডাকশন সিস্টেমগুলি যা তৈরি। আপাতদৃষ্টিতে অজ্ঞাতসারে এই পরিস্থিতিতে লোকেরা বেঁচে থাকে (এবং ফুল ফোটে) কারণ:

  • পরীক্ষাগুলি (আশাকরি) বিদ্যমান এবং তারা সিস্টেমটি নথিতে সহায়তা করে।
  • প্রোগ্রামারদের জুড়ি এবং প্রায়শই এটি দ্বিগুণেরও বেশি ফলাফল নিয়ে আসে।
  • ভাল প্রোগ্রামার তারা ভাল না হওয়া পর্যন্ত বুঝতে পারে না saying
  • পরিবর্তনগুলি ঘন ঘন কেবলমাত্র এক বা কয়েকটি লাইন কোড যা পরীক্ষা করতে হয় তা আলাদা করতে সহায়তা করে
  • কোড বেসগুলিতে পরিচিত হতে কয়েক মাস এমনকি কয়েক বছর সময় লাগে

এবং পরিশেষে, ভাল প্রোগ্রামারগুলি উত্স সংস্করণ নিয়ন্ত্রণ সিস্টেমে পরিবর্তন আনার সময় অর্থপূর্ণ প্রতিশ্রুতি বার্তা লিখেন। (উত্তরে নির্দ্বিধায়
উদ্বিগ্ন

1

এই উত্তরগুলির বেশিরভাগটি স্ব-উন্নতিতে কোড পাঠের গুরুত্বকে কেন্দ্র করে। আমি আন্তরিকভাবে এর সাথে একমত এবং এটিকে সমর্থন করি।

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

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

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


0

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

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

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

আশা করি এই সহায়তা, হতাশ হবেন না এটি পুরোপুরি স্বাভাবিক। কোড সহ আরও বেশি সময় ব্যয় করুন এবং আপনি অবশেষে এটি পেয়ে যাবেন।


0

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

আপনি আমাকে বলবেন আমি কীভাবে অন্য ব্যক্তির কোড পড়ার ক্ষমতা ছাড়াই আমার কাজটি করতে পারি। আপনি যদি অন্য ব্যক্তির কোডটি পড়তে না পারেন তবে আপনি সম্পূর্ণরূপে, সম্পূর্ণ আটকে আছেন।

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