আমি একটি জাভা অ্যাপ্লিকেশন বাস্তবায়ন করছি যা একটি পূর্বাবস্থায় / পুনরায় স্ট্যাক অন্তর্ভুক্ত। আমি লক্ষ্য করেছি যে কিছু অ্যাপ্লিকেশন (যেমন ম্যাক ওএস এক্সের টেক্সটএডিট) আপনাকে কিছু পাঠ্য টাইপ করার পরে সম্পাদনা মেনু থেকে "পূর্বাবস্থা ফিরিয়ে আনুন" বেছে নিতে দেয়। আমি আমার অ্যাপ্লিকেশনটিতেও এই ধরণের জিনিসটি প্রয়োগ করতে চাই তবে এটি কীভাবে আচরণ করা উচিত সে সম্পর্কে গাইডলাইনগুলি খুঁজে পেতে আমার খুব কষ্ট হচ্ছে।
কিছু পরীক্ষা এবং ত্রুটি সহ, টেক্সটএডিটের পূর্বাবস্থা টাইপিং কীভাবে আচরণ করে সে সম্পর্কে আমার সেরা অনুমান:
- যখন ব্যবহারকারী কোনও নতুন অক্ষর টাইপ করে (বা মুছুন কী টাইপ করে), নিম্নলিখিতটি পূর্বাবস্থা টাইপিং আইটেমটিতে একত্রী করুন যদি কোনওটি পূর্বাবস্থায় ফেরত স্ট্যাকের শীর্ষে থাকে, যদি না নিম্নলিখিত অবস্থার একটি ঘটে থাকে
- নিষ্ক্রিয়তার কমপক্ষে 15 সেকেন্ড পরেও ব্যবহারকারী টাইপ করা চালিয়ে যাওয়ার পরে সর্বদা একটি নতুন পূর্বাবস্থায় টাইপিং আইটেম তৈরি করুন
- ব্যবহারকারী বর্ধিত সময়ের জন্য টাইপ করার পরে এবং কিছু শর্ত পূরণ হওয়ার পরে সর্বদা একটি নতুন পূর্বাবস্থা টাইপিং আইটেম তৈরি করুন (এটি সময় ভিত্তিক বা চরিত্রের গণনার উপর ভিত্তি করে ছিল কিনা তা বুঝতে পারি না)।
- যখন কোনও পাঠ্য নির্বাচন করা হয় এবং তারপরে মুছে ফেলা বা ওভাররাইট করা হয় তখন সর্বদা একটি নতুন পূর্বাবস্থায় টাইপিং আইটেম তৈরি করুন (পাঠ্য নির্বাচন করা, পরিবর্তন করা হচ্ছে না, তারপরে মূল সন্নিবেশ বিন্দুতে ফিরে আসা এবং টাইপ করা চালিয়ে যাওয়া এটিকে ট্রিগার করে না)
অনুশীলনে, অ্যাপলের কৌশলটি কাজ করে বলে মনে হচ্ছে (কমপক্ষে এটি টাইপ করার সময় আমার পক্ষে কাজ করে) তবে শেষ পয়েন্টে উল্লিখিত হিসাবে আমি সত্যিই নিয়মগুলি বের করতে সক্ষম হইনি। এছাড়াও, মনে হয় অন্যান্য প্রোগ্রামগুলি মাইক্রোসফ্ট ওয়ার্ডের মতো বিভিন্ন বিধি অনুসরণ করে। পূর্বাবস্থায়িত টাইপিংয়ের যে কোনও প্রয়োগের জন্য গুগল নিয়মের একটি সংজ্ঞায়িত তালিকা তৈরি করে নি এবং এটি কীভাবে আচরণ করা উচিত সে সম্পর্কে আমি কোনও সেরা অনুশীলন দেখতে পাইনি। সুতরাং এটি আচরণ করা উচিত কিভাবে? অথবা এটি কেবল প্রোগ্রামারের কৌতুকের উপরে?
সম্পাদনা: কেবল স্পষ্ট করে বলার জন্য, আমি এখনই বাস্তবায়নের বিবরণে আগ্রহী নই। আমি বিশেষত কৌতূহলী যে কোনও অনুমোদনমূলক রেফারেন্স (যেমন সেরা অনুশীলন বা ব্যবহারকারী ইন্টারফেস ডকুমেন্ট) বিদ্যমান রয়েছে বা না এটি একাধিক পণ্য জুড়ে কীভাবে এটি প্রয়োগ করা হয় তার বিবরণ বর্ণনা করে exists
124<delete>3, তারপরে এটি পূর্বাবস্থায় ফেরানো এবং পুনরায় করা ফলাফল 123। আমি এর সুবিধাটি অনুমান করি যে এটি ব্যবহারকারীর পাঠ্যটির চূড়ান্ত স্থিতির ফলস্বরূপ, কিছুটা উপরের পরামর্শের মতো।