একটি বৃহত পিএইচপি প্রকল্পের পুনর্লিখনের পরিকল্পনা করার টিপস?


13

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

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

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


কেন আপনি এটি আবার লিখতে চান? যে জায়গাগুলিতে উন্নতির প্রয়োজন সেখানে এটি কেন রিফ্যাক্টর নয়? আপনি যখন স্ক্র্যাচ থেকে কোনও কিছু আবার লিখেন, সম্ভাবনাগুলি কি আপনি নতুনগুলির জন্য পুরানো সমস্যাগুলি দূর করেন eliminate

@ গর্ডন সম্ভবত এটি অত্যন্ত মারাত্মকভাবে লেখা হয়েছে যে এটি পুনর্নির্মাণ রিফ্যাক্টরিংয়ের চেয়ে ভাল।
ডানফোল্ড

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

উত্তর:


7

একটি বড় প্রকল্পের বিকাশ করার সময় আমি কিছু জিনিস নীচে দেখুন:

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

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

3 - আমি গিটটি ব্যাপকভাবে ব্যবহার করি। প্রতিটি বৈশিষ্ট্য একটি শাখা। আমি প্রতিটি বৈশিষ্ট্যটি সম্পূর্ণ করার পরে, আমি এটিকে আবার উন্নয়ন শাখায় একীভূত করি এবং পরবর্তী বৈশিষ্ট্যের জন্য একটি নতুন শাখা তৈরি করি।

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

5 - আমি যখন বিকাশ করছি, আমি যদি কোনও নতুন বৈশিষ্ট্য সম্পর্কে চিন্তা করি, আমি কেবল এটিকে পরিকল্পনার মধ্যে অন্তর্ভুক্ত করি যেখানে আমি মনে করি এটি সেরা ফিট করে আবার টাইমলাইনটি সামঞ্জস্য করবে।

আশা করি এটা কাজে লাগবে. মনে হচ্ছে আপনার সামনে একটি উত্তেজনাপূর্ণ প্রকল্প রয়েছে। শুভকামনা!


10

আপনি যদি একটি সম্পূর্ণ পুনর্লিখনের জন্য যাচ্ছেন, তবে আপনাকে পিএইচপি আদৌ ব্যবহার করা উচিত কিনা তাও বিবেচনা করবেন না কেন? প্রযুক্তির পরিবর্তন / আপগ্রেড হতে পারে আপনি আপনার নকশা / স্কেলাবিলিটি / রক্ষণাবেক্ষণ ইত্যাদি উন্নত করতে চান অনুঘটক ...


3
এছাড়াও, বিবেচনা করুন বিদ্যমান ফ্রেমওয়ার্কগুলি আরও একটি একক-ব্যবহার ফ্রেমওয়ার্ক তৈরি করার চেয়ে ভাল উপযুক্ত হতে পারে।
এস .লট

1
@ এস.লোট - যদি কোনও একক ব্যবহারের ফ্রেমওয়ার্কটি অন্য কোনওটির চেয়ে ভালভাবে তৈরি করার জন্য তৈরি করা হয় তবে কী ভুল?
বেনামে

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

@ এস.লোট: আমি নিজের মালিকানাধীন বেশ কয়েকটি সাইটের জন্য এটি লিখছি এবং এর নকশাটি এমনভাবে সেটআপ করা হচ্ছে যাতে অন্য কোনও কাঠামো না থাকে। আমি যদি কিছুক্ষণের জন্য এটি কিছুক্ষণের জন্য প্রকাশ করার পরিকল্পনাও করি না। পুনরায়: TheLQ: এটি আমার প্রথম চিন্তাগুলির মধ্যে একটি ছিল, তবে পিএইচপি নেট। নেট ব্যতীত অন্য কোনও ওয়েব ভাষার সাধ্য নেই। পাইথনকে অগ্রাধিকার দেওয়া হবে, তবে এটি সিপানেল সার্ভারে সেটআপ করা (যা দুঃখজনকভাবে ওয়েব হোস্টিংয়ের বিশ্বের অনেকটা মেকআপ), একটি ব্যথা।
জন

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

