В течения дня разрабатываю коммерческие Ruby on Rails, Java и C# web-приложения. Вечером исследую технологии разработки ПО, пишу заметки в блог и иногда могу забить гвоздь. :) По возможности, стараюсь делать проще и удобнее. Для Tumblr поддерживаю тему "Flashback to Simplicity". А связаться со мной можно через местный телеграф.
Ruby on Rails 3 Bundler: Как заморозить gem в проект?
Иногда так случается, что нужно значительно модифицировать существующий исходный код gem-а, который в оригинальном виде нас не устраивает. Если проект открытый, то можно форкнуть код gem-а на GitHub-е и указать в Gemfile путь к репозиторию:
Но если проект, закрытый, то такая тема может не покатить. В данном случае необходимо запечатать/заморозить gem в проект, для последующего его изменения.
Памятка: русские и английские названия шаблонов проектирования
Так как заказчики бывают разные, и из России и зарубежные, то для русскоязычного программиста важно знать, не только русские названия шаблонов проектирования, но и английские. Поэтому и была составлена схема соответствия между русскими и английскими названиями популярных шаблонов проектирования.
Основные шаблоны:
Стратегия — Strategy
Наблюдатель — Observer
Декоратор (Обёртка) — Decorator (Wrapper)
Простая фабрика — Simple factory
Фабричный метод — Factory method
Абстрактная фабрика — Abstract factory
Одиночка — Singleton
Команда — Command
Адаптер — Adapter
Фасад — Facade
Шаблонный метод — Template method
Итератор — Iterator
Компоновщик — Composite
Состояние — State
Заместитель — Proxy
Дополнительные шаблоны:
Мост — Bridge
Строитель — Builder
Цепочка обязанностей — Chain of responsibility
Приспособленец — Flyweight
Интерпретатор — Interpreter
Посредник — Mediator
Хранитель — Memento
Прототип — Prototype
Посетитель — Visitor
P.S.: Данная схема удобна и наглядна в первую очередь для меня самого, но будет здорово, если она окажется полезной и для вас.
Программист, разрабатывающий свою вторую систему, склонен добавлять все те возможности, которые он не смог добавить в свою первую систему (из-за нехватки времени). Поэтому вторая система часто получается перегруженной возможностями.
— Фредерик Брукс, “Мифический человеко-месяц или как создаются программные системы”