আমি কীভাবে "বিকাশকারীদের খারাপ অপ্টিমাইজেশন অন্তর্দৃষ্টি" এড়াতে পারি?


22

আমি এই নিবন্ধটি প্রকাশিত একটি নিবন্ধে দেখেছি :

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

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


1
এটি নীচে নেমে আসে "আমি কীভাবে [সিদ্ধান্ত নেওয়ার সময়] স্বীকৃতিতে [নির্ভর] এড়াতে পারি?" সহজ: আপনি হার্ড-ফ্যাক্টস এবং ডেটা দিয়ে যাচাই করেন। সুতরাং, অপ্টিমাইজেশনের ক্ষেত্রে, বিকাশকারীর দৃষ্টিকোণ থেকে: আপনি বেঞ্চমার্ক।
হাইলেম

উত্তর:


44
  • ব্যয়বহুল পদ্ধতিগুলি সনাক্ত করতে একটি ভাল প্রোফাইলার ব্যবহার করুন।
  • হট স্পটগুলি আসলে কতক্ষণ লেগেছিল তা নথি করুন।
  • হট স্পটগুলির দ্রুত বাস্তবায়ন লিখুন
  • হট স্পটগুলিতে এখন কতক্ষণ সময় লাগবে ডকুমেন্ট, আশা করি এগুলি আর হটস্পট তৈরি করে না।

মূলত আপনার সমস্যাটি অন্যদের কাছে প্রমাণ করার পক্ষে সক্ষম হওয়া দরকার এবং এই পরিবর্তনটি এটিকে দূরে সরিয়ে নিয়েছে।

মূল সংস্করণে তাত্ক্ষণিক রোলব্যাকের জন্য কোনও উন্নতি প্রমাণ করতে সক্ষম না হওয়া - আমার ব্যক্তিগত মতামত অনুযায়ী যোগ্যতা অর্জন করে।


51
বা আরও সহজভাবে বলতে গেলে: "খারাপ অপ্টিমাইজেশন অন্তর্দৃষ্টি এড়ানোর জন্য, অন্তর্দৃষ্টি ব্যবহার করবেন না Me পরিমাপ করুন।"
ক্যারলেস

6
এ কারণেই আপনার একটি উত্তর এবং আমার কেবল একটি মন্তব্য। : পি
কাইরলেসা

2
@ থমাস, আপনি যদি পঠনযোগ্যতা এবং রক্ষণাবেক্ষণের সাথে ঝাঁকুনি দেখান তবে আপনি ঠিক পারফরম্যান্স সমস্যার দিকে তাকান না, আপনি কি?

3
@ থমাস, আমি একমত নই এমনকি অনুমানের মধ্যেও, আপনাকে নতুন কোডটি পুরোপুরি পরীক্ষা করতে হবে। এটি পুরানো কোডের জন্য প্রয়োজন হয় না। প্রত্যাবর্তন করে।

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

10

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

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


ভিজুয়ালভিএম জেআরই-তে নেই, কেবল জেডিকে।

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

1
আমি খুব ঘন ঘন ইক্লিপসে ওয়ার্কস্পেসগুলি স্যুইচ করি যা পরে ডিগ্রিএলটি জেআরইতে শুরু করে যা Eclipse শুরু করে। জেডিইর থেকে জেআরই ইনস্টল করা যেহেতু সহজ, আমরা আস্তে আস্তে একটি পিঁপড়া তৈরির প্রক্রিয়ায় স্থানান্তরিত হয়েছি যার মধ্যে গ্রহগ্রাহী সংকলক অন্তর্ভুক্ত রয়েছে এবং তাই সমতল জেআরইতে চলতে পারে। অতএব, আজকাল আপনি জেডিকে ছাড়াই প্রকৃত কাজ করতে পারবেন । উইন্ডোজ -৪-বিট জেভিএম এর ৩২-বিট জেভিএম এবং এর বিপরীতে সংযোগ স্থাপন করতে পারে না বলে প্রদত্ত জাভা ভার্সিনো দিয়ে ব্যবহার করা সহজতর করে ভিজুয়ালভিএম পৃথকভাবে ডাউনলোড করা যায়।

9

