আমার কি কার্যকরী প্রোগ্রামিং ভাষা নেওয়া উচিত?


10

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

সুতরাং আমি অনুমান করি যে এটি তখন আমাকে আঘাত। আমি কি পরিবর্তে ফাংশনাল প্রোগ্রামিং করা উচিত?
সম্পাদনা: ফাংশনাল প্রোগ্রামিং সম্পর্কে আমার ভুল ধারণা থাকতে পারে।

বর্তমানে আমার পছন্দের ভাষাটি সি #, এবং আমি সি ++ ব্যাকগ্রাউন্ড থেকে এসেছি। আমি গেম ডেভেলপার হিসাবে কাজ করি তবে আমি বর্তমানে বেকার।

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

আমার কি কার্যকরী ভাষা বেছে নেওয়া উচিত? আমার ভয়ের একটি কারণ ভিজ্যুয়াল স্টুডিওর আরাম ত্যাগ করা।


ভিজ্যুয়াল স্টুডিও ছেড়ে যাওয়া যদি একটি চুক্তি-ব্রেকার হয়ে থাকে তবে আপনি এফ # চেষ্টা করতে পারেন।
অ্যাডাম শিখুন

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

আমি বর্তমানে বেকার ... এই প্রথম ঠিক করা উচিত নয়?
চাকরী

আমি কিছুক্ষণ ভিএস ছাড়াই কাজ করার চেষ্টা করব। আপনি খুঁজে পেতে পারেন যে খুব সংক্ষিপ্তভাবে কাজ করা মজাদার হতে পারে।
জাচারি কে

@ জোব, হ্যাঁ, তবে সম্প্রতি বেশ কয়েকটি খারাপ ঘটনা নিয়ে আমি আঘাত পেয়েছি :) আমি আমার পা ক্ষতিগ্রস্থ করেছি (ভাল আমি আমার পায়ের সাথে কোড করি না, তবে এখনও ...) আমার পুরানো কাজটি ছেড়ে যাওয়ার পরে একটি নতুন জন্য অনুসন্ধান করুন।
বিবৃতি

উত্তর:


5

হ্যাঁ

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


1
আমি এই কারণটি বহু কারণে বেছে নিয়েছি। @ জাচারি কে বলেছেন যে কোনও বিখ্যাত জায়গার বাক্স থেকে সরে এসে অন্য দৃষ্টিভঙ্গি থাকতে মজাদার হতে পারে। আমি ভীত হওয়া উচিত নয় নতুন কিছু চেষ্টা করতে। এটা দিনের শেষ নয়। হাস্কেল এমন একটি ভাষা যা এর আগে দু'বার আগে বিভিন্ন আলোচনায় আমার দৃষ্টি আকর্ষণ করেছিল। আমি চাই না জানি যদি আমি একটি কার্যকরী ভাষা প্রয়োজন কিন্তু @Toby অ্যালেন বলেছেন যেমন কিভাবে অন্য উপায়ে কাজ এবং আমি কিছু UnrealScript চেষ্টা আউট করার পর এই ব্যাপারে একমত এইজন্য একটি দুর্দান্ত উপায়। @ এম্মিউকিউটি পয়েন্টটি কিছুটা মিস করেছে তবে আমার প্রশ্নের খুব ভাল সংজ্ঞা আমার ছিল না। আমি এখনও তার উদ্বেগ পেতে।
বিবৃতি

সাহায্য করে আনন্দ পেলাম. মজা করুন
জ্যাচারি কে

14

পবিত্র * * * *. সিলভার বুলেট নেই। নিচে নামা. আরাম করুন, দীর্ঘ নিঃশ্বাস নিন।

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

আমি মনে করি না যে এখানে কেউ আপনার প্রয়োজনের জন্য কার্যকরী ভাষা আরও উপযুক্ত কিনা তা আপনাকে বলতে পারে। কারণ আপনি কী কাজ করছেন তা আমাদের জানাননি।


ঠিক আছে, আমি এখনই বিশেষ কিছু নিয়ে কাজ করছি না। আমি চাকরীর মাঝে আছি আমি / একজন গেম ডেভেলপার ছিলাম।
বিবৃতি

