এগুলি কি এই কারণে যে স্থানীয় কোডের পরিবর্তে সবগুলি পরিচালিত, আবর্জনা-সংগৃহীত ভাষায় লেখা হয়েছিল?
না। ধীর কোডটি নির্বিশেষে খারাপভাবে সম্পাদন করবে। অবশ্যই, অন্যদের সমাধান করার সময় একটি নির্দিষ্ট ভাষা সমস্যার কয়েকটি শ্রেণি চালু করতে পারে। তবে ভাল প্রোগ্রামাররা পর্যাপ্ত সময় দেওয়ার মতো কাজের সন্ধান করতে যথেষ্ট সক্ষম।
এই ডিভাইসগুলির জন্য সফ্টওয়্যারটি লিখেছেন এমন স্বতন্ত্র প্রোগ্রামাররা কি?
আংশিক। বেশিরভাগ ক্ষেত্রে এটি কমপক্ষে একটি অবদানকারী উপাদান is এটি এমন একটি শিল্পের দুর্ভাগ্যজনক পার্শ্ব প্রতিক্রিয়া যেখানে ভাল প্রোগ্রামারদের উচ্চ চাহিদা এবং স্বল্প সরবরাহ হয়। এছাড়াও বিভিন্ন স্তরের প্রযুক্তিগত দক্ষতার মধ্যে উপসাগরগুলি বেশ বড় হতে পারে। সুতরাং এটি কারণ হিসাবে দাঁড়িয়েছে যে কখনও কখনও প্রোগ্রামাররা নির্দিষ্ট সফ্টওয়্যার বাস্তবায়নের দায়িত্ব দেওয়া হয় কেবল এটির কাজ (ধরণের) পাওয়ার জন্য অভিনন্দন জানানো যেতে পারে ।
এই সমস্ত ক্ষেত্রে অ্যাপ্লিকেশন বিকাশকারীরা ঠিক কী হার্ডওয়্যার প্ল্যাটফর্মটি তারা টার্গেট করছে এবং এর ক্ষমতাগুলি কী তা জানত; তারা কি তা আমলে নেয়নি?
আংশিক। শুরু করার জন্য, সঠিক হার্ডওয়্যার প্ল্যাটফর্মটি সম্ভবত জানা যায়নি, কারণ সফ্টওয়্যার বিকাশের সময় প্রায়শই বিভিন্ন উত্পাদকের সাথে সমান্তরালভাবে আলোচনা করা হয়। প্রকৃতপক্ষে, প্রাথমিক প্রকাশের পরে অন্তর্নিহিত হার্ডওয়্যারে ছোট (তবে অগত্যা তুচ্ছ নয়) পরিবর্তনগুলিও হতে পারে। তবে, আমি সম্মতি জানাব যে সাধারণ ক্ষমতাগুলি জানা যাবে।
সমস্যার অংশটি হ'ল সফ্টওয়্যার সম্ভবত হার্ডওয়্যারে বিকাশিত নয়, এটি এমুলেটরগুলিতে সম্পন্ন হয়। এটি যথাযথ ডিভাইস কর্মক্ষমতা জন্য অ্যাকাউন্ট করতে অসুবিধা তৈরি করে এমনকি যদি অনুকরণকারীরা 100% নির্ভুল হয় - যা সেগুলি নয়।
অবশ্যই এটি মুক্তির আগে যথাযথ প্রোটোটাইপ হার্ডওয়্যারটির অপর্যাপ্ত পরীক্ষার সত্যতা প্রমাণ করে না। এই দোষটি সম্ভবত দেব / কিউ নিয়ন্ত্রণের বাইরে।
এই লোকটিই কি "অপটিমাইজেশন সমস্ত মন্দের মূল" এর পুনরাবৃত্তি করে, তিনি কি তাদেরকে বিপথগামী করেছিলেন?
না, আমি বেশ নিশ্চিত যে তারা যাই হোক না কেন তাঁর কথায় কান দেয় না; অন্যথায় তিনি এতবার ভুল জিজ্ঞাসা করা হবে না (এটি " অকাল অপ্টিমাইজেশন ..." বলে মনে করা হয় )। :-D
এটি আরও বেশি সম্ভাবনা রয়েছে যে প্রচুর প্রোগ্রামাররা শুভেচ্ছা অপ্টিমাইজেশান সহ 2 টির একটি চরম গ্রহণ করে।
- হয় হয় তারা একে পুরোপুরি উপেক্ষা করে।
- অথবা তারা মিনটিয়ায় নিজেকে আচ্ছন্ন করে তোলে যার প্রকৃত কার্য সম্পাদনের প্রয়োজনীয়তার সাথে কোনও সম্পর্ক নেই । নেট প্রভাব যে বাজেট হচ্ছে রান আউট এবং কোড খুব নিখুত obfuscated হয় বাস্তব নিরাপদে কর্মক্ষমতা সমস্যা।
এই সমস্ত মিলি সেকেন্ড কয়েক মিনিট অবধি যোগ না হওয়া পর্যন্ত প্রতিবার "ওহ এটি কেবল একটি অতিরিক্ত 100 মিমি" এর মানসিকতা ছিল?
সম্ভবত। স্পষ্টতই যদি Sleep(100)
কোনও বিচ্ছিন্ন অঙ্গের রক্তপাতকে ধীর করতে ব্যবহৃত টিস্যু পেপারের সমতুল্য হিসাবে ব্যবহার করা হয় - তবে সমস্যাগুলি আশা করা যায়। তবে আমি সন্দেহ করি যে সমস্যাটি তার থেকে আরও সূক্ষ্ম।
জিনিসটি আধুনিক কম্পিউটিং হার্ডওয়্যার (এম্বেডড ডিভাইস সহ) লোকেদের ক্রেডিট দেওয়ার চেয়ে অনেক দ্রুত। বেশিরভাগ লোক, এমনকি "অভিজ্ঞ" প্রোগ্রামাররা ঠিক কত দ্রুত কম্পিউটারের প্রশংসা করতে ব্যর্থ হন। 100 মিমি একটি দীর্ঘ সময় - খুব দীর্ঘ সময় । এবং যেমনটি ঘটে, এই "খুব দীর্ঘ সময়" 2 টি উপায় হ্রাস করে:
- প্রথমটি হ'ল প্রোগ্রামাররা যে কাজগুলি কম্পিউটার খুব দ্রুত করে তা নিয়ে অযথা চিন্তিত। (এটি এমনটি ঘটে যে এটি কেবল এমন উদ্বেগ ছিল যে " প্রতি সেকেন্ডে 300 গুণ মূল্য বৃদ্ধি করা " যা আমাকে এখানে প্রথম স্থানে নিয়ে গেছে।)
- দ্বিতীয়টি হ'ল যখন বিষয়গুলি খুব দীর্ঘ সময় নেয় (কম্পিউটারের টাইমস্কেলে) তখন তারা কখনও কখনও উদ্বেগ প্রকাশ করতে ব্যর্থ হয়। তাই:
- যদি তারা কোনও নেটওয়ার্কে বা স্টোরেজ ডিভাইসের সাথে যোগাযোগ করার সময় বিলম্বের প্রভাবগুলি উপেক্ষা করে;
- যদি তারা থামানো কোনও থ্রেডের প্রভাব উপেক্ষা করে এবং অন্য থ্রেডের জন্য অপেক্ষা করে;
- যদি তারা এটি ভুলে যায় যে কম্পিউটারগুলি এত তাড়াতাড়ি কাজ করে তবে বিকাশকারী কোনও সমস্যা সম্পর্কে অবহিত না হয়ে এটি অনেক বেশি বার কোনও কাজ পুনরাবৃত্তি করতে সক্ষম is
- ... যদি এই জাতীয় ওভারসাইটগুলির কোনও সংমিশ্রণ ঘটে তবে একটি রুটিন অপ্রত্যাশিতভাবে খুব ধীরে চলবে (কম্পিউটিং টাইমস্কেলে)। কয়েকটি পুনরাবৃত্তি এবং এটি মানুষের দ্বারা এমনকি লক্ষণীয় হয়ে উঠবে - তবে এটি নিখুঁত করতে জটিল হতে পারে কারণ শতগুলি আন্তঃসংযুক্ত জিনিসগুলি সমস্তগুলি নিজেরাই দ্রুত চলছে।
প্রথমে এই পণ্যগুলি কেনার জন্য এটি কি আমার দোষ?
হ্যাঁ অবশ্যই। ভাল, আপনি ব্যক্তিগতভাবে না কিন্তু সাধারণভাবে গ্রাহকরা। বৈশিষ্ট্য চেকলিস্ট দ্বারা পণ্যগুলি বিক্রি হয় (এবং কেনা হয় )। খুব কম সংখ্যক গ্রাহকই আরও ভাল পারফরম্যান্সের দাবি করছেন।
আমার বক্তব্যটি তুলে ধরার জন্য: সর্বশেষে যখন আমি সেল-ফোন কিনতে চেয়েছিলাম তখন স্টোরটি এমনকি ইন-স্টোরের সাথে খেলতে ডেমো মডেল সরবরাহ করতে পারে না। স্ক্রিনটি কেমন দেখাচ্ছে তা বোঝানোর জন্য তাদের কাছে সমস্ত ছিল স্টিকারের সাথে প্লাস্টিকের শেল। এমনকি এর মতো ওজনের জন্য আপনি একটি অনুভূতিও পেতে পারেন না - পারফরম্যান্স বা ব্যবহারযোগ্যতা ছেড়ে দিন। আমার বক্তব্যটি হ'ল যদি পর্যাপ্ত লোকেরা সেই ব্যবসায়িক মডেলটির প্রতি আপত্তি জানায় এবং তাদের আপত্তি জানাতে তাদের ওয়ালেট দিয়ে ভোট দেয় তবে আমরা সঠিক দিকের একটি ছোট পদক্ষেপ হব।
কিন্তু তারা তা করে না, তাই আমরা নেই; এবং প্রতি বছর নতুন সেল ফোন দ্রুত হার্ডওয়্যারে ধীর গতিতে চলে।
(প্রশ্ন জিজ্ঞাসা করা হয়নি।)
- বিপণন কি মানুষকে দোষ দিচ্ছে? আংশিক। তাদের মুক্তির তারিখ দরকার। এবং যখন তারিখটি তাঁত হয়, "এটিকে কাজ করুন" এবং "এটি দ্রুত তৈরি করুন" এর মধ্যে পছন্দটি কোনও মস্তিষ্কের নয়।
- বিক্রয় মানুষ কি দোষ দেয়? আংশিক। তারা চেকলিস্টে আরও বৈশিষ্ট্য চায়। তারা বৈশিষ্ট্য তালিকা হাইপ আপ এবং কর্মক্ষমতা উপেক্ষা। তারা (কখনও কখনও) অবাস্তব প্রতিশ্রুতি দেয়।
- পরিচালকরা কি দোষ দিচ্ছেন? আংশিক। অনভিজ্ঞ ম্যানেজাররা অনেকগুলি ভুল করতে পারে তবে খুব অভিজ্ঞ পরিচালকরা অন্যদের উদ্বেগের পক্ষে পারফরম্যান্সের সমস্যাগুলি সমাধান করার জন্য (যথেষ্ট সঠিকভাবে) ত্যাগ করতে পারেন।
- বিশেষ উল্লেখ কি দোষ? আংশিক। যদি কিছু নির্দিষ্টকরণ থেকে বাদ যায় তবে পরে এটি সম্পর্কে "ভুলে যাওয়া" এত সহজ easier এবং যদি এটি নির্দিষ্টভাবে বলা হয় না, লক্ষ্য কী? (যদিও আমি ব্যক্তিগতভাবে বিশ্বাস করি যে কোনও দল যদি এর কাজ নিয়ে গর্ব করে তবে তারা নির্বিশেষে পারফরম্যান্স নিয়ে চিন্তিত হবে।)
- শিক্ষাকে কি দোষ দেওয়া যায়? হতে পারে. শিক্ষা সম্ভবত সর্বদা পিছনে থাকবে back আমি অবশ্যই "শিক্ষাব্যবস্থা" অস্বীকার করি যা একটি পর্যাপ্ত বোঝার সফ্টওয়্যার বিকাশ দিয়ে দ্রুত প্রাথমিকভাবে মন্থর করে। তবে, যে তত্ত্বটি তত্ত্বের সাথে ব্যাক আপযুক্ত এবং শিক্ষার সংস্কৃতি জাগিয়ে তোলে তা খারাপ হতে পারে না।
- আপগ্রেডকে কি দোষ দেওয়া যায়? আংশিক। নতুন সফ্টওয়্যার, পুরানো হার্ডওয়্যার সত্যিই ভাগ্যের লোভনীয়। এক্স সংস্করণ প্রকাশের আগেই, এক্স + 1 পরিকল্পনা রয়েছে। নতুন সফ্টওয়্যারটি সামঞ্জস্যপূর্ণ তবে পুরানো হার্ডওয়্যারটি কি যথেষ্ট দ্রুত? এটি পরীক্ষা করা হয়েছিল? একটি বিশেষ পারফরম্যান্স ফিক্স নতুন সফ্টওয়্যারটিতে রোল করা যেতে পারে - একটি অসুস্থ-পরামর্শযুক্ত সফ্টওয়্যার আপগ্রেডকে উত্সাহিত করে।
মূলত, আমি বিশ্বাস করি যে এখানে অবদান রাখার অনেকগুলি কারণ রয়েছে। সুতরাং, দুর্ভাগ্যক্রমে এটি ঠিক করার জন্য কোনও রূপোর বুলেট নেই। তবে এর অর্থ এই নয় যে এটি আযাব এবং হতাশাজনক। জিনিসগুলির উন্নতিতে অবদান রাখার উপায় রয়েছে।
সুতরাং, কোন মুহুর্তে এই পণ্যগুলির জন্য জিনিসগুলি ভুল হয়ে গেছে?
আইএমএইচএও আমরা সত্যই কোনও একক পয়েন্ট সনাক্ত করতে পারি না। অনেক অবদানকারী কারণ রয়েছে যা সময়ের সাথে সাথে বিকশিত হয়েছিল।
- শিম কাউন্টার: ব্যয় কাটা, বাজার সময়। কিন্তু তারপরে আবার আমরা কী চাপ ছাড়াই আমরা অর্জন করেছি?
- শিল্পে দক্ষ ব্যক্তিদের উচ্চ চাহিদা এবং কম সরবরাহ। কেবল প্রোগ্রামারই নয়, পরিচালক, পরীক্ষক এমনকি বিক্রয়কর্মীরাও। দক্ষতা এবং অভিজ্ঞতার অভাব ভুলের দিকে পরিচালিত করে। তবে এরপরে আবার এটিও শেখার দিকে পরিচালিত করে।
- রক্তক্ষরণ প্রান্ত প্রযুক্তি। কোনও প্রযুক্তি পরিপক্ক না হওয়া পর্যন্ত এটি নিয়মিত অপ্রত্যাশিত উপায়ে কামড় দেবে। তবে তারপরে এটি আবার প্রথম স্থানে বেশ কয়েকটি সুবিধা সরবরাহ করে ages
- জটিল জটিলতা। সময়ের সাথে সাথে, শিল্পটি বিকশিত হয়েছে: আরও সরঞ্জাম, প্রযুক্তি, স্তর, কৌশল, বিমূর্তি, হার্ডওয়্যার, ভাষা, প্রকরণ, বিকল্পগুলি যুক্ত করা। এটি আধুনিক সিস্টেমগুলির "সম্পূর্ণ" বোঝার জন্য কিছুটা অসম্ভব করে তোলে। যাইহোক, ফলস্বরূপ আমরা আরও স্বল্প সময়ে আরও অনেক কিছু করতে সক্ষম।
প্রোগ্রামার হিসাবে আমরা আমাদের গ্রাহকদের এই ব্যথা এড়াতে কী করতে পারি?
আমার কাছে কয়েকটি পরামর্শ (প্রযুক্তিগত এবং অ-প্রযুক্তিগত উভয়) রয়েছে যা সাহায্য করতে পারে:
- সাফ হিসাবে এটি সম্ভব - আপনার নিজের পণ্য ব্যবহার করুন। বিশ্রী, ধীর বা অসুবিধাগ্রস্থ বিষয়গুলি প্রকাশ করতে প্রথম হাতের অভিজ্ঞতার মতো কিছুই নেই। তবে "অভ্যন্তরীণ জ্ঞানের" কারণে আপনার সচেতনভাবে ঘাটতিগুলি অতিক্রম করতে হবে। উদাহরণস্বরূপ আপনার যদি যোগাযোগগুলি সিঙ্ক করতে সমস্যা না হয় কারণ আপনি এটি ব্যাকডোর পাইথন স্ক্রিপ্ট দিয়ে করেন - আপনি "পণ্য" ব্যবহার করছেন না। যা পরের বিষয়টি নিয়ে আসে ...
- আপনার ব্যবহারকারীদের শুনুন (প্রথমে প্রথম দিকে, তবে সমর্থনের মাধ্যমে কমপক্ষে দ্বিতীয় হাত)। আমি জানি প্রোগ্রামাররা (সাধারণত) লুকিয়ে থাকা এবং মানুষের মিথস্ক্রিয়া এড়াতে পছন্দ করে; তবে এটি আপনার পণ্য ব্যবহার করার সময় অন্যান্য লোকেরা যে সমস্যাগুলি অনুভব করে তা আবিষ্কার করতে আপনাকে সহায়তা করে না। উদাহরণস্বরূপ আপনি খেয়াল করতে পারেন না যে মেনু বিকল্পগুলি ধীর, কারণ আপনি সমস্ত শর্টকাট জানেন এবং সেগুলি একচেটিয়াভাবে ব্যবহার করেন। এমনকি ম্যানুয়াল সমস্ত শর্টকাট পুরোপুরি নথিভুক্ত করলেও কিছু লোক এখনও মেনুগুলিকে পছন্দ করবে - অবিশ্বাস্যভাবে ধীর হয়েও।
- অবিচ্ছিন্ন ভিত্তিতে আপনার কৌশল দক্ষতা এবং জ্ঞান উন্নত করার চেষ্টা করুন। আপনি যা কিছু শিখেন তার সমালোচনা বিশ্লেষণ করার দক্ষতা বিকাশ করুন। আপনার জ্ঞানের নিয়মিত মূল্যায়ন করুন। কিছু ক্ষেত্রে, আপনি যা ভেবেছিলেন তা আপনি ভুলে যেতে প্রস্তুত থাকুন। যা সামনে আসে ...
- কিছু প্রযুক্তি / কৌশল খুব কৌতুকপূর্ণ হতে পারে যার ফলে সূক্ষ্ম ভুল বোঝাবুঝি এবং ভুল বাস্তবায়ন হয়। সাধারণ জ্ঞান বা উপলব্ধ সরঞ্জামগুলির বিবর্তনের মাধ্যমে অন্যরা অনুকূলে বা আছড়ে পড়ে (যেমন সিঙ্গলেটন)। কিছু বিষয় এতটাই জটিল যে তারা "হোকস-পোকাস পন্ডিত" একগুচ্ছ প্রজনন করে যা একটি বিশাল সংখ্যক ভুল তথ্য প্রচার করে। আমার একটি বিশেষ বাগবারি মাল্টি থ্রেডিংয়ের চারপাশে ভুল তথ্য রয়েছে। একটি ভাল মাল্টি-থ্রেড বাস্তবায়ন ব্যবহারকারীর অভিজ্ঞতা উল্লেখযোগ্যভাবে উন্নত করতে পারে। দুর্ভাগ্যক্রমে মাল্টি-থ্রেডিংয়ের অনেক ভুল তথ্যপ্রযুক্তি কার্য সম্পাদনকে উল্লেখযোগ্যভাবে হ্রাস করবে, ত্রুটিযুক্ত বাগগুলি বৃদ্ধি করবে, মৃত-লক ঝুঁকি বাড়িয়ে দেবে, ডিবাগিং জটিল করবে So তাই মনে রাখবেন: একজন "বিশেষজ্ঞ" বলেছিলেন, এটি সত্য করে তোলে না।
- মালিকানা নিন। (কোনও গুরুত্বের সাথে নয়, আমি বোর্ডরুমের বিঙ্গো খেলছি না)) কিছু চেকলিস্ট আইটেমকে প্রাধান্য দিয়ে পারফরম্যান্স বৈশিষ্ট্যগুলির জন্য পরিচালক, পণ্য মালিক, বিক্রয় লোকদের সাথে আলোচনা করুন। আরও ভাল স্পেসিফিকেশন চাহিদা। শিশুসুলভ নয়, এমন প্রশ্ন জিজ্ঞাসা করে যা লোকেরা কর্মক্ষমতা সম্পর্কে চিন্তাভাবনা করে।
- বিচক্ষণ ভোক্তা হন। এমন বৈশিষ্ট্যযুক্ত ফোনটি চয়ন করুন যা কম বৈশিষ্ট্যযুক্ত তবে দ্রুত। (দ্রুত সিপিইউ নয়, দ্রুত ইউআই)) তারপরে এটি নিয়ে বড়াই করুন ! ভোক্তারা যত বেশি পারফরম্যান্সের দাবি করতে শুরু করবেন, তত শিম কাউন্টারগুলি এর জন্য বাজেট শুরু করবে।