Monday, January 19, 2015

রুবি অন রেইলসে প্রয়োজনীয় কিছু টিপস & ট্রিকস: From Rails Cast

রেইলস কাস্টের প্রায় ৪০০ এর উপরে ভিডিও টিউটরিয়াল আছে। এত এত টপিক নিয়ে ভিডিও করা হয়েছে যে মনে রাখা কঠিন। অনেক সময় কোন জায়গায় কোন কোড লিখেছিল তাই ভুলে যাই। তাই লিখে রাখা।


006-shortcut-blocks-with-symbol-to-proc: আমরা রেইলস কনসোলে ছোট ছোট block of code দিয়ে আমাদের এপ্লিকেশন টেস্ট করতে পারি। এখানে তাই দেখানো হয়েছে।

009-filtering-sensitive-logs: অনেক ক্ষেত্রে রেজিস্ট্রেশনের সময় রেইলস লগে পাসওয়ার্ড প্লেইন টেক্সে যায়। ফলে হ্যাকার সার্ভার হ্যাক করলে পাসওয়ার্ড বা ক্রেডিট কার্ডের ইনফরমেশন পেয়ে যাবে। তাই আমাদের লগের পাসওয়ার্ড ফিল্ডকে ফিল্টার করতে হবে।
এর জন্য এপ্লিকেশন কন্ট্রোলারে লিখুন 

filter_parameter_logging "password"

010-refactoring-user-name-part-1 থেকে 12 পর্যন্তঃ  এই তিনটি টিউটরিয়ালে first name এবং last name কে কম্বাইন করে একটি হেল্পার মেথড full_name করা হয়েছে এবং অটোটেস্ট করা হয়েছে।

013-dangers-of-model-in-session : আমরা সেশন সেভ করার সময় এটার session[:user] না লিখে session[:user_id] নিয়ে কাজ করতে হবে। না হলে ইউজার ভুল ইনফরমেশন পাবে। 







better if you watch the video.

022-eager-loading: কয়েক প্রকার লোডিং টেকনিক আছে। এটা অন্যতম। এর কাজ হচ্ছে পেজে যা যা দরকার সব লোড করে নিয়ে আসা। তবে ভিডিওতে দেখানো হয়েছে এর ফলে এই কোডিং স্ট্রাকচারে অনেকবার কিউরি করতে হয়। ফলে include ব্যবহার করে একটি মাত্র কুয়েরীতে কাজ কমপ্লিট।



আরো কয়েক প্রকার লোডিং আছে। Lazy Loading এ ইউজার যখন চায় ঠিক তখনই কিউরী হয় এবং ডাটা লোড হয়।


025-sql-injection.mp4 : সার্চ ফিল্ড থাকলে এগুলোতে sql ইনজেকশন করে হ্যাকাররা সাইট হ্যাক করতে চায়। রেইলসে sql ইনজেকশন প্রটেক্টের জন্য ভাল সিকিরিটি রাখা হয়েছে। তবে কোডারের ঠিকমত কোডিং না করার কারনে ইনজেক্ট কোড দেয়ার কারনে সার্চ রেজাল্টে এরর আসতে পারে।

কোডটা এভাবে না লিখে এভাবে লেখা যায় =>

ভিডিওটি দেখলে বেসিকটা ক্লিয়ার হবে।

026-hackers-love-mass-assignment & revised: ফায়ারবাগ দিয়ে এডিট করে দেখা যেতে পারে যে একজন ইউজার এডমিনের পারমিশন নিয়ে নিতে পারে।
আমরা এটা ব্যবহার করে access নির্ধারন করে দিতে পারি।

027-cross-site-scripting.mp4: কমেন্ট বক্সে হ্যাকাররা জাভা স্কীপ্ট এমবেড করে হ্যাক করার চেষ্টা করতে পারে। তাই কমেন্ট বক্সে যেন জাভাস্কীপ্ট সাপোর্ট বা করে এর জন্য h যোগ করে দিতে পারি।


034-named-routes: অনেক আগের টিউটরিয়াল। rails 4 এ অনেক ভিন্নতা।

038-multibutton-form: সাবমিট বাটন ছাড়াও দেখা যায় preview বাটন রাখতে হয়। সেক্ষেত্রে কিভাবে বিষয়টাকে হ্যান্ডেল করতে হবে দেখানো হয়েছে।

041-conditional-validations : আমাদের ফর্ম ভেলিডেট করতে হয়। সাধারন বিষয়গুলো ছাড়াও আরো কিছু এডভান্স লেভেলের  লজিক থাকে যেগুলো ভেলিডেট করতে হয়। আমরা এই ভিডিও টিউটরিয়ালের মাধ্যমে শিখতে পারব।

043-ajax-with-rjs.mp4 : এটা এজাক্সকে যোগ করার সুন্দর একটা পদ্ধতি। সার্ভারে বার বার রিকোয়েস্ট না পাঠিয়ে ডায়নামিক্যালী কাজ করে ফেলে। ধরুন আমরা প্রোডাক্ট রিভিউ এড করতে চাই। তাহলে কমেন্ট বক্সে রিভিউ লিখে সাবমিট দিলেই হবে। পরের পেজে আর লোড করে নিয়ে যাবে না। এই পেজেই যা এড করা হয়েছে তা দেখাবে।

046-catch-all-route: যেমন একটা প্রোডাক্ট আছে banana. example.com/banana দিলেই যেন example.com/product/3 এখানে যেতে পারে সেজন্য রাউটিং নিয়ে বিভিন্ন বিষয় আলোচনা করা হয়েছে।

047-two-many-to-many : অনেকগুরুত্বপূর্ণ একটা বিষয় তুলে ধরা হয়েছে। many to many relationship এর ক্ষেত্রে আমরা ডাটাবেজ ডিজাইন কিভাবে করব এবং সবগুলো বিষয়কে model এ কিভাবে নিয়ে কাজ করব তা দেখানো হয়েছে।

049-reading-the-api.mp4 : এই ভিডিওতে রেইলসের নিজস্ব ক্লাস এবং মেথড কিভাবে ব্যবহার করতে হবে তা দেখানো হয়েছে।

053-handling-exceptions: যখন এপ্লিকেশনে কোন প্রবলেম হয় তখন environment এ true করে দেই।
config.consider_all_requests_local = true
 ফলে কি প্রবলেম হয়েছে তা ধরা যায়।

054-debugging-with-ruby-debug: রুবি ডিবাগ নামের জেম দিয়ে দেখানো হয়েছে কিভাবে আমরা লাইন টু লাইন ডিবাগ করে এপ্লিকেশনের প্রবলেম বের করে ফেলতে পারি।

062 Hacking ActiveRecord : আপনি কি চান validation কে অস্থায়ীভাবে ডিসেবল করে দিতে? কিন্তু Active রেকর্ড এটা করতে দিবে না। ভিডিওটি একটু এডভান্স লেভেলের, দেখুন বুঝতে পারেন কিনা।

067-restful-authentication : ডিভাইসের মত একটি অথেনটিকেশন সিস্টেম। nothing special.

071-testing-controllers-with-rspec: Rspec দিয়ে কিভাবে কনট্রোলারকে টেস্ট করা হয়েছে তা দেখানো হয়েছে।

076-scope-out : Don't know

078-generating-pdf-documents : জেম এর সাহায্যে পিডিএফ ডকুমেন্ট জেনারেট করে। এখানে ruby pdf writer ব্যবহার করা হয়েছে। PDF ডকুমেন্ট জেনারেট করার জন্য অনেক জেম আছে। সেগুলো যে কোন একটা ইউজ করলেই কাজ হয়ে যাবে।

081-fixtures-in-rails-2-0: ওয়েবসাইট টেস্টিং এর ক্ষেত্রে ব্যবহার করা হয়

089-page-caching-revised : রেইলসের ডিফল্ট টেকনিক্যের সাহায্যে পেজ ক্যাশিং করা হয়।

090-fragment-caching-revised :  আর এটা একটা পেজের কোন নির্দিষ্ট অংশ ক্যাশিং করা হয়।

110-gem-dependencies :  এটা আসলে rails 2.1 এর জন্য করা। জেম এর ভার্সনগুলোকে আগে থেকেই ডিফাইন করে দেয়া হয় environment.rb ফাইলে।

118-liquid : ওয়ার্ডপ্রেসে পেজের মধ্যে স্লাইডশো এড করার জন্য আমরা শর্টকোড ইউজ করি। ঠিক এভাবে রেইলসেও করা যায়। এক্ষেত্রে টেমপ্লেটিং সিস্টেমে liquid সহয়তা করে। 

126-populating-a-database : অনেক সময় আমরা চাই যে একসাথে অনেকগুলো ডাটা ডাটাবেজে ঢুকিয়ে ফেলতে। এই কাজটা ওরা populator জেম দিয়ে করেছে rake task ক্রিয়েট করে। আর faker জেম দিয়ে কতগুলো নাম জেনারেট করেছে। এই নামগুলোই ডাটাবেজে ঢুকানো হয়েছে।

130-monitoring-with-god : আমাদের সার্ভারের ইনফরমেশন সার্বক্ষনিক পাওয়ার জন্য আমরা god জেম ব্যবহার করতে পারি।

141-paypal-basics-143 Security:  সাইটের checkout অংশে কিভাবে ঠিকমত সিকিরিটি দিয়ে পেপাল এড করা যায় তা দেখানো হয়েছে।

155-beginning-with-cucumber: কিউকাম্বার দিয়ে behaviour টেস্টিং করা হয়

178-seven-security-tips:  এই সিকিরিটি টিপসগুলো অনেক ইমপর্টেন্ট। প্রথমদিকে ভিডিওগুলোতে কিছু আলোচনা করা হয়েছে। এখানে সবগুলো সমন্বয় করা হয়েছে। এই লিঙ্কে সিকিরিটি টিপসগুলো পড়ার অনুরোধ রইল।

180-finding-unused-css : এখানে deadweight জেম ব্যবহার করে যে যে সিএসএসগুলো পুরো এপ্লিকেশনে ইউজ হয় নি সেগুলো ডিলিট করা হয়েছে।

192-authorization-with-cancan: Admin, Manager, Editor এইরকম বিভিন্ন ধরনের রোল আমাদের সাইটে ব্যবহার করা লাগে। এইসব ম্যানেজের ক্ষেত্রে cancan জেম ব্যবহার হয়।

195-my-favorite-web-apps-in-2009: রাইয়ান ২০০৯ সালে বের হওয়া যেসব সুন্দর সুন্দর অ্যাপস আছে, সেগুলো দেখানো হয়েছে।

199-mobile-devices :  কিভাবে মোবাইল ডিভাইসের জন্য ভিন্ন ভিন্ন টেমপ্লেট নিয়ে সাইট বানানো যায় তা দেখানো হয়েছে।

217-multistep-forms: অনেকগুলো ফর্ম থাকবে step অনুযায়ী। সবগুলো ডাটা কালেক্ট করে নিয়ে শেষে ডাটাবেজে সেভ করবে।

221-subdomain : লোকালহোস্টে কিভাবে সাবডোমেইন নিয়ে কাজ করতে হবে তা দেখানো হয়েছে।

242-thor :  rake কমান্ড দিয়ে আমরা আমাদের টাস্কগুলো করতে পারি। তবে যদি task এর সংখ্যা বেশি হয় এবং এডভান্স লেভেলের কিছু হয় তাহলে rake ব্যবহার না করে thor ব্যবহার করতে পারি।

264-guard : নতুন কিছু শেখার মত একটা ভিডিও। rspec কমান্ড বারে বারে চালিয়ে টেস্ট করা অনেক সময় সাপেক্ষ ব্যাপার। guard জেম সেটা অটো করে দিবে। livereload নামে একটা জেম এবং ফায়ারফক্স এক্সটেনশন আছে। যার কাছে রেইলস ফাইলে কিছু চেঞ্জ হলেই সেটা অটোরিলোড করে দেয়া।

253-carrierwave-file-uploads: ফাইল আপলোড করার সুন্দর একটা জেম।

261-testing-javascript-with-jasmine-revised: দেখানো হয়েছে কিভাবে জেসমিন জেম দিয়ে জাভাস্কীপ্টের টেস্টিং করতে হয়। ক্রেডিট কার্ড ভেলিডেশনের একটা কাজ দেখানো হয়েছে।

268-sass-basics : css এর উন্নত ভার্সন হচ্ছে sass. এতে আরো এডভান্স লেভেলে কাজ করা যায় ভেরিয়েবল ডিক্লেয়ার করে। আরো অনেক ফিচার আছে এতে।

279-understanding-the-asset-pipeline : Nice tutorial to know asset pipeline.

288-billing-with-stripe.mp4 : কিভাবে স্ট্রাইপ পেমেন্ট গেটওয়ে দিয়ে ইউজার পেমেন্ট করতে পারবে তা দেখানো হয়েছে।

290-soap-with-savon: soap : কানেকশনের সাহায্যে আমরা অনেক কিছু করতে পারি। জিপ কোড, আবহাওয়া সহ আরো ইনফরমেশন বের করে নিজেদের সাইটে দেখাতে পারি। soap কানেকশনের জন্য কিভাবে savon জেম ব্যবহার করে কাজ করতে হবে তা দেখানো হয়েছে।

298-getting-started-with-spree :  spree হচ্ছে রেইলস দিয়ে করা একটি ইকমার্স cms. কিভাবে এটা কনফিগার এবং অভাররাইট করতে হয় তা দেখানো হয়েছে।

302-in-place-editingঃ  In place Editing এর জন্য best in place জেম নিয়ে কিভাবে কাজ করতে হবে দেখানো হয়েছে।

312-sending-html-email : roadie জেমের সাহায্যে দেখানো হয়েছে কিভাবে html মেইল আমরা অটোমেটিক পাঠাতে পারি। এটা নিউজলেটারের ক্ষেত্রে কাজে দিবে।

313-receiving-email-with-mailman: মেইলম্যান জেমের সাহায্যে দেখানো হয়েছে কিভাবে ইউজারদের পাঠানো ইমেইল টিকেটগুলো রিসিভ করা যায় ডায়নামিক নাম্বারিং সহ।

316-private-pub : চ্যাটবক্স তৈরি করার জন্য private pub জেম ব্যবহার করা হয়।

320-jbuilder : এই জেম ইউজ করে json আউটপুট করা হয়েছে। 

322-rabl: Jbuilder থেকে আরো এডভান্স লেভেলের জেম rabl জেসন আউটপুট করার জন্য।

324-passing-data-to-javascript: don't know.

328-twitter-bootstrap-basics : less এবং saas এর জন্য কিভাবে টুইটার বুটস্ট্র্যাপ রেইলসে ইন্সটল করা যায় তা দেখানো হয়েছে।

329-more-on-twitter-bootstrap : আগের টিউটরিয়ালটির আরো বিস্তারিত বর্ননা।

332-refinery-cms-basics :  সাধারন কোন সাইট বানাতে চাইলে আমরা refinery cms দিয়ে খুব সহজেই বানাতে পারি।

336-copycopter : Don't know.

339-chef-solo-basics  : ভিপিএস সার্ভারে আমাদের অনেক কমান্ড চালাতে হয় সার্ভার কনফিগারেশনের জন্য। আমরা কমান্ডগুলো আগেই লিখে রাখতে পারি। আর chef দিয়ে একটা মাত্র কমান্ডের সাহায্যেই চালাতে পারি।

346-wizard-forms-with-wicked:  অনেকগুলো ফর্ম থাকবে step অনুযায়ী। সবগুলো ডাটা কালেক্ট করে নিয়ে শেষে ডাটাবেজে সেভ করবে।

350-rest-api-versioning : জেসন দিয়ে আমরা rest api বানাই। এগুলোর ভার্সন কনট্রোল rocket pants , versionist এসব জেম ব্যবহার করা হয়েছে।

360-facebook-authentication.mp4 : omni-auth দিয়ে ফেসবুক অথেনটিকেশন করে লগিন করানো হয়।
361 facebook graph api: Koala জেম দিয়ে যে কোন ফেসবুক অ্যাাপ বানানো যাবে।

368-miniprofiler: এই জেম দিয়ে দেখা যায় যে সাইটের লোড কতমিলি সেকেন্ড। কয়টা sql কিউরি হয়েছে, কোথায় টাইম বেশি লাগছে।

372-bullet : আমরা যে কুয়েরী লিখি তা দেখা যায় যতটুকু শো করবে তার চেয়েও বেশি sql লেখা হয়ে যায়। ফলে n+1 প্রবলেম তৈরি হয়। bulltet জেমের কাজ হল n+1 প্রবলেম তৈরি হওয়ার সাথে সাথেই সেটা জানিয়ে দেয়া। ডেভেলাপার তখন তার কুয়েরী স্ট্যাডার্ড ফরমেটে লিখবে

374-image-manipulation: এখানে দেখানো হয়েছে বিভিন্ন ইমেইজ মেনুপুলেশন জেম দিয়ে একটা ছবিকে বিভিন্ন রূপ দেয়া হয়েছে।

380-memcached-dalli :  ক্যাশিং করার জন্য memcache অনেক ভাল একটা টেকনিক। এই ভিডিওতে এটা করার জন্য dalli জেম ব্যবহার করা হয়েছে। টিউটরিয়ালটি ফুলফিল মনে হয় নি।

382-tagging: Act as taggable জেম দিয়ে ট্যাগ এবং ট্যাগ ক্লাউড বানানো হয়েছে।

383-uploading-to-amazon-s3 : fog এবং carrier wave জেম ব্যবহার করে s3 তে ইমেইজ আপলোড করা হয়েছে।

384-exploring-rubygems : কিভাবে ভাল রেইলস জেমগুলো চেনা যায় তার একটা বর্ননা দেয়া হয়েছে। 

387-cache-digests : এই জেম ক্যাশিং এর ক্ষেত্রে ভার্সন কন্ট্রোলিং এর মত কাজ করে। 

390-turbolinks : এটা রেইলস এপ্লিকেশনকে অনেক ফাস্ট করে। 

392-a-tour-of-state-machines : state machine এর অনেকগুলো জেমের কাজ দেখানো হয়েছে। আর কোন একটা প্রোডাক্ট অর্ডার করার পর shipment হয়, এই সময়ে আবার অর্ডার ক্যান্সেলও করা যায় এবং টাকা রিফান্ড করা যায়। বা একটা প্রোডাক্ট অর্ডার করার পর এটা কোন স্টেটে আছে সেটা আমরা এই জেমগুলো দিয়ে দেখাতে পারি।

394-sti-and-polymorphic-associations : don't know. এটা জাস্ট একটা পদ্ধতি। এই কাজ অন্য প্রকিয়াতেও করা যায়।

395-action-controller-walkthrough : রেইলসের সোর্সকোড থেকে দেখানো হয়েছে কিভাবে action controller এর মধ্যে রিকোয়েস্টগুলো হ্যান্ডেল করা হয়।

397-action-view-walkthrough : রেইলসের সোর্সকোড থেকে দেখানো হয়েছে কিভাবে action view এর মধ্যে রিকোয়েস্টগুলো হ্যান্ডেল করা হয়।

400-what-s-new-in-rails-4: রেইলস ৪ এ নতুন কি কি এসেছে তা দেখানো হয়েছে।

406-public-activity :ইউজাররা কে কোথায় কমেন্ট করছে তাদের একটিভিটিগুলো ট্র্যাক রাখা জরুরী। public activity জেম দিয়ে কিভাবে ট্র্যাক রাখা হয় তা দেখানো হয়েছে।














No comments:

Post a Comment

এখানে আপনি আপনার মূল্যবান মতামতটি প্রকাশ করতে পারেন।