সফ্টওয়্যার ডিজাইন: এটি দ্রুত তৈরি করুন বা এটি ভালভাবে তৈরি করুন?


38

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

প্রসঙ্গে, আমি একটি ডেস্কটপ অ্যাপ্লিকেশন তৈরি করছি। আমি একমাত্র বিকাশকারী এবং আমার একটি দিনের চাকরি হওয়ার পরে আমি এই খণ্ডকালীন কাজটি করছি। এখন, কাজের জন্য, আমি কাজগুলি যথাযথভাবে করার চেষ্টা করি, অনুমতি নির্ধারণের সময়সূচী। তবে এই প্রকল্পটির জন্য, যা আমি প্রত্যাশা করি যেগুলি মানুষের কাছ থেকে প্রতিক্রিয়া পাওয়ার সাথে সাথে রূপটি প্রকাশ করবে, আমি নিশ্চিত নই যে এটি সঠিক পন্থা। আমি এই সপ্তাহে বেশ কয়েক ঘন্টা কাটিয়েছি একটি মডেল ভিউ নিয়ন্ত্রক ডিজাইন স্থাপনের জন্য মডেলটিতে পরিবর্তনগুলিকে দেখার জন্য। এটি সাধারণভাবে দুর্দান্ত, তবে আমি নিশ্চিত না যে ডেটা প্রদর্শন করার জন্য আমার একাধিক মতামত প্রয়োজন কিনা এবং আমি জানি যে অতিরিক্ত আর্কিটেকচার ছাড়াই জিনিসগুলি আরও দ্রুত প্রদর্শিত হতে পারতাম। এই প্রকল্পে ব্যয় করতে হতে পারে সপ্তাহে 10-15 ঘন্টা, আমার মনে হয় এমন কিছু তৈরিতে যুগে যুগে সময় লাগবে যা আমি ভাল সফ্টওয়্যার অনুশীলনগুলি অনুসরণ করি যদি আমি ডেমো করতে পারি। আমি জানি যে আমার ব্যবহারকারীরা জিতেছে ' আমি এমভিসি অভ্যন্তরীণভাবে ব্যবহার করেছি সেদিকে খেয়াল নেই, তারা কেবল এমন কিছু চায় যা তাদের সমস্যার সমাধান করে। তবে আমি এমন পরিস্থিতিতেও এসেছি যেখানে শর্ট কাটগুলি থেকে আপনি এত বেশি প্রযুক্তিগত debtণ নিয়েছেন যে কোডটি বজায় রাখা এবং এতে নতুন বৈশিষ্ট্য যুক্ত করা কেবল অবিশ্বাস্যরকমই কঠিন। আমি শুনতে শুনতে পছন্দ করি যে অন্যান্য লোকেরা এই জাতীয় সমস্যায় কীভাবে আসে।


10
"এটি করার সঠিক সময় নেই, তবে এটি করার সময় সবসময়ই আসে" "
স্কট হুইটলক

1
আপনি কীভাবে আর্থিক উপদেষ্টা বলেন যে কেবল debtণে যায় না? প্রযুক্তিগত debt
নিকোল

3
বাধ্যতামূলক
এক্সকেসিডি

@ আম্মকিউ আমাকে এতে মারধর করেছে।

1
স্টিভেন: আমার অভিজ্ঞতা অনুসারে, ভবিষ্যতের প্রয়োজনীয়তা প্রত্যাশিত (এবং ধারণাগতভাবে প্রস্তুত) সীমাতে পড়ার সময় সেই অনুমানটি ধারণ করে; তবে কখনও কখনও, একটি নতুন প্রয়োজনের জন্য কিছু "দূরত্বে স্পোকি ইন্টারঅ্যাকশন" দরকার যা সঠিক নকশায় প্রয়োগ করা আরও শক্ত, কারণ এই সমস্ত ঝরঝরে বিচ্ছিন্ন শ্রেণি, স্তর ইত্যাদি হঠাৎ করে এমনভাবে যোগাযোগ করা দরকার যে নকশার জন্য নকশা প্রস্তুত করা হয়নি। ।
ব্যবহারকারী 281377

উত্তর:


48

এটা ভাল বিল্ড

