একটি বিষয় লক্ষণীয় হ'ল কোডটি প্রায়শই বিভিন্ন "গভীরতায়" পঠিত হয়। এই কোড:
PowerManager powerManager = (PowerManager)getSystemService(POWER_SERVICE);
WakeLock wakeLock = powerManager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "abc");
wakeLock.acquire();
"স্কিম" করা সহজ। এটি 3 বিবৃতি। প্রথমে আমরা একটি সঙ্গে আসা PowerManager
। তারপরে আমরা একটি নিয়ে আসি WakeLock
। তারপর আমরা । আমি প্রতিটি লাইনের প্রারম্ভের দিকে তাকিয়ে সত্যই সহজে দেখতে পাচ্ছি; সরল ভেরিয়েবল অ্যাসাইনমেন্টগুলি আংশিকভাবে "টাইপটি বর্ণনাম = ..." হিসাবে স্বীকৃত এবং মানসিকভাবে "..." এর উপরে স্কিম করা সহজ। একইভাবে শেষ বিবৃতিটি অবশ্যই স্পষ্টভাবে অ্যাসাইনমেন্টের ফর্ম নয়, তবে এটিতে কেবল দুটি নাম জড়িত, সুতরাং "মূল বক্তব্য" অবিলম্বে দৃশ্যমান is আমি কেবল "এই কোডটি কী করে?" জবাব দেওয়ার চেষ্টা করছি কিনা এমনই প্রায়শই আমার জানা দরকার? উচ্চতর স্তরেacquire
wakeLock
আমি যদি এখানে একটি সূক্ষ্ম বাগটি অনুসরণ করি যা আমার মনে হয় যে এখানে রয়েছে, তবে স্পষ্টতই আমাকে আরও বিস্তারিতভাবে এড়াতে হবে এবং আসলে "..." গুলি মনে রাখবে। তবে পৃথক বিবৃতি কাঠামো এখনও আমাকে একবারে একটি বিবৃতিটি করতে সহায়তা করে (বিশেষত কার্যকর যদি প্রতিটি বিবৃতিতে ডেকে আনা জিনিসগুলি বাস্তবায়নের জন্য আরও গভীরভাবে ঝাঁপিয়ে পড়ার প্রয়োজন হয়; যখন আমি ফিরে আসি তখন আমি "ইউনিট" পুরোপুরি বুঝতে পেরেছি) এবং তারপরে পরবর্তী বিবৃতিতে যেতে পারে)।
((PowerManager)getSystemService(POWER_SERVICE))
.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "MyWakelockTag")
.acquire();
এখন এটি সব এক বিবৃতি। শীর্ষ স্তরের কাঠামো স্কিম-পঠন করা এত সহজ নয়; ওপির মূল সংস্করণে, কোনও কাঠামোটি দৃশ্যত যোগাযোগ করার জন্য লাইন ব্রেক এবং ইন্ডেন্টেশন ছাড়াই, আমি এটিকে 3 টি ধাপের অনুক্রমে ডিকোড করার জন্য প্রথম বন্ধনী গণনা করতে হত। পদ্ধতি কলের শৃঙ্খলা হিসাবে সাজানোর পরিবর্তে যদি কয়েকটি অংশের এক্সপ্রেশনগুলি একে অপরের মধ্যে বাসা বেঁধে রাখা হয়, তবে এটি এখনও এর সাথে সাদৃশ্যপূর্ণ হয়ে উঠতে পারে, সুতরাং আমাকে বন্ধনীর গণনা ছাড়াই বিশ্বাস করা সম্পর্কে যত্নবান হতে হবে। এবং যদি আমি প্রসারণের উপর ভরসা করি এবং কেবলমাত্র এই সমস্তটির অনুমিত বিন্দু হিসাবে শেষের দিকে এগিয়ে যাই তবে .acquire()
নিজেই আমাকে কী বলে ?
কখনও কখনও যদিও, এটি আপনি চান হতে পারে। আমি যদি আপনার রূপান্তরটি অর্ধ-উপায়ে প্রয়োগ করি এবং লিখেছি:
WakeLock wakeLock =
((PowerManeger)getSystemService(POWER_SERVICE))
.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "MyWakeLockTage");
wakeLock.acquire();
এখন এটি একটি দ্রুত স্কাইতে যোগাযোগ করুন "একটি পান WakeLock
, তারপরে acquire
এটি পান"। এমনকি প্রথম সংস্করণ থেকে সহজ। এটি তাত্ক্ষণিকভাবে স্পষ্ট যে জিনিসটি যেটি অর্জন করা হয় তা হ'ল এক WakeLock
। যদি প্রাপ্ত PowerManager
হ'ল কেবল একটি উপ-বিশদ যা এই কোডের বিন্দুটির পক্ষে মোটামুটি তুচ্ছ wakeLock
, তবে এটি গুরুত্বপূর্ণ, তবে এটি আসলে জিনিসটি কবর দেওয়ার পক্ষে সহায়তা করতে পারে PowerManager
তাই আপনি যদি কেবলমাত্র একটি দ্রুত পাওয়ার চেষ্টা করছেন তবে এটিকে স্কিম করা স্বাভাবিক natural এই কোডটি কী করে তার ধারণা। আর নামকরণের এটা যোগাযোগ এটি করা হয় শুধুমাত্র একবার ব্যবহার, এবং কখনও কখনও যে কী গুরুত্বপূর্ণ (যদি বাকী ক্ষেত্রটি খুব দীর্ঘ হয়, তবে এটি আবার কখনও ব্যবহার করা হয়েছে কিনা তা জানাতে আমার সমস্ত কিছু পড়তে হবে; যদিও আপনার ভাষা যদি তাদের সমর্থন করে তবে সুস্পষ্ট সাব-স্কোপগুলি ব্যবহার করা এটিকে মোকাবেলার আরেকটি উপায় হতে পারে)।
কোনটি সামনে আসে যে এগুলি সমস্ত প্রসঙ্গে এবং আপনি কী যোগাযোগ করতে চান তার উপর নির্ভর করে। প্রাকৃতিক ভাষায় গদ্য লেখার হিসাবে, আছে সবসময় কোডের একটি প্রদত্ত টুকরা মূলত তথ্য বিষয়বস্তু পরিপ্রেক্ষিতে হয় সমতুল্য লিখতে নানাভাবে। প্রাকৃতিক ভাষায় গদ্য লেখার মতো, আপনি কীভাবে এগুলির মধ্যে নির্বাচন করেন তা হ'ল "কেবলমাত্র একবারে ঘটে যাওয়া কোনও স্থানীয় পরিবর্তনশীলকে বাদ দিন" এর মতো যান্ত্রিক নিয়ম প্রয়োগ করা উচিত নয় । বরং কীভাবেআপনি আপনার কোডটি লিখতে বেছে নিন কিছু জিনিসকে জোর দেবে এবং অন্যকে ডি-জোর দেবে। আপনি আসলে কী জোর দিতে চান তার উপর ভিত্তি করে এই পছন্দগুলি সচেতনভাবে করার চেষ্টা করা উচিত (প্রযুক্তিগত কারণে কম পাঠযোগ্য কোড লিখার পছন্দ সহ) times বিশেষত পাঠকদের কী কী সেবা দেবে সে সম্পর্কে চিন্তা করুন যা আপনার কোডটির "সংক্ষিপ্ত বিবরণ" পাওয়া দরকার (বিভিন্ন স্তরে), যেহেতু এটি খুব ঘনিষ্ঠ প্রকাশ-দ্বারা-প্রকাশের পাঠের চেয়ে প্রায়শই ঘটবে।