हैक क्या है? [बन्द है]


55

मैं अक्सर सहकर्मियों को एक-दूसरे से कहते हुए सुनता हूं, "यह एक भयानक, भयानक हैक है।"

मैं इससे दूर ले जा सकता हूं कि यह अच्छा नहीं है। जब मैंने उनसे पूछा कि क्या यह काम करता है तो वे कहते हैं "हां, लेकिन यह अच्छा नहीं है"। इसका मतलब यह है कि यह एक अच्छा समाधान नहीं है? यदि यह काम करता है तो समाधान बुरा कैसे है? क्या यह अच्छे अभ्यास के कारण है? या बनाए रखने योग्य नहीं है? क्या यह आपके समाधान के हिस्से के रूप में कोड के साइड इफेक्ट का उपयोग कर रहा है?

यह मेरे लिए दिलचस्प है जब कुछ को हैक के रूप में वर्गीकृत किया जाता है। आप इसे कैसे पहचान सकते हैं?


5
कुछ काम हो सकता है लेकिन धीमा, नाजुक, काम करने के लिए बदसूरत और बनाए रखने के लिए दर्दनाक हो सकता है। यह एक हैक है।
ट्रेज़ॉयड


मैं यह नहीं कह रहा कि यह एक हैक है, लेकिन आप डायनामिक रूप से बंदर-पैचिंग +को पुनरावृत्तियों के आधार पर विभाजित करना चाहते हैं ।
आहारबुद्ध

उन सभी के लिए जो बताता है कि हैक्स गंदे बैंड-एड्स हैं, कृपया देखें कि उन लोगों के लिए क्या मतलब है जो खुद को हैकर्स को outpost9.com/reference/jargon/jargon_23.html#TAG824 पर देखते हैं - 2. / n. - एक अविश्वसनीय रूप से अच्छा , और शायद बहुत समय लेने वाली, काम का टुकड़ा जो वास्तव में आवश्यक है पैदा करता है।

1
एक ऐसी सुविधा जो लोकप्रिय मानकों के अनुसार या आपके बेहतर मानक के अनुसार लागू नहीं की जाती है।
आदित्य पी

जवाबों:


97

यह एक बड़े गैपिंग घाव के लिए एक अस्थायी बैंड सहायता लागू कर रहा है। यह अभी के लिए तय है, लेकिन यह बाद में और भी समस्या पैदा करने वाला है।

एक उदाहरण जो मैंने हाल ही में देखा है: आप एक व्यक्ति का नाम चाहते हैं "Jim", हमेशा एक वर्णमाला सूची में पहली बार दिखाई देता है। इसे जल्दी से हल करने के लिए, आप उसका नाम बदल देते हैं " Jim"। यह एक हैक है जो निश्चित रूप से आपको बाद में काटने के लिए वापस आ जाएगा।


34
या आप उसे "एएए जिम" कह सकते हैं।
कंपैन

4
एक और उदाहरण अगर एक और ... का विस्तार होगा, तो समय की कमी के कारण, एक और अधिक समाधान के बजाय।
फिल लेलो

29
और जिम को अल्फाबेटिकल लिस्ट में पहले स्थान पर लाने के लिए वास्तविक समाधान, निश्चित रूप से, वर्णमाला को फिर से व्यवस्थित करना है।
आर्टेम

1
@artem सच है, और यह इस jzbcdefghiklmnopqrstuvwxya की तरह लग रहा था (आप वर्णमाला को फिर से व्यवस्थित करने के लिए, नीचे लाने के लिए और z लाने के लिए नहीं करना चाहते)
प्रदर्शन का नाम

1
इसे परियोजना प्रबंधन के संदर्भ में वाक्यांश के लिए: एक हैक एक ऐसा समाधान है जो भविष्य में समय / मानव घंटे का कर्ज पैदा कर सकता है, और / या सर्वोत्तम प्रथाओं या मानक सम्मेलनों के खिलाफ जाता है।
गुप्तचर

60

