কিভাবে একটি ওয়েব ব্রাউজার তৈরি শুরু করবেন? [বন্ধ]


89

আমি স্ক্র্যাচ থেকে একটি ওয়েব ব্রাউজার তৈরিতে কিছু প্রচেষ্টা করার সিদ্ধান্ত নিয়েছি। আধুনিক ওয়েব ব্রাউজারগুলির সাধারণ ক্রিয়া, আর্কিটেকচার এবং বৈশিষ্ট্যগুলি কী কী যা আমার শুরু করার আগে জানা উচিত?

কোন সুপারিশ অত্যন্ত প্রশংসা করা হয়!


9
হ্যাঁ, এটি একটি উন্মাদ প্রজেক্ট তবে আমাদের এখানে মিকিকে নেওয়ার দরকার নেই - আমি মনে করি এটি আপনি কীভাবে ঘুরতে পারবেন এটি একটি দুর্দান্ত আলোচনার বিষয় :)
রস

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

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

7
ব্র্যাডলি कूপার সীমাহীনতায় নেওয়া সেই বড়িগুলির একটি আপনার দরকার । ;)
আলী গাজানী

4
একবার দাও। এখানকার লোকেরা যা বলছেন, তার থেকে আমি খুব সহজেই বাজি ধরছি, বিশেষত যদি আপনি প্রচুর বিদ্যমান উপাদানগুলিকে একত্রে প্লাগ করেন। কিছু পাঠ্যকে ਪਾਰ্স করা এবং এর ভিতরে লেখা সহ কিছু রঙিন বাক্স আউটপুট করা কত কঠিন হতে পারে?
ইয়ান ওয়ারবার্টন

উত্তর:


131

ভাল করে এটিকে টুকরো টুকরো করে ফেলুন। ওয়েব ব্রাউজার কী? এটার কাজ কি? এটি:

  • বাহ্যিক সামগ্রী আনা। সুতরাং আপনার একটি HTTP লাইব্রেরি প্রয়োজন বা এটি প্রস্তাবিত নয়) yourself এইচটিটিপি প্রোটোকলটিতে অনেক জটিলতা / সূক্ষ্মতা রয়েছে যেমন মেয়াদ শেষ হয়ে যাওয়া শিরোনাম, বিভিন্ন সংস্করণ (যদিও এটি বেশিরভাগ দিনই 1.1), ইত্যাদি;
  • বিভিন্ন সামগ্রীর প্রকারগুলি পরিচালনা করে। আপনি পিগব্যাক করতে পারেন এমন ধরণের জিনিসের জন্য একটি উইন্ডো রেজিস্ট্রি রয়েছে। আমি এখানে মাইম টাইপের উপর ভিত্তি করে সামগ্রীর ব্যাখ্যার কথা বলছি;
  • এইচটিএমএল এবং এক্সএমএলকে পার্স করুন : একটি ডিওএম তৈরি করতে (ডকুমেন্ট অবজেক্ট মডেল);
  • পার্স এবং সিএসএস প্রয়োগ করে : এতে সমস্ত বৈশিষ্ট্য বোঝার প্রয়োজন হয়, পরিমাপের সমস্ত ইউনিট এবং মানগুলি নির্দিষ্ট করে দেওয়া যায় (যেমন "সীমানা: 1px কঠিন কালো" বনাম পৃথক সীমানা-প্রস্থ ইত্যাদি বৈশিষ্ট্য);
  • ডাব্লু 3 সি ভিজ্যুয়াল মডেলকে কার্যকর করে (এবং এটিই আসল পিকচার); এবং
  • একটি জাভাস্ক্রিপ্ট ইঞ্জিন আছে

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

  • কতগুলি সমবর্তী সংযোগগুলি ব্যবহার করতে হবে?
  • ব্যবহারকারীর কাছে রিপোর্ট করার সময় ত্রুটি;
  • প্রক্সি;
  • ব্যবহারকারী বিকল্পসমূহ;
  • ইত্যাদি

আমি এবং অন্যরা দৃ colle়ভাবে আমাদের ভ্রু বাড়াবার কারণটি হ'ল রেন্ডারিং ইঞ্জিনটি শক্ত (এবং যেমন কেউ উল্লেখ করেছেন যে, মানুষের বছরগুলি তাদের বিকাশে চলে গেছে)। চারদিকে প্রধান রেন্ডারিং ইঞ্জিনগুলি হ'ল:

  • ত্রিশূল: মাইক্রোসফ্ট ইন্টারনেট এক্সপ্লোরার জন্য বিকাশ;
  • গেকো: ফায়ারফক্সে ব্যবহৃত;
  • ওয়েবকিট: সাফারি এবং ক্রোমে 0-27 এ ব্যবহৃত;
  • কেএইচটিএমএল: কেডিএইচ ডেস্কটপ পরিবেশে ব্যবহৃত। কিছু বছর আগে কেএইচটিএমএল থেকে ওয়েবকিট ফোরকড;
  • এলেকট্রা: অপেরা 4-6 এ ব্যবহৃত;
  • প্রেস্টো: অপেরাতে ব্যবহৃত হয় 7-12;
  • ব্লিঙ্ক: ক্রোম 28+, অপেরা 15+, ওয়েবকিট কাঁটাচামচে ব্যবহৃত;

শীর্ষ তিনটিকে আজ ব্যবহৃত প্রধান রেন্ডারিং ইঞ্জিন বিবেচনা করতে হবে।

জাভাস্ক্রিপ্ট ইঞ্জিনগুলিও শক্ত। এর মধ্যে বেশ কয়েকটি রয়েছে যা নির্দিষ্ট রেন্ডারিং ইঞ্জিনের সাথে আবদ্ধ থাকে:

  • স্পাইডারমোনকি: গেকো / ফায়ারফক্সে ব্যবহৃত;
  • ট্রেসমোনকি: ফায়ারডক্স ৩.১-এ স্পাইডারমনকি প্রতিস্থাপন করবে এবং জেআইটি (কেবলমাত্র সময়েই) সংকলন প্রবর্তন করবে;
  • কেজেএস: কনকরার দ্বারা ব্যবহৃত, কেএইচটিএমএল দ্বারা আবদ্ধ;
  • জেএসক্রিপ্ট: ট্রাইডেন্টের জাভাস্ক্রিপ্ট ইঞ্জিন, যা ইন্টারনেট এক্সপ্লোরারে ব্যবহৃত হয়;
  • জাভাস্ক্রিপ্টকোর: সাফারি ব্রাউজারের ওয়েবকিটে ব্যবহৃত;
  • কাঠবিড়ালি ফিশ: ওয়েবকিটে ব্যবহৃত হবে এবং ট্রেসমনকির মতো জেআইটি যুক্ত করবে;
  • ভি 8: গুগলের জাভাস্ক্রিপ্ট ইঞ্জিন ক্রোম এবং অপেরাতে ব্যবহৃত;
  • অপেরা (12.x এবং তার চেয়ে কম) এর নিজস্ব ব্যবহারও হয়েছিল।

এবং অবশ্যই সমস্ত ব্যবহারকারীর ইন্টারফেস স্টাফ রয়েছে: পৃষ্ঠাগুলির মধ্যে নেভিগেশন, পৃষ্ঠার ইতিহাস, অস্থায়ী ফাইলগুলি সাফ করা, একটি ইউআরএল টাইপ করা, ইউআরএলগুলি স্বয়ংক্রিয়ভাবে পূর্ণ করা ইত্যাদি।

এটা অনেক কাজ।


* গেকো :) এছাড়াও একমত। প্রধান অংশগুলি হ'ল এইচটিএমএল রেন্ডারার এবং জাভাস্ক্রিপ্ট ইঞ্জিন।
আবাতিশ্চেভ

4
অপেরা তাদের নিজস্ব তৈরি করেছে। প্রেস্টো হ'ল বর্তমান, এবং ইলেক্ট্রা ছিল তাদের পূর্ববর্তী।
টিম সুলিভান

দুর্দান্ত গভীর-উত্তর - আমি জাভাস্ক্রিপ্ট সব একসাথে পার্সিংয়ের কথা ভুলে গেছি!
রস

4
যদিও এই পৃথিবীতে আরও বেশি লোকের প্রয়োজন রয়েছে যাদের ব্রাউজারগুলি তৈরি করতে বল রয়েছে। CP eff.org/deeplinks/2016/04/save-firefox
পেসারিয়ার

28

সত্যিই আকর্ষণীয় প্রকল্পের মতো মনে হচ্ছে তবে এটির জন্য আপনাকে প্রচুর প্রচেষ্টা বিনিয়োগ করতে হবে।

এটি কোনও সহজ জিনিস নয়, তবে একাডেমিক দৃষ্টিকোণ থেকে আপনি এটি থেকে এত কিছু শিখতে পারেন

কিছু সংস্থান যা আপনি পরীক্ষা করতে পারেন:

তবে এটিকে বাস্তবের দৃষ্টিকোণ থেকে দেখে, এটিকে স্ক্র্যাচ থেকে কোড করার জন্য বিশাল প্রচেষ্টা আমাকে এই কমিকের স্মরণ করিয়ে দিয়েছে:


(উত্স: geekherocomic.com )

শুভকামনা :-)


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

@ রস: হ্যাঁ, তারা এখনও কমিক সরবরাহ করে, নতুন ছেলেটিকে রাশিয়ার বোরিস বলা হয়, এবং সে একজন "সুপার হ্যাকার" এলওএল
ক্রিশ্চান সি। সালভাদে ১৯:৫৯-

17

বেশিরভাগ আধুনিক ওয়েব ব্রাউজারগুলি দৈত্যাকার জন্তু এবং সম্ভবত বেশ খারাপভাবে নকশা করা হয়েছে কারণ তারা (এবং ওয়েব নিজেই) বরং একটি বিস্তৃত আকারে বিকশিত হয়েছিল।

আপনাকে প্রথমে আপনার প্রকল্পের লক্ষ্যগুলি (এবং আপনি কী অর্জনের আশা করছেন) খুব স্পষ্ট করে তৈরি শুরু করতে হবে। আপনি কেবল মজাদার জন্য এই কাজটি করছেন বা অন্যরা আপনার ব্রাউজারটি ব্যবহার করবে বলে আপনি কি আশা করছেন? আপনি যদি অন্যরা এটি ব্যবহার করার প্রত্যাশা করেন তবে তাদের জন্য উত্সাহটি কী হবে? এটি আশা করা অবাস্তব যে আপনি স্ক্র্যাচ থেকে একটি নতুন ব্রাউজার বিকাশ করবেন যা সবাই ক্রোম, সাফারি, ফায়ারফক্স, আইই, অপেরা ইত্যাদির প্রতিস্থাপন হিসাবে ব্যবহার করতে সক্ষম হবে those সমস্ত প্রকল্পের 10-15 বছরের প্রধান সূচনা রয়েছে have আপনি, এবং আপনি যখন তাদের কাছে পৌঁছেছেন তখন সেগুলি আপনার চেয়ে আরও 10-15 বছর এগিয়ে থাকবে। এছাড়াও তাদের পিছনে আরও অনেক বেশি মানুষের শক্তি রয়েছে এবং তাই আপনি যদি আপনার প্রকল্পটি সফল হতে চান তবে আপনার কোনও পর্যায়ে সেই ব্যক্তির শক্তি প্রয়োজন।

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

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

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

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

আমার ব্যক্তিগত চিন্তা (যথেষ্ট গবেষণা না করে) আজকের ব্রাউজারগুলি যথেষ্ট পরিমাণে মডুলার হয় না। যদি আমি একটি নতুন ব্রাউজার তৈরি করতে যাচ্ছিলাম তবে আমি জিনিসগুলিকে অভ্যন্তরীনভাবে আউট করা এবং আউট করা সহজ করার একটি উপায় খুঁজে পাই (যেমন একটি জাভাস্ক্রিপ্ট ইঞ্জিনকে অন্যটির সাথে প্রতিস্থাপন করুন), এবং ব্যবহারকারীকে বর্তমানে বিদ্যমান ব্রাউজারগুলির তুলনায় অনেক বেশি নিয়ন্ত্রণ দিতে হবে । আধুনিক ব্রাউজার এবং ওয়েব ডিজাইনাররা ব্যবহারকারী থেকে প্রায় সমস্ত নিয়ন্ত্রণ সরিয়ে নিয়েছে। আমি কেন, ব্যবহারকারী, ওয়েব ব্রাউজারকে বলতে পারি না যে এটি কীভাবে আমার মেশিনে প্রদর্শিত হচ্ছে বিষয়বস্তু রেন্ডার করতে? আসল এইচটিএমএল কীভাবে বিষয়বস্তু গঠনের জন্য দিকনির্দেশনা দিয়েছিল এবং সময়ের সাথে সাথে আরও নতুন মান আরও বেশি কৌতূহলযুক্ত হয়ে উঠেছে, যেখানে ব্যবহারকারী এখন ওয়েব ডিজাইনারের সম্পূর্ণ করুণায় রয়েছে। লিনাক্সের আবেদনটি হ'ল এটি ব্যবহারকারীকে নিয়ন্ত্রণ ফিরিয়ে দিয়েছে এবং '

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

অবশেষে, প্রচুর এবং প্রচুর গবেষণা করার পরে, এখানেই আপনার কোডিং শুরু করা উচিত বলে আমি মনে করি:

  1. পুনরায় প্রকৌশলী মোজাইক, কিন্তু আপনার নিজের ডিজাইন আইডিয়া সহ। আপনি যদি এটি কেবল মজাদার জন্য বা আপনার নিজস্ব শিক্ষাগত সুবিধার জন্য করে থাকেন তবে আমার পরামর্শও এটি। আসল এইচটিএমএল ১.০ এবং এইচটিএমএল ২.০ স্প্যাকস, সেইসাথে এইচটিটিপি ১.১ স্পেস এবং বর্তমান ইউআরআই চশমা পড়ুন এবং নিশ্চিত করুন যে আপনার ব্রাউজারটি সেই সমস্ত চশমা মেনে চলেছে। আপনি অবশ্যই বিদ্যমান সফ্টওয়্যারটি ডাউনলোড করতে পারেন যা ইতিমধ্যে পরিবহন প্রোটোকল, ইউআরআই কনভেনশন ইত্যাদিকে পরিচালনা করে তবে আপনি যদি নিজের ব্রাউজারটি ডিজাইনের বিষয়ে গুরুতর হন তবে আমার মনে হয় এই জিনিসগুলিও স্ক্র্যাচ থেকে করা একটি ভাল অনুশীলন, তাই আপনি পান সমস্ত ধাঁধা টুকরা একসাথে ফিট করে কিভাবে একটি ভাল ধারণা। পদক্ষেপ 0 এর শেষে, আপনার কাছে এমন একটি ব্রাউজার থাকা উচিত যা 90 এর দশকে অত্যাধুনিকের তুলনায় কমপক্ষে তুলনীয়। এটি একটি ভাল প্রথম মাইলফলক। এবং আপনি প্রকৃতপক্ষে মূল মোজাইকটি ডাউনলোড করতে পারেনftp://ftp.ncsa.uiuc.edu/Mosaic/ এবং দেখুন এটি কীভাবে আপনার ব্রাউজারের সাথে তুলনা করে। মোজাইকের মতো একটি প্রাচীন ব্রাউজারে বর্তমান ওয়েবসাইটগুলি কীভাবে রেন্ডার করে তাও দেখার জন্য এটি একটি ভাল অনুশীলন।

  2. আপনার ব্রাউজারে DOM এর জন্য সমর্থন যুক্ত করুন। প্রথমে ডাব্লু 3 সি ডোম স্তর 1 এবং স্তর 2 তে ফোকাস করুন, যেহেতু সমস্ত বর্তমান ব্রাউজারগুলি সম্পূর্ণ সমর্থন করে। তারপরে স্তর 3 এবং স্তর 4 দেখুন The ডওম ওয়েব প্রোগ্রামিংয়ের জন্য অত্যন্ত মৌলিক এবং তাই যদি আপনি প্রকৃতপক্ষে একটি আধুনিক ওয়েব ব্রাউজার তৈরি করতে চলেছেন তবে এটির পুরো নকশাটিকে এটিকে বিবেচনায় নিতে হবে। যেহেতু আপনি সি # তে ব্রাউজারটি লিখছেন আপনি কীভাবে বিদ্যমান .NET অবজেক্ট মডেলটিকে আপনার সুবিধার্থে নিতে পারেন তা আপনি বিবেচনায় নিতে পারেন।

  3. বিদ্যমান স্ক্রিপ্টিং ইঞ্জিনগুলি দেখুন এবং দেখুন যে আপনি এগুলি আপনার প্রকল্পে পোর্ট করতে পারেন। আমি আপনাকে নিজের জাভাস্ক্রিপ্ট ইন্টারপ্রেটার লিখতে নিরুৎসাহিত করব, এটি কেবলমাত্র নিজের মধ্যে একটি খুব বড় প্রকল্প নয়, কারণ জেএস সংকলকগুলির (যেমন ভি 8) অনুকূলকরণের জন্য ইতিমধ্যে এত বেশি কাজ করা হয়েছে। সুতরাং আপনি যদি সংকলক ডিজাইনের গুরু না হন তবে আপনার হাতে তৈরি জেএস ইন্টারপ্রেটার সম্ভবত ইতিমধ্যে যা আছে তার চেয়ে নিকৃষ্ট হবে, এমনকি যদি এটি নির্বিঘ্নে EMCAScript স্পেস অনুসরণ করে। আবার, আমি মনে করি স্ক্রিপ্টিং ইঞ্জিন এমন কোনও কিছু হওয়া উচিত যা যাইহোক প্রকৃত ব্রাউজার থেকে সম্পূর্ণ পৃথক মডিউল, সুতরাং আমি মনে করি এটি একটি কাঠামো তৈরি করা আরও কার্যকর হবে যা আপনাকে কোনও স্ক্রিপ্টিং ইঞ্জিন তৈরির পরিবর্তে কোনও স্ক্রিপ্টিং ইঞ্জিন প্রতিস্থাপন করতে দেয় I এটি কেবল আপনার ব্রাউজারের সাথে কাজ করে।

  4. উত্তর আমেরিকার শীর্ষ 10-20 ওয়েবসাইটগুলির জন্য এইচটিএমএল / সিএসএস / জেএস উত্স কোডটি দেখুন (গুগল, ফেসবুক, ইউটিউব, টুইটার, উইকিপিডিয়া, অ্যামাজন, জনপ্রিয় ব্লগিং প্ল্যাটফর্ম ইত্যাদি) এবং এই ব্রাউজারগুলিকে এই সাইটগুলির সাথে ভালভাবে কাজ করার জন্য ইঞ্জিনিয়ার করুন । এটি বিদ্যমান ব্র্যান্ড তৈরির তুলনায় কিছুটা বেশি ট্র্যাকটেবল সমস্যা যা সমস্ত বিদ্যমান স্ট্যান্ডার্ডকে মেনে চলে (এমন কিছু যা বর্তমান ব্রাউজারগুলি এখনও পুরোপুরি না করে) এমন একটি ব্রাউজার তৈরি করে যা ওয়েবে সমস্ত ওয়েব সাইটকে সঠিকভাবে রেন্ডার করে (কেউ পারে না কর এটা). লোকেরা অভিযোগ করবে যে আপনার ব্রাউজারটি স্ট্যান্ডার্ডগুলি ভেঙে ফেলেছে এবং এটি এত বড় সমস্যা নয় যে লোকেরা অভিযোগ করে যে তারা আপনার ব্রাউজার দিয়ে গুগল বা ফেসবুক অ্যাক্সেস করতে পারে না। আমি এমন কোনও ব্রাউজারের কথা ভাবতে পারি না যা এর প্রথম প্রকাশে সমস্ত (বা এমনকি বেশিরভাগ) মানকে সঠিকভাবে অনুসরণ করেছে, তাই আমি বলছি চেষ্টা করেও বিরক্ত করবেন না।


4
ওয়েব ব্রাউজারগুলির বেশিরভাগ কোডের জন্য +1 আজ 1990 এর দশক থেকে নৌকা বোঝাই করে উত্তরাধিকারের বকুনি দিয়ে মারছে । গুগল ব্লিঙ্ক তৈরি করে এটি সমাধানের চেষ্টা করেছিল যা মূলত ৮৮.৮ মিলিয়ন লাইনের বর্জ্য অপসারণের সাথে ওয়েবকিট হলেও তবুও, ব্লিঙ্কের মধ্যে অবিচ্ছেদ্য প্রবেশপথের বক্রতা আটকে রয়েছে।
পেসারিয়ার

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

15

আপনার নিজের রেন্ডারিং ইঞ্জিন লেখার মতো?

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

এটি বলেছিল, এখানে কিছু (স্পষ্ট) পয়েন্টার রয়েছে:

  1. প্রচুর কোড লিখুন যা ছোট ছোট জিনিসগুলি করে, যেমন সমস্ত প্রজেক্টিউলআরনেট সমস্যা সমাধান করে
  2. আপনার টুলকিট এবং এর সম্প্রদায়ের মান সম্পর্কে আপনি যা কিছু করতে পারেন তা শিখুন
  3. আরও অনেক কোড লিখুন
  4. সীমাবদ্ধ রাষ্ট্রের মেশিনগুলির একটি সত্যিকারের উপলব্ধি পান
  5. আরও কোড লিখুন
  6. টিসিপি / আইপি স্ট্যাক এবং এটি HTTP- র জন্য কীভাবে ব্যবহৃত হয় সে সম্পর্কে সমস্ত কিছু শিখুন
  7. HTTP সম্পর্কে আপনি যা কিছু করতে পারেন তা শিখুন
  8. মানগুলি শিখুন (এইচটিএমএল, এক্সএমএল, এসজিএমএল, সিএসএস)
  9. আপনার 150 তম জন্মদিন উদযাপন করুন।
  10. আসল ব্রাউজার প্রকল্পে শুরু করুন।

নীচে সম্পাদনা করুন

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

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

অবশ্যই, আপনি যদি এটি করতে চান তবে আমার মন্তব্যটিকে আপনার পথে দাঁড়াতে দেবেন না। আপনি সম্ভবত ইন্টারনেট এক্সপ্লোরার এর চেয়ে ভাল করতে পারেন।


12
আমার উল্লেখ করা উচিত: আপনি যদি স্ক্র্যাচ থেকে একটি অ্যাপল পাই তৈরি করতে চান তবে আপনাকে একটি মহাবিশ্ব তৈরি করে শুরু করতে হবে।
ক্রিস

@ এমকে 12: সত্যই, ধন্যবাদ আপডেট হয়েছে।
ক্রিস

4
@ ক্রিস যখন ইউনিভার্স তৈরি করার মতো কিছু নেই তখন আপনি কীভাবে তৈরি করবেন?
uSeRnAmEhAhAhAhAhAhA

4
@ ব্যবহারকারী 2645707: আমি জানি না, আমি আমার চেয়ে স্মার্ট কাউকে তোতা দিচ্ছি। quotationspage.com/quote/26980.html
ক্রিস

12
"ইন্টারনেট এক্সপ্লোরার থেকে আপনি সম্ভবত আরও ভাল করতে পারেন" এর জন্য +1।
পুলাহ নন্ধা

14

এটি একটি উন্মত্ত উচ্চাভিলাষী প্রকল্প (বিশেষত একক বিকাশকারী) তবে এমন কিছু যা আমি একদিন করতে চাই - আপনি এটি থেকে এতটা শিখতে পারেন।

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


8

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

বলা হচ্ছে, এটি করা যেতে পারে। আমার পরামর্শটি ফায়ারফক্সের উত্স সন্ধান করা হবে। আমি জানি যে আপনি বলেছিলেন যে আপনি স্ক্র্যাচ থেকে একটি ব্রাউজার তৈরি করতে চান তবে প্রথমে একটি ওপেন-সোর্স প্রকল্প থেকে শেখা খুব সহায়ক হবে ।

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

তারপরে, আমি নিজের বিল্ডিং শুরু করব। ফায়ারফক্স আলাদা করে নেওয়ার মাধ্যমে আমি যে জ্ঞান অর্জন করেছি তা গ্রহণ করতাম এবং এটি একটি নতুন ব্রাউজার তৈরি করার জন্য রাখতাম।

একটি ভাগ্য সম্পূর্ণ অনেক আপনাকে!


ফায়ারফক্সকে কীভাবে বিচ্ছিন্ন করা যায় আপনি কোনও পয়েন্টার সরবরাহ করতে পারেন? মানে, আমি একটি exeফাইল পেয়েছি, যা ইনস্টল করার পরে, আমি প্রচুর dllফাইল সহ একটি উত্স ফোল্ডার পাই । আমি এটির যে আসল কোডটি করেছি এবং যুক্তি যা এর পিছনে চলেছে তা কীভাবে অধ্যয়ন করব?
সেক্সিবিস্ট 22'13

এই মন্তব্যটি পার্টিতে দেরিতে হলেও যাই হোক। .EXE এবং .DLL ফাইলগুলি একটি সংকলনের পদক্ষেপের ফলাফল এবং আপনি এটির বেশি অর্থ বোঝার আশা করতে পারেন না। প্রোগ্রামটি অনুধাবন করার জন্য আপনার উত্স কোড (কিছু সি ++ এবং বিভিন্ন ফাইলের অন্যান্য ভাষা) দরকার। প্রোগ্রামারদের তাদের নিজস্ব প্রোগ্রামটি অনুধাবন করা দরকার, তাই তারা কোডের বিভিন্ন কার্যকরী অংশগুলি পৃথক এবং নথিভুক্ত করে।
রায় প্রিনস


4

আপনি সুগঠিত এবং বৈধ এক্সএইচটিএমএল দিয়ে শুরু করতে পারেন, যা আপনার ব্রাউজারকে সত্যিকারের "জীবনে" সম্মুখীন করবে এমন ট্যাগ স্যুপের চেয়ে সহজ হওয়া উচিত।

তারপরে আপনাকে অবশ্যই ওয়েব থেকে আপনার প্রয়োজনীয়তার জন্য আসল এইচটিএমএলকে বাঁকানোর একটি উপায় খুঁজে বের করতে হবে।

তবে নিজেকে ছাগল না: একটি ব্রাউজার কোনও ছোট প্রকল্প নয়।


3

... তারপরে সুরক্ষা নিয়ে উদ্বেগ শুরু করুন

(অ-কার্যকরী এবং ক্রস কাটা উদ্বেগগুলি সাধারণত সামনে বিবেচনা করা উচিত :))


1

অত্যন্ত উচ্চাভিলাষী প্রকল্প তবে একজন বিকাশকারী একা এটি করতে পারবেন না আপনার একটি দল প্রয়োজন (প্রকল্প পরিচালক, পরীক্ষক ...) এবং আপনার নিজের ভাষা সি পছন্দ করতে পারেন সি # কেবল উইন্ডোতে কাজ করে (আমি লিনাক্সে মনোকে জানি তবে এটি নয়) একই) যাইহোক আমি আপনাকে শুভ কামনা করি এবং আমি আপনার ব্রাউজারটি ব্যবহার করে খুশি হব: ডি


0

আপনার হাতে সত্যিই অনেক ফ্রি সময় আছে, তাই না? আফাইক, বেশিরভাগ ব্রাউজার সি ++ তে লেখা ছিল, সমস্ত ব্যবহারকারীদের তাদের কম্পিউটারে .NET ফ্রেমওয়ার্ক ইনস্টল করা থাকে না এবং যদি তারা এটি করে তবে এটি আপনার প্রয়োজনীয় সংস্করণ নাও হতে পারে।

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


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