কোডটি দক্ষতার সাথে কার্যকর করার সাথে সাথে আপনার পাঠযোগ্যতার ত্যাগ করা উচিত? [বন্ধ]


37

কোডটি দক্ষতার সাথে কার্যকর করার সাথে সাথে আপনার পাঠযোগ্যতার ত্যাগ করা উচিত?

উদাহরণস্বরূপ 3 লাইনের কোড 1 লাইনে

আমি পিট গুডলিফের কোড ক্রাফ্টে পড়েছি যে পঠনযোগ্যতা চাবিকাঠি।

আপনার চিন্তাগুলো?


13
আপনি কেন কম লাইনের কোড সম্ভবত আরও কার্যকর বলে মনে করেন? আধুনিক ভাষার ক্ষেত্রে এটি খুব কমই ঘটেছে, যদিও এটি 8-বিট বেসিক দোভাষীকে প্রয়োগ করা হতে পারে।
ডেভিড থর্নলি

69
পাঠযোগ্যতা বা কর্মক্ষমতা উভয়ই লাইনগুলিতে পরিমাপ করা হয় না।

খুব কম ক্ষেত্রে, আমি গতির জন্য পাঠযোগ্যতার ত্যাগ জানাতাম, তবে খুব কমই। এম্বেড কোড উচ্চ গতির যন্ত্রপাতি চালানো একটি ক্ষেত্রে। বেশিরভাগ সফ্টওয়্যারের জন্য, পঠনযোগ্যতা আরও গুরুত্বপূর্ণ।
জিম সি


পারফরম্যান্স সমস্যা না হওয়া পর্যন্ত আমি সর্বদা পঠনযোগ্যতার পক্ষে থাকি। তারপরে আমি এটি নিয়ে উদ্বেগ শুরু করব।
পিট

উত্তর:


62

"কম লাইনগুলি" সবসময় "আরও দক্ষ" হিসাবে একই জিনিস হয় না। আমি ধরে নিলাম আপনার অর্থ "পাঠ্যযোগ্যতার ব্যয়ে কোনও প্রোগ্রামকে ছোট করা উচিত"।

লোকেরা পড়ার জন্য প্রোগ্রামগুলি অবশ্যই লিখতে হবে, এবং ঘটনাক্রমে কেবল মেশিনগুলি সম্পাদন করতে পারে।

-এবেলসন এবং সুসমান, কম্পিউটার প্রোগ্রামগুলির গঠন এবং ব্যাখ্যা

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

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


3
+1 কমছে রিটার্ন, তবে আমি এটিও পেয়েছি যে একটি দীর্ঘ প্রোগ্রামের চেয়ে একটি ছোট প্রোগ্রাম পড়া সাধারণত সহজ।
মাইকেল কে

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

1
আমি ভ্যাটিনের সাথে একমত কখনও ফিরে যান এবং এমন কিছু বের করার চেষ্টা করুন যা আপনি একবার ভেবেছিলেন "পুরোপুরি পরিষ্কার" উপায় কখন ছিল?
ওয়াঙ্কো দ্য সনে

এসআইসপির জন্য + 1 দুর্দান্ত বই।
জেসন ইয়েও

30

কখনও কখনও হ্যাঁ.

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

পরবর্তী উদাহরণগুলির জন্য , উইকিপিডিয়ায় ফাস্ট ইনভার্স স্কোয়ার রুট নিবন্ধটি দেখুন।

আমি সাধারণত মনে করি যে প্রথমে কিছু পড়ার যোগ্য করা এবং তার পরে কর্মক্ষমতা সম্পর্কে চিন্তিত হওয়া ভাল ^ (এন) এর উপরে কোনও ও (এন g 2) অ্যালগরিদম না বেছে নেওয়ার মতো সাধারণ জ্ঞানের সতর্কতা অবলম্বন করা ভাল। একাকী বংশবৃদ্ধির স্বার্থে পাঠযোগ্যতার ত্যাগের বিষয়টি আমার মনে বিপথগামী।


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

