কোঁকড়ানো ব্রেস স্যুপ সঙ্গে লেনদেন


11

আমি বহু বছর ধরে সি # এবং ভিবি.এনইটি উভয় ক্ষেত্রে প্রোগ্রাম করেছি, তবে মূলত ভিবিতে। আমি সি # এর দিকে ক্যারিয়ারে পরিবর্তন আনছি এবং সামগ্রিকভাবে আমি সি # আরও পছন্দ করি।

আমার একটি সমস্যা হচ্ছে, তবে এটি কোঁকড়ানো ব্রেস স্যুপ। ভিবিতে, প্রতিটি কাঠামো কীওয়ার্ডের সাথে একটি মিলের নিকট কীওয়ার্ড থাকে, উদাহরণস্বরূপ:

Namespace ...
    Class ...
        Function ...
            For ...
                Using ...
                    If ...
                        ...
                    End If
                    If ...
                        ...
                    End If
                End Using
            Next
        End Function
    End Class
End Namespace

সি # তে লিখিত একই কোডটি খুব শক্তভাবে পড়া শেষ:

namespace ... {
    class ... {
        function ... {
            for ... {
                using ... {
                    if ... {
                        ...
                    }
                    if ... {
                        ...
                    }
                }
            }
            // wait... what level is this?
        }
    }
}

ভিবিতে এতটাই অভ্যস্ত হয়ে উঠছি, আমি ভাবছি যে পাঠযোগ্যতা উন্নত করতে এবং আপনার কোডটি সঠিক "ব্লক" এ শেষ হয়েছে তা নিশ্চিত করার জন্য সি-স্টাইল প্রোগ্রামারদের দ্বারা নিযুক্ত কোনও কৌশল রয়েছে কিনা? উপরের উদাহরণটি পড়তে তুলনামূলকভাবে সহজ, তবে কখনও কখনও কোডের টুকরো শেষে আমার 8 বা ততোধিক কোঁকড়া ধনুর্বন্ধনী থাকে যার ফলে আমার আগ্রহী ব্লকটি শেষ হয় যা বন্ধনীটি বন্ধ করে দেয় তা নির্ধারণ করতে বেশ কয়েকটি পৃষ্ঠাগুলি স্ক্রোল করা প্রয়োজন iring ভিতরে.


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

7
একটি জিনিস আমি দেখেছি, এবং আমি করণীয় গ্রহণ করেছি, এটি একটি কোঁকড়া ধনুর্বন্ধনী শেষে, আমি এটি সম্পর্কে একটি মন্তব্য যুক্ত করব। কিছু একটা // End's using X statement
পিসিয়জভেনম

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

2
@ ফ্রাস্ট্রেটড উইথফর্মস ডিজাইনার - একটি সিওএম ইন্টারপ পরিস্থিতিতে আমার প্রচুর COM অবজেক্টগুলি পরিষ্কার করতে হবে। আমি এই নিবন্ধে প্রস্তাবিত কৌশলটি ব্যবহার করছি: jake.ginnivan.net/vsto-com-interop । এটি সহজেই দুটি বা তিনটি স্তর তৈরি করে। যখন আপনি এর উপরে লুপ, ফাংশন, শ্রেণি এবং নেমস্পেসের স্ট্যাক করবেন (যদি একটি বিবৃতি সহ) আপনি সহজেই বক্রবন্ধগুলির কয়েকটি স্তর পেতে পারেন।
জেডিবি এখনও মনিকার

5
@ টিরিওনল্যানিস্টার - এবং এগুলির সাথে তারা যা সম্পর্কিত তার সাথে সিঙ্কের বাইরে চলে যাওয়ার জন্য দ্রুততম কিছু মন্তব্য হতে পারে ... আমার মনে হয় যদি আমার এরকম কিছু হয় তবে আমি এটিকে স্বয়ংক্রিয়ভাবে উত্সাহিত করতে পছন্দ করব (প্রদর্শনীতে -আইডিই দ্বারা শুধুমাত্র-সময়, অজানা নয়)।
ক্লকওয়ার্ক-মিউজিক

উত্তর:


39

