অদ্ভুত কোডিং মানক নিয়মটি কী ছিল যা আপনি বাধ্য করতে বাধ্য হন? [বন্ধ]


173

আমি যখন এই প্রশ্নটি জিজ্ঞাসা করেছি তখন আমি প্রায় সবসময়ই একটি নির্দিষ্ট হ্যাঁ হয়ে যাই আপনার কোডিং মান থাকা উচিত।

আপনি কখনও কখনও বাধ্য করতে বাধ্য হন এমন অদ্ভুত কোডিং মানক নিয়মটি কী ছিল?

এবং অবাক করে দিয়ে আমি মজাদার, বা সবচেয়ে খারাপ, বা কেবল সাধারণ বিজোড় বলতে চাইছি।

প্রতিটি উত্তরে দয়া করে কোন ভাষাটি, আপনার দলের আকার কী ছিল এবং কোনটি এর প্রভাব আপনাকে এবং আপনার দলকে করেছে তা উল্লেখ করুন।


19
এই তালিকাটি পড়ে হঠাৎ করে আমার মনে হয়েছে যে এই বাধ্যতামূলক কোনও মানকীয় জঞ্জালটি এড়াতে আমার খুব ভাগ্যবান কেরিয়ার নেই!
ম্যাট বি

পরের বার আমি কোনও কাজের জন্য সাক্ষাত্কার নেওয়ার পরে, এই প্রশ্নটি ব্রাউজ করতে যাচ্ছি "লাল পতাকা। চালান!" সূচক। প্রকৃতপক্ষে কোডিং মানক অ্যান্টি-প্যাটার্নগুলি।
স্টু থম্পসন

5
আমি আমার ক্যারিয়ারের প্রথম দিকে তা স্বীকার করতে বিব্রত বোধ করছি, আমি একটি উত্তর একটি দলে চাপিয়ে দিয়েছি। আমি দুঃখিত, বন্ধুরা।
জেসনফ্রুট

উত্তর:


434

একাধিক রিটার্নের ব্যবহার নিষিদ্ধ হলে আমি এটিকে ঘৃণা করি।


26
এই নিয়মের অনুমিত পয়েন্টটি কী? ব্যক্তিগতভাবে আমি কোডের জন্য একটি কোড পর্যালোচনা ব্যর্থ করতাম যা অন্য কোনও রিটার্ন রেখে পাঠানো আরও সহজ করা যায়।
মার্ক বাকের 15

22
অন্যদিকে, "if (পরম == নাল) রিটার্ন নাল" এর মতো শুরুতে কোনও বিকল্প মুছে ফেলা আপনার কোডটি কিছুটা সাফ করতে পারে, উত্সাহিত করার পরিবর্তে এটি নিষিদ্ধ করা কিছুটা অপরাধমূলক।
বিল কে

39
কার্যকারণ: যদি (! প্রারম্ভিক ()) {রেটওয়াল = ERR_BADINIT; গেটো রিটার্নপয়েন্ট; } (আরও অনেক কোড) রিটার্নপয়েন্ট: রিটওয়াল রিটার্ন; } সমস্যা সমাধান! ;)
মার্ক বার্নিয়ার

9
সম্প্রতি অবধি একাধিক রিটার্ন নিষিদ্ধ ছিল। তারপরে এই ঘটনাটি সি থেকে একটি বাকী ছিল, সি ++ আরআইআই দ্বারা অচল করে দেওয়া হয়েছে এবং 15 লাইনের চেয়ে কম আকারের ফাংশন প্রকাশ পেয়েছে। সেই থেকে ব্র্যাহার্টের মতো: "ফ্রিডম !!!!" ... :-p ...
21

122
আপনার পছন্দ: একাধিক আয় বা বিবৃতি যদি আরও নীড়যুক্ত statements আমি একাধিক রিটার্ন নেব।
ল্যান্স ফিশার

333

বিপরীত ইন্ডেন্টেশন। উদাহরণ স্বরূপ:

    for(int i = 0; i < 10; i++)
        {
myFunc();
        }

এবং:

    if(something)
        {
// do A
        }
    else
        {
// do B
    }

152
ওহ দেবতা ... আমি কি সেই সোসিওপ্যাথের সাথে দেখা করতে পারি যারা এই এক সাথে এসেছিল? তিনি আমাকে দু'জনকে অশান্তিকর বিষয়ে শিক্ষা দিতে পারতেন।
জন রুডি

23
এটি সম্ভবত সত্য হতে পারে না।
ডেন

191
যতবার আপনি ইন্ডেন্টেশনটি উল্টে দেন, aশ্বর কোনও রক্ষণাবেক্ষণ বিকাশকারীকে হত্যা করে।
ক্রিস ভেস্ট

14
ওএমজি, আপনি কি মজা করছেন?
আন্দ্রেআ আম্বু

21
মূল্যবান বাইটগুলি সংরক্ষণ করুন ... অমূল্য, এটি প্রচুর
পরিমাণে

326

আপনি যে সর্বাধিক অপরিচিত তা পাবেন না, তবে 'tbl' দিয়ে ডেটাবেস টেবিলের নামগুলি উপস্থাপন করতে গিয়ে আমি সত্যিই ঘৃণা করি


5
এটি কি ডিবি-র জন্য শুধু হানিয়ী স্বরলিপি নয়?
আরকবান

19
এটি কি ভেরিয়েবলের সাথে উপসর্গের মতো নয়?
ব্রায়ান আর বন্ডি

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

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

38
অনুরূপ নোটে, আমি এটিকে ঘৃণা করি যখন টেবিলের নামগুলি একক হওয়া উচিত। আমার প্রবৃত্তিটি একটি টেবিলের নামকরণ করে যা গ্রাহককে বলে, "গ্রাহক", "গ্রাহক" নয়। নাবালক বলে মনে হচ্ছে, যতক্ষণ না আপনি সমস্ত সমস্যাটি সংরক্ষণ করতে পারবেন কেবল যদি আপনি আপনার টেবিলটির নাম "[লেনদেন]" না করে "লেনদেন" করতে পারেন।
আতারিও

248

প্রায় কোনও ধরণের হাদীসের স্বরলিপি।

হাদীস নোটেশন সমস্যাটি হ'ল এটি প্রায়শই ভুল বোঝাবুঝি হয়। মূল ধারণাটি ছিল চলকটির উপসর্গ করা যাতে অর্থটি পরিষ্কার থাকে। উদাহরণ স্বরূপ:

int appCount = 0; // Number of apples.
int pearCount = 0; // Number of pears.

তবে বেশিরভাগ লোক এটিকে নির্ধারণ করতে ব্যবহার করে।

int iAppleCount = 0; // Number of apples.
int iPearCount = 0;  // Number of pears.

এটি বিভ্রান্তিকর, কারণ উভয় সংখ্যা পূর্ণসংখ্যা হলেও, সবাই জানেন, আপনি নাশপাতিগুলির সাথে আপেল তুলনা করতে পারবেন না।


71
হাঙ্গেরিয়ান স্বরলিপিটির সঠিক ব্যবহার কীভাবে বাগ কমাতে সহায়তা করতে পারে সে সম্পর্কে সফটওয়্যার পোস্টে এই জোয়েলটি দেখুন
ফ্লিকেন

9
অবশ্যই সি এর পরিবর্তে সি ++ ব্যবহার করে আপনি কোড লিখতে পারেন যাতে আপেলকে নাশপাতিগুলির সাথে তুলনা করার সময় সংকলকটি আপনাকে একটি ত্রুটি দেয়।
Andreas Magnusson

