"ইতিমধ্যে সম্পন্ন না হলে কিছু করুন" [বন্ধ] এর জন্য শব্দ (বা "প্যাটার্ন"?)?


54

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

প্রশ্ন : প্রয়োজনীয় পদক্ষেপ ইতিমধ্যে কার্যকর হলে কোনও পদ্ধতির ধারণার পিছনে কি কোনও নথিভুক্ত নকশার প্যাটার্ন রয়েছে? বা, যদি কোনও প্যাটার্ন না হয় তবে এর কোনও নামও আছে? এবং যদি তা না হয়, এই পদ্ধতিতে কোনও পদ্ধতি লেখার বিষয়টি বিবেচনা করা খুব জটিল বলে মনে করার কোনও কারণ আছে কি?


6
মত শোনাচ্ছে ক্যাশে - এবং এটা প্রায়ই জটিল বলে মনে করা হয় প্রকৃতপক্ষে (এছাড়াও দেখুন আমি $ $ {কেউ} এ {কিছু} কিভাবে ব্যাখ্যা করবেন? )
মশা

8
আপনি তিনটি পৃথক উত্তর পেয়েছেন, তবে সর্বোত্তম উত্তরটি হ'ল, সেগুলি প্রয়োগ করুন: আসল ফাংশনটির নতুন নাম দিন, এর কোডটি দুটি ফাংশনে বিভক্ত করুন (যেখানে এখন দু'জনের মধ্যে startHttpServerএকটিরই নাম এসেছে ) এবং হ্যাঁ, "আদর্শশক্তি" শব্দটি এখানে প্রযোজ্য ভাল।
ডক ব্রাউন

8
আপনার সহকর্মী কোন ধরণের পাল্টা-প্রমাণ সরবরাহ করে? আপনি কি এটির একটি লিঙ্ক সরবরাহ করতে পারেন?
রবার্ট হার্ভে

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

4
আমি মনে করি "যদি কিছু ইতিমধ্যে সম্পন্ন না হয় তবে কিছু করুন" সম্পর্কে চিন্তা করার আরও ভাল উপায় হ'ল "এই অবস্থায় সিস্টেমটি রাখুন"। অবশ্যই, যদি সিস্টেমটি ইতিমধ্যে সেই অবস্থায় থাকে তবে পদ্ধতিটি কিছুই করবে না - যা প্রত্যাশিত আচরণ হবে।
টি। সর - মনিকা পুনরায়

উত্তর:


127

NickWilliams হিসাবে ইতোমধ্যে বলেছেন : ধারণা ওপি বর্ণনা বলা হয় idempotent (বিশেষ্য Idempotency )। এটি প্রকৃতপক্ষে সাধারণ অনুশীলন, বিশেষত উচ্চ-স্তরের এপিআইগুলিতে।

বাট: ফাংশনটির নতুন নাম দিন।

পরিবর্তে এটি startHttpServerকল makeSureHttpServerIsRunningবা ensureHttpServerIsRunning

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

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


83
এই. ব্যক্তিগতভাবে আমি পরিবর্তে "নিশ্চিতকরণ" ব্যবহার করি। মুল বক্তব্যটি হ'ল এটির একটি নামকরণ প্রকল্প হওয়া উচিত যা আপনার দলে বোঝা যায়।
ইওফোরিক

3
বা ইতিমধ্যে এটি শুরু হলে একটি ব্যতিক্রম ছুঁড়ে ফেলা শুরু করে দিয়েছে। sqlconnection.open এর মত
ইভান

9
আমি সর্বদা "যদি না হয়" ফাংশনটির জন্য "নিশ্চিত" নামকরণ ব্যবহার করি।
কাজ

3
আমি প্রায়শই দেখতে পাই অন্য নামটি হ'ল getOrCreateSomething, যা কেবল প্রথম কলটিতে তৈরি হয় এবং তারপরে কিছু ফিরে আসে
ফ্যাবিচ

5
@ আরথ আপনি কি নিশ্চিত যে আপনি এটি উপলব্ধ কোনও বন্দর খুঁজে পেতে এবং এটি ফেরত দেওয়ার চেষ্টা করবেন না? নাকি শুধু খারাপ লেখা আছে? ;)
jpmc26

33

এটির নামকরণ করুন EnsureServerRunning

সম্পূর্ণরূপে দ্ব্যর্থহীন এবং স্পষ্ট যে এটি পুনরায় চালু করার ইঙ্গিত ছাড়াই এটি চলমান (এটি যদি না হয়) নিশ্চিত করে।

(বিকল্প:? StartServerIfNotRunning)


1
বেশিরভাগ কলাররা কেবল যত্ন করে যে সার্ভারটি কলের পরে চলছে। কীভাবে এটি অর্জিত হয়, তারা চিন্তা করে না।
gnasher729

