Как стать автором
Обновить
4
0

Пользователь

Отправить сообщение

Альтернативный оркестратор nomad на десктопе

Время на прочтение4 мин
Количество просмотров15K
В настоящее время оркестрация контейнеров ассоциируется в первую очередь с kubernetes. Но это не единственный возможный выбор. Есть и альтернативные средства оркестрации, например nomad, разработчик HashiCorp (хорошо известный как разработчик средства виртуализации Vagrant).

Осваивать работу с средствами оркестрации как правило сложно, т.к. не у всех имеется доступ к инфраструктуре из нескольких серверов с рутовым доступом, поэтому, в предыдущем посте
Разворачиваем Kubernetes на десктопе за несколько минут с MicroK8s был описан процесс разворачивания среды Kubernetes на десктопе на примере веб-приложения Django. Первоначально я планировал в продолжении описать разворачивание базы данных в среде MicroK8s. Но потом подумал, чтоб будет интересно продолжить работу с не менее удобным средством оркестрации nomad. Я не буду давать даже намека на сравнение разных систем оркестрации. Единственное замечу для тех кто сомневается, что nomad установить еще проще чем MicroK8s, т.к. для этого нужно просто скопировать два исполняемых файла (nomad и consul) с сервера разработчика.
Читать дальше →
Всего голосов 6: ↑6 и ↓0+6
Комментарии2

Одиночество и лидерство

Время на прочтение20 мин
Количество просмотров7.7K
«Если вы хотите, чтобы другие последовали за вами, научитесь оставаться наедине со своими мыслями».

image

Я сейчас делаю Ontol — это Github для знаний/мудрости. Онтол — это курируемые списки материалов (тексты и видео), которые существенно повлияли на мировоззрение и доступные бесплатно и в 1 клик. Этот текст попадает в онтол «дело жизни». (канал в телеграм: t.me/ontol)

Лекция «Одиночество и лидерство» была прочитана Уильямом Дересевичем перед курсантами-первокурсниками Военной академии США в Вест-Пойнте в октябре 2009 года и первоначально опубликована в The American Scholor.

Расшифровка выступления


Название моей лекции может показаться противоречивым. Какое отношение одиночество может иметь к лидерству? Одиночество означает быть одному, а лидерство требует присутствия других — людей, которыми вы руководите. Когда мы думаем о лидерстве в американской истории, мы, вероятно, будем думать о Вашингтоне во главе армии, или Линкольне во главе нации, или Мартине Лютере Кинге во главе движения — людях, за которыми стоит множество людей, следующих за ними. И когда мы думаем об одиночестве, мы склонны думать о Торо, человеке, одиноком в лесу, который ведет дневник и молча общается с природой.

Лидерство — это то, чему вы здесь должны научиться — качества характера и ума, которые сделают вас подходящим для командования взводом, а помимо этого, возможно, ротой, батальоном или, если вы оставите армию, корпорацией, учреждением, правительственным департаментом. Одиночества в этом меньше всего, особенно будучи курсантами. У вас даже нет возможности просто побыть одному физически, не говоря уже о возможности побыть наедине со своими мыслями. И все же я твердо убежден, что одиночество — одна из важнейших составляющих истинного лидерства. Эта лекция будет попыткой объяснить, почему.
Читать дальше →
Всего голосов 17: ↑12 и ↓5+8
Комментарии8

Контейнерные запросы в CSS

Время на прочтение9 мин
Количество просмотров14K

Как фронтенд-дизайнер я за последние 6 лет не был так взволнован новой CSS-функцией, как сейчас. Благодаря усилиям Мириам Сюзанны и других умных людей прототип контейнерных запросов можно включить в Chrome Canary

О контейнерных запросах запомнилось много шуток, но они, наконец, здесь. Специально к старту нового потока курса по Frontend разработке, делимся с вами статьей, в которой рассказывается зачем нам нужны контейнерные запросы, как они облегчат нашу жизнь, и, самое важное, ваши компоненты и макеты станут мощнее. Если вы взволновались так же, как и я, давайте углубимся в тему. Вы готовы?

Читать далее
Всего голосов 12: ↑10 и ↓2+9
Комментарии7

Как проводить сквозное (end-to-end) тестирование вашего приложения используя Cypress.io

Время на прочтение10 мин
Количество просмотров24K

В этой статье вы узнаете:

Что такое Cypress и когда его стоит использовать.

Основы тестирования с использованием Cypress.

Расширенные команды Cypress.

Взаимодействие с элементами пользовательского интерфейса.

Лучшие практики с использованием Cypress.

Читать далее
Всего голосов 3: ↑2 и ↓1+1
Комментарии3

Как померить Node.js-приложение, если у тебя лапки. Доклад Яндекса