5
হ্যাঁ, জোয়েল ঠিকই পেয়েছে। আমি আশা করি এটির জোয়েলের সংস্করণটি প্রয়োগ করতে সংকলকগুলি তৈরি করা যেতে পারে।
লরেন পেচটেল

9
এটি "int cntApples = 0; int cntPeas = 0;" হওয়া উচিত নয়? অর্থাৎ। উপসর্গটি পরিবর্তনশীল "প্রকার"।
ব্লারগবার্ড

42
কমপক্ষে প্রথমটি সঠিক ... এতে "অ্যাপল" এর সাথে সমস্ত কিছু "i" দিয়ে উপসর্গ করা দরকার। ;)
জোহানেস চারারা

240

আমি বর্তমানে যেখানে কাজ করি সেখানে কোনও টের্নারি অপারেটর অনুমতিপ্রাপ্ত নয়:

int value = (a < b) ? a : b;

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


235
সবার দ্বারা, আপনার বস নিজেকে বোঝায়।
ব্রায়ান আর বন্ডি

13
আমি এই শিবিরে পড়তাম ... তবে তা থেকে বেড়ে উঠেছি এবং শর্তসাপেক্ষ অপারেটরটিকে (যখন এটি উপযুক্ত হয়) প্রেম করতে শিখেছি।
জন রুডি

22
যদি কিছু হয় তবে এই নিয়মটি "সর্বদা টার্নারি অপারেটর" ব্যবহার করা উচিত, খাঁটি সৌন্দর্যের অপারেটর :)
ববি জ্যাক

16
আমি এটি পছন্দ করি, তবে যে কারণে আমি প্রায়শই ব্যবহার না করাই তা হ'ল আপনার অভিজ্ঞতা "লোকেরা তা বুঝতে পারবে না" তেমনই। আমার যুক্তিটি হ'ল তারা ধারণাটি বুঝতে না পারলে তাদের কাজ করা উচিত নয় ...
আইডোস

7
সম্পূর্ণ নতুন ফাংশন (যা পাঠযোগ্যতার পক্ষে খুব বেশি ভাল করবে না) না লিখে আপনি কীভাবে শর্তাধীন ধ্রুবক পরিবর্তনশীল সূচনা করবেন। স্থানীয় "ভেরিয়েবল" এর জন্য কনস্টের ব্যবহারটি টার্নারি অপারেটরের নিষেধাজ্ঞার চেয়ে কোড বোঝার এবং অনুসরণ করার জন্য আরও অনেক ভাল কাজ করে।
Andreas Magnusson

239

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


3
আমি সত্যিই এটি ঘৃণা করি ... এখানে কয়েকজন লোক আছেন যারা এটি করেন (এটি কোনও মানক বা যদিও কিছু নয়)
শীতল 42 ই

7
এর মতো বিধিগুলি হ'ল আমি রঙের অন্যের কাছ থেকে উত্তরাধিকার সূত্রে কোড প্রিন্ট করা দরকার বলে মনে করি। একটি পাতায় কোনও পৃষ্ঠাতে, এটি আমার সংস্থার পক্ষে খুব সুন্দর নয় - তবে এটি মুদ্রণ করতে হলে আমি এটি পড়তে পারি way (আমরা প্রচুর উত্তরাধিকার সূত্রে পেয়েছি যা এই নিয়মটি অনুসরণ করেছে ...)
জন রুডি

3
প্রাক উত্স নিয়ন্ত্রণের মতো একটি নিয়মের মতো শোনানো। বা প্রোগ্রামারদের কারণে কেবল সপ্তাহে একবারে চেক করা হয়।
ক্রেগ

6
আমি এই উত্তরগুলি পড়তে পছন্দ করি কারণ এটি আমার কাজকে আরও ভালতর দেখায় x
rjh

2
আপনার জন্য অনুভব করুন ... আমরা 4+ বছর ধরে এসভিএন এ রয়েছি, তবে প্রবীণ বিকাশকারী এটি ঘৃণা করে এবং প্রতি দুই মাসে একবার পরীক্ষা করে, পরের তিন দিন ভাঙা কোড সম্পর্কে অভিযোগ করে: /
ভিক্টর সোভুব

204

আমি একবার মাইটি ভিবি কিং এর অত্যাচারের অধীনে কাজ করেছি ।

ভিবি রাজা মাইক্রোসফট এক্সেল এবং VBA, সেইসাথে ডেটাবেসের বিশুদ্ধ মাস্টার ছিল ( অত: পর তার উপাধি তিনি এক্সেল সঙ্গে অভিনয় করার সময় ডেভেলপার কম্পাইলার সঙ্গে কাজ, এবং তাকে ডাটাবেস উপর চ্যালেঞ্জ আপনার কর্মজীবনের উপর ক্ষতিকর প্রভাব ফেলতে পারে ... )।

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

  • সমস্ত সি / সি ++ অ্যারে 0 এর পরিবর্তে সূচী 1 এ শুরু হবে, প্রকৃতপক্ষে, অ্যারের প্রথম সূচক হিসাবে 0 ব্যবহার অপ্রচলিত এবং ভিজ্যুয়াল বেসিক 6 এর অন্তর্দৃষ্টিপূর্ণ অ্যারে সূচক পরিচালন দ্বারা বাতিল করা হয়েছে।

  • সমস্ত ফাংশন একটি ত্রুটি কোডটি ফিরিয়ে দেবে: ভিবি 6-এ কোনও ব্যতিক্রম নেই, তবে কেন আমাদের এগুলি প্রয়োজন হবে? ( যেমন সি ++ এ )

  • যেহেতু "সমস্ত ফাংশন একটি ত্রুটি কোড ফিরিয়ে দেবে" অর্থপূর্ণ ধরণের ফাংশনগুলির জন্য ব্যবহারিক নয়, তাই সমস্ত ফাংশনটিতে প্যারামিটার হিসাবে প্রথম [আউট / আউট] হিসাবে একটি ত্রুটি কোড থাকবে।

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

  • যেহেতু আমরা সি ++ / সিওএম নিয়ে কাজ করছি, এটি খুব দিন শুরু করে, আমরা ভিজুয়াল বেসিকটিতে আমাদের সমস্ত ডোম ইউটিলিটি ফাংশনগুলি কোড করব।

  • এএসপি 115 ত্রুটি মন্দ। এই কারণে, আমরা এড়াতে আমাদের ভিবিএস স্ক্রিপ্ট / এএসপি কোডে অন ত্রুটি পুনরায় শুরু করুন ব্যবহার করব use

  • এক্সএসএল-টি একটি অবজেক্ট ওরিয়েন্টেড ভাষা। আপনার সমস্যাগুলি সমাধান করার জন্য উত্তরাধিকার ব্যবহার করুন ( বোবা আশ্চর্যর ফলে আমার চোয়ালটি প্রায় একদিন খোলে )।

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

  • আমাদের COM মডিউলগুলির COM ইন্টারফেসে সমস্ত ব্যতিক্রম ধরা এবং তাদের নিঃশব্দে নিষ্পত্তি করুন ( এইভাবে ক্র্যাশ করার পরিবর্তে, একটি মডিউল কেবল দ্রুত হবে বলে মনে হচ্ছে ... চকচকে! ... আমরা উপরে বর্ণিত über ত্রুটি হ্যান্ডলিংটি ব্যবহার করেছি, এমনকি আসলে কী ঘটছে তা বুঝতে আমাদের কিছুটা সময় নিয়েছে ... আপনার গতি এবং সঠিক ফলাফল উভয়ই হতে পারে না, আপনি করতে পারেন? )।

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