प्रत्येक इंजीनियरिंग निर्णय तत्काल लागत और देरी और परिणामी लागत और तकनीकी ऋण के बीच एक व्यापार है।

एक हैक एक ऐसी स्थिति है जहां पूर्व को एक परिणाम के रूप में स्वीकार करते हुए पसंद किया जाता है।

अनुभवहीन डेवलपर्स (आंशिक रूप से इंजीनियरिंग शिक्षा प्रणाली के काम करने के तरीके के कारण) पूर्व पर ध्यान केंद्रित करते हैं और उत्तरार्द्ध को सही मायने में समझने या अनुमान लगाने के लिए पर्याप्त अनुभव नहीं है।

अनुभवी डेवलपर्स करते हैं, लेकिन विभिन्न कारणों से (कई वैध) पूर्व को चुनते हैं।

हैक शब्द लगभग हमेशा एक समस्या को अस्थायी रूप से हल करने का इरादा रखता है और "इसे ठीक बाद में करें", लेकिन अनुभवी डेवलपर्स को पता है कि कोड में सबसे स्थायी चीजें अस्थायी हैक हैं।


13
+1 के लिए "लेकिन अनुभवी डेवलपर्स जानते हैं कि कोड में सबसे स्थायी चीजें अस्थायी हैक हैं"! जिसका अर्थ यह भी है कि आलस्य को आपको कभी भी सही करने से नहीं रोकना चाहिए।
मथिउ एम।

20

यदि यह काम करता है तो समाधान बुरा कैसे है?

इस पर विचार करो

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

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

हालाँकि, दूसरा उदाहरण हैक किया जा सकता है जो एक बेहतर अभ्यास की अनदेखी या उस धारणा के कारण उपयोग किया जाता है जो उस समय सरल/1 था या लाइब्रेरी में बग जो काम को सही ढंग से बनाता था ।/1

क्या यह अच्छे अभ्यास के कारण है?

संख्या भाड़े "समीचीन" कोड हैं। कर रहे हैं तीन चार कारणों।

  • उचित डिजाइन सिद्धांतों की अज्ञानता। (अर्थात ठोस सिद्धांत)

  • एपीआई या भाषा निर्माण के बारे में अहंकार (यानी गलत धारणाएं)।

  • वास्तविक बग जो हल नहीं हुए हैं, लेकिन उनके आसपास काम किया जाता है।

  • प्रबंधन अच्छी डिजाइन और सुधार धारणाओं से आगे निकल जाता है। "बजट" एक सामान्य औचित्य है, लेकिन यह गैर-तकनीकी मूल कारण के साथ अनिवार्य रूप से उपरोक्त तीन (अज्ञान, अहंकार या त्रुटि) में से एक है।

या बनाए रखने योग्य नहीं है?

यही तो बात है। हैक अज्ञानता, कीड़े या मान्यताओं पर आधारित है।

क्या यह आपके समाधान के हिस्से के रूप में कोड के साइड इफेक्ट का उपयोग कर रहा है?

यह अज्ञानता या गलत धारणा का उदाहरण हो सकता है।


शानदार जवाब, लेकिन इस बात का ध्यान नहीं रखा जाता है कि कभी-कभी हैक क्वालिटी बनाम टाइम बनाम कॉस्ट त्रिकोण के कारण गुणवत्ता के साथ लिखे जाते हैं।
स्टुपरयूसर

1
मैं ग्राहकों के साथ उस खेल को खेलने के लिए उपयोग करता हूं। मैं उन्हें किसी परियोजना के दो सबसे महत्वपूर्ण पहलुओं को गुणवत्ता, समय, लागत से चुनने के लिए कहूंगा। लगभग हमेशा समय और लागत उठाया गया था, और फिर वे गुणवत्ता पर ध्यान नहीं देंगे। विशेष रूप से, इस तथ्य का हवाला देते हुए कि मैं एक सलाहकार था और तीनों को समय, लागत और बकाया गुणवत्ता के साथ देने में सक्षम होना चाहिए। यह परिदृश्य हेन के दांत जैसा है!
OptimizePrime