@ ম্যাগ্লোব আমি বিশেষত 0x5f3759df ব্যবহারের কথা উল্লেখ করছিলাম। কর্মক্ষমতা বিবেচনা না করে, আপনি নিয়মিত বিভাগ ব্যবহার করে আইএসআর অ্যালগরিদম প্রয়োগ করতে পারেন, এটি সম্ভবত কম্পিউটারের অভ্যন্তরগুলির সাথে কম পরিচিত কোনও ব্যক্তির পক্ষে আরও পঠনযোগ্য।
অ্যাডাম শিখুন

3
এটি সম্ভবত "5 টি মন্তব্য লাইনের এবং 20 টি কোডের কোডের 15 টি লাইনের মন্তব্যে এবং 5 টি লাইনের কোডে প্রকাশিত একটি পরিশীলিত অ্যালগরিদমের সাথে প্রকাশিত একটি নিষ্পাপ অ্যালগরিদম প্রতিস্থাপন করা কখনও কখনও সঠিক" হিসাবে প্রকাশ করা যেতে পারে।
পিটার টেলর

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

ইন্টারনেটের বিস্ময়ের মধ্যে একটি -> জটিল অ্যালগরিদম প্রয়োগ করার সময় (উদাহরণ: তির্যক অপ্টিমাইজেশনের সাথে লেভেনস্টেনের দূরত্ব ... আমি কেবল এটিতে কাজ করছি;)), কেউ হয় একটি নিবন্ধ উল্লেখ করতে পারে বা ডকুমেন্টেশনে নিবন্ধটি অনুলিপি করতে পারে প্রকল্পের এবং কোডে একটি রেফারেন্স রাখুন। এই পদ্ধতিতে অ্যালগরিদমগুলি জানা লোকেরা কেবল সেই মন্তব্যগুলি অনুসরণ করে যা নির্দিষ্ট পরীক্ষা / অপ্টিমাইজেশান ব্যাখ্যা করে, যখন প্রাথমিকভাবে প্রথমে অ্যালগরিদম সম্পর্কে পড়তে হবে এবং তারপরে পুনরায় বাস্তবায়নে ফিরে আসতে হবে।
ম্যাথিউ এম।

22

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

এটি পুনর্লিখনটি অবশ্যই অপঠনযোগ্য হতে হবে তা বলে না।


22

আমি আগে এটি উদ্ধৃত করেছি , এবং আমি আবার উদ্ধৃত:

এটি সঠিক করুন,
এটি পরিষ্কার করুন,
সংক্ষিপ্ত করুন,
দ্রুত করুন।

সেই জন্য.

ওয়েস ডায়ার


2
এই উদ্ধৃতিটি অন্তর্ভুক্ত ছিল কিনা তা নিশ্চিত করার জন্য আমি দ্রুত স্ক্রোল করে যাচ্ছিলাম। এখন আমাকে কোনও উত্তর দিতে হবে না। :-)
যৌক্তিকগীত

9

কোডটি কীভাবে দক্ষ কোডের সাথে পাঠযোগ্যতার ত্যাগ করতে হবে?

কোডের ক্ষেত্রে, স্ব নথিভুক্ত হওয়া সর্বদা সুন্দর। কিন্তু কখনও কখনও এটি ঘটতে পারে না। কখনও কখনও আপনাকে অনুকূল করতে হবে এবং কখনও কখনও সেই কোড নিজেই খুব পঠনযোগ্য হয় না।

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

আমার মনে আছে, কয়েকটি বেসিক মন্তব্য না করার জন্য একেবারে কোনও অজুহাত নেই। স্পষ্টতই if ( x == 0 ) /* check if x is 0 */সম্পূর্ণ অকেজো; আপনার কোডে অপ্রয়োজনীয় গোলমাল যুক্ত করা উচিত নয়, তবে এর মতো কিছু:

; this is a fast implementation of gcd
; in C, call as int gcd(int a, int b)
; args go in rdi, rsi, rcx, r8, r9
gcd:
    push rdp
    ; ...

বেশ সহায়ক।


6

কোডটি কীভাবে দক্ষ কোডের সাথে পাঠযোগ্যতার ত্যাগ করতে হবে?

