আপনি কখনও দেখা সেরা ওপেন সোর্স কোড কি? [বন্ধ]


19

ওপেন সোর্সের মানটির অংশটি হল একটি নতুন প্ল্যাটফর্ম বা ভাষা দিয়ে শুরু করা লোকদের দুর্দান্ত উদাহরণ কোড সরবরাহ করা।

আপনার মুখোমুখি সেরা ওপেন সোর্স কোডটি কী এবং আপনি কেন আপনার পছন্দ পছন্দ করেন? যে কোনও ভাষা করতে পারে তবে আমি উদ্দেশ্যমূলক-সি এর সর্বোত্তম উদাহরণগুলিতে বিশেষভাবে আগ্রহী যা আপনি উল্লেখ করতে পারেন।

স্পষ্টতই এটি একটি মুক্ত সমাপ্ত প্রশ্ন, সুতরাং আমি প্রশ্নটি কিছুক্ষণের জন্য উন্মুক্ত রেখে দেব এবং কী ধরণের উত্তর আমরা পেয়েছি তা দেখতে পাচ্ছি।

ধন্যবাদ!

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


4
"সেরা" কোন বিশেষ সংজ্ঞা মাথায়?

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

একটি ভাল প্রশ্নের জন্য +1। আমি আপনাকে এটি নির্দিষ্ট কিছু ভাষা / প্রযুক্তিতে ছাঁটাই করার পরামর্শ দিচ্ছি। লিনাক্স বনাম জাভার জন্য সি ডাটাবেস ড্রাইভারের সাথে তুলনা করা স্পষ্টতই একটি বেমানান ধারণা।
Fanatic23

আপনি যদি সেই স্পষ্টকরণটি এতে সম্পাদনা করেন তবে প্রশ্নটি পড়ে এটি অন্যদের পক্ষে খুব সহায়ক হবে। :)
মাইকেল কে

উত্তর:


14

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

আমার জন্য প্রধান জ্বালা হ'ল সাধারণত খুব কম মন্তব্য হয়, প্রায়শই কেবল মন্তব্যগুলি কিছু দীর্ঘ এবং আইনী কপিরাইট নোটিশ।

লিনাক্স কার্নেল একটি উদাহরণ যেখানে ফাইলগুলি প্রায়শই তাদের কোনও মন্তব্য করে না যে তারা কী উদ্দেশ্যে কাজ করে (যেমন XYZ এর জন্য চালক কমপক্ষে আমাকে বলবেন যে আমি প্রায় সঠিক জায়গায় আছি)।

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

সম্ভবত নৈতিকতাটি হ'ল: আপনি কী করছেন আমাকে বলুন, আমাকে এটিকে বের করে আনবেন না।

আমি এমন কোনও ওপেন সোর্স কোড খুঁজে পাইনি যা এটি ভাল করে। যতটা ভাল কোডিং অনুশীলন শেখার মাধ্যম হিসাবে উন্মুক্ত উত্সের সন্ধান করা, আমার জন্ডিস পরামর্শটি হ'ল: না।


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

@ পিয়ারে 303 - আমি NoRMproject.org প্রতিষ্ঠা করেছি এবং বজায় রেখেছি, আমি করি যে প্রধান জিনিসগুলির মধ্যে আমি কোডটি লেখার সময় মন্তব্যগুলি লেখা এবং এটি সাহায্য করে। আমি মনে করি যে অবদানকারীরা নেতারা যে অংশগুলিকে জোর দিয়েছিলেন সেগুলি নিয়ে কাজ করবে। NoRM এর ক্ষেত্রে এটি ছিল টেস্ট, মন্তব্য এবং আইডিয়োমেটিক (সি # তে) কোড। আমি মনে করি আমাদের খুব সুন্দর পেশাদার, রক্ষণাবেক্ষণযোগ্য কোডবেস এর কারণে রয়েছে।
অ্যান্ড্রু থেকেন

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

এই মজার উক্তিটির কথা মনে করিয়ে দিয়ে আমি একবার intoুকে পড়েছিলাম: "যদি এটি লিখতে আমার খুব কষ্ট হয়, তবে এটি পড়তে তাদের খুব কষ্ট হওয়া উচিত" "
ডেনিস ডি বার্নার্ডি

+1, @ তাত্ক্ষণিকভাবে_ আপনি মনে করেন যে কোডটি ভাল পরিকল্পনা করা উচিত, ভাল পরীক্ষা করা উচিত এবং এখন ভাল মন্তব্য করা উচিত! আপনি কোন ধরণের পাগল গ্রহে বাস করছেন?

5

স্ক্লাইট কোডবেস সম্পর্কে আমি খুব ভাল জিনিস শুনেছি ।

যেটুকু থেকে আমি এটি hadুকে দেখেছি তা দেখতে খুব পরিষ্কার দেখাচ্ছে।


5
এটির একটি বিস্তৃত টেস্ট স্যুট রয়েছে এটি এটিকে সফ্টওয়্যার পরীক্ষার জন্য একটি স্টাডি মডেল করে তোলে।
রবার্ট হার্ভে

আমি কেবল চাই এটির একটি সি ++ ইন্টারফেস ছিল: /
ম্যাথিউ এম।

5

ডোনাল্ড নথ তার বইতে তাঁর গাণিতিক সূত্রগুলি তার প্রকাশকের চেয়ে আরও ভাল টাইপ করতে সহায়তা করার জন্য দুটি প্রোগ্রাম লিখেছিলেন।

এই দুটি প্রোগ্রাম (তাদের চূড়ান্ত সংস্করণে) লিটারেট প্রোগ্রামিং ব্যবহার করে লেখা হয়েছিল যা উত্স কোডের একটি মুদ্রিত, টাইপসেট সংস্করণ তৈরি করার অনুমতি দেয় এবং সেগুলি বই হিসাবে প্রকাশিত হয়েছিল। এগুলি হ'ল আমি সর্বদা সেরা দস্তাবেজিত প্রোগ্রামগুলি পড়েছি!

  • "কম্পিউটার এবং টাইপসেটিং, খণ্ড বি: টেক্স: প্রোগ্রাম"
  • "কম্পিউটার এবং টাইপসেটিং, ভলিউম ডি: মেটাফন্ট: প্রোগ্রাম"

এগুলি অনলাইনে পড়ার জন্য উপলভ্য নয়, তবে অ্যামাজন আপনাকে http://www.amazon.com/Computers-Typesetting-D-Metafont-Program/dp/0201134381/ এ মেটাফন্ট বইটি "ভিতরে দেখুন" অনুমতি দেয়

সতর্কতা: এটি ভারী জিনিস, যার কারণে প্রতিটি বই 600 পৃষ্ঠায় চালিত হয়।


1
দ্রষ্টব্য: এটি টাইপসেট সংস্করণ যা অনলাইনে উপলব্ধ নয়। উত্সটি সম্পূর্ণরূপে উপলভ্য, এবং একটি ছোট প্রচেষ্টা সহ - মুদ্রিত সংস্করণ তৈরি করতে ব্যবহার করা যেতে পারে।

4

অবদানকারীরা ওপেন সোর্স প্রকল্পগুলি থেকে সুন্দর কোডের অনুকরণকারী বলে মনে করেন এর কয়েকটি নমুনা দিয়ে এই প্রশ্নের উত্তর দেওয়ার চেষ্টা করেছে সুন্দরী কোড বইটি ।
বিকল্প পাঠ


4
বইটি কি চেক আউট মূল্য?
অলিভার ওয়েইলার

যদিও এটি কোনও অর্থে "রিয়েল ওয়ার্ল্ড" ওপেন সোর্স কোড নয়। এই উত্তর প্রতারণা! : পি
নলডোরিন

1
আমি এটি মালিক, মুগ্ধ হয় নি। বেশিরভাগ অধ্যায়গুলি বিরক্তিকর, তবে এটিতে কয়েকটি হাইলাইট রয়েছে - মানচিত্র / হ্রাসের ব্যাখ্যা দেওয়া হয়েছে যদি আমি সঠিকভাবে মনে করি।
মার্টিন উইকম্যান

4

CodeIgniter

আমি কোনও ওএস প্রকল্প থেকে দেখেছি এমন কিছু পরিষ্কার, সেরা ডকুমেন্টেড উত্স কোড।


1
পিএইচপি এবং সবচেয়ে পরিষ্কার?
কুগেল

1
@ কুগেল: হ্যাঁ দুজনেরই।
জোশ কে

কোডইগিনিটারের উত্সটিতে কেবল একবার নজর ছিল এবং এটি সত্যই খুব ভাল কাঠামোগত এবং পরিষ্কার বলে মনে হচ্ছে। আমি আপনাকে পিএইচপি পেতে পারেন হিসাবে সুন্দর মনে হয়। :) এবং আমি সর্বদা উত্স কোডে রসবোধ পছন্দ করেছি: "// এখনও কোনও ডিবি নির্দিষ্ট করা হয়নি? তাদেরকে বুদ্ধিমানদের মারধর করুন ... যদি (! সেটসেট ($ প্যারামস ('ডিবিড্রাইভার'])) ..."
-হানসেন

2
আমি সোর্স কোড একটি উঁকি ছিল এবং আমি এটা তথ্যসমৃদ্ধ করা হয় এবং সহজ অনুসরণ করতে মানা আবশ্যক, এবং আমি হয়নি এটি একটি অপারেটিং সিস্টেম পিএইচপি থেকে আশা করবেন।
ওনিসিমাসউবাউন্ড

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

3

আমি 2 টি প্রকল্প দেখেছি যা খুব ভাল কাঠামোগত:

  1. জ্যাঙ্গো
  2. ক্রোমিয়াম প্রকল্প

বিশেষত, দ্বিতীয়টি কয়েকটি জিনিসের উপর ভিত্তি করে খুব আকর্ষণীয়:

  • এটি কীভাবে অনেক কিছুর জন্য ট্যাবগুলি (ট্যাবগুলি, প্লাগইনগুলি) ব্যবহার করে এবং কীভাবে এটি একসাথে ফিট করে
  • প্রতিটি উইন্ডোজ, ম্যাক, লিনাক্সের জন্য স্থানীয় জিইউআই সহ একাধিক প্ল্যাটফর্ম
  • ওয়েব-কিট একীকরণ

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


1
PostgreSQL কোডের জন্য +1। এটি অত্যন্ত পরিষ্কার এবং পঠনযোগ্য।
ডেনিস ডি বার্নার্ডি

2

কেউ কেউ বলেন লিনাক্স কার্নেলের সি কোডটি বেশ সুন্দর।

(আমি বিষয়টি বুঝতে পারছি না! এটি সম্ভবত সবচেয়ে ভাল লিখিত ওপেন-সোর্স সি প্রকল্প রয়েছে))


1
অনুকূলিত কোডের জন্য এটি দুর্দান্ত। পাঠযোগ্যতার জন্য আমার অভিজ্ঞতা হিসাবে না। অবশ্যই, আমি নি লিখিত কোনো, শুধু ... Read
মাইকেল কে

1
হ্যাঁ, সত্য। দুর্ভাগ্যক্রমে প্রশ্নটি সত্যই "সেরা" সংজ্ঞায়িত হয়নি, তাই আমি আমার নিজস্ব সংজ্ঞা নিচ্ছি। :)
নলডোরিন

2

আমি এলএলভিএম উত্স কোডটি খুব পঠনযোগ্য বলে খুঁজে পেয়েছি । আমি নিশ্চিত যে এটি আমি সবচেয়ে পরিষ্কার সি ++ দেখেছি। আপনি যদি এর সাথে পরিচিত না হন তবে এটি মূলত একটি সংকলক নির্মাণ সরঞ্জামকিট।

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

যদিও এটি একটি দুর্দান্ত প্রকল্প, তাই সবকিছু কীভাবে কাজ করে তা দ্রুত বুঝতে সক্ষম হবেন বলে আশা করবেন না। তবে উচ্চ-স্তরের ওভারভিউ পাওয়া খুব সহজ হওয়া উচিত।


1

এটি কোনও বিশাল প্রকল্প নয়, তবে হ্যাক করা আমার পক্ষে সাবসনিক ওআরএম অত্যন্ত সহজ ছিল। এটি ছিল প্রথম আসল ওপেন সোর্স প্রকল্প যা আমি ঠিক কীভাবে প্রয়োজন তা সংশোধন করতে সক্ষম হয়েছি। অন্যান্য বেশিরভাগ আমি উত্সটির দিকে তাকিয়ে একটি প্রাচীরের উপরে মাথা ঠেকিয়ে শেষ করেছি। আমার এটি কয়েক ঘন্টার মধ্যে পোস্টগ্রিসএসকিউএল (এসকিউএল সার্ভার সরবরাহকারীর উপর ভিত্তি করে) আংশিকভাবে সমর্থন করেছিল। এটি এখনও সর্বাধিক সুসংহত প্রকল্প যা আমি দেখেছি ... যদিও আমি প্রচুর ওপেন সোর্স প্রকল্প দেখেছি তা না বলে।


0

প্রথম একটি সাধারণ উদাহরণ: ইভেন্ট হ্যান্ডলিং সিস্টেমের জন্য কোড zope.event। আমি অন্যান্য ইভেন্ট সিস্টেম ব্যবহার করতাম, যা ইভেন্টগুলি বিভিন্ন শ্রোতার কাছে প্রেরণ করে। আমি যখন জোপ.এভেন্ট কোডটি দেখলাম তখন ফেসপাল সময় ছিল যখন আমি বুঝতে পারি যে কিছু জিনিস কত সহজ হতে পারে।

এটি পাইথনে লেখা হয়েছে এবং এটির সম্পূর্ণ কোডটি এখানে রয়েছে:

subscribers = []

def notify(event):
    """ Notify all subscribers of ``event``.
    """
    for subscriber in subscribers:
        subscriber(event)

একজন গ্রাহক যুক্ত করতে আপনি এটি করুন:

from zope.event import subscribers
subscribers.add(MySubscriber())

আমি দেখেছি KISS এর সেরা উদাহরণ।

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


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

আপনি অন্যান্য ইভেন্ট সিস্টেমের সাথে এটি তুলনা করেছেন? সরলতার জন্য আরেকটি পাইথন উদাহরণটি ধরুন
লেনার্ট রেজেব্রো

1
সুন্দর - আমি আসলে জাভাস্ক্রিপ্টে খুব সাদৃশ্য কিছু লিখেছি। আমার ধারণা আমি স্মার্ট? ;)
মাইকেল কে

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

@ back2dos: এটি টাইপ নিরাপদ।
লেনার্ট রেজেব্রো

0

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

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

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