গাড়ি-ফেরতের চরটি কি অপ্রচলিত হিসাবে বিবেচিত?


26

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

আমার অবাক করে দেওয়ার জন্য, একজন ব্যবহারকারী একটি বাগ জমা দিয়েছেন যেখানে পার্সার কাজ করছে না এবং আমি সমস্যার কারণ আবিষ্কার করেছি যে ডেটা সিআর লাইনটি এলএফ বা সিআরএলএফ এর বিপরীতে ব্যবহার করেছে।

ইউনিক্স-ভিত্তিক প্ল্যাটফর্মে স্যুইচ করার পরে ওএসএক্স কি এলএফ স্টাইলের লাইন-এন্ডিং ব্যবহার করছে না?

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

পুরানো ম্যাক ওএস স্টাইল লাইন-এন্ডিংয়ে সিদ্ধান্ত নেওয়ার (যে কারণেই হোক) ব্যবহারকারীদের পরিসংখ্যানগতভাবে তুচ্ছ শতাংশের পক্ষে সমর্থন বাদ দেওয়া কি নিরাপদ?

হালনাগাদ:

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

সিআর স্টাইল লাইনের শেষের জন্য সর্বশেষ ওএস যে সিস্টেম-ব্যাপী সমর্থন সরবরাহ করেছিল তা হ'ল ম্যাক ওএস 9 । হাস্যকরভাবে, কেবলমাত্র অ্যাপ্লিকেশন যা এখনও এটি OSX এ ডিফল্ট হিসাবে ব্যবহার করে তা হ'ল মাইক্রোসফ্ট এক্সেল।


21
"এটি অতিরিক্ত জটিলতা এবং ওভারহেড যুক্ত করে": আমি মনে করি অতিরিক্ত জটিলতা এবং ওভারহেড সত্যিই ছোট।
জর্জিও

11
@ ইভানপ্লাইস আপনার ইচ্ছাকৃতভাবে বাদ পড়া সিআর সমর্থন করতে কেবল মাথা ব্যথা এবং অলস হওয়ার জন্য আরও বেশি সময় দেবে না?
পিটার বি

11
"ব্যবসায়ের নিরিখে সুযোগ ব্যয় খুব বেশি। সহজ ভাষায়, আমি মৃত প্ল্যাটফর্মের জন্য অ্যাড-কেস সমর্থন যোগ করার চেয়ে সময় নষ্ট করার চেয়ে আমার অলসতা প্রমাণ করার কারণ খুঁজে পাই।": ব্যবসায়ের দিক থেকে এটি কম সময় নিতে পারত এই বৈশিষ্ট্যের প্রাসঙ্গিকতা তদন্ত করতে এখানে একটি প্রশ্ন পোস্ট করার চেয়ে সিআর সমর্থন সমর্থন বাস্তবায়ন করুন।
জর্জিও

4
@ ইভানপ্লাইস সাংস্কৃতিক জড়তা পুরোপুরি ভাল কারণ।
পিটার বি