সকল কিন্তু সি / সি ++ অ্যারে , ভিবি করে DOM ইউটিলিটি ফাংশন এবং XSL কেও-টি গলি ভাষা হিসেবে আমাদের প্রতিবাদ সত্ত্বেও বাস্তবায়িত হয়েছে। অবশ্যই, সময়ের সাথে সাথে, কিছু আবিষ্কার করা হয়েছিল, আহেম , ভাঙ্গা এবং পুরোপুরি পরিত্যক্ত হয়েছিল।

অবশ্যই, ভিবি কিং বিশ্বাসযোগ্যতা এর জন্য ক্ষতিগ্রস্থ হয়নি: উচ্চতর পরিচালনার মধ্যে, তিনি একজন "শীর্ষ বন্দুক" প্রযুক্তি বিশেষজ্ঞ হিসাবে রয়েছেন ...

এটি কিছু মজাদার পার্শ্ব প্রতিক্রিয়া তৈরি করেছে, আপনি লিঙ্কটি অনুসরণ করে দেখতে পারেন আপনি উত্স কোডে সবচেয়ে ভাল মন্তব্য কোনটি হয়েছে?


28
Re: 1-indexing। কখনও কখনও আপনাকে উঠে দাঁড়াতে হবে এবং "এটি বোকামি এবং ভুল" এর মতো শক্ত কিছু বলতে হবে। বালিতে একটি লাইন আঁকুন। ইম্পোস প্ল্যাকটিং ভুলে যান এবং কেবল এটি বলে। আমি প্রায় গ্যারান্টি দিতে পারি যে অন্য প্রতিটি উপযুক্ত প্রোগ্রামার তত্ক্ষণাত মাথা
ঝুঁকতে

31
@ জ্রিস্টা: আপনি যদি আমার পাঠ্যের বানানটি মন্তব্য করছেন না, দয়া করে নীচের বিষয়গুলি উপেক্ষা করুন ... ... ... ... ... ... ... ... আপনি যদি আমার পাঠ্যটিতে মন্তব্য করছেন, দয়া করে বিবেচনা করুন (1) সংশোধনীর প্রস্তাব দেওয়া, (২) নিজের বানানটি সংশোধন করা, বা (3) বিবেচনা করুন যে বিশ্বের প্রতিটি বিকাশকারী (এটির থেকে দূরে) স্থানীয় ইংরেজী স্পিকার নয়, তাই আমার ধারণা ভুল বানান সহ্য করা আপনি ন্যূনতম করতে পারেন, অথবা প্রমাণ করুন আমাকে আমাকে
ফ্রেঞ্চে

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

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

7
@ পেয়ারসাবল: এন গ্যানারেল, সিস্ট সংশোধন éক্রিট, সাউফ কুই কোয়েলেস পেইটারস এরারস: «স্কোয়াচ»: doএ ডয়েট অ্যাট্রে «স্কোয়াশ»; «এই একদিন»: এনআর সিআরএফ প্রসঙ্গে à সেদিন on Ocked স্টক পদ্ধতিগুলি: «স্টক পদ্ধতি»; «চোকড» সি'ক্রিট «চোকড» অসি, ড্যানস লেস কমেন্টারস, ভাস ইউটিজেস ° উল্লিখিত », সিউই কুই ডুইট «ত্রে« উল্লেখ করেছেন »মাইস ভ্রিমেন্ট, টাউট-নে নেজাস্টিটি প্যাস অ্যান টেল্লে প্লেট। অ কনটায়ার, ভস ইয়ে মন্ট্রেজ আন এক্সেলেনেট ম্যাট্রিস দে ল'আংলাইস; অভিনন্দন!
intuited

131

৮০-এর দশকে / 90-এর দশকে, আমি একটি বিমান সিমুলেটর সংস্থার জন্য কাজ করেছি যা ফোরট্রান ব্যবহার করেছিল। আমাদের ফরট্রেন সংকলকটিতে ভেরিয়েবল নামের জন্য 8 টি অক্ষরের সীমা ছিল। সংস্থার কোডিং মানগুলি তাদের মধ্যে প্রথম তিনটি হাঙ্গেরীয়-নোটেশন শৈলীর তথ্যের জন্য সংরক্ষণ করে। সুতরাং আমাদের চেষ্টা করতে হয়েছিল এবং মাত্র 5 টি অক্ষর সহ অর্থপূর্ণ পরিবর্তনশীল নাম তৈরি করতে হয়েছিল!


17
বিলাসিতা: আমাদের মাত্র 6 টি অক্ষর ছিল; প্যাকেজটির নাম জি দিয়ে শুরু হয়েছিল; অভ্যন্তরীণ ফাংশন সমস্ত শুরু জি.কে. সেখানে ওয়ার্কস্টেশন ড্রাইভার যেমন 0 পি (সুতরাং gk0p শুরু ছিল) এর সাথে কোডগুলি রেখেছিল, ফোর্ত্রান নামের বাকি অংশের জন্য আমাদের দুটি অক্ষর রেখে যায়। gk0paa, gk0pab, ...
জোনাথন লেফলার

103
"যখন আমি তোমার বয়স ছিলাম, তখন আমাদের কেবল দুটি চরিত্র ছিল! এবং এটি কেস-সংবেদনশীল ছিল!"
pookleblinky

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

12
"50 সম্ভাব্য শনাক্তকারীদের কারও পক্ষে যথেষ্ট হওয়া উচিত": পি
ক্রিস ভেষ্ট

5
হেক, বেসিক দোভাষী যারা আমরা অনেক আগে কাজ করেছি তার দ্বি-চরিত্রের পরিবর্তনশীল নাম ছিল। কেন অভিযোগ 5?
ডেভিড থর্নলি

107

আমি এমন একটি জায়গায় কাজ করেছি যেখানে 2 টি সংস্থার মধ্যে একীকরণ হয়েছিল। 'প্রভাবশালী' একজনের কেএন্ডআর সিতে (যেমন প্রাক-এএনএসআই) লিখিত একটি প্রধান সার্ভার ছিল। তারা জাভা দলগুলিকে (উভয় দফতর থেকে - সম্ভবত 20 টি ডেভস টোটাল) এই ফর্ম্যাটটি ব্যবহার করতে বাধ্য করেছিল, যা "ব্রেস বিতর্কের" স্তম্ভের 2 স্তম্ভকে আনন্দের সাথে উপেক্ষা করে সরাসরি পাগল হয়ে যায়:

if ( x == y ) 
    {
    System.out.println("this is painful");
    x = 0;
    y++;
    }

18
আমি ভাবব যে সি এবং জাভার মধ্যে একটি বৃহত্তর চাক্ষুষ পার্থক্য বজায় রাখলে রূপান্তরগুলি আরও সহজ হয়ে যায়। ("1 এর জন্য এবং সরাসরি উন্মাদ হয়ে যায়" ")
জেফ্রি এল হুইটলেজ

4
হোয়াইটস্মিথ স্টাইলের মতো দেখতে পেটজল্ড দ্বারা মূল 'প্রোগ্রামিং উইন্ডোজ'-এ ব্যবহৃত হয়েছিল - ফিগার! ;)
ববি জ্যাক 16

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

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

6
এটি আসলে আমার পছন্দের স্টাইল, তবে বিশ্বের প্রতিটি জিনিস (বিশেষত ভিজ্যুয়াল স্টুডিও) অন্য মোডের ডিফল্ট, তাই আমি ছেড়ে দিয়েছি। আমি কেন এটি পছন্দ করি? ধনুর্বন্ধনী হয় অন্তর্ভুক্ত কোড "অংশ" - তারা একটি একক বিবৃতি "মত চেহারা" এটা জোর করে, যা তা প্রত্যাশা করে।
আতারিও

