আরও অভিব্যক্তিপূর্ণ প্রোগ্রামিং ভাষার বিবর্তনের সাথে সফ্টওয়্যার ডিজাইনের বিশদকরণের প্রয়োজনীয়তা কি উল্লেখযোগ্যভাবে হ্রাস পেয়েছে?


16

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

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

আমি কীভাবে এই সিদ্ধান্তে পৌঁছলাম? এখানে কিছু যুক্তি দেওয়া হল:

প্রতিক্রিয়া

ডকুমেন্ট লেখার জন্য বা ডায়াগ্রাম তৈরির সরঞ্জামগুলি খুব কম প্রতিক্রিয়া সরবরাহ করে। হ্যাঁ, এমন মডেলিং সরঞ্জাম রয়েছে যা ইউএমএল ডায়াগ্রামগুলিতে কিছু ধারাবাহিকতা পরীক্ষা করে তবে সেগুলি সীমিত এবং প্রচুর ওভারহেড নিয়ে আসে।

প্রতিক্রিয়া ব্যতীত ত্রুটিগুলি চিহ্নিত করা এবং সংশোধন করা শক্ত।

কোড লেখার সাথে সাথে আপনি প্রচুর প্রতিক্রিয়া পাবেন, উদাহরণস্বরূপ:

  • সংকলক থেকে ত্রুটি এবং সতর্কতা
  • স্থির কোড বিশ্লেষণ ফলাফল
  • ইউনিট পরীক্ষা

ত্রুটিগুলি দ্রুত চিহ্নিত এবং সংশোধন করা যায়।

দৃঢ়তা

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

refactoring

পাঠ্য বিবরণ বা ডায়াগ্রামগুলি সংশোধন করার সময় শক্তিশালী সরঞ্জাম এবং কৌশলগুলি থাকে যখন পাঠ্য বিবরণ বা ডায়াগ্রামগুলি সাধারণত শক্ত এবং ত্রুটির প্রবণ হয়।


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

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


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

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

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

2
প্রস্তাবিত পড়া: গড় পিটানো
রবার্ট হার্ভে

1
আমি একটি সম্পূর্ণ ইউএমএল ডিজাইন সহ একটি প্রকল্পে কাজ করেছি। যা আমরা কোড থেকে উত্পন্ন। আমি এই সিদ্ধান্তে পৌঁছেছি যে আমি আর কখনও এটি করতে চাইনি। এটা একটা ছিল অনেক কঠিন ইউএমএল পরিবর্তন করতে এটা কোড পরিবর্তন করতে ছিল; এবং একটি বৃহত ইউএমএল মডেল অনেকগুলি সোর্স কোডের মতো কমপক্ষে অপ্রতিরোধ্য। "উত্পন্ন" কোডটি পড়া শক্ত ছিল এবং জেনারেটর কোডটিতে "চিহ্নিতকারী" রেখেছিল।
নিক কেইগলি

উত্তর:


9

আমি ভাষাটিকে আরও বেশি সংবেদনশীল বলে মনে করি। সি # তে আজকের এএসপি.এনইটি কোড সহ, আমি ভিজ্যুয়াল বেসিকটিতে এএসপি কোডটি লেখার সময় আমি যেমন করেছি তেমন স্তরে লিখি। আমরা এখনও সি ++ ব্যবহার করি। জাভাস্ক্রিপ্ট বৈশিষ্ট্যগুলি যোগ করেছে তবে সামগ্রিকভাবে ভাষা পরিবর্তন হয়নি। এসকিউএল একই।

