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

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

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

gRPC vs REST, что выбрать для нового сервера?

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

Всем приветы. А вы писали новый сервер с нуля? Какие технологии использовали? А рассматривали какие-либо варианты кроме старого доброго REST ? А что есть еще что-то ? С такими вопросами я когда-то пришел к своему лиду.  Да, для меня было открытием, что можно использовать не только REST для обмена сообщениями между сервером и клиентом. Ах да, конечно я знал про SOAP, но использовать его уж очень не хотелось. Оказалось, что можно попробовать использовать Thrift или например gRPC. От Thrift пришлось отказаться по ряду причин, которые не сильно важны в данной статье. Кстати, возможно Thrift это именно то что вам нужно. 

Так что же такое gRPC и в чем его отличие от, уже ставшего классическим, REST? Лучше ли gRPC? Может gRPC это снова хипстерская технология, которую все скоро забудут?

   Не для кого ни секрет, что REST доминирует в современном мире API, особенно, когда речь идет о веб-приложениях и инфраструктурах, на основе микросервисов. Мало кто даже вспомнит, про то что микросервисы могут общаться по другому. Это наверное самый популярный ответ на собеседовании. Да если добавить еще feign клиента из Spring, то получается совсем красота и минимальные трудо затраты. Но для определенного набора сценариев использования, модель gRPC начала играть небольшую, но важную роль. Давайте попробуем разобраться, когда же нам стоит использовать REST, а когда gRPC.

Read more gRPC vs REST
Всего голосов 6: ↑3 и ↓3+2
Комментарии31

Что же такое этот GraphQL?

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

Вашему вниманию предлагаю перевод статьи Sacha Greif "Что же такое этот GraphQL?"


Если вы такой же, как и я, вы обычно проходите через три этапа, когда узнаёте о новой технологии:


  • Отрицание: Ещё одна JavaScript библиотека?! Зачем? У меня уже есть jQuery!
  • Интерес: Хм, наверное мне следует взглянуть на эту библиотеку...
  • Паника: Помогите! Мне нужно изучить эту библиотеку прямо сейчас, иначе мои знания устареют!

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


Именно поэтому сейчас самое время узнать, что же такое этот GraphQL, о котором вы повсюду слышите.

Читать дальше →
Всего голосов 23: ↑22 и ↓1+21
Комментарии55

Как научиться чему угодно с помощью техники Фейнмана

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


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

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

Нет никаких чудо-людей. Просто случилось так, что они заинтересовались чем-то и выучили все про это. Ричард Фейнман

Ричарда Фейнмана Ричардом Фейнманом (по крайней мере, по мнению Ричарда Фейнмана) сделал не врождённый интеллект, а систематический способ, с помощью которого он выявлял то, чего не знал, а затем бросался постигать это.

На протяжении всей своей работы и жизни, Фейнман с элегантностью и простотой давал представление о своём процессе рассмотрения сложных концепций в мире физики и изложения знаний/идей. Многие из этих наблюдений о его процессе обучения были собраны в то, что мы сейчас называем «техникой Фейнмана».

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

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

В этой статье будет представлен обзор техники Фейнмана и того, как вы можете применять её для постоянного расширения своих знаний и навыков. Короче говоря, Фейнман научит вас не только тому, как учиться, но и тому, как по-настоящему понимать.
Приятного чтения!
Всего голосов 64: ↑53 и ↓11+63
Комментарии106

7 вопросов, которые стоит задать на собеседовании: советы разработчикам

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

Когда гуглишь «что спросить у работодателя на собеседовании», поисковые системы выдают ресурсы с однотипными рекомендациями:

Чего вы ждете от нового сотрудника в первые полгода?

Расскажите о вашей корпоративной культуре.

Почему вам нравится работать в этой компании?

И так далее.

Скорее всего, эти вопросы вы уже видели не раз. Они подойдут для любой компании и любой должности, потому что они поверхностные. Вы задаёте шаблонный вопрос, вам выдают шаблонный ответ. Ближе к истине вы не становитесь. К тому же, ответы — по крайней мере, публично транслируемые — можно легко найти самому на Glassdoor и в LinkedIn. 

Многим этого достаточно. Но если вы уже не первый год работаете в IT и сформировали ожидания от будущей компании, вам нужна стратегия — и вопросы — посложнее.

Примечание редактора: как указано в тегах, это перевод статьи американского разработчика об американских реалиях, и пока сложно представить, чтобы описанные вопросы задавали на собеседованиях в России. Но вопросы действительно важные: признаёт ли руководство за собой ошибки, как относится к ошибкам сотрудников, как расти в грейдах, что будет, если выгоришь. Мы решили опубликовать статью, а заодно призвать к дискуссии: задаёте ли вы подобные вопросы будущим работодателям? Находите ли их полезными? Приглашаем к чтению — и обсуждению.

