- Why? - To improve performance (that is not call db an each provider request).
- Where? - At the point of fething data from
OfferProvidercomponent (repositories). - How? - By using
Rails.cache#fetch
Why we don't like caching?
| - grafika | |
| - - konwertowanie obrazków pomiędzy formatami | |
| - - rodzaje kompresji, formaty obrazów i ich cechy (np że png waży więcej od jpg i dlaczego) | |
| - - popularne filtry | |
| - - cięcie layoutu - co to znaczy, jak się to robi | |
| - - czym się różni grafika wektorowa od rastrowej | |
| - - przeźroczyste tło w obrazkach (wady, zalety) | |
| - opensource i free software | |
| - - co to znaczy? na czym polega? | |
| - - popularne projekty opensource |
| u = User.new(params) | |
| if u.save | |
| # redirect | |
| else | |
| # render form with errors | |
| end | |
| # task: Dodać sprawdzanie czy user jest fraudem. |
| def new | |
| # initialize a hash from | |
| @inputs = Form.new( | |
| user_name: '', | |
| some_field: some_object.default_some_field, | |
| something: { | |
| a: '', | |
| b: 'some default value' | |
| } | |
| ) |
| def new | |
| # initialize a hash from | |
| @inputs = { | |
| user_name: '', | |
| some_field: some_object.default_some_field, | |
| something: { | |
| a: '', | |
| b: 'some default value' | |
| } | |
| } |
| class CreateUser | |
| class Error < StandardError; end | |
| # ... | |
| end | |
| # contoller | |
| begin | |
| user = CreateUser.new(params).call | |
| p "User #{user.username} created succesfully" |
| class A | |
| def call | |
| # do something | |
| end | |
| end | |
| class B | |
| def call(argument) | |
| # do something different | |
| end |
| # Managing own fork | |
| ### Configure upstream | |
| git remote -v | |
| git remote add upstream [email protected]:wimdu/wimdu.git | |
| ### Syncing to upstream | |
| git checkout master | |
| git fetch upstream master | |
| git reset --hard upstream/master |
| def print_translations(hash, phrase_key, i = 0) | |
| hash.each do |k, v| | |
| if v.is_a?(Hash) | |
| i.times { print ' ' } | |
| print "#{k.to_s.camelize(:lower)}: {\n"; | |
| print_translations(v, "#{phrase_key}.#{k}", i + 1) | |
| i.times { print ' ' } | |
| print "},\n" | |
| else i.times { print ' ' } | |
| print "#{k.to_s.camelize(:lower)}: t('#{phrase_key}.#{k}'),\n" |
| module Container | |
| # Initialized once (kind'a singleton) | |
| def self.a | |
| @a ||= Object.new | |
| end | |
| # Initialized every time. | |
| def self.b | |
| Object.new | |
| end |