104

নিষিদ্ধ:

while (true) {

অনুমোদিত:

for (;;) {

4
আবার কেউ কেউ যুক্তি দেখিয়েছেন যে for (;;) {প্রথমটির জন্য এটি একটি সি ইডিয়াম।
রবার্ট পি

69
আমি যদি আধুনিক, নতুন-চমত্কার স্মাইলিকে সঠিকভাবে বুঝতে পারি তবে এই মানটি দরিদ্রদের, বিবৃতিতে কাঁদতে কাঁদতে কাঁপছে!
বেন ফাঁকা 18

15
এটি এখানে একটি বাস্তব নিয়ম। ভিসি 6 যখন (সত্য) তখন সম্পর্কে একটি সংকলক সতর্কতা জারি করে, তবে (;;) এর জন্য নয়। অন্যথায় তারা সমতুল্য। সুতরাং আমরা সতর্কতা-মুক্ত একটি বাছাই করি।
ব্যবহারকারী9876

22
বাজর্ন এস তাঁর বইয়ে বলেছিলেন, "((;;) এর জন্য চিরকালের মতো পড়া উচিত")। এটি যদি সি ++ এর স্রষ্টার পক্ষে যথেষ্ট ভাল হয় তবে এটি আপনার পক্ষে যথেষ্ট ভাল হওয়া উচিত। :-)
ফ্রাঙ্ক ক্রুয়েগার

58
আমি যে প্রথম সি প্রোগ্রামে কাজ করেছি, সেখানে কেউ কখনও # ডিফাইন যুক্ত করেছিলেন (;;) যাতে আপনি "চিরকালের জন্য {...}" বলতে পারেন
জেমস কারান

101

আমার এক বন্ধু - আমরা তাকে কোডমনকি বলব - কলেজের বাইরে [ বহু বছর আগে] কোবলে ইন-হাউস ডেভেলপমেন্ট করার মাধ্যমে প্রথম চাকরি পেয়েছিলাম । তাঁর প্রথম প্রোগ্রামটি 'আমাদের মান মেনে চলছিল না' বলে প্রত্যাখ্যান করা হয়েছিল কারণ এতে ... [কাঁপানো!] নেস্ট করা হয়েছে যদি বিবৃতিগুলি

কোডিং মানগুলি নেস্টেড আইএফ বিবৃতি ব্যবহার নিষিদ্ধ করে

এখন, কোডমনকি লাজুক ছিলেন না এবং তার দক্ষতার বিষয়ে নিশ্চিত ছিলেন, তাই তিনি সবাইকে চেইনটি জিজ্ঞাসা করতে এবং কেন এই নিয়মটি বিদ্যমান ছিল তা নীচে রেখে চেষ্টা করেছিলেন। বেশিরভাগ দাবি করেছেন যে তারা জানেন না, কিছু 'পাঠযোগ্যতা' সম্পর্কে স্টাফ তৈরি করেছিলেন এবং শেষ পর্যন্ত একজন ব্যক্তি আসল কারণটি স্মরণ করেছিলেন: তারা যে COBOL সংকলকটি ব্যবহার করেছিলেন তার প্রথম সংস্করণটিতে একটি বাগ ছিল এবং নেস্টেড আইএফ বিবৃতি সঠিকভাবে পরিচালনা করতে পারেনি।

এই সংকলক বাগটি অবশ্যই কমপক্ষে এক দশকের জন্য স্থির করা হয়েছিল, তবে কেউ মানটিকে চ্যালেঞ্জ জানায়নি । [baaa!]

কোডমানকি মান পরিবর্তন করতে সফল হয়েছিল - শেষ পর্যন্ত!


7
স্টিভেন, এটি আমাকে বানরের পরীক্ষার গল্পটির কথা মনে করিয়ে দেয়: ও) freekvermeulen.blogspot.com/2008/08/…
নিক ডানডৌলাকিস

5
@ [নিক ডি]: হ্যাঁ, আমিও - সুতরাং কোড-নাম "কোডমনকি" ;-)
স্টিভেন এ লো লো


কারণটি ভুল হতে পারে তবে নেস্টেড ifs এড়াতে এখনও ভাল - c2.com/cgi/wiki?ArrowAntiPattern
manojlds

97

একবার এমন প্রকল্পে কাজ করেছিলেন যেখানে আন্ডারস্কোর নিষিদ্ধ ছিল। এবং আমার অর্থ সম্পূর্ণ নিষিদ্ধ। সুতরাং # উইনফর্মস অ্যাপে, যখনই আমরা একটি নতুন ইভেন্ট হ্যান্ডলার যুক্ত করেছি (যেমন একটি বোতামের জন্য) আমরা কোডিংটি লিখেছি এমন লোকের অহংকে সন্তুষ্ট করার জন্য বাটননাম_ক্লিক () থেকে অন্য কোনও কিছুতে ডিফল্ট পদ্ধতির নামটির নামকরণ করতে হবে have মান। আজ অবধি আমি জানি না যে বিনীত আন্ডারস্কোরের বিরুদ্ধে তার কী ছিল


23
সম্ভবত _ তার কীবোর্ডে নষ্ট হয়ে গেছে;)
রোমান প্লিল

139
buttonNameUnderscoreClick ()
vitule

9
ডিবাগিংয়ের জন্য ফাইল এবং লাইন ব্যবহার রোধ করার দুর্ভাগ্যজনক পার্শ্ব-প্রতিক্রিয়া রয়েছে । এবং হেডারের ফাইলগুলিতে #if __cplusplus এক্সটার্নান "সি"। এবং stdint.h এ অবিচ্ছেদ্য প্রকারগুলি। এবং আকার_টি।
স্টিভ জেসোপ

8
ভাল জিনিস এটি তখন সি # ছিল
কনফিগারকারী

4
আমি গুরুতরভাবে আন্ডারস্কোরগুলিকে নিরুৎসাহিত করি (যদিও উপরে তালিকাভুক্ত ওপি ক্ষেত্রে নয়। এটি অতিরিক্ত দুটি কীস্ট্রোক (শিফট + _)) যা আমি পাস্কাল বা উটের ক্ষেত্রে ঠিক জরিমানা করলে আমার উপর
চাপানো পছন্দ

92

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

  • 0: ডেটা যা সর্বত্র ব্যবহৃত হয়
  • 1: ডেটা যা কেবলমাত্র একটি নির্দিষ্ট মডিউল দ্বারা ব্যবহৃত হয়
  • 2: সারণী দেখুন
  • 3: ক্যালেন্ডার, চ্যাট এবং মেল
  • 4: লগিং

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

-- doesn't work
select * from 0examples;

-- does work
select * from [0examples];

65
আমি দুঃখিত, তাই ভীষণ দুঃখিত ...
কर्क স্ট্রুজার

1
বাহ - ভাল এক। আমার ধারণা লেটারগুলি ব্যবহার করা কি প্রশ্ন থেকে দূরে ছিল? এটি যে খুব ভাল ধারণা তা নয় তবে কমপক্ষে আপনাকে সমস্ত সারণির নাম উদ্ধৃত করতে হবে না।
মার্ক ব্রিটিংহাম

মন বগল ... কে এলো? ডিবিএ?
dotjoe

90

আমরা একটি সি ++ প্রকল্প করছিলাম এবং দলের নেতৃত্ব ছিল একজন পাস্কাল লোক।

