আপনি প্রোগ্রামিংয়ের 1 ম নীতি (গুলি) কী বিবেচনা করেন?


59

আমি সর্বদা নিজেকে জিজ্ঞাসা করতে পছন্দ করি "এর প্রথম নীতিটি কী?" আমি কিছু প্রাথমিক জিনিস শিখার পরে (যেমন প্রোগ্রামিং)। এটি একটি অনুপ্রেরণামূলক প্রশ্ন, আইএমও, যা আপনাকে কোনও কিছুর পিছনে সর্বাধিক গুরুত্বপূর্ণ নীতি (গুলি) সম্পর্কে চিন্তা করতে বাধ্য করতে পারে, বিশেষত প্রোগ্রামিংয়ের মতো দক্ষতা।

সুতরাং, আপনি কি মনে করেন প্রোগ্রামিংয়ের প্রথম নীতি (গুলি)? আমি আমার উত্তরটি পরে একটু পরে দেব।


আমরা ফাইট ক্লাব নিয়ে কথা বলি না।
চাকরী

উত্তর:


97
  1. KISS - এটি সরল বোকা রাখুন
  2. DRY - নিজেকে পুনরাবৃত্তি করবেন না
  3. ইয়াগনি - আপনার দরকার নেই

কেআইএসএসটি কিপ ইট সিম্পল স্মার্ট হওয়া উচিত। আপনাকে প্রথমবার আপনার কোডের একটি বড় অংশ পুনরায় লিখতে হবে কারণ আপনি স্মার্ট এবং এক্সটেনসিবল ডিজাইন করেননি আপনি এতে সম্মত হবেন। :)

8
আমি মনে করি কেআইএসএসটি "সরল রাখুন, বোকা!"
ডেনিস সি

একজন প্রোগ্রামার হৃদয়ের কাছে এই দু'জন কীভাবে সবচেয়ে বেশি কাছের এবং প্রিয় এবং একই সময়ে তারা কিছুটা অক্সিমোরন হয় সে সম্পর্কে একটি ব্লগ পোস্টে আমি আসলে কাজ করছি - প্রায়শই আপনাকে অপরের বিপরীতে একটি বেছে নিতে হবে

10
আমি YAGNI যুক্ত করব।

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

37

কোডটি লিখুন যেমন এটি আপনারই ছিল তবে সেই কোডটি বজায় রাখতে হবে।


এটি একটি খুব ব্যবহারিক হিউরিস্টিক্স, 3x :)

19
কোড লিখুন যেন একটি কুড়াল-চালিত সাইকোপ্যাথ এটি বজায় রাখতে হবে। FTFY।
সেমিকোলন ভুলে

10
... এবং কুড়াল চালিত সাইকোপ্যাথ জানেন আপনি কোথায় থাকেন।
সিএডি

2
.., এবং সে কেবল তার কুঠারটি তীক্ষ্ণ করেছে ...
রোল্ট

1
... এবং তিনি আপনার পাশে কাজ করছেন।
ব্রোকন_উইন্ডো

29

যতটা সম্ভব অলস হয়ে উঠুন।


2
আবার খুব সাধারণ, আইএমও এটি "কীভাবে অলসতা সঠিক পরিমাণে অলসতা, সত্যিই?" এই প্রশ্নটি উত্থাপন করে কারণ স্পষ্টতই "slড়ু" এমন একটি জিনিস যা আপনি হতে চান না।

এটি পার্লের "অলসতা, অধৈর্যতা এবং হুব্রিস"

সুতরাং আমরা আলস্য বিভিন্ন ধরণের সম্পর্কে কথা বলছি? আমি "অলস" বব দ্বারা ভেবেছি "" আপনার কোডটি জট দেওয়ার আগেই এটির সংগঠিত করার ঝামেলা করবেন না ": ডি

2
খুব সাধারণ সেই সাদৃশ্য অনুসারে সমস্ত ভেরিয়েবল এবং ফাংশনগুলি 1 টি বর্ণ হবে কারণ আমি অর্থপূর্ণ কিছু টাইপ করতে 'খুব অলস' ছিলাম। ধরে নিলাম আমার এটি বজায় রাখতে হবে তবে তবে আপনি সম্ভবত সঠিক, কারণ আমি এটি যতটা সম্ভব সহজেই রক্ষণাবেক্ষণ করতে সক্ষম হব।
কাইল বল্লার্ড 21

3
@ কাইল: হ্যাঁ, এটাই কথা। "সত্যিকারের অলসতা" এখনকার পাশাপাশি ভবিষ্যতেও বিষয়গুলিকে সহজ করে তুলছে। যা সঠিকভাবে কাজ করার সমান হতে পারে। আপনি যদি এখন কম কাজ করেন তবে পরে আরও বেশি কাজ করেন, আপনি "যতটা সম্ভব অলস" হচ্ছেন না :) :)

23

জেন, প্রথম খণ্ড: প্রোগ্রামিং কেবল রাস্তা, পথ নয়।

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

জেন, দ্বিতীয় খণ্ড: আপনি যদি তাড়াহুড়া করেন তবে ধীরে ধীরে হাঁটুন। আপনি যদি সত্যিই তাড়াহুড়ো করেন তবে একটি প্রদত্ত পথ তৈরি করুন।

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

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

জেন, তৃতীয় ভাগ: আপনার পথটি জানুন, নিও।

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


আহ এবং তারপরে আবার: প্রোগ্রামিংয়ের কথা বলার সময় আমি জেন ​​ল্যান্ডে

@ পার্ট III - আপনার অভিনেত্রীকে বেতন না দিয়ে "অভিনব নতুন জিনিস" যুক্ত করবেন না!
জেসন

ম্যাট্রিক্স রেফারেন্সের জন্য +1। আমি একজন ভাল একজনের জন্য স্তন্যপানকারী (এটি এবং জেনটি আমাকে পাইথনের কথা

19

KISS (এটি সহজ, বোকা রাখুন)।

এটি "আপনি কীভাবে সহজ সংজ্ঞা দেবেন?" এবং এছাড়াও "হাতের কাজটির জন্য খুব সহজ কিছু যখন?" এজন্য আপনি কেবল প্রোগ্রামিংয়ের প্রথম নীতিটি জেনে ভাল প্রোগ্রামার হতে পারবেন না।


আমি মনে করি এটি খুব সাধারণ নিয়ম। এটি "আপনি কীভাবে 'সাধারণ' সংজ্ঞা দেন, সত্যিই" প্রশ্নটি উত্থাপন করে।

3
এবং যদি আপনি বোকা হন তবে কীভাবে জানবেন যে এটি সহজ ছিল?
স্টিভেন এ। লো 19

এটি একটি ভাল, স্টিভেন :)

1
"এই কারণেই আপনি কেবল প্রোগ্রামিংয়ের প্রথম নীতিটি জেনে ভাল প্রোগ্রামার হতে পারবেন না" - এটি পছন্দ করুন।

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


16

চাকা পুনরুদ্ধার করবেন না।


চাকাটি পুনরায় উদ্ভাবন করা উচিত কিনা সে প্রশ্নের প্রশ্নের সঠিক উত্তরটি সর্বদা "এটি নির্ভর করে"। সুতরাং "চাকাটি পুনর্বিবেচনা করবেন না" কেবল এতদূর চলে। এটি বেশিরভাগ সময় ভাল উত্তোলন হিসাবে কাজ করতে পারে তবে প্রতিবার তা নয়।

5
কিছু "চাকা" পুনর্নবীকরণ করা প্রয়োজন।

ডানলপকে বলুন। তিনি বায়ুসংক্রান্ত টায়ার আবিষ্কার করেছিলেন। যদি চাকাটি পুনরায় সজ্জিত করা তাঁর পক্ষে না হয়, তবে আমাদের খুব সুন্দর গণ্ডগোলের যাত্রা হত।
কিব্বি

3
কীভাবে: কেবল চাকাটি
পুনর্সামান

16

সমস্যাটি আগে বুঝুন!


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

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

ভাল উত্তর. প্রোগ্রামাররা সমস্যার সম্পূর্ণ প্রয়োজনীয়তা সঠিকভাবে বুঝতে না পারলে ঘন্টা এবং ঘন্টা নষ্ট হয়।
স্টিভ ওয়ার্থহ্যাম

সমস্যাটি হ'ল: আপনি কীভাবে জানবেন যে আপনি সমস্যাটি বুঝতে পেরেছেন?
ক্যামেল ক্যামেল ক্যামেল 21 '20

13

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

আমি মনে করি এটি মডুলার ডিজাইনের সাথে কাজ করে: বিদ্যমান কোডটি নতুন করে ডিজাইন না করে ভবিষ্যতের বৈশিষ্ট্যগুলি বাড়ানো যেতে পারে।


12

কখন প্রোগ্রাম করবেন না জেনে।


পৃথিবীতে এর অর্থ কী?

আর কবে?

কখনও কখনও আপনার ব্যবহারকারীর সমস্যাটিকে আলাদাভাবে মোকাবেলা করতে হবে - কেবল কোনও সমাধানের কোড নয়।

মানুষের রায় এবং সিদ্ধান্ত গ্রহণ সব কিছুরই অংশ; কখনও কখনও রায় স্বয়ংক্রিয় করার চেষ্টা করার কোন মানে হয় না।
এস.লট

1
তার অর্থ হ'ল শেল্ফ অ্যাপ্লিকেশন, উপাদান বা লাইব্রেরিগুলি কিনে অনেক প্রোগ্রামিং সমস্যাগুলি সস্তা এবং আরও সময়োচিত সমাধান করা যায়।
গর্ডন বেল

11

কফি ইন, কোড আউট।


3
আমার ক্ষেত্রে চা =)

আরও +1 এইচএমএম "কফি ইন, কোড + প্রচুর লু ব্রেক আছে?" :) আমি কফি এবং চা উভয়ই পছন্দ করি, আমি উভয় পথেই
দুলছি

10

যদি এটি পরীক্ষা না করা হয় তবে এটি ভেঙে গেছে।


আমি তার সাথে একমত

7

সফ্টওয়্যার ডিজাইন তৈরির দুটি উপায় রয়েছে: একটি উপায় হ'ল এটিকে এত সহজ করা যে স্পষ্টতই কোনও ঘাটতি নেই এবং অন্য উপায়টি এটিকে এত জটিল করে তোলা হয়েছে যে কোনও স্পষ্ট ঘাটতি নেই। প্রথম পদ্ধতি অনেক বেশী কঠিন।

- চার্লস অ্যান্টনি রিচার্ড হোয়ার


6
  1. কারণ এবং প্রভাবের মধ্যে পার্থক্য (কম্পিউটারের সাথে কাজ করা)

  2. সত্য এবং মতামতের মধ্যে পার্থক্য (মানুষের সাথে কাজ করা)

  3. যতটা সম্ভব সহজ, তবে কোনও সহজ (নকশা)


5

প্রোগ্রামিং একটি শেষ নয়। অথবা সম্ভবত, "ক্যান মানেই হওয়া উচিত নয়।"


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

ভাল বলেছ! আরও সম্মত হতে পারছি না
অ্যান্টনি

5

আমার মতে, সবচেয়ে গুরুত্বপূর্ণ নীতি জটিলতা হ্রাস দ্বারা ভাল বিমূর্ত সৃষ্টি

এটা অন্তর্ভুক্ত

  • সমস্যাটি সমাধান করতে বুঝতে,
  • এটির জন্য উপযুক্ত সমাধান ডিজাইন করা এবং
  • এটি বাস্তবায়ন,
  • পছন্দসইভাবে এমন একটি উপায়ে যা কোডটি বোধগম্য এবং বজায় রাখে,

তবে এড়াতে সক্ষম অতিরিক্ত জটিলতা সৃষ্টি রোধ করার জন্য যেখানে বিমূর্ততা তৈরি করা বন্ধ করতে হবে এবং বাস্তবায়ন প্রযুক্তির মৌলিক বৈশিষ্ট্যগুলিতে (যেমন ডাটাবেস সিস্টেম, প্রোগ্রামিং ল্যাঙ্গুয়েজ) নেমে যেতে হবে সেই বিষয়েও দৃ determination়সংকল্পবদ্ধ।


4

শ্রোতা মাথায় রেখে প্রোগ্রাম। তারপরে, ধরে নিবেন না যে আপনি যা লিখেছেন তা আপনার বা অন্য কেউ পড়েন এবং রক্ষণাবেক্ষণ করবেন না।

এটির একটি ছদ্মবেশ: প্রমাণ করুন যে আপনি যে সমস্যাটি সমাধান করার চেষ্টা করছেন তা আপনার ভেরিয়েবল এবং ফাংশন এবং ক্লাসগুলির নামকরণের মাধ্যমে ভাল করে দিয়েছেন!


4

আপনি এটি পরীক্ষায় না দেখানো পর্যন্ত এটি কাজ করে না


6
এটি সত্য নয়, আমি প্রচুর কোড লিখেছি যা কাজ করে এবং পরীক্ষিত হয় না! : ডি

1
"আমি এটি পরীক্ষা করে দেখিনি, আমি কেবল প্রমাণ করেছি যে এটি সঠিক" :)
ড্যানিয়েল দারানাস

4

প্রথমে চিন্তা করুন, পরে কোড করুন।

আপনি যতটা স্মার্ট তার কাছে আপনি আর কাছে নন। প্রশ্ন কর. আপনার সহকর্মীদের মূল্য দিতে শিখুন।

ডিবাগ করার সময়, প্রথম উত্তরটি প্রায় সবসময়ই ভুল হয়ে যায়।

আপনি যে কোডটি টস আউট করার উদ্দেশ্য নিয়ে লিখেছেন তা অনেক বড় প্রক্রিয়ার ভিত্তি হয়ে যায়। অলসভাবে লিখিত কিছু কখনও রাখবেন না।


3

কোনও সমস্যা ইন্ডিয়ারেশনের অন্য স্তর দিয়ে সমাধান করা যেতে পারে।


প্রকৃতপক্ষে, অত্যধিক ইন্ডিয়ারেশন থাকা নিজেই চিহ্নিত হওয়া এবং সমাধানের জন্য অপেক্ষা করা একটি সমস্যা। সুতরাং ..

সমাধান ... ইন্ডিয়ারেশনের অন্য স্তর দ্বারা! =)
এরিক ফোর্বস

অদ্ভুতভাবে যথেষ্ট, এটি সত্য। বসন্ত দেখুন ...


3

মূলনীতি: সফটওয়্যার হ'ল নলেজ ক্যাপচার

ফলাফল: জ্ঞানের উপস্থাপনের জন্য অনেক কৌশল, সমস্তই অ্যাবস্ট্রাকশন ভিত্তিতে প্রতিষ্ঠিত । আমাদের স্তর, স্তর, encapsulation, উদ্বেগ পৃথকীকরণ দেয়।

প্রক্রিয়া উপস্থাপনের জন্য অনেক কৌশল, সমস্তই সিকোয়েন্স , পছন্দ , পুনরাবৃত্তির উপর প্রতিষ্ঠিত ।



3

সর্বদা কোড লিখুন যেন যে ব্যক্তি এটি বজায় রাখবেন তিনি হচ্ছেন মনোবিজ্ঞানমূলক সিরিয়াল কিলার যিনি জানেন আপনি কোথায় থাকেন

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


2

আমি ডিজিটাল ইলেক্ট্রনিক্স অধ্যয়ন করার মাধ্যমে প্রোগ্রামিংয়ে প্রবেশ করি, তাই আমি অনুমান করি যে আমার জন্য প্রাথমিক লজিক গেটগুলি (না, এবং, বা জোর, বোঝা) প্রোগ্রামিংয়ের প্রথম নীতি ছিল।



2

ময়লা-আবর্জনা বাইরে - ডেটা খারাপ হলে আপনার ইউজার ইন্টারফেসটি কত সুন্দর তা বিবেচনা করে না।


2

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


2

আউটপুট দিয়ে শুরু করুন এবং পিছনে কাজ করুন।

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