দক্ষতা যদি আপনার বর্তমান লক্ষ্য (যেমন অনুকূলকরণের পর্যায়ে রয়েছে) এবং আপনি জানেন - আপনার মেট্রিক রয়েছে, তাই না? - কোডটির সেই লাইন (গুলি) হ'ল বর্তমান বাধা, তবে হ্যাঁ।

অন্যথায়, না: পঠনযোগ্যতা আপনাকে (বা অন্য কোনও) এই কোডটি আরও কার্যকর করার জন্য পরে এটি পরিবর্তন করতে সক্ষম করবে, কারণ এটি বোঝা সহজ।


4

কোড গল্ফ কেউ জিতেনি

উদাহরণস্বরূপ 3 লাইনের কোড 1 লাইনে

একটি বিশেষত ভয়ানক ধারণা।

কোড গল্ফ খেলতে খরচ - খুব বেশি।

অপঠনযোগ্য প্রোগ্রামগুলি বজায় রাখার জন্য ব্যয় - জ্যোতির্বিদ্যায়।

এই জাতীয় ন্যূনতম কোডের মান - শূন্য। এটি এখনও কাজ করে তবে কোনও "আরও ভাল" কাজ করে না।

বুদ্ধিমানের-নির্বাচিত দক্ষতা

ডান অ্যালগরিদম এবং ডেটা কাঠামো - মধ্যপন্থা চয়ন করতে ব্যয়।

ডান অ্যালগরিদম এবং ডেটা কাঠামো বজায় রাখার জন্য খরচ - কম low

ডান অ্যালগরিদম এবং ডেটা কাঠামোর মান - উচ্চ। রিসোর্সের ব্যবহার কম।

বোকা ("মাইক্রো-অপ্টিমাইজেশন") দক্ষতা

মাইক্রো-অনুকূলকরণের চারপাশে খেলতে ব্যয় - উচ্চ।

অপঠনযোগ্য, মাইক্রো-অপ্টিমাইজড কোড বজায় রাখার জন্য খরচ - খুব বেশি।

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


2

বিকাশকারী কোডটি কীভাবে দ্রুত লিখতে পারে তার ক্ষেত্রে কোডটি কত দ্রুত কার্যকর করে বা দক্ষতা কার্যকর করে তার ক্ষেত্রে দক্ষতার কথা বলছি কিনা তা নির্ভর করে। আপনি যদি খুব দ্রুত কোড টাইপ করতে সক্ষম হবার পক্ষে কোডের পঠনযোগ্যতা ত্যাগ করতে থাকেন তবে আপনি সম্ভবত ডিবাগিংয়ের ক্ষেত্রে নিজেকে রাস্তার নিচে সময় দিতে পারবেন find

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


2

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


2

আমি "পারফরম্যান্স ওভার পারফরম্যান্স" যুক্তি গ্রহণ করি না। আমি আপনাকে এটির উপর আলাদা স্পিন দিয়ে একটি উত্তর দেব Let

কিছু পটভূমি: আপনি কি জানেন যে আমাকে অসুস্থ করে তোলে? আমি যখন আমার কম্পিউটারে ডাবল ক্লিক করি এবং এটি প্রকৃতির জন্য আমাকে অপেক্ষা করতে হয়। যদি এটি 5 সেকেন্ডের বেশি সময় নেয় তবে আমি সত্যিই হতাশ হয়ে পড়ি। মূর্খ জিনিসটি, এবং কেবল এটির জন্য মাইক্রোসফ্টকে দোষ দেবেন না, কিছু ক্ষেত্রে এটি এত দিন নেওয়ার কারণটি হ'ল কোন আইকনটি দেখানোর জন্য কোনও সিদ্ধান্ত নেওয়া দরকার! সেটা ঠিক. সুতরাং আমি এখানে বসে আছি, কেবল আমার সি: ড্রাইভে যেতে আগ্রহী এবং আমার সিডি-রম অ্যাক্সেস করার জন্য ড্রাইভারকে অপেক্ষা করতে হবে এবং সেখান থেকে আইকনটি পড়তে হবে (ধরে নিই যে ড্রাইভে কোনও সিডি রয়েছে)।

