Pull to refresh
-20
0
Андрей Рудин @rudinandrey

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

Send message

Почта без хлопот: автоматизация отправки писем с помощью Python

Level of difficultyEasy
Reading time3 min
Views7.3K

Привет-привет! С вами снова Оля — программист Учебного центра компании «Тензор». Ранее я писала здесь о разработке ботов в Telegram, но в моем отделе не скупятся на творческие задачи — так что и эта статья вряд ли будет последней.

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

Читать далее
Total votes 19: ↑17 and ↓2+15
Comments22

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

Level of difficultyMedium
Reading time6 min
Views9K


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

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

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

Level of difficultyMedium
Reading time5 min
Views16K

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

Читать далее
Total votes 14: ↑14 and ↓0+14
Comments9

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

Level of difficultyMedium
Reading time18 min
Views22K

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

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

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

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

Читать далее
Total votes 38: ↑38 and ↓0+38
Comments20

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

Reading time4 min
Views49K

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

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

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

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

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

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

Читать далее
Total votes 22: ↑6 and ↓16-10
Comments38

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

Level of difficultyEasy
Reading time17 min
Views6.3K

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

Читать далее
Total votes 12: ↑11 and ↓1+10
Comments2

Есть ли Singleton в Golang?

Level of difficultyEasy
Reading time2 min
Views5.9K

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

Читать далее
Total votes 15: ↑10 and ↓5+5
Comments23

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

Level of difficultyEasy
Reading time6 min
Views2.8K

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

Читать далее
Total votes 11: ↑11 and ↓0+11
Comments2

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

Reading time4 min
Views30K


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


Проблемы


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

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

Level of difficultyEasy
Reading time5 min
Views6.7K

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

Читать далее
Total votes 10: ↑7 and ↓3+4
Comments2

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

Level of difficultyEasy
Reading time5 min
Views3K

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

Читать далее
Total votes 5: ↑5 and ↓0+5
Comments11

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

Level of difficultyEasy
Reading time8 min
Views9.2K

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

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

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

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

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

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

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

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

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

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

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

Читать далее
Total votes 20: ↑15 and ↓5+10
Comments16

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

Level of difficultyEasy
Reading time11 min
Views26K
Роб Пайк и Брайан Керниган

В октябре 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?
Читать дальше →
Total votes 65: ↑61 and ↓4+57
Comments45

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

Level of difficultyMedium
Reading time7 min
Views8.3K

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

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

Читать далее
Total votes 11: ↑11 and ↓0+11
Comments21

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

Level of difficultyMedium
Reading time19 min
Views14K

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

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

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

Читать далее
Total votes 17: ↑14 and ↓3+11
Comments4

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

Level of difficultyEasy
Reading time10 min
Views6.4K

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

Читать далее
Total votes 4: ↑4 and ↓0+4
Comments0

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

Level of difficultyMedium
Reading time3 min
Views5.3K

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

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

Читать далее
Total votes 4: ↑3 and ↓1+2
Comments13

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

Level of difficultyMedium
Reading time15 min
Views2.4K

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

Читать полностью
Total votes 16: ↑16 and ↓0+16
Comments70

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

Level of difficultyEasy
Reading time3 min
Views6.5K

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

Читать далее
Total votes 23: ↑20 and ↓3+17
Comments5

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

Level of difficultyEasy
Reading time19 min
Views5.7K

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

Читать далее
Total votes 13: ↑11 and ↓2+9
Comments0
1
23 ...

Information

Rating
Does not participate
Location
Лениногорск, Татарстан, Россия
Date of birth
Registered
Activity

Specialization

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