আমি স্ট্যাক এক্সচেঞ্জ নেটওয়ার্কের জন্য ইম্যাক্স প্রধান মোড লেখার প্রথম পর্যায়ে আছি ; আপনি যদি নিয়মিত ইমাস ব্যবহার করেন তবে শেষ পর্যন্ত এটি আপনার পক্ষে উপকৃত হবে।
স্ট্যাক এক্সচেঞ্জের এপিআইতে করা কলগুলির সংখ্যা হ্রাস করার জন্য (প্রতিদিন প্রতি আইপি প্রতি 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 এই কুলটি কতটা হওয়া উচিত: আমি নই নিশ্চিত।)
- এর মতো ডেটা সংরক্ষণ করার কি কোনও কার্যকারিতা বাণিজ্য-অফ রয়েছে যা এটি ব্যবহার করা উচিত? যে, সেট আপ এবং পুনরুদ্ধার অপারেশন তালিকার আকার থেকে ভোগ করবে?
আরও ভাল কাঠামো দেখতে কেমন হতে পারে সে সম্পর্কে আপনার কোনও পরামর্শ আছে কি?
org
); <!-- language: blah>
যেখানে প্রয়োজন সন্নিবেশ করানো (কোড সম্পাদনাটি মোডের উপর নির্ভর করে); ওটার মতো জিনিস. আরও তথ্যের জন্য গিটহাবের রিডম দেখুন এবং বৈশিষ্ট্যগুলির পরামর্শ দিতে সবচেয়ে স্বাগত বোধ করেন । হাতের আগে আমি এই সম্পর্কে যত বেশি জানি, এটি আরও ভাল ডিজাইন করা যায়। ইমাস কি-বাইন্ডিংয়ের উল্লেখ না করার জন্য সম্পাদনা করুন ;)