রুবি, পাইথন, পিএইচপি কীভাবে বসন্ত ছাড়াই পরিচালনা করে?


13

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

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

সুতরাং, বিকাশকারীরা কি বসন্তকে সরিয়ে দেয় বা আমি কিছু হারিয়ে যাচ্ছি তা দৃly়ভাবে সংযুক্ত উপাদানগুলি এবং অন্যান্য অভিযোগগুলি কীভাবে "সহ্য" করতে হবে?

বসন্তের সাথে অপরিচিতদের জন্য, আমরা সবচেয়ে বেশি যে বৈশিষ্ট্যগুলি ব্যবহার করি তা হ'ল:

  • নিয়ন্ত্রণ পাত্রে বিপরীতকরণ: অ্যাপ্লিকেশন উপাদানগুলির কনফিগারেশন এবং জাভা অবজেক্টগুলির লাইফসাইकल পরিচালনা,

  • দিক-ভিত্তিক প্রোগ্রামিং: ক্রস কাটিয়া রুটিনগুলির বাস্তবায়ন সক্ষম করে,

  • লেনদেন পরিচালন: বেশ কয়েকটি লেনদেন পরিচালনার এপিআইগুলিকে একত্রিত করে এবং জাভা অবজেক্টের জন্য লেনদেনের সমন্বয় করে।


3
আপনি কমপক্ষে সংক্ষিপ্তভাবে স্প্রিংয়ের কী করবে তা ব্যাখ্যা করলে আপনি সম্ভবত আরও ভাল উত্তর পেতে পারেন get
জোসনসন

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

6
এমনকি আপনার সংজ্ঞার সাথে এখনও স্প্রিং কী করে তা আমার একেবারেই ধারণা নেই।
সেভেনসিয়াট

এবং এটি স্প্রিংয়ের সাথে আমার সবচেয়ে বড় অভিযোগ। আমি জাভা এন্টারপ্রাইজ বিকাশ শুরু করার আগে, আমার এটির কোনও প্রয়োজন ছিল না।
rdasxy

আমি একটি জাভা বিকাশকারী, কিন্তু আমি সত্যই, তার জটিলতার জন্য বসন্তকে সত্যিই অপছন্দ করি।
মাহমুদ হোসাম

উত্তর:


15

অন্যান্য প্ল্যাটফর্মগুলিতে স্প্রিংয়ের দরকার নেই কারণ সেই ভাষাগুলি জাভা হিসাবে সীমাবদ্ধ হিসাবে কোথাও নেই।

আমি নোড.জেএস সহ একটি উদাহরণ দেব

  • নিয়ন্ত্রণ পাত্রে বিপরীতকরণ: অ্যাপ্লিকেশন উপাদানগুলির কনফিগারেশন এবং জাভা অবজেক্টগুলির লাইফসাইकल পরিচালনা

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

  • দিক-ভিত্তিক প্রোগ্রামিং: ক্রস কাটিয়া রুটিনগুলির বাস্তবায়ন সক্ষম করে

আমি কেবল মনে করি না যে আমাদের এর মতো কিছু দরকার, আমরা মডিউলার কোড লিখি এবং এটি কেবল কার্যকর।

  • লেনদেন পরিচালনা: বেশ কয়েকটি লেনদেন পরিচালনার এপিআইগুলিকে একত্রিত করে এবং জাভা অবজেক্টগুলির জন্য লেনদেনের সমন্বয় করে

নোএসকিউএল অবিশ্বাস্যভাবে জনপ্রিয়। লেনদেনের কোনও ধারণা নেই।

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


8
পাইথন এবং রুবির স্টাফ ইনজেক্ট করার জন্য হাঁসের টাইপিং এবং বানরের প্যাচিং ব্যবহার করা কতটা সহজ তা আপনি এড়িয়ে গেছেন।
ড্যানি স্ট্যাপল

3
ঠিক আছে, অন্য ভাষাগুলির স্প্রিং না থাকার কারণটি হ'ল ... তাদের বাস্তবের উপযোগী হওয়ার জন্য বসন্তের দরকার নেই ;-)
ডিন হার্ডিং

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

2
@ রায়নোস জেনেরিক আইওসি সিস্টেমগুলির জন্য, আমাদের কেবল তাদের প্রয়োজন হয় না, জাভাস্ক্রিপ্টটি একটি অভিব্যক্তিপূর্ণ এবং গতিশীল ভাষা। এটি কিছুটা ভুল তথ্য formation আপনি তাদের প্রয়োজন হবে বলে মনে করেন না । coffeescriPoint.com/2010/08/…
অ্যারন

4
@ অ্যারোনমিসিভার আপনি ঠিক ছিলেন তবে আমাদের আইওসি দরকার।
রায়নস

15

বেশিরভাগ উচ্চ স্তরের ভাষায় এওপি এবং / অথবা আইওসি ডিজাইনের নীতিগুলি ব্যবহার করে লিখতে তুচ্ছ।

উচ্চতর অর্ডার ফাংশনগুলি সমর্থন করার জন্য আপনাকে এওপিকে বাস্তবায়িত করার জন্য সমস্ত প্রয়োজন। উদাহরণ স্বরূপ:

def log(fn):
  def wrapped_fn(*a, **kw):
    logger.log(fn_formatter(fn, a, kw))
    return fn(*a, **kw)
  return wrapped_fn

@log
def do_something(my_friend):
  return have_fun_with(my_friend)

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

def etl(iextract, transformations, iload):
  return iload(itertools.imap(compose(*transformations), iextract()))

9

ওয়েল পাইথন স্প্রিং পাইথনকে স্প্রিং উপভোগ করে ।

জাভা বিকাশের স্বাচ্ছন্দ্যে বসন্ত কাঠামো তৈরি করা হয়েছিল এবং জাবি বিকাশের ক্ষেত্রে যা সত্য তা রুবি বা পাইথন বিকাশের জন্য সত্য নয়।

উদাহরণস্বরূপ রুবিতে মেটাপগ্রোমিং ক্ষমতা রয়েছে যার অর্থ আপনি নিজের এওপি তৈরি করতে পারেন।

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


4
গ্রিলস জাভা ফ্রেমওয়ার্ক নয়। এটি গ্রোভির কাঠামো। গ্রোভি জাভা বাইট কোডে সংকলন করে তবে এটি জাভা নয়।
কেভিন ক্লিনে

@ কেভিঙ্কলাইন হ্যাঁ আমি জানি তবে দিনের শেষে এটি একটি জেভিএম ওয়েব কাঠামো (স্প্রিং এবং হাইবারনেটে নির্মিত)।
চিরন

1
হ্যাঁ, গ্রিলস সম্পর্কে দুর্দান্ত জিনিসটি হ'ল আপনাকে স্প্রিং সম্পর্কে জানতে হবে না।
কেভিন cline

1
@kevincline অগত্যা সত্য নয়। কখনও কখনও আপনাকে বসন্তে ফিরে
সেগুলিতে টুইট করতে

3

পাইথনের জন্য, ব্লুব্রিম (ওরফে জোপ 3) স্প্রিং যা করে এবং আরও কী কী তা সরবরাহ করে।

জটিলতা এবং শক্তি ব্যয় হয়, এমন সময় আসে যখন আপনি এটি প্রদান করতে চান না।

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

আপনি সুন্দর প্লেফ্রেমওয়ার্কের মতো জিনিসগুলির সাথে জাভা স্পেসেও একই রকম বাহিনী দেখতে পাচ্ছেন

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