Search
Write a publication
Pull to refresh
0
0
Дмитрий @d9k

TypeScript/SQL разработчик

Send message

Стратегии деплоя в Kubernetes: rolling, recreate, blue/green, canary, dark (A/B-тестирование)

Reading time5 min
Views91K
Прим. перев.: Этот обзорный материал от Weaveworks знакомит с наиболее популярными стратегиями выката приложений и рассказывает о возможности реализации наиболее продвинутых из них с помощью Kubernetes-оператора Flagger. Он написан простым языком и содержит наглядные схемы, позволяющие разобраться в вопросе даже начинающим инженерам.


Схема взята из другого обзора стратегий выката, сделанного в Container Solutions

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

Более короткие и частые развертывания имеют следующие преимущества:

  • Сокращается время выхода на рынок.
  • Новые функции быстрее попадают к пользователям.
  • Отклики пользователей быстрее доходят до команды разработчиков. Это означает, что команда может дополнять функции и исправлять проблемы более оперативно.
  • Повышается моральный дух разработчиков: с большим количеством функций в разработке интереснее работать.
Читать дальше →

Микросервисы: пожалуйста, не нужно

Reading time7 min
Views87K


Иллюстрация @alvaro_sanchez


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


Естественно, в реальности все оказалось совсем наоборот. Когда смотришь назад, на произошедшее, то зрение оказывается ближе к 100%, чем когда смотришь с надеждой в будущее.


Я хочу рассказать о некоторых важных заблуждениях и подводных камнях движения за микросервисы с точки зрения человека, который работал в компании, убежденной в идее целительных свойств микросервисов. Я не хочу, чтобы выводом этой статьи для вас стало "микросервисы == плохо", но в идеале я хотел бы, чтобы вы задумались о проблемах когда будете решать, подходит ли вам микросервисная архитектура.

Читать дальше →

Перфекционист? Готовься остаться без работы

Level of difficultyEasy
Reading time8 min
Views42K

Уже 8 лет я — бэкенд-разработчик. Последние три года работаю в продуктовой компании, где до недавнего времени все ценили мой подход к работе: архитектура, чистый код и продуманная система всегда стояли на первом месте. Если что-то делали, то делали хорошо, чтобы потом не переделывать. 

Читать далее

«Пора валить из фронтенда»: Андрей Ситник о стагнации сообщества, опенсорсе и не только

Reading time27 min
Views85K


Андрей Ситник из Злых марсиан — одно из самых известных российских имён во фронтенде: у его проектов PostCSS и Автопрефиксер счёт GitHub-звёзд идёт на десятки тысяч. Но поскольку Андрей живёт в Нью-Йорке, а путешествует по всей планете, застать в России его можно нечасто.

В мае он будет в Петербурге на конференции HolyJS, и по этому поводу его подробно расспросили участники программного комитета HolyJS Дмитрий DmitryMakhnev Махнёв и Максим Юзва. Почему Андрей считает, что фронтенд стагнирует, а код наших проектов излишне разбухший? В чём различия IT-сообществ разных стран? Как учить английский и почему это менее важно, чем кажется? Куда пропал проект Logux, презентованный на HolyJS ещё в 2016-м?
Читать дальше →

Typeser: 1С-like ERP-конструктор на базе TypeScript

Reading time6 min
Views6.6K

Хотелось бы представить на суд местного сообщества недавно созданную облачную веб платформу разработанную бывшим 1с-овцем освоившим java, js, ts, react.

Интерфейсы TypeScript(*.d.ts файлы) генерируются на лету. Они актуальны и доступны в коде даже без сохранения конфигурации.

Главная фишка - есть возможность писать обработчики событий на языке TypeScript и sql код на триггеры при записи объектов. Редактор кода тоже онлайн и реализован на базе monaco-editor. В нем типизируется все: структура и типы метаданных, данные и элементы формы, события обработчиков.

Читать далее

Понимание брокеров сообщений. Изучение механики обмена сообщениями посредством ActiveMQ и Kafka. Глава 1