আমি মনে করি এই অন্যান্য পরিবর্তনগুলি আরও উল্লেখযোগ্য:

  1. স্বয়ংক্রিয় ইউনিট পরীক্ষা গ্রহণ। কেউ কেউ বলবে যে পরীক্ষাগুলি হল স্পেসিফিকেশন। সুতরাং আমরা চশমা লেখার প্রয়োজনীয়তা সরিয়ে নেই; পরিবর্তে, আমরা সেগুলি ওয়ার্ড নথির চেয়ে কোডে লিখি।

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

  3. নকশা নিদর্শন গ্রহণ। সবাই যখন নিদর্শনগুলি জানে, আপনাকে খুব কমই কোনও নকশা তৈরি করতে হবে; আপনি কেবল "একটি সংগ্রহস্থল কারখানা যুক্ত করুন" বলতে পারেন এবং আপনার দলটিকে এটি ইউএমএল দেখার প্রয়োজন ছাড়াই করা উচিত।

  4. এসওএর ডেটা চুক্তি করে। আজকাল খুব অনেক কিছুই এসওএ। আপনার যা দরকার তা হ'ল ডাব্লুএসডিএল। ডেটা ট্রান্সফার ফর্ম্যাটগুলি সংজ্ঞায়িত ও ডকুমেন্ট করার দিন চলে যায়। আরও বিশ্রামের এবং মাইক্রো-পরিষেবাগুলির দিকে বর্তমান পদক্ষেপ এই ধারা অব্যাহত রেখেছে।

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

  6. প্রতিষ্ঠিত গ্রন্থাগারগুলির অনেক বেশি। । নেট সিএলআর শেল্ফের বাইরে এক টন কার্যকারিতা সরবরাহ করে, সুতরাং সেশন ডেটা ক্যাশে করার জন্য কোনও স্কিম ডিজাইন করার দরকার নেই। JQuery UI বা বুটস্ট্র্যাপের মতো তৃতীয় পক্ষের গ্রন্থাগারগুলি কোনও নির্দিষ্ট উপায়ে কাজ করার জন্য কোড লেখার মান নির্ধারণ করে। আপনার এগুলি নথিভুক্ত করার দরকার নেই; দলগুলি কেবল তাদের ব্যবহার করতে সক্ষম হবে।

  7. শিল্প পরিপক্কতা। এসডাব্লুইই শিখেছে যে "ব্যাটল স্টার গ্যালাকটিকা" প্রকল্পের মতো কিছুই নেই যেখানে আপনি নির্দিষ্ট লক্ষ্যে পৌঁছানোর চেষ্টা করে বছর এবং বছর ব্যয় করেন; এই বছরগুলি কেটে যাওয়ার সাথে সাথে লক্ষ্যটি বদলে যাবে। আজ আমরা জানি যে ডিজাইনে আমরা যা চাই ঠিক ঠিক তেমন সবকিছু পাওয়ার চেয়ে বাজারের সময়টি অনেক বেশি গুরুত্বপূর্ণ।

  8. আরও ভাল- এবং আরও ধারাবাহিকভাবে শিক্ষিত প্রকৌশলীরা। এই দিনগুলিতে আপনি এমন প্রকৌশলী নিয়োগ করতে পারেন যারা সেরা অনুশীলনগুলি (আশাবাদী) বোঝেন এবং তাদের কী করতে হবে তা কোনও ডিজাইনের দলিল ছাড়াই তাদের বাস্তবায়ন করবেন implement

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

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


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

1
এটি সমস্ত অগ্রগতি নয়: সংকলক আবিষ্কারের সাথে প্রধান হপ্প ফরোয়ার্ড ছিল grace তবে আমরা এখনও ফ্লো চার্ট, এসেম্বলারের কোডের একটি বিমূর্ততা (এবং অন্যান্য বহু অপ্রচলিত অনুশীলন) শিখি। সম্ভবত কারণ আমরা ভুলে গেছি কেন?
ctrl-alt-delor

6

আমি তর্ক করবে কোন

সাধারণ কারণে যে

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

এক্সট্রিম প্রোগ্রামিং 1990 এর দশক থেকেই বিদ্যমান বলে কখনও "আদর্শ" হিসাবে বিবেচিত হত না । এবং যেমন আপনি বলেছেন:

আদর্শ ক্ষেত্রে কোড ছাড়া নিজেই সফ্টওয়্যার ডিজাইনের কোনও বিবরণ থাকতে হবে না।

যুগে যুগে তর্ক ছিল। উদাহরণস্বরূপ 1992 সাল থেকে এই কিংবদন্তি নিবন্ধ: সফ্টওয়্যার ডিজাইন কি

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

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


6

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

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

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

সুতরাং, হ্যাঁ, প্রোগ্রামিং ভাষাগুলির উন্নত অভিব্যক্তিটির উপর এটার প্রভাব পড়েছিল সরল সত্য থেকে যে এটি নিজস্ব ডকুমেন্টেশন হিসাবে অভিব্যক্তিপূর্ণ কোড ব্যবহার করা সহজ। একটি ডকুমেন্ট তৈরির ব্যয় যা আপনাকে কোডটি কী বলেছে তা খুব বেশি বলে এবং এর মান (এটি কোনও স্তরে অনিবার্যভাবে ভুল)


