আপনি এইমাত্র rails new
টাইপ করেছেন আপনার পরবর্তী প্রকল্পে। এখন কি? কোথায় শুরু করবেন? আপনি কি একক অ্যাপে সবকিছু লেখেন, নাকি সার্ভিস ওরিয়েন্টেড আর্কিটেকচারে যান? এই RSpec শেখার একটি ভাল সময়? আপনার কি আপনার সমস্ত ডেটা মডেল তৈরি করা শুরু করা উচিত, বা শেষ থেকে শেষ পর্যন্ত কাজ করা কয়েকটি অ্যাকশন পাওয়া উচিত? আপনাকে সামনে অনেক সিদ্ধান্ত নিতে হবে, এবং এটি হারিয়ে যাওয়া এবং বিলম্বিত হওয়া এবং হতাশ হওয়া সহজ এবং আপনার অ্যাপটি কখনই শেষ করবেন না।
এই সমস্যা অতি সাধারণ। এটি সামনের দিকে অনেকগুলি পছন্দ করার থেকে আসে, যখন আপনার কাছে ন্যূনতম পরিমাণ তথ্য থাকে আপনার একটি শিক্ষিত সিদ্ধান্ত নেওয়ার জন্য প্রয়োজন৷
সিদ্ধান্ত গ্রহণের উপর কনভেনশন
কনভেনশন ওভার কনফিগারেশন আমার প্রিয় রেল নীতি। রেলের আগে, আমি ফাইলগুলি কোথায় রাখব, ডাটাবেস টেবিলের নাম কী রাখব, কীভাবে সেগুলিকে অবজেক্টে ম্যাপ করতে হবে এবং আরও অনেক ছোটখাটো অর্থহীন সিদ্ধান্তগুলি খুঁজে বের করতে গিয়ে আটকে পড়তাম। আমি যদি পরে আবিষ্কার করি যে আমি ভুল ছিলাম তবে আমার মন পরিবর্তন করতে যতটা সময় লাগত তার চেয়ে আমি একটি দিক বেছে নিতে বেশি সময় ব্যয় করতাম।
একটি নতুন প্রকল্প শুরু করার সময় আপনি যে সিদ্ধান্তগুলির মুখোমুখি হন তার অনেকগুলি এইরকম হবে। কিন্তু আপনি এই সিদ্ধান্তগুলি প্রতিস্থাপন করতে পারেন যদি আপনি কনভেনশনগুলি ধার করেন৷ বই, ব্লগ বা স্টাইলগাইড থেকে। এবং আপনি নিজেকে অনেক সময়, চাপ এবং অর্থহীন বিতর্ক থেকে বাঁচাবেন।
আমি একটি নতুন অ্যাপ শুরু করার সময় এখানে কিছু নিয়মাবলী অনুসরণ করি:
-
কিছু সম্পূর্ণ বৈশিষ্ট্য দিয়ে শুরু করুন৷৷
আপনার অ্যাপটিকে আপনি এখনই ভাবতে পারেন এমন সবকিছু করতে হবে না। ছোট শুরু করুন, এবং সহজ শুরু করুন। আপনি যে এক বা দুটি বৈশিষ্ট্য ছাড়া বাঁচতে পারবেন না তা খুঁজে বের করুন এবং আপনার সমস্ত মনোযোগ প্রথমে সেগুলির উপর ফোকাস করুন৷ সেগুলিকে সত্যিই ভালভাবে তৈরি করুন৷ আপনার প্রয়োজন হলে আপনি পরে অন্যান্য জিনিস যোগ করতে পারেন। তবে সম্ভবত, যগ্নি। (এবং আপনি সাধারণত তা খুঁজে পাবেন যা আপনি মনে করুন আপনার গ্রাহকদের থেকে আপনার প্রয়োজন সম্পূর্ণ আলাদা আপনার প্রয়োজন মনে হয়)।
-
একটি অ্যাপ দিয়ে শুরু করুন৷৷
আমি জানি, আপনি একটি মনোরেল নির্মাণ এড়াতে চান। এবং দীর্ঘমেয়াদে রেল অ্যাপগুলিকে রক্ষণাবেক্ষণযোগ্য রাখার জন্য SOA কীভাবে সর্বোত্তম উপায় তা নিয়ে দেড় ডজন RailsConf আলোচনা করেছে। আপনার অ্যাপের কোন অংশগুলি স্বাধীন হতে পারে এবং প্রতিটি অংশের জন্য একটি পরিষেবা তৈরি করতে পারে তা কি আপনার চিন্তা করা উচিত নয়?
SOA একটি বড়, জটিল অ্যাপকে আলাদা করার একটি দুর্দান্ত উপায়। কিন্তু এটি একটি টন যোগ করে ব্যথা, এবং যতক্ষণ না নির্মাণ, রক্ষণাবেক্ষণ এবং পর্যবেক্ষণ পরিষেবার ব্যথা আপনার একচেটিয়া রেল অ্যাপে কাজ করার ব্যথাকে ছাড়িয়ে যায়, এটি করা মূল্যবান নয়। এবং আপনি যদি শুরু না করে থাকেন এখনও আপনার অ্যাপ লিখছেন, আপনি সেই ব্যথা অনুভব করছেন না। তাই, একটি অ্যাপ দিয়ে শুরু করুন।
-
আপনি আগে ব্যবহার করেছেন এমন একটি স্ট্যাক দিয়ে শুরু করুন৷৷
আপনি যদি এখনও একটি স্ট্যাক না জানেন, শুধু Omakase স্ট্যাক ব্যবহার করুন। তবে যেভাবেই হোক, আপনি রেলের সাথে আগে কখনও ব্যবহার করেননি এমন একটি পরীক্ষার কাঠামোকে একীভূত করতে অর্ধেক দিন ব্যয় করতে চান না। আপনি ভিসিআর এবং ওয়েবমকের মধ্যে সংস্করণের দ্বন্দ্বের বিরুদ্ধে লড়াই করতে চান না। আপনার পরীক্ষা বিপর্যস্ত হওয়া আপনার দোষ বা resque_unit এর কিনা তা আপনি খুঁজে বের করতে চান না। আপনি যদি একটি নতুন লাইব্রেরি ব্যবহার করে দেখতে চান, আপনি সবসময় এটি পরে যোগ করতে পারেন (বা একটি খেলনা প্রকল্পে এটি ব্যবহার করে দেখুন)।
শিপিং কঠিন। আপনি যদি আপনার অ্যাপটি শেষ করতে চান তবে আপনি পেতে পারেন এমন প্রতিটি সুবিধার জন্য আপনাকে স্ক্র্যাপ করতে হবে। তাই ছোট শুরু করুন, সহজ শুরু করুন এবং আপনি যা জানেন তা দিয়ে শুরু করুন।
কনভেনশন সবসময় নিখুঁত নাও হতে পারে, কিন্তু তারা আপনাকে শুরু করতে সাহায্য করবে। এবং শুরু করা সবচেয়ে কঠিন অংশ।
এরপর কি?
আপনি আপনার প্রকল্পে কোন নিয়মাবলী অনুসরণ করেন? এবং আপনি কোন বৈশিষ্ট্য বা পরীক্ষা দিয়ে শুরু করবেন তা আপনি কীভাবে সিদ্ধান্ত নেবেন? আমি পরের বার আমার চিন্তা শেয়ার করব, কিন্তু আমি আপনার কিছু শুনতে চাই।