অনভিজ্ঞ ডেভেলপাররা সবচেয়ে খারাপ জিনিসগুলি কী সম্পর্কে ভাবতে ভুলে যায়? [বন্ধ]


15

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

অনভিজ্ঞ বিকাশকারীদের এমন কিছু ভুল রয়েছে যা আরও অভিজ্ঞ বিকাশকারীদের হতাশার কারণ হতে পারে?


1
আমি "চেকলিস্ট" এ যাওয়ার জন্য সুরক্ষাটিকে ঠিক কিছু বলব না - কোনও নকশার সমস্ত স্তরে সুরক্ষা বিবেচনা করতে হবে, উত্তরোত্তর হিসাবে যোগ করা হয়নি। সুরক্ষা বৈশিষ্ট্য! = সুরক্ষিত বৈশিষ্ট্য!
বিলি ওনিল

হতে পারে "চেকলিস্ট" ভুল জিনিসটি বোঝায়। আমি উন্নয়নের শেষে চিন্তা করার মতো জিনিসগুলির একটি তালিকা খুঁজছি না; আমি কৌতূহল করছি যে আপনি কোন অ্যাপ্লিকেশন বিকাশ করছেন সে হিসাবে কী বিষয়গুলি বিবেচনা করা উচিত । আমি কীভাবে আমার প্রশ্নটি পুনরায় সেট করতে পারি তার জন্য আপনার কি কোনও পরামর্শ আছে?
@mckinley

@ অ্যামকিনলে: তারপরে আপনার প্রশ্নটি "আমি কীভাবে একটি অ্যাপ্লিকেশন বিকাশ করব" - তবে উত্তরটি উত্তর দেওয়ার পক্ষে এই প্রশ্নটি খুব বিস্তৃত।
বিলি ওনিল

@ বিলি ওনিল: সবেমাত্র আমার প্রশ্ন সম্পাদনা করেছেন। এটি কি আরও অর্থবোধ করে?
আর্মকিনলে

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

উত্তর:


12

আমি নতুন বিকাশকারীদের ভুলে যাওয়া মূল বিষয়টি খুঁজে পেয়েছি যে আসল বিশ্বে তারা প্রায়শই একটি দলের অংশ হিসাবে কাজ করে। এটি নিজেকে হিসাবে দেখায় ..

  • কোডটি চেক করা যা বিল্ডটি ভেঙে দেয়
  • ইতিমধ্যে রয়েছে এমন কোডটি পুনরায় ব্যবহার করছেন না
  • প্রত্যেকের মতো একইভাবে কাজ করার পরিবর্তে জিনিসগুলি করা - যা রক্ষণাবেক্ষণ ব্যয় করে

তাদের কোডটি বিচ্ছিন্নভাবে স্ক্র্যাচ করার কথা নয়, তবে তারা আর বিচ্ছিন্ন হয়ে কাজ করছে না।


+1: মৌলিকভাবে, আপনার মুখোমুখি এই সমস্যাগুলি। জুনিয়র কোডার কোডিংয়ে দুর্বল হতে পারে তবে কিছু অভিজ্ঞ ব্যক্তি কোডিংয়েও দুর্বল। মূল পার্থক্য হ'ল এই জাতীয় আইটেম।
gbjbaanb

8
  1. পরীক্ষা।
  2. পরীক্ষা।
  3. আরও পরীক্ষা।
  4. উৎস নিয়ন্ত্রণ
  5. আপনি যে প্রোগ্রামটিকে টার্গেট করছেন তার জন্য উপযুক্ত ট্যাক্স।