10

আমি পরিবর্তে ভারী ভারী চুল্লী পরামর্শ দেবো

আপনি এখানে যে সমস্যাটি অনুমান করছেন:

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

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

আপনি যদি এর পরিবর্তে refactor শুরু করেন, তখন আপনি করতে পারেন পৃথক টিকেট লেখেন এবং যে প্রকল্প ব্যবহার চালিয়ে যেতে পারেন। এখানে কৌশলটি হ'ল ছোট পরিবর্তনগুলি সনাক্ত করা যা সামগ্রিকভাবে আরও ভাল ডিজাইনের দিকে পরিচালিত করে।

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


আমি এটি আমলে নেব, ধন্যবাদ। এছাড়াও কেবল বিষয়গুলি পরিষ্কার করার জন্য - আমি এখনই এমভিসি ব্যবহার করছি।
জন

@ জন: হ্যাঁ, আমার উদাহরণটি একটি আদর্শ পৃষ্ঠাও ধরেছিল, কোনও কাঠামো নেই। তবে আমি মনে করি, মুতাটিস মুন্ডানিস, আমার উত্তরটি সে দ্বারা অবৈধ নয়। একটি বিষয় যা আমি উল্লেখ করি নি: রিফ্যাক্টর করা মজাদার। মোট বাজে কথা সুন্দর হয়ে উঠছে দেখে খুব লাভজনক :)
কেপলা

3

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

আপনি যদি পিএইচপি - জ্যাঙ্গো (পাইথন) এবং রেলস (রুবি) ব্যতীত অন্য কিছু শিখতে / ব্যবহার করতে ইচ্ছুক হন তবে প্রচলিত ওয়েব অ্যাপ্লিকেশনগুলির জন্য নেতৃস্থানীয় ফ্রেমওয়ার্কগুলি।

এটি অবশ্যই, যদি না আপনি অভিজ্ঞতা চান ফ্রেমওয়ার্কগুলি তৈরির - যা আমি যুক্ত করতে পারি, এটি বাজারে খুব কম মূল্যের (বিদ্যমান, সমর্থিত ফ্রেমওয়ার্কগুলি কীভাবে ভালভাবে ব্যবহার করতে হয় তা জানার চেয়ে)।


1

আমি যেটি ব্যবহার করে আনন্দিত তা হ'ল শিডিয়াল ট্র্যাকার হিসাবে রেডমাইন । আইটি ট্র্যাকের চেয়ে অনেক বেশি ব্যবহারকারী বান্ধব (আমার মতে) হওয়ার পাশাপাশি এই আইটেমগুলির প্রতিটি খুব ভালভাবে পরিচালনা করে।

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

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


1

ইস্যু ট্র্যাকিং সফ্টওয়্যার হিসাবে, JIRA দুর্দান্ত তবে এটি খুব ব্যয়বহুল। আরেকটি ভাল সরঞ্জাম যা আমি ব্যবহার করছি তা হল ইভেন্টাম।এটা বিনামূল্যে.

তবে সবচেয়ে গুরুত্বপূর্ণ অংশটি আপনার কী প্রয়োজন তা সম্পর্কে একটি ভাল ধারণা থাকা idea প্রথমে আপনাকে আপনার অ্যাপ্লিকেশনটির প্রয়োজনীয়তাগুলি সংগ্রহ করতে হবে, আপনি কী চান এবং সামগ্রিকভাবে সম্ভব হিসাবে সম্পূর্ণ সম্পর্কে বোধ করতে হবে।

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

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

আশা করি এটা সাহায্য করবে


জিরা কম ব্যবহারকারীর জন্য খুব সস্তা for ব্যয়টি 10 ​​ডলার এবং 10 ডলার দাতব্য প্রতিষ্ঠানে যায়।
ষাট ফুটারসুডে
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.