আমাদের নিজস্ব API এর জন্য অনুকূল ডেটা স্ট্রাকচার


10

আমি স্ট্যাক এক্সচেঞ্জ নেটওয়ার্কের জন্য ইম্যাক্স প্রধান মোড লেখার প্রথম পর্যায়ে আছি ; আপনি যদি নিয়মিত ইমাস ব্যবহার করেন তবে শেষ পর্যন্ত এটি আপনার পক্ষে উপকৃত হবে।

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

স্পষ্টতই, এটি একটি তালিকা হতে চলেছে। যাইহোক, যে কোনও ডেটা কাঠামোর মতো, পছন্দটি অবশ্যই নির্ধারণ করা উচিত যে কোন ডেটা সংরক্ষণ করা হচ্ছে এবং কীভাবে এটি অ্যাক্সেস করা হবে। কি, আমি এই সমস্ত তথ্য একটি একক চিহ্ন যেমন সংরক্ষণ করতে সক্ষম হতে চাই stack-api/cache। সুতরাং, আরও অগ্রগতি ব্যতীত, stack-api/cacheশেষ আপডেট দ্বারা তৈরি করা কনসগুলির একটি তালিকা:

`(<csite> <csite> <csite>)

যেখানে <csite>হবে

(1362501715 . <site>)

এই মুহুর্তে, আমরা যা করেছি তা হ'ল একটি সাধারণ সমিতি তালিকা সংজ্ঞায়িত করা । অবশ্যই, আমরা আরও গভীর যেতে হবে

প্রতিটি <site>এপিআই প্যারামিটারের তালিকা (অনন্য) এর পরে তালিকার প্রশ্নগুলি অনুসরণ করে:

`("codereview" <cquestion> <cquestion> <cquestion>)

প্রতিটি <cquestion>হ'ল, আপনি এটি অনুমান করেছেন, তাদের শেষ আপডেটের সময় সহ প্রশ্নগুলির একটি ধারণা:

`(1362501715 <question>) (1362501720 . <question>)

<question>এটি একটি questionকাঠামো এবং জবাবগুলির একটি তালিকা এবং আবার ( তাদের শেষ আপডেটের সময়টি নিয়ে কনসড ) থাকে:

`(<question-structure> <canswer> <canswer> <canswer>

এবং `

`(1362501715 . <answer-structure>)

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

(<epoch-time> <api-param> <cquestion> <cquestion> ...)

উদ্বেগ:

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

আরও ভাল কাঠামো দেখতে কেমন হতে পারে সে সম্পর্কে আপনার কোনও পরামর্শ আছে কি?


আমি এটি +1 করছি কারণ আমি সত্যিই এই মোডটি চাই
ড্যানিয়েল গ্রেটজার

@ জোজেফগ আমি সত্যিই এটিও চাই — এই ইন্টার্নশিপটি আমার বেশিরভাগ সময় চুষে ফেলেছে, তবে স্কুলটি শুরু হওয়ার পরে আরও কিছু অগ্রগতি হওয়া উচিত
শন অ্যালারেড

আমি কেবল খুশি হয়েছি এমন একটি ব্রাউজার প্লাগইন ইনস্টল করা যা আমাকে পাঠ্য বাক্সের সামগ্রীগুলি পূরণ করতে ইম্যাক্স ব্যবহার করতে দেয়। আপনি কি ইমাসকে উইকি মার্কআপ বুঝতে এবং বিন্যাসিত পাঠ্যটি প্রদর্শন করতে চলেছেন?
কেভিন ক্লাইন

@ কেভিঙ্কলাইন না, ধারণাটি হ'ল এটি কেবল উপযোগী কাজগুলি করবে: স্থানীয় প্রশ্ন সংরক্ষণাগার; উন্নত কোড সম্পাদনা (ডান মেজর মোডে বেরিয়ে আসা, অনুরূপ org); <!-- language: blah>যেখানে প্রয়োজন সন্নিবেশ করানো (কোড সম্পাদনাটি মোডের উপর নির্ভর করে); ওটার মতো জিনিস. আরও তথ্যের জন্য গিটহাবের রিডম দেখুন এবং বৈশিষ্ট্যগুলির পরামর্শ দিতে সবচেয়ে স্বাগত বোধ করেন । হাতের আগে আমি এই সম্পর্কে যত বেশি জানি, এটি আরও ভাল ডিজাইন করা যায়। ইমাস কি-বাইন্ডিংয়ের উল্লেখ না করার জন্য সম্পাদনা করুন ;)
শন অলরেড

উত্তর:


1

ইমাস লিসপ ডেটা প্রক্রিয়াকরণের জন্য অনুকূলিত হয় না; আপনি কেবল উপস্থাপনার জন্য ইঞ্জিন এবং ইমাক্সের জন্য একটি কমন লিস্প ব্যবহার করা সুবিধাজনক বলে মনে করতে পারেন।

এমনকি যদি আপনি eieioইমাস লিস্পের সাথে লেগে থাকার সিদ্ধান্ত নেন তবে আমি প্রস্তাব দিচ্ছি আপনি তালিকার পরিবর্তে কাঠামোগত ডেটা ( ) এবং তালিকার পরিবর্তে হ্যাশ টেবিল ব্যবহার করুন।

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