আপনার প্রারম্ভিক কোঁকড়া ধনুর্বন্ধকে আপনার সমাপ্তির মতো একই "র‌্যাঙ্কে" রাখুন:

namespace ... 
{
    class ... 
    {
        function ... 
        {
            for ... 
            {
                using ... 
                {
                    if ... 
                    {
                        ...
                    }
                    if ... 
                    {
                        ...
                    }
                }
            }
            // It's the `function` level!
        }
    }
}

15
আমি রাজী. মিশরীয় বন্ধনীগুলি আমাকে মাথা ব্যাথা দেয়।
পিয়াসেভেনম

8
এছাড়াও, বেশিরভাগ আইডিই (সম্ভবত) আপনি যখন কোনও ব্রেসের অংশীদারকে ক্লিক করেন তখন তা হাইলাইট করে।
StuperUser

3
@ টিরিওনল্যানিস্টার: অবশেষে আমাকে সেই স্টাইলের জন্য একটি শব্দ দেওয়ার জন্য ধন্যবাদ! "ভুল সংযুক্তিযুক্ত ধনুর্বন্ধনী" ব্যতীত তাদের জন্য আমার আর কখনও ভাল নাম ছিল না।
হতাশ

3
@ সাইবার্গক্স ৩37: আপনার আইডিইতে কি "ম্যাচিং ব্রেসে যান" বৈশিষ্ট্য রয়েছে? সাধারণত একটি মূল শর্টকাটে আবদ্ধ যা স্বয়ংক্রিয়ভাবে আপনার কার্সারটিকে বর্তমানে বন্ধুর সাথে মিলিয়ে দেয় ce
হতাশিত

3
বলতে হবে, আমি দেখতে পাচ্ছি না এটি কীভাবে এটি আরও সহজ করে তোলে। যে কোনও উপায়ে আপনি কোনও কীওয়ার্ড না পাওয়া পর্যন্ত আপনি কেবল ব্রেসের ইনডেন্ট স্তরে স্ক্রিনটি সন্ধান করেন। এবং এই সমস্ত অতিরিক্ত লাইনগুলির সাথে আপনার এখন আরও সন্ধান করা উচিত।
ব্লারগবার্ড

14
  • আপনার আইডিই এর উপর নির্ভর করে: আপনার কার্সারটিকে খোলা / বন্ধ বন্ধনীতে রেখে দিন এবং এটি এবং এটি সম্পর্কিত ব্রেস উভয়ই হাইলাইট করবে।
  • ব্লকটি সঙ্কুচিত করুন এবং এটি আপনাকে কোথায় প্রদর্শন করবে / বন্ধ হবে তা দেখায়।
  • ছোট কোড ব্লক লিখুন। সিরিয়াসলি। চেক আউট করুন Clean Code, এবং আর কখনও এই সমস্যায় দৌড়াবেন না (এবং আরও পড়ার যোগ্য / বজায় রাখা কোড রয়েছে)।

একটি নোট, নিম্নলিখিতটি বৈধ সি # সিনট্যাক্স যা আপনার বিশেষ পরিস্থিতির ক্ষেত্রে সহায়তা করতে পারে:

using (var type = new MyDisposable1())
using (var type2 = new MyDisposable2())
{
    /* do what you will with type2 and type2 */
}

একক হাইলাইটেড চরিত্রের জন্য শিকার হ'ল যা আমাকে এই প্রশ্নটি প্রথম স্থানে পোস্ট করতে বাধ্য করেছিল।
জেডিবি এখনও মনিকা

2
@ সাইবার্গক্স ৩37: সুতরাং পয়েন্ট ৩. যদি আপনার পুরো কোড ব্লকটি স্ক্রিনে ফিট করে তবে আপনাকে কখনও শিকার করতে হবে না। আমি লিখি বেশিরভাগ / সমস্ত ক্লাসে, পর্দার সাথে খাপ খায় না এমন একক ধনুর্বন্ধনী হ'ল নেমস্পেস / ক্লাস।
স্টিভেন ইভার্স