29

না সত্যিই একটি নকশা প্যাটার্ন কিন্তু আমি তোমার পদ্ধতি কল করবে idempotent । সাধারণত শব্দটি দূরবর্তী কলগুলিতে উল্লেখ করতে ব্যবহৃত হয় তবে বিবরণটি আপনি কী করছেন তা মিলছে।

আইডেম্পোটেন্ট পদ্ধতি। পদ্ধতিতে "আইডেম্পোটেন্স" এর সম্পত্তিও থাকতে পারে (ত্রুটি বা মেয়াদোত্তীর্ণ সমস্যাগুলি বাদ দিয়ে) এন> 0 অভিন্ন অনুরোধগুলির পার্শ্ব প্রতিক্রিয়াগুলি একক অনুরোধের মতোই। ( ডাব্লু 3.org থেকে )

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

আপনার যদি ডিজাইনের প্যাটার্নের প্রয়োজন হয় তবে আমার ধারণা আপনি আপনার httpServerটিকে সিঙ্গলটন হিসাবে প্রকাশ করতে পারেন যা শুরু করার সময় শুরু হয়েছিল।


5
ফাংশন হয় না idempotent এটি একবার কলিং HTTP সার্ভার আরম্ভ করা হয়, এবং এটি কলিং একটি দ্বিতীয় সময় না পারেন। আক্ষরিকভাবে আদর্শের বিপরীত হয়। প্রতিটি কল যদি একটি নতুন HTTP সার্ভার শুরু করে তবে এটি আদর্শবান হবে ।

36
@ পোলিগনোম উইকিপিডিয়া আইডেম্পোটেন্সকে এফ (এফ (এক্স)) = এফ (এক্স) হিসাবে সংজ্ঞায়িত করে যা সাধারণত নিকের বর্ণনার সাথে মেলে। এখানে ফাংশন ইনপুট এবং আউটপুট অন্তর্ভুক্ত সার্ভারের অবস্থা হবে, সুতরাং "সার্ভার চলমান" অবস্থা এই ফাংশনের জন্য একটি নির্দিষ্ট পয়েন্ট হবে। সম্ভবত আমি এখানে উইকিপিডিয়া নিবন্ধটি ভুল বুঝেছি, আপনি কি অন্যান্য রেফারেন্সের সাথে লিঙ্ক করতে পারেন?
আমন

16
@ পলিগনোম: এই উত্তরটি সঠিক, আইডেম্পোটেন্সি বলতে এমন ফাংশনগুলিকে বোঝায় যেগুলির জন্য তাদের একবার বা একাধিকবার ডাকা হলেও তা বিবেচ্য নয়, ফলাফল সর্বদা একই থাকে। এখানে, ফলাফলটি একটি চলমান HTTP পরিষেবা, ফাংশনটি যে বার বলা হয় তার থেকে পৃথকভাবে।
ডক ব্রাউন

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

10
@ পলিগনোম দুঃখিত, আপনি ভুল বলেছেন আইডেম্পোটেন্টের অর্থ হল যে অনুরোধটি একবারে কার্যকর হয়েছে বা একবারে একাধিকবার কার্যকর হয়েছে কিনা same অনুরোধের এন ডুপ্লিকেটগুলি প্রাপ্ত হলে এন এইচপি সার্ভারগুলি শুরু করা অবশ্যই আদর্শবান নয়।
কাজ

7

এক যারা এই বাস্তবায়ন হিসাবে টুল , startHttpServer, এটিকে সবচেয়ে সহজ মসৃণ এবং করতে চেষ্টা করা উচিত বিজোড় ব্যবহার করতে ...

ফাংশনের যুক্তি

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

আমার বক্তব্যটি হ'ল:

  • isHttpServerRunningফাংশন প্রয়োগ করুন কারণ এটি স্বাধীনভাবে প্রয়োজন হতে পারে ...
  • তদনুসারে এর পরবর্তী ক্রিয়াটি সংজ্ঞায়িত startHttpServerকরতে এটি ব্যবহার করে প্রয়োগ করুন isHttpServerRunning...

তবুও, আপনি startHttpServerএই ফাংশনটির ব্যবহারকারীর যে পরিমাণ মান প্রয়োজন তা ফেরত দিতে পারেন, যেমন:

  • 0 => সার্ভার শুরুর ব্যর্থতা
  • 1 => সার্ভার শুরুর সাফল্য
  • 2 => সার্ভার ইতিমধ্যে শুরু হয়েছিল

ফাংশনটির নামকরণ

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

