Как стать автором
Обновить
-20
0
Андрей Рудин @rudinandrey

Разработчик со стажем, full стек.

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

Руководство по Kubernetes для хейтеров Kubernetes

Уровень сложностиСредний
Время на прочтение6 мин
Количество просмотров8.5K


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

Я и сам замешан в перемывании косточек на эту тему.
Читать дальше →
Всего голосов 20: ↑17 и ↓3+14
Комментарии10

Интерактивная диаграмма Ганта для тысяч работ

Уровень сложностиСредний
Время на прочтение5 мин
Количество просмотров15K

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

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

Как я пишу HTTP-сервисы спустя 13 лет работы с Go

Уровень сложностиСредний
Время на прочтение18 мин
Количество просмотров21K

Примерно шесть лет назад я написал пост о том, как пишу HTTP-сервисы на Go, и сегодня я снова хочу рассказать, как пишу HTTP-сервисы.

Тот пост оказался довольно популярным и вызвал обсуждения, повлиявшие на то, как я делаю это сегодня. И спустя годы ведения подкаста Go Time, обсуждения Go в X/Twitter и поддержки подобного кода я решил, что настало время обновить информацию.

(Если вы педант и скажете, что Go не совсем 13 лет, то я отвечу, что начал писать HTTP-сервисы на Go версии .r59.)

В этом посте рассматривается широкий спектр тем, связанных с созданием сервисов на Go

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

Самый лучший учебник по английскому языку. Как заниматься грамматикой самостоятельно

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

Иногда я натыкаюсь на рекламу курсов английского языка. Это не те, которые с преподавателями, а те, где вы платите, вам дают доступ и вы что-то там изучаете самостоятельно. Хорошо еще, если курсы делаются преподавателями языка, но у них редко есть время заниматься такой ерундой. В подавляющем большинстве случаев курсы делаются блогерами, которые собирают информацию и запаковывают ее в «интересный» формат.

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

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

То есть, любой курс (да и подавляющее большинство видео на YouTube) основаны на грамматико-переводном методе. Дают правило – потом пример с переводом.

Даже если курс будет называться  «От нуля до С1», просто просмотрев все видео и проделав все упражнения, вы этого уровня никак не достигнете. Высокие уровни достигаются большим количеством разговорной практики с нарастающей сложностью, а также большим количеством входящей информации на английском языке, в первую очередь – прочитанных текстов.

Если уж вы хотите заниматься самостоятельно, то лучше взять книгу. Отличным выбором является проверенный учебник Качаловой-Израилевич «Практическая грамматика английского языка».

Читать далее
Всего голосов 22: ↑6 и ↓16-10
Комментарии38

Автоматизация тестирования с Cucumber, Selenium и Java

Уровень сложностиПростой
Время на прочтение17 мин
Количество просмотров6.1K

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

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

Есть ли Singleton в Golang?

Уровень сложностиПростой
Время на прочтение2 мин
Количество просмотров5.9K

«Одиночка (англ. Singleton) — порождающий шаблон проектирования, гарантирующий, что в однопоточном приложении будет единственный экземпляр некоторого класса, и предоставляющий глобальную точку доступа к этому экземпляру.»

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

Улучшаем возможности PM2 с помощью дополнительных модулей автоскейлинга и мониторинга

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров2.6K

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

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

ORM для реальных приложений не окупается

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


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


Проблемы


  1. При использовании ORM мы обычно прописываем в коде сущности и их взаимосвязи, и по сути это — проектирование БД ещё раз (дублирование логики!) прямо в коде.
  2. Борьба с проблемами производительности никуда не денется всё равно, как ни абстрагируй. Ты просто не можешь не знать, что у тебя под капотом происходит. Какие там делаются джойны и группировки.
  3. Язык запросов в виде цепочки объектов и методов читается хуже, чем SQL, по сути это — особый язык, который надо учить. За себя скажу, что когда писал на PHP (Laravel), длинные запросы на Eloquent меня иногда изумляли своей сложностью чтения:
Читать дальше →
Всего голосов 84: ↑57 и ↓27+30
Комментарии231

Как я стал Google Developer Expert по Flutter

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров6.7K

У Google есть программа для экспертов в их технологиях. Чтобы попасть в неё, нужно выступать, писать, обучать, менторить или делать open-source в технологиях Google. Программа называется “Google Developer Experts”, и это самое привилегированное сообщество разработчиков, о котором я знаю.

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

Топ 3 необычных вопроса на собеседовании iOS разработчика

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров2.9K

За последний год я прошел около 100 собеседований. Количество явно немалое и есть чем поделиться. Спустя несколько собеседований 70-80% вопросов начинают повторяться, но некоторые заставляют тебя задуматься и откладываются в памяти. Вот такими вопросами я и решил поделиться в своей статье.

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

Большой гайд по энергии. Часть 1 — как получать максимум пользы из питания?

Уровень сложностиПростой
Время на прочтение8 мин
Количество просмотров8.8K

Всем привет, на связи команда Skill Vortex!

Читая комментарии под последней статьей, мы столкнулись с одной, крайне распространенной проблемой – низким уровнем энергии и мотивации.

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

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

В этой статье:

Сказка о потерянных силах - как в 33 чувствовать себя на 70?

Откуда берется энергия – весь процесс и подводные камни.

Белки и жиры – типы, особенности и влияние.

БАДы, витамины и стимуляторы – неужели есть чудо-таблетка?

Про запреты – как не угробить себя в первые недели.

Заключение и все полезные ссылки.

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

Керниган и Пайк были правы: делай что-то одно и делай это хорошо

Уровень сложностиПростой
Время на прочтение11 мин
Количество просмотров26K
Роб Пайк и Брайан Керниган

В октябре 1984 года два идеолога опубликовали радикальный манифест… ну, или что-то вроде того.

Легенды computer science Брайан Керниган и Роб Пайк сформулировали в Program Design in the UNIX Environment паттерн архитектуры ПО, за сохранение которого оба боролись долгие годы.

Как и следовало ожидать от манифеста, в нём два этих канадских инженера максимально решительны. Самый резкий удар в статье — это запомнившаяся многим строчка из аннотации:

Старые программы покрываются коркой сомнительных фич.

Суть статьи часто сводят к аббревиатуре DOTADIW, или «Do One Thing And Do It Well» («Делайте что-то одно и делайте это хорошо»). В Unix и его потомках есть множество программ, в которых воплощена эта мантра: ls просто создаёт список файлов, cat просто выводит содержимое файлов, grep просто фильтрует данные, wc просто подсчитывает слова и так далее. У каждой программы есть несколько опций, меняющих её поведение, но не слишком сильно. Например: wc можно сконфигурировать для подсчёта строк или слов, но не для подсчёта количества абзацев или вхождений какой-то фразы.

Мощь Unix, защищаемая Керниганом и Пайком, заключалась в возможности соединения этих простых программ в цепочку для создания сложных поведений. Зачем добавлять сопоставление регулярных выражений в wc, если с этим уже способна справиться grep?
Читать дальше →
Всего голосов 65: ↑61 и ↓4+57
Комментарии45

Нужно ли разработчикам проектирование?

Уровень сложностиСредний
Время на прочтение7 мин
Количество просмотров8.3K

Такие схемы на проектах готовят наши архитекторы. Достаточно ли их чтобы оценить состав и сложность каждого модуля, объем и трудоемкость работ в целом. Поможет ли такая схема при планировании работ?

В статье рассуждение о том что могло бы помочь.

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

Гексагональная архитектура со Spring Boot

Уровень сложностиСредний
Время на прочтение19 мин
Количество просмотров14K

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

В этой статье мы рассмотрим, как реализовать гексагональную архитектуру в Spring Boot приложении. Мы разделим бизнес-логику и инфраструктуру на отдельные модули и посмотрим, как можно изолированно реализовать и протестировать эти модули.

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

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

Первый шаг в автоматизации тестирования веб-приложений

Уровень сложностиПростой
Время на прочтение10 мин
Количество просмотров6.3K

Привет, меня зовут Виктория. Я много лет работаю ведущим инженером по автоматизации тестирования качества (QA Automation Engineer). Начинала свой путь, как инженер по качеству, занималась ручным тестированием, а затем стала инженером по автоматизации. Недавно, я проводила презентацию, как перейти из QA в QAA. И хотя есть немало статей, описывающих этот путь, я хочу поделиться с вами пятью шагами от ручного тестирования к автоматизации, которые, по моему скромному мнению, могут быть полезны другим QA.

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

Оптимизация запроса и запрос оптимизации

Уровень сложностиСредний
Время на прочтение3 мин
Количество просмотров5.2K

Как не грабить память, не пытать диск, не мучать кластер. Или делать все это всего одним запросом на Impala к Hadoop.

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

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

Сказ о том, как для андроидного приложения бумажное руководство писали

Уровень сложностиСредний
Время на прочтение15 мин
Количество просмотров2.4K

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

Читать полностью
Всего голосов 16: ↑16 и ↓0+16
Комментарии70

Проблемы функции Golang init

Уровень сложностиПростой
Время на прочтение3 мин
Количество просмотров6.2K

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

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

А был ли баг? Может бага и не было? Зачем, как и чем тестировать PHP код

Уровень сложностиПростой
Время на прочтение19 мин
Количество просмотров5.6K

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

Читать далее
Всего голосов 13: ↑11 и ↓2+9
Комментарии0

Как выстроить удобные процессы в работе с монорепой

Уровень сложностиСредний
Время на прочтение14 мин
Количество просмотров5.8K

Как настроить общее рабочее пространство для команды без запуска сборки в watch-режиме и ожидания старта dev-сервера, чтобы подхватить изменения? Для этого нужно удобным для всех образом настроить переиспользование кода внутри монорепы.

Нам поможет Андрей Кочеров, старший разработчик интерфейсов в Яндекс Такси и техлид фронтэнд команды партнёрских продуктов. Он расскажет как сделать готовый к работе репозиторий сразу после чекаута, на основе методологии Trunk Based Development.

Читать далее
Всего голосов 13: ↑10 и ↓3+7
Комментарии1
1
23 ...

Информация

В рейтинге
Не участвует
Откуда
Лениногорск, Татарстан, Россия
Дата рождения
Зарегистрирован
Активность

Специализация

Fullstack Developer, Mobile Application Developer
Lead
От 300 000 ₽
JavaScript
HTML
CSS
Adaptive layout
JQuery
Web development
React
Node.js
Webpack
Vue.js