সুতরাং আমাদের কাছে কোডিং স্ট্যান্ডার্ডের মধ্যে রয়েছে যে সমস্ত বেঁচে থাকা সি এবং সি ++ সিনট্যাক্সটিকে নতুন করে সংজ্ঞায়িত করার জন্য ফাইল অন্তর্ভুক্ত রয়েছে:

#define BEGIN {
#define END }

তবে আরও অপেক্ষা করুন!

#define ENDIF }
#define CASE switch

ইত্যাদি এতক্ষণ পরে মনে রাখা শক্ত।

এটি যা পুরোপুরি পঠনযোগ্য সি ++ কোড হতে পারে তা নিয়েছিল এবং এটি দলীয় নেতৃত্ব ব্যতীত অন্য কারও কাছেই অযোগ্য।

আমাদের বিপরীত হাঙ্গেরীয় স্বরলিপিও ব্যবহার করতে হয়েছিল

MyClass *class_pt  // pt = pointer to type

UINT32 maxHops_u   // u = uint32

যদিও অদ্ভুতভাবে আমি এটিকে পছন্দ করি।


22
ভবিষ্যতের জন্য
অকল্পনীয়

2
সঠিকভাবে হাঙ্গেরীয় স্বরলিপি ঠিক আছে। ভুল হয়েছে ... িক একটি সঠিক টাইপ সিস্টেম উভয়কে মারধর করে।
থেলিমা

5
আপনি জানেন, আমি মনে করি আমি এটির সাথে আপনার সাথে আছি। এইরকম প্রান্তটি যখন মোকাবেলা করা হয় তখন হানিয়ার ওয়ার্টগুলি প্রায় আপত্তিজনক হয় না।
টেড

হাহা আমাকে সেই দিনগুলিতে ফিরিয়ে নিয়ে যায় যখন আমি পাস্কাল থেকে সি ++ এ চলেছি (প্রায় 16 বছর আগে)। প্রতিবার আমি যখন দেখেছি ment আমাকে মানসিকভাবে নিজেকে বলতে হয়েছিল "{মানে শুরু"। কমপক্ষে আমার জন্য এটি কেবল আমার মাথায় ছিল।
থোমাসরুটটার

6
আমি যখন এমএস ভিসি ++ সাপোর্টে কাজ করি তখন আমাদের বেশ কয়েকটি গ্রাহক এই জাতীয় লিখিত রেপ্রো কোড জমা দিয়েছিলেন। এটি আসলে সি ++ এ ছিল বুঝতে আমাদের কিছুটা সময় লেগেছিল (তারা # ডেফাইনগুলি অন্তর্ভুক্ত করেনি)।
জেবিআরউইলকিনসন

88

প্রাক্তন চাকরিতে:

  • "সাধারণ" সারণীগুলি টি_ দিয়ে শুরু হয়
  • "সিস্টেম" সারণীগুলি (সাধারণত চেহারাগুলি) টিএস_ দিয়ে শুরু হয় (যখন সেদিন না হয় কারণ কেউ সেদিনের মতো মনে হয় নি)
  • ক্রস-রেফারেন্স সারণীগুলি টিএসএক্স_ দিয়ে শুরু হয়
  • সমস্ত ফিল্ডের নাম F_ দিয়ে শুরু হয়

হ্যা, তা ঠিক. সমস্ত একক ক্ষেত্রের ক্ষেত্র। যাতে আমরা এটি একটি ক্ষেত্র বলতে পারি।


এবং প্রাথমিক কী ক্ষেত্রগুলির জন্য আপনার কোনও বিশেষ উপসর্গ ছিল না ???
জিজিমি

2
@ সিজিমি: আমি তা উল্লেখ করতে ভুলে গেছি। প্রতিটি টেবিলে প্রাথমিক কী হিসাবে ব্যবহৃত হয় FI_ID নামে একটি ক্ষেত্র থাকে।
জেরোমি ইরভিন

31
পবিত্র শি ... এই দুঃস্বপ্নটি যে টি-গুই আবিষ্কার করেছে তাদের এফ_গুন দিয়ে হত্যা করা উচিত এবং টিএসএক্স_হেল প্রেরণ করা উচিত।
সের্গেই স্কোব্লিকভ

3
সমস্ত ক্ষেত্র এবং টেবিলের জন্য আমাদের টিবিএল এবং fld ছিল। সম্পূর্ণরূপে অকেজো ...
কনফিগারকারী

5
@ কনফিগ্রেটর: আপনার সমস্ত ক্ষেত্রের জন্য "টিবিএল" এবং সমস্ত টেবিলের জন্য "fld" ছিল? :-)))
টিমউই

84

আমার এক বন্ধু সরকারী চাকরিতে কাজ করার সময় এই নিয়মের মুখোমুখি হয়েছিল। ++ (প্রাক বা পোস্ট) ব্যবহার সম্পূর্ণ নিষিদ্ধ ছিল। কারণ: বিভিন্ন সংকলক এটি আলাদাভাবে ব্যাখ্যা করতে পারে।


5
ঠিক আছে, এই মুহুর্তে আপনি পাশাপাশি ছেড়ে দিতে পারেন, তাই না?
কર્ક স্ট্রুজার

90
কেউ কেউ পোস্টফিক্স এবং উপসর্গের মধ্যে পার্থক্য বুঝতে না পেরে দংশিত হয়েছিলেন, সংকলক বাগ দাবি করেছিলেন, তারপরে এটি অন্য লোকদের উপর চাপিয়ে দিয়েছিলেন, আমার ধারণা।
বার্নার্ড 13

5
আসলে, তারা সঠিক ছিল, কিছু পরিস্থিতিতে। নিষেধাজ্ঞার উপরে যদিও কিছুটা উপরে আছে। উদাহরণস্বরূপ, লাইনটি ধরুন: a [i] = i ++; এটিকে ইনডেক্স করার আগে বা তার পরে ইনক্রিমেন্ট পেতে পারি। ভাষা এটি সংজ্ঞায়িত করে না।
টেড

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

2
নিষেধাজ্ঞার পাশাপাশি =এটি অপরিবর্তিত আচরণের কারণ হতে পারে ban
কনফিগারকারী

81

দলের অর্ধেক লোক চার-স্থান নির্ধারণের পক্ষে; অন্যান্য অর্ধেক দুটি-স্থান ইন্ডেন্টেশন পছন্দসই।

আপনি অনুমান করতে পারেন, কোডিং মান তিনটি বাধ্যতামূলক, যাতে "সকলকে সমানভাবে অপরাধ করা" (সরাসরি উক্তি)।


42
ট্যাব সনাক্তকরণ এত দুর্দান্ত কেন তা। প্রত্যেকে তার সম্পাদকের আকার পরিবর্তন করতে পারে;)
xardias

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

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

16
... এবং এটি কখনও কার্যকর হয় না। : পি
রবার্ট পি

10
"সকলকে সমানভাবে অপমান করা" ... আমি এটি পছন্দ করি। আমি পরের বার এটি মনে রাখতে যাচ্ছি আমি কোনওভাবে ইনডেন্টেশন মানকরণের যুদ্ধে অংশ নিই।
মাইকেল বুড়

74

প্রতিচ্ছবিটি ব্যবহার করতে সক্ষম না হওয়ায় পরিচালক এটি খুব বেশি 'জাদু' জড়িত বলে দাবি করেছেন।


10
হ্যাঁ, যাদুটি বজায় রাখা শক্ত, উপস্থিতভাবে;) এলওএল, যদিও।
রিক