আপনি 1 এবং 2 পয়েন্টগুলিতে যা পরামর্শ দিচ্ছেন তা হ'ল আমি এখনই যা করছি ... তবে এর জন্য আমি যেখানে কোডিং করছি সেই জায়গাটি ছেড়ে দেওয়া এবং পরবর্তী লাইনটি কোথায় রাখা উচিত তা নির্ধারণ করার জন্য কোডটির আমার দৃষ্টিভঙ্গিটি শুরু করা দরকার। পয়েন্ট 3 যথাযথভাবে নেওয়া হয়েছে, তবে সবসময় সম্ভব নয়, বিশেষত যদি আপনার কোডটিতে কয়েকটি স্তরের usingব্লকের প্রয়োজন হয় (দেখুন jake.ginnivan.net/vsto-com-interop )
এখনও মনিকা

@ সাইবার্গক্সএক্স: আমার সম্পাদনা দেখুন।
স্টিভেন ইভার্স

1
@ সাইবার্গক্স ৩37 যদি আপনি এমন কোনও রঙ চয়ন করেন যা অন্য সব কিছু থেকে আলাদা হয়ে যায় (আমি বেগুনির পটভূমি এবং কিছুক্ষণের জন্য সাদা পাঠ্য ব্যবহার করি, আইআইআরসি) তবে মিলছে ব্রেসগুলির সন্ধান করার দরকার নেই - এটি ব্যবহারিকভাবে আপনাকে স্ক্র্যাম করে "আমি এখানে আছি ! "।
একটি সিভিএন

5

একটি সাধারণ কনভেনশন হ'ল বন্ধ বন্ধনীটি বন্ধ হয়ে যাওয়ার পরে কাঠামোটি বন্ধ হয়ে যাওয়ার ইঙ্গিত দেওয়ার পরে একটি মন্তব্য যুক্ত করা:

if {
   ...
} // end if

while (condition) {
   ...
} // end while

ইত্যাদি আমি নিজেই এই সম্মেলনে উষ্ণ হইনি, তবে কিছু লোক এটি সহায়ক মনে করে।


16
আমি দেখেছি মানুষ এই কাজ, এবং যখন তারা অদলবদল / ব্লক begining (ক পরিবর্তন পরিবর্তন whileএকটি থেকে for, এর swap 'র ifবিবৃতি) তারা প্রায় না তাদের রেন্ডারিং, ক্লোজিং মন্তব্য আপডেট করতে মনে রাখবেন খারাপ বেহুদা হয়। এই কনভেনশনটি সম্ভবত তখনই কার্যকর হতে পারে যদি আপনি প্রতিবার মিলের {পরিবর্তনের প্রকৃতির মতামতগুলি বজায় রাখতে বাধ্য হন ।
হতাশিত

হ্যাঁ, আমি এর কয়েকটি করেছি, তবে এটি অনেক অতিরিক্ত কাজ (এবং শব্দ)। আমি আশা করছিলাম যে আরও সোজা কিছু হবে।
জেডিবি এখনও মনিকা

5
মন্তব্য শুধুমাত্র ব্যাখ্যা করতে হবে কেন না কি বা কিভাবে কোড ঐ এবং মন্তব্য জানানোর উভয় ব্যাখ্যা করতে মতো এতদুভয় থেকে কোড পড়তে যা চিহ্ন কোড না মন্তব্য সংশোধন করা উচিত কঠিন মানে।
জিমি হোফা

1
এটি আমাকে অবাক করে তোলে কেন কেউ এই মন্তব্যগুলি প্রদর্শন করে এমন কোনও সম্পাদক কেন লিখেনি, তবে আসলে সেগুলি কোডে অন্তর্ভুক্ত করে না ...
ব্রেন্ডন লং

2
@ জিমি হোফা: আমি মনে করি মন্তব্যের পক্ষে আরও ভাল নিয়ম হ'ল তাদের স্পষ্টতা দেওয়া উচিত । সাধারণত এর অর্থ "কেন" উত্তর দেওয়া হয় তবে এটি অন্য জিনিসগুলিরও অর্থ বোঝাতে পারে। কৌতূহলের মধ্যে এমনভাবে জড়িয়ে পড়বেন না যে এটি আপনাকে এমন জিনিসগুলি করা থেকে বিরত রাখে যা আসলে সাহায্য করে যেমন মাঝেমধ্যে বন্ধ হয়ে যাওয়া বন্ধনীটিতে একটি মন্তব্য যুক্ত করা যা এর প্রারম্ভিক বন্ধনী থেকে দূরে সরিয়ে নেওয়া হয়।
ব্রায়ান ওকলে

5

সাধারণভাবে, যখন যাই শৈলীতে ধনুর্বন্ধনী মেলানো কঠিন হয়ে যায় - এর সম্ভবত অর্থ এই পদ্ধতিটি দীর্ঘ এবং আবার ফ্যাক্টর করা উচিত।


5

আমি মনে করি আপনার ধনুর্বন্ধনী দিয়ে এটি শক্ত করা প্রয়োজন। শেষ পর্যন্ত এগুলি আপনার কাছে দ্বিতীয় প্রকৃতির হয়ে উঠবে এবং আপনি কীভাবে এগুলি ছাড়া বাঁচতেন তা আপনি ভাববেন।

নিশ্চিত করুন যে তারা যথাযথভাবে ইন্টেন্টেড রয়েছে এবং কিছু ফাঁকানো কনভেনশন অনুসরণ করা হচ্ছে (যা তা বিবেচনা করে না)।


এক বছর পরে, এবং এই পরামর্শ সত্য রিং। :)
জেডিবি এখনও মনিকার