আপনি যদি বড় ছবিটির দিকে তাকান তবে এটি "দ্রুত" তৈরি করা একটি যৌক্তিক ভুল। এটি আপনাকে এটি সর্বদা সুন্দরভাবে তৈরি করা থেকে বিরত রাখবে এবং শেষ পর্যন্ত আপনি বাগ এবং মৌলিক আর্কিটেকচার ত্রুটিগুলি দ্বারা জর্জরিত হয়ে পড়বেন যা রিফ্যাক্টরিং প্রতিরোধ করে বা এমনকি অসম্ভবের সাথে নতুন বৈশিষ্ট্য যুক্ত করে তোলে।

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

অন্য কথায় (এটি যদি এককী করা চুক্তি না হয়), এটিকে দ্রুত নির্মাণ করা = এটি ধীর করে নির্মান করুন, এটি ভালভাবে তৈরি করুন = এটি দ্রুত তৈরি করুন


এছাড়াও "এটি ভালভাবে গড়ে তোলা" এবং আর্কিটেকচার ডিজাইন করার বিষয়ে উপলব্ধি করার জন্য গুরুত্বপূর্ণ কিছু বিষয় রয়েছে। তুমি জিজ্ঞেস করেছিলে...

... তবে এই ঝুঁকিটি চালানো যে আপনার নকশাটি বেশ তরল হওয়ায় এই সমস্ত অতিরিক্ত কোডটি ব্যবহার নাও করা যেতে পারে এবং প্রতিক্রিয়ার কারণে আপনি অন্যদিকে যেতে চান তবে আপনাকে এটিকে ফেলে দিতে হতে পারে?

এটি "আর্কিটেকচারের সময় ব্যয় করা" থেকে সত্যিকারের ঝুঁকি নয়। আর্কিটেকচার ডিজাইন জৈব হতে হবে । কোনও অংশের জন্য আর্কিটেকচার ডিজাইনের সময়টি ন্যায়সঙ্গত না হওয়া পর্যন্ত ব্যয় করবেন না। আর্কিটেকচারটি কেবলমাত্র আপনার প্রকল্পে পর্যবেক্ষণকৃত এবং নিশ্চিত হওয়া নিদর্শনগুলির বাইরে বিকশিত হওয়া উচিত।

সিস্টেম গেমস থেকে জন গল এর আইন :

স্ক্র্যাচ থেকে ডিজাইন করা একটি জটিল সিস্টেম কখনই কাজ করে না এবং এটিকে কাজ করতে প্যাচ করা যায় না। একটি কাজ সহজ সিস্টেম দিয়ে আপনি শুরু করতে হবে।


9
আমি যথেষ্ট উত্সাহ দিতে পারে না। আর একটি ভাল উদ্ধৃতি চাচা বব এর "দ্রুত যাওয়ার একমাত্র উপায় হ'ল ভাল করা"
ক্যাফজিক

1
+1 কারণ একবার আপনি এটি ভাল করে নিলে, আপনি সেই কোডটি আবার ব্যবহার করতে পারেন এবং পরবর্তী প্রকল্পে আবার যোগাযোগ করতে পারেন এবং এটি আরও দ্রুত হবে। ধুয়ে ফেলুন এবং এটি দ্বিতীয় প্রকৃতি না হওয়া পর্যন্ত পুনরাবৃত্তি করুন।
গ্যারি রোয়ে

4
আমার বাবার সম্মানে, "আপনি যদি প্রথমবার এটি অর্ধ-গাধা করেন, তবে আপনি যখন এটি ঠিক করতে ফিরে যান তখন আপনার কাজের পরিমাণ দ্বিগুণ হবে।"
মিঃ এন্ট

হি ... সূত্রটি আমাকে ভাবিয়ে তুলেছে: এটিকে ভালভাবে বিল্ড করুন = এটি দ্রুত তৈরি করুন = এটি ধীর গতিতে বিল্ড করুন। আমার ধারণা, সর্বশেষ "বিল্ড এটি দ্রুত" কম ব্যয় করা উচিত যা প্রযুক্তিগত debtণের ক্ষেত্রে। যেহেতু একটি ভাল তৈরি সিস্টেমে গড়ে তুলতে কম কাজ করা দরকার।
স্পোইক

@Spoike আমি সম্মত কিন্তু, যা এই ধারণার হয় "এটা ভাল বিল্ড = এটি দ্রুত গড়ে তুলতে পরে "। তাই অনেক পরিচালক কয়েক মাস গতি ছেড়ে দিতে চান না যা আসলে গতিটি পরে বাড়বে।
নিকোল