1
@Optimize: मुर्गियाँ के दांत दुर्लभ होते हैं। क्या यह स्थिति दुर्लभ है?
मैट एलेन

@ मैट एलेन: यह "हेन के दांत" वाक्यांश का एक अलग उपयोग हो सकता है। इसका अर्थ "दुर्लभ" के बजाय "विरोधाभासी" हो सकता है।
एस.लॉट

मुझे लगता है कि यह लगभग हमेशा "प्रबंधन ओवरराइड" निर्णय है।
मार्क मैकडॉनल्ड्स

15

हैकिंग इन प्रोग्रामिंग के संदर्भ में डक-टेप या बबल गम के साथ कुछ तय करने के बराबर होगा।

हैक में अक्सर कुछ अवांछित और असमर्थित सुविधाओं का उपयोग करना शामिल होता है, जो भविष्य में आपके कोड को तोड़ सकता है। इनमें हार्ड-कोडेड मान भी शामिल हो सकते हैं।

हैक आमतौर पर अंतर्निहित समस्या को हल करने के बजाय, कुछ पुस्तकालय / सेवा का उपयोग करके कोड में अस्थायी काम हो सकता है। यदि बाद में आपके नियंत्रण से बाहर है, तो हैक इससे निपटने का एकमात्र तरीका हो सकता है।


21
नलिकाओं के लिए डक-टेप का उपयोग करना एक
चुटकी

क्वैक क्वैक क्वैक
मेटेन उल्हाक

11

शब्द का उपयोग कभी-कभी विपरीत अर्थ के साथ किया जाता है, जैसे कि "शानदार हैक।" सिर्फ इसलिए कि कुछ शानदार करने की तुलना में यह बहुत अधिक सामान्य है, यह शानदार हैक के मुकाबले भयानक हैक के बारे में सुनने के लिए बहुत अधिक सामान्य है, लेकिन मैंने दोनों तरीकों से उपयोग किए जाने वाले शब्द को सुना है।

सकारात्मक अर्थ में प्रयुक्त "हैक" मूल रूप से एक सुरुचिपूर्ण समाधान का अर्थ है जो समस्या को अप्रत्याशित और विशेष रूप से चतुर तरीके से हल करता है। नकारात्मक और सकारात्मक अर्थ वास्तव में करीब हैं क्योंकि एक शानदार हैक में अक्सर प्रौद्योगिकी के अनपेक्षित पहलू का लाभ उठाना शामिल होता है।


1
इसकी एक शानदार हैकिंग क्योंकि यह देखना मुश्किल होगा कि आपने सतह पर क्या किया, लेकिन आगे के विस्तृत निरीक्षण पर, यह स्पष्ट है कि यह हास्यास्पद रूप से चतुर वाम क्षेत्र कोड है। क्या मैं आपको भूकंप की जड़ में जाने के लिए प्रेरित कर सकता हूं
रॉबर्ट मैसैओली

10

एक समाधान जो अभी काम करता है , लेकिन संभवतः लंबे समय में समस्याएं पैदा करेगा।

उदाहरण: आपको गतिशील रूप से कुछ मानों को भरते हुए, एक HTML दस्तावेज़ तैयार करना होगा। ऐसा करने का उचित तरीका यह है कि वास्तव में इस उद्देश्य के लिए डिज़ाइन किए गए उपकरणों में से एक का उपयोग करना है, जैसे कि फ्रीमार्कर, या एक्सएसएलटी, या जेएसपी। लेकिन आप उनमें से किसी का भी उपयोग नहीं कर सकते हैं, या आप इसे ठीक से करने के लिए परेशान नहीं हो सकते हैं, इसलिए आप कुछ इस तरह लिखते हैं:

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

9

हैक एक समस्या का एक सरल समाधान है, जो अक्सर आउट-ऑफ-द-बॉक्स सोच पर निर्भर करता है और पर्यावरण के बारे में अप्रत्याशित तथ्यों का लाभ उठाता है। आर्कषक हैक के बारे में एक कहावत है कि दर्शक सहमत हैं कि यह सरल है, लेकिन यह पता नहीं लगा सकता है कि यह अद्भुत है या भयानक है। यह उस तरह की चीज है जिसे आप अपने रखरखाव में नहीं चाहते हैं।