3
ওভাররেঞ্জাইনিং সম্পর্কিত এটি একটি বিপজ্জনক পরিস্থিতি। কোনও সময়সীমা নেই, কোনও ব্যাকলগ নেই, বিশদ নিয়ে আবেগ পাওয়ার জন্য খুব বেশি সময়।
ব্যবহারকারী 281377

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

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

2
এটি এখন ঠিক আছে যখন আপনি এখনই প্রতিটি সরঞ্জাম চেষ্টা করে দেখেন যে আপনি চাকরির মধ্যে রয়েছেন, তবে আমি ভয় করি যে জুতোটি খাপ খায় কিনা তা আমরা আপনাকে বলতে পারব না।
ব্যবহারকারী 281377

12

আপনি এফ # বাছাই করতে পারেন । এটি। নেট কার্যকরী ভাষা, যা আপনাকে ভিজ্যুয়াল স্টুডিও ব্যবহার করতে এবং আপনার .NET জ্ঞানের প্রচুর ব্যবহার করতে দেয় allow এটি অবশ্যই অ্যাসেমব্লিগুলি সি # অ্যাসেমব্লির সাথে নির্বিঘ্নে সংহত করেছে (আপনাকে সহজেই একটি প্রকল্পে সি #, সি ++ / সিএলআই এবং এফ # একত্রিত করার অনুমতি দেয়)। এফ # সমর্থনটি ভিএস প্রো বা আরও ভালর সাথে আসে, আমি নিশ্চিত নই যে এটি ডিফল্টরূপে সক্ষম হয়েছে কিনা I'm


আমি মনে করি VS2008 এফ # এর একটি অ্যাডন আছে, তবে এটি ভিএস 2010 এ ডিফল্ট।
apoorv020

এফ # এমনকি একটি বিনামূল্যে ভিএস শেল দিয়েও কাজ করে।
এসকে-লজিক

6

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

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


2

হ্যাঁ তোমার উচিৎ.

আপনি যদি হাস্কেলের মতো খাঁটি ভাষা চয়ন করেন তবে আপনি কেবল একটি নতুন ভাষা নয়, চিন্তার একটি নতুন পদ্ধতি শিখবেন। এটি আপনার প্রসেসরাল / ওও কাজের পরে আপনাকে সহায়তা করতে পারে।

অন্যদিকে, এফ #, খাঁটি নয় এবং তাই আপনি কার্যকরী প্রোগ্রামিংয়ে যা গুরুত্বপূর্ণ তা সহজেই মিস করতে পারেন। আপনি কথা বলতে পারেন, এমন পদ্ধতিগত প্রোগ্রামগুলি লিখতে পারেন যা এখানে একটি পরিবর্তনশীল রূপান্তরিত করতে পারে, কিছু পার্শ্ব প্রতিক্রিয়া সম্পাদন করতে পারে, কেবল এফ # সিনট্যাক্সে।


আমি আসলে চেষ্টা শুরু করেছি :) চেষ্টা করুন এটি নতুন জিনিস শিখতে আকর্ষণীয়।
বিবৃতি

1

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


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

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

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

+1 @ টবি আমি সম্প্রতি অবাস্তব স্ক্রিপ্ট রেফারেন্সের মাধ্যমে স্কিম করেছিলাম এবং রাষ্ট্রসমূহের সাথে কাজ করার জন্য কিছু আকর্ষণীয় ভাষার সমাধান দেখেছি। সমস্যাটি সম্পর্কে চিন্তাভাবনার ক্ষেত্রে এটি সি # তে বহন করে এবং তাদের একটি দুর্দান্ত সমাধান রয়েছে। তাই হ্যাঁ, আমি বিশ্বাস করি যে আপনি যখন আপনার স্যান্ডবক্স থেকে বেরিয়ে পড়েন এবং প্রতিবেশীদের পাথর মারেন যে সমস্ত বালু এবং খেলনা আপনি খুঁজে পান :)
বিবৃতি
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.