- Why? - To improve performance (that is not call db an each provider request).
- Where? - At the point of fething data from
OfferProvider
component (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 |