ঠিক আছে. সুতরাং মাত্র এক সেকেন্ডের জন্য আমার মধ্যে থাকা সমস্ত স্তরগুলি আমার কম্পিউটারে ডাবল ক্লিক করে কল্পনা করুন এবং এটি আসলে ড্রাইভারদের মাধ্যমে সিডি-রোমে কথা বলছে। এখন কল্পনা করুন যে প্রতিটি স্তর ছিল ... দ্রুত ...

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

এখানে আমার পদ্ধতির: প্রথমে এটি কাজ করুন, তারপরে এটি আরও দ্রুত করুন। সর্বদা দক্ষ কোড লেখার লক্ষ্য করুন এবং যদি আপনার পঠনযোগ্যতা ত্যাগ করতে হয় তবে মন্তব্য সহ এটি পরিপূরক করুন। আমি দক্ষতা ত্যাগ করব না যাতে কিছু মধ্যম প্রোগ্রামার এটি বজায় রাখতে পারে। আমি তবে আমার কোডটি ব্যাখ্যা করব, তবে যদি তা পর্যাপ্ত না হয় তবে আমি দুঃখিত, আপনি এখানে কাজ করার জন্য কেবল অসমর্থ। কারণ এখানে, আমরা দ্রুত এবং পঠনযোগ্য কোডটি লিখি এবং যদিও একটি ভারসাম্য রয়েছে, পঠনযোগ্য কোডটি ব্যাখ্যা করা যেতে পারে যেখানে অদক্ষতা কেবল অগ্রহণযোগ্য।


"ঠিক আছে। সুতরাং এক সেকেন্ডের জন্য আমার কম্পিউটারের উপরের সমস্ত স্তরগুলি ডাবল ক্লিক করে আমার কম্পিউটারে কল্পনা করুন এবং এটি আসলে ড্রাইভারদের মাধ্যমে সিডি-রোমে কথা বলছে Now এখন কল্পনা করুন যে প্রতিটি স্তরটি ছিল ... দ্রুত ..." 2 ডিভিডি সহ আমার জন্য তাত্ক্ষণিক ড্রাইভ
রাঙ্গোরিক

একটি শব্দ: আপগ্রেড
jmort253

2
বন্ধুরা, আমার সাথে এখানে কাজ করুন, এটি একটি চিত্র ...
মালট্র্যাপ

@ রেঙ্গোরিক এটাকে আমি প্রযুক্তির অগ্রগতি হিসাবে উপহারের চেয়ে ক্রাচ হিসাবে ব্যবহার করি। এটি যদি আপনি ব্যবহারকারীদের আরও প্রায়ই তাদের ওয়ালেট খুলতে রাজি করতে পারেন তবে এটি শিল্পের পক্ষে ভাল কাজ করে।
জোনাথন নিউফিল্ড

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

2

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

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


1

খুব কমই পঠনযোগ্যতার ব্যয়ে কোডটি দ্রুত চালানোর ক্ষেত্রে আরআইআই এর পক্ষে উপযুক্ত হবে। আধুনিক কম্পিউটারগুলি এত দ্রুত চালিত হয় যে আমি সন্দেহ করি এমন একটি পরিস্থিতি ঘটবে যেখানে আপনি এটি চান। যদি কোনও কম্পিউটার কোড চালাচ্ছে তবে সেই কোডটি বজায় রাখা দরকার।

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

একটি ভাল উদাহরণ একটি পরিবর্তনশীল নাম: $a

কি $a?? এটি প্রসঙ্গের বাইরে তাই আপনি উত্তর দিতে পারবেন না তবে আপনি কি কখনও আসল কোডে এটিকে চালিত করেছেন? এখন ধরে নিন কেউ লিখেছেন $file_handle- এখন তা কি? এটি প্রসঙ্গের বাইরেও পরিষ্কার। চলক নামের দৈর্ঘ্য কম্পিউটারে একটি তুচ্ছ পার্থক্য করে makes

আমি মনে করি যে এখানে থাকতে হবে সাধারণ জ্ঞান আছে।