4

নেমস্পেস এবং শ্রেণিবদ্ধ স্কোপগুলি অনুভূমিকভাবে ভেঙে আমি 2 স্তরের নেস্টিং সরিয়েছি। লক্ষ করুন যে পদ্ধতিগুলি স্ক্রিনের বাম প্রান্তের সাথে ফ্লাশ করছে। আমি প্রতিটি ফাইলের 2 স্তরের ইন্ডেন্টেশন হারাতে পয়েন্টটি দেখতে পাচ্ছি না।

এর পরে এটি বিরল আপনি 4 টিরও বেশি গভীর বাসা বাঁধবেন।

namespace FooNameSpace {
class Foo {

public void bar()
{
    while(true)
    {
        while(true)
        {
            break;
        }
    }
}

public void fooBar()
{
    foreach(var item in FooList)
    {
        foreach(var b in item.Bars)
        {
            if(b.IsReady)
            {
                bar();
            }
            bar();
        }
        bar();
    }
}

}}//end class, namespace

আমি এই ধারণাটি পছন্দ করি তবে ভিজ্যুয়াল স্টুডিও এটি সমর্থন করে না বলে মনে হচ্ছে (কমপক্ষে ২০০৮। আমরা বছরের শেষের দিকে ২০১২ এ উন্নীত করছি, সুতরাং এখানে আশাবাদী)
জেডিবি এখনও মনিকা

@ Cyborgx37। আমি ভিআইএম এ বাহ্যিকভাবে পাঠ্য সম্পাদনা করি যাতে সমস্যা হয় না। তবে ভিজ্যুয়াল স্টুডিওতে: কন্ট্রোল + এ, তারপরে "ইনডেন্ট কম" বোতামটি চাপুন। এটি কেবল নতুন ফাইলের জন্য করুন। বিদ্যমান ফাইলগুলি নিয়ে বিরক্ত করবেন না কারণ এটি উত্স নিয়ন্ত্রণে ভিন্ন-তুলনাগুলিকে বিশৃঙ্খলা করবে।
মাইকে 30

বন্ধ বন্ধনী / বন্ধনীগুলিতে টাইপ করা ভিএস দ্বারা একটি স্বয়ংক্রিয় ফর্ম্যাট শুরু করে তবে আপনি এর পরামর্শটি প্রত্যাখ্যান করতে সর্বদা CTRL + z এ আঘাত করতে পারেন।
প্যারিসে অ্যালেক্স

1

আমি সম্প্রতি সিদ্ধান্ত নিয়েছিলাম এবং প্রবাহ নিয়ন্ত্রণ নির্মাণ সম্পর্কে দুটি নিয়ম আনুষ্ঠানিক করার সিদ্ধান্ত নিয়েছি যা মূলত এইভাবে চলে:

  • আপনার কাছে প্রয়োজনীয় কোড-ফ্লো কনস্ট্রাক্টস ছাড়া আর কিছুই থাকতে হবে না
  • আপনার কোড-প্রবাহের গঠনগুলি যতটা সম্ভব ছোট করা উচিত

