Historতিহাসিকভাবে উত্থিত সফ্টওয়্যারগুলির জন্য কি কোনও নামকরণ বিরোধী প্যাটার্ন রয়েছে? [বন্ধ]


28

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

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

এর একটি কারণও হতে পারে যে বিকাশকারী কেবলমাত্র সফ্টওয়্যার সিস্টেমের সাথে অভিভূত হয়ে পড়েছে এবং এটি বর্তমানে কীভাবে কাজ করে তা সত্যিই বুঝতে পারে না এবং তারপরে তার কোডটি কেবল যুক্ত করে / আঠালো করে তোলে (কোডটি রিফ্যাক্ট করার পরিবর্তে এবং এটি পরিবর্তন করার পরিবর্তে))

তাই সময়ের সাথে সাথে সিস্টেমটি বজায় রাখা আরও কঠিন এবং কঠিন হচ্ছে।

(আমি আশ্চর্য হই যে এই ধরণের অ্যান্টি-প্যাটার্নের চিত্রগুলি যদি কোনও প্রোগ্রামিং লোকের কাছে আরও স্পষ্ট না হয় - যেমন একটি গাড়ি যেমন পুরো ডিজাইনের কথা না ভেবে আরও বেশি করে বৈশিষ্ট্য যুক্ত করে নির্মিত হয়েছিল Like ট্রেলারগুলি পিছন দিকে চলার সময় এবং তারপরে একজন ইঞ্জিনিয়ার কেবল গাড়ির সামনের দিকে একটি তোয়ালে বার weালেন Job কাজ শেষ হয়েছে But তবে এখন কপালটি আর খোলে না))


4
নন-প্রোগ্রামাররা সম্ভবত অ্যান্টিপ্যাটার্নগুলি বোঝা যাচ্ছে না, হচ্ছে, জ্ঞান, প্রোগ্রামিং শর্তাদি। আমার মনে হয় আপনি যা চান তা সাদৃশ্য ...
ইজকাটা

1
এছাড়াও, একটি অ্যান্টি-প্যাটার্নটি একটি ডিজাইনের প্যাটার্ন হতে হবে ... যা আপনার অনুলিপি করা উচিত নয়। এবং আপনি যা বর্ণনা করছেন তা হ'ল ডিজাইন প্যাটার্নের চেয়ে একটি সফ্টওয়্যার ম্যানেজমেন্ট সিনড্রোম।
স্টিফেন সি


একে "বৈশিষ্ট্য-ক্রিপ" বা "স্কোপ ক্রাইপ" বলা হয়।
রবার্ট হার্ভে

উত্তর:


45

আপনি প্রযুক্তিগত to উল্লেখ করুন ।

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

কারিগরি debtণের শব্দটি রয়েছে, কারণ এটি debtণের একই আচরণগুলি অনুসরণ করে। আপনি theণ পেয়ে যান এবং যতক্ষণ আপনি ব্যয় অব্যাহত রাখেন (বৈশিষ্ট্য তৈরি করা) এবং সেই payingণ পরিশোধ না করে তত বাড়বে। অনেকটা debtণের মতো, যখন এটি খুব বড় হয়ে যায় আপনি পয়েন্টগুলিতে পৌঁছে যান যেখানে আপনি এটি সম্পূর্ণরূপে পুনর্লিখনের মতো বিপজ্জনক কাজগুলি দিয়ে সম্পূর্ণরূপে চালিত করতে চাইতে পারেন। প্রকৃত debtণের মতো, যেমন এটি একটি নির্দিষ্ট পয়েন্টে জমা হয়, এটি সম্পূর্ণরূপে ব্যয় করার (বৈশিষ্ট্য তৈরি করা) আপনার ক্ষমতাকে বাধা দেয়।

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


প্রযুক্তিগত tণ পরিচালনা

কারিগরি debtণ পরিচালনার জন্য অনেকগুলি উপায় রয়েছে, যদিও আসল likeণের মতো এটিই ঘন ঘন পরিশোধ করা ভাল পন্থা। দুর্ভাগ্যক্রমে আসল debtণের মতো এটি মাঝেমধ্যে অল্প সময়ের জন্য আরও বেশি অর্থ সংগ্রহ করা ভাল ধারণা, যেখানে কোনও বৈশিষ্ট্যের জন্য বাজার করার সময় আপনার আয়কে দ্বিগুণ বা তিনগুণ করতে পারে। কৌতুকপূর্ণ অংশটি এই প্রতিযোগিতামূলক অগ্রাধিকারগুলি বিবেচনা করার পাশাপাশি শনাক্ত করা বৈশিষ্ট্যগুলির তুলনায় যখন debtsণগুলি আরআইআই এর পক্ষে উপযুক্ত নয় তবে তা সনাক্ত করছে it

তাই কখনও কখনও অল্প সময়ের জন্য debtণ আদায় করা উপযুক্ত, তবে এটি খুব কমই ঘটে থাকে, এবং সমস্ত debtণের সাথে যেমন সময়কাল আরও কম হয় তত কম। কারিগরি debtণ অর্জনের পরে অবশেষে (প্রায়শই দ্রুত ) আপনার এটি পরিশোধ করতে হবে, এগুলি সাধারণ পদ্ধতি:

  • refactoring
    • এটি আপনাকে কোডের বিটগুলি নেওয়ার অনুমতি দেয় যা কেবলমাত্র প্রয়োগের কাজ শেষ হওয়ার পরে বা তার পরে অংশবিশেষে ভুল জায়গায় স্থানান্তরিত হয়েছে বলে উপলব্ধি করা হয়েছিল এবং তাদের সঠিক জায়গায় (বা যাইহোক আরও সঠিক একটি) রেখে দেওয়া হয়েছে।
  • পুনর্বার লেখা
    • এটি দেউলিয়ার মতো। এটি স্লেটটি পরিষ্কার সাফ করে, তবে আপনি কিছুই না দিয়ে শুরু করেন এবং একই ভুলগুলি করার বা এমনকি আরও বড়গুলি করার প্রতিটি সুযোগ রয়েছে। প্রযুক্তিগত debtণে উচ্চ ঝুঁকিপূর্ণ পুরষ্কারের পদ্ধতি, তবে কখনও কখনও এটি আপনার একমাত্র বিকল্প। যদিও এটি খুব কম ক্ষেত্রেই আপনাকে বলবে কেস।
  • আর্কিটেকচার ওভারভিউ
    • এটি সক্রিয় প্রযুক্তিগত debtণ পরিশোধের ডাউন পদ্ধতির আরও বেশি। প্রকল্পের পরিকল্পনা এবং সময়সূচী নির্বিশেষে এটি কম প্রযুক্তিগত debtণ আদায় করে তা নিশ্চিত করার জন্য কারিগরি বিশদ সম্পর্কিত কর্তৃত্ব সম্পন্ন কাউকে রেখে এই কাজটি করা হয় ।
  • কোড ফ্রিজ
    • পরিবর্তনগুলির কোডটি হিমায়িত করা আপনার শ্বাসকষ্টের অনুমতি দিতে পারে যেখানে আপনার debtণ চূড়ান্ত বা নীচে যায় না। এটি আপনাকে আপনার পদ্ধতির উপর সর্বোচ্চ আরওআইয়ের প্রত্যাশা নিয়ে প্রযুক্তিগত technicalণ হ্রাস করার জন্য আপনার পদ্ধতির পরিকল্পনা করার সময় দেয় to
  • modularization
    • এই স্তর -2 পদ্ধতির মত কেবল প্রাপ্তিসাধ্য যখন আপনি হয় আর্কিটেকচার ওভারভিউ থেকে চাকরী হয় আছে ইতিমধ্যে একটি মডুলার সিস্টেম, বা refactoring এক দিকে অগ্রসর হওয়ার। যখন আপনার একটি মডিউলার সিস্টেম থাকে, তারপরে আপনি বিচ্ছিন্নভাবে সিস্টেমের পুরো টুকরোয় debtণ পরিশোধ করতে পারেন। এটি আপনাকে আংশিক পুনরায় লেখার, আংশিক রিফ্যাক্টরিং করার পাশাপাশি প্রযুক্তিগত debtণ থেকে নেওয়া হারকে হ্রাস করার অনুমতি দেয় কারণ বিচ্ছিন্নতা কেবল সেই অঞ্চলগুলিতে debtণ রাখে যেখানে বৈশিষ্ট্যগুলি ব্যবস্থার চারদিকে ছড়িয়ে পড়েছে opposed
  • স্বয়ংক্রিয় পরীক্ষা
    • অটোমেটেড টেস্টিং আপনার প্রযুক্তিগত debtণ পরিচালনায় সহায়তা করতে পারে, কারণ তারা আপনাকে সিস্টেমের সমস্যার দাগগুলি সনাক্ত করতে সহায়তা করতে পারে, আশা করা যায় যে এই অঞ্চলে debtণ খুব বড় হয়ে ওঠার আগে, তবে তারা এখনও ইঞ্জিনিয়ারদের সেই বিপজ্জনক ক্ষেত্র সম্পর্কে সচেতন করতে পারে তারা ইতিমধ্যে বুঝতে পারে না। তদ্ব্যতীত, একবার আপনি স্বয়ংক্রিয় পরীক্ষাগুলি পেয়ে গেলে, খুব বেশি ভাঙ্গার জন্য উদ্বেগ ছাড়াই আপনি আরও নিখরচায় চুল্লিগুলি করতে পারেন। কারন ডেভেলপারদের করা হবে না কিছু ভঙ্গ করে, কিন্তু কারণ তারা করব জানতে যখন তারা বিরতি কিছু বিষয় খোঁজার জন্য একটি দরিদ্র ট্র্যাক রেকর্ড আছে tends, অত্যন্ত ঋণী সিস্টেমের মধ্যে ম্যানুয়াল পরীক্ষকগণ উপর নির্ভর।

