গতিশীল ভাষায় আপনি কীভাবে নেভিগেট এবং রিফ্যাক্টর কোড লিখেছেন?


14

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

যাইহোক, গতিশীল ভাষায় একটি বৃহত সফ্টওয়্যার তৈরি করার সময় তিনটি জিনিসই আমি সত্যিই খারাপ:

  • কোড নেভিগেট
  • আমি যে জিনিসগুলি ব্যবহার করছি তার ইন্টারফেস সনাক্তকরণ enti
  • দক্ষতার সাথে রিফ্যাক্টরিং

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

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

আমি নিশ্চিত যে এই সমস্যাগুলির জন্য কার্যকারিতা রয়েছে। পাইথন, রুবি বা জাভাস্ক্রিপ্টে আপনি কীভাবে দক্ষতার সাথে কাজ করবেন?


পাইডেভের নামকরণের বৈশিষ্ট্যগুলি এখনও পর্যন্ত আমার জন্য দুর্দান্ত কাজ করেছে।

উত্তর:


3

কোড নেভিগেট

ভিআইএম এর চেয়ে ভাল সম্পাদক পান।

আমি কোমোডো এডিট ব্যবহার করি।

আমার মনে হচ্ছে স্মৃতিতে আমাকে আরও অনেক প্রতিশ্রুতিবদ্ধ হতে হবে

ভাল. ভাবনা ভাল। আমি দেখতে পেয়েছি যে "শেখার" শেষ পর্যন্ত "স্মৃতি" বাড়ে।

ইন্টারফেসগুলি সনাক্ত করার জন্য ক্রমাগত "গ্রেপ" এবং কোডটি পড়ুন।

এটি সাধারণ। আপনি যদি তাদের স্মরণ করতে না পারেন, তবে তারা খুব জটিল, তাই না? সরল করার সময়।

সহজ তৈরি করা শক্ত। তবে যখন আপনার মনে রাখতে সমস্যা হয়, এটি খারাপ ডিজাইনের একটি লক্ষণ।

আমি গ্রেপ ব্যবহার করি এটা আমার জন্য কাজ করে. আমার কমোডো সম্পাদনায় প্রচুর সুন্দর অনুসন্ধান রয়েছে। নোটপ্যাড ++ করে না

আমি যে জিনিসগুলি ব্যবহার করছি তার ইন্টারফেস সনাক্তকরণ enti

ডক স্ট্রিংস এবং help()ফাংশনটির কাজ। আমি তাদের ব্যবহার। দৈনিক।

দক্ষতার সাথে রিফ্যাক্টরিং ... এটি আমার ইউনিট পরীক্ষার মানের উপর অত্যন্ত নির্ভরশীল হয়ে ওঠে।

এটা কোন খবর নয়। স্থির ভাষায়ও এটি সর্বদা সত্য ছিল।

একটি অচল ভাষায়, আমরা প্রায়শই অলস হয়ে ধরে ধরেই থাকি - এটি যতক্ষণ সংকলিত হয় - এটি সম্ভবত কাজ করার সম্ভাবনা রয়েছে। এটি সুস্পষ্টভাবে মিথ্যা, তবে আমরা অলস হই।


আমি নিশ্চিত যে এই সমস্যাগুলির জন্য কার্যকারিতা রয়েছে।

এগুলি "সমস্যা" নয় এবং "workaround" প্রয়োজন হয় না require


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

"অবজেক্টের ধরণ জানেন না"? সত্যিই। আমি যখন কোনও সামগ্রীর ক্লায়েন্ট ডিজাইন করি তখন আমি জানি যে আমি কী ধরণের ডিজাইন করেছি।

আমি যখন কোনো সেবা, একাধিক ক্লায়েন্ট দ্বারা ব্যবহৃত সংজ্ঞায়িত, "সঠিক" টাইপ না প্রাসঙ্গিক যখন আমি একটি সংজ্ঞায়িত প্রয়োজন ইন্টারফেস আছে quack()এবং feathers()

পরিশেষে, আমার যখন একটি সূক্ষ্ম সমস্যা হয় তখন বিরল ক্ষেত্রে "সঠিক" টাইপ নির্ধারণ করার জন্য আমার কাছে রিড-এক্সিকিউট-প্রিন্ট-লুপ এবং অন্যান্য সরঞ্জাম রয়েছে। আমি প্রতিদিন এটিই ব্যবহার করি।

>>> x = some_mystery_factory( some, args )
>>> type(x)
>>> dir(x)

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

আপনি প্রত্যাশিত প্যারামিটার অর্ডারটিও জানেন না। কোনও আইডিইর পক্ষে সেখানে সহায়তা করা শক্ত মনে হচ্ছে।

এটি খুব একটা বোঝায় না। help()কাজ করে।

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


6
আমার মনে হচ্ছে আমি যুক্তি করতে পারি যে স্মৃতিশক্তি নিয়ে আরও বাধ্য করা আপনার চিন্তাভাবনার কম ক্ষমতা দেয় ...
নিকোল

@ রেনেসিস: ইন্টারফেসে কোনও ধরণের প্যাটার্ন বা সিস্টেম থাকলে স্মরণশক্তি দুষ্ট নয়।
এস.লট

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

পুনরায়: ডক স্ট্রিং, আপনি যখন বস্তুর ধরণটি জানেন তখন সেগুলি ঠিক থাকে তবে প্রায়ই আপনি তা করেন না এবং আপনাকে এটি সন্ধান করতে হবে।
ফিলিপ বিউডোইন

1
গ্রার ... ভিমের চেয়ে ভাল সম্পাদক আর নেই: P
এন্ট্রি


1

- এখানে একটা কোম্পানী JetBrains - ReSharper, TeamCity এবং ধারণা লেখক। তারা সম্প্রতি গতিশীল ভাষাগুলি দেখতে শুরু করেছে এবং ইতিমধ্যে পাইথন, পিএইচপি এবং রুবির জন্য তাদের সরঞ্জামগুলি প্রকাশ করেছে।

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

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