মৌলিকভাবে, ইতিমধ্যে শুরু করা কিছু শুরু করার ইচ্ছা নিয়ে কোনও সমস্যা নেই, একেএ 1*1=1। সুতরাং, কমপক্ষে আমার কাছে, " ensureHttpServerIsRunning" এটি কল করা সমালোচনামূলকভাবে প্রয়োজন বলে মনে হচ্ছে না, আমি ফাংশনটির নামটি কত দীর্ঘ, প্রাকৃতিক এবং স্মরণীয় about

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

আপনি একাধিকবার লেখার সময় আপনি একবারে ফাংশনটি শিখবেন ...

যাইহোক, আমি startHttpServerসংক্ষিপ্ত, সহজ এবং তুলনায় আরও সুস্পষ্ট যা দিয়ে থাকব ensureHttpServerIsRunning


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

@ user949300: "নিশ্চিত HTTPServerIsRunning" এর কলকারী কনফিগারেশন, রুট ডিরেক্টরি ইত্যাদির বিষয়ে চিন্তা করে না That's এটি যিনি এটি প্রয়োগ করেন সেই ব্যক্তির ব্যবসা।
gnasher729

2
@ gnasher729 এটি ধরে নেয় যে HTTP সার্ভারটি একটি সিঙ্গলটন। সিঙ্গলেটনগুলি মন্দ are এবং এখানে সম্ভবত অনুপযুক্ত। একাধিক পোর্টে সহজেই একাধিক সার্ভার থাকতে পারে। যদি সত্যিই কেবল একটি HTTP সার্ভার থাকে তবে এই পুরো পদ্ধতিটি হ'ল আইএমও, খারাপ ডিজাইন কেবল প্রোগ্রামের সূচনাতে একবার সার্ভার শুরু করা ভাল।
user949300

2

আমি মনে করি আপনার সহকর্মী এর অর্থ এটি startHttpServerখুব বেশি করছে:

  • সার্ভারটি ইতিমধ্যে চলমান কিনা তা পরীক্ষা করা হচ্ছে,
  • প্রয়োজনে সার্ভার শুরু করা হচ্ছে।

সেগুলি কোডের দুটি সম্পর্কিত নয় parts উদাহরণস্বরূপ, ডেস্কটপ অ্যাপ্লিকেশনটি নিশ্চিত করা উচিত যে এটি চালু হওয়ার আগেই চলছে না; কোডের একটি অংশ থাকবে যা অ্যাপ্লিকেশন দৃষ্টান্তগুলিকে পরিচালনা করে (উদাহরণস্বরূপ একটি মুটেক্স ব্যবহার করে), এবং কোডটি অ্যাপ্লিকেশন বার্তার লুপটি শুরু করবে।

এর অর্থ হ'ল আপনার একটি না থাকলেও কমপক্ষে দুটি পদ্ধতি থাকতে হবে :

  • isHttpServerRunning: boolean
  • startHttpServer

অ্যাপ্লিকেশন এন্ট্রি পয়েন্টটি প্রথম পদ্ধতিটিতে কল করবে এবং তারপরে দ্বিতীয়টি যদি ফেরতের মান হয় false। এখন, প্রতিটি পদ্ধতি একটি এবং একটি জিনিস করছে এবং বোঝা সহজ।


Already সার্ভারটি ইতিমধ্যে চালু রয়েছে কিনা তা যদি যুক্তিটির জানা দরকার তবে এটি একাধিক পদ্ধতিতে আরও পৃথকীকরণের প্রয়োজন হতে পারে।


21
এখন দুটি ফাংশনকে ডেকে অন্য কিছু করা দুটি কাজ করছে, এছাড়াও, পৃথকভাবে ফাংশনগুলি প্রকাশ করা জাতিদের শর্তগুলির পরিচয় দিতে পারে। ফ্রি লাঞ্চ নেই।

1
সহকর্মীর পক্ষে যদি এটি খুব বেশি হয় তবে শুভকামনা।
gnasher729

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

10
এই উত্তরটি বিমূর্ততা এবং ডিআরওয়াইয়ের বিরোধিতা করে বলে মনে হচ্ছে। startHttpServerকোডে যদি একাধিক জায়গায় বলা হয় তবে কী হবে ? একাধিক অনুরূপ লাইনগুলি সর্বত্র অনুলিপি করা উচিত? এটি কি সমস্ত ফাংশন দিয়ে করা উচিত? খুব শীঘ্রই আপনার প্রোগ্রামটি অসীম আকারের হবে।
জ্যাকবিবি