আপনি যে কারণে উল্লেখ করেছেন এবং স্পষ্টভাবে অবগত আছেন ঠিক সে কারণেই, আমি মনে করি এগুলি অনুসরণ করার দুর্দান্ত নিয়ম। এগুলি সম্পাদন করার জন্য আপনি বেশ কয়েকটি সাধারণ কৌশল নিযুক্ত করতে পারেন:

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

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


ধন্যবাদ, দু'একটি ব্লক হতে পারে যা আমি রিফ্যাক্টরটি বের করতে পারি। এটি সাহায্য করবে, তবে বেশ কয়েকটি নেস্টেড usingব্লকগুলি রিফ্যাক্টর করা শক্ত ।
জেডিবি এখনও মনিকার

@ Cyborgx37 আসলে ব্যবহার করা হয় তবে তারা সুযোগ পূরণে নেস্টেড করছি ব্লক inlined করা যেতে পারে, চেহারা এখানে stackoverflow.com/questions/1329739/... এটি মূলত একক লাইন প্রবাহ নিয়ন্ত্রণ নির্মান মত কাজ করে কিভাবে আপনি যা করতে পারেন যদি (সত্য) doSomething (); আপনি (সত্য) যদি (কিছুও) যদি (অন্যান্য কথা) {doThis () করতে পারেন তবে; কর এটা(); যা ইচ্ছা কর(); you এবং আপনি যদি আশা করেন তবে নীড়গুলি (OFশ্বরের প্রেমের পক্ষে কোডটি লিখুন না, এটি ব্যবহার করে এবং অন্য কোনও কিছু নয়)
জিমি হোফা

হ্যাঁ, আমি ব্লকগুলি ব্যবহার করে বাসা বাঁধার সম্পর্কে জানি তবে এটি কেবল তখনই কাজ করে যদি আপনার নীচে একটি লাইন থাকে। আমার বেশিরভাগ কোডে, এটি ক্ষেত্রে হয় না। এখনও সামগ্রিকভাবে একটি সহায়ক পোস্ট ... কয়েকটি জিনিস শিখেছে (+1)
জেডিবি এখনও মনিকার

@ সাইবার্গএক্সএক্স 37 হ্যাঁ আমি বুঝতে পারি যে বাসা বাঁধলেই কেবল কাজ করে তবে আপনার অতিরিক্ত বিট না থাকে, যা বলেছিল যে আপনার ইউএসিংয়ের পদ্ধতিতে কোনও নমুনা আছে? এটি অতিরিক্তে কিছুটিকে কন্সট্রাক্টরের মধ্যে স্থানান্তরিত করা যদি এটি শীর্ষে থাকে বা নিষ্পত্তি হয় এটি নীচে থাকে? এটি যদি এটি নকশাকৃত হয়; অনুমান করা এটি যেহেতু আপনি এটিকে একটি সমস্যা হিসাবে নিয়ে এসেছেন তাই সম্ভবত আপনার কোডগুলিতে প্রায়শই এইগুলি ব্যবহার করে বাসা ব্যবহার করে।
জিমি হোফা

আমি প্রকৃতপক্ষে একটি কারখানা-প্যাটার্ন বাস্তবায়নের কাজ শুরু করেছি যা COM অবজেক্টগুলিকে "অটিক্লিনআপ" শ্রেণিতে আবৃত করে। আমি তখন usingকারখানার ক্লাসে একটি একক বিবৃতি ব্যবহার করি এবং এটি নিষ্পত্তি হয়ে গেলে, এটি স্বয়ংক্রিয়ভাবে সমস্ত মোড়ানো ক্লাসগুলিকে নিষ্পত্তি করে। এটি এতদূর ভাল কাজ করছে usingএবং আমার কোডে বিবৃতি সংখ্যা উল্লেখযোগ্যভাবে হ্রাস করেছে ।
জেডিবি এখনও মনিকা

1

দুর্ভাগ্যক্রমে, এটি কম্পিউটিংয়ের যুদ্ধের অন্যতম প্রাচীন কারণ। উভয় পক্ষ থেকেই যুক্তিসঙ্গত যুক্তি তৈরি করা যেতে পারে (ক্লোজিং ব্রেসের সাথে ওপেনিং ব্রেসটি দৃষ্টিভঙ্গি করে দেখার পক্ষে আরও ভাল উল্লম্ব রিয়েল এস্টেট অর্থনীতি বনাম), তবে বাস্তবে একটি সাধারণ সোর্স-কোড ফর্ম্যাটর আপনার জন্য সবকিছু সমাধান করবে। এমএস ভিজ্যুয়াল সি # এর মধ্যে একটি বিল্ট রয়েছে যা ভাল কাজ করে।

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

সুতরাং আপনি যখন সমস্ত উপায়ে শিখছেন তখন সেই স্টাইলে ফোকাস করুন যা আপনার শেখা সহজ করে তোলে তবে অন্যদিকে অর্ধেক নজর রাখুন এবং আপনি ঠিকঠাক কাজ করবেন।


1
আমি নিশ্চিত নই যে এটি ডিফল্ট ফর্ম্যাটর বা রিশ্যার্পারে কিছু আছে তবে আমি যখন সি # ব্যবহার করতাম তখন আমাদের কাছে একটি বিকল্প সেট ছিল যা চেক ইনটির অংশ হিসাবে কোডটি পুনরায় ফর্ম্যাট করে। আপনি কোডটি কাজ করার সময় আপনি যেভাবে চান সেটি ফর্ম্যাট করতে পারে, তবে এটি চেক-ইন-এর "প্রকল্পের মান" হিসাবে পুনরায় ফর্ম্যাট করা হবে। আমি মনে করি আমাদের কাছে একমাত্র আসল ফর্ম্যাটিং স্ট্যান্ডার্ডটি ছিল ট্যাবগুলির পরিবর্তে স্পেস ব্যবহার করা।
টিএমএন

1

পুনরায় ভাগ করুন, যা বাসা কমাতে উপায়গুলি সুপারিশ করতে সহায়তা করবে। এছাড়াও, বব মার্টিনের বই ক্লিন কোড পড়ুন , যা জোর দিয়েছিল যে কোনও ফাংশনটিতে কেবল একটি কাজ করা উচিত, এবং সেইজন্য প্রতিটি ফাংশনটি কেবলমাত্র দেড়-ডজন লাইন দীর্ঘ হওয়া উচিত, তাই আপনার এতটা স্তরের বাসা নিয়ে উদ্বেগ হওয়ার দরকার নেই।


1

সম্পাদকটিতে একটি অ্যাড-অন রয়েছে যা আপনাকে এখানে সহায়তা করতে পারে: সি # আউটলাইন

অ্যাড-অন কোডটি নেস্টেড ব্লকগুলি ভেঙে ফেলা, প্রসারিত এবং হাইলাইট করার বৈশিষ্ট্যগুলি যুক্ত করে সি # এর জন্য ভিএস 20 এমএক্সএক্সএডিটর বাড়ায়। এই বৈশিষ্ট্যগুলি কোড ব্লকের নেস্টেড বিষয়বস্তু যেমন, যদি, ইত্যাদি ইত্যাদির সহজ সম্পাদনা এবং পড়ার অনুমতি দেয়


0

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

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


0

সিনট্যাক্সের উভয় শৈলীতে ইন্ডেন্টেশন আপনাকে কোথায় রয়েছে তা বলে। আপনি যদি একটি লাইনে কোনও ভিবি প্রোগ্রাম বা সি # প্রোগ্রাম লিখে থাকেন তবে খুব শীঘ্রই আপনি নেস্টেড সিনট্যাক্সে কোথায় আছেন তা আপনি বলতে সক্ষম হবেন না। মেশিনটি ব্লক সমাপ্ত বাক্যাংশ বা কোঁকড়া ধনুর্বন্ধনীকে বিশ্লেষণ করে তবে মানুষের ইনডেন্টেশন প্রয়োজন।

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

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

যখন একটি সমাপ্তি কোঁকড়া ধনুর্বন্ধনী অনুপস্থিত তখন কোন খোলা ব্রেসটি বন্ধ নয় তা বলা শক্ত। (শিক্ষিত অনুমান করার জন্য সংকলককে ইনডেন্টেশন পার্স করতে হতে পারে)) যদি আপনি কোনও ফাংশনের অভ্যন্তরে একটি বন্ধনী বন্ধনী মুছে ফেলেন তবে মনে হয় ফাইলটির পুরো বাকী অংশটি সেই ফাংশনের অংশ, ফলে অসম্পূর্ণ ত্রুটি বার্তাগুলির ঝাঁকুনির সৃষ্টি হয়। আপনার যদি end functionসিনট্যাক্স থাকে তবে সংকলকটি ভুল কাজটি শেষ হয়ে যায়, পুনরুদ্ধার করতে পারে এবং পরবর্তী ফাংশনগুলি যথাযথভাবে পার্স করতে পারে, আপনাকে অতিরিক্ত ডায়াগনস্টিকস দেয়, যদি কোনও হয়, যা অর্থবহ।

