Как стать автором
Обновить
33.6
Карма
0
Рейтинг
Timur Vafin @timurv

Пользователь

  • Подписчики 28
  • Подписки 30

Организация постоянных редиректов с www.domain на domain и обратно.

Вы сможете сделать при помощи `Redirect` «умное» перенаправление типа example.com/some-url на www.example.com/some-url?

VexorCI — свежий взгляд на continuous integration

Миф о идеальном количестве строк в методе

Допустим, есть модуль, скачивающий страницы с некоторого сайта и распарсивающий их.


Так плохо делать, модуль/класс должен делать что то одно. В вашем примере должно быть два класса.

1) Узнать информацию о поставщике;
2) Узнать информацию о лотах закупки;
3) Узнать информацию о аукционе закупки;
4) Узнать информацию о протоколах закупки;
5) Узнать информацию о последней дате изменения состояния закупки.


В вашем примере имеет смысл сделать разные классы для все 1-5 случаев скачивания и парсинга с одинаковым интерфейсом, и используя полиморфизм их вызывать в цикле.

Таким образом вы сделаете главный класс, который оперирует подклассами удовлетворающим Open/Closed principle.
Так же было бы хорошо сделать, чтобы подклассы были слабо связаны друг с другом, т.е. их можно было бы использовать и тестировать независимо.

Как то так с ошибками

class CalculateSomeShit
  ACTIONS = %i(
    SomeShit1
    SomeShit2
    SomeShit3
    SomeShit4
    SomeShit5
  )

  class SomeShit1
    def initialize(context)
      @context = context
    end

    def call
      @context[:shit1] = calculate(fetch)      
    end

    private

    def fetch
    end

    def calculate
    end
  end

  class SomeShit2
    def initialize(context)
      @context = context
    end

    def call
      @context[:shit2] = calculate(fetch(@context[:shit1]))      
    end

    private

    def fetch
    end

    def calculate
    end
  end  

  def call
    {}.tap do |context|
      ACTIONS.each do |action|
        context = action.new(context).call
      end      
    end
  end
end

Правила для разработчиков от Sandi Metz

Предлагается использовать полиморфизм, чтобы избавиться от сложных условий.

Conditional code clutters methods, makes extraction and reuse harder, and can lead to leaky concerns. Object-oriented languages like Ruby allow developers to avoid conditionals using polymorphism. Rather than using if/else or case/when to create a conditional path for each possible situation, you can implement a method differently in different classes, adding (or reusing) a class for each situation.
— Ruby Science

Как правильно вести себя в open space

> Работать в openspace нельзя.
Как же Google, Yandex?

Redis in production

Несколько сумбурно показалось, но все равно здорово читать статьи, основанные на практике.
Спасибо.

Проект Google Fiber вступил в фазу практической реализации

Легко ошибиться:
— MB — мегабайт
— Mbit — мегабит

Kazan.rb #1 — встреча Ruby & Rails программистов в Казани 21 мая в It-park

на первых порах не успеваем организовать запись, в следующий раз обязательно!

Dropbox уязвим изначально?

— Не думай.
— Если думаешь – не говори.
— Если думаешь и говоришь – не записывай.
— Если думаешь, говоришь и записываешь – не подписывай.
— Если думаешь, говоришь, записываешь, подписываешь – не удивляйся.

Всплывающие flash-сообщение из глубин фоновых задач

А для чего привязка к модели User?

Генерация RSS из постов на Tumblr dashboard

Я к сожалению не могу по вашему комменту сказать, что вы делаете не так.

И всё-таки оно взламывается!

5 советов по проведению хорошего обзора кода

Как раз ищется инструмент, чтобы просматривать коммиты, комментировать коммиты построчно, ставить подпись.

5 советов по проведению хорошего обзора кода

Он действительно на столько хорош, что можно его купить и потратить время на интеграцию с git?
Из коробки на сколько я понял, он имеет только консольный клиент, работающий с git.

5 советов по проведению хорошего обзора кода

Занимаюсь темой code review тоже, ищу инструменты для автоматизации.

Пока на выбор:
* howsmycode.com/
* www.reviewboard.org/

Было бы здорово, если бы кто нибудь посоветовал работающую схему.

Дополненная реальность AlterGeo – теперь отменяем вопрос «Кто там?»

Вам говорили, что у вас изощренное чувство юмора? )

Отладчик регулярок pyRoge

А я ее всегда называл задачкой Вербера ;)

Занятная экономика — такси каждый день дешевле своего автомобиля

Знакомый таксист будет лишним, когда вы захотите провести рамантический вечер со своей девушкой за городом ;)

Google запускает поиск в реальном времени

За YouTube заплатили лишний миллиард

Я не стал бы считать мелкой утилиткой приложение, над которым работает такое количество разработчиков.

Информация

В рейтинге
Не участвует
Откуда
Казань, Татарстан, Россия
Дата рождения
Зарегистрирован
Активность