Владимир обнови решението на 11.10.2016 22:40 (преди около 8 години)
Интересен подход :) Можеш ли да се сетиш как да направиш преобразуванието на две стъпки, така че да нямаш толкова случаи?
Бях тръгнал да го пиша като всичко минава през Целзий, но ми заприлича доста на черво и трябваше да пиша тестове, за което нямах време. Освен това пише че няма да подавате невалидни стойности за мерки, така че подходих straightforward.
Явно имаме различни разбирания за straightforward. Аз лично тук виждам повече неща за тестване, но мога да се съглася с това щом за теб е по-ясно така.
Защо реши да сложиш подразбираща се стойност тук? Има ли смисъл от това?
Спестява ми втория параметър на долната функция за която НЕ си написал че се чете трудно за разлика от третата в която го има.
Не съм написал, защото се подразбираше :) Всъщност се чете по-трудно, защото трябва да jump-на в процеса на четене, за да видя има ли default и какъв е той.
Този мапинг е добре да го изнесеш като константа извън функцията. И да не се казва mapping
- всеки хеш е някакъв mapping. Това име не дава никаква информация.
Сама по себе си тази функция държи единствено този хеш и mapping ми се вижда ОК като име. Глобалните променливи са лоши а да пиша модул с една константа или Struct за това ми се видя overkill. Не обичам не namespace-нати константи. Като цяло тази функция съществува за да не стои хеш-а извън нея.
В случая си представи, че тези функции са в някакъв модул. По принцип не би ги написал ей така в Object. Просто още не сме предали модули.
Не си заслужава ключовете на хеша да са символи ако ще правиш to_sym
навсякъде. Подаваме стринг - логично е да пазиш и самите имена на елементи като стрингове. Не печелиш нищо от това, че са хешове.
Като цяло предпочитам символите и вече я бях написал като осъзнах, че параметъра е стринг и трябва да я каствам. Приемам забележката - нужно ли е да го поправям?
Няма да отнемаме точки за неадресирани коментари, ако това питаш.
На този ред се случват доста неща, хубаво е да изкараш една променлива с get_temperature(element, :boiling)
. Като я именуваш добре ще стане доста по-лесно за четене. :)
Да го преправям ли?
Чакай сега. Идеята не е аз да ти кажа направи това
, ти да си помислиш това е безсмислено
и да го промениш само, защото съм го коментирал.
Идеята е да стане дискусия, в която да стигнем до по-добър вариант на кода и да си извадим някакви изводи, които да са полезни по-натам.
Хаха, не ме разбра. Съгласих се с теб и въпроса беше точно дали ще взимате точки за неоправени коментари. Ще го рефакторирам тия дни и ще кача нова версия. : )
Няма да взимаме точки :)
Интересен подход :) Можеш ли да се сетиш как да направиш преобразуванието на две стъпки, така че да нямаш толкова случаи?
Бях тръгнал да го пиша като всичко минава през Целзий, но ми заприлича доста на черво и трябваше да пиша тестове, за което нямах време. Освен това пише че няма да подавате невалидни стойности за мерки, така че подходих straightforward.
Явно имаме различни разбирания за straightforward. Аз лично тук виждам повече неща за тестване, но мога да се съглася с това щом за теб е по-ясно така.
Защо реши да сложиш подразбираща се стойност тук? Има ли смисъл от това?
Спестява ми втория параметър на долната функция за която НЕ си написал че се чете трудно за разлика от третата в която го има.
Не съм написал, защото се подразбираше :) Всъщност се чете по-трудно, защото трябва да jump-на в процеса на четене, за да видя има ли default и какъв е той.
Този мапинг е добре да го изнесеш като константа извън функцията. И да не се казва
mapping
- всеки хеш е някакъв mapping. Това име не дава никаква информация.Сама по себе си тази функция държи единствено този хеш и mapping ми се вижда ОК като име. Глобалните променливи са лоши а да пиша модул с една константа или Struct за това ми се видя overkill. Не обичам не namespace-нати константи. Като цяло тази функция съществува за да не стои хеш-а извън нея.
В случая си представи, че тези функции са в някакъв модул. По принцип не би ги написал ей така в Object. Просто още не сме предали модули.
Не си заслужава ключовете на хеша да са символи ако ще правиш
to_sym
навсякъде. Подаваме стринг - логично е да пазиш и самите имена на елементи като стрингове. Не печелиш нищо от това, че са хешове.Като цяло предпочитам символите и вече я бях написал като осъзнах, че параметъра е стринг и трябва да я каствам. Приемам забележката - нужно ли е да го поправям?
Няма да отнемаме точки за неадресирани коментари, ако това питаш.
На този ред се случват доста неща, хубаво е да изкараш една променлива с
get_temperature(element, :boiling)
. Като я именуваш добре ще стане доста по-лесно за четене. :)Да го преправям ли?
Чакай сега. Идеята не е аз да ти кажа
направи това
, ти да си помислиштова е безсмислено
и да го промениш само, защото съм го коментирал.Идеята е да стане дискусия, в която да стигнем до по-добър вариант на кода и да си извадим някакви изводи, които да са полезни по-натам.
Хаха, не ме разбра. Съгласих се с теб и въпроса беше точно дали ще взимате точки за неоправени коментари. Ще го рефакторирам тия дни и ще кача нова версия. : )
Няма да взимаме точки :)