Читать далее
Всего голосов 8: ↑4 и ↓40
Комментарии20

Гексагональная архитектура и Domain Driven Design на примере Front-end приложения

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

Преимущества данного метода:

Независимость: возможность не зацикливаться на бизнес логике.
Можно задекларировать, описать схему работы нашего приложения до создания внешних сервисов, использовать замоканные данные в реализации адаптеров.

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

Легкая изменчивость: изменения в одной области нашего приложения не влияют на другие области.

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

JSON Web Token и Secure Sockets Layer

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

Для начала разберем небольшую задачу. Она поможет читателю получить представление об основах шифрования.

Представим, что у нас есть сундук с важными документами. Мы хотим отправить его из пункта А в пункт Б, но так, чтобы никто не мог открыть его содержимое по пути следования. На сундук можно повесить замок/замки, отправлять сундук несколько раз, принимать обратно, передавать ключ/ключи через посредника. Посредник может скопировать ключ или даже сам сундук, подобно файлам на компьютере. Как же выстроить цепочку передачи, чтобы посредник не получил доступ к закрытым документам при перевозке?

Читать далее
Всего голосов 12: ↑11 и ↓1+13
Комментарии22

4 столпа продуктивной удаленной работы. Опыт цифрового кочевника

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

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

Читать дальше →
Всего голосов 25: ↑16 и ↓9+11
Комментарии9

Привлекательные структуры данных

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

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

Помните: если что-то не компилируется, это псевдокод. 

Привлечься!
Всего голосов 78: ↑78 и ↓0+78
Комментарии16

Почему абсолютные оценки задач не работают и как тогда планировать?

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

Как я люблю эти оценки разработчиков: «нууу…эта задача на полчаса». Через два дня: 

— Ну че, когда будет готово? 
— Да тут уперлись в интеграцию и еще нужно кое-что согласовать с аналитиком, думаю за сегодня закрою...

Еще через день:
— Еще делаю, вчера не успел, думаю завтра будет готово. 

Занавес. И проблема здесь не в разработчиках. Просто абсолютные оценки НЕ работают.

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

Функциональные возможности Fiddler как инструмента для анализа и подмены HTTPS-трафика

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

Привет, Хабр! Сегодня расскажу о применение мощного и удобного инструмента для анализа и мониторинга HTTP(S) трафика Fiddler. По сути, Fiddler – это прокси для отладки приложений и сайтов. Разработчик и тестировщик могут использовать Fiddler для отладки веб-трафика и тестирования производительности приложения или сайта. Специалистам по информационной безопасности Fiddler будет полезен для проверки сайта или приложения на наличие уязвимостей.

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

DIY. Книги для всех, даром

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

Lingtrain cover


⚡ Градиент обреченный


Upd. 11.06.2022 Многие заинтересовались генерацией изображений нейросетями. Вот Colab (интерактивная среда для запуска кода) для рисования картинок в стиле pixel art по текстовому описанию. Просто запускайте, ближе к концу увидете ячейку для ввода текста. Примеры картинок из Colab'а в комментариях.


Два года назад я начал делать небольшой проект, связанный с обработкой текстов на иностранных языках. Он постепенно развивался и стал использоваться лингвистами в НКРЯ, а энтузиасты сохранения малых языков используют его для расширения своих параллельных корпусов.


Сегодня же я расскажу как при помощи него создать полноценную параллельную книгу на разных языках. Книга будет красиво сверстана в PDF, иметь содержание, обложку и две выровненные по смыслу колонки текста. Такие книги служат отличным подспорьем при изучении иностранного языка. Найти их, однако, не так просто, и скорее всего это будут книги для детей или избранная классика. Полный пример готовой книги можно посмотреть здесь. Под капотом у приложения NLP модели, поддерживаемых языков более ста.


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

Сделать книжку
Всего голосов 76: ↑76 и ↓0+76
Комментарии50

Blue-green deployment, canary release: рецепт приготовления безрисковых релизов

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

Банковские сервисы по умолчанию не должны падать, и даже прилечь на секундочку, и даже когда мы обновляемся. Ведь даже секунды могут привести к потерям с множеством нулей. Чтобы этого не произошло мы используем blue-green deployment.

Простым языком blue-green deployment - способ развертывания, который позволяет обновлять приложения не отклоняя ни одного запроса, без остановок. Как это сделать, расскажу и покажу на примере. Статья подойдет DevOps-инженерам и бэкенд-разработчикам, особенно на HighLoad-проектах, а также моим будущим коллегам, как методичка по безрисковым релизам, чтобы прод не падал каждые 2 недели по графику релизов (а такое тоже бывало).

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

Разбираемся с установкой и загрузкой Linux на примере ArchLinux