एक हैक जो एक समस्या को ठीक करता है वह बहुत संभव है कि पर्यावरण के विवरण, या किसी उपकरण की अनिर्दिष्ट सुविधाओं या इस तरह के कुछ पर निर्भर करेगा। यह भंगुर समाधान होने की संभावना है, अब काम कर रहा है, लेकिन जब कुछ बदलता है, तो संभवतः टूट जाता है। यह समझना मुश्किल हो सकता है कि यह कैसे काम करता है, और कोई भी रखरखाव प्रोग्रामर हार्ड-टू-समझने कोड से नफरत करेगा। इसके साइड इफेक्ट्स हो सकते हैं जो समय के लिए कुछ भी चोट नहीं पहुंचाते हैं, लेकिन भविष्य में कुछ दूर कोड के पूरी तरह से अच्छे टुकड़ों में समस्या पैदा करेंगे, और इससे निपटने के लिए एक बुरा सपना हो सकता है।


9

हैक शब्द का दुरुपयोग होता है। यदि आप वास्तव में थोड़ा इतिहास प्राप्त करना चाहते हैं, तो आप इसे विकिपीडिया कर सकते हैं। हैक एक ऐसा शब्द है जो कुछ ऐसी चीजों को करने की प्रक्रिया का वर्णन करता है जो वे करने के लिए नहीं थे। इलेक्ट्रिकल इंजीनियरिंग के संदर्भ में, यह अच्छा है। इस पर विकिपीडिया पर बेहतर वर्णन है।

अब, कंप्यूटर विज्ञान के संदर्भ में। एक हैक आमतौर पर बुरा है। हां, यह काम करता है, लेकिन आमतौर पर इसका मतलब है कि प्रोग्रामर ने कुछ अस्पष्ट कोड लिखा है जो सॉफ्टवेयर के डिजाइन का अनुपालन नहीं कर रहा है और यह हर प्रोग्रामर को भ्रमित करेगा जिसे उस कोड को पढ़ना है। बेशक प्रोग्रामर का समय महंगा है, इसलिए एक प्रबंधक के रूप में सबसे आसानी से बनाए रखने योग्य सॉफ़्टवेयर होना चाहता है। प्रोग्रामरों के लिए भी यही मान्य है। इसके अलावा, हैक्स सॉफ्टवेयर में कुछ और तोड़ देते हैं।

यह एक निर्णय कॉल है कि हैक को स्वीकार करना है या नहीं। कम से कम आप चाहते हैं कि वरिष्ठ सॉफ्टवेयर इंजीनियर हैक को मंजूरी दे, क्योंकि उसके पास अधिक अनुभव है और वह अधिक शिक्षित निर्णय लेने में सक्षम है। निश्चित रूप से आप नहीं चाहते कि जूनियर लोग हैक को स्वीकार करने के बारे में निर्णय लें। वे एक के साथ आ सकते हैं और वरिष्ठ लोगों के साथ चर्चा कर सकते हैं कि क्या लाभ हैक को बनाए रखने के दर्द के लायक हैं।


6

यह एक हैक है, जैसा कि thereifixedit.com पर पाया गया है ।

किराये का

दरअसल उस साइट की हर चीज के बारे में एक हैक है।

भाड़े उनके संदर्भ से बाहर कुछ चीजों के सरल और दुस्साहसी उपयोग हैं।
एक हैक की सुंदरता इस तथ्य में होती है, कि आपके पास एक दी गई समस्या है और उपकरण जो इसे हल करने के लिए कभी नहीं थे, लेकिन आप केवल उन टूल (सही लोगों को प्राप्त करने के बजाय) के साथ समस्या को हल करते हैं। वे चतुर, तेज और मजेदार हैं। नकारात्मक पक्ष यह है कि परिणाम अक्सर नाजुक और बाहरी लोगों के लिए उपयोग करने के लिए खतरनाक होते हैं।
मेरा मतलब है, अगर आप अपनी समस्याओं को चित्र की तरह हल करना पसंद करते हैं, तो कोई समस्या नहीं है। समस्या तब होती है, जब आप अन्य लोगों की समस्याओं का समाधान करते हैं। इस मामले में, वे शायद इलेक्ट्रोक्यूटेड या जला हुआ या कुछ और प्राप्त करेंगे।