17

দ্রুত, তারপর ভাল

এটি আমার ব্যক্তিগত অভিজ্ঞতা থেকে প্রচুর বিভিন্ন পদ্ধতি ব্যবহার করে দেখে নেওয়া হয়েছে।

কেবলমাত্র দ্রুত কাজ করার (এবং প্রকাশ করা) সমস্যাটি হ'ল সাধারণত আপনি আপনার অ্যাপ্লিকেশনটিতে বৈশিষ্ট্যটি প্রয়োগ করবেন এবং এটি প্রকাশিত হওয়ায় আপনার প্রোগ্রামে মৌলিক পরিবর্তনগুলি করা খুব কঠিন। অন্তর্নিহিত আর্কিটেকচারের কোনও শব্দ না থাকায় আপনি দীর্ঘমেয়াদে খাড়া মূল্য পরিশোধ করেন, এটি কুইকস্যান্ডে র‌্যামস্কেল গড়ার মতো।

এটির কাজটি ভালভাবে করা প্রোগ্রামটি হ'ল আপনি অনেক সময় এবং কোড নষ্ট করছেন। এটি কোনও ব্লুপ্রিন্ট ছাড়াই একটি মেনশন তৈরির মতো। অ্যাপ্লিকেশন রাইটিং একটি শেখার প্রক্রিয়া এবং প্রায় (আমার অভিজ্ঞতায়) সামনে নকশা করা অসম্ভব। এর অর্থ আপনি প্রচুর রিফ্যাক্টরিং করবেন এবং আপনি যদি সমস্ত সময় "ভাল" লিখে থাকেন তবে আপনি প্রচুর কোড ফেলে দেবেন।

দ্রুত, তাহলে ভাল!

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

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

এইভাবে আপনি কোনও সাউন্ড আর্কিটেকচার সহ কোনও অ্যাপ্লিকেশনটি যথাসম্ভব দক্ষতার সাথে শেষ করতে পারেন, যাইহোক আমার অভিজ্ঞতাতে :)


2
+1 টি ইয়ে, আমি যোগ থাকব - পুনরাবৃত্ত পদ্ধতির ব্যবহার ..
pmod

আমি এই উত্তরের সাথে একমত এবং আমি রাতের সাথে একমত।
কিম জং উ

পুনরাবৃত্তির গতি পুনরাবৃত্তির গুণকে মারধর করে - স্ট্যাকএক্সচেঞ্জ অনুযায়ী তাদের - কিছু ভাল উদাহরণ সহ
কোডিংহরর.ব্লগ

10

এটি তৈরি করুন

দ্রুত সময়ে বাজারে আসা মানের চেয়ে গুরুত্বপূর্ণ

ভাল যদি মানের সময় বাজারের চেয়ে গুরুত্বপূর্ণ হয়


8

এটি দ্রুত তৈরি করলে আপনার স্বল্প-মেয়াদী সুবিধা এবং দীর্ঘমেয়াদী ক্ষতি হবে।

এটি ভালভাবে তৈরি করা স্বল্প সময়ের ক্ষতি হলেও দীর্ঘমেয়াদী সুবিধাগুলি বহন করবে।

এটিকে আরও ভালভাবে গড়ে তোলা ধৈর্য ও প্রজ্ঞার জন্য বলে তবে আপনাকে পুরস্কৃত করা হবে।

দ্রুত প্রোটোটাইপিং এবং নিক্ষেপকারী জিনিসগুলির জন্য এটির দ্রুত নির্মাণ করা ভাল। দীর্ঘমেয়াদী লক্ষ্যগুলি কেবল প্রথম থেকেই সঠিক মনোভাব দিয়ে অর্জন করা যায়।


5

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

এটি হতাশার সাথে ধীরে ধীরে হতে পারে। করার মতো জিনিসগুলি সঠিকভাবে করা মূল্যবান।


1
কেবলমাত্র "সুচিন্তিত" বিবৃতিটির যোগ্যতা অর্জন করার জন্য: এর অর্থ আপ-ফ্রন্ট সম্পর্কে চিন্তা করা নয় (এটি করা যায় না), তবে কোনও বৈশিষ্ট্যটি কোথাও টস না করে কীভাবে একীভূত করা যায় এবং এটি দিয়ে কী করা যায় তা চিন্তা করার জন্য কিছুটা সময় নেওয়া উচিত ।
ম্যাথিউ এম