19
এটি সম্ভবত সঠিক কারণ, ভুল কারণে :)
ববি জ্যাক

71
'যাদু' পড়ার পারফরম্যান্সের জন্য অভাবনীয় অস্পষ্ট দুঃস্বপ্নের কোডটি হত্যা করা। সে সঠিক.
gbjbaanb

4
আমি অনুমান করি যে আপনাকে তখন কোড করার অনুমতি দেওয়া হয়নি et সর্বোপরি, কাঠামোটি কার্যকরভাবে পরিচালিত করে তা প্রতিফলনের মাধ্যমে ঘটে।
নোটমে

5
নিচে those উইজার্ড দিয়ে !! সর্বদা চারপাশে, তাদের যাদু দিয়ে , আমাদের চাকরি চুরি করে, আমাদের মহিলাদেরকে প্ররোচিত করে এবং আমাদের শিশুদের দুর্নীতি করে!
জেডজেআর

71

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

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

এটি সম্ভবত আপনাকে জেনে অবাক করবে না যে আমাদের সংস্থা দেউলিয়া হয়ে গেছে।


1
আমি বলব, এটি বেশ বিস্ময়কর।
ব্র্যাড গিলবার্ট

14
পুঁজিবাদের জন্য তিনটি চিয়ার!
স্টার ব্লু

46
হ্যাঁ ফিটেস্ট বেঁচে থাকার জন্য ... এই লোকটি তার নিজের সফ্টওয়্যার ব্যবসা চালানোর যোগ্য ছিল না।
মার্ক ব্রিটিংহাম

10
শেষ বাক্যটি দুর্দান্ত ছিল। কেউ যখন এ জাতীয় সিদ্ধান্ত নেয় তখন কীভাবে তাকে গুরুত্ব সহকারে নেওয়া যেতে পারে?
মিঃ শিকাড্যান্স

54

জেনেরিক নম্বরযুক্ত শনাক্তকারী নাম ব্যবহার করে

আমার বর্তমান কাজটিতে আমাদের দুটি নিয়ম রয়েছে যার সত্যিকার অর্থে:

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

সুতরাং আমরা customer.reserve_field_14গ্রাহকের ই-মেইল ঠিকানা সহ শেষ করছি ।

একদিন আমাদের বস রিজার্ভ টেবিলগুলি প্রবর্তন করার কথা ভেবেছিলেন , তবে ভাগ্যক্রমে আমরা তাকে এটি না করার জন্য বোঝাতে পারি।

বিধি 2: আমাদের পণ্যগুলির মধ্যে একটিতে ভিবি 6 লিখিত হয় এবং ভিবি 6 -র বিভিন্ন সনাক্তকারী নামগুলির মোট গণনার সীমা রয়েছে এবং কোডটি খুব বড় হওয়ায় আমরা ক্রমাগত এই সীমাতে চলে যাই। "সমাধান" হিসাবে সমস্ত স্থানীয় ভেরিয়েবলের নাম্বার দেওয়া হয়:

  • Lvarlong1
  • Lvarlong2
  • Lvarstr1
  • ...

যদিও এটি কার্যকরভাবে শনাক্তকারী সীমাটিকে বিঘ্নিত করে, এই দুটি বিধি সম্মিলিতভাবে সুন্দর কোডের দিকে পরিচালিত করে:

...

If Lvarbool1 Then
  Lvarbool2 = True
End If

If Lvarbool2 Or Lvarstr1 <> Lvarstr5 Then
  db.Execute("DELETE FROM customer WHERE " _ 
      & "reserve_field_12 = '" & Lvarstr1 & "'")
End If

...

পুরানো বা অন্য কারোর কোড ঠিক করা কতটা কঠিন তা আপনি কল্পনা করতে পারেন ...

সর্বশেষ আপডেট: এখন আমরা ব্যক্তিগত সদস্যদের জন্যও "রিজার্ভ পদ্ধতি" ব্যবহার করছি:

Private Sub LSub1(Lvarlong1 As Long, Lvarstr1 As String)
  If Lvarlong1 >= 0 Then 
    Lvarbool1 = LFunc1(Lvarstr1)
  Else
    Lvarbool1 = LFunc6()
  End If
  If Lvarbool1 Then
    LSub4 Lvarstr1
  End If
End Sub

সম্পাদনা: মনে হচ্ছে এই কোড প্যাটার্নটি আরও বেশি জনপ্রিয় হয়ে উঠছে। আরও জানতে ডেইলি ডব্লিউটিএফ পোস্টটি দেখুন: তাত্পর্য :)


10
দুষ্টুমি করসি না. আমি বাজি ধরেছি S সমস্ত এসকিউএল ইঞ্জেকশনগুলি সরাতে এবং চিরকালের জন্য এটি গ্রহণ করেছিল। ;-)
কির্ক স্ট্রুয়েসার

এটি খাঁটি মন্দতা। আমি নিশ্চিত যে আপনার বস / টিএল একজন ওভারলর্ড কেবল তার সুযোগের জন্য অপেক্ষা করছেন।
ম্যানুয়েল ফেরেরিয়া

5
ওহ, কে এই রকম নিয়ম নিয়ে হাজির হবে ??? সবচেয়ে গুরুত্বপূর্ণ: আপনার দল কোডটি কীভাবে পরিচালনা করে ??
হাসেন

2
আমি মনে করি তার অর্থ হ'ল আপনি ডিফল্টরূপে সমস্ত ক্ষেত্র নির্বাচন করবেন যাতে আপনি সমস্ত 'রিজার্ভ' ক্ষেত্রগুলি পেয়েছেন, সেগুলি নির্দিষ্ট করার দরকার নেই।
মিঃ শিকাড্যান্স

2
); আপনি, preprosessing যেখানে তোমার মত '% S / ইমেইল / reserve_field_12 / ছ' somegtinh কম্পাইল করার আগে meaningfull ভেরিয়েবল নাম ব্যবহার করে আপনার কোড লিখতে এবং তারপর "সঠিক ব্যক্তিরা" সঙ্গে এটি প্রতিস্থাপন করবে কোড ব্যবহার করতে পারে maibe
জোয়াও Portela

53

আমার সি ++ দিন পরে আমাদের ==,> =, <=, && ইত্যাদি ব্যবহারের অনুমতি দেওয়া হয়নি এর জন্য এখানে ম্যাক্রো ছিল ...

if (bob EQ 7 AND alice LEQ 10)
{
   // blah
}

এই স্পষ্টত "শর্তসাপেক্ষ বাগ পুরনো আপতিক নিয়োগ" সঙ্গে মোকাবেলা করতে ছিল, যদিও এটিকে আমরা আরো নিয়ম ছিল "ভেরিয়েবল আগে ধ্রুবক করা", তাই

if (NULL EQ ptr); //ok
if (ptr EQ NULL); //not ok

সবেমাত্র মনে আছে, আমি শুনেছি সহজতম কোডিং মানটি হ'ল "কোড লিখুন যেন পরবর্তী রক্ষণাবেক্ষণকারী কোনও দুষ্টু মনোবিজ্ঞানী যিনি জানেন আপনি কোথায় থাকেন।"


1
rofl .. সিটিতে ফোর্টারান লেখা
রবার্ট পলসন

আমি এখনও সি # তে নাল == পরিবর্তনশীল করব। আমি জানি আমার এটি নিয়ে চিন্তা করার দরকার নেই, তবে আমি নিজেকে সাহায্য করতে পারি না। যদি আমি এটি অন্যভাবে দেখি তবে আমি নার্ভাস বোধ করি। পুরানো অভ্যাস দূর করা কঠিন.
ট্রয় হাওয়ার্ড

সাইকোপ্যাথ সম্পর্কে সর্বশেষে কিছু লোককে সঙ্গে সঙ্গে হত্যা করা হত।
মিঃ শিকাড্যান্স

31
দুষ্টু মনোরোগের জন্য +1
রকলিয়ার

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

45

সাধারণভাবে হাঙ্গেরীয় স্বরলিপি।


11
ভাল, আমি কোনও পৃষ্ঠায় নিয়ন্ত্রণের জন্য এইচ / এন পছন্দ করি। TxtFooBar যখন আমার সন্ধান করতে হবে তা হ'ল ইন্টেলিজেন্স ড্রপডাউন-এ সমস্ত পাঠ্যবক্স নিয়ন্ত্রণগুলি খুঁজে পাওয়া অনেক সহজ।
cciotti

20
আঞ্চলিক স্বরলিপিটি খারাপ নয়, কেবল joelonsoftware.com/articles/Wrong.html
সিজিমি

1
আমি নিয়ন্ত্রণের প্রতি সম্মান জানাব। তাহলে হাঙ্গেরিয়ান স্বরলিপি সহায়ক হতে পারে। যদিও সাধারণভাবে, আমি মনে করি হাঙ্গেরীয় স্বীকৃতি অপ্রচলিত, এবং সাধারণত অপব্যবহার করা হয়। এটি এর মূল উদ্দেশ্য থেকে সরে গেছে।
vfilby

9
মারাত্মকভাবে অপব্যবহার, হ্যাঁ। ভুল, না
লরেন পেচটেল

2
অনেক লোক একটি ইন্টারফেসের নামটি আই, আইমুনিউরেবল, আইলিস্ট দিয়ে শুরু করে ... নেট ফ্রেমওয়ার্কের সাথে একটি ইন্টারফেসগুলি একটি আই দিয়ে শুরু হয়
tuinstoel

43

আমার প্রচুর বোকা নিয়ম রয়েছে, কিন্তু আমি একেবারে অদ্ভুত বলে মনে করি না।

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

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

একটি সাধারণ অ্যাসাইনমেন্ট স্টেটমেন্ট (ইতিমধ্যে অ্যাডায় ভার্বোজ) এর মতো এমন কিছু খুঁজবে:

NABC_The_Package_Name.X := NABC_The_Package_Name.X + 
  CXYZ_Some_Other_Package_Name.Delta_X;

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

package Package_Name renames NABC_Package_Name;
package Some_Other_Package_Name renames CXYZ_Some_Other_Package_Name;
--// Repeated in this vein for an average of 10 lines or so

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

with CANT_Interface_Package;
with WONT_Interface_Package;


16
জঘন্য, এবং আমি সত্যিই ভেবেছিলাম আপনি সব বেরিয়ে যাবেন এবং একটি CUN * _ এবং ডাব্লু * এনকে_ প্যাকেজ নামকরণ কনভেনশন ব্যবহার করবেন। দুঃখিত, আমি ধীর-জ্বলনকারী, বিস্ফোরক, পাঠ্য আকর্ষণীয় have তবে তোমার ছিল অনেক বেশি, মজাদার!
Defmeta

41

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

পরে আমি বুঝতে পেরেছিলাম যে তিনি এমনকি আমার কাছে যে কারণটি এসেছিলেন তা হ'ল এসভিএন সার্ভার তাকে (এবং আরও দশজন উচ্চ নির্বাহী) প্রত্যেকের প্রতিশ্রুতিবদ্ধ ব্যক্তির জন্য একটি মেইল ​​প্রেরণ করবে। সোর্স কন্ট্রোলটার ফাঁক দিয়ে আমি অনুমান করেছি যে সে তার মেইলবক্সটি নিয়েছে।


হাইলাইট ইমেল, মুছে ফেলতে ক্লিক করুন, সম্পন্ন
TheLQ

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

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

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

34

এসকিএল সার্ভার 2000 এ সঞ্চিত প্রক্রিয়াগুলির মাধ্যমে সমস্ত ডেটাবেস কোয়েরি করা complex জটিল মাল্টি-টেবিল অনুসন্ধান থেকে শুরু করে সাধারণের মতো:

select id, name from people

পদ্ধতির পক্ষে যুক্তিগুলি ছিল:

  • কর্মক্ষমতা
  • নিরাপত্তা
  • Maintainability

আমি জানি যে প্রক্রিয়া বিষয়টি বেশ বিতর্কিত, সুতরাং আমার উত্তরটিকে নেতিবাচকভাবে স্কোর করতে নির্দ্বিধায়;)


2
টেবিল এবং কলামের নামগুলি অনন্য না হলে রক্ষণাবেক্ষণের উন্নতি হতে পারে তবে এসপি নামগুলি। এটি কোড রেফারেন্সগুলি সন্ধান করা আরও সহজ করে তুলতে পারে। যদি অন্য কোনও, আরও ভাল রক্ষণাবেক্ষণ সুবিধা থাকে তবে আমি সেগুলি সম্পর্কে অবগত নই। সুরক্ষা এসপি ব্যবহারের মূল কারণ।
জেফ্রি এল হুইলেটজ

2
আমি সম্মত হই যে সাধারণ উদ্দেশ্যে এটি 100% ডব্লিউটিএফ
archives

2
"এসপি ব্যবহারের প্রধান কারণ হ'ল সুরক্ষা" নন, এসকিউএল সার্ভারে এসপি'র কিছুই আর নিরাপদ নয়। এগুলি কেবলমাত্র প্যারামিটারাইজড ক্যোয়ারী হিসাবে ডাকা হলেই সুরক্ষিত থাকে, যা ডায়নামিক এসকিউএল দিয়ে ঠিক যেমন করা যায়।
ফ্লোর 17

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

4
সংকলিত কোডে কোয়েরিগুলি সমাধিস্থ করা এমন ব্যথা, আমি একাই বিমূর্তনের জন্য 100% স্প্রোকস নীতি পিছনে 100% আছি
অনাকাটা

33

প্রতি 1000 লাইনের কোডের জন্য 165 ইউনিট পরীক্ষা (অগত্যা স্বয়ংক্রিয় নয়) থাকতে হবে। যা মোটামুটি প্রতি 8 টি লাইনের জন্য একটি পরীক্ষায় কাজ করে।

বলা বাহুল্য, কোডের কয়েকটি লাইন বেশ দীর্ঘ, এবং ফাংশনগুলি শৃঙ্খলার অনুমতি দেওয়ার জন্য এই পয়েন্টারগুলি ফেরত দেয়।


ইউনিট পরীক্ষা কীভাবে স্বয়ংক্রিয় হয় না।
pupeno

কীভাবে তারা 8 নম্বর যাদু নিয়ে এসেছিল?
রোহিত

1
আপনার যদি 164 থাকে তবে কি হবে? 166?
ড্যানিয়েল দারানাস

8
আরও 6 লাইনের মত।
21:38

1
এটি নির্ভর করে যে আপনার পরীক্ষাগুলি কতটা সূক্ষ্মভাবে শস্যযুক্ত on আমি function(x).should == 2একটি একক পরীক্ষা হিসাবে বিবেচনা করব , অন্যরা তাদের একসাথে 10 টি বান্ডিল করবে এবং এটিকে একটি একক পরীক্ষা বলবে।
অরিয়ন এডওয়ার্ডস

30

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

(আমাদের প্রযুক্তি কোড থেকে সমস্ত মন্তব্য মুছে ফেলার জন্য একই প্রযুক্তি নেতৃত্ব একটি অ্যাপ্লিকেশন লিখেছিল)।


3
নিশ্চিতভাবেই, 'কারণ মন্তব্যগুলি কেবল বিশৃঙ্খলা, কারণ ... এবং ভাবেন প্রাক-প্রসেসর সংকলনের সময় কতগুলি চক্র সঞ্চয় করে! (অ্যাপ্লিকেশনটি নিয়মের চেয়েও মজাদার Good একটি ভাল))
ওজরাক

7
অবশ্যই! বিকাশকারীরা কোড লেখার কথা
বলেছে

2
হ্যাঁ! এবং মন্তব্যগুলি বিল্ডটিকে ধীর করে দেয়!
গ্রেগ ডি

2
তবুও আমি মনে করি সদস্যদের টাইপ (ক্ষেত্র, বৈশিষ্ট্য, পদ্ধতি) এবং নাম অনুসারে বাছাই করা একটি ভাল নিয়ম
আবাতিশ্চভ

3
আমি পদ্ধতিগুলি, সদস্য ইত্যাদি বর্ণমালা অনুসারে তাদের নিজ নিজ গ্রুপের মধ্যে শিরোনাম এবং উত্স উভয় ক্ষেত্রেই বাছাই করি ... তবে কেবলমাত্র আমি আবেশী।
জন পুরি 20'10

29

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

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

যে কোনও হারে, তিনি তাদের প্রাইম-ভিত্তিক সফ্টওয়্যারগুলির জন্য প্রচুর কোডিং মান প্রতিষ্ঠা করেছিলেন, যার মধ্যে অনেকগুলি দুটি মূল শর্ত থেকে উদ্ভূত: ১) ৮০-কলাম বোবা টার্মিনালের ব্যবহার এবং ২) যেহেতু প্রধানমন্ত্রী করেননি ' তার কাছে ভিজ্যুয়াল এডিটর নেই, তিনি নিজের লেখা লিখতেন। পিক কোডের যাদু বহনযোগ্যতার কারণে, তিনি তার সম্পাদককে প্রকাশের বাকী স্থানে নিয়ে এসেছিলেন এবং এটি ব্যবহার করে পুরো প্রকল্পটি পিসিতে তৈরি করেছিলেন built

প্রকাশ, অবশ্যই, পিসি-ভিত্তিক, পুরোপুরি ভাল স্ক্রিন সম্পাদক ছিল এবং আপনি যখন কলাম ৮০-এ গিয়েছিলেন তখন আপত্তি করেননি। তবে, প্রথম কয়েক মাস আমি সেখানে ছিলাম, তিনি জোর দিয়েছিলেন যে আমি তাঁর সম্পাদক এবং তার মান।

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

হ্যাঁ. আপনি যখন কোডের প্রতিটি লাইনকে মন্তব্য করেছিলেন, তখন তা লাইন-এর শেষের মন্তব্যের সাথে ছিল। সংক্ষেপে, প্রতিটি লাইনের প্রথম characters৪ টি অক্ষর কোডের জন্য ছিল, তারপরে সেমিকোলন ছিল এবং তারপরে আপনার 64৪ টি অক্ষর কী করেছে তা বর্ণনা করার জন্য আপনার কাছে 15 টি অক্ষর রয়েছে। সংক্ষেপে, আমরা আমাদের পিক / বেসিক কোডটি ফর্ম্যাট করতে একটি অ্যাসেম্বলি ভাষা কনভেনশন ব্যবহার করছিলাম। এটি এমন দেখায় এমন জিনিসগুলিতে পরিচালিত করে:

EVENT.LIST[DATE.INDEX][-1] = _         ;ADD THE MOST RECENT EVENT
   EVENTS[LEN(EVENTS)]                 ;TO THE END OF EVENT LIST

(আসলে, 20 বছর পরে আমি অবশেষে আর / বেসিকের লাইন-ধারাবাহিকতা বাক্য গঠনটি ভুলে গেছি, তাই এটি অন্যরকম লাগতে পারে But তবে আপনি ধারণাটি পান))

অধিকন্তু, যখনই আপনাকে মাল্টলাইন মন্তব্য sertোকাতে হয়েছিল, নিয়মটি ছিল আপনি একটি ফুলের বাক্স ব্যবহার করুন:

************************************************************************
**  IN CASE YOU NEVER HEARD OF ONE, OR COULDN'T GUESS FROM ITS NAME,  **
**  THIS IS A FLOWER BOX.                                             **
************************************************************************

হ্যাঁ, প্রতিটি লাইনে সেই ক্লোজিং অস্ট্রিকগুলি প্রয়োজন ছিল। সর্বোপরি, আপনি যদি তার সম্পাদক ব্যবহার করেন তবে এটি একটি ফুলের বাক্স sertোকানো কেবল একটি সাধারণ সম্পাদক কমান্ড ছিল।

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

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

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


14
মুদ্রণের সময় মন্তব্য
বিন্যাসের

1
ফুলের বাক্সটি কখনই অতিরিক্ত ব্যবহার করা উচিত নয়। আমি এটিকে ঘৃণা করি যখন আমি কোড বরাবর পড়ছি, ঠিক আছে, ভাল মন্তব্য করুন, তারপরে একটি ফুলের বাক্স দেখুন "এটি এই এবং এই এবং এটি করছে" চিৎকার করছে
TheLQ

26

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

এবং কেবল জিনিসগুলিকে আরও উন্নত করতে, সমস্ত ভেরিয়েবলগুলি বিশ্বব্যাপী হতে হয়েছিল।

আমার সেই কাজের একটি গর্বের স্মৃতি সেই সাধারণ বিদ্রোহের অংশ ছিল যা সেই মানদণ্ডগুলিকে ধ্বংস করার দিকে পরিচালিত করেছিল।


2
আমার মনে হয় একটি সভা কক্ষে কাগজে এটি ভাল লাগছিল, তবে আমি প্রোগ্রামার যাকে এটি অনুসরণ করতে হয়েছিল তার জন্য আমি দুঃখিত
TheLQ

অবশ্যই একজন ইংরেজী শিক্ষক ডিজাইন করেছেন।
Yodie

অবশ্যই কোনও সিওবিওএল প্রোগ্রামার ডিজাইন করেছেন।
ব্রুনো

অবশ্যই প্রচুর ব্যবহার করা উচিত goto
new123456

26

বহিরাগতভাবে লিখিত সি কোডিং স্ট্যান্ডার্ড যার নিয়ম ছিল 'অপারেটর অগ্রাধিকারের ভিত্তিতে নির্মিত নয়, সর্বদা বন্ধনী ব্যবহার করুন'

যথেষ্ট ভাল, সুস্পষ্ট অভিপ্রায়টি নিষিদ্ধকরণ ছিল:

a = 3 + 6 * 2;

পক্ষে:

a = 3 + (6 * 2);

কথাটি ছিল, এটি এমন একটি সরঞ্জাম দ্বারা প্রয়োগ করা হয়েছিল যা সি সিনট্যাক্স নিয়ম অনুসরণ করে যা '=', '==', '।' এবং অ্যারে অ্যাক্সেস অপারেটর হয়। সুতরাং কোড যেমন:

a[i].x += b[i].y + d - 7;

লিখতে হয়েছিল:

((a[i]).x) += (((b[i]).y + d) - 7);

2
হতে পারে (((ক) [(i)])। x) + = ((((খ) ((আমি)))) ?
বেহরোজ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.