কিছু অ্যাপ্লিকেশন একটি বিট-শিফট শর্ট কাটের ওয়ারেন্ট দিতে পারে যা সমস্ত বুঝতে পারে না তবে আমি মনে করি যে এক পর্যায়ে কমছে রিটার্ন এবং একটি দৃশ্য খুঁজে পাওয়া বিরল *।

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


এটি অন্য দৃষ্টিকোণ থেকে দেখার জন্য (তবে কাঁপতে কাঁপতে নয়), আমি এমন একটি সংস্থায় কাজ করি যা SAAS করে does যখন কোনও সাইট নেমে যায় তখন আমাদের এটিকে সত্যিকারের, সত্যিই দ্রুত ঠিক করতে হবে - সাধারণত অন্য কেউ অন্য বিকাশকারীর কোডটি ঠিক করে চলেছে।

আমি চাই অনেক বরং কেউ খুব inefficiently কিছু করতে কিন্তু পাঠযোগ্য এটা অভিনব এবং "দ্রুত" করতে হয়। আমাদের ওয়েব সার্ভারগুলি প্রান্তটি কাটছে এবং একটি অনুরোধটি কয়েক সেকেন্ডের মিলিয়নেও সরবরাহ করার দরকার নেই। আমাদের লোডের সমস্যা নেই।

সুতরাং, অনুশীলনে আমার মনে হয় আপনি নিজের বা অন্যকে আঘাত করার সম্ভাবনা বেশি ... (বরং আমার সপ্তাহান্তে ফিরে আসবেন।)


1

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

x++; // Add one to x

বরং 6 মাস বা 12 মাস বা অন্য কোনও পর্যায়ে দীর্ঘ সময় আপনার পাঠককে মন্তব্য করুন। একটি কোডিং মান গ্রহণ করুন এবং এটি অনুসরণ করুন।


"আপনার সংকলকটির কাজটি করতে বিশ্বাস করুন" এর জন্য +1। এটি আমার নতুন স্কাইপ মন্তব্য।
jmort253

0

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

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

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


-1

অযোগ্যতা ও অলস প্রোগ্রামারদের জন্য পঠনযোগ্যতা একটি অজুহাত (ক্রপ্প অ্যালগোরিদম / ডিজাইনের পক্ষ থেকে যুক্তি হিসাবে ব্যবহৃত হলে "সরলতার" জন্য একইভাবে প্রযোজ্য)!

প্রতিটি প্রদত্ত সমস্যার জন্য আপনার সর্বোত্তম সমাধানের জন্য প্রচেষ্টা করা উচিত! কম্পিউটারগুলি বর্তমানে দ্রুত যে সত্য তা সিপিইউ চক্র নষ্ট করার অজুহাত নয়। একমাত্র প্রতিবন্ধকতা "প্রসবের সময়" হওয়া উচিত। নোট করুন যে এখানে "সর্বোত্তম সমাধান" এর অর্থ আপনি যার সাথে আসতে পারেন (আমরা সবাই সেরা সমাধান নিয়ে আসতে পারি না; বা তাদের বাস্তবায়নের দক্ষতা / জ্ঞান থাকতে পারি)।

যেহেতু অন্য কেউ উল্লেখ করেছেন যে যদি কোনও সমাধানের দিকগুলি "বুঝতে অসুবিধা" থাকে তবে তার পক্ষে মতামতগুলিই এটি। অর্ডার "সঠিক, পঠনযোগ্য, দ্রুত" (বা এর মতো কিছু), যা অন্য কেউ উল্লেখ করেছেন কেবল সময়ের অপচয়।

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


-2

যদি হ্রাসযোগ্য পাঠ্যতা কোডের কর্মক্ষমতা / অপ্টিমাইজেশনে সহায়তা করে (যেমন swfobject এবং অন্যান্য জেএস লাইব্রেরিতে রয়েছে) কেবল কারণটি সঠিকভাবে গঠনযোগ্য এবং স্পষ্টভাবে পঠনযোগ্য কোডটি রেকর্ড করে রাখা এবং "সংকলন" / রিলিজ প্রক্রিয়ার অংশ হিসাবে অপঠনযোগ্য / অনুকূলিতকরণে রূপান্তরিত করার এটি কারণ।

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