3
আমি মনে করি এই পদ্ধতির প্রথম পার্শ্ব প্রতিক্রিয়া হ'ল পদ্ধতিটির সূচনা startHttpServerমোটামুটি মত দেখাবে if (isHttpServerRunning()){ return; }। আপনি একটি ব্যবসায়িক নিয়ম জোর দিয়ে বলছেন যে "HTTP সার্ভারটি ইতিমধ্যে চালু থাকলে এটি বৈধ নয়", তবে তারপরে এই নিয়মটি প্রয়োগ করার জন্য অন্য কারও দায়িত্ব তৈরি করে। অ্যাড-হক এবং বারবার যেখানে তারা কল করতে পারে startHttpServer
'13 এ 8oth এ আরথ

2

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

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


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

@ gnasher729। আমি খুব কমই ব্যবহৃত একটি restartHttpServer()পদ্ধতি কল্পনা করতে পারি । তবে কেবল থামছে - সেখানে ব্যবহারের কী আছে? আপনি বিক্ষিপ্ত সংযোগ ব্যর্থতা চান? :-)
ব্যবহারকারী949300

কেবল এইচটিটিপি সার্ভারটি বন্ধ করার জন্য ব্যবহারের মামলা হওয়ার দরকার নেই কারণ এটি প্রোগ্রামের বাইরের কোনও কারণে এটি বন্ধ হয়ে থাকতে পারে - এইচটিটিপি সার্ভারটি সেগফ্লেট করেছে এবং মারা গিয়েছে, কোনও প্রশাসক কোনও কারণে ম্যানুয়ালি এটিকে থামিয়ে দিয়েছেন, ইত্যাদি
ডেভ শেরোহমান

ডেভ, ক্র্যাশটি "ব্যতিক্রমী" এবং এটি যেমন পরিচালনা করা উচিত। এছাড়াও, যেহেতু যে কোনও সময় কোনও ক্রাশ ঘটতে পারে , তাই আপনার কোডের প্রতিটি লাইন কি হবে না ensureRunning()? :-) অ্যাডমিন এটি বন্ধ করে দিচ্ছে, প্রশাসনিক কিছু সংশোধন বা সমাধান করার চেষ্টা করার সময় এই অন্যান্য কোডটি নিয়মিত পুনরায় চালু করা অবিশ্বাস্যরকম বিরক্তিকর এবং ভুল হতে পারে। কোডটি নয়, প্রশাসক এটিকে পুনরায় চালু করতে দিন।
user949300

-2

্যদসব startHttpServerIfNotIsRunning

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


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

1
ধন্যবাদ আমি ঠিক কি Ensureমানে না । প্রযুক্তিগত ভাব প্রকাশের জন্য আমি এই শব্দটি এখনও পছন্দ করি না। Ensureমানুষের কিছু। একটি সিস্টেম কিছু নিশ্চিত করতে পারে না, এটি কেবল যা করা উচিত তা করবে।
Herr Derb

2
@ ভু - আমি একজন স্থানীয় বক্তা এবং আমি নিশ্চিত তা নিশ্চিত হওয়ার অর্থ কী তা নিশ্চিত।
জোনাথন কাস্ট

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

@ জাস্টক্ট: সিরিয়াসলি?
gnasher729

-3

আপনার সহকর্মীর আপনাকে যা বলা উচিত ছিল তা হ'ল সেই পদ্ধতিতে আপনার কোনও ব্যবসা নেই। এটি ইতিমধ্যে প্রচুর বার লেখা হয়েছে এবং আপনি এটি লেখার সম্ভাবনা অপেক্ষা আরও ভাল লিখেছেন। উদাহরণস্বরূপ: http://docs.ansible.com/ansible/latest/systemd_module.html https://docs.saltstack.com/en/latest/ref/states/all/salt.states.service.html

একটি স্থাপত্য দৃষ্টিকোণ থেকে, একটি ওয়েব সার্ভার পরিচালনার কোড কিছু নির্বিচারে বিট থাকা দুঃস্বপ্নের জিনিস। পরিষেবাগুলি পরিচালনা না করা আপনার কোড কী করে তা একচেটিয়াভাবে। তবে আমি অনুমান করছি আপনি মনিট (বা কুবারনেট বা ...) লেখেন নি।


2
ভাষাটি জাভা এবং পদ্ধতিটি এককভাবে জার্সি অ্যাপ্লিকেশনটিতে গ্রিজলি এম্বেড সার্ভার শুরু করার জন্য তৈরি করা হয়েছিল। আমি আপনার মন্তব্যের যথাযথতাকে দোষ দিতে পারি না, আমি আপনাকে বেশি প্রসঙ্গ দিইনি তবে আপনি আপনার বক্তব্য তৈরিতে অনেকটা ধরে নিয়েছেন। সার্ভারটি শুরু করার জন্য জেটি বা গ্রিজলি কল করে এমন একটি পদ্ধতি থাকা পুরোপুরি ঠিক।
জন ক্যালকোট

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