Reading time7 min
Views113K
Всем привет!

Начал перевод небольшой книги:
"Understanding Message Brokers",
автор: Jakub Korab, издательство: O'Reilly Media, Inc., дата издания: June 2017, ISBN: 9781492049296.

Из введения к книге:
"… Эта книга научит вас рассуждать о системах обмена сообщениями на брокерах, сравнивая и противопоставляя две популярные технологии брокеров: Apache ActiveMQ и Apache Kafka. Здесь будут изложены примеры использования и стимулы разработки, которые привели к тому, что их разработчики использовали совершенно разные подходы к одной и той же области — обмену сообщениями между системами с промежуточным брокером. Мы рассмотрим эти технологии с нуля и выделим влияние различных вариантов дизайна на этом пути. Вы получите глубокое понимание обоих продуктов, понимание того, как их следует и не следует использовать, и понимание того, на что следует обращать внимание при рассмотрении других технологий обмена сообщениями в будущем ..."

Переведенные к настоящему моменту части:
Глава 1. Введение
Глава 2. ActiveMQ
Глава 3. Kafka

Перевод выполнен: t.me/middle_java

Буду выкладывать законченные главы по мере перевода.
Читать дальше →

Почему портятся приложения: тирания маржинального пользователя

Level of difficultyEasy
Reading time5 min
Views18K

Недавно мы с моим другом оплакивали странную смерть OKCupid. Семь лет назад, когда я впервые попробовал онлайн-знакомства, он работал следующим образом: нужно было написать длинный рассказ о себе и о том, что ты ищешь. Ты отвечал на сотни вопросов о своей личности, мечтах, о том, что хочешь увидеть в партнёре, о том, что для тебя недопустимо. Затем тебе показывали самых совместимых с тобой пользователей с «показателем соответствия» от 0 до 100%. Эти показатели работали пугающе хорошо. Почти каждый раз, когда я читал профиль пользователя с показателем соответствия 95% или выше, я как будто немного влюблялся. Каждое свидание было интересным; «химия» возникала не всегда, но мне казалось, что мы, по крайней мере, можем стать отличными друзьями.

Сегодня я достаточно скептически отношусь к количественным оценкам романтики и к идее о том, что схожесть обеспечивает хорошие отношения. Да и в то время я был довольно скептичен. Чего я не ожидал, так это того, что OKCupid образца 2016 года окажется лучшим, на что будут способны сервисы онлайн-знакомств. Что инструменты, при помощи которых люди будут пытаться искать самые важные отношения в своей жизни, будут становиться всё хуже, и хуже, и хуже. OKCupid, как и другие проекты, купленные Match.com, сегодня стал просто ещё одним клоном Tinder — видишь лицо, свайпаешь влево, видишь лицо, свайпаешь вправо. Цифровой ночной клуб. А я не хочу искать себе жену в ночном клубе.

И это касается не только приложений для знакомств. Почти все популярные потребительские приложения двигаются в сторону минимального участия пользователя, лент с бесконечным скроллингом и мусорного контента. Даже самое драгоценное в Интернете, поиск в Google, настолько испортился, что его нельзя использовать для сложных запросов. Reddit и Craigslist остаются невероятно полезными и ценными именно потому, что их ПО замерло в своём развитии. Как старые викторианские дома в Сан-Франциско, они стоят, защищённые причудами судьбы от ветров капитала, напоминая нам о более гуманной эпохе.

Читать далее

Страх и ненависть в ГОСТ Р 51583-2014 (18+)

Level of difficultyMedium
Reading time6 min
Views34K

Статья посвящена проблемам при планировании, управлении и создании сложных информационных систем. Иногда на то что ты делаешь или в чём участвуешь требуется посмотреть иным взглядом. Думаю многим будут до боли знакомы перечисленные грабли.

Поехали

BEM'a не должно существовать

Reading time4 min
Views64K

Здравствуйте.