5
@ ইভানপ্লাইস: এই কোডটি লিখতে ইতিমধ্যে আপনার কোডবেজে নতুন লাইনের পক্ষে সমর্থনের চেয়ে বেশি সময় ব্যয় করতে হবে CR। (... এবং যদি আপনি
দৃly়ভাবে

উত্তর:


37

এখানে একটি ভাল অনুশীলন রয়েছে যেখানে আপনি "আপনি যা গ্রহণ করেন তাতে উদার এবং আপনি যা প্রেরণ করেন তাতে রক্ষণশীল"

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

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

আপনি যখন crকোনও লেসচারে দেখেন যে পরের অক্ষরটি উঁকি দিচ্ছে এবং এটি যদি একটি হয় nl, তবে নতুন লাইনটি গিলে ফেলুন এবং একটি নতুন লাইন টোকেন প্রসারণ করুন , যদি পরবর্তী অক্ষরটি nlকেবল একটি নতুন লাইন টোকেন নির্গত না করে চালিয়ে যান।


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

4
@ ওয়াটসিসনাম: আমি একমত নই আমি মনে করি উত্পাদন মানের সফ্টওয়্যারটি শক্তিশালী হওয়া উচিত। উন্নয়ন সরঞ্জামচেনগুলি তবে এই দৃ rob়তার উপর নির্ভর করে দৃ strongly়ভাবে নিরুৎসাহিত করা উচিত এবং কেবল বৈধ আউটপুট উত্পাদন করা উচিত। এই মেস এইচটিএমএলটি ব্রাউজারগুলির বিন্যাসের দ্বারা নয়, প্রায় দুই দশকের দুর্বল টুলিংয়ের কারণে ঘটে।
back2dos

2
@ back2dos: _ _ তাই? দুর্বল টুলিং ব্রাউজারগুলির স্বল্পতার কারণে ঘটে।
আমারা

4
দরিদ্র টুলিং ব্রাউজার যুদ্ধের ফলাফল
র‌্যাচেট ফ্রিক

2
@ ডিবিবেক: ত্রুটিযুক্ত ইনপুট হ্যান্ডলিং করা কেবল বিদ্যমান অস্তিত্বের স্থানে একটি বড় ইনপুট স্পেসের মানচিত্র করে এবং সুতরাং এটির উপর তার কোনও প্রভাব পড়বে না - তবে আপনার সফ্টওয়্যার উদ্বেগের একটি শালীন বিভাজন রয়েছে provided
back2dos

21

নং সিআর অপ্রচলিত নয় ("আর ​​উত্পাদিত বা ব্যবহৃত হবে না" হিসাবে সংজ্ঞায়িত)। আপনি নিজেই তার প্রমাণ সরবরাহ করেছেন। এটি সম্ভবত অস্বাভাবিক তবে অচল নয় ।

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


13
+1 - আইএমও, ওপি সিআরটিকে "অপ্রচলিত" হিসাবে লেবেল দেওয়ার চেষ্টা করছে যাতে এটি সমর্থন না করার জন্য তার অজুহাত থাকে has
স্টিফেন সি

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

18

অলসতা সম্পর্কে: আপনার ভারসাম্য বজায় রাখতে হবে:

  • কোড পরিবর্তন করার চেষ্টা যাতে সিআর নিরাপদে পরিচালিত হয় (এবং তারপরে এটি ভুলে যান)।

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

কোন পথটি সবচেয়ে অলস তা আপনারা সিদ্ধান্ত নেবেন।


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

7
@ ইভান: অবশ্যই এটি ওপেন সোর্স। যদি এটি না হয়, তবে আপনার বস আপনাকে বলতেন "আমি কোনও ছিলে না যে 'কেউ' আর সিআর ব্যবহার করে না! গ্রাহকরা অভিযোগ করছেন। এটি ঠিক করুন!" : পি এটি ওএসএসের সম্পর্কে সবচেয়ে বড় বিষয় যা আমাকে প্রশ্রয় দেয়: ব্যবহারকারীরা যে প্রকৃত মামলার অভিযোগ করেছেন তার প্রতি মনোযোগের অভাব । আপনি এটি অচল মনে করেন বা না থাকুক, কেউ এটিকে এখনও ব্যবহার করছেন।
সিএওও

1
কারণ এটি ওপেন সোর্স, আপনি সমস্ত ব্যবহারকারীদের জন্য একটি খোলার চিঠি লিখতে পারেন যে আপনি কোনও প্যাচ এটি ঠিক করার জন্য গ্রহণ করবেন।
রবিং

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

1
@ ইভানপ্লাইস: এবং যাইহোক, যখন আমি "অভিযোগ" বলতে চাইছি, তখন আমার অর্থ "সফ্টওয়্যারটি কীভাবে খারাপ তা সম্পর্কে এলোমেলোভাবে বর্ণনা করা" নয়, "কী ভাঙ্গা হয়েছে এবং কীভাবে" তার বাইরে একটি বাগ রিপোর্ট ফাইল করা "file
সিএইচও

8

পুরানো ম্যাক ওএস স্টাইল লাইন-এন্ডিংয়ে সিদ্ধান্ত নেওয়ার (যে কারণেই হোক) ব্যবহারকারীদের পরিসংখ্যানগতভাবে তুচ্ছ শতাংশের পক্ষে সমর্থন বাদ দেওয়া কি নিরাপদ?

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

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


2
উইন্ডোজ ব্যবহার করে উল্লেখ করার জন্য +1 CRLF- এটি ওএসে শেষ হওয়া ডিফল্ট লাইন। এবং .csv ফাইলের উত্সটির গ্যারান্টি দেওয়ার কোনও উপায় নেই, সুতরাং এটি উইন্ডোজ সিস্টেমে সহজেই তৈরি করা যেত।

1
উইন্ডোজে সিআরএলএফ উল্লেখ করা প্রাসঙ্গিক নয় কারণ আপনি যদি এলএফকে ব্রেক পয়েন্ট হিসাবে ধরেন তবে আপনি স্বয়ংক্রিয়ভাবে বোনাস হিসাবে সিআরএলএফ পাবেন। ওপি এটি জানে যেমন আপনি তাঁর পোস্টের পাঠ্যে দেখতে পারেন।
ডেভিডেথেল

@ ডেভিডেথেল হ্যাঁ, এটি কিভাবে হয়েছে। বর্তমানে সিআর চরগুলি নীরবে উপেক্ষা করা হচ্ছে। সত্ত্বেও হাতি।
ইভান প্লেস

6

অনেকগুলি সিরিয়াল ডিভাইস রয়েছে যা প্রেরণের CRআগে ডেটা স্ট্রিমের শেষ হিসাবে নির্ভর করে ETX। এটি এমন একটি সম্মেলন যা কখনই দূরে যাবে না।


3

আমি অনুরোধটিকে এমন কোনও বৈশিষ্ট্য অনুরোধ হিসাবে বিবেচনা করব যেখানে আপনাকে সুবিধার বিপরীতে ব্যয়গুলি ওজন করতে হবে।

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

http://gettingreal.37signals.com/ch05_Forget_Feature_Requests.php


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

1

এমএসডোস থেকে আগত এমএস ওএস লাইন বিভাজক হিসাবে সিআর + এলএফ সংমিশ্রণটি ব্যবহার করে (আমি বেশিরভাগ ম্যাট্রিক্স প্রিন্টারের কারণে তাদের প্রয়োজন বলে মনে করি)।

হ্যাঁ, এটি খুব খারাপ, তবে আপনার তবুও জঘন্য জিনিসটির জন্য সমর্থন দরকার।

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