# কোড

> আপনার কম্পিউটারের একটি প্রজেক্টে Dvina দিয়ে কোড লিখুন, প্রতিটি পরিবর্তন পর্যালোচনা করুন, তারপর চ্যাট থেকেই কমিট করে পুল রিকোয়েস্ট খুলুন।

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

## শুরু করার আগে

কোড Mac, Windows ও Linux-এ Dvina ডেস্কটপ অ্যাপের অংশ। আলাদা করে কিছু ইনস্টল করতে হয় না। অন্তত একটি কম্পিউটারে Dvina থাকতে হবে; অন্য যেকোনো ডিভাইস থেকে কাজ শুরু করা ও তার অগ্রগতি দেখা যায়।

ডেস্কটপ অ্যাপ পেতে [Dvina ডাউনলোড ও ইনস্টল করুন](/docs/use-dvina/get-started/install) দেখুন।

## একটি প্রজেক্ট খুলুন

প্রজেক্ট হলো আপনার কম্পিউটারের একটি ফোল্ডার: একটি কোড রিপোজিটরি বা সাধারণ ফোল্ডার।

1. ডেস্কটপ অ্যাপে Dock খুলুন এবং প্রজেক্টের সারিটি (**প্রজেক্ট**) বেছে নিন।
2. একটি ফোল্ডার বা কোড রিপোজিটরি বেছে নিতে **খুলুন…** বেছে নিন, অথবা এই কম্পিউটারে নতুন ফোল্ডার তৈরি করতে **নতুন প্রজেক্ট…** বেছে নিন।

নতুন প্রজেক্ট তৈরি করার সময় **Git রিপোজিটরি তৈরি করুন** চালু করুন। এতে প্রতিটি পরিবর্তনের ইতিহাস থাকবে, যাতে Dvina-এর সম্পাদনা পূর্বাবস্থায় ফেরানো যায়।

আপনি যে প্রজেক্ট বেছে নেন, চ্যাট সেই প্রজেক্টেই কাজ করে। কোড প্রজেক্টের ক্ষেত্রে Dock-এ তার ব্রাঞ্চও দেখা যায়।

## কী কাজ চান তা জানান

আপনি কী চান তা বলুন, যেমন "CSV এক্সপোর্টে সঠিক তারিখ ব্যবহার করো"। Dvina আপনার কম্পিউটারে এটি একটি টাস্ক হিসেবে চালায়, আর আপনি কথা চালিয়ে যেতে বা আরও টাস্ক শুরু করতে পারেন। একাধিক টাস্ক একই রিপোজিটরিতে কাজ করতে পারে এবং কোনটি আগে কমিট করবে, তা নিজেদের মধ্যে ঠিক করে নিতে পারে।

কোড লেখার আগে Dvina প্রজেক্টের পাশাপাশি তার সঙ্গে সম্পর্কিত তথ্যও পড়ে: এটি আপনার আগের চ্যাট ও ফাইলগুলো খুঁজে দেখে, যাতে কাজের কারণগুলোও বিবেচনায় থাকে। এটি আপনার প্রজেক্টের AGENTS.md বা CLAUDE.md-এর নির্দেশনাও অনুসরণ করে।

## পরিবর্তনগুলো পর্যালোচনা করুন

প্রতিটি টাস্কের উত্তর তার পরিবর্তনগুলোসহ টাস্কের নামে একটি কার্ডে আসে, যেখানে **পর্যালোচনার জন্য প্রস্তুত** লেখা থাকে।

- **কী পরিবর্তন হয়েছে দেখুন:** পাশের প্যানেলে প্রতিটি ফাইলের পরিবর্তন দেখতে **পরিবর্তন** বেছে নিন। **ফাইল** থেকে প্রজেক্টের ফাইলগুলো ঘুরে দেখতে পারেন।
- **একটি ধাপের পরিবর্তন ফিরিয়ে নিন:** যে উত্তরে ফাইল পরিবর্তন হয়েছে, তার নিচে কতগুলো ফাইল পরিবর্তন হয়েছে তা লেখা লাইনটি বেছে নিন। তারপর **পূর্বাবস্থায় ফেরান** বেছে নিয়ে **এই ধাপটি পূর্বাবস্থায় ফেরাবেন?** নিশ্চিত করুন। ফাইলগুলো সেই ধাপের আগের অবস্থায় ফিরে যাবে, তবে তার পরে করা পরিবর্তনগুলো থাকবে।

## কমিট করুন এবং একটি পুল রিকোয়েস্ট খুলুন