Время на прочтение15 мин
Количество просмотров9.7K
Неважно, каких размеров ваше приложение на Node.js. Неважно, как хорошо вы написали код. Вам просто необходимо знать, как он работает в продакшене. Разработчик интерфейсов в поисковом портале Яндекса Алексей Попков сделал доклад о том, как выяснить, что происходит внутри запущенного процесса.

Что нужно, чтобы заглянуть в этот чёрный ящик? Ответ — опенсорс, все бесплатно, бери и внедряй.

— Всем привет. Немножко про то, кто я такой. Меня зовут Лёша, я разрабатываю внутренние сервисы Яндекса. Уже третий год делаю всякие Node.js-приложения, менторю разработчиков в Яндекс.Практикуме и измеряю все, до чего дотягиваются руки, потому что это весело.
Читать дальше →
Всего голосов 17: ↑17 и ↓0+17
Комментарии3

Простые советы по написанию чистого кода React-компонентов

Время на прочтение8 мин
Количество просмотров19K
Автор материала, перевод которого мы публикуем сегодня, делится советами, которые помогают делать чище код React-компонентов и создавать проекты, которые масштабируются лучше, чем прежде.


Читать дальше →
Всего голосов 30: ↑29 и ↓1+42
Комментарии20

Пишем юнит тесты на TypeScript'е (на примере котиков)

Время на прочтение4 мин
Количество просмотров19K

Как писать модульные тесты в проекте с TypeScript'ом? В этой статье я постараюсь ответить на этот вопрос а также покажу как создать среду модульного тестирования под проекты использующие TypeScript.

Читать далее
Всего голосов 7: ↑7 и ↓0+7
Комментарии5

20 лучших практик по работе с Dockerfile

Время на прочтение13 мин
Количество просмотров37K

Эта статья содержит рекомендации по написанию Dockerfile и принципам безопасности контейнеров и некоторые другие связанные темы, например про оптимизацию образов.

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

К счастью, большинство потенциальных проблем мы можем решить еще на этапе разработки.

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

Читать далее
Всего голосов 38: ↑36 и ↓2+40
Комментарии22

Стек вызовов JavaScript и ещё большая магия

Время на прочтение7 мин
Количество просмотров6.6K


В начале апреля на хабре была опубликована статья «JavaScript: Стек вызовов и магия его размера» — её автор пришёл к выводу, что каждый кадр стека занимает (72 + 8 * число_локальных_переменных) байтов: «Получается, что мы посчитали все верно и можем утверждать, что размер пустого ExecutionStack в Chrome равен 72 байтам, а размер коллстэка — чуть меньше одного мегабайта. Отличная работа!»

Для затравки — немного изменим код, использованный AxemaFr для экспериментов:

{let i = 0;

const func = () => {
  i += 1.00000000000001;
  func();
};

try {
  func();
} catch (e) {
  console.log(i);
}}

Вместо 1 теперь на каждом шаге прибавляем чуточку больше, и в результате вместо 13951 получаем 12556.000000000002 — как будто бы в функции добавилась локальная переменная!

Повторим вопросы, которыми задавался Senior Frontend Developer AxemaFr: «Почему же так? Что изменилось? Как понять, посмотрев на функцию, сколько раз она может выполниться рекурсивно?!»
Читать дальше →
Всего голосов 20: ↑14 и ↓6+13
Комментарии3

Представляем новый справочник по TypeScript

Время на прочтение3 мин
Количество просмотров7.6K

Привет, Хабр! Мы рады сообщить, что бета-версия новой редакции TypeScript Handbook вышла из стадии бета-тестирования и теперь является основным ресурсом нашего веб-сайта для изучения TypeScript!

Читать далее
Всего голосов 11: ↑6 и ↓5+6
Комментарии3

Техники повторного использования кода и разбиения сложных объектов на составные

Время на прочтение19 мин
Количество просмотров12K

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

Будет рассказано о декораторах, стратегиях, Entity Component, Entity Component System, деревьях, State Machine, частично о хранении хуков в React.

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

Читать далее
Всего голосов 5: ↑3 и ↓2+7
Комментарии0

20 основных частей любого крупномасштабного React-приложения

Время на прочтение6 мин
Количество просмотров15K

За эти годы мне посчастливилось работать над некоторыми крупномасштабными проектами, написанными на React. Сегодня я соберу важные вещи, которые нужно учитывать при создании нового проекта или расширении функциональности любого крупномасштабного приложения. Мы начнём с самых основ, а затем пойдём глубже. Так что пристегнитесь!

Приятного чтения!
Всего голосов 13: ↑8 и ↓5+5
Комментарии8

Читаем EXPLAIN на максималках

Время на прочтение19 мин
Количество просмотров71K

Многим, кто работает с MySQL, известно, что команда EXPLAIN используется для оптимизации запросов, получения информации об использованных и возможных индексах. Большинство разработчиков и администраторов СУБД этой информацией и ограничивается. Я же предлагаю изучить команду EXPLAIN максимально подробно.

Читать далее
Всего голосов 15: ↑13 и ↓2+17
Комментарии14

Разработка должна ориентироваться на продакшен, всё остальное — чушь

Время на прочтение9 мин
Количество просмотров15K


За мою карьеру у меня выработались определённые мнения. Некоторые из них оставили особенно глубокий след, подкреплённый годами опыта. Я попытался сформулировать, что же у них есть общего. Общее заключается в мысли о том, что единственное, что важно — это код в продакшене. Обкатка не важна, код на твоём ноутбуке не важен, QA не важен, важен только продакшен. Всё остальное — это технический долг.

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

Эта мысль, а также все связанные с ней подразумеваемые действия, может показаться контринтуитивной или спорной, поэтому я хочу раскрыть её немного глубже. Ниже представлен перечень практик и принципов, которые я считаю правильными, исходя из моего мнения о том, что единственное, что важно — это код в продакшене.
Читать дальше →
Всего голосов 45: ↑31 и ↓14+31
Комментарии47

Какая настоящая цена useMemo?

Время на прочтение7 мин
Количество просмотров15K

Привет хабр!

В одной из предыдущих моих статей “Все ли вы знаете о useCallback?” мы оценивали когда стоит использовать useCallback, а когда это избыточно. Та статья вызвала большой интерес, поэтому было решено сделать похожую статью на тему когда стоит использовать менее популярный хук useMemo, а когда не стоит (данная статья является расшифровкой видео).

Read more
Всего голосов 4: ↑3 и ↓1+3
Комментарии9

Микросервисы и безопасность

Время на прочтение4 мин
Количество просмотров9K

Микросервис — это структурная единица, в которой все данные и функции, относящиеся к какой-нибудь одной конкретной бизнес-цели, объединены в один сервис.

Что ж, это достаточно общее понимание микросервиса, но что мы на самом деле под ним подразумеваем?

Для примера мы можем взять конструктор Lego, да, вы не ослышались, Lego.

Возможно, вы помните, что когда мы играем с Lego, мы начинаем сборку конструкции с одного отдельного кирпичика Lego.

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

Здесь мы можем провести наглядную параллель между микросервисом и кирпичиком Lego.

Читать далее
Всего голосов 5: ↑4 и ↓1+3
Комментарии1

JavaScript нанобенчмарки и преждевременные тормоза

Время на прочтение8 мин
Количество просмотров6.3K

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



Поэтому я решил, что хватит это терпеть!… и выстругал свою с нанометровыми делениями, поддержкой прохладного и разгорячённого измерения, тестами, шарингом и прочими вольностями. Так что приглашаю и вас присоединиться к этой спец олимпиаде по измерению скорости своего JS кода.


Для начала разберём этот кейс:


Читать дальше →
Всего голосов 19: ↑16 и ↓3+18
Комментарии5

Всё, о чём должен знать разработчик Телеграм-ботов

Время на прочтение15 мин
Количество просмотров644K

Вы вряд ли найдете в интернете что-то про разработку ботов, кроме документаций к библиотекам, историй "как я создал такого-то бота" и туториалов вроде "как создать бота, который будет говорить hello world". При этом многие неочевидные моменты просто нигде не описаны.

Как вообще устроены боты? Как они взаимодействуют с пользователями? Что с их помощью можно реализовать, а что нельзя?

Подробный гайд о том, как работать с ботами — под катом.

Читать далее
Всего голосов 127: ↑127 и ↓0+127
Комментарии73

Как перейти с secrets на credentials (Ruby on Rails)

Время на прочтение4 мин
Количество просмотров6.9K
Сredentials в версии Ruby on Rails 5.2.0 — новый золотой стандарт. Старые добрые, но небезопасные файлы .env уступают дорогу. В этой статье вы узнаете:

  • зачем и как перейти от secrets к credentials,
  • как использовать API-ключи в Ruby, YML и js.erb,
  • как раз и навсегда предоставить ключ каждому из команды.
Читать дальше →
Всего голосов 2: ↑1 и ↓10
Комментарии0

Как быстро надо бежать, чтобы стоять на месте?

Время на прочтение3 мин
Количество просмотров6.6K

Никогда не задумывались почему зарплата растёт, но жизнь лучше не становится? Естественно, разговор не о том, что десять лет назад вы халтурили где придётся, а сейчас высокооплачиваемый специалист.

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

Волшебный мир инфляции
Всего голосов 6: ↑4 и ↓2+5
Комментарии15
1
23 ...

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность