কীভাবে কম কোড লিখবেন [বন্ধ]


12

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

আমার প্রশ্ন হ'ল এটি যদি এমন কিছু হয় যা কেবল অভিজ্ঞতার সাথে আসে বা এটি এমন কিছু যা আপনি সেই গুণটি বিকাশের জন্য স্পষ্টভাবে করতে পারেন?


6
প্রবণতাটি প্লট করুন এবং কখন আপনি এক্স-অক্ষটি অতিক্রম করবেন তা দেখুন ...

1
ম্যাক্রোস, ম্যাক্রোস, ম্যাক্রোগুলিকে বাধ্যতামূলক পয়েন্টার: পলগ্রাহাম.com
ভেমভ

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

2
-1: ছদ্মবেশে এটি নিজেকে অভিনন্দন বলে মনে হচ্ছে।
জিম জি।

আমি পঠনযোগ্য পয়েন্ট ফ্রি কোডটি এখনও দেখিনি। কোনও উল্লেখযোগ্য লাইব্রেরিতে নেই।
সাইমন বার্গোট

উত্তর:


12

আমি বলতে চাই যে সামগ্রিকভাবে এটি এমন কিছু যা সময় এবং অভিজ্ঞতা নিয়ে আসে তবে আপনি দেখতে পাবেন যে আপনি যদি আরও নিবিড় ভাষা নিয়ে কিছু কাজ করেন তবে আপনি সেই গুণটি আপনার নিয়মিত কাজের ভাষায় ফিরিয়ে আনবেন।

অবশ্যই এক বা দু'বছর পরে রুবির সাথে কাজ করার পরে আমি দেখতে পেলাম আমার সি # প্রচুর পরিমাণে টাউটার পেয়েছে। আমি মনে করি যদি আমি কার্যকরী প্রোগ্রামিংটি আরও ভালভাবে বুঝতে পারি (চলমান উচ্চাভিলাষ) আমি সম্ভবত এটি থেকে আরও নেব।

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

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

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

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

আপনি যদি ভাবছেন যে কিছু করার আরও ভাল উপায় আছে কি না, সম্ভবত সেখানে রয়েছে এবং কীভাবে আরও কীভাবে আরও ভাল করতে হয় তা সন্ধান করার পক্ষে সর্বদা মূল্যবান।


হ্যাঁ, আমার মতে, ব্যক্তিগত এক-লাইন কার্যকারিতার একমাত্র কারণ

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

কিছুটা দ্বন্দ্ব, আরও বেশি কার্যকারিতা তবে কম রেখার মতো শোনাচ্ছে তবে আমার

এই নির্দেশিকা অনুসরণ করা যেতে পারে যে আপনি আরও কি কিছু আছে? মনে হচ্ছে এগুলি আমার মতো কোনও তরুণ দেবের পক্ষে কার্যকর হতে পারে।
স্টুয়ার্টম্লার্ক

@ স্টুয়ার্টম্লার্ক - আমি আরও কিছু যুক্ত করেছি, যদিও আমার সন্দেহ আছে যে সেখানে খুব বেশি কিছু নেই যা আপনি অন্য কোথাও শোনেন নি।
glenatron

16

কম কোড লেখার একটি দুর্দান্ত উপায় হ'ল চাকাটি পুনরায় উদ্ভাবন এড়ানোর চেষ্টা করা এবং যখন উপলব্ধ থাকে তখন বিদ্যমান সফ্টওয়্যার উপাদানগুলি ব্যবহার করা।

লোকেরা কেন তাদের নিজস্ব ওআরএম, বা তাদের নিজস্ব লগিং ইঞ্জিন, বা তাদের নিজস্ব ইউআই উপাদানগুলি বা তাদের নিজস্ব সমস্ত কিছু করেছে তা জিজ্ঞাসা করার সময় আমি একটি সাধারণ উত্তর পেয়েছি:

তবে আমাদের আরও ভাল

আমি বিশ্বাস করি যে এই বিবৃতিটি বেশিরভাগ ক্ষেত্রেই সঠিক, তবে বেশিরভাগ ক্ষেত্রে আরওআইয়ের নেতিবাচক প্রভাব খুব বেশি। তুমি মা সবচেয়ে ভাল খাবার রান্না করেছ? তবে আপনি মাকে বাড়িতে আসতে এবং প্রতিদিন তাদের প্রস্তুত করতে বলতে পারবেন না।

এ কারণেই আমি মনে করি যে বিকাশকারীদের তাদের পছন্দগুলির আর্থিক প্রভাবের জন্য আগ্রহী হওয়া উচিত। এর মধ্যে কয়েকটি হ'ল:

  • উপাদানটি তৈরি করতে অতিরিক্ত কাজ প্রয়োজন
  • এটি শিখতে নতুন আগতদের জন্য অতিরিক্ত কাজ
  • এটি বজায় রাখতে বিশাল অতিরিক্ত কাজ

আমি ভাবতে চাই যে সেই উপাদানগুলির বিক্রেতারা আপনার বর্ধিত দল যা আপনি নিজেরাই এটি নির্মাণ, রক্ষণাবেক্ষণ এবং উন্নতির জন্য যে অর্থ দিয়েছিলেন তার ক্ষুদ্র ভগ্নাংশের জন্য আপনার জন্য কাজ করছে।

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


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

কখনও কখনও এটি কোনও প্রদত্ত কাঠামো সম্পর্কে আপনার জ্ঞানের অভাবের কারণে হয়। আমি আমার নিজের পথ বর্গ খুব লিখতে যখন আমি .NET এর সাথে কাজ করা শুরু করেছিল, তারপর আমি System.IO.Path বর্গ আবিষ্কৃত কয়েক দিন পরে :-)

আমি আমার মায়ের স্প্যাগেটি পছন্দ করেছি, তবে জারের জিনিসগুলি যথেষ্ট ভাল ছিল। এটি প্রয়োজনীয়তার দায়িত্বে থাকা ব্যক্তিদের পক্ষে সত্যিই ফোটে। যদি তারা 85% সমাধানের সমাধান না করে তবে আপনার কোনও বিকল্প নেই have
জেফো

আমার মা স্প্যাগেটি তার থেকে আরও ভাল করে।

1
"চাকাটির পুনরায় উদ্ভাবন এড়ানোর জন্য" ইন্টারনেটস। আমি যে অত্যন্ত গুরুত্বপূর্ণ দক্ষতার বিকাশ করেছি তার মধ্যে একটি এমন সমস্যা চিহ্নিত করতে সক্ষম হচ্ছিল যা সম্ভবত কেউ ইতিমধ্যে সমাধান করেছে। আমি প্রায়শই উপেক্ষা করতাম এমন একগুচ্ছ মামলাগুলি পরিচালনা করার মাধ্যমে আমি নিজেই উত্পাদিত হওয়ার চেয়ে প্রায় সবসময়ই আমাকে আরও ভাল সমাধান দেয় না, এটি আমাকে যে সমস্যার সমাধান করতে হয় তা বাস্তবায়িত করার জন্য মুক্ত করে দেয় ।
ব্লেয়ারহিপ্পো 4-10

5

আমার মতে, কম কোড লেখা বিভিন্নভাবে করা যেতে পারে:

  • তুমি নয় এটি প্রয়োজন । আপনার প্রয়োজন নেই এমন কিছু কোড করবেন না। কোড শুধুমাত্র প্রয়োজনীয়তা রাষ্ট্র। এইভাবে, আমরা লেখার জন্য প্রয়োজনীয় কোডটি হ্রাস করব।

  • নিজেকে পুনরাবৃত্তি করবেন না । আমি বিশ্বাস করি সিআরএম, ফ্রেমওয়ার্ক বা তৃতীয় পক্ষের গ্রন্থাগারটি ডিআরওয়াই নীতি প্রয়োগের এক উপায়।

  • বিমূর্ততা । এবং সর্বশেষে তবে সর্বনিম্ন নয়, বিমূর্তকরণ প্রোগ্রামিং কোডটি খুব বেশি হ্রাস করতে পারে। কোড বিমূর্ত করে কোডটি পুনরায় ব্যবহারের সুযোগ আরও বাড়বে কারণ এটি সদৃশতা হ্রাস করে।


3

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

সমস্যাটি সম্পর্কে আপনার ভাল ধারণা রয়েছে তা নিশ্চিত করুন। এটি বিশ্লেষণ করুন, সমাধান (গুলি) নিয়ে আসুন, উপকারিতা এবং বিপরীত বিষয়গুলি বিবেচনা করুন (অবশ্যই "একটি 'এর' এর সাথে সমাধানগুলি সমস্যা থেকে সমস্যার ক্ষেত্রে অনেক বেশি পরিবর্তিত হবে - কেবল সাধারণভাবে এখানে বলছি)) তারপরে নির্বাচিত সমাধানটির বাস্তবায়ন রয়েছে, যা ভাষা যেখানে আপনার বোঝার (এবং কাঠামোর, যদি এটি প্রয়োগ হয়) কার্যকর হয় is


সলিউশন প্রোগ্রামিং বনাম সমাধানটি প্রস্তুত করতে আপনি কত সময় ব্যয় করেন?

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

1

প্রোগ্রামিংয়ের সম্পূর্ণ শিল্পকে কেবল এটিতে নেমে আসতে বলা যেতে পারে।

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


1

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


সুতরাং আমার কোডটি পুনর্বিবেচনা করা উচিত এবং কীভাবে কম কোড লিখতে হবে বা পাইট যেমনটি বলে, তারার কোডটি হ্যান্ডেল পাওয়ার জন্য এটি পুনরায় রিচার্টর করা উচিত?

2
@ জর্জেন - আপনি সময় পেলে বা এক ঘন্টা আগে আপনি যে কোনও কোড লিখেছিলেন তা দেখতে পারা যায়। কখনও কখনও এসও-তে একটি উদাহরণ সন্ধান করা আপনাকে ফিরে যেতে এবং আপনার নিজের কোডে কিছু পরিবর্তন করতে অনুরোধ করতে পারে।
JeffO

0
  1. আপনার পুরানো দীর্ঘ ঘূর্ণিত কোডটি আবার ফিরে যান,
  2. এটি সংস্করণ নিয়ন্ত্রণে রাখুন,
  3. এর জন্য কিছু পরীক্ষা লিখুন যাতে যুক্তিযুক্ত আশা নতুন বাগগুলি প্রবর্তন না করে,
  4. পুনর্লিখন।

বিজ্ঞাপনের পুনরাবৃত্তি করুন। এবং জাহান্নামে স্বাগতম।


-2

পরীক্ষা চালিত বিকাশ সাহায্য করতে পারে। এটি ব্যবহার করে আপনি সেই পরীক্ষায় উত্তীর্ণ হওয়ার জন্য প্রয়োজনীয় ন্যূনতম কোডটি লিখেন।


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