আপনি যখন কোড-সচেতন পাঠ্য সম্পাদকে কাজ করছেন যা স্বয়ংক্রিয়ভাবে আপনার কোডটি রঙিন করে দেয় এবং একটি উচ্চ রেজোলিউশন স্ক্রিনে যেখানে আপনি ষাট বা আরও বেশি লাইন দেখতে পাচ্ছেন, সেই ধরণের আনাড়ি ভাষার পক্ষে যুক্তিগুলি আর প্রয়োগ হয় না। আপনি ক্রমানুসারে সম্পাদনা করতে এবং প্রোগ্রামগুলি এত দ্রুত পুনর্নির্মাণ করতে পারেন যে আপনি একবারে কেবল একটি ত্রুটি মোকাবেলা করতে পারেন। তদুপরি, স্ক্রিনে একযোগে প্রোগ্রামের বড় অংশগুলি দেখে এবং সঠিক ইন্ডেন্টেশন বজায় রেখে, আপনি প্রথমে এই ধরণের বাসা বাঁধার ত্রুটিটি হ্রাস করতে পারেন। এবং ভাল প্রোগ্রামিংয়ের পাঠ্য সম্পাদক এমনকি টাইপ করার সাথে সাথে কিছু ধরণের সিনট্যাক্স ত্রুটিও পতাকাঙ্কিত করবে। আরও কী, এখানে ভাঁজ সম্পাদক রয়েছে যা এর সিনট্যাক্সের ভিত্তিতে একটি প্রোগ্রামের ব্লকগুলি ভেঙে দেবে, এটির কাঠামোর "রূপরেখার মতো" মতামত দেবে।