BEM'а не должно существовать. Есть огромное количество причин не использовать эту методологию, но из-за её простоты использования и непонимания работы CSS и HTML, методология широко распространилась среди фронтендеров всего мира, в большинстве случаев среди разработчиков СНГ. Используется BEM сейчас как на больших русскоязычных проектах (Yandex, Habr), так и в некоторых фреймворках (react-md). В этой статье пойдёт подробный разбор плюсов и минусов этого подхода к разработке. Все примеры вёрстки будут взяты с официального сайта BEM.
Читать дальше →

Добавили бота в свой Telegram канал? Будьте готовы с ним попрощаться

Level of difficultyEasy
Reading time3 min
Views43K

Изучая безопасность мессенджера Telegram, меня поразила одна его "особенность" при работе с ботами - выяснилось, что при добавлении в канал бота никак нельзя ограничить его в правах на удаление подписчиков. То есть, говоря прямо, любой бот может вычистить всю аудиторию канала за считанные минуты.

Читать далее

Шаблоны GRASP: Information Expert (информационный эксперт)

Reading time4 min
Views23K
Привет, хабровчане. На связи Владислав Родин. В настоящее время я преподаю на портале OTUS курсы, посвященные архитектуре ПО и архитектуре ПО, подверженного высокой нагрузке. В этот раз я решил написать небольшой авторский материал в преддверии старта нового курса «Архитектура и шаблоны проектирования». Приятного прочтения.





Введение


Описанные в книге Craig'а Larman'а «Applying UML and patterns, 3rd edition», GRASP'овские паттерны являются обобщением GoF'овских паттернов, а также непосредственным следствием принципов ООП. Они дополняют недостающую ступеньку в логической лестнице, которая позволяет получить GoF'овские паттерны из принципов ООП. Шаблоны GRASP являются скорее не паттернами проектирования (как GoF'овские), а фундаментальными принципами распределения ответственности между классами. Они, как показывает практика, не обладают особой популярностью, однако анализ спроектированных классов с использованием полного набора GRASP'овских паттернов является необходимым условием написания хорошего кода.

Полный список шаблонов GRASP состоит из 9 элементов:

  • Information Expert
  • Creator
  • Controller
  • Low Coupling
  • High Cohesion
  • Polymorphism
  • Pure Fabrication
  • Indirection
  • Protected Variations

Предлагаю рассмотреть самый очевидный и самый важный паттерн из списка: Information Expert.
Читать дальше →

Паттерн «сага» как способ обеспечения консистентности данных

Reading time3 min
Views17K
Всем привет. Уже сейчас в OTUS открывает набор в новую группу курса «Highload Architect». В связи с этим я продолжаю серию своих публикаций, написанных специально для этого курса, а также приглашаю вас на свой бесплатный демо урок по теме: «Индексы в MySQL: best practices и подводные камни». Записаться на вебинар можно тут.





Введение


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

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

Перевод: full stack разработчик — это миф

Reading time4 min
Views95K
Вашему вниманию предлагается перевод любопытной статьи Скотта Хадфилда, CTO и со-основателя стартапа “Hello Pretty”. Сейчас в половине вакансий, связанных с вебом и серверной разработкой, встречается волшебная фраза “full stack”. Чаще всего с эпитетами вроде “джедай”, “супер-герой” и “ниндзя”. Кого ищут все эти люди, и кого им на самом деле удается получить в свою команду?
Читать дальше →

Не надо следовать JavaScript-трендам

Reading time7 min
Views20K
Однажды, когда у вас выдался не самый светлый день, вы увидели новый твит о том, как пользоваться хуками React. Но по какой-то причине ваша компания или ваша команда ещё не перешли на хуки. Или, может быть, вы ими пользуетесь, но не таким способом, который можно было бы назвать «трендовым». Возможно, вы применяете Vue.js или Angular, но React-хуки лезут буквально отовсюду, вы видите сообщения о них так часто, что возникает такое ощущение, будто скоро о них «заговорит» даже микроволновка.

