আমি আজ একবার দেখার সিদ্ধান্ত নিয়েছি ক্লাউডফ্লেয়ারের নতুন ওআউথ সরবরাহকারী গ্রন্থাগারযা তারা স্পষ্টতই নৃতাত্ত্বিক ক্লড এলএলএম দিয়ে প্রায় সম্পূর্ণ কোড করেছে:
এই গ্রন্থাগারটি (স্কিমা ডকুমেন্টেশন সহ) মূলত এর সাহায্যে লেখা হয়েছিল ক্লডনৃতাত্ত্বিক দ্বারা এআই মডেল। ক্লাউডের আউটপুটটি ক্লাউডফ্লেয়ার ইঞ্জিনিয়ারদের দ্বারা সুরক্ষার জন্য এবং মানগুলির সাথে সম্মতি দেওয়ার জন্য যত্ন সহকারে মনোযোগ দিয়ে পুঙ্খানুপুঙ্খভাবে পর্যালোচনা করেছিলেন। প্রাথমিক আউটপুটে অনেকগুলি উন্নতি করা হয়েছিল, বেশিরভাগই আবার ক্লডকে অনুরোধ জানিয়ে (এবং ফলাফলগুলি পর্যালোচনা করে)। ক্লডকে কীভাবে অনুরোধ করা হয়েছিল এবং এটি কোন কোড তৈরি করেছে তা দেখতে কমিটের ইতিহাস দেখুন।
(…)
জোর দেওয়া, এটি “ভাইব কোডড” নয়। প্রতিটি লাইন পুরোপুরি পর্যালোচনা করা হয়েছিল এবং প্রাসঙ্গিক আরএফসিগুলির সাথে ক্রস-রেফারেন্স করা হয়েছিল, সেই আরএফসিগুলির সাথে পূর্ববর্তী অভিজ্ঞতা সহ সুরক্ষা বিশেষজ্ঞরা। আমি ছিলাম চেষ্টা করছি আমার সংশয়কে বৈধতা দেওয়ার জন্য। আমি নিজেকে ভুল প্রমাণ করে শেষ করেছি।
আমি সম্প্রতি নিজেই এই ধরণের এলএলএম-সহায়তায় “এজেন্ট” কোডিং একটি ন্যায্য পরিমাণ করেছি। আমিও ওউথের একজন বিশেষজ্ঞ, লিখেছি কর্মে এপিআই সুরক্ষাবছরের পর বছর ধরে আইইটিএফ -তে ওআউথ ওয়ার্কিং গ্রুপে ছিল এবং এর আগে প্রযুক্তি নেতৃত্ব এবং তারপরে সুরক্ষা স্থপতি ছিল নেতৃস্থানীয় ওআউথ সরবরাহকারী। (আমার থেকে এআইতে পিএইচডিও রয়েছে বুদ্ধিমান এজেন্ট গ্রুপতবে এটি বর্তমান মেশিন লার্নিং ক্রেজের পূর্বাভাস দেয়)। সুতরাং এটি কী উত্পাদিত হয়েছিল তা দেখতে আমি আগ্রহী ছিলাম, তাই আজ কিছু সভায় বসে আমি একবার দেখে নিয়েছিলাম। দাবি অস্বীকার: আমি কেবল একটি সংক্ষিপ্ত চেহারা পেয়েছি এবং কয়েকটি বাগ উত্থাপন করেছি, এটি একটি সম্পূর্ণ পর্যালোচনা দেওয়া হয়নি।
প্রাথমিকভাবে, আমি কোড দ্বারা মোটামুটি মুগ্ধ হয়েছিল। কোডটি সমস্ত একটি ফাইলে রয়েছে, যা এলএলএম কোডিং থেকে আমার অভিজ্ঞতা থেকে সাধারণ, তবে এটি এলএলএমএস একটি কোডবেস এবং কিছু প্রকৃত শ্রেণি এবং উচ্চ-স্তরের সংস্থা ছিটিয়ে দিতে পছন্দ করে এমন অনেক অকেজো মন্তব্য ছাড়াই মোটামুটিভাবে কাঠামোগত।
কিছু পরীক্ষা রয়েছে, এবং সেগুলি ঠিক আছে, তবে আমি সমালোচনামূলক প্রমাণের পরিষেবার জন্য যা আশা করব তার জন্য তারা ভীষণভাবে অপর্যাপ্ত। প্রত্যেকটি অবশ্যই পরীক্ষা করা উচিত এবং অবশ্যই স্পেসের মধ্যে থাকা উচিত নয়, এটি যতটা অপব্যবহারের ক্ষেত্রে আপনি ভাবতে পারেন তার উল্লেখ না করা, তবে এর কোনওটিই আমি যা দেখতে পাচ্ছি তা থেকে এখানে নেই: কেবল বেসিক কার্যকারিতা পরীক্ষা। (কোডটি সম্পর্কে একটি অভিশাপ চেহারা থেকে, আমি বলতে পারি যে সম্ভবত বেশ কয়েকটি অনুপস্থিত অবশ্যই চেক রয়েছে, বিশেষত বৈধকরণ পরামিতিগুলির আশেপাশে, যা বর্তমান বাস্তবায়নে বেশ হালকা)।
আমার জন্য প্রথম যে জিনিসটি আটকে ছিল তা হ’ল আমি “ইওলো কর্স” বলতে পছন্দ করি এবং এটি দেখতে অস্বাভাবিক কিছু নয়: কর্স শিরোনামগুলি সেট করা যা কার্যকরভাবে একই উত্স নীতিটি প্রায় সম্পূর্ণরূপে সমস্ত উত্সের জন্য অক্ষম করে:
private addCorsHeaders(response: Response, request: Request): Response {
// Get the Origin header from the request
const origin = request.headers.get('Origin');
// If there's no Origin header, return the original response
if (!origin) {
return response;
}
// Create a new response that copies all properties from the original response
// This makes the response mutable so we can modify its headers
const newResponse = new Response(response.body, response);
// Add CORS headers
newResponse.headers.set('Access-Control-Allow-Origin', origin);
newResponse.headers.set('Access-Control-Allow-Methods', '*');
// Include Authorization explicitly since it's not included in * for security reasons
newResponse.headers.set('Access-Control-Allow-Headers', 'Authorization, *');
newResponse.headers.set('Access-Control-Max-Age', '86400'); // 24 hours
return newResponse;
}
এমন কিছু মামলা রয়েছে যেখানে এই ধরণের জিনিসটি ঠিক আছে, এবং তারা কেন এটি করেছে সে সম্পর্কে আমি বিশদভাবে দেখিনি, তবে এটি আমার কাছে সত্যিই সন্দেহজনক দেখাচ্ছে। আপনার প্রায় কখনও এটি করা উচিত নয়। এই ক্ষেত্রে, কমিট লগ প্রকাশ করে যে এটি সেই মানুষই এলএলএম নয়, এই পদ্ধতির বিষয়ে সিদ্ধান্ত নিয়েছিল। তারা কমপক্ষে শংসাপত্রগুলি সক্ষম করেনি, তাই সমস্যাগুলির ধরণগুলি সাধারণত ফলাফল হয় সম্ভবত প্রয়োগ করবেন না।
শিরোনামের কথা বলছি, এর একটি স্বতন্ত্র অভাব রয়েছে স্ট্যান্ডার্ড সুরক্ষা শিরোনাম উত্পাদিত প্রতিক্রিয়া মধ্যে। এর মধ্যে অনেকগুলি এপিআইগুলিতে প্রযোজ্য নয়, তবে কিছু কিছু করে (এবং প্রায়শই আশ্চর্যজনক উপায়ে)। উদাহরণস্বরূপ, আমার বইতে আমি কীভাবে একটি জেএসএন এপিআইয়ের বিরুদ্ধে এক্সএসএসের দুর্বলতা কাজে লাগাতে পারি তা দেখাই: আপনি সু-গঠিত জেএসএনকে ফিরিয়ে দেওয়ার অর্থ এই নয় যে কোনও ব্রাউজার এটি কীভাবে ব্যাখ্যা করবে। আমি ক্লাউডফ্লেয়ার কর্মীদের সাথে পরিচিত নই, তাই সম্ভবত এটি আপনার জন্য এগুলির কিছু যুক্ত করেছে তবে আমি কমপক্ষে একটি আশা করব X-Content-Type-Options: nosniff
বহনকারী টোকেনগুলি ব্যবহার করা সুরক্ষার জন্য শিরোনাম এবং এইচটিটিপি কঠোর পরিবহন সুরক্ষা।
কোডটিতে কিছু অদ্ভুত পছন্দ রয়েছে এবং এমন জিনিস যা আমাকে বিশ্বাস করতে পরিচালিত করে যে জড়িত লোকেরা আসলে ওআউথ স্পেসগুলির সাথে মোটেই পরিচিত নয়। উদাহরণস্বরূপ, এই প্রতিশ্রুতিবদ্ধ পাবলিক ক্লায়েন্টদের জন্য সমর্থন যুক্ত করেতবে অবনমিত “অন্তর্নিহিত” অনুদানটি প্রয়োগ করে তা করে (OAuth 2.1 এ সরানো হয়েছে)। পাবলিক ক্লায়েন্টদের সমর্থন করার জন্য এটির একেবারে প্রয়োজন নেই, বিশেষত যখন বাকী কোডগুলি পিকেসিই প্রয়োগ করে এবং যেভাবেই কর্সকে শিথিল করে। কমিট বার্তাটি পরামর্শ দেয় যে তারা জানতেন না যে পাবলিক ক্লায়েন্টদের সমর্থন করার জন্য কী প্রয়োজন ছিল এবং তাই ক্লডকে জিজ্ঞাসা করেছিলেন এবং এটি অন্তর্নিহিত অনুদানের পরামর্শ দেয়। অন্তর্নিহিত অনুদানটি একটি বৈশিষ্ট্য পতাকার পিছনে লুকানো আছে, তবে সেই পতাকাটি কেবল অনুরোধটি পার্স করার জন্য সম্পূর্ণ al চ্ছিক সহায়ক পদ্ধতিতে চেক করা হয়েছে, টোকেন জারির পর্যায়ে নয়।
আরেকটি ইঙ্গিত যে এটি ওউথের সাথে পরিচিত লোকেরা লিখেছেন তা হ’ল তাদের রয়েছে ভুলভাবে প্রয়োগ করা বেসিক এথ সাপোর্ট। এটি OAuth সরবরাহকারী বাস্তবায়নের ক্ষেত্রে একটি ক্লাসিক বাগ কারণ লোকেরা (এবং এলএলএম, স্পষ্টতই) ধরে নেয় যে এটি কেবল ভ্যানিলা বেসিক আথ, তবে ওআউথ প্রথমে ইউআরএল-এনকোডিংয়ের একটি মোড় যুক্ত করেছে (কারণ চার্সেটগুলি একটি গোলযোগ)। তেমনিভাবে, আপনার ক্লায়েন্টের গোপনে কোলন থাকলে কোডটিতে একটি গৌণ বাগ রয়েছে (স্পেক দ্বারা অনুমোদিত)। আমি মনে করি না যে এর মধ্যে একটিই এই নির্দিষ্ট বাস্তবায়নের জন্য বিষয়, কারণ এটি সর্বদা ক্লায়েন্ট আইডি এবং গোপনীয়তা উত্পন্ন করে এবং তাই ফর্ম্যাটটি নিয়ন্ত্রণ করতে পারে তবে আমি বিস্তারিতভাবে দেখিনি।
আরও মারাত্মক বাগ হ’ল যে কোডটি টোকেন আইডি তৈরি করে তা শব্দ নয়: এটি পক্ষপাতদুষ্ট আউটপুট উত্পন্ন করে। এটি একটি ক্লাসিক বাগ যখন লোকেরা এলোমেলোভাবে এলোমেলো স্ট্রিং তৈরি করার চেষ্টা করে এবং এলএলএম এটি প্রথম প্রথম প্রতিশ্রুতিতে স্পট করে যতদূর আমি দেখতে পাচ্ছি। আমি এটি শোষণযোগ্য বলে মনে করি না: এটি টোকেনগুলির এনট্রপি হ্রাস করে, তবে নিষ্ঠুর পক্ষে যথেষ্ট নয়। তবে এটি কিছুটা এই ধারণাটিকে মিথ্যা দেয় যে অভিজ্ঞ সুরক্ষা পেশাদাররা এআই-উত্পাদিত কোডের প্রতিটি লাইন পর্যালোচনা করেছেন। যদি তারা তা করে এবং তারা এটি মিস করে, তবে তারা এলএলএমের যোগ্যতার উপর নির্ভর করে। (আমি মনে করি না তারা করেছে: প্রতিশ্রুতিবদ্ধ ইতিহাস অনুসারে, একজন বিকাশকারীর কাছ থেকে প্রথম দিনে সরাসরি 21 টি কমিট ছিল, কোনও কোড পর্যালোচনার কোনও চিহ্ন নেই)।
টোকেন স্টোরের জন্য এনক্রিপশন বাস্তবায়নের বিষয়ে আমার সংক্ষিপ্ত চেহারা ছিল। আমি বেশিরভাগ ডিজাইন পছন্দ করি! এটা বেশ স্মার্ট। কমিট বার্তাগুলি থেকে, আমরা দেখতে পাচ্ছি যে ডিজাইনটি মানব প্রকৌশলীদের কাছ থেকে এসেছে, তবে আমি বাস্তবায়নে বেশ মুগ্ধ হয়েছি। এটা মূল্য প্রতিশ্রুতিবদ্ধ বার্তা পুনরুত্পাদন এখানে এই কাজ থেকে, যা পছন্দসই কোডটি প্রয়োগ করতে ক্লাউডের সাথে ইঞ্জিনিয়ারের মিথস্ক্রিয়া দেখায়:
ক্লডকে এনক্রিপ্ট করা প্রপসগুলি সংরক্ষণ করতে বলুন।
প্রম্পট: আমি `অনুদান` এবং` টোকেন` রেকর্ডগুলিতে সঞ্চিত `প্রপসগুলি এনক্রিপ্ট করতে চাই। এটি এনক্রিপ্ট করা উচিত যাতে ডিক্রিপ্ট করার জন্য আপনার একটি বৈধ টোকেন প্রয়োজন। সময়ের সাথে সাথে একাধিক বৈধ টোকেন রয়েছে বলে এটি কিছুটা জটিল: এখানে অনুমোদনের কোড, রিফ্রেশ টোকেন (যা ঘোরানো) এবং স্বতন্ত্র অ্যাক্সেস টোকেন রয়েছে। আমরা বারবার পুনরায় এনক্রিপ্ট করতে চাই না `প্রপস` পরিবর্তে, আমাদের প্রতিসাম্য কী সহ একবারে এনক্রিপ্ট করা উচিত এবং তারপরে আমাদের প্রতিটি টোকেনের জন্য সেই কীটি “মোড়ানো” সংরক্ষণ করা উচিত, যখন টোকেনটি বৈধ। সমস্ত ক্রিপ্টোগ্রাফি প্রয়োগ করতে দয়া করে ওয়েবক্রিপ্টো ব্যবহার করুন।
ক্লড ভুল ট্র্যাকটি শুরু করেছিল আমাকে উপলব্ধি করে আমি একটি গুরুত্বপূর্ণ নকশা বিবেচনা ভুলে গেছি:
প্রম্পট: একটি জিনিস আমি নোট করতে ভুলে গেছি: `তালিকাভুক্তকারী ()` হেল্পার ফাংশনটি আর `প্রপস` ফিরিয়ে দিতে সক্ষম হবে না, কারণ এটির সাথে এটি নির্ধারণের জন্য কোনও টোকেন নেই। এটি ঠিক আছে: `প্রপস` কেবলমাত্র অনুমোদিত এপিআই অনুরোধের ভিত্তিতে অ্যাপটিতে সরবরাহ করা দরকার। আমাদের অনুদানের সংকীর্ণ উপস্থাপনা ফিরিয়ে আনতে আমাদের আসলে `তালিকাবদ্ধকরণকারী ()` পরিবর্তন করা উচিত। এই মুহুর্তে এটি স্টোরেজ থেকে পুরো অনুদানের রেকর্ডটি ফেরত দেয়, তবে আমাদের কেবলমাত্র এটি কেবল `আইডি`,` ক্লায়েন্টআইডি`, `ইউজারআইডি`,` স্কোপ`, `মেটাডেটা, এবং` ক্রেডিট্যাট` ফিরিয়ে দেওয়া দরকার। আমাদের কোনও টোকেন আইডি বা কোড চ্যালেঞ্জের তথ্য ফেরত দেওয়ার দরকার নেই।
ক্লড একটি বড় ত্রুটি সহ সুন্দর কোড তৈরি করেছে।
প্রম্পট: আপনি টোকেনগুলির জন্য কীগুলি মোড়ানোভাবে একটি সুরক্ষার ত্রুটি রয়েছে: আপনি টোকেনের একটি শা -256 হ্যাশ মোড়কের মূল উপাদান হিসাবে ব্যবহার করেছেন। যাইহোক, SHA-256 হ’ল আমরা কীভাবে “টোকেন আইডি” গণনা করি। এই নির্মাণের সাথে, কেউ কেবল টোকেন আইডি ব্যবহার করে কীগুলি মোড়ানো কীগুলির পাশাপাশি সঞ্চিত ব্যবহার করে কীগুলি মোড়ক করতে সক্ষম হবে, সুতরাং সমস্ত কীগুলি তুচ্ছভাবে আবদ্ধ হতে পারে। এটি ঠিক করার জন্য, মোড়কের জন্য মূল উপাদানটি গণনা করার সময় আমাদের হ্যাশটি আলাদাভাবে গণনা করতে হবে, এমনভাবে যাতে টোকেন আইডি থেকে কী উপাদানগুলি অর্জন করা সম্ভব হয় না।
ক্লোড প্রাথমিকভাবে মূল উপাদানটি অর্জনের জন্য 100,000 পুনরাবৃত্তির সাথে পিবিকেডিএফ 2 ব্যবহার করে স্যুইচ করে এটি সমাধান করার চেষ্টা করেছিলেন।
প্রম্পট: 100000 পুনরাবৃত্তি সহ PDKDF2 খুব ব্যয়বহুল হবে। এটি গুরুত্বপূর্ণ হবে যদি ইনপুটটি একটি নিম্ন-এনট্রপি পাসওয়ার্ড ছিল তবে উচ্চ-এন্ট্রপি ইনপুটটির জন্য প্রয়োজনীয় নয়। পিবিকেডিএফ 2 এর পরিবর্তে, আসুন একটি স্ট্যাটিক এইচএমএসি কী (যা মূলত “লবণ” হিসাবে কাজ করে) সহ একটি SHA-256 এইচএমএসি ব্যবহার করি।
ক্লড প্রযোজনা কোড যা এইচএমএসি কী হিসাবে “oauth_provider_wrapping_key_hmac_v1” স্ট্রিং ব্যবহার করে।
প্রম্পট: এটি দেখতে বেশ ভাল দেখাচ্ছে, তবে পারফরম্যান্সের জন্য, আসুন মোড়ক_কি_এইচএমএসি_কে 32-বাইট অ্যারে হিসাবে সংজ্ঞায়িত করি, যাতে এটি এনকোড করতে বা ডান আকারে নেমে যেতে না হয় (যেমন এইচএমএসি বৃহত্তর কীগুলির জন্য করবে)। এখানে এইচএমএসি কী হিসাবে ব্যবহার করার জন্য আমি এলোমেলোভাবে বেছে নিয়েছি হেক্সের 32 বাইট রয়েছে: 22 7 ই 26 86 8 ডি এফ 1 ই 1 6 ডি 80 70 ইএ 17 97 5 বি 47 এ 6 82 18 এফএ 87 28 এ ডি 85 বি 5 1 ডি 4 এ ডি 96 সিএ সিএ 43
(এনবি: এখানে একটি হার্ড-কোডেড “কী” ব্যবহার করা এখানে ঠিক আছে: এটি মূলত একটি নির্দিষ্ট এলোমেলো লবণ সহ এইচকেডিএফ-এক্সট্র্যাক্ট, যা এই ব্যবহারের ক্ষেত্রে ভাল এবং ড্যান্ডি। আমরা এখানে যে সুরক্ষা সম্পত্তিটি খুঁজছি তা হ’ল দুটি ব্যবহারগুলি হ’ল দুটি ব্যবহারগুলি হ’ল স্বতন্ত্র এলোমেলো ওরাকলসযার জন্য এটি একটি শালীন নকশা। আমি সম্ভবত টোকেন আইডি তৈরির জন্য একই পদ্ধতির ব্যবহার করব, অন্য একটি লবণ সহ, তবে এটি একটি ছোটখাটো টুইট)।
এই ইন্টারঅ্যাকশনটি যা দেখায় তা হ’ল আপনি যখন কোনও এলএলএমের সাথে ইন্টারঅ্যাক্ট করেন তখন আপনার কতটা জ্ঞান আনতে হবে। মাঝখানে উত্পাদিত “একটি বড় ত্রুটি” ক্লোড সম্ভবত এই ইঞ্জিনিয়ারটির চেয়ে ক্রিপ্টো কোডের সাথে কম অভিজ্ঞ কেউ স্পষ্টভাবে দেখা যায়নি। এবং তেমনিভাবে, অনেক লোক সম্ভবত প্রতিক্রিয়া হিসাবে পিবিকেডিএফ 2 -তে যাওয়ার অদ্ভুত পছন্দ নিয়ে প্রশ্ন তুলেনি: এলএলএমএস সত্যিই কোনও বাস্তব উপায়ে “কারণ” নয়।
বন্ধ চিন্তা
ওউথ লাইব্রেরির প্রথম কাটা হিসাবে, এটি খারাপ নয়, তবে আমি এটি ব্যবহারের জন্য সত্যই সুপারিশ করব না তবুও। আমার অভিজ্ঞতায়, এটি একটি সঠিক এবং তৈরি করা খুব কঠিন সুরক্ষিত ওআউথ সরবরাহকারী বাস্তবায়ন, এবং এটি স্পষ্টভাবে এই (এখনও) এর মধ্যে যাওয়ার চেয়ে বেশি সময় এবং মনোযোগের দাবিদার। আইএমও, এটি কোনও এলএলএম পরীক্ষা করার জন্য উপযুক্ত ডোমেন নয়। ফোর্গারকে, আমরা ছিল শত আমাদের OAuth বাস্তবায়নে সুরক্ষা বাগের, এবং এটি থাকা সত্ত্বেও হাজার হাজার 100 প্রতিটি প্রতিশ্রুতি, হুমকি মডেলিং, টপ-ফ্লাইট সেস্ট/ডাস্ট এবং বিশেষজ্ঞদের দ্বারা অত্যন্ত সতর্কতার সাথে সুরক্ষা পর্যালোচনায় স্বয়ংক্রিয় পরীক্ষাগুলি চালিত হয়। আপনার জন্য একটি ছিটকে দেওয়ার জন্য আপনি এলএলএম পেতে পারেন এই ধারণাটি গুরুতর নয়।
এই প্রকল্পের প্রতিশ্রুতিবদ্ধ ইতিহাস একেবারে আকর্ষণীয়। ইঞ্জিনিয়ারদের ডিজাইনের অনেকগুলি দিক সম্পর্কে স্পষ্টতই একটি ভাল ধারণা ছিল এবং এলএলএম শক্তভাবে নিয়ন্ত্রণ করা হয়েছিল এবং শালীন কোড তৈরি করা হয়েছিল। (এলএলএমগুলি এই পদ্ধতিতে কোডিংয়ে একেবারে ভাল)। তবে এটি এখনও কিছু বোকা জিনিস করার চেষ্টা করেছিল, যার মধ্যে কিছু ইঞ্জিনিয়ারদের হাতে ধরা পড়েছিল, কিছু ছিল না। আমি নিশ্চিত কিছু এখনও সেখানে আছে। এটি কি কোনও মানুষ যদি এটি করে থাকে তার চেয়েও খারাপ? সম্ভবত না। এই একই ভুলগুলির অনেকগুলিই জনপ্রিয় স্ট্যাক ওভারফ্লো উত্তরগুলিতে পাওয়া যায়, এটি সম্ভবত যেখানে ক্লোড সেগুলি থেকেও শিখেছিলেন। তবে আমি অনেক ইঞ্জিনিয়ারকে জানি যারা আরও ভাল কাজ করত, কারণ তারা অত্যন্ত পরিশ্রমী। এর মতো কোডের যত্ন সহকারে মনোযোগ প্রয়োজন। বিশদ বিষয়। হ্যাঁ, এটি কিছুটা “ভাইব-কোডেড” হিসাবে আসে, যা রিডমে যা বলে তা সত্ত্বেও, তবে আমি মানুষের দ্বারা লিখিত অনেকগুলি কোডও দেখি। এলএলএম বা না, আমাদের একটি বিষ্ঠা দিতে হবে।
আমি এলএলএমএসের সাথে আমার অভিজ্ঞতা থেকে যা কেড়ে নিচ্ছি এবং এই প্রকল্পটি পর্যালোচনা করা থেকে এটি হ’ল: আপনার যে ধরণের কোডটি আপনি আশা করছেন যে এটি কোনও ভাল কাজ করেছে কিনা তা বিচার করতে সক্ষম হওয়ার জন্য আপনি যে ধরণের কোডটি আশা করছেন তার মাথায় আপনার একটি স্পষ্ট ধারণা থাকা দরকার। প্রায়শই, এটি দেখতে কেমন তা সত্যিই জানতে এবং আপনার জড়িত “সিস্টেম 2” চিন্তাভাবনা (সুতরাং আপনি কেবল জিনিসগুলি করার সর্বোত্তম উপায় হিসাবে আপনার সামনে যা আছে তা গ্রহণ করছেন না), আপনাকে প্রথমে একটি তৈরি করা দরকার। তুচ্ছ জিনিসগুলির জন্য যেখানে আমি এটি কীভাবে সম্পন্ন হয়েছে তা সত্যিই যত্নশীল না, তবে নিশ্চিত, আমি কোনও এলএলএমকে যা পছন্দ করে তা করতে দিতে পেরে খুশি। তবে গুরুত্বপূর্ণ বিষয়গুলির জন্য আমার যৌনসঙ্গম এথ সিস্টেমআমি নিজেই এটি নিজেই করব এবং আমি নিশ্চিত যে আমি সত্যিই এটি সম্পর্কে চিন্তা।