ফ্রন্টএন্ড সহজ... যতক্ষণ না আপনি আসলে কিছু তৈরি করছেন

মানুষ মনে করে ফ্রন্টএন্ড ডেভেলপমেন্ট সহজ।

তারা বলে যেমন:

  • এটি কেবল একটি স্ক্রিন।
  • আসল কাজ ব্যাকএন্ড করে।
  • AI এটি তৈরি করতে পারে।
  • শুধু একটি কম্পোনেন্ট লাইব্রেরি ব্যবহার করলেই হয়।
  • এটি কেবল একটি চেকবক্স।

প্রত্যেক ফ্রন্টএন্ড ডেভেলপার জানে এই গল্পগুলোর শেষ কীভাবে হয়। একটি সাধারণ চেকবক্স আপনার পুরো সপ্তাহ নষ্ট করে দিতে পারে।

আমার গত চাকরিতে আমি এটি কঠিনভাবে শিখেছি। আমরা একটি অডিটিং ফার্মের জন্য একটি প্ল্যাটফর্ম তৈরি করছিলাম। একজন প্রজেক্ট ম্যানেজার ড্যাশবোর্ডে একটি চেকবক্স চেয়েছিলেন। তিনি বলেছিলেন এটি করতে মাত্র দুই ঘণ্টা লাগবে। এমনকি তিনি এটি টেস্ট করার জন্য আমাকে পুরো একদিন সময় দিয়েছিলেন।

আমি ভেবেছিলাম তিনি উদারতা দেখাচ্ছেন। আমি ভুল ছিলাম।

চেকবক্সটি কেবল একটি সাধারণ UI এলিমেন্ট ছিল না। এর কিছু কঠোর নিয়ম ছিল:

  • এটি কেবল নির্দিষ্ট ধরণের ক্লায়েন্টদের জন্য দেখা যায়।
  • এটি কেবল তখনই দেখায় যদি প্রজেক্টটি একটি নির্দিষ্ট আয়ের সীমা (revenue threshold) পূরণ করে।
  • এটি কেবল তখনই দেখা যায় যদি প্রজেক্টটি সক্রিয় থাকে।
  • এটি কেবল তখনই দেখায় যদি কনসালট্যান্ট প্রজেক্টটির মালিক হন।

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

  • নতুন API এন্ডপয়েন্ট।
  • জটিল অ্যাপ্রুভাল ওয়ার্কফ্লো।
  • এরর হ্যান্ডলিং এবং লোডিং স্টেট।
  • নতুন নোটিফিকেশন সিস্টেম।

পরিস্থিতি আরও খারাপ হলো। ম্যানেজাররা চাইতেন না রিকোয়েস্টগুলো অলসভাবে পড়ে থাকুক। ম্যানেজার অনলাইনে না থাকলে চেকবক্সটি লুকিয়ে রাখতে হতো। আমাদের রিয়েল-টাইম প্রেজেন্স ট্র্যাকিং (real-time presence tracking) ইমপ্লিমেন্ট করতে হয়েছিল।

হঠাৎ করেই আমরা ম্যানেজ করতে শুরু করলাম:

  • ডাটাবেস মডেল।
  • সকেট কানেকশন।
  • রিয়েল-টাইম ডাটা সিনক্রোনাইজেশন।
  • রেস কন্ডিশন (race conditions)।

আমরা একটি মাত্র চেকবক্সের জন্য ত্রিশ ঘণ্টা ব্যয় করেছি।

আমরা একটি বক্স আঁকতে ত্রিশ ঘণ্টা ব্যয় করিনি। আমরা বিজনেস রুলসগুলোকে কোডে রূপান্তর করতে ত্রিশ ঘণ্টা ব্যয় করেছি।

ফ্রন্টএন্ডের জটিলতা আসে মানুষের প্রয়োজনীয়তা থেকে। আপনাকে সমাধান করতে হবে:

  • অফলাইন ইউজার।
  • একই সময়ে একাধিক ক্লিক।
  • পারমিশন পরিবর্তন।
  • ধীরগতির API রেসপন্স।
  • ডিসকানেক্টেড সকেট।

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

কঠিন অংশটি পিক্সেল নিয়ে নয়। কঠিন অংশটি হলো বক্সটি আসলে কী বোঝায় তা বোঝা।

ফ্রন্টএন্ড হলো মানুষের বিশৃঙ্খলাকে এমন কিছুতে রূপান্তর করা যা মানুষ ক্লিক করতে পারে। সেরা কাজগুলো দেখতে সহজ মনে হয় কারণ কেউ একজন সেটিকে সহজ করার জন্য দিনরাত পরিশ্রম করেছেন।

আপনার "সহজ চেকবক্স" এর গল্পটি কী?

উৎস: https://dev.to/mdazlaanzubair/frontend-is-easy-until-you-actually-build-something-20fb