सॉफ़्टवेयर डेवलपमेंट में, आप चाहते हैं कि आपके कोड को अन्य लोगों द्वारा संभाला जा सके (जिसमें आपका भविष्य भी शामिल हो) बिना किसी घातक चोट के। जैसा कि दिज्क्स्त्र ने डाला:

सक्षम प्रोग्रामर को अपनी खोपड़ी के सीमित आकार की पूरी जानकारी है। इसलिए वह अपने कार्य को पूरी विनम्रता के साथ करता है, और प्लेग जैसी चतुर चाल से बचता है।

और हैक्स सबसे चालाक चालों में से हैं।

हैक्स आपके कोड में कहीं न कहीं टाइम बम को टिक कर रहे हैं, क्योंकि आम लोग स्वाभाविक रूप से बहुत अधिक मान्यताओं पर आधारित होते हैं ("बस करना" उचित डिकॉप्लिंग के लिए पसंद किया जाता है)। जैसे ही उन मान्यताओं पर कोई रोक नहीं लगाता, आपका पूरा सिस्टम बिना किसी विचार के आपके टूट सकता है।


4

यह शब्द बहुत सटीक नहीं है, लेकिन संभवतः यह एक समस्या के त्वरित और गंदे समाधान की बात कर रहा है जिसे ठीक से हल करना मुश्किल है। विचाराधीन समाधान शायद काम करता है, लेकिन शायद बहुत अच्छा कार्यान्वयन नहीं है, शायद सूक्ष्म कीड़े हैं, शायद कुछ छोटे ज्ञात कीड़े हैं, और बाद में फिर से हो जाना चाहिए , यदि समय अनुमति देता है। मुझे लगता है कि आप जिसे "हैक" कह रहे हैं उसे कभी-कभी " कीचड़ " भी कहा जाता है ।