1. টাস্কের কার্ডে **কমিট** বেছে নিন।
2. **পরিবর্তনগুলো কমিট করুন**-এ আপনার ব্রাঞ্চে যে ফাইলগুলো কমিট হবে, সেগুলোর তালিকা এবং প্রস্তাবিত **শিরোনাম** ও **বার্তা** দেখানো হয়। **কমিট** বেছে নিন। কিছুই পুশ করা হয় না।
3. একটি পুল রিকোয়েস্ট খুলতে **পুশ করুন এবং PR তৈরি করুন** বেছে নিন। Dvina প্রথমে বর্তমান ব্রাঞ্চ পুশ করে, তারপর পুল রিকোয়েস্ট খোলে। কমিট না করা ফাইলগুলো এতে অন্তর্ভুক্ত হয় না।

পুল রিকোয়েস্টের জন্য আপনার নিজের Git সাইন-ইন ব্যবহার করা হয়। Dvina এটি GitHub বা GitLab-এ খোলে; অন্য কোনো হোস্ট হলে আপনার ব্রাউজারে সেই হোস্টের নতুন পুল রিকোয়েস্ট তৈরির পৃষ্ঠা খোলে। কাজটি শেষ হলে **PR দেখুন** বেছে নিন।

## অনুমোদন

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

> [!IMPORTANT]
> আপনি না বলা পর্যন্ত কিছুই পুশ করা হয় না। আপনার প্রোজেক্ট আপনার কম্পিউটারের একটি ফোল্ডার, আর Git দিয়ে Dvina-এর করা প্রতিটি পরিবর্তন আগের অবস্থায় ফিরিয়ে নেওয়া যায়।

## সিমুলেটর বা এমুলেটরে পরীক্ষা করুন

ডেস্কটপ অ্যাপে Dvina এই কম্পিউটারে আপনার অ্যাপ পরীক্ষা করতে পারে, ঠিক যেভাবে আপনার ব্যবহারকারীরা সেটি ব্যবহার করবেন: ব্রাউজারে, Mac-এর iOS Simulator-এ, অথবা Mac, Windows বা Linux-এর Android Emulator-এ।

1. Dock খুলে **ডিভাইস** লেখা সারিটি বেছে নিন।
2. **এই ডিভাইস**-এর অধীনে **ব্রাউজার**, **iOS Simulator** বা **Android Emulator** বেছে নিন।

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

ব্রাউজার দেখাতে বা লুকাতে Mac-এ <kbd>⌘</kbd> <kbd>⇧</kbd> <kbd>B</kbd> অথবা Windows ও Linux-এ <kbd>Ctrl</kbd> <kbd>Shift</kbd> <kbd>B</kbd> চাপুন। আপনি দেখছেন না এমন কোনো পেনে Dvina কাজ করার সময় **ডিভাইস** সারিতে একটি বিন্দু দেখা যায়।

### Dvina-কে একটি ডিভাইস ব্যবহার করতে দিন

Dvina প্রথমবার কোনো সিমুলেটর বা এমুলেটর ব্যবহার করার সময় অনুমতি চায়, যেমন **Dvina-কে iPhone 17 Pro ব্যবহার করতে দেবেন?**। Dvina এর স্ক্রিন দেখতে পায়, তাই সেখানে আপনার আসল অ্যাকাউন্টগুলোতে সাইন ইন করবেন না। **অনুমতি দিন** বা **প্রত্যাখ্যান করুন** বেছে নিন। ডিভাইস আপনার উত্তর মনে রাখে, তাই অন্য চ্যাটে আবার অনুমতি চাওয়া হয় না। আপনি অনুমতি না দেওয়া পর্যন্ত পেনে **Dvina-কে এটি ব্যবহার করতে দিন** বিকল্পটি দেখানো হয়।

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

নিজে ডিভাইসটি ব্যবহার করতে **নিয়ন্ত্রণ নিন** বেছে নিন। আপনার ট্যাপ ও কী প্রেস ডিভাইসে পাঠানো হবে। আপনি **হোম**, আর Android-এ **পেছনে** ও **সাম্প্রতিক অ্যাপ** চাপতে পারবেন। কাজ শেষ হলে **নিয়ন্ত্রণ ফিরিয়ে দিন** বেছে নিন, আর Dvina কাজ চালিয়ে যাবে।

### iOS Simulator সেট আপ করুন

iOS Simulator সেট আপ করা না থাকলে, এর সারিটি **iOS Simulator সেট আপ করুন** চেকলিস্ট খুলবে। প্রতিটি ধাপ শেষ হলে সেটিতে স্বয়ংক্রিয়ভাবে টিক চিহ্ন পড়বে, এমনকি আপনি অন্য কোথাও ধাপটি সম্পন্ন করলেও।

