Рубрика «Go» - 46

image
Некоторые очень явно отдают предпочтение CLI (источник: Imgur)

Пока облачные технологии набирали популярность, платформа Amazon Web Services (AWS), обеспечивающая сегодня работу многих интернет-гигантов и определяющая стандарты того, как должны быть организованы многие облачные сервисы, стала бесспорным лидером рынка облачных вычислений. Чтобы понимать как исползовать постоянно растущее число сервисов и предоставляемые ими возможности, DevOps инженер должен не отставать от темпа развития облачных технологий, который задает Amazon, и это становится настоящим испытанием.

DevOps'ы часто задаются вопросом о том, как лучше управлять быстро растущей инфраструктурой AWS. Они размышляют, лучше ли использовать для этого GUI (AWS console) или CLI (AWS CLI). А может быть использовать и то, и другое?

Представляем вашему вниманию третий вариант, созданый для облегчения работы DevOps'ов: awless.io — новый open source CLI для AWS, написанный на Go. Проект получил одобрение Джеффа Барра (Jeff Barr), рок-звезды AWS, и всего за несколько месяцев собрал более 2.5K звезд на GitHub. В этой статье я объясню, почему компания Wallix, в которой я работаю, создала awless.io, и почему мы считаем, что этот инструмент может помочь DevOps'ам.
Читать полностью »

Содержание

В этой части я попытаюсь кратко пройтись по пропущенным местам нашего очень упрощенного веб-приложения на Go.

Читать полностью »

Содержание

  1. Часть 1
  2. Часть 2
  3. Часть 3
  4. Часть 4

В результате предыдущих статей у нас получилось приложение на Go, которое может обслуживать небольшой кусочек HTML. Эта статья расскажет о клиентской части, которая, увы, состоит в основном, из JavaScript, а не Go.

Читать полностью »

Содержание

  1. Часть 1
  2. Часть 2
  3. Часть 3
  4. Часть 4

Итак, наше приложение будет иметь две основные части: клиентская и серверная. (Какой сейчас год?). Серверная часть будет на Go, а клиентская — на JS. Давайте сначала поговорим о серверной части.

Читать полностью »

Содержание

  1. Часть 1
  2. Часть 2
  3. Часть 3
  4. Часть 4

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

Я решил воспользоваться этой возможностью и сделать такое руководство, в котором начать с нуля веб-приложение так, как это должно быть сделано в 2017 году (в моем понимании). Я провел много часов, докапываясь до тех вещей, которых раньше обычно избегал, просто для того, чтобы хотя бы раз за много лет я мог с уверенностью заявить, что у меня есть свой взгляд и опыт в этом вопросе, и получить для себя работающий рецепт, который, возможно, пригодится не только мне.

Читать полностью »

AlphaGo выиграл второй из трех матчей с чемпионом мира по го Кэ Цзе - 1

Совсем недавно на Geektimes публиковалась информация о том, что AlphaGo, компьютерная система, разработанная компанией DeepMind, победила чемпиона мира по го Кэ Цзе в первом из трех матчей в рамках праздника го. Перевес компьютера по очкам был совсем небольшим, но некоторые эксперты посчитали, что разработчики Deep Mind просто не захотели, чтобы система разгромила мастера, для добавления зрелищности этому матчу.

Некоторые профессиональные игроки в го с высоким даном, следившие за ходом матча, заявили впоследствии, что человек вряд ли способен выиграть у компьютера. Возможно, подтверждением этих слов можно назвать результаты второго матча, в котором снова победил компьютер, ранее побивший Ли Седоля.
Читать полностью »

Сервисы по продаже подержанных автомобилей обычно построены по одному принципу: «разместил объявление, позвонили, показал машину, продал». В таких проектах высокие технологии сконцентрированы, в основном, вокруг самого сайта. Но у нас всё иначе. Мы создали платформу, на которой любой желающий может продать автодилерам через аукционную систему свою подержанную машину (даже аварийную), с проверкой технического состояния нашими специалистами. Причём продать по рыночной цене уже через полчаса после выставления на аукцион. За кажущейся простотой описания скрывается сложная экосистема из самописных и сторонних программных продуктов, о которой мы хотим рассказать.

image
Читать полностью »

На прошлой неделе компания CoreOS порадовала очередным Open Source-проектом — zetcd. На самом деле о нём было известно ещё с прошлого года, но теперь состоялся первый релиз, который перевёл продукт в статус бета-тестирования — заявил о готовности продукта к серьёзным испытаниям перед выпуском в мир production. Авторы позиционируют zetcd как готовую замену для ZooKeeper внутри таких распределённых/кластерных решений, как Mesos, Apache Kafka и Apache Drill. Их настрою не препятствует даже тот факт, что etcd предлагает «плоское» хранение ключей-значений против иерархического подхода своего конкурента. Как они к этому пришли?
zetcd от CoreOS: Заменяя ZooKeeper на… хранилище etcd - 1
Читать полностью »

image

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

Как и в большинстве других ситуаций с несколькими возможными решениями, дело не в том, какой из вариантов лучше, дело в понимании компромиссов. В этой статье мы сравним Node, Java, Go и PHP из-под Apache, обсудим модели ввода/вывода в разных языках, рассмотрим достоинства и недостатки каждой модели и прогоним простенькие бенчмарки. Если вас волнует производительность ввода/вывода вашего следующего веб-приложения, то эта статья для вас.

Читать полностью »

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

Как обычно выглядят тесты?

Очень схематично, каждый юнит-тест обычно состоит из следующих шагов:

  1. инициализации входных данных;
  2. выполнения бизнес-логики и получения результата;
  3. сравнения результата с эталоном.

Входные и выходные данные зачастую находятся в самом коде; когда изменения кода привносят ожидаемые изменения в выходных данных, эталонные результаты приходится править вручную. В некоторых случаях, когда данные для теста объемны, их выносят в отдельные файлы, но поддержка эталонных данных, а так же логика сравнения остается на плечах разработчика.

Но ведь все это можно унифицировать!

Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js