У нас в компании часто возникает необходимость протестировать приложение на предмет работы с реальными данными. Причём, данные должны быть максимально приближены к реальным как с качественной стороны, так и с количественной. Работу по наполнению базы такими данными значительно упрощают гемы Populator и Faker.
Предположим, что у нас есть модель User:
email:string
first_name:string
last_name:string
ssn:string
security_question:string
answer:string
phone:string
address:string
city:string
state:string
zip:string
Чтобы сгенерировать для таблицы users 1000 тестовых пользователей, будем использовать следующий код:
require 'populator'
require 'faker'
# Populate DB with Users
User.populate(1000) do |user|
user.email = Faker::Internet.email
user.first_name = Faker::Name.first_name
user.last_name = Faker::Name.last_name
user.ssn = Faker.numerify("###-##-####")
user.security_question = Populator.words(4..10)
user.answer = Populator.words(1..3)
user.phone = Faker.numerify("#"*10)
user.address = Faker::Address.street_address
user.city = Faker::Address.city
user.state = Faker::Address.us_state_abbr
user.zip = Faker::Address.zip_code
end
Следует отметить, что Populator не наследует ActiveRecord-модель, а работает с БД напрямую с целью повышения производительности. В качестве значения полей можно передавать массивы или рейнджи, Populator автоматически выберет случайное.
user.sex = ["male", "female"]
user.age = 20..30
No Comments | Posted in General, RubyOnRails
В кабинетах уже практически завершён ремонт. Куплены новые компьютеры и мебель. Осталось привести в порядок коридор и наше любимое место — кухню!
Пока нам приходится каждый день преодолевать препятствия в виде рабочих на лестнице, расставленных вёдер с краской и прочих мелких строительных атрибутов :) Но все эти неудобства незначительны, и мы сильно не переживаем, стараясь относиться ко всему с юмором. Знаем, что всё это - ради достижения великой цели — работать в чистом и красивом офисе, обустроить своё пространство и сделать его уютным, практически домашним :)
Так что, добро пожаловать! Приходите в скором времени на новоселье, и мы будем рады, если вам захочется у нас остаться!
No Comments | Posted in General
Только что закончилось наше импровизированное совещание по вопросу “Как сделать наш блог интересным и тем самым дать знать о нашей клевой компании Флэтсофт”.
Вкратце идеи: (пишу сюда в частности, чтобы не забыть)
- Постить посты в ай-ти тему. Программирование, менеджмент, наши ноу-хау.
- Постить в блог отчеты из отпусков сотрудников
- Постить в блог фото-экскурсии по
блогуофису
- Снять на видео пути проезда к нам в офис с двух концов сиб. тракта
- Снять на видео “день программиста” в формате реалити-шоу. Со всеми заходами на кухню, совещания, рисование в тетрадках и т.д. Без звука, а потом подложить что-нибудь при монтаже.
- Размещать рассказы сотрудников о их увлечениях и успехах в хобби, например. Один сотрудник в неделю.
Помимо этого, попробовали организовать небольшой флэшмобчик, который завершился провалом. Запостили в твиттер апдейт про нашу вебку в конференц-комнате и ожидали хоть какой-то наплыв посетителей на сайт. Напрасно..
Мне очень нравится идея про “день программиста” на видео.
Будем рады любым советам.
6 Comments | Posted in General
Очень суровой и морозной была зима в этом году, тем радостнее ожидание весны и наступившей Масленицы!
Чем не повод собраться всем вместе на чаепитие с горячими блинами?:)
На масленичной неделе каждый день насыщен событиями.
Например, второй день масленицы - вторник посвящался молодоженам, начиналось катание с гор на санках.
В среду - зятья ходили к тещам на блины, а в пятницу наоборот - в гости должны приходить тещи.
В Масленицу на Руси гуляли, веселились, гадали, устраивали соревнования, в том числе по поеданию блинов.
Поэтому есть идея всю неделю приносить блины и экспериментировать с начинками! А по итогам недели, за самый вкусный и оригинальный рецепт, победитель будет награжден блинами!
2 Comments | Posted in General
Всем желающим предлагаем ходить в тренажерный зал. Находится на 5 этаже нового Гранд-отель Казань. Сейчас есть недостаток в том, что парковка до 5 этажа закрыта, но машину можно оставить в крытой парковке на 1 этаже и подняться на лифте.
Планируется взять дневной абонемент ходить туда перед работой где-то с 8.30-9.00 до 10.30. По дневному абонементу можно неограниченно ходить туда с 8 до 17 ежедневно.
3 Comments | Posted in General