Время на прочтение17 мин
Количество просмотров128K
Сначала мы установим Archlinux и превратим его в загрузочный сервер. Прямо оттуда подготовим новую компактную систему, в которую добавим минимальное графическое окружение и самый необходимый функционал (на примере Firefox). Научим нашу систему загружаться по сети даже на компьютерах с UEFI. Затем полностью переведём её в режим «только для чтения» (сделаем «живой»), что позволит нам использовать систему одновременно хоть на пол сотне разномастных компьютеров с одним единственным загрузочным сервером. Это всё будет работать даже внутри дешёвой 100-Мб сети, которую мы дополнительно «разгоним» в пару раз.

Никакие закладки в жестких дисках будут вам не страшны, потому что дисков у нас не будет. Никакие очумелые ручки пользователей ничего не сломают, т. к. после перезагрузки система вернется в первозданное лично вами состояние. Конечно же, вы научитесь и сможете самостоятельно изменять загружаемую систему таким образом, чтобы в ней содержался только нужный вам функционал и ничего лишнего. Между делом мы выясним, как и в каком порядке загружается Linux, а также из чего он состоит. Знания, как известно, — бесценны, поэтому я делюсь ими даром.

Постараюсь без долгих рассуждений пояснять происходящее, иногда забегая немного вперёд, но впоследствии обязательно раскладывая всё по полочкам. Чтобы у вас вообще не возникало проблем с пониманием, предполагаю, что вы уже работали с каким-нибудь готовым дистрибутивом Linux, пробовали писать простые скрипты с помощью nano или другого текстового редактора. Если вы новичок в ArchLinux, то узнаете много нового, а если «старичок», то узнаете поменьше, но, надеюсь, что в любом случае вы ещё сильнее полюбите Linux.

Информации оказалось очень много. И по устоявшейся голливудской традиции впереди вас ждёт сериал в нескольких частях:
продолжение;
окончание.

Сейчас мы установим Archlinux в VirtualBox, который можно будет клонировать и запускать практически на любом компьютере с legacy BIOS без каких-либо дополнительных настроек. Между делом мы познакомимся с основными приёмами работы с systemd, а также узнаем как его использовать для запуска произвольных служб и программ во время загрузки. Ещё мы увидим, какие этапы проходит Linux при загрузке, и напишем собственный обработчик (hook), который поместим в initramfs. Не знаете что такое initramfs? Тогда заходите под кат.
Читать дальше →
Всего голосов 11: ↑6 и ↓5+1
Комментарии7

MIMB – Мульти-установочная и мульти-загрузочная флэшка

Время на прочтение2 мин
Количество просмотров58K
Привет, Хабрачитатели!

В повседневной практике часто нужен набор инструментов – Linux и иногда Windows LiveCD, а также установочные диски различных дистрибутивов. Диски легко подвергаются механическим повреждениям. Учитывая, что набор используемого инструментария и дистрибутивов у каждого не так велик (во избежания развода зоопарка) и зачастую вполне умещается на USB-носителе до 4G, целесообразно поместить все на одну флэшку.
К вашему вниманию флэшка для загрузки Live сборок Linux и Windows и установки дистрибутивов Linux. Подготовлен образ .img, который легко разворачивается при помощи dd. Кому интересно, подробности под катом.
Читать дальше →
Всего голосов 63: ↑53 и ↓10+43
Комментарии42

Подборка CSS3-генераторов для упрощения фронтэнд-разработки

Время на прочтение2 мин
Количество просмотров48K
CSS3 предоставляет много новых возможностей в мире фронтэнд-разработки. Это действительно великолепная вещь, но иногда трудно вспомнить некоторые параметры, особенно, если вы — веб-дизайнер, а не программист. Вот 10 удивительных CSS3-генераторов, которые помогут вам сэкономить время и силы (картинки кликабельны).
Читать дальше →
Всего голосов 80: ↑75 и ↓5+70
Комментарии23

Как распознать кракозябры?

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

Итак, вуаля!


За источник информации была взята статья из вики. В блок-схеме «UTF-16 → CP 866» означает, что исходная кодировка была «UTF-16», а распозналась она как «CP 866».

Как всегда — кликабельно. Исходник в .docx: здесь.
Всего голосов 429: ↑418 и ↓11+407
Комментарии64

Сон и продуктивная деятельность

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

Вступление


Доброго времени суток, %habrauser%! Думаю, в этой статье я не открыл ничего нового. Просто меня самого заинтересовала тема продуктивного сна. Несколько последних лет я был приверженцем мнения, что сон – это бесполезная трата времени, к сожалению необходимая организму. И посему, я максимально старался сократить время сна. Но чем больше я это делал, тем больше я начинал походить на зомби. И тогда я стал искать альтернативу. И результатом обобщения всей найденной мной информацией и стала эта статья. Итак, поехали!
Читать дальше →
Всего голосов 243: ↑215 и ↓28+187
Комментарии149

Информация

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