5

এটি ভালভাবে বিল্ড করা = এটি দ্রুত তৈরি করা

শর্টকাটগুলি আপনার ঘন ঘন ঘন ঘন ঘন ঘন কামড় দেয় এবং আপনি ভাবেন। মাঝে মাঝে দুপুরের খাবারের আগেও।

আপনার প্রসঙ্গে; অবিলম্বে বিমূর্ততা না। YAGNI এ লেগে থাকুন এবং নকলটি সরিয়ে দিন। আপনি যখন দ্বিতীয়বার দেখেন তখন ভিত্তিক প্যাটার্নটি বাস্তবায়ন করুন কারণ আপনি ভাবেন যে ভবিষ্যতে আপনার একটি থাকতে পারে। যখন দ্বিতীয় দর্শনটি আপনার তৈরি বিমূর্তিটি পৌঁছায় তখন সাধারণত সেই প্রথম একক ঘটনাকে ঘিরে আপনি তৈরি করতে পারেন।


3

আপনি ইতিমধ্যে যদি জানেন যে আপনি কী করছেন, দ্রুত না করে যদি আপনি তা করেন

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

  1. এটাকে সফল কর.
  2. এটা সঠিক করুন. একে একে দ্বিতীয়বার তৈরি করার সুবিধা রয়েছে যে একবার এটি কাজ করার অভিজ্ঞতা অর্জনের পরে আপনি "ডান" আরও ভাল সংজ্ঞা দিতে পারবেন।

2

এটি ভালভাবে তৈরি করুন .. সর্বদা, তবে দ্রুত যাওয়ার মায়া দিন

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


+1, কেবলমাত্র যা প্রয়োজন তা তৈরি করুন।
নিকোল

1

আমি মনে করি এটি সর্বদা "ভাল নির্মিত" হওয়া উচিত। বাজারে সময় যদি বড় উদ্বেগ হয় তবে একটি বর্ধিত উন্নয়ন প্রক্রিয়াটি ব্যবহার করুন। সবচেয়ে খারাপ ক্ষেত্রে আপনার কাছে কম বৈশিষ্ট্যযুক্ত পণ্য রয়েছে তবে কমপক্ষে আপনার কাছে শিপ করার জন্য একটি উচ্চমানের পণ্য রয়েছে যা ভবিষ্যতের বৈশিষ্ট্য প্রকাশে বাড়ানো যেতে পারে।


1

ভারসাম্য

আপনার কোডটি পরিপূর্ণতার সাথে ইঞ্জিনিয়ার করা বা কোনও কোডকে এক মুহুর্তে ম্যাস আপ করা ব্যবহারিক নয়, তাই না? এটি সত্যই সঠিক ভারসাম্য সম্পর্কে। আমার মতে যে বিষয়টি গুরুত্বপূর্ণ তা হল আপনি কখন করবেন।

আমি মনে করি যে এখানে সবচেয়ে গুরুত্বপূর্ণ বিষয়টি হ'ল অ্যাপ্লিকেশনটির মূল, মৌলিক কাঠামোটি সত্যই ভাল নির্মিত built এয়ার টাইট। সময়সীমাবদ্ধতার উপর নির্ভর করে একবার তা অর্জন করা হয়, যদি আপনি সময়মতো সংক্ষিপ্ত হয়ে থাকেন তবে আপনি কিছু কোড একসাথে পেতে পারেন এবং পরে এটি পুনরায় ফ্যাক্টর করতে পারেন এবং আপনি সেই বিলাসবহুলটি বহন করতে পারেন কারণ আপনি ভিত্তিটি পেতে যত্ন নিয়েছিলেন ঠিক আছে, এবং এটি পুনরায় ফ্যাক্টর কোডে আঘাত করবে না।


সঠিক। সময় দেওয়ার অনুমতি অনুসারে এটি যথাসম্ভব ভাল তৈরি করুন।
jwenting

1

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


0

আমি প্রত্যাশা করি যা মানুষের কাছ থেকে প্রতিক্রিয়া পাবার সাথে সাথেই আকার ধারণ করবে