1. **Xcode ইনস্টল করুন:** **App Store খুলুন** বেছে নিন। Xcode বিনামূল্যে পাওয়া যায় এবং এর আকার প্রায় 7 GB; ইনস্টল হয়ে গেলে একবার খুলুন।
2. **Xcode নির্বাচন করুন:** **কমান্ড কপি করুন** বেছে নিয়ে Terminal-এ চালান। এতে আপনার পাসওয়ার্ড চাওয়া হয়, তাই Dvina কখনো আপনার হয়ে এটি চালায় না।
3. **iOS সিমুলেটর যোগ করুন:** Xcode-এ Settings › Components-এ গিয়ে iOS ডাউনলোড করুন, অথবা Terminal-এ কমান্ডটি চালান।
4. **একটি ডিভাইস তৈরি করুন:** **একটি iPhone তৈরি করুন** বেছে নিন। কিছুই ডাউনলোড করা হয় না।

### Android Emulator সেট আপ করুন

Android Emulator সেট আপ করা না থাকলে, এর সারিটি **Android এমুলেটর সেট আপ করুন** চেকলিস্ট খুলবে।

1. **Android Studio ইনস্টল করুন:** **Android Studio ডাউনলোড করুন** বেছে নিন। এমুলেটর চালানোর জন্য যা দরকার, এটি সেগুলো ইনস্টল করে; ইনস্টল হয়ে গেলে একবার খুলুন।
2. **এমুলেটর ও প্ল্যাটফর্ম টুল যোগ করুন:** টার্মিনালে কমান্ডটি চালান, অথবা Android Studio › SDK Manager থেকে সেগুলো যোগ করুন।
3. **হার্ডওয়্যার অ্যাক্সেলারেশন চালু করুন:** Windows ও Linux-এ কমান্ডটি নিজে চালান, কারণ এতে আপনার পাসওয়ার্ড বা একজন অ্যাডমিনিস্ট্রেটর দরকার হয়। এরপর Linux-এ সাইন আউট করে আবার সাইন ইন করুন, অথবা Windows-এ রিস্টার্ট করুন। Mac-এ এই ধাপে কিছু করতে হয় না।
4. **একটি সিস্টেম ইমেজ যোগ করুন:** টার্মিনালে কমান্ডটি চালান, অথবা Android Studio › SDK Manager থেকে একটি যোগ করুন। এটি একটি বড় ডাউনলোড।
5. **একটি এমুলেটর তৈরি করুন:** **একটি এমুলেটর তৈরি করুন** বেছে নিন। কিছুই ডাউনলোড করা হয় না।

আপনার অ্যাডমিন সিমুলেটর বন্ধ করে রাখলে, সারিগুলোতে **আপনার অ্যাডমিন বন্ধ করে রেখেছেন** লেখা থাকে।

## যেকোনো জায়গা থেকে কাজ করুন

ফোন বা ওয়েব থেকে আপনার চ্যাটে কাজটি করতে বলুন। Dvina আপনার কম্পিউটারের প্রজেক্টে কাজটি করে, আর পরিবর্তনগুলো আপনার পর্যালোচনার অপেক্ষায় থাকে। আপনার কম্পিউটার চালু থাকতে হবে এবং Dvina খোলা থাকতে হবে।

## কখন ব্যবহার করবেন

- আপনি বাস্তব সফটওয়্যার নিয়ে কাজ করছেন এবং আগের সব তথ্য সঙ্গে রাখতে চান: নোট, সিদ্ধান্ত আর গত মাসের আলোচনাগুলো।
- আপনি ডেস্ক থেকে দূরে থাকাকালীন কোনো সমস্যা ঠিক করাতে চান।
- আপনি একসঙ্গে একাধিক পরিবর্তনের কাজ করাতে চান, যাতে প্রতিটি পর্যালোচনার জন্য প্রস্তুত থাকে।

## পরামর্শ

- **আপনার কাজের নিয়ম লিখে রাখুন।** আপনি কীভাবে কাজ করেন, তা AGENTS.md বা CLAUDE.md-এ লিখুন। Dvina তা অনুসরণ করবে।
- **ফোনে পরীক্ষা করুন।** অ্যাপ তৈরি করছেন? Dvina সেটি iPhone সিমুলেটর বা Android এমুলেটরে পরীক্ষা করতে পারে, আপনার ব্যবহারকারীরা যেভাবে ট্যাপ করে ব্যবহার করবেন, সেভাবেই। দেখুন [সিমুলেটর বা এমুলেটরে পরীক্ষা করুন](#test-on-a-simulator-or-emulator)।
- **ডেভেলপার নন?** ব্যবহারযোগ্য অ্যাপ ও পেজ তৈরি করতে বরং [তৈরি করুন](/docs/use-dvina/features/create) ব্যবহার করুন।

## সম্পর্কিত

- [প্রজেক্ট](/docs/use-dvina/features/projects)
- [কাজ](/docs/use-dvina/features/tasks)
- [কম্পিউটার ব্যবহার](/docs/use-dvina/features/computer-use)
- [ইনস্টল করুন](/docs/use-dvina/get-started/install)
