প্রচুর ব্যবহার / আমদানির বিবৃতি থাকা খারাপ ডিজাইন বা কোড গন্ধকে বোঝায়?


13

সাধারণত, আমি ক্লাস ফাইলের শীর্ষে কয়েকটি ব্যবহার করে বিবৃতি দেখছি। উদাহরণ:

using System.Collections.Generic;
using System.IO;
using System.Xml.Linq;

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


1
ভিজ্যুয়াল স্টুডিওতে অব্যবহৃত usingস্টেটমেন্টগুলি অপসারণের একটি বিকল্প রয়েছে । আপনি দেখতে চাইতে পারেন যে এই 20 টির মধ্যে প্রকৃত ব্যবহার রয়েছে।
ড্যান পিচেলম্যান

@ ড্যান-এগুলি সমস্ত ব্যবহৃত হয় কারণ আমি অব্যক্তদের নিড়ানি করতে পুনঃশার্পার ব্যবহার করেছি।
জন রেয়নর

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

2
আইওসি সমস্যাটি কেবল আড়াল করে।
টেলাস্টিন

1
সংগ্রহগুলির মধ্যে জেনেরিক এবং লিনকিউ-এর মতো এই বিষয়গুলির মধ্যে প্রায়শই কেবল ভাষা এবং প্রোগ্রামিং স্টাইলকে উত্সাহিত করে of আমি সম্ভবত অন্যের প্রতি আমার দৃষ্টি নিবদ্ধ করতাম। বেশিরভাগ ক্লাসের সম্ভবত সরাসরি আইও করার দরকার নেই, সুতরাং, যদি এটি সর্বত্র পাওয়া যায় তবে কিছু দায়বদ্ধতা বা দুর্বল লেয়ারিং রয়েছে তবে এটি প্রয়োগের উপর নির্ভর করে।
এরিক tদ

উত্তর:


21

এটি একটি খারাপ নকশা নির্দেশ করতে পারে, হ্যাঁ। এটি এমন হতে পারে যে আপনি যে শ্রেণীর দিকে তাকিয়ে রয়েছেন সেটি অনেক বেশি কাজ করছে তবে এর অর্থ এইও হতে পারে যে আপনি যে নেমস্পেসগুলি আমদানি করছেন সেটি নামফলক বিচ্ছিন্নতার চেয়ে আরও বেশি মিলিত। এটি অতিরিক্ত প্রকৌশলী বা অতিরিক্ত বিমূর্ততার কারণে হতে পারে, তবে এটি কেবল একটি নকশাও হতে পারে যা ব্যবহারের সাথে ভালভাবে সাজায় না doesn't

এটি বলেছিল, এটি একটি গন্ধ - কখনও কখনও এটি আপনাকে খারাপ কিছুতে নিয়ে যায়, এবং কখনও কখনও এটি কেবল একটি মিথ্যা অ্যালার্ম থাকে।


আমি মনে করি সত্যিকারের "কোড গন্ধ" হ'ল যদি আমদানি করা নেমস্পেসগুলি সমস্ত, বা বেশিরভাগ ক্ষেত্রে উদ্দেশ্য অনুসারে ভিন্ন ভিন্ন হয়। সত্যি কথা বলতে, আমি খুব কমই usingএকটি সি সি # ফাইল 6 থেকে 8 এর বেশি পেয়েছি ।
গ্রেগ বার্গার্ড্ট

2
"কোড গন্ধ" শব্দটি সঠিকভাবে ব্যবহারের জন্য আমি পারলে আমি আপনাকে একটি দ্বিতীয় +1 দিতে চাই!
Jörg W Mittag

! গ্রেগ - আমি সম্মত, সাধারণত "ইউসিংস" সম্পর্কিত হয়। আমি মনে করি এই ক্ষেত্রে এটি অ্যাবস্ট্রাকশন সম্পর্কিত একটি মামলা কারণ "ইউসিংস" এর প্রায় 15-20 অ্যাপ্লিকেশন নেমস্পেস এবং বাকী নেট ফ্রেমওয়ার্ক থেকে আসে।
জন রায়নোর

2

একটি শ্রেণিকৃত কোনও উদ্দেশ্যযুক্ত ফাংশন সরবরাহ করতে যা প্রয়োজন তার চেয়ে বড় এবং ছোট হওয়া উচিত।

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

নিজেকে 'আমদানি কমান' বলাই আমার পক্ষে শক্ত hard বা কেবলমাত্র আমদানিকৃত নেমস্পেসের সংখ্যা গণনা করে আমার শ্রেণীর সাফল্যের বিচার করতে। ক্লাসের সাফল্যের ইঙ্গিত হিসাবে আমি বিচ্ছিন্নভাবে এটিকে ন্যায়সঙ্গতভাবে ব্যবহার করতে পারি না। আমার কাছে, 'আমদানি' শ্রেণীর শেষের মাধ্যম। শ্রেণীর কাজটি যদি সঠিকভাবে সংজ্ঞায়িত করা হয়, তবে আমদানি সহ সহায়ক সিস্টেমের মধ্যে থাকা সমস্ত কিছু নিজেই যত্ন নেবে।

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