কীভাবে 'সরল' একটি আসল KISS সমাধান? [বন্ধ]


12

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

অন্যদিকে, হ্যাঁ, এটি কখনও কখনও সময়সীমা সরবরাহ করার ক্ষেত্রে আমার উপর অতিরিক্ত চাপ দেয় ...

তবে যখনই আমি নিজেকে বলি, "পরের বার এটি সহজ রাখুন, আপনি বোকা!" পরের বারটি আসার সাথে সাথে এটিকে "সরল" বানাতে আমার পক্ষে খুব কঠিন মনে হয়েছে কারণ এটি অদ্ভুত মনে হতে শুরু করে ... এবং এক বিন্দু পরে অস্বস্তি বোধ করে।

তারপরে আমি আমার 'সাধারণ' বোঝার বিচার করতে শুরু করি ...

সিম্পল এর অর্থ খুব সংক্ষিপ্ত যে এটি বজায় রাখা এবং প্রসারিত করার পক্ষে কঠোর হলেও কাজ করে?

সিম্পল মানে কি অনেকগুলি ওওপি নীতিমালা ভঙ্গ করা?

সহজ কি প্রতারণার অর্থ?

সিম্পল মানে কি কোনও বিলম্ব ছাড়াই কেবল সময়সীমাটি রাখা? প্রভৃতি

আসলে, এটা কি?

প্রশ্নটি : আপনি কিআইএসএসের নীতির শর্তে সিম্পল এর নির্ভুল সংজ্ঞা লিখতে পারেন? -আছে যদি.

ধন্যবাদ!


4
এটি "এটিকে সহজ রাখুন, বোকা!", সংক্ষিপ্ত নয়। এবং যে লেখার পর, আমি দেখেছি যে আপনি আসলে এটা জানি কিন্তু মোবাইল p.se কোন ডিলিট মন্তব্য লিংক আমি একসাথে ...
yannis

4
আমি এত ছোট কিছু পাই নি যে এটি বাড়ানো শক্ত ছিল hard আমি প্রচুর জিনিসগুলি পেয়েছি যা প্রচুর বিপর্যয় ছিল যা প্রায় অপ্রত্যাশিত ছিল কারণ একটি জিনিস পরিবর্তন করা সমস্ত কিছু ভেঙে ফেলেছিল।
বেন ব্রোকা

1
আমি মনে করি কেআইএসএস বোঝার চেষ্টা করার ক্ষেত্রে বেশিরভাগ লোকেরা যে ভুলটি করেন তা হ'ল তারা মনে করেন সমাধানটি এত সহজ হওয়া উচিত , এটি স্বতঃস্ফূর্ত । সত্যটি হ'ল সহজ সমাধান সন্ধান করা সব কিছু সহজ তবে সহজ। এটা সত্যিই কঠিন !!! আপনি এটি সন্ধানের পরে, সবাই ভাবেন "ওহ, এটি এতটাই সুস্পষ্ট , আমি কেন আগে এটি দেখিনি?"
ট্রেব

2
গুড KISSing সুনির্দিষ্টভাবে ব্যাখ্যা বা সংজ্ঞা দেওয়া শক্ত, তবে একবার আপনি এটি সঠিক হয়ে গেলে, আপনি জানবেন। শুধু অনুশীলন চালিয়ে যান!
ক্যাসকেবেল

1
আমি দুঃখিত যে কেবল এখানে বন্ধ হয়ে যাওয়ার পরিবর্তে এটি এখানে স্থানান্তরিত হয়েছিল, তবে এটি এখানে হাস্যকরভাবে বন্ধ নয় topic

উত্তর:


35

আসুন একটি ফরাসি KISS শিখি:

লা পারফেকশন এটি সত্য, নন পাস লর্সকুইল এন 'এ প্লাস রিইন j আজটার, মাইস লোরস্কিল এন'আই এ প্লাস রিয়েন à অবসরপ্রাপ্ত। - এন্টোইন ডি সেন্ট-এক্সুপুরি