मैं अक्सर देखता हूं कि हैक तब होता है जब किसी कार्य को पूरा करने के लिए बहुत तंग समय बाधाएं होती हैं, और एक हैक समाधान लागू किया जाता है क्योंकि यह क्यूए को पास करने के लिए "बस पर्याप्त" काम करता है, इस उम्मीद के साथ कि बाद में इसे ठीक किया जा सकता है। दुर्भाग्य से, कि बाद में तय / साफ-सफाई हमेशा नहीं होती है :(


मुझे यकीन नहीं है कि आप "बहुत सटीक नहीं" से क्या मतलब है - मैं कहूंगा कि ज्यादातर प्रोग्रामर को पता होगा कि कुछ कोड लिखे गए हैक कहने का क्या मतलब है। लेकिन बाकी जवाब हाजिर है, यह काम करता है, लेकिन किसी कारण से (वास्तुकला, प्रदर्शन आदि) यह एक इष्टतम समाधान नहीं है।
ozz

@ नाम: मेरे अनुभव में, दो प्रोग्रामर कुछ कोड देख सकते हैं और एक इसे हैक कहेगा, दूसरा नहीं करेगा। हैक के रूप में कोड के एक टुकड़े की मात्रा निर्धारित करने का कोई वास्तविक तरीका नहीं है। हर किसी का अपना विचार होता है कि हैक क्या है, और अक्सर वे समान होते हैं लेकिन हमेशा समान नहीं होते हैं। किसी ऐसे व्यक्ति के रूप में लिखा गया है जिसने अपना कोड दूसरों के द्वारा "हैकिश" कहा है, और असहमत है। और मैंने अन्य लोगों के कोड को "हैकिश" कहा है और वे असहमत थे। सच है, वे शायद सीमा मामले हैं, लेकिन कई बार सीमाएं फजी हो सकती हैं ...
FrustratedWithFormsDesigner

1
@FWFD - यह सिर्फ इस बात पर असहमत है कि क्या कोई हैक है। अगर कोई "कहता है" कुछ कोड एक हैक है तो आपको पता चल जाएगा कि उनका क्या मतलब है।
ozz

4

मैं फ्रंट-एंड डेवलपर के रूप में बहुत समय बिताता हूं, इसलिए मेरी एक हैक की परिभाषा है:

एक समाधान जो वातावरण की खामियों और अनैच्छिक व्यवहार के गहन ज्ञान पर आधारित है।

पर्यावरण आपका ढांचा, वेब-ब्राउज़र, डेटाबेस, एटीएम (कैश डिस्पेंसर), कोर्ट-केस हो सकता है। कोई भी "नियमों की प्रणाली", जहां आप एक लूप-होल जानते हैं और किसी समस्या को हल करने के लिए इसका फायदा उठाते हैं।


4

एक हैक आमतौर पर कुछ कोड होता है जो स्पष्ट रूप से वांछित आउटपुट प्रदान करता है, लेकिन एक उप-इष्टतम तरीके से।

यह आमतौर पर किसी तरह से कुछ अनजानी या अस्पष्ट भाषा / पुस्तकालय सुविधा का उपयोग कर रहा है जो कि प्रवर्तक द्वारा अनजाने में किया गया था और इस प्रकार से आशय है कि इरादा क्या है।

कभी-कभी यह कुछ भाषा या लाइब्रेरी बग के आसपास काम करने के लिए किया जाता है लेकिन ज्यादातर मामलों में मुख्य कारण आमतौर पर अज्ञानता है;

एक हथौड़ा करने के लिए सब कुछ एक नाखून की तरह दिखता है।

ऐसी चीजें जो अयोग्य तरीके से की जाती हैं, आमतौर पर अंतरिक्ष और समय दोनों में, लेकिन अंततः वांछित आउटपुट का उत्पादन करती हैं, लेकिन एक लागत पर, और बिना किसी परीक्षण क्षमता और बिना किसी स्थिरता के संभव गैर-ज्ञात किनारे के मामलों में। आमतौर पर तर्क या भाषा मुहावरों की मौलिक समझ की कमी से उपजी है । "कठिन रास्ता" भी देखें।

आमतौर पर कोड कुछ ऐसा होता है जिसे उपयुक्त अनुभव वाला कोई व्यक्ति करने पर भी विचार नहीं करता है, या इसे हैक करने के बारे में गोल के रूप में जटिल और अक्षम बनाने के लिए लंबा और कठिन सोचना होगा।

उदाहरण

विस्टा फिक्स

ईमेल सत्यापन की वैधता

सॉफ्टवेयर की इकाइयाँ

गैर नियतात्मक हैश


उप-परिमित के लिए +1। क्योंकि शीर्ष-सर्वाधिक मतदान के कारण हैक्स आवश्यक नहीं है "अस्थायी"।
rlb.usa

2

एक गंजा टायर काम करता है लेकिन कोई भी इसे पंचर के लिए एक आदर्श समाधान नहीं कहेगा। यह लाइन के नीचे बदतर समस्याएं पैदा कर सकता है।

आमतौर पर मैं एक हैक को एक त्वरित समस्या के त्वरित और गंदे समाधान के रूप में मानता हूं। यह आमतौर पर एक प्रोग्रामिंग दुकान में सामान्य प्रोग्रामिंग अभ्यास के अनुरूप नहीं हो सकता है (उदाहरण के लिए, हार्डकॉकिंग का उपयोग करें)। यह एक छोटा फिक्स हो सकता है।

एक खराब कारण यह है कि ए) अप्रत्याशित परिणाम का कारण हो सकता है ख) यह प्रश्न में कोड के मूल डिजाइन से मेल नहीं खा सकता है जो रखरखाव की समस्याओं का कारण होगा। मेरे अनुभव में, हैक्स आमतौर पर बहुत खराब दस्तावेज होते हैं।


