2008-10-22 12 views
20

मैंने देखा है कि बहुत से ओपनसोर्स प्रोजेक्ट अब बिटविज़ झंडे का उपयोग नहीं करता है, भले ही यह वेब (php/MySQL) के लिए सामान्य प्रोग्रामिंग वातावरण द्वारा पूरी तरह से समर्थित है। यह कुछ प्रभावी समस्या के लिए "खोया अभ्यास" है, या सिर्फ इतना है कि बहुत सारे PHP प्रोग्रामर इस प्रकार के कार्यान्वयन को कैसे संभालेंगे, यह नहीं जानते?बिटवाई झंडे को त्याग दिया?

कुछ नहीं भी महत्वपूर्ण है, बस बहुत ही उत्सुक :) आप करने के लिए धन्यवाद सभी

उत्तर

13

मैं अपनी गर्दन को बाहर रखूंगा और कहूंगा कि प्रत्येक तकनीकी स्थिति को बिटवाई ऑपरेशंस की अच्छी समझ की आवश्यकता होती है।

और मेरे पास एक उपेक्षा है जो परोक्ष रूप से विषय को संबोधित करती है।

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

जब मैंने भारतीय मानव संसाधन लड़के के साथ अपने दृष्टिकोण पर चर्चा की तो मैं (धीरे-धीरे) बहुत कम पिचिंग के लिए चिंतित था। उन्होंने यह स्पष्ट किया कि हेक्स के बारे में मेरे प्रश्न संभवतः उम्मीदवारों के अनुभव या शिक्षा के अपमान के रूप में समझा जाएगा।

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

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

साक्षात्कार प्रगति के रूप में मुझे खुशी है कि मैंने उस स्तर पर शुरुआत की थी। इसने किसी को भी दंडित नहीं किया, और अनुपयुक्त उम्मीदवारों को आसानी से पहचाना गया।

यह कहना नहीं है कि मैं उम्मीद करता हूं कि उम्मीदवारों को दिन-प्रतिदिन थोड़ा-सा व्यवहार करने की उम्मीद है, लेकिन जो भी भाषा प्रोग्रामिंग के मूलभूत सिद्धांतों की अच्छी समझ है, वह आवश्यक है। यहां तक ​​कि अमूर्तता के उच्च स्तर पर डेवलपर्स नियमित आधार पर हेक्स के संपर्क में आते हैं (उदाहरण के लिए आरजीबी मूल्य)। तोते stuff you find on the net केवल उस सीमा तक मदद करेगा जो चीजें पूरी तरह से पहली बार काम करती हैं।

लेकिन डेवलपर्स के लिए पिछले पांच सालों में शुरू होने के लिए मेरा मानना ​​है कि बुनियादी सिद्धांतों पर चमकना बहुत आसान है, अच्छी तरह से इरादे वाले आईडीई और "कोडलेस" प्रोग्रामिंग की यादें हैं। विजुअल स्टूडियो इंस्टॉलेशन स्पैश स्क्रीन बिना कोड कोड के विकास के बारे में दावा करती है। दरअसल, does Visual Studio rot the mind?

+4

एक दिलचस्प उपाख्यान, लेकिन मैं यह देखने में असफल रहा कि यह प्रश्न का उत्तर कैसे देता है। –

12

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

यह है एक मरते हुए कला मैं आपको बता ...

+2

मुझे कोई सुसंगत औचित्य दिखाई नहीं देता है। हां, यह एक घटती प्रासंगिक/प्रचलित कौशल है, लेकिन यह सवाल का जवाब नहीं देता है। –

0

मैं अभी भी हालांकि पसंद के अपने मुख्य भाषा के रूप में, बिटवाइज़ ऑपरेटर्स का उपयोग करें (और पेशेवर) सी # है मैं अक्सर इसके लिए करें enums का उपयोग :) लेकिन हाँ, मैं उन लोगों के बारे में सोचें जो PHP जैसे चीजों में कोड स्वयं सिखाए जाते हैं, और बिटवाई ऑपरेशंस या उनके उपयोग के बारे में नहीं जानते हैं।

स्वयं को स्वयं सिखाया जाने के बाद, जब तक मैंने सी और सी ++ कोड लिखना शुरू नहीं किया तब तक मुझे उनके बारे में बहुत कुछ नहीं पता था। अब मैं उनका उपयोग करता हूं जहां वे समझ में आते हैं :)

+0

यह प्रश्न का उत्तर नहीं प्रदान करता है। किसी लेखक से स्पष्टीकरण की आलोचना या अनुरोध करने के लिए, अपनी पोस्ट के नीचे एक टिप्पणी छोड़ दें। –

+0

@IlijaDimov कोई अपराध नहीं, लेकिन यह जवाब लगभग 7 साल पहले लिखा गया था, जब चीजें ढेर ओवरफ्लो पर थोड़ी अलग थीं। आपके द्वारा छोड़ी गई टिप्पणी की आवश्यकता नहीं थी। – Sekhat

+0

यह उत्तर कुछ दिनों पहले निम्न गुणवत्ता वाले पोस्ट समीक्षा कतार में दिखाई दिया था। मैंने इसे अच्छे उत्तर के लिए मौजूदा नियमों के आधार पर उत्तर के रूप में चिह्नित नहीं किया और टिप्पणी स्वचालित रूप से दिखाई दी। –

7

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

ओह और रिकॉर्ड के लिए, मुझे पता है कि उनका उपयोग कैसे करें।

+1

