গুগল ওয়েব টুলকিট ব্যবহার করবেন না? [বন্ধ]


55

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

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

জিডব্লিউটি ব্যবহারের বিরুদ্ধে যুক্তিগুলি কী কী এবং কেন?


11
ভেবেছিলাম জিডব্লিউটি মারা গেছে।
অ্যারন ম্যাকআইভার

1
@ অ্যারন, সত্যি?
জেস

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

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

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

উত্তর:


84

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

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

জিডব্লিউটিতে এইচটিএমএল ব্যবহার করা সফল হয়।

যেমনটি আমি বলেছিলাম, কিছুটা ডিগ্রি পর্যন্ত এমনকি এইচটিএমএলকে বিমূর্ত করে তোলে। এটি জাভা বিকাশকারীকে ভাল লাগছে। কিন্তু এটা না. এইচটিএমএল একটি ডকুমেন্ট মার্কআপ ফর্ম্যাট। আপনি যদি কোনও দস্তাবেজ সংজ্ঞায়িত করতে জাভা অবজেক্ট তৈরি করতে চান, আপনি দস্তাবেজ মার্কআপ উপাদানগুলি ব্যবহার করবেন না। এটা পাগলভাবে ভার্বোজ হয়। এটি যথেষ্ট পরিমাণে নিয়ন্ত্রণ করা হয় না। এইচটিএমএলে মূলত লেখার একটি উপায় রয়েছে <p>Hello how are <b>you</b>?</p>। জিডব্লিউটিতে আপনার Bকাছে একটি Pনোডের সাথে 3 টি শিশু নোড (পাঠ্য , পাঠ্য) সংযুক্ত রয়েছে । আপনি হয় প্রথমে পি তৈরি করতে পারেন, বা প্রথমে শিশু নোড তৈরি করতে পারেন। শিশু নোডগুলির মধ্যে একটি ফাংশনের রিটার্ন ফলাফল হতে পারে। অনেক বিকাশকারীদের সাথে কয়েক মাস বিকাশের পরে, আপনার জিডব্লিউটি কোডটি সনাক্ত করে আপনার এইচটিএমএল ডকুমেন্টটি কেমন লাগে তা বোঝার চেষ্টা করা মাথা ব্যথা প্ররোচনার প্রক্রিয়া।

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

জিডাব্লুটিটিতে সিএসএস ব্যবহার করা সফল হয়।

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

সমস্যার ইউনিয়ন, বেনিফিটের ছেদ

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

উদ্বেগ বিচ্ছেদ

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

ডেস্কটপ! = ওয়েব

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

উপসংহারে...

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


2
আমি উইকিটকে জিডাব্লুটিটির চেয়ে বেশি কিছু কারণ বিবেচনা করেছি, উপস্থাপনা থেকে বিরত থাকি।
20:30

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

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

1
@ জারোডরোবারসন আমি নিকের সাথে একমত, আপনার অভিজ্ঞতার সমানভাবে বিস্তারিত লেখা পড়া ভাল লাগবে।
ফানকিব্রো

8
@ নিকসি "কম সময়ে" একটি প্রকল্প পুনর্লিখনের জন্য জিডব্লিউটি আইএমওর জন্য একটি বিশাল আঘাত হিসাবে গণ্য হয় না; এমন কোনও প্রকল্প যেখানে আপনি মূলত বিভিন্ন ফ্রেমওয়ার্ক বা ভাষায় এর আগে যা করা হয়েছে তার পুনরাবৃত্তি করতে "কম সময়" নেওয়া উচিত।
ফানকিব্রো

24

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

আমাদের প্রয়োজনীয়তা হয়েছে:

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

আমরা জিডব্লিউটি বেছে নিয়েছি এবং আমি কখনই আফসোস করি না। নতুন দলের কোনও বা কম ডিএইচএমটিএল অভিজ্ঞতা ছিল এবং তাই GWT এর জাভা দেব প্রক্রিয়াটি খুব সহায়ক ছিল very আপনি বাক্সটি যা পাবেন তা হ'ল:

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

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

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

আমার জন্য জিডব্লিউটি একমাত্র পছন্দ যখন এটি আরআইএ বিকাশের ক্ষেত্রে আসে এবং আমি আশা করি যে জিডব্লিউটি একটি উজ্জ্বল ভবিষ্যত রয়েছে। মিশনের বিবৃতি এখানে দেখুন:

[1] http://code.google.com/intl/de-DE/webtoolkit/makinggwtbetter.html#intrration

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

[2] http://googlewebtoolkit.blogspot.com/2011/11/gwt-and-dart.html
[3] https://plus.google.com/105933370793992913359/posts/bLfSagtziBC

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