2
ভাল উত্তর, আমি কেবল এটি সফ্টওয়্যার বিকাশ বলতে যাচ্ছিলাম, তবে আপনি অবশ্যই এটি প্রযুক্তিগত callingণ বলার ক্ষেত্রে সঠিক। :-)
এনকাইটার

হা হা। হ্যাঁ, আমার ধারণা এটি খুব সাধারণ সমস্যা। তবে আমি প্রযুক্তিগত বিভাগ পছন্দ করি এবং আমি মনে করি এটি বেশ ভাল ফিট করে।
জেনস

একটি নতুন ডিজাইন ক্রমাগত নতুন বৈশিষ্ট্য যুক্ত করা ছাড়া ফলগুলি ত্রুটিমুক্ত করার সময় প্রযুক্তিগত debtণ তৈরি করতে পারে না?
জেফো

1
@ জেফো হ্যাঁ, সমস্যাটি ক্রাইপিং ফিচারাইটিসের চেয়ে মন্থর একটি নিদর্শন, যদিও এটি অন্যটির কারণ হয়ে দাঁড়ায়। আমি যখন কম্পিউটারে ফিরে আসছি তখন আমি সংশোধন করব, মন্তব্যের জন্য ধন্যবাদ
জিমি হোফা

" অত্যন্ত ঘৃণিত সিস্টেমে ম্যানুয়াল পরীক্ষকদের উপর নির্ভর করা বিষয়গুলি অনুসন্ধানের জন্য একটি দুর্বল ট্র্যাক রেকর্ড রাখে " "- খুব বিশ্বাসযোগ্য, তবে আপনার কি কোনও উত্স আছে?
অ্যারন হল

30

আপনার বিবরণ ফুয়েট এবং যোডারের বিরাট মাটির সাথে মানানসই :

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

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

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

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

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

  • ... মাটির অন্যতম কার্যকর শত্রু হ'ল রোদ। কনভুলিউটেড কোডটি যাচাই তীরের সাপেক্ষে এর রিফ্যাক্টরিং, মেরামত এবং পুনর্বাসনের জন্য মঞ্চ নির্ধারণ করতে পারে। কোড পর্যালোচনা হ'ল এমন একটি প্রক্রিয়া যা ব্যবহার করতে পারে যা দিবালোকের ক্ষেত্রে কোড প্রকাশ করতে পারে।

http://www.laputan.org/images/pictures/Mir-Mud.gif


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

2
@ আমার পড়া প্রতি জেনস, আপনারা কীভাবে ম্যানেজমেন্টকে কোনও ঝামেলা এড়ানোর জন্য বিনিয়োগের বিষয়ে বিশ্বাস করবেন সে সম্পর্কে জিজ্ঞাসা করেননি (এটি যদি হয় তবে আমি বিবিওএম-এর কথাও উল্লেখ করব না, কারণ এটি অপ্রাসঙ্গিক / উত্তরটি প্রযুক্তিগত debtহবে )। কি আমি যদিও পড়া ছিল: "বিরোধী প্যাটার্ন যে একটি ঐতিহাসিকভাবে জন্মায় সফ্টওয়্যার সিস্টেম যেখানে একাধিক বিকাশকারীদের মাত্র সিস্টেমে নতুন বৈশিষ্ট্য যোগ করা কিন্তু কেউ সত্যিই সামগ্রিক স্থাপত্য উপর নজর রাখা কিংবা refactorings কি কখনো সম্পন্ন করা হয় ব্যাখ্যা করেন একজন ' - BBoM যে
মশা

2
তুমি ঠিক. আমার প্রশ্নটি আমার মনে কী ছিল তা একটি মেয়াদ পাওয়ার বিষয়ে ছিল। দৃv় বিশ্বাস ব্যবস্থাপনার বিষয়টি প্রশ্নের ক্ষেত্রের বাইরে (তবে আমার মনে ছিল) thing তবে প্রশ্নটির জন্য আপনার উত্তর পুরোপুরি ফিট করে (ইতিমধ্যে এটি উত্সাহিত)।
জেনস

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

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