Так как день у вас был не очень удачным, вы начали задаваться вопросом о том, всё ли благополучно с вашим кодом. Может, стоить зарефакторить тот кусок программы, который вы только что прошли? После того, как вы перестали задавать себе вопросы о своём коде, у вас заработала фантазия, вы стали представлять себе то, как хуки будут смотреться в вашей кодовой базе.

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


Обложка выдуманной книги: «Переписываем фронтенд каждые шесть недель»
Читать дальше →

Почему мы выбрали MobX, а не Redux, и как его использовать эффективнее

Reading time8 min
Views45K

Меня зовут Назим Гафаров, я разработчик интерфейсов в Mail.ru Cloud Solutions. На дворе 2020 год, а мы продолжаем обсуждать «нововведения» ES6-синтаксиса и преимущества MobX над Redux. Существует много причин использовать Redux в своем проекте, но так как я не знаю ни одной, расскажу о том, почему мы выбрали MobX.

Почему?

Игра мечты, которую я делаю вместе с женой (Часть 1)

Reading time7 min
Views11K

Всем привет, я инди-разработчик, в предыдущей статье просили больше технических подробностей и подводных камей из процесса разработки игры, поэтому в этой статье я охвачу несколько основных "вещей" с которыми я столкнулся и для которых были написаны инструменты на MonoBehaviour. Надеюсь вам понравится :)

Читать далее

Как и зачем работать медленнее? Метод Сергея Королёва

Reading time15 min
Views95K


Будущий «отец» советской космонавтики Сергей Королёв — по центру. Страсть к авиации у него зародилась в юности, когда он записался в планерный кружок. На его долю ещё выпадут тяжёлые испытания, но юношеский запал у него останется на всю жизнь.

«Можно сделать быстро, но плохо, а можно — медленно, но хорошо. Через некоторое время все забудут, что было быстро, но будут помнить, что было плохо. И наоборот.»
Сергей Королёв, конструктор

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

Читать дальше →
Уже несколько лет мы проводим на Хабре конкурс «Технотекст», одна из самых ярких номинаций которого — «Программирование». И каждый раз, получая сотни крутых статей от программистов, удивляемся: ведь эти люди не писатели и не журналисты, почему же они всякий раз, отложив свои серьёзные и важные дела, берутся за клавиатуру? Поскольку на Хабре мы привыкли глубоко разбираться в причинах всякого явления, то и здесь решили точно выяснить, что движет нашими авторами. Мы провели исследование и собрали яркую палитру мотивов.
Незаметно присоединяйтесь

7 правил английского, которые носители нарушают чаще, чем пьют Колу

Reading time6 min
Views69K

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

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

Подчеркнем, что далеко не все нейтивы пренебрегают грамматикой английского. И уж точно не стоит самим нарушать языковые нормы, чтобы показать свое «знание». Это так не работает. 

Читать далее

Разработка Mithril. Практика, опыт и подводные камни

Reading time9 min
Views13K


Синопсис


Эта статья основана на опыте разработки, приложения системы конструирующей типовые Landing-page по заранее заданным в панели управления параметрами. В статье будет описано почему для разработки приложения был выбран Mithril, его свойства, преимущества и какие подводные камни можно встретить при использовании этого замечательного инструмента.

Кому может быть интересна данная статья?


Данная статья может заинтересовать тех кто изучает использование микро-фреймворков для решения определенных задач в которых нужен удобный поддерживаемый инструментарий, с легкой и практичной архитектурой, и не нагруженной общей оболочкой. К тому же Mithril как инструмент несмотря на малый размер обладает высокой производительностью — что также является не маловажным фактором при выборе нужного инструмента разработки. Интересно?
Добро пожаловать под кат!
1
23 ...

Information

Rating
7,950-th
Location
Челябинск, Челябинская обл., Россия
Date of birth
Registered
Activity

Specialization

Frontend Developer, Fullstack Developer
Middle
From 150,000 ₽
SQL
PostgreSQL
MySQL
TypeScript
React
Redux
Bash
Storybook
Markdown
Node.js