2

एक छोटी सी परिभाषा जो मैंने सुनी है और सम्मान के लिए आती है:

"एक लक्षण का समाधान जो सभी मामलों में समस्या को पूरी तरह से हल नहीं करता है"

बदसूरत कोड एक हैक हो सकता है या नहीं हो सकता है। एक अन्य जवाब में 2 + 2 उदाहरण हैक नहीं है, यह एक बदसूरत कोड समाधान है और कोड-समझने के दृष्टिकोण से खराब है, लेकिन यह सभी मामलों में सही समाधान पैदा करता है। गणित में एक तथ्यात्मक समीकरण के बारे में सोचो- व्यवहार / संबंध दोनों संस्करणों में समान और सही है, लेकिन रूप अलग है। हम्म, कारक एक समीकरण, रिफ्लेक्टर एक समीकरण, रिफलेक्टर कोड ... नहीं, नहीं समानता मुझे यकीन है कि :)

पहला नाम "जिम" में बदलने के बारे में एक अन्य उत्तर में उदाहरण एक हैक है: यह लक्षण को हल करता है (सूची में पहला नाम जिम है), लेकिन समस्या को पूरी तरह से हल नहीं करता है (सूची को सॉर्ट नहीं किया गया है या किसी भी तरह से प्राथमिकता दी गई है जो सभी प्रविष्टियों के लिए काम करता है)।


1

एक हैक कुछ ऐसा कर रहा है जो अपेक्षित परिणाम देता है, लेकिन एक अजीब तरीके से करता है (आमतौर पर एक प्रदर्शन हिट)।

उदाहरण के लिए:

कार्य : एक डबल करने के लिए एक पूर्णांक कास्ट करने के लिए

समाधान : कास्ट ऑपरेटर का उपयोग करें। यानी: dblVar = CType (intVar, Double)

हैक : एक डबल द्वारा विभाजित। Ie: dblVar = intvar / 1.0


एक तारकीय उदाहरण के लिए +1। पुराने AS400 कोड में मैं यूरोपीय तारीखों को कुछ निराला दशमलव से गुणा करूंगा, जो अमेरिकी तारीख को आउटपुट करता है। समस्याएं तब शुरू होती हैं जब कुछ कोडर हमारे .Net कोड में लीक करने लगते हैं ... ब्लो!
मॉर्गन हेरलॉकर

0

कल्पना कीजिए कि अगर आपका पैर संक्रमित हो गया और उसे हटाना पड़ा ताकि आप बच सकें। क्या आप इसके बजाय चिकित्सक को जल्दी से कुल्हाड़ी से काट देंगे, या समस्या की जांच करने और उचित उपकरण, प्रक्रिया, आदि को चुनने के बाद शल्यचिकित्सा से इसे हटा देंगे? सॉफ्टवेयर पर भी यही बात लागू होती है।


हमलावर के दिमाग में जाने का मौका मिलने से पहले मैंने उसे हैक कर लिया।
मतीन उलहाक

यदि आपके पास केवल कुछ मिनट हों तो क्या होगा?
स्टुपरयूजर

0

एक हैक संकेतों का जन्म तब होता है जब कोडर जिम्मेदार घोषित करता है "मैं वापस आऊंगा और बाद में ठीक करूंगा"।

एक गंभीर नोट पर - ओपी के संदर्भ में एक हैक कुछ ऐसा है जो वांछित परिणाम प्राप्त करता है, लेकिन ऐसा करने के लिए एक अस्थायी या अविश्वसनीय विधि का उपयोग करता है।

अन्य सामान्य परिभाषा एक तकनीक है जो मंच में सीमाओं / सुरक्षा उपायों को दरकिनार करने के लिए किनारे के व्यवहार का शोषण करती है।

दूसरे संदर्भ में हैक में "मावरिक" (पढ़ें: खतरनाक) हीरो-कोडर्स के बीच एक निश्चित कैच है ...

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.