লিগ্যাসি কোড নিয়ে কাজ করা কি একজনকে প্রোগ্রামার হিসাবে বিকশিত হতে সহায়তা করে? [বন্ধ]


18

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

আপনি কি কোনও বড় এবং সম্ভবত তেমন লিখিত অ্যাপ্লিকেশনটির সাথে আরম্ভ করার জন্য একটি ভাল অনুশীলন বিবেচনা করবেন?



1
অন্যের ভুল থেকে শিক্ষা নেওয়া অভিজ্ঞতা
অর্জনের

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

ভাল জাভা থাকতে পারে তবে জুনিয়র খুঁজে পাওয়া শক্ত। অন্যান্য বেশিরভাগ প্রাথমিক ভাষার ব্যাকগ্রাউন্ডের তুলনায় দেব আমি অভিজ্ঞতার ভিত্তিতে কল্পনা করব যা মূলত একটি ফ্রন্ট এন্ড ডেভেলপার হয়ে গেছেন জেনারালিস্ট, যাকে বেশ বিস্তৃত বিভিন্ন প্রান্তে প্রকাশ করা হয়েছে। আমি যে সমস্যাটি মনে করি তা হ'ল জাভা ভাষাটি নিখুঁতভাবে পরিষেবাযোগ্য তবে জাভা সংস্কৃতি হ'ল যথাসম্ভব নিরাপদ এবং দোষ-মুক্ত সব কিছু খেলতে।
এরিক রিপেন

উত্তর:


34

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

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

আপনি এমনকি এটিও শিখতে পারেন যে 15 বছর আগে কিছু লেখা হয়েছিল, এমন একটি ভাষায় যা আপনি ব্যবহার না করা পছন্দ করেন, এটি অগত্যা খারাপ নয়। এটি এতদূর পরেও সফলভাবে চলছে।

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


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

1
@ রোসপ্যাটারসন, যেহেতু এটি ব্যাংকিং, হ্যাঁ আশা করি তারা এখন সত্যই সঠিকভাবে কাজ করবে। যে কোনও স্থানে যদি কোনও পরীক্ষা না হয়, তবে ব্যাঙ্কিং এবং লিখন ইউনিটের পরীক্ষাগুলিতে আপনাকে সিস্টেমটি শিখতে সহায়তা করার জন্য একটি সহজ বিক্রয় হওয়া উচিত, পরিবর্তনের ঝুঁকি বিশাল।
এইচএলজিইএম

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

8

আমি মনে করি এটি কোনও নবজাতকের জন্য দুর্দান্ত অনুশীলন । অন্যের কাছ থেকে অভিজ্ঞতা শেখা খুব কার্যকর হতে পারে।

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


2
এটি কোডটি লেখার সময় আপনার যে পদ্ধতিটি ব্যবহার করা উচিত ছিল সেগুলি উপলব্ধ ছিল না তা বুঝতে আপনাকে সহায়তা করে।
এইচএলজিইএম

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

6

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

আপনি যদি চ্যালেঞ্জের জন্য মুখোমুখি হন তবে এই প্রকল্পের দিকে যান এবং আরও ভাল করুন।


2

এটি একেবারে আপনাকে সাহায্য করবে, তবে আপনার সতর্ক হওয়া দরকার।

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

এবং সেই প্রথম চাকরিতে খুব বেশি দিন থাকুন এবং আপনি সম্ভবত যথেষ্ট দক্ষতা শিখছেন না বা তৈরি করছেন না এবং সেখানে আটকে যাবেন।


2

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

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

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

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

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

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

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

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

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

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

দাবি অস্বীকার: এই পোস্টটি আমার মতামতের চেয়ে দীর্ঘকাল বেঁচে থাকবে তাই লবণের এক দানা দিয়ে এটি গ্রহণ করুন। আগামীকাল আমি লিগ্যাসি কোডটি পছন্দ করতে পারি! (এতে সন্দেহ).


1

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

সি ++ স্ট্রিমস এবং স্ট্রিংগুলির কয়েকটি পারফরম্যান্স ইস্যু এবং কয়েকটি এসটিএল বিশেষত্ব বাদ দিয়ে, আপনার এত প্রিয় প্রিপ্রোসেসর নির্দেশিকার ভিতরে কী আছে তা একবার দেখার জন্য এটি অবশ্যই একটি দুর্দান্ত অভ্যাস #include <string.h>। আপনি যদি বাস্তবায়নের পথে অনুসরণ করেন এবং একটি ইউনিক্স / লিনাক্স মেশিনে নিজেকে খুঁজে পান /usr/include/string.h(এবং libc বাস্তবায়ন উত্স পান, উদাহরণস্বরূপ, gnu.org থেকে ) এবং পড়েন strcmp.cবা strlen.cবা strtok.c, আমি বাজি ধরছি আপনি শুনতে পাচ্ছেন "কি সুন্দর বিশ্বের "ফাসিং ইন।

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

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