3

আমি মনে করি আপনি প্রথমে ডিজাইনের নথি থাকার উদ্দেশ্যটি ভুলে গেছেন!

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

নথি যা সিস্টেম সিস্টেমের সঠিক স্বভাব ব্যাখ্যা আছে কোন প্রয়োজন নেই সব বিবরণে , কারণ উত্স কোডটি নিজেই এই উদ্দেশ্যে কাজ করে ser

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


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

@ ফ্র্যাঙ্কপুফার একটি ডায়াগ্রামের মূল্য 100,000 এলওসি।
রাবারডাক

1
@ রাবারডাক এটা আমার কাছে ঘটে যে কোড থেকে বিভিন্ন দরকারী চিত্র তৈরি করার ক্ষমতা (বা এর অভাব) কোনও ভাষার প্রকাশের জন্য একটি পরিমাপ হতে পারে। এমন কোন চিত্র নেই যা আপনি আঁকতে পারেন যা কোনও প্রকারের ভাষায় প্রকাশ করা যায় না। প্রশ্নটি হল যে ভাষাটি একই তথ্য এমনভাবে পৌঁছে দিতে পারে যা সহজেই লেখা বা পড়া যায়।
জিমি জেমস

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

আমি পছন্দ করি আপনি @ জিমি জেমস চিত্রটি উত্পন্ন করার কথা উল্লেখ করেছেন। আমি ম্যানুয়াল সৃষ্টির চেয়ে প্রজন্মকে পছন্দ করি। আপনার একটি খুব বৈধ পয়েন্ট রয়েছে, তবে আমি ভাবছি যে এটি প্রকাশের বা সরঞ্জামদানের কোনও কাজ।
রাবারডাক

1

আদর্শ ক্ষেত্রে কোড ছাড়া নিজেই সফ্টওয়্যার ডিজাইনের কোনও বিবরণ থাকতে হবে না।

আপনার ইঙ্গিতের চেয়ে এটি আরও বন্ধ। এমনকি নির্ভরশীল ধরণের মতো জিনিস (যা আমি এটি বুঝতে পেরেছি তাত্ত্বিকভাবে বেশ প্রতিশ্রুতিশীল) বেশ কয়েক বছর বাইরে।

আনুষ্ঠানিক যাচাইকরণ বেশ কঠিন এবং সেই কারণেই একমাত্র জায়গা যেখানে আনুষ্ঠানিক যাচাই সাধারণত ব্যবহৃত হয় তা হ'ল ক্রিপ্টোগ্রাফি লাইব্রেরি।

ইউনিট পরীক্ষা

যদি সম্পত্তি টেস্টিং মূলধারায় না আসে তবে আমি মনে করি না এটি দীর্ঘ সময়ের জন্য ব্যবহারিক হবে।

তদ্ব্যতীত, ভাল পরীক্ষাগুলি লেখার জন্য (এটি প্রতিটি রিফ্যাক্টরের সাথে সম্পাদনা করার প্রয়োজন হবে না তবে এখনও যথেষ্ট ত্রুটি ধরা পড়বে) বেশ কঠিন quite

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

এই মুহূর্তে একটি ডকুমেন্টেশন টেস্টিং সরঞ্জাম ব্যবহার করা সম্ভবত সহজ easier

এই কাজটি করার একটি শর্ত রয়েছে: কোডটি পড়ার এবং বুঝতে যথেষ্ট সহজ হতে হবে।

দুর্ভাগ্যক্রমে, এমন ভাষা ডিজাইন করা যেগুলি কেবল চূড়ান্তভাবে প্রকাশযোগ্য নয় তবে খ্যাতিযুক্ত পাঠযোগ্য। গো এর মতো ভাষাগুলি পঠনযোগ্যতার পক্ষে অগ্রাধিকার দেয় এবং এটি উচ্চ-স্তরের চিন্তাকে ob

পরিশেষে, আমার অভিজ্ঞতায় আরও ভাল ভাষা এবং সরঞ্জামকরণ কম বাগ সহ সফ্টওয়্যার নিয়ে যায় না, বরং আরও বড় প্রকল্প। ১৯ any০ সালে আসলে কোনও প্রশ্রয়জনক উপায় pandocলেখা হত না।

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