मैं मानता हूं, वे बहुत कठिन हैं, जब स्मृति महंगी थी तो उन्हें समझ में आया। अब स्मृति सस्ता है, और बैंडविड्थ तेज है कोई मुद्दा नहीं है। –

+1

फिर भी हर डेवलपर को पता होना चाहिए कि क्या बिटटाइज झंडे हैं, अगर उन्हें कभी भी उनके साथ सौदा करना पड़ता है (यानी विरासत कोड या हार्डवेयर संचार)। ऐसा लगता है कि कई डेवलपर्स वास्तव में इसे याद कर रहे हैं। – OregonGhost

+0

हाँ मैं पूरी तरह से सहमत हूं, लेकिन क्योंकि कोई विशेष तकनीक का उपयोग नहीं कर रहा है, इसका मतलब यह नहीं है कि वह अवगत नहीं है या उसे नहीं जानता है। – Johnny

2

बिटफिल्ड बहुत उपयोगी हैं यदि आपके पास बहुत मेहनत और गति की आवश्यकताएं हैं, या निम्न स्तर के हार्डवेयर प्रोग्रामिंग करते समय।

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

मैं एक अच्छा प्रोग्रामर उन्हें जानते हैं और उन्हें :-P का उपयोग

0

वे हमेशा अंतरिक्ष की एक छोटी राशि में बूलियन झंडे के बहुत सारे के भंडारण के लिए एक जगह की जरूरत नहीं की उम्मीद करेंगे;

बस सोचें कि आपके पास 32 झंडे हैं (उदाहरण के लिए); आप उन्हें सभी को "लंबे पूर्णांक" में स्टोर कर सकते हैं और केवल 4 बाइट्स का उपयोग कर सकते हैं, अब कल्पना करें कि आपने प्रत्येक ध्वज के लिए लंबे समय तक उपयोग करना चुना है (सिर्फ इसलिए कि कोड को बनाए रखना आसान है - अब आपके पास सौदा करने के लिए 128 बाइट हैं।

मेरी पृष्ठभूमि मुख्य रूप से सी/सी ++ है इसलिए मुझे उन पर लाया गया था, इसलिए मैं निश्चित रूप से उन सभी भाषाओं में उनका उपयोग करता हूं जो मैं उपयोग करता हूं; लेकिन मैं सहमत हूं; नौसिखिया प्रोग्रामर भी देखभाल नहीं करते हैं - यह सब याददाश्त चारों ओर झूठ बोल रही है - कौन परवाह करता है ?

2

"बहुत" काफी सामान्य है, हम ऐसे नामों चाहते हैं! ;-)

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

क्या मुझे बूलियन के बहुत से उदाहरण में हेरफेर करना होगा, मैं बिट्स के इन सरणी को अनुकूलित और सारणित करने के लिए कुछ बिटसेट वर्ग का उपयोग करूंगा।

अब, बिट मैनिप्ल्यूशन फ़ू प्रोग्रामिंग में लगभग अनिवार्य है, यदि आप आरजीबी [ए] मानों के घटकों तक पहुंच बनाना चाहते हैं, तो अगर आप कुछ एपीआई कॉल करना चाहते हैं (भले ही यह सिर्फ नामित झंडे का ऑर्डर कर रहा हो), आदि

संक्षेप में, मैं उस प्रोजेक्ट में इसका उपयोग नहीं करूंगा जो मैं करता हूं, लेकिन आप इसे कैसे नहीं करना चाहते हैं (regexes की तरह थोड़ा ...)।

10

बिटवाई ऑपरेशंस केवल स्मृति को संरक्षित करने के बारे में नहीं हैं। वे स्पष्ट कोड लिखने के लिए वास्तव में उपयोगी हैं। आप किसके बजाय देखेंगे?

OpenFile("...", true, false) 

या

OpenFile("...", writeonly | append) 

एक अतर्कसंगत/तुच्छ उदाहरण की तरह है कि, लेकिन आप विचार मिलता है।

+3

मैं कोड प्रलेखन पॉपअप के साथ पहले, पहले देखेंगे। दूसरा और अस्पष्ट लगता है। – Petah

+2

दूसरे के साथ, विकल्पों के क्रम को याद रखने की कोई आवश्यकता नहीं है, फ़ंक्शन को समर्थन करने वाले पैरामीटर की संख्या में कोई वृद्धि नहीं है, और आमंत्रण स्वयं-दस्तावेज़ है। – Stoutie

3

एम्बेडेड प्रोग्रामिंग के बाहर जहां स्मृति प्रबंधन महत्वपूर्ण है, उनकी लागत उनके न्यूनतम मूल्य से अधिक है। विशेष रूप से, बिटवाई झंडे वाले डीबी कॉलम पूछने से क्रिप्टिक एसक्यूएल उत्पन्न होता है जिसके लिए प्रत्येक बिटवाई ऑपरेशन संदर्भों का मूल्य निर्धारित करने के लिए ऐप के कोड को संदर्भित करने की आवश्यकता होती है।

WHERE (ISNULL(flags, 0) & 4096 = 0 -- What does this bit refer to? 

यदि आपके डीबी से पूछना है तो यह आपको डराता नहीं है, इसे चाहिए।

+0

वास्तव में, मूल्य रिवर्स इंजीनियर के लिए एक उपद्रव हैं। Apache configs में php त्रुटि रिपोर्टिंग मान देखते समय मुझे यह समस्या है! – Stoutie

+1

एसक्यूएल का यह बिट परिचित लग रहा है ... –

+1

हा! अरे जेसी - छोटी दुनिया ने इसे देखा! –

संबंधित मुद्दे