কীভাবে জটিল কোড কাঠামো ডকুমেন্ট করব?


9

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


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

2
সম্পর্কিত: কোন প্রোগ্রামার কোডের পিছনে বর্ধিত যুক্তিটি কোথায় ব্যাখ্যা করতে হবে? । আমি বিশেষত উত্তরের একটিতে প্রস্তাবিত পরীক্ষাগুলির মতো পছন্দ করি।
gnat

1
@ গনাট, ধন্যবাদ কেন? আমি মনে করি যে সামগ্রিকভাবে, আমার এই প্রশ্নের উত্তরটিও এই প্রশ্নের পক্ষে কাজ করবে।
মার্ক বুথ

@ মারকবুথ ঠিক আছে, সম্পর্কিত প্রশ্নের পরামর্শ দেওয়ার সময় এটি বেশিরভাগই আমার উত্তর ছিল। উত্তরটি সাধারণত উত্তম, তবে পরীক্ষাগুলির বিষয়টি বিশেষত একটি ঘণ্টা বাজায় যেহেতু আমি এটি একবার বিশেষ জটিল জটিল অ্যালগরিদম বাস্তবায়নের জন্য একবার ব্যবহার করেছিলাম
gnat

উত্তর:


8

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

আপনি যদি অ-স্পষ্টত অ্যালগরিদম ব্যবহার করেন তবে এটি উত্স হিসাবে একটি লিঙ্ক যুক্ত করুন। এটি একটি যুক্তিসঙ্গত অনুশীলন কারণ এটি বিকাশকারীকে আপনি কী করছেন তা খুঁজে বের করার খুব দ্রুত উপায় দেয়। আমি যেমন বলেছি, এটি কার্যকর যদি এটি একটি অ-সুস্পষ্ট তবে জটিল জটিল অ্যালগরিদম হয়। এটি প্রমাণ করতে হবে যে (ক) আপনি এমন কিছু করছেন যা বোধগম্য হয় এবং (খ) কেউ প্রমাণ করেছেন যে এটি কার্যকর হয়েছে।

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

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


3

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


0

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

আমি মনে করি না যে কোডটি এত বেশি নথিভুক্ত করতে হবে যাতে কোনও স্বল্প বিকাশকারী দ্বারা প্রতিস্থাপনের জন্য আপনার অ্যাকাউন্ট হয়। যদি এটি উদ্বেগজনক হয় তবে আপনাকে ডকুমেন্ট করার জন্য সময় দেওয়া দরকার।

তাদের জন্য আপনাকে ওয়েব অনুসন্ধান করতে হবে না।


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