এখানে যেহেতু কেউ প্রোফাইলারদের নিয়ে কথা বলছেন আমি প্রশ্নের এই অংশটিতে ফোকাস করব।

কোনও বিকাশকারী কীভাবে এই খারাপ অনুভূতিটি এড়াতে পারবেন?

আপনি. না। না. পরিবর্তে আপনি কখনই প্রথম দিকে অনুকূলিত হন না
এটি বার বার পুনরাবৃত্তি করুন কারণ এটি একটি ধর্মীয় মন্ত্র।

আপনি নিজেকে এটি করতে দেখবেন এবং আবিষ্কার করবেন যে আপনার উচিত ছিল না।
এবং তারপর আবার।
এবং আবার.

প্রারম্ভিক অপ্টিমাইজেশন প্রোগ্রামারদের অন্যতম মূল পাপ

সরঞ্জাম এবং স্টাফগুলি পরবর্তীকালের অপ্টিমাইজেশনের অংশ যা একটি প্রতিষ্ঠিত নৈপুণ্য


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

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

এটি আমার কাছে YAGNI নীতি হিসাবে মনে হচ্ছে - আপনার এটি দরকার নেই!
EL Yusubov

7

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

পরিবর্তনের পরে আবার পরিমাপ করাও সমানভাবে গুরুত্বপূর্ণ , আপনার পরিবর্তনের উদ্দেশ্য কার্যকর রয়েছে কিনা তা যাচাই করা।


5

আপনার প্রোগ্রামটি কেবল তার গতি বা রানটাইম নয়, কতটা মেমরি ব্যবহার করে তাও দেখুন।

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

আমি জাভা ওয়েব অ্যাপ্লিকেশনগুলি দেখেছি যা এতটাই ফাঁস হয়েছিল যে তারা নিজের সার্ভারটি অদলবদলের বাইরে চালাবে!

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


1

আমার প্রতিকারটি হল দুটি প্রশ্নের স্পষ্ট উত্তর পেয়ে শুরু করা:

  1. কীভাবে কর্মক্ষমতা পরিমাপ করবেন (উদাহরণস্বরূপ ডেটা লোডের সময় পরিমাপ করুন )
  2. লক্ষ্য মানটি কী (উদাহরণস্বরূপ 3% সেকেন্ডে 95% আত্মবিশ্বাসের সাথে ডেটা লোড )

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


1

আমি যা পেয়েছি তা অকাল অপটিমাইজেশনের সেরা প্রতিষেধক হ'ল এই পদ্ধতি

একবার আপনি কিছু কোড গতিতে ব্যবহার করেছেন ( উদাহরণস্বরূপ ) এটি নিজের নিজস্ব একটি আসক্তি হয়ে যায় এবং আপনি বুঝতে পারছেন যে পারফরম্যান্স টিউনিংয়ের প্রথম নীতিটি কোড টুইট করছে না, এটি সমস্যাটি খুঁজে পেয়েছে

আসল অপ্টিমাইজেশন হ'ল অকালীন অপ্টিমাইজেশন হিসাবে আপনার পরিবারকে খাওয়ানোর শিকার টিনের ক্যান শুটিং করা। কোয়ারি সন্ধানের সব কিছুই।


1
এবং দুর্ভাগ্যক্রমে, আপনি কেবল আপনার পরিবারকে 200 পাউন্ড ফিরিয়ে নিতে পারবেন, তাই সারা দিন কাঠবিড়ালি অঙ্কুরিত করবেন না।
জর্ডান

1

পুরানো প্রশ্ন, তবে আমি এই উত্তরটি দেব যা অন্যদের থেকে যথেষ্ট আলাদা।

পারফরম্যান্স লাভের বড় সুযোগগুলি সমান্তরাল প্রক্রিয়াকরণ থেকে আসে। একাধিক থ্রেডের সুবিধা নিতে আপনার কোডটি ডিজাইনের চেষ্টা করুন। (এমনকি যদি, সরলতার জন্য, আপনি সংস্করণ 1 এ এটি করেন না)। সামান্য অনুমান বা অন্তর্দৃষ্টি প্রয়োজনীয়।

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


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

0

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

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

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

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

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

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


0

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

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

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

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

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

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