উইন্ডোজে, এই করগুলি হ'ল :

  • উচ্চ ডিপিআই পরিবেশের সাথে লেনদেন করা
  • রোমিং ব্যবহারকারীর প্রোফাইলগুলি
  • দ্রুত ব্যবহারকারী স্যুইচিং
  • রিমোট ডেস্কটপ (যেমন আরডিপি কার্যকর হলে আপনি ডাবল বাফারিং ব্যবহার করতে চান না
  • হায়ারার্কিকাল স্টোরেজ ম্যানেজমেন্টের সাথে দুর্দান্ত খেলছে
  • একাধিক মনিটর
  • 64 বিট উইন্ডোজ

প্রায় প্রতিটি প্ল্যাটফর্মে আপনাকে মোকাবেলা করতে হবে:

  • ইউনিকোড
  • স্থানীয়করণ
  • পাওয়ার ম্যানেজমেন্ট

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

3
@ ওমকিনলে: আমি উত্স নিয়ন্ত্রণ আনার কারণটি হ'ল আপনি একাধিক বিকাশের শীর্ষস্থানীয় না হয়ে আপনি কার্যকরভাবে রিলিজ পরিচালনা করতে পারবেন না - এমনকি যদি আপনি কেবল একক বিকাশকারী হন। আপনি যখন রিলিজ এন-তে কাজ করছেন তখনও আপনাকে এন +1 প্রকাশের বিষয়ে ভাবতে হবে।
বিলি ওনিল

5

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

অন্য কোনও উপায়ে বলুন, আপনার সংস্থার দেওয়ানি কাটিয়ে যাওয়ার তিন মাস পরেও কোডটির নিখুঁত টুকরোগুলি সরবরাহ করা কারও পক্ষে মঙ্গলজনক নয়।

আমার মতে, এটি এমন একটি উল্লেখযোগ্য উপায়ে যা বিশ্ববিদ্যালয়ে পড়ানো অনুসারে বাস্তব বিশ্বে বিকাশ পৃথক হয়ে যায়।


3

সত্যই বিস্তৃত প্রশ্ন; বিস্তারিত উত্তর দেওয়া হল ... একাধিক বই।

আপনাকে শুরু করার জন্য এখানে একটি সাধারণ সিস্টেম-সংজ্ঞা চেকলিস্ট -

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

1

কারও ডেভলপমেন্ট মেশিনে সিস্টেমটির পরিষ্কার ডিকোপলিং এবং টার্গেট মেশিন যাতে কোনও "ওয়েল, এটি আমার মেশিনে কাজ করে" পরিস্থিতি না শেষ করে।

এবং আপনি কীভাবে আপনার উন্নয়ন মেশিনটি পুনর্গঠন করতে পারেন?

  • আপনি কি জানেন যে আপনার কোন প্যাকেজগুলির প্রয়োজন?
  • আপনার নিজের ডাটাবেসটি পুনর্নির্মাণের জন্য কি পুশ বাটন সমাধান রয়েছে?
  • উত্স কোডে অখণ্ডতা পরীক্ষা করার জন্য আপনার কাছে কি পুশ বাটন সমাধান রয়েছে?

1

আমি মনে করি এটি সম্ভবত নকশা - অর্থাত্ আপনি এটি করার আগে আপনি কী করতে যাচ্ছেন সে সম্পর্কে চিন্তাভাবনা করার পদ্ধতি।

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

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

স্পষ্টতই তিনি এটি কাজ করে চলেছেন তবে এটি পরিপাটি ছিল না, এবং এর অর্থ ইনস্টলেশন এবং রক্ষণাবেক্ষণ ঝামেলা হত।


1

আমি মনে করি সবচেয়ে বড় পার্থক্য কোডিং কৌশলটিতে। প্রত্যেকেরই কিছুটা ভিন্ন পদ্ধতি রয়েছে, তবে অনভিজ্ঞ ডেভেলপাররা কোড তৈরি করতে থাকে যে:

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

0

কারণ আপনি সবচেয়ে খারাপ জিনিস জিজ্ঞাসা করেছেন, তবে আমার উত্তরটি নিম্নরূপ:

  1. স্পাইওয়্যার, ম্যালওয়ার এবং ট্রোজান ভাইরাস থেকে ডেভলপমেন্ট মেশিনটি স্যানিটাইজ করার কথা ভুলে গেছেন।
  2. বিভিন্ন ভৌগলিক অবস্থানগুলিতে থাকা সুরক্ষিত স্টোরেজে নিয়মিত ব্যাকআপ সংরক্ষণের কথা ভুলে গিয়েছি।

0

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

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

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