লিস্প প্রথম থেকেই প্রথম বন্ধনী ব্যবহার করেছেন এবং সম্ভবত কাকতালীয়ভাবে নয়, লিস্প হ্যাকাররা প্রোগ্রামিংকে ইন্টারেক্টিভ অভিজ্ঞতা হিসাবে গড়ে তুলেছিল সিস্টেমগুলি বিল্ডিংয়ের মাধ্যমে যা ছোট ছোট অংশগুলিতে (অভিব্যক্তি) প্রোগ্রাম গ্রহণ করে।

বাস্তবে, পাইথন ভাষার চিত্র যেমনটি দেখায় তেমন আপনার শেষ চিহ্নগুলির দরকার হয় না। পরিচয়টি কেবল কাঠামো হতে পারে । মানুষ ইতিমধ্যে কোডের কাঠামো আঁকতে ইন্ডেন্টেশন ব্যবহার করে এমনকি এমন ভাষাগুলিতেও যেখানে মেশিনটি শেষ চিহ্ন বা বাক্যাংশগুলিতে নির্ভর করে।


-1

আপনি একটি আইডিই, শুধু প্রেস ব্যবহার করে থাকেন Crtl+ + k+ + Dএবং আইডিই কাজ বাকি চেষ্টা করতে হবে।


কোন আইডিই গ্রহনটি ইনডেন্টেশনের জন্য সিটিআরএল-শিফট-আই এবং বিন্যাসের জন্য সিআরটিএল-শিফট-এ ব্যবহার করে
র‌্যাচেট ফ্রিক

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