
Свежая подборка новостей и материалов
Интересное в этом выпуске
Выпущены версии 1.18.1 и 1.17.9, результаты опроса разработчиков Go 2021, вопросы и ответы для собеседования Go-разработчика, сетевой сниффер на golang
Приятного чтения!
Backend Engineer
Свежая подборка новостей и материалов
Интересное в этом выпуске
Выпущены версии 1.18.1 и 1.17.9, результаты опроса разработчиков Go 2021, вопросы и ответы для собеседования Go-разработчика, сетевой сниффер на golang
Приятного чтения!
Свежая подборка новостей и материалов
Интересное в этом выпуске
Выпущены версии 1.18.2 и 1.17.10, результаты опроса разработчиков в Go GUI, TinyGo теперь с поддержкой Go 1.18, go является любимым и быстрорастущим языком на GitHub, заметки о практическом параллелизме.
Приятного чтения!
Свежая подборка новостей и материалов
Интересное в этом выпуске
Выпущены версии 1.18.3 и 1.17.11, go 1.19 Beta 1 Released, обнаружен еще один ботнет на GO, собеседование Часть II что там с конкурентностью?
Приятного чтения!
За последние 10 лет я поменял 3 работы, прособеседовался с 10+ компаний на позицию разработчика (software engineer) и вел переписку с HR/рекрутерами из нескольких десятков фирм. По ходу дела заметил, что вопросы, которые я задаю на собеседовании с менеджером/командой или с HR, повторяются, и решил их структурировать. Некоторые из них являются общими, и их может задать кандидат на почти любую вакансию; другие касаются только вакансий для программистов. В этой статье поделюсь с вами наиболее типичными и важными вопросами, которые, на мой взгляд, может задать соискатель потенциальному работодателю.
Чему учит эта книга: быть понятным
Чему она научила меня: вести коммуникацию так, чтобы после нее люди выходили уверенные и окрыленные
Что я хочу от материала: кратко объяснить основные идеи книги, которые помогают упаковать свои мысли в более понятную форму
Привет! Меня зовут Александр Сусиков, я тимлид команды, которая занимается платформой PaaS для СберМаркета. В этой статье я расскажу, как повысить скорость разработки с помощью кодогенерации.
В предыдущей статье все закончилось на том, что мы выделили отдельные сервисы из единого монолита.
В детстве у меня была Mattel Auto Race — портативная игровая консоль со встроенным LED-экраном с красными светодиодами, элементами управления, одной игрой и динамиками. Почему-то я однажды о ней вспомнил и субботним вечером решил создать версию игры, используя p5.js. Сначала дела шли хорошо: я поработал над встречными автомобилями и логикой создания и удаления автомобилей. Затем я решил немного усложнить игру, добавив немного рандома в процесс появления автомобилей.
Вот тогда я столкнулся с проблемами. Что-то было не так с тем, как я управлял таймингом — я никак не мог заставить машины появляться в нужном мне порядке. Повозившись с разными вариантами, я так и не понял, что не так, и разочаровался. Прошло 2 дня, а я так и не могу вернуться к проекту, чтобы не сталкиваться с досадой и чувством разочарования.
Но оказалось, что так и должно быть.
Работа современной компании зависит от стабильности функционирования серверной инфраструктуры, на базе которой построены бизнес-процессы. В свою очередь, надежность серверного оборудования складывается из нескольких факторов: операционной системы, аппаратных компонентов, бесперебойного электроснабжения и системы охлаждения.
В этом посте мы на примере сервера Altos P550 F4 рассмотрим, на какие характеристики нужно обращать внимание, чтобы сохранить непрерывность бизнеса.
Комплектующие
Один из критически важных факторов, влияющих на надежность работы сервера — его комплектующие. Вряд ли кто-то может всерьез рассчитывать, что подобранные по принципу минимальной стоимости или наибольшей доступности компоненты сервера покажут приемлемое время наработки на отказ. Гораздо более вероятно, что в самое неподходящее время произойдет сбой, в результате которого устройство будет недоступно.
Не менее значимым является совместимость комплектующих сервера между собой. Особенное значение это имеет в настоящее время, когда по различным причинам в мире нарушены цепочки поставок. Компромиссные решения типа замены отсутствующих на складе деталей на то, что имеется в наличии, также могут привести к различным сбоям из-за проблем с драйверами или аппаратной совместимостью.
Именно поэтому в серверах Altos используются собственные разработки компании. Это позволяет добиться максимальной совместимости и решает проблемы с доступностью необходимых компонентов. Политика компании состоит в том, чтобы обеспечить максимальную надежность при высоком уровне качества.
Эту статью я решил написать после прочтения резонансных эмоциональных публикаций на тему технического регресса в ИТ-индустрии (https://habr.com/ru/post/596517/ и https://habr.com/ru/post/673236/). Поскольку я сам много лет занимался вопросами безопасности и качества в сфере транспорта, в ней я постараюсь осветить корни проблемы и возможные пути её решения.
Снижение качества продукции в сфере ИТ — часть общемирового тренда на падение уровня качества во всех ключевых отраслях экономики. Если посмотреть динамику за последние 30 лет, то ситуация в ИТ принципиально ничем не отличается от ситуации в строительстве или любой другой отрасли. Эту проблему тщательно замалчивают, поскольку предание её огласке поставило бы множество неудобных вопросов перед органами власти в любом государстве.
Меня все сильнее раздражает, сколько людей готовы записывать в REST API любой интерфейс на основе HTTP. Сегодня приведу в качестве примера SocialSite REST API. Это же вызовы удаленных процедур (RPC). Он просто выкрикивает RPC. Связность между элементами на экране настолько сильная, что это творение заслуживает рейтинга X.
Относительно недавно мы начали строить качественно новую версию платформы "Юнидата", в которой изменилось очень многое, включая архитектуру, технологии, подход. Даже основная идея продукта приросла новыми деталями.
Нам кажется, что здорово делиться опытом подобных изменений, поэтому мы хотим сделать несколько статей о том, как устроена изнутри "Юнидата". В этой, первой, статье речь пойдет о UI. О том, как было раньше, что побудило нас кардинально пересмотреть стек и организацию работы с кодом, и что получилось в итоге.
Об авторе статьи. Меня зовут Илья, я занимаюсь разработкой новой версии. Мне не довелось работать с предыдущими версиями "Юнидата", и в проект я пришел на этапе прототипа. Я могу быть не до конца объективен на тему того, почему было выбрано то или иное решение, если это происходило еще до моего присоединения к продукту. В причинах перехода я написал свое видение, после общения с командой.
Итак, всем, кто любит истории переезда с ноткой технических особенностей, добро пожаловать под кат.
Краткий тех.обзор
Сейчас мы имеем модульный монолит и на бэке и на фронте. Они расположены в отельных репозиториях + есть еще один, который содержит настройки для запуска всего приложения в контейнерах.
Кроме того, продукт разделён на Community Edition (хранится в публичном гитлабе) и Enterprise Edition.
Фронтенд состоит из 20 модулей (число не конечное). Мы используем свежую версию typescript и почти свежую react (сейчас 16, но перевод на 17 - дело ближайшего времени). Применяем MVC подход в каждом модуле: реакт только view-слой, своя observable модель (обязательно про нее напишем отдельную статью), mobx сторы в качестве контроллеров.
Интересное в этом выпуске
Выпущен Go 1.17, как выпустить игру для Steam на GO
Приятного чтения!
Итак, у вас на руках «полыхающий» проект — сроки задержаны настолько, что заказчик всерьез задумывается о закрытии проекта. Или регулярно взрывающийся production не дает сфокусироваться на новых задачах а то и спать по ночам. Или вы впервые видите этот проект, но вообще-то ему уже пара лет, просто изначальная команда куда-то пропала. Или все это произошло разом, а вы здесь чтобы с завтрашнего дня взять ситуацию в свои руки и за пару месяцев показать существенный сдвиг.
На прошедшей в апреле конференции TeamLead Conf 2021 я поделился своим опытом, как вытащить проект из пожара и обойтись без человеческих жертв. Под катом моя история, а если предпочитаете смотреть — вот запись выступления.
Это вторая часть материала про выгорание. Первая часть была посвящена тому, что такое выгорание от работы и какие у него симптомы. Сегодня речь пойдёт о стадиях выгорания и что при этом с нами происходит.
Это часть серии публикаций в блоге, посвященных различным факторам проектирования микросервисов. Здесь приведены ссылки на более подробное рассмотрение отдельных тем, представленных в данном посте.
Хочу представить вам свой проект – библиотеку RUI (Remote User Interface). Библиотека предназначена для создания web-приложений на языке go.
Особенностью библиотеки заключается в том, что вся обработка данных осуществляется на сервере, а браузер используется как тонкий клиент. Для связи клиента и сервера используется WebSocket. Для разработки вам не нужны HTML/CSS/JavaScript. Все разрабатывается на языке go.
Другие особенности библиотеки: поддержка светлой и темной тем, поддержка стилей оформления, мультиязыковая поддержка, поддержка экранов с разной плотностью пикселей.
Библиотека бесплатна и распространяется под MIT лицензией. В данный момент библиотека находится в статусе беты.
Если вас это заинтересовало, то прошу в статью.