আপনি নিজেরাই সেরা বলেছেন:

তবে আমি এমন পরিস্থিতিতেও এসেছি যেখানে শর্ট কাটগুলি থেকে আপনি এত বেশি প্রযুক্তিগত debtণ নিয়েছেন যে কোডটি বজায় রাখা এবং এতে নতুন বৈশিষ্ট্য যুক্ত করা কেবল অবিশ্বাস্যরকমই কঠিন।

আপনি যদি সময়মতো সংক্ষিপ্ত হন, একই যুক্তি ব্যবহার করে আপনার নিয়োগকর্তার কাছ থেকে প্রকল্পটি শেষ করার জন্য আরও সময় জিজ্ঞাসা করতে ভয় পাবেন না। আমি নিশ্চিত তারা এটিকে আপনাকে দেবে। এটি বলার পরে, আমি বুঝতে পারি যে এটি হতাশার সাথে মাঝে মাঝে কোনও কিছুর জন্য এত পরিশ্রম করা অনুভব করতে পারে এবং খুব বেশি ফলাফল দেখাতে সক্ষম হয় না। তবে চিন্তা করবেন না, আপনি সেখানে পৌঁছে যাবেন, এবং এটি তৈরি করার সময় অবশ্যই এটির জন্য উপযুক্ত হবে।


0

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


0

এটি নির্মাণ ভাল । আপনার যদি সময় না থাকে তবে বৈশিষ্ট্য সেটটি হ্রাস করুন।

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


0

জিনিসগুলি কীভাবে দ্রুত কাজ করা, এবং কোডে শর্টকাট নেওয়া যেমন আপনার মতামতের সাথে মডেল লজিক মিশ্রিত করা, এনক্যাপসুলেশন ভেঙে দেওয়া - সাধারণ কোডের গন্ধ পাওয়া যায় তার উপরে কি মনোযোগ দেওয়া ভাল? অথবা, আপনি আরও আর্কিটেকচার তৈরির জন্য সময়কে সামনে রেখে আরও ভাল করছেন

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

যখন আর্কিটেকচারের কথা আসে, আমি এখনই সবচেয়ে সহজ একটিটি বেছে নেব যা এই মুহূর্তে আপনার সমস্যার সমাধান করে, এবং তারপরে সমস্যা দেখা দেওয়ার সাথে সাথে প্রসারিত হবে।

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

সুতরাং আমার নিজের বাড়ির উন্নয়ন প্রকল্পগুলির জন্য, আমি নিম্নলিখিত পদ্ধতির গ্রহণ করব: সহজতম সম্ভাব্য সমাধান তৈরি করুন যা এই মুহূর্তে আমি কাজ করছি যে সমস্যার সমাধান করে, তবে এটি ভালভাবে তৈরি করুন। এরপরে আরও জটিলতার প্রয়োজন হওয়ায় আমি সমাধানটি রিফ্যাক্টর করব। টিডিডি অনুসরণ করে অনুশীলনগুলি রিফ্যাক্টরিংকে নিরাপদ করে তোলে এবং কোডের গন্ধ এড়াতেও সহায়তা করে (যদি আপনি এনক্যাপসুলেশনটি ভঙ্গ করছেন তবে ভাল ইউনিট পরীক্ষা করা শক্ত)।

পেশাগতভাবে কাজ করার সময় আমি যে কৌশলটি গ্রহণ করি তা ঘটনাক্রমেও এটি। ;)


0

আমি আপনাকে সুপারিশ করব যে প্রথমে আপনাকে সফ্টওয়্যারটি দাঁড়ানো উচিত, প্রতিটি দিকটি coverেকে রাখা উচিত এবং প্রথমে সফ্টওয়্যারটি দাঁড়ানো উচিত এবং ধীরে ধীরে তারপরে সাজাতে এবং তার অভিনয়টি উন্নত করা উচিত


-1

আপনি সাধারণত এই দুটি প্রান্তের মাঝখানে থাকতে চান:

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

এটিকে দ্রুত তৈরি করুন = অকেজো সফ্টওয়্যার যা আসলে কেউ ব্যবহার করে না।


হা! একটি অকেজো সফ্টওয়্যার তৈরি করুন ...
21:25

নেতিবাচক ভোটের কোনও কারণ?
vz0
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.