যা অনুবাদ করা হয়েছে:

পরিপূর্ণতা অর্জন করা হয়, যখন যুক্ত করার মতো আরও কিছু থাকে না, তবে যখন কিছুই কেড়ে নিতে থাকে না। - এন্টোইন ডি সেন্ট-এক্সুপুরি


2
"অপসারণের কিছুই নেই তখন পারফেকশনটি হওয়া উচিত"
নর্মাংশেসকুইড

2
এটি দুর্দান্ত উক্তি তবে এতে ব্যবহারিক পরামর্শের অভাব রয়েছে।
সি_মেকার

2
আপনি যদি ফরাসী অংশটি সরিয়ে থাকেন তবে আপনি এই উত্তরটি আরও সাধারণ (ওরফে আরও নিখুঁত) করতে পারেন। :)
ফিল

1
@ ফিল: আউ কনটায়ার, সোম অ্যামি।
গিলবার্ট লে ব্ল্যাঙ্ক

14

দৃশ্যপট

আপনি কাটা এবং চিম্টি প্রয়োজন।

সমাধান A: KISS নয়

এখানে চিত্র বর্ণনা লিখুন

সমাধান বি: কেআইএসএস

এখানে চিত্র বর্ণনা লিখুন এখানে চিত্র বর্ণনা লিখুন


সঠিক সংজ্ঞা হিসাবে : সরলতা পরিমাপের জন্য একটি নিখুঁত স্কেল সংজ্ঞায়িত করা শক্ত hard বেশিরভাগ কারণ সত্যিকারের সরলতা হস্তক্ষেপে সমস্যাটির সত্যিকারের বোঝাপড়া বন্ধ করে দেয় এবং এটি খুব কমই অর্জনযোগ্য। তবে আসুন আমরা বলি যে সমাধান A এবং B যথাক্রমে অতিরিক্ত জটিলতা এবং সরলতার দিকে ঝুঁকছে এমন সমাধানগুলির মধ্যে পার্থক্য তুলে ধরে।


এটি আমাকে হাসিয়ে তোলে।
সি_মেকার

খুব হিংস্র, তাই না!
NoChance

2
এইটা না. আমার বিড়ালছানা এটি সঙ্গে ঘুমায়। সুতরাং এটি অহিংস।
টমাস এডিং

11

"জিনিসগুলি যতটা সম্ভব সহজ করুন, তবে সহজ নয়" -আইনস্টাইন

কোডটি যতটা সম্ভব সহজ রাখা, তবে সমস্যাটি সমাধানের উপর সহজ নয়। যতক্ষণ সমস্যার সমাধান হচ্ছে ততক্ষণ পরিবর্তিত হতে থাকে, তেমনি KISSও করে।

ওভার ইঞ্জিনিয়ারিংয়ের মধ্যে ভারসাম্য রয়েছে (ওহ মানুষ এটি আমার ডিজাইনের প্যাটার্ন দক্ষতা দেখানোর জন্য দুর্দান্ত জায়গা বলে মনে হচ্ছে!) এবং আন্ডার ইঞ্জিনিয়ারিং (কেবল যদি আমি কোনও কারখানা ব্যবহার করি তবে আমার এই সংযুক্তিটি না থাকায় আমার 20 টি তৈরি হয়েছিল কোড পরিবর্তন ...)। লক্ষ্যটি রক্ষণাবেক্ষণযোগ্যতা।


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

11

সরল মানে ভাল প্রোগ্রামিং নীতিগুলি ভঙ্গ করা হয় না। আসলে এটি এর বিপরীত আরও বেশি বোঝায়।

সিম্পল এর অর্থ খুব সংক্ষিপ্ত যে এটি বজায় রাখা এবং প্রসারিত করার পক্ষে কঠোর হলেও কাজ করে?

