চাকা পুনরুদ্ধার করা কি আসলেই খারাপ?


101

প্রোগ্রামিংয়ে এটির সাধারণ জ্ঞান যা হুইলটিকে পুনরায় উদ্ভাবন করা খারাপ বা মন্দ

তবে তা কেন?

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

এটি আমাকে এই প্রশ্নের দিকে নিয়ে যায়:

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

তার নিজের তৈরির একটি কেন ব্যবহার করা উচিত?


16
এটা একটা ভাল প্রশ্ন. আমি মনে করি না যে লোকেদের চাকাটি পুনরায় উদ্ভাবন করা উচিত তবে এই ধারণাগুলি ধরে রাখা নিশ্চিত করার জন্য এই ধারণাগুলি চ্যালেঞ্জ করা গুরুত্বপূর্ণ।
জন হপকিন্স

4
@ ডেমিয়ান - এটি আসলে বেশ ভাল ধারণা। আপনি যদি এটি ব্যাখ্যা করতে পারেন তবে আপনি সম্ভবত এটি করার পক্ষে ন্যায়সঙ্গত।
জন হপকিন্স

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

5
যদি বিদ্যমান চাকাগুলি আপনার নির্দিষ্ট প্রয়োজনের জন্য কৌশলটি সত্যিই না করে তবে পুনরায় উদ্ভাবন করুন ... বা আপনি যদি জানতে চান চাকাগুলি কীভাবে কাজ করে! এই বিষয় সম্পর্কে একটি আকর্ষণীয় নিবন্ধ: কোডিংহরর.কম
২০০৯ /

4
ডগলাস ক্রকফোর্ডকে দেওয়া:The good thing about reinventing the wheel is that you can get a round one.
জোয়েল ইথারটন

উত্তর:


71

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


14
+1 সবচেয়ে গুরুত্বপূর্ণ বিষয়টি এটি সম্পূর্ণরূপে আপনার নিয়ন্ত্রণে থাকে এবং আপনি এটি ভিতরে জানেন। অন্য লাইব্রেরিগুলি ডিবাগ করার ফলে যদি সম্ভব হয় তবে বড় মাথাব্যথার কারণ হতে পারে এবং বলা যায় যে সমস্ত পরিপক্ক লাইব্রেরি বাগ-মুক্ত রয়েছে, তবে কমপক্ষে বলতে আশাবাদী।
23:30

6
এক্সেল টিম এমনকি তাদের নিজস্ব সংকলক লিখতে যতদূর গিয়েছিল কারণ তারা কোনও বাহ্যিক নির্ভরতা চায় নি যা প্রকল্পে প্রভাব ফেলতে পারে। এটি একটি বৈধ পয়েন্ট তবে কী নিয়ন্ত্রণ সেই প্রধান প্রশ্ন the
জন হপকিন্স

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

4
@ গুজিকা, দুর্ভাগ্যজনক পছন্দ জেনারালাইজ করার পক্ষে পর্যাপ্ত নয় এবং অন্যান্য লাইব্রেরি রয়েছে যা ভাল রক্ষণাবেক্ষণ এবং একটি ভাল পছন্দ। প্রশ্নটি হ'ল মূল সিদ্ধান্তটি কি যথেষ্ট গবেষণা করা হয়েছিল?

5
উল্টোদিকে, আপনি যদি প্রাক-বিদ্যমান চাকা ব্যবহার করেন তবে সাধারণত এটির ডিবাগ করতে আপনাকে সহায়তা করার জন্য গুগল প্রায়শই নিখুঁতভাবে ইনডেক্স করে।
ড্যান রে

81

নির্ভর করে ..

সবকিছু হিসাবে, এর প্রসঙ্গে:

এটি ভাল যখন:

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

এটি খারাপ যখন:

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

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

1
আমার পক্ষে রিংগুলি সত্য বোঝা শক্ত। আমি ঠিক এইভাবে তৈরি করা গ্রাফ বিশ্লেষণ পাচ্ছিলাম না, এবং এখন আমি জানি। এখন আমি একটি কাঠামো ব্যবহার করতে আত্মবিশ্বাসী বোধ করছি
জেসটোনএচাইর

1
আমি "গুড" কলামটির জন্য একটি চতুর্থ সংযোজন করব (যদিও এটি খুব কমই প্রযোজ্য): যদি আপনি বিদ্যমান লাইব্রেরির চেয়ে সমস্যার জায়গাটি আরও ভালভাবে বুঝতে পারেন। জাভার ডি-ফ্যাক্টো স্ট্যান্ডার্ড টাইম লাইব্রেরি জোদা লেখা হয়েছিল কারণ বিল্ট-ইনটি কাজ করা শক্ত ছিল এবং এটি জাভা 8 এর ডি জুরে স্ট্যান্ডার্ড টাইম লাইব্রেরি হিসাবে আবার লেখা হয়েছিল কারণ তারা এখন মূল জোদা-সময় লেখার চেয়ে সমস্যাটি আরও ভালভাবে বুঝতে পেরেছিল।
মরগেন

55

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

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


3
বা অলসতা - যে যেতে এবং বিকল্পগুলি সন্ধান করতে বা কোডটি লেখার জন্য এটি করা কম আকর্ষণীয় বলে মনে করা যায় না।
জন হপকিন্স

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

2
... যা বর্তমান বা পরবর্তী বিকাশকারীদের রক্ষণাবেক্ষণের একটি পুনরাবৃত্ত (সবচেয়ে খারাপ ধরণের) বোঝা তৈরি করে।
গাহোয়া

2
আমি বছরের পর বছর ধরে এইটাই করছিলাম। আমি একটি ভাষাতে আমার নিজস্ব বৈশিষ্ট্যটি রোল করব কারণ আমার ধারণা ছিল না যে সেই কার্যকারিতাটি ইতিমধ্যে অন্তর্নির্মিত was
ম্যাচু

1
প্রায় তিন বছর আগে এই পোস্টটি (গীজ) লেখার পরে, আমি এমন একটি বিকাশকারীকে নিয়োগ করে এবং বরখাস্ত করেছি যা আমি প্রথম বাক্যে "বেশ বিরল" বলে বর্ণনা করেছি described তিনি এক মাস স্থায়ী। আমি তাকে এখানে বলব যে আমরা কীভাবে এখানে জিনিসগুলি করি এবং তিনি বলতেন "আপনি যা বলছেন তা আমি শুনি"। অব্যর্থ শোনার জন্য আমাকে এক মাস সময় লেগেছে "... তবে এটি ভুল এবং আমি" বাক্যাংশের শেষে "গোপনে এটি সবই করব।
ড্যান রে

22

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

ঘাটতি কী তা কেবল তাকে জিজ্ঞাসা করুন।


9
+1 উত্তম রূপক "বর্গাকার চাকাগুলি পুনরায় নতুন করতে হবে"
অর্বলিং করছে

"স্কোয়ার চাকাগুলির জন্য পুনরায় নতুন করে আনতে হবে"
টিন্টু সি রাজু

17

সাধারণভাবে, আমি আমার ব্যবহার করা ভাষাটির আদর্শ লাইব্রেরিতে যদি আমার যে কার্যকারিতাটি পছন্দ করি বা এটির কাছাকাছি কিছু উপস্থিত থাকে তবে আমি চাকাটি পুনরায় উদ্ভাবন করা এড়াতে চাই।

তবে, যদি আমাকে তৃতীয় পক্ষের গ্রন্থাগারগুলি অন্তর্ভুক্ত করতে হয় তবে গ্রন্থাগারটি কতটা ব্যবহৃত এবং সম্মানিত তা নির্ভর করে এটি একটি রায় কল call মানে আমরা কি বুস্ট বা ববের কিক-অ্যাস স্ট্রিং-পার্সিং সরঞ্জামগুলি 1.0 সম্পর্কে কথা বলছি ?

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

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

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

সুতরাং এটি সত্যিই সমস্ত ভারসাম্যহীন কাজ। তবে মুল বক্তব্যটি হ'ল অন্ধভাবে বলে যাচ্ছেন "কোডের পুনরায় ব্যবহার ভাল! পুনর্বহাল চাকা খারাপ!" একটি বিপজ্জনক মনোভাব। নির্ভরতা প্রবর্তনের অসুবিধাগুলির বিরুদ্ধে তৃতীয় পক্ষের কোডটি উপকারের সুবিধার অবশ্যই ওজন করতে হবে।


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

14

লোকেরা যদি চাকাগুলিকে পুনরায় উদ্ভাবন না করে তবে বিশ্বগুলি এগুলি দিয়ে পূর্ণ হবে .. এখানে চিত্র বর্ণনা লিখুন

আমার কর্মক্ষেত্র থেকে এখানে একটি সংলাপ দেওয়া হল:

- I would like to add some colors to the output of this program.
- Oh, there is this library called Colorama ..

দুটি বিকল্প রয়েছে: হয় চাকাটি পুনর্নবীকরণ করুন বা কলারোমা ব্যবহার করুন। প্রতিটি বিকল্পের ফলাফল কী হবে তা এখানে:

কলোরামা ব্যবহার করে

  • দৌড়াতে হয়তো কিছুটা দ্রুত
  • তুচ্ছ জিনিসের জন্য তৃতীয় পক্ষের নির্ভরতা যুক্ত করা
  • আপনি কলোরামা ব্যবহার করার মতো আগের মতো বোকা হয়ে চালিয়ে যান

চাকা পুনর্নবীকরণ

  • আপনি বুঝতে পারেন কিছু প্রোগ্রাম কীভাবে রঙ প্রদর্শন করতে সক্ষম
  • আপনি শিখলেন যে কোনও বিশেষ টার্মিনালটিতে বর্ণ বর্ণ ব্যবহার করা যেতে পারে
  • আপনি ভবিষ্যতে যে কোনও প্রোগ্রামিং ভাষা ব্যবহার করতে পারেন তাতে রঙিন করতে সক্ষম
  • আপনার প্রকল্পটি ভাঙ্গার সম্ভাবনা কম

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


2
+1 আপনার সাথে 100% একমত নয় তবে ধারণাটি জানাতে ব্যবহৃত চিত্রটি পছন্দ করেছে।
তুলিনাস কর্ডোভা

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

2
@ নীলহাগটন যেমন দেখছি আমার "নিজস্ব" শিক্ষাগত সুবিধাটিও আমার নিয়োগকর্তার সুবিধা।
পিথিকোস

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

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

13

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

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

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


+1 শেখার দৃষ্টিভঙ্গির একটি খুব ভাল বিষয়, একটি লাইব্রেরি কার্যকরভাবে ব্যবহার করতে, আপনাকে কীভাবে এটি কাজ করে তা সত্যই অন্তরঙ্গভাবে জানতে হবে। আমি সরঞ্জামগুলির ব্ল্যাক বক্স ব্যবহার পছন্দ করি না। ক্রিপ্টোগ্রাফি লাইব্রেরিতে দুর্দান্ত পয়েন্ট, সেই স্কোরটিতে আপনার নিজের রোল করা খুব ঝুঁকিপূর্ণ।
অর্বলিং করছে

আমি যুক্ত করব যে কোনও তৃতীয় পক্ষের লাইব্রেরিটি অদৃশ্য হয়ে যেতে পারে এমন উদ্বেগ থাকলে, এটি একটি প্রোগ্রামিক ইন্টারফেস লেখার পক্ষে একটি দুর্দান্ত যুক্তি যা একটি লাইব্রেরিকে সহজেই অন্যটির জন্য সরিয়ে নেওয়া যায়।
ব্যবহারকারী 8865

ভাল পয়েন্ট - আমরা কেবল এই উদ্দেশ্যে অ্যাডাপ্টার প্যাটার্নটি ব্যবহার করি এবং এটি যখন আমাদের তৃতীয় পক্ষের এফটিপি লাইব্রেরি সরিয়ে নিতে হয় তখন এটি আমাদের সংরক্ষণ করে।
মার্ক ফ্রিডম্যান

9

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

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

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

এবং এটি সমস্ত কার্যকরী সমতুল্যতা ধরে নেয় যা সাধারণত ক্ষেত্রে হয় না। প্রায়শই গ্রন্থাগারগুলি কার্যকারিতা সরবরাহ করে যা আপনি দরকারী মনে করেন তবে কখনও কখনও বিল্ডিংকে ন্যায়সঙ্গত করতে পারেন না, সেগুলি হঠাৎই বিনামূল্যে পাওয়া যায়।

আপনার নিজস্ব রোল করার কারণ রয়েছে - মূলত যেখানে আপনি বিল্ট ফাংশনটি করতে পারেন না এমন কিছু করতে চান এবং যেখানে এমনটি করার মাধ্যমে একটি আসল সুবিধা পাওয়া যায় বা সহজেই উপলব্ধ বিকল্পগুলি পরিপক্ক হয় না - তবে তারা অনেক বিকাশকারীদের তুলনায় 'আপনার বিশ্বাস কম হবে' less

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


2
আপনার শেষ লাইনে: কীভাবে সেগুলি সমাধান করা হয় তা জানতে। প্রোগ্রামিং সব পরে অভিজ্ঞতার উপর নির্ভরশীল।
অরব্লিং

@ অর্বলিং - যথেষ্ট ন্যায্য তবে আপনি প্রোডাকশন কোডে এমনটি করা উচিত নয় এবং আমি ধরে নিচ্ছি যে প্রশ্নটি যা বোঝায়। সংশোধন করা যাবে।
জন হপকিন্স

@ জোন হপকিন্স: আপনার নিজের সময়ে না করা থাকলে ভাল উত্পাদন কোডটি সাধারণত শেখার থেকে অনুসরণ করা হয়।
অর্বলিং

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

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

9

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

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

তদুপরি, বিদ্যমান চাকাগুলি প্রায়শই আমার প্রকল্পে বাধা যুক্ত করে যা আমি চাই না। উদাহরণ স্বরূপ:

  • বিদ্যমান চাকাটির জন্য আমি অন্যথায় ব্যবহার করতে পছন্দ করি না তার চেয়ে আলাদা ভাষা এবং / বা প্রোগ্রামিং শৈলীর প্রয়োজন।
  • বিদ্যমান চাকাটি কেবলমাত্র একটি ভাষার উত্তরাধিকার সংস্করণ দিয়ে কাজ করে (উদাহরণস্বরূপ, পাইথন 3 এর পরিবর্তে পাইথন 2)।
  • দক্ষতা, নমনীয়তা এবং সরলতার মধ্যে যেখানে বাণিজ্য রয়েছে সেখানে বিদ্যমান চাকা এমন পছন্দ করে যা আমার ব্যবহারের ক্ষেত্রে সাবস্টিমেট। (আমি লাইব্রেরিগুলি থেকে এমনকি কার্যকারিতা পুনরুদ্ধারে পরিচিতি পেয়েছি যা আমি এই ক্ষেত্রে নিজেই লিখেছিলাম Usually সাধারণত এটি কারণ কারণ আমি ফাংশনের লাইব্রেরি সংস্করণটি জেনেরিক এবং যুক্তিযুক্ত দক্ষ হিসাবে লেখেন, যখন আমার বর্তমানে কিছু নির্দিষ্ট প্রয়োজন যা আমার নির্দিষ্ট ক্ষেত্রে খুব দ্রুত হয় কেস।)
  • বিদ্যমান চাকাটিতে প্রচুর পরিমাণে লিগ্যাসি ক্রাফ্ট রয়েছে যা নতুন কোডের ক্ষেত্রে সম্পূর্ণ অকার্যকর তবে তবুও জীবনকে কঠিন করে তোলে (উদাহরণস্বরূপ, আমি একটি জাভা লাইব্রেরি ব্যবহার করি যা আমাকে তার ক্রেপি কনটেইনার ক্লাসগুলি ব্যবহার করতে বাধ্য করে কারণ এটি জেনেরিকগুলির আগে লেখা হয়েছিল ইত্যাদি) ।
  • বিদ্যমান চাকা মডেলগুলির সমস্যাটি আমার ব্যবহারের ক্ষেত্রে কী সুবিধাজনক তার চেয়ে সম্পূর্ণ আলাদা। (উদাহরণস্বরূপ, সম্ভবত নোড অবজেক্টস এবং রেফারেন্সগুলি দ্বারা নির্দেশিত একটি নির্দেশক গ্রাফ পাওয়া আমার পক্ষে সুবিধাজনক তবে বিদ্যমান চাকাটি সংলগ্ন ম্যাট্রিক্স বা তদ্বিপরীত ব্যবহার করে Maybe বিদ্যমান চাকা সারি প্রধান বা তদ্বিপরীত জোর দেয়।)
  • লাইব্রেরিটি একটি বিশাল, ভঙ্গুর নির্ভরতা যুক্ত করেছে যে আমি আমার কোডটি স্থাপন করতে চাই যেখানেই যেতে এবং চালানো এখন এক বড় ঝামেলা হয়ে উঠবে, যখন আমার প্রয়োজন কেবল তার বৈশিষ্ট্যগুলির একটি ছোট উপসেট set অন্যদিকে, এই ক্ষেত্রে আমি মাঝে মাঝে কেবল নতুন, ছোট লাইব্রেরিতে যে বৈশিষ্ট্যটি চাইছি তা বের করতে পারি বা লাইব্রেরিটি যদি ওপেন সোর্স হয় এবং কোডবেস যথেষ্ট সহজ করে তোলে তবে কেবল কপি / পেস্ট করুন। (এমনকি আমি নিজে লিখেছি এমন তুলনামূলকভাবে বড় লাইব্রেরি দিয়েও এটি করেছি))
  • বিদ্যমান চাকাটি এমন কিছু স্ট্যান্ডার্ডের সাথে প্যাডেন্টিকভাবে মেনে চলার চেষ্টা করে যা আমার ব্যবহারের ক্ষেত্রে অসুবিধাজনক এবং অপ্রাসঙ্গিক উভয়ই।

আমি মনে করি এগুলি সমস্ত কিছুতে ফুটে উঠেছে: চাকাটি যদি আপনার উদ্দেশ্য অনুসারে চলে তবে এটি ব্যবহার করুন, যদি তা না হয় তবে একটি নতুন চাকা তৈরি করুন যা এটি করে। এটি সম্পর্কে একরকম বা অন্যভাবে কৌতূহল বোধ করবেন না।
নিল হাহটন

5

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

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

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


2
এটি প্রতিস্থাপন না করার, এটি প্রথম স্থানে না করার কারণ not আমি ধরে নিয়েছি যে বিকল্পটি বিদ্যমান তা জেনে আপনি এখন একই কাজ করবেন না?
জন হপকিন্স

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

4

চাকাটি কীভাবে কাজ করে তা শিখার এক নতুন উপায় হ'ল চাকাটিকে পুনরায় উদ্ভাবন করা তবে এটি গাড়ী তৈরির পক্ষে ভাল উপায় নয়।


4

আমি বর্তমানে একগুচ্ছ সস্তারস্কেটের জন্য কাজ করছি।

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

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

বিল্ড বনাম কিনে উপস্থাপনা
বিল্ড বনাম কিনে নিবন্ধ

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

তার নিজের তৈরির একটি কেন ব্যবহার করা উচিত?

অন্তর্নির্মিত সংস্করণে এটি আরও অনেক বেশি লোককে ধাক্কা মারবে - সুতরাং আপনার হোমব্রিউ কোডের চেয়ে আরও বেশি বাগ খুঁজে পেতে এবং ঠিক করতে পারে।

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


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

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

আপনি কি ভুলে যাচ্ছেন না যে আপনার বিপথগামী সস্তাস্কেস্ট নিয়োগকর্তারা কার্যকরভাবে আপনাকে অন্যরকমের চেয়ে বেশি বেতনের কাজ সরবরাহ করছে? আপনার উচিত এটি সম্পর্কে অভিযোগ করার পরিবর্তে তাদের উত্সাহিত করা!
নীল হাটটন

4

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

এখন এটি বলার অপেক্ষা রাখে না যে প্রতিটি প্রকল্পের জন্য আপনার নিজের চাকা তৈরি করা উচিত - বেশিরভাগ জিনিস স্ট্যান্ডার্ড অংশগুলি ব্যবহার করতে পারে এবং এটির জন্য আরও ভাল হতে পারে। তবে প্রতিবার এবং পরে, আপনি দেখতে পাবেন যে স্ট্যান্ডার্ড অংশগুলি কেবল কাজ করে না, তাই আপনি নিজের তৈরি করেন।

সর্বাধিক গুরুত্বপূর্ণ বিষয় হ'ল WHEN কে নিজের তৈরি করতে হবে তা জানা। স্ট্যান্ডার্ড অংশগুলি কী করতে পারে এবং তারা কী করতে পারে না সে সম্পর্কে আপনার নিজের ভাল ধারণা থাকতে হবে, আপনি নিজের নকশা তৈরি করার আগে।


4

চাকাটি পুনরায় উদ্ভাবন করা বা না করা একটি ব্যয় / উপকারের জিনিস। ব্যয়গুলি মোটামুটি সুস্পষ্ট ...

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

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

সুবিধাগুলি হতে পারে ...

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

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


3

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

জোয়েল না-উদ্ভাবিত-এখানে একটি নিবন্ধ লিখেছিল যা পুনরায় লেখার কোড এবং সফ্টওয়্যার কখন কার্যকর নয় এবং সে সম্পর্কে ভলিউম বলে।


3

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

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


3

আমার ব্যক্তিগত থাম্বের নিয়ম:

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


3

"খারাপ" বা "দুষ্ট" হওয়া বরং কড়া শব্দ।

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

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

http://googleresearch.blogspot.com/2006/06/extra-extra-read-all-about-it-nearly.html

এটি পাওয়া গেছে, ভবিষ্যতে জাভা বিতরণগুলিতে স্থির এবং বিতরণ করা হয়েছিল।

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

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

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


বাগফিক্সগুলি মোতায়েনের জন্য প্ল্যাটফর্মের উপর নির্ভর করার জন্য +1। অন্যদিকে, বাগফিক্স বিতরণ করবেন কিনা তা সিদ্ধান্ত নেওয়া প্ল্যাটফর্ম বিক্রেতার হাতে to অন্য কোনও বিক্রেতা চয়ন করতে পারেন: (1) বাগফিক্স বিনামূল্যে বিতরণ করুন; (২) কোনও বড় সংস্করণ আপগ্রেড না হওয়া পর্যন্ত বাগফিক্সকে আটকে রাখুন; (3) সর্বশেষ সংস্করণ ব্যবহারকারীদের মধ্যে বাগফিক্স বিতরণ করুন, তবে পূর্ববর্তী সংস্করণগুলি অস্বীকার করুন (4) এটি "ব্যাপক অসঙ্গতি সৃষ্টি করতে পারে" এবং "কেবলমাত্র সীমিত ব্যবহারকারীকেই প্রভাবিত করতে পারে" দাবি করে পুরোপুরি সংশোধন করতে অস্বীকার করেছেন।
রবিং

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

:র্ন: আমার বক্তব্যটি হ'ল আপনি যে দানশীল বিক্রেতাদের ()) উল্লেখ করেছেন সেগুলি ছাড়াও অন্য ধরণের বিক্রেতারাও রয়েছেন।
রবিং

@ রুং, এক্ষেত্রে "ব্যক্তিগত বাস্তবায়ন বেছে নেওয়ার জন্য খুব ভাল কারণ" এর জন্য যোগ্যতা অর্জন করে।

3

আমি সম্প্রতি এই বিষয়টিতে আমার চিন্তাভাবনাগুলি ব্লগ করেছি । সংক্ষেপ:

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

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

  3. আপনার নিজস্ব কাঠামো তৈরির একটি বড় সুবিধা হ'ল আপনাকে অন্য কারও বাগের জন্য দায় নিতে হবে না। (এটি আমাজনের দর্শন ) -

    "আমাদের ওয়েবসাইটটি ভেঙে গেছে It এটি অন্য কারও ত্রুটি ছিল and এবং আমরা এর স্রষ্টার সাথে একটি বাগ লগ করেছি wait অপেক্ষা ছাড়া আমরা এটি করার কিছুই করতে পারি না We আমরা আপনাকে আপডেট রাখব" "

    "আমাদের ওয়েবসাইটটি ভেঙে গেছে এবং আমরা তা অবিলম্বে এটি ঠিক করতে সক্ষম হয়েছি।"


0

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


0

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

হুইলটির পুনরায় উদ্ভাবন করা খারাপ নয়, অলস লোকেরা কঠোর পরিশ্রম এড়ানোর জন্য করা বিবৃতি। এমনকি কাঠামোর লেখকরা পুনরায় উদ্ভাবন করেন; পুরো .NET ফ্রেমওয়ার্কটি সিওএম যা দিচ্ছে তা করার জন্য পুনর্বিন্যাস করা হয়েছিল।


0

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

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

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

প্রশ্নের আমার আসল উত্তর: কেবল দুটি পরিস্থিতিই চাকাটিকে পুনরায় উদ্ভাবন করা খারাপ জিনিস:

  1. যদি সত্যিই এটির প্রয়োজন না হয়
  2. এটি যদি অন্য লোকটি করে থাকে যখন আপনি থাকতে পারেন

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


0

"একটি চাকা পুনরায় উদ্ভাবন" সম্পর্কে যুক্তিগুলি প্রায়শই একটি লাইব্রেরি ব্যবহার করার জন্য পছন্দ করার ভুল প্রসঙ্গে ব্যবহৃত হয় তবে এটি খুব কমই একই জিনিস thing

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

নতুন বিমূর্ততা সর্বদা ঘটছে। তাদের চাকার সাথে তুলনা করা শক্ত hard এটি আরও একটি নতুন কন্ট্রোল ডিভাইসের মতো এবং ইতিমধ্যে-অত্যন্ত-জটিল-ডিভাইসটি চালানোর জন্য যা প্রয়োজন তার কাছে নতুন ম্যানুয়াল।

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

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

শেষ পর্যন্ত সঠিক সরঞ্জাম নির্বাচন করা একটি জটিল সিদ্ধান্ত এবং "চাকা পুনর্বিন্যাস" খুব সহায়ক দৃষ্টিকোণ নয়।


-1

আমি এ সম্পর্কে একটি সামান্য নিবন্ধ লিখেছি - http://samueldelesque.tumblr.com/post/77811984752/ কি-re - inventing - the - wheel - can - teach - you

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

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