প্রকল্প সম্পর্কে
python-patterns হলো পাইথনে বাস্তবায়িত ডিজাইন প্যাটার্ন ও আইডিয়মের একটি রেফারেন্স সংগ্রহ। এটি কোনো লাইব্রেরি নয়, বরং একটি শেখার উপকরণ: প্রতিটি প্যাটার্ন একটি শ্রেণি ফোল্ডারের অধীনে নিজস্ব ছোট মডিউলে থাকে, এবং README সংক্ষিপ্ত বিবরণসহ সেগুলোর সূচি দেয়।
কভারেজ কয়েকটি গ্রুপে সংগঠিত। ক্রিয়েশনাল প্যাটার্নের মধ্যে রয়েছে abstract_factory, borg, builder, factory, lazy_evaluation, pool এবং prototype। স্ট্রাকচারাল প্যাটার্নের মধ্যে রয়েছে 3-tier, adapter, bridge, composite, decorator, facade, flyweight, front_controller, mvc এবং proxy। বিহেভিয়ারাল প্যাটার্নের মধ্যে রয়েছে chain_of_responsibility, catalog, chaining_method, command, interpreter, iterator (একটি বিকল্প বাস্তবায়নসহ), mediator, memento, observer, publish_subscribe, registry, servant, specification, state, strategy, template এবং visitor। এছাড়াও টেস্টেবিলিটির জন্য ডিজাইন উদাহরণ (dependency_injection-এর তিনটি ভ্যারিয়েন্ট), একটি মৌলিক delegation_pattern, এবং blackboard, graph_search ও একটি hierarchical state machine (hsm)-এর মতো অন্যান্য প্যাটার্ন রয়েছে।
README স্পষ্টভাবে প্যাটার্নগুলোকে ট্রেড-অফ হিসেবে উপস্থাপন করে, পাঠকদের শুধু কীভাবে কোড লেখা হয়েছে তা নয় বরং কেন একটি প্যাটার্ন বেছে নেওয়া হয়েছে সেদিকে মনোযোগ দিতে উৎসাহিত করে। এতে পাইথনে নিরুৎসাহিত অ্যান্টি-প্যাটার্নগুলোও নথিভুক্ত করা হয়েছে, যার মধ্যে রয়েছে singleton (মডিউল ইতিমধ্যেই singleton), god object, এবং inheritance-এর অতিরিক্ত ব্যবহার, সঙ্গে প্রস্তাবিত বিকল্প যেমন মডিউল-লেভেল ভেরিয়েবল, dependency injection, composition এবং delegation।
প্রতিটি উদাহরণ মডিউলে রেফারেন্সসহ একটি মডিউল-লেভেল ডকস্ট্রিং থাকবে বলে প্রত্যাশা করা হয় এবং যেখানে সম্ভব সেখানে বাস্তব-জগতের ব্যবহার দেখানো একটি "Examples in Python ecosystem" বিভাগ থাকবে। প্রকল্পটি কিছু প্যাটার্নের Python 2-সামঞ্জস্যপূর্ণ সংস্করণের জন্য একটি legacy ট্যাগ বজায় রাখে। অবদান নির্দেশিকায় ডকস্ট্রিং, README হালনাগাদ, এবং ফরম্যাটিং, লিন্টিং, টাইপ চেকিং ও টেস্টের জন্য ./lint.sh চালানো অন্তর্ভুক্ত। ডেভেলপমেন্ট নির্ভরতাগুলো Pipfile.lock-এ পিন করা থাকে এবং make lock দিয়ে পুনরুৎপাদন করা হয়। CodeTriage-এর মাধ্যমে issue triage সমর্থিত, এবং README পাইথনে ডিজাইন প্যাটার্ন নিয়ে কয়েকটি কনফারেন্স টক ও ভিডিওর লিংক দেয়।
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.