হ্যাক কি? [বন্ধ]


55

আমি প্রায়শই সহকর্মীদের একে অপরকে বলতে শুনি, "এটি একটি ভয়ঙ্কর, ভয়াবহ হ্যাক।"

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

যখন কিছু হ্যাক হিসাবে শ্রেণিবদ্ধ করা হয় তখন তা আমার কাছে আকর্ষণীয়। আপনি কিভাবে এটি সনাক্ত করতে পারেন?


5
কিছু কাজ করতে পারে তবে কাজ করতে ধীর, ভঙ্গুর, কুরুচিপূর্ণ এবং বজায় রাখতে কষ্টদায়ক হতে পারে। এটি একটি হ্যাক।
ট্রেজয়েড

1
ঘেটো-রেগড কোড == হ্যাক
গ্রেট ক্লোবার

আমি বলছি না এটি একটি হ্যাক, তবে আপনি +হিউরিস্টিকের উপর ভিত্তি করে ভাগ করার জন্য গতিময়ভাবে বানর-প্যাচিংয়ের পুনর্বিবেচনা করতে চান ।
ডায়েটবুদ্ধ

যারা হ্যাকগুলি নোংরা ব্যান্ড-এইডস বলেছে তাদের সকলের জন্য দয়া করে দেখুন যারা আউটপোস্ট 9 / রেফারেন্স / জারগন / জার্গন_৩.এইচটিএমএল# TAG824 - ২ / এন। / এ অবিশ্বাস্যভাবে ভাল , এবং সম্ভবত খুব সময়সাপেক্ষ, কাজের টুকরো যা সঠিকভাবে প্রয়োজনীয় যা উত্পাদন করে।

1
একটি বৈশিষ্ট্য যা জনপ্রিয় মানের হিসাবে বা আপনার উচ্চতর মানের দ্বারা কার্যকর করা হয় না।
আদিত্য পি

উত্তর:


97

এটি একটি বড় ব্যবধানযুক্ত ক্ষতটিতে অস্থায়ী ব্যান্ড সহায়তা প্রয়োগ করছে। এটি আপাতত স্থির করা হয়েছে, তবে এটি পরে আরও বেশি সমস্যার কারণ হতে পারে।

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


34
অথবা আপনি তাকে "এএএ জিম" বলতে পারেন।
কমপিউন

4
আরেকটি উদাহরণ একটি প্রসারিত করা হবে ... অন্যথায় ... অন্যথায় ... অন্যথায় সময় সীমাবদ্ধতার কারণে আরও এক্সটেনসিবল সমাধানের পরিবর্তে।
ফিল লেলো

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

1
@ আর্টেমটি সত্য, এবং এটি দেখতে এই জেজেবিসিডিফঘিক্লিমনোপ্যাকার্টুউক্সিয়া (আপনার বর্ণমালা পুনরায় সাজানো, একটি নামাতে এবং z আনতে হবে না)
প্রদর্শনীর নাম

1
প্রকল্প পরিচালনার পদে এটির বাক্যাংশটি বলার জন্য: হ্যাক এমন একটি সমাধান যা ভবিষ্যতে সময় / ম্যান সময়ের hoursণ তৈরি করতে পারে এবং / অথবা সেরা অনুশীলনগুলি বা মানক সম্মেলনের বিরুদ্ধে যায়।
ছদ্মবেশী

60

প্রতিটি ইঞ্জিনিয়ারিং সিদ্ধান্ত হ'ল তাত্ক্ষণিক ব্যয় এবং বিলম্ব এবং ফলস্বরূপ ব্যয় এবং প্রযুক্তিগত betweenণের মধ্যে একটি বাণিজ্য।

হ্যাক হ'ল এমন একটি পরিস্থিতি যেখানে পরেটিকে পরবর্তী হিসাবে গ্রহণের ক্ষেত্রে অগ্রাধিকার দেওয়া হয়।

অনভিজ্ঞ ডেভেলপাররা (আংশিকভাবে প্রকৌশল শিক্ষাব্যবস্থার কাজ করার কারণে) পূর্বের দিকে মনোনিবেশ করে এবং প্রকৃতপক্ষে বুঝতে বা অনুমান করার পক্ষে পর্যাপ্ত অভিজ্ঞতা নেই have

অভিজ্ঞ বিকাশকারীরা করেন, তবে বিভিন্ন কারণে (অনেক বৈধ) প্রাক্তনটিকে বেছে নেন।

হ্যাক শব্দটি প্রায়শই অস্থায়ীভাবে একটি সমস্যা সমাধানের এবং "ঠিক পরে এটি করার" অভিপ্রায় বোঝায় তবে অভিজ্ঞ বিকাশকারীরা জানেন যে কোডের মধ্যে সবচেয়ে স্থায়ী জিনিসগুলি অস্থায়ী হ্যাক।


13
"+ এর জন্য" তবে অভিজ্ঞ বিকাশকারীরা জানেন যে কোডের মধ্যে সবচেয়ে স্থায়ী জিনিস হ'ল অস্থায়ী হ্যাক "! যার অর্থ হ'ল অলসতা আপনাকে কখনই এটি সঠিকভাবে করতে আটকাবে না।
ম্যাথিউ এম।

20

সমাধান যদি কাজ করে তবে কীভাবে খারাপ হয়?

এই বিবেচনা

2 + 2 <-- Correct.  Elegant.  Simple.

(2/1 + 2/1) * 1/1 <-- Also Correct.  Lots of useless weird code.  

তবে দ্বিতীয় উদাহরণটি হ্যাক হতে পারে যা একটি ভাল অনুশীলনের অজ্ঞতা বা এমন একটি অনুমান যা এই /1সময়টিকে সহজ বলে মনে করেছিল বা একটি লাইব্রেরির বাগ যা /1সঠিকভাবে কাজটি করেছে তার কারণে ব্যবহৃত হয় ।

এটা কি ভাল অনুশীলনের কারণে?

হ্যাকগুলি "সমীচীন" কোড। আছে তিন চার কারণ।

  • সঠিক নকশার নীতি সম্পর্কে অজ্ঞতা। (অর্থাত্ নল নীতিগুলি)

  • কোনও এপিআই বা ভাষা গঠনের বিষয়ে অহংকার (অর্থাত্ ভুল ধারণা)

  • আসল বাগগুলি যা সমাধান করা হয় না তবে প্রায় কাজ করা হয়।

  • পরিচালনা ভাল নকশা এবং সংশোধন অনুমানগুলিকে ওভাররাইড করে। "বাজেট" একটি সাধারণ ন্যায়সঙ্গত, তবে এটি নন-প্রযুক্তিগত মূল কারণ সহ মূলত উপরের তিনটি (অজ্ঞতা, অহংকার বা ত্রুটি) এর মধ্যে একটি।

নাকি রক্ষণাবেক্ষণযোগ্য নয়?

এটাই আসল কথা. হ্যাক অজ্ঞতা, বাগ বা অনুমান উপর ভিত্তি করে।

এটি কি আপনার সমাধানের অংশ হিসাবে কোডের একটি পার্শ্ব প্রতিক্রিয়া ব্যবহার করছে?

এটি অজ্ঞতার উদাহরণ বা একটি ভুল ধারণা হতে পারে।


দুর্দান্ত উত্তর, তবে আমদানি বিবেচনা করে না যে কোথাও কোয়ালিটি বনাম টাইম বনাম ব্যয় ত্রিভুজের কারণে হ্যাকগুলি গুণমানের সাথে পিন করা হয়।
StuperUser

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

1
@ অপ্টিমাইজ করুন: মুরগির দাঁত বিরল। এই পরিস্থিতি কি বিরল?
ম্যাট এলেন

@ ম্যাট এলেন: "মুরগির দাঁত" বাক্যাংশটির এটি অন্যরকম ব্যবহার হতে পারে। এর অর্থ "বিরল" পরিবর্তে "পরস্পরবিরোধী" হতে পারে।
এস .লট

আমি দেখতে পেয়েছি যে এটি প্রায়শই "পরিচালনা ওভাররাইড" সিদ্ধান্ত।
মার্ক ম্যাকডোনাল্ড

15

প্রোগ্রামিং প্রসঙ্গে হ্যাক হাঁস-টেপ বা বুদ্বুদ আঠা দিয়ে কিছু ঠিক করার সমতুল্য।

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

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


21
নালীগুলির জন্য হাঁস-টেপ ব্যবহার করা একটি কোয়াট হবে;)
জেফো

প্যাঁক প্যাঁক প্যাঁক
Mateen Ulhaq

11

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

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


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

10

একটি সমাধান যা এখনই কাজ করে তবে সম্ভবত দীর্ঘকালীন সমস্যার সৃষ্টি করবে।

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

public String getGreetingPage(String name) {
    return "<html><body>Hello, "+name+"!</body></html>";
}

9

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

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


9

হ্যাক শব্দটির অপব্যবহার করা হয়েছে। আপনি যদি সত্যিই কিছুটা ইতিহাস পেতে চান তবে আপনি এটি উইকিপিডিয়াতে পারেন। হ্যাক হ'ল একটি শব্দ যা কিছু করার উদ্দেশ্যে টুইটগুলি করার প্রক্রিয়াটি বর্ণনা করার জন্য নয় যা তারা করার উদ্দেশ্যে নয়। বৈদ্যুতিক প্রকৌশল প্রসঙ্গে, এটি ভাল। এ সম্পর্কে উইকিপিডিয়ায় আরও ভাল বর্ণনা রয়েছে।

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

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


6

এটি একটি হ্যাক, থিওফিক্সডিট.কম এ পাওয়া যায় ।

টাট্টু ঘোড়া

আসলে সেই সাইটের প্রতিটি জিনিসই হ্যাক।

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

সফ্টওয়্যার বিকাশে, আপনি চান যে কোনও কোড মারাত্মক আঘাতের সমতুল্য না হয়ে আপনার কোড অন্যকে পরিচালনা করতে পারে (এতে আপনার ভবিষ্যত অন্তর্ভুক্ত রয়েছে)। ডিজকસ્ત્ર যেমনটি লিখেছেন:

যোগ্য প্রোগ্রামার তার নিজের খুলির সীমিত আকার সম্পর্কে সম্পূর্ণ অবগত aware তাই তিনি সম্পূর্ণ নম্রতার সাথে তাঁর কার্যের দিকে এগিয়ে যান এবং প্লেগের মতো চতুর কৌশলগুলি এড়িয়ে যান।

এবং হ্যাকগুলি সবচেয়ে চালাক কৌশলগুলির মধ্যে একটি।

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


4

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

আমি প্রায়শই দেখি যখন কোনও কাজ শেষ করার জন্য খুব কড়া সময় সীমাবদ্ধতা থাকে এবং হ্যাক সমাধানটি কার্যকর করা হয় কারণ এটি QA পাস করার জন্য "যথেষ্ট" কাজ করে, আশা করি এটি পরে ঠিক করা যেতে পারে। দুর্ভাগ্যক্রমে, এটি পরে স্থির / ক্লিন আপ সবসময় ঘটে না :(


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

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

1
@ এফডাব্লুএফডি - এটি হ্যাক কিনা তা নিয়ে কেবল দ্বিমত পোষণ করছে। যদি কেউ "কোড" কিছু কোড হ্যাক হয় তবে আপনি কী বোঝাতে চেয়েছেন তা জানতেন।
ওজ

4

আমি ফ্রন্ট-এন্ড বিকাশকারী হিসাবে অনেক সময় ব্যয় করি, তাই আমার একটি হ্যাকের সংজ্ঞাটি হ'ল:

এমন একটি সমাধান যা পরিবেশের ত্রুটিগুলি এবং অননুমোদিত আচরণের গভীরতার জ্ঞানের উপর ভিত্তি করে।

পরিবেশটি আপনার কাঠামো, ওয়েব-ব্রাউজার, ডাটাবেস, এটিএম (নগদ সরবরাহকারী), আদালত-মামলা হতে পারে। যে কোনও "বিধি ব্যবস্থা", যেখানে আপনি একটি লুপ-হোল জানেন এবং কোনও সমস্যা সমাধানের জন্য এটি ব্যবহার করে।


4

একটি হ্যাক সাধারণত কিছু কোড যা দৃশ্যত পছন্দসই আউটপুট সরবরাহ করে তবে একটি উপ-অনুকূল পদ্ধতিতে।

এটি সাধারণত কিছু শর্তহীন বা অস্পষ্ট ভাষা / গ্রন্থাগার বৈশিষ্ট্যটি কোনও উপায়ে ব্যবহার করে যা প্রবর্তক দ্বারা অনিচ্ছাকৃত ছিল এবং এভাবে উদ্দেশ্যটি কী তাড়িত।

মাঝে মাঝে এটি কোনও ভাষা বা গ্রন্থাগার বাগের চারপাশে কাজ করার জন্য করা হয় তবে বেশিরভাগ ক্ষেত্রে প্রধান কারণ সাধারণত অজ্ঞতা;

হাতুড়ির কাছে সব কিছুই পেরেকের মতো লাগে।

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

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

উদাহরণ

ভিস্তা ফিক্স

ইমেল বৈধতা বৈধতা

সফটওয়্যার ইউনিট

নন ডিস্ট্রিমেন্টিক হ্যাশ


সাবমোটিমালের জন্য +1। এবং হ্যাকগুলি সর্বোচ্চ সর্বাধিক ভোট প্রাপ্ত হিসাবে "অস্থায়ী" নয়।
rlb.usa

2

একটি টাকের টায়ার কাজ করে তবে কেউ এটিকে কোনও পঞ্চুর আদর্শ সমাধান বলবে না। এটি লাইনে আরও খারাপ সমস্যা তৈরি করতে পারে।

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

এটির খারাপ হওয়ার মূল কারণটি হ'ল) ​​ক) এটি অনাকাঙ্ক্ষিত ফলাফলের কারণ হতে পারে খ) এটি কোডের মূল ডিজাইনের সাথে মেলে না যা রক্ষণাবেক্ষণের সমস্যা তৈরি করবে। আমার অভিজ্ঞতায় হ্যাকগুলি সাধারণত খুব খারাপভাবে ডকুমেন্টেড হয়।


2

একটি সংক্ষিপ্ত সংজ্ঞা যা আমি শুনেছি এবং শ্রদ্ধা করতে এসেছি:

"এমন একটি লক্ষণের সমাধান যা সমস্ত ক্ষেত্রে সমস্যার সম্পূর্ণ সমাধান করে না"

কুরুচিপূর্ণ কোড হ্যাক হতে পারে বা নাও হতে পারে। অন্য উত্তরের ২ + ২ উদাহরণ হ্যাক নয়, এটি একটি কুৎসিত কোড সমাধান এবং কোড বোঝার দিক থেকে খারাপ, তবে এটি সব ক্ষেত্রেই সঠিক সমাধান দেয়। গণিতে একটি কল্পিত সমীকরণের কথা ভাবেন- আচরণ / সম্পর্ক উভয় সংস্করণে অভিন্ন এবং সঠিক তবে রূপটি ভিন্ন different হুঁ, একটি সমীকরণের ফ্যাক্টর, রিফ্যাক্টর একটি সমীকরণ, রিফ্যাক্টর কোড ... না, কোনও মিল নেই আমি নিশ্চিত :)

প্রথম নামটি "জিম" এ পরিবর্তনের বিষয়ে অন্য উত্তরের একটি উদাহরণ হ্যাক: এটি লক্ষণটি সমাধান করে (তালিকার প্রথম নাম জিম), তবে সমস্যাটি পুরোপুরি সমাধান করে না (তালিকাটি সাজানো হয়নি) বা সমস্ত প্রবেশের জন্য কাজ করে এমন কোনও উপায়ে অগ্রাধিকার দেওয়া হয়েছে)।


1

একটি হ্যাক এমন কিছু করছে যা প্রত্যাশিত ফলাফলটি দেয়, তবে এটি একটি অদ্ভুত উপায়ে করে (সাধারণত কোনও পারফরম্যান্স হিট দেয়)।

উদাহরণ:

কার্য : একটি পূর্ণসংখ্যার দ্বিগুণে পরিবর্তনশীল কাস্ট করা

সমাধান : কাস্ট অপারেটরটি ব্যবহার করুন। উদাহরণস্বরূপ: dblVar = CType (intVar, ডাবল)

হ্যাক : একটি দ্বিগুণ দ্বারা ভাগ করুন। অর্থাত্: ডিবিএলভার = ইনটওয়ার / 1.0


একটি বড় উদাহরণ জন্য +1। পুরানো AS400 কোডে আমি ইউরোপীয় তারিখগুলি দেখতে পাব কিছু দশমিক দশমিক দ্বিগুণ, যা আমেরিকান তারিখকে ছাড়িয়ে যায়। সমস্যাগুলি শুরু হয় যখন নির্দিষ্ট কোডারগুলি এটি আমাদের। নেট কোডের মধ্যে ফাঁস করা শুরু করে ... ব্লহ!
মরগান হের্লোকার

0

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


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

আপনার যদি কেবল কয়েক মিনিট সময় থাকে?
স্টুপারউসার

0

একটি হ্যাক তার জন্মের ইঙ্গিত দেয় যখন কোডার দায়িত্বে ঘোষণা করে "আমি ফিরে আসব এবং পরে এটি ঠিক করব"।

একটি গুরুতর দ্রষ্টব্য - ওপির প্রসঙ্গে একটি হ্যাক এমন কিছু যা পছন্দসই ফলাফল অর্জন করে তবে এটি করার জন্য একটি অস্থায়ী বা অবিশ্বাস্য পদ্ধতি ব্যবহার করে।

অন্যান্য সাধারণ সংজ্ঞাটি এমন একটি কৌশল যা প্ল্যাটফর্মের সীমাবদ্ধতা / সুরক্ষাকারী ব্যবস্থাগুলি ঘটাতে প্রান্তের আচরণগুলি ব্যবহার করে।

দ্বিতীয় প্রসঙ্গে হ্যাকের "ম্যাভেরিক" (পড়ুন: বিপজ্জনক) নায়ক-কোডারদের মধ্যে একটি নির্দিষ্ট ক্যাশে রয়েছে ...

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