না। বজায় রাখা এবং প্রসারিত করা কঠিন হওয়া জটিলতার একটি বড় লক্ষণ। প্রকৃতপক্ষে, আমি দেখতে পেয়েছি যে কোডকে এক্সটেনসিবল তৈরি করা সহজ কোডের দিকে নিয়ে যায়, যেহেতু আপনি প্রতিটি একক ক্ষেত্রে আরম্ভ করার জন্য ডিল করেন না, তাই আপনি বেস কোডটিকে আরও সহজ রাখতে পারেন।

সিম্পল মানে কি অনেকগুলি ওওপি নীতিমালা ভঙ্গ করা?

না। বেশিরভাগ ওওপি নীতিগুলি কোড ক্লিনার এবং আরও সুসংহত রাখতে ডিজাইন করা হয়েছে, যা শেষ পর্যন্ত সহজ is

সহজ কি প্রতারণার অর্থ?

না। কোড এবং হ্যাক বজায় রাখতে কঠোর লিখিত সময়সীমার সময়সীমার আওতায় রাখা হয়।

সিম্পল মানে কি কোনও বিলম্ব ছাড়াই কেবল সময়সীমাটি রাখা? প্রভৃতি

না। সময়সীমা এবং আপনার কোডের সরলতা দুটি পৃথক সমস্যা। সাধারণ কোডটি লেখার ক্ষেত্রে বেশি সময় লাগে না (যদিও এটি একটি সাধারণ ভুল ধারণা)।


হতে পারে আপনি মনে করেন যে আমি সেই ভুল ধারণা থেকে ভুগছি, তবে আমি মনে করি যে আদর্শ সহজ সমাধানটি আমাদের কাছে সর্বদা প্রথম দেখা যায় না, তাই মাঝে মাঝে সহজ কোডটি লিখতে প্রাথমিকভাবে সময় লাগে না - পরে আপনি সেই সময়টি তৈরি করেন এবং আরও কিছু পরে জটিলতা মোকাবেলা না করে।
25:25

6

এটি ব্যাখ্যা করা খুব জটিল কারণ সাধারণের অর্থ সবার কাছে একই জিনিস নয়।

উদাহরণ। কিছু ডেভস ?:এটিকে সহজ বলে মনে করেন তবে অন্যরা মনে করেন একটি ifবিবৃতি আরও ভাল। এই স্তরের নীচে নেমে গেলে, আপনি সবাইকে খুশি করতে পারবেন না।

সাধারণভাবে, জটিলতা ছাড়াই সহজ উপায় । সরলতা বোঝার জন্য আমাদের জটিলতা বুঝতে হবে।

দুটি ধরণের জটিলতা রয়েছে:

প্রয়োজনীয় জটিলতা এমন পরিস্থিতিতে বোঝায় যেখানে সমস্যার সমস্ত যুক্তিসঙ্গত সমাধান জটিল হতে হবে (এবং সম্ভবত বিভ্রান্তিকর) কারণ "সরল" সমাধানগুলি পর্যাপ্ত পরিমাণে সমস্যার সমাধান করতে পারে না। - উইকিপিডিয়া

দুর্ঘটনাজনিত জটিলতা হ'ল জটিলতা যা কম্পিউটার প্রোগ্রাম বা তাদের বিকাশ প্রক্রিয়া (কম্পিউটার প্রোগ্রামিং) এ উদ্ভূত হয় যা সমস্যার সমাধান করা অপ্রয়োজনীয়। - উইকিপিডিয়া

নিম্নলিখিত প্রশ্নগুলির সাথে আপনি প্রয়োজনীয় জটিলতাটি পরীক্ষা করতে পারেন:

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

আপনার দুর্ঘটনাজনিত জটিলতা পরীক্ষা করা হচ্ছে:

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

আপনি যদি কেবল এটি সম্পর্কে পড়ার কারণে নিজেকে ডিজাইনের প্যাটার্নটি ব্যবহার করতে চাইছেন তবে এটি সম্ভবত দুর্ঘটনাজনিত জটিলতার পরিচয় দিতে চলেছে। আপনি যদি নিজেকে কিছু মনে করতে চাইছেন কারণ আপনি 'স্মার্ট' বলে মনে করেন এটি সম্ভবত দুর্ঘটনাজনিত জটিলতার পরিচয় দেবে।

আমি আশা করি এটি সাহায্য করে এবং ভুলে যাবেন না: সরল অর্থ সহজে নয়


1
প্রয়োজনীয় এবং দুর্ঘটনাজনিত জটিলতার ক্ষেত্রে সরলতার সংজ্ঞা দেওয়ার জন্য +1।
Zach

2

আমি সবসময় অনুভব করেছি যে এক্স 11 এর পিছনের মূলনীতিগুলি ( http://en.wikedia.org/wiki/X_Window_S systemm# প্রিন্সিপাল ) যথাযথভাবে গ্রহণযোগ্য। আমি সবসময় এই লক্ষ্যে সফল হই না।

বিশেষত, আমি নিজেকে স্মরণ করিয়েই রাখছি ... "যদি না এমন কিছু বাস্তব প্রয়োগের প্রয়োজন হয় যা আপনি না জানেন তবে নতুন কার্যকারিতা যুক্ত করবেন না।", এবং "আপনি যদি 10 শতাংশ কাজের জন্য কাঙ্ক্ষিত প্রভাবের 90 শতাংশ পেতে পারেন, সহজ সমাধান ব্যবহার করুন। "


1

প্রশ্নটি: আপনি কিআইএসএসের নীতির শর্তে সিম্পল এর নির্ভুল সংজ্ঞা লিখতে পারেন? -আছে যদি.

না।


3
নিশ্চিত নয় যে এটি একটি উত্তর হওয়া উচিত। আপনি যদি এই ধরণের সংজ্ঞা দিতে না পারেন, তবে আপনার আইএমএইচওর উত্তর দেওয়া উচিত নয়। আপনি যদি মনে করেন যে একটি সাধারণ সংজ্ঞা সাধারণভাবে অসম্ভব, তবে আপনার কারণগুলি বিশদভাবে ব্যাখ্যা করা উচিত।
back2dos

এই উত্তরটি সম্পর্কে আমি যা পছন্দ করি তা হ'ল এটি চিঠির KISS নীতি অনুসরণ করে! +1
ট্র্যাব

সহজ কখনও কখনও জটিল হতে পারে।
জিএসটি

@ ব্যাক 2 এটির জোরালো দাবি; আমি "আমি জানি না" উত্তর পোস্ট করার কাছাকাছি যাই না don't
জেরেমি

0

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

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

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

অবশ্যই ... সর্বশেষ কয়েকটি বাক্যগুলি এইভাবে কাজ করবে: ক্লাসগুলিতে ব্যক্তিগত ফাংশনগুলি সংজ্ঞায়িত করার উপলব্ধতা রয়েছে, কেবল 50 টি লাইনারে ফাংশনগুলি বিভক্ত করার জন্য এই সম্ভাবনাটি ব্যবহার করুন যাতে এটি আরও বেশি পঠনযোগ্য হয় (ভাল নামগুলি ভুলে যাবেন না, সুতরাং আপনার এত মন্তব্য করার প্রয়োজন নেই)।

বাট: একটি পূর্ণাঙ্গ স্টপ রয়েছে যা দেখায় সবকিছু পড়ার চেয়ে আরও সহজ (!), যা আমি দেখিয়েছি: আমি একটি চিন্তাভাবনা শেষ করেছি, আসুন পরেরটি দিয়ে চলি।

আমি যেটিকে সাধারণ হিসাবে সংজ্ঞায়িত করব ts

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