কনটেন্টে যান
জুলাই ২০, ২০২৬ · ফাউন্ডেশনস

ফাউন্ডেশনস: বিল্ডার যেভাবে চিন্তা করে

এই আর্টিকেলটি প্রকাশের সময়ের প্রোডাক্ট বর্ণনা করে। বর্তমান সক্ষমতার জন্য AI বিল্ডার এবং এজেন্ট টিম দেখুন।

ফাউন্ডেশনস: বিল্ডার যেভাবে চিন্তা করে

আপনি যে প্ল্যান এড়িয়ে যান, সেটাই পরে সমাধান করতে হয় এমন বিভ্রাট

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

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

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

এটা আসলে কোথায় কাজে লাগে

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

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

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

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

যেখানে সমালোচকদের যুক্তি আছে

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

ভেরিফিকেশনের ক্ষেত্রেও একই গল্প। একটি সম্পন্ন বিল্ড পাইপলাইন থেকে বের হয় না যখন জেনারেশন থামে; এটা বের হয় যখন স্বতন্ত্র ভেরিফায়ারগুলোর একটি সেট আর ব্লক করার মতো কিছু খুঁজে পায় না:

  • কোড রিভিউ
  • নিরাপত্তা
  • লিংক এবং SEO
  • অ্যাক্সেসিবিলিটি
  • কনফরম্যান্স
  • একটি প্রকৃত ব্রাউজার-ভিত্তিক রান

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

ভিত্তি
শেয়ার করুনXLinkedInFacebookRedditQuoraWhatsAppTelegramইমেইল
← সব পোস্ট