Pull to refresh
12
0
Дмитрий @charger_lda

Разработчик

Send message

Тестирование приложения на Go как черный ящик при помощи Rspec

Reading time6 min
Views3.5K
Хорошо написанные тесты значительно уменьшают риск “поломать” приложение при добавлении новой фитчи или исправлении ошибки. В сложных системах, состоящих из нескольких взаимосвязанных компонентов, наиболее сложным является тестирование их точек соприкосновения.

В этой статье я расскажу о том как мы столкнулись со сложностью написания хороших тестов при разработке компонента на Go и как решали эту задачу используя библиотеку RSpec в Ruby on Rails.
Читать дальше →
Total votes 17: ↑16 and ↓1+15
Comments10

Пример получения данных из AWS Cloudwatch используя Google Script

Reading time2 min
Views4.5K
Cloudwatch Log это сервис AWS в который приложения или Bash скрипты могут отправлять данные в виде строк или JSON, потом их можно найти или построить различные графики средствами того же AWS.

Как то раз у меня возникло желание получить данные из AWS Cloudwatch Log, обработать их особым образом и красиво представить в виде графика. Google Spreadsheet хорошо справляется с визуализацией данных, и ранее для подобных задач я загружал в него данные используя Ruby. Но тот же ruby скрипт нужно где-то хостить и периодически запускать, а все что он будет делать это запрашивать данные из одного API (AWS) и ложить их в другой (Spreadsheet). Хорошо бы, если бы Spreadsheet сам мог бы запрашивать данные, и оказывается он может, используя Google Script. Удивительно, сколько всего на самом деле умеют гугл доки.

Google Script позволяет не только создавать пользовательские функции и макросы используя JavaScript, но и обращаться к внешнему API.
У AWS есть SDK под JavaScript, так что я не ожидал никаких сложностей, но не тут то было. Оказалось, что этот SDK будучи импортированным в проект GS не может найти объект «window» и не работает.

Пришлось почитать API доки и самому реализовать вычисления сигнатуры для запроса. В этом нет ничего технически сложного, просто склеивание строк и вычисление хеша. Поэтому я не вдаюсь в подробности, а просто представляю свое решение на случае если кто-то столкнётся с подобной задачей.

Читать дальше →
Total votes 7: ↑7 and ↓0+7
Comments0

Избавляемся от повторения кода с помощью DRY CRUD

Reading time5 min
Views9.2K
Фреймворк Ruby on Rails меня просто очаровывает, но до недавнего времени некоторую сложность представляла из себя генерация CRUD контроллеров.

Почти всегда мне было необходимо реализовывать списки с сортировкой, фильтрацией и пагинацией, а стандартного способа этого достичь в рельсах я не обнаружил. Перепробовал несколько вариантов и ни один меня не удовлетворил:
  • стандартный генератор scaffold_controller — ничего подобного нет, CRUD с простейшим дизайном
  • nifty Scaffold — его разработка приостановлена, но все равно фильтрации и сортировки нет
  • гем для DataTable — не прижился, он обеспечивает только представление данных, а код для фильтрации и сортировки пришлось бы писать самому

Долгое время не удавалось найти ничего похожего на полюбившийся мне виджет CGridView из Yii framework. Уже почти смирился с необходимостью писать свой велосипед, но наткнулся на DRY CRUD и хочу поделится опытом его использования. Может кому-то он окажется полезным, а может кто-то подскажет еще более подходящий инструмент.
Далее
Total votes 14: ↑12 and ↓2+10
Comments4

Information

Rating
Does not participate
Location
Кривой Рог, Днепропетровская обл., Украина
Registered
Activity