Как стать автором
Обновить
-1
0
Агафонов Олег @JayDi

Программист

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

Просто о микросервисах

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

Вступление


Чуть ли не каждый второй, кто впервые сталкивается с MSA (Micro Service Architecture), на первых порах восклицает: «Да я эти микросервисы еще …надцать лет назад». Отчасти они правы. И я тоже был из этой самой половины, и не понимал — почему такой шум?



В самом деле! Ведь MSA — это тоже про разработку софта. Какие здесь могут быть революции? Все методики знакомы. В некоторых местах можно даже удивиться: «А разве бывает по-другому»? Фанаты Agile и DevOps тоже скажут, что это всё наше, родное.

Но всё же прошу вас набраться терпения и продолжить читать дальше.
Читать дальше →
Всего голосов 51: ↑41 и ↓10+31
Комментарии33

Best practices от Google по разработке Android приложений

Время на прочтение8 мин
Количество просмотров45K
В данной статье я хотел бы вкратце рассказать про самые последние best practices от Google. Я постарался выделить самые основные моменты, чтобы читатель сразу мог понять, что именно какая-либо фича дает разработчику. Не удивляйтесь, если где-то повторяюсь. Конспектировал + добавлял от себя по ходу просмотров видео в www.youtube.com/channel/UCVHFbqXqoYvEWM1Ddxl0QDg

Также к каждому пункту приводятся все необходимые ссылки для более подробного ознакомления с конкретной best practice.
Читать дальше →
Всего голосов 32: ↑30 и ↓2+28
Комментарии18

Как я учил английский и программирование одновременно

Время на прочтение5 мин
Количество просмотров83K
Шесть лет назад мне было 43 года, и я не умел программировать вообще. Ну, может немного на Бэйсике, который преподавали в институте, как вы понимаете, очень давно.

В книжном магазине попалась мне на глаза книга «Программирование для iPhone/iPad» и, будучи человеком любознательным, я решил попробовать. Купил книгу, MacBook Air (iPad у меня тогда уже был), установил XCode и начал с примеров из книги. Когда я получил общее представление о том, как что работает, мне захотелось сделать что-то полезное. Так как для программиста очень полезным, или скорее даже необходимым, является знание английского языка, я решил создать такое приложение.
Читать дальше →
Всего голосов 54: ↑51 и ↓3+48
Комментарии32

IBM запускает 50 проектов для сообщества разработчиков Open Source

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

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

developerWorks Open – облачная площадка, где разработчикам открыт доступ к последним решениям IBM, техническим знаниям и опыту компании. Кроме того, платформа позволяет взаимодействовать с глобальной сетью программистов для ускорения создания и реализации проектов. Разработчики смогут не только загрузить код, но и посетить блоги, посмотреть видеоматериалы, получить доступ к инструментам и методике, которые помогут им в работе. Благодаря платформе программисты смогут более оперативно создавать и внедрять приложения с открытым исходным кодом, которые отвечали бы различным бизнес-требованиям клиентов.
Читать дальше →
Всего голосов 19: ↑16 и ↓3+13
Комментарии0

SIP-регистрация, транк, софтфон и другие страшные слова облачных АТС

Время на прочтение4 мин
Количество просмотров46K
Айти — необъятная отрасль знаний. Бывает, что пятнадцать лет делаешь разный софт, под разные операционки, на разных языках программирования. Вроде много всего знаешь. А потом шаг в сторону — а там Нарния SIP, RTP, SDP и PBX. Последние несколько месяцев я плотно занимаюсь голосовой телефонией и периодически ловлю себя на мысли, что для новичков эта область документирована не особо хорошо. Ну а если по какой-то теме еще не написано десять статей “xxx с нуля”, то это прекрасный повод написать Хабрапост для широкого круга читателей. Сегодня я расскажу небольшую, но интересную часть теорикрафта: как облачные системы телефонии взаимодействуют друг с другом и с телекомами. На примере VoxImplant, конечно же.

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

Создание Excel файла из селекта с параметрами при помощи чистого PL/SQL, как альтернатива Oracle*Reports

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

Цели, которых я хотел достичь


  • Excel, как результат селекта, текст которого процедура узнает только в runtime
  • Селект перед выпонением видоизменяется в соответствии с параметрами, которые получает процедура
  • Процедуре передаются параметры файла, который будет создан
  • Возможность получения результирующего файла в форматах Excel Workbook,CSV,HTML,XML

Хранимая PL/SQL процедура получает в параметрах
  • текст селекта
  • параметры файла Excel
  • параметры выполнения
и создает полноценный Excel с несколькими таблицами(sheets).
Я знаю, что есть Crystal Reports и Oracle BI Publisher.
Но, во-первых, это крупные продукты(с большими ценами...), а Publisher, насколько я знаю не работает как отдельный модуль без Oracle Business Intelligence Enterprise Edition. И кроме того, речь шла о довольно узкой задаче создания файла без layout.

В конце, я написал один PL/SQL пакет, который находится в database и может быть вызван из любой аппликации. В ходе написания я столкнулся со многими ограничениями и хочу рассказать о том, как их поборол.

Для тех — кто сомневается, я этого, конечно не мог знать заранее, но за несколько лет, что пакет работает в большой компании, у меня не было проблем свести RDF любой сложности, с многими триггерами/формулами, в один селект, хвала Ораклу. Наоборот, так как селект — стринговый параметр и его можно построить динамически, это дает большую гибкость. В параметрах можно задать даже имя таблицы.
Читать дальше →
Всего голосов 10: ↑9 и ↓1+8
Комментарии11

Про модель, логику, ООП, разработку и остальное

Время на прочтение29 мин
Количество просмотров109K
Часто ли вы задумываетесь – почему что-то сделано так или иначе? Почему у вас микросервисы или монолит, двухзвенка или трехзвенка? Зачем вам многослойная архитектура и сколько у вас вообще слоев? Что такое бизнес-логика, логика приложения, презентационная логика и почему все так разделено? Посмотрите на свое приложение – как оно вообще спроектировано? Что в нем и где находится, почему это сделано именно так?
Потому что так написано в книжках или так говорят авторитетные личности? Какие ВАШИ проблемы решает тот или иной подход/паттерн?
Даже то, что на первый взгляд кажется очевидным, порой бывает очень сложно объяснить. А иногда, в попытке объяснения, приходит понимание того, что очевидные мысли были и вовсе ошибочны.
Давайте попробуем взять какой-нибудь пример и изучить на нем эти вопросы со всех сторон.
Читать дальше →
Всего голосов 55: ↑51 и ↓4+47
Комментарии34

Анти-паттерны Test Driven Development

Время на прочтение4 мин
Количество просмотров19K
Я надеюсь, что как грамотный разрабочик, вы имеете представление о unit-тестировании и сделаете себе в голове пару мысленных отметок о том, чего надо избегать при написании тестов. Знакомьтесь:

Лжец (The Liar)

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

Читать дальше →
Всего голосов 111: ↑109 и ↓2+107
Комментарии64

Build-Deploy-Test. Непрерывная интеграция

Время на прочтение8 мин
Количество просмотров25K
Непрерывная интеграция (англ. Continuous Integration, далее CI) — это практика разработки программного обеспечения, которая заключается в выполнении частых автоматизированных сборок проекта для скорейшего выявления и решения проблем интеграции результатов работы нескольких разработчиков.

Подчеркну, что это не методика и не стандарт, это ПРАКТИКА, и она подразумевает постоянную работу и вовлеченность всех членов команды. Зачем? Да чтобы не дожидаться конца проекта для проведения интеграции и внезапного всемирного коллапса. Кроме того задача CI — обезопаситься от разрушительных изменений в следствие рефакторинга, добавления нового функционала, изменений архитектуры и кучи других непредвиденных или известных проблем.

С помощью интеграционных сборок можно избавиться от синдрома «не знаю, на моей машине всё работает». Также мы защищаемся от «плохого кода», часто повторяющихся багов, «кривых» слияний. CI увеличивает возможности обратной связи потому, что она позволяет следить за состоянием проекта в течение дня.
Читать дальше →
Всего голосов 13: ↑11 и ↓2+9
Комментарии10

Лекции Технопарка. 3 семестр. Проектирование высоконагруженных систем

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


И снова в эфире наша постоянная рубрика «Лекции Технопарка». На этот раз предлагаем вам ознакомиться с материалами курса «Проектирование высоконагруженных систем». Цель курса — получение студентами навыков проектирования высокоэффективных программных систем.
Читать дальше →
Всего голосов 56: ↑53 и ↓3+50
Комментарии5

Лекции Технопарка. 2 семестр. Базы данных

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


Очередной пост в рамках нашей постоянной рубрики «Лекции Технопарка». В этот раз предлагаем вашему вниманию лекции, посвящённые базам данных. Цель курса — получение студентами знаний в области проектирования реляционных баз данных, эффективной работы с базами данных, оптимизации запросов и схем данных, изучение особенностей использования баз данных в проектах с высокой нагрузкой и/или использующих большие массивы данных, noSQL и его применение для решения прикладных задач в WWW.
Читать дальше →
Всего голосов 47: ↑45 и ↓2+43
Комментарии0

Книги по Swift

Время на прочтение1 мин
Количество просмотров21K
Добрый день, Хабровчане!

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

1. Книга для начинающих. Например такая
Swift for Beginners: Develop and Design
image
Читать дальше →
Всего голосов 15: ↑14 и ↓1+13
Комментарии13

Высокоточные станки запрещено перемещать без разрешения производителя

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

ЧПУ-фрезер Mori NV5000A

На форуме Practical Machinist развернулось феерическое обсуждение, как можно разблокировать ЧПУ-фрезер, который отказывается функционировать после перемещения на новое место.

Производитель оснащает станок GPS-сенсором и/или гироскопом. В случае перемещения станок автоматически блокируется до получения кода разблокировки.
Читать дальше →
Всего голосов 203: ↑187 и ↓16+171
Комментарии247

Отладка с помощью XDebug и PhpStorm (дополнение)

Время на прочтение2 мин
Количество просмотров222K
Доброго времени суток, %username%!

Прочитал сегодня статью «Отладка с помощью XDebug и PhpStorm на примере сайта 1С-Битрикс». В ней автор использует «зеленого жука» для запуска отладки. В комментариях предложены еще несколько методов запуска отладки, такие как специальные закладки, различные плагины и т.д. На мой взгляд, все это неудобно, к тому же есть наиболее простой и удобный вариант. Я мог бы предложить его в комментариях к статье, но, увы, в read-only это невозможно. Посему вынужден писать отдельную статью.
Читать дальше →
Всего голосов 36: ↑29 и ↓7+22
Комментарии15

Миграция с SQL Server на MariaDB / MySQL. Что делать с XML

Время на прочтение6 мин
Количество просмотров20K
Коллеги, хочу предложить вам описание решений которые помогли в проекте по миграции большого приложения с SQL Server на MariaDB / MySQL.

Возможно, это кому то поможет в аналогичном проекте.
Читать дальше →
Всего голосов 14: ↑12 и ↓2+10
Комментарии16

Интернет-сервис для отслеживания изменений на сайтах

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

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

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

Результатом разработки стал сервис Websvodka.ru, о котором здесь кратко расскажу. Возможно, вам он тоже сможет пригодиться.

image
Подробности
Всего голосов 28: ↑24 и ↓4+20
Комментарии27

Overclock мозга или Внутренняя виртуализация сознания

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


Все помнят этот фильм? Какого черта он делает на Хабре? И вообще что тут делает подобный пост?
Наверное потому, что я считаю главным звеном в IT все таки человека, а точнее его мозги. Я попробую рассказать еще об одной возможности использовать свой мозг чуточку эффективнее. Одна из слабо задокументированных возможностей, которую мы используем каждый день, но не всегда даже об этом вспоминаем. Все описанное проверялось на мне. Если что-то я не пробовал, но рассказать об этом важно буду отмечать особо. Никаких наркотиков, аппаратов и издевательств над собой, только общедоступные легкие методики (короче, лег проспался и вперед, не вставая даже с кровати).
И да… Это до жути реалистично, на столько, что попробовав, вы не сможете не рассказать об этом.

Что бы не было лишних криков в комментах, попрошу всех кто ярых сторонников любой религии и конфессии, а так же убежденных эзотериков сразу поставить минус в карму и не читать дальше. Здесь не будет философии и великих вселенских тайн. А остальных прошу под кат — попробую рассказать о своей практике разгона мозга с помощью встроенных функций.
ночь как полигон для...
Всего голосов 224: ↑172 и ↓52+120
Комментарии292

Робот-пылесос Kärcher RC 3000: опыт эксплуатации

Время на прочтение33 мин
Количество просмотров731K
В своей жизни я встречал людей, которым нравится пылесосить. Да, именно так, сам процесс наведения чистоты доставляет удовольствие. Причина может быть разной — от демонстрации собственной нужности до мизофобии.

Однако среди широкого спектра придуманных человечеством мотивов для проведения ежедневной уборки жилища, я не смог найти свой. Лень неизменно одерживала верх как над рациональными доводами о необходимости пылесосить каждый день, так и над эмоциональными порывами, энергии которых хватало только на то, чтобы выругаться: "Почему опять никто не убрался!"

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

Прочного и надежного робота-уборщика, способного нормально функционировать в самых тяжелых условиях:



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

Осторожно: под катом много фотографий и видеороликов
Всего голосов 317: ↑303 и ↓14+289
Комментарии330

Google Play — работаем легально!

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



Сегодня, я хочу рассказать о том как сделать свое хобби по разработке Android-приложений пусть небольшим, но официальным бизнесом. О том, как легально получать деньги, заработанные на Google Play, о «страшном» валютном контроле и «таинственном» паспорте сделки.
Читать дальше →
Всего голосов 92: ↑88 и ↓4+84
Комментарии115

Периодическая таблица методов визуализации

Время на прочтение1 мин
Количество просмотров26K
Этот краткий информационный пост посвящен тем, кто интересуется визуализацией данных.
На сайте http://www.visual-literacy.org обнаружил сегодня очень любопытную интерактивную периодическую таблицу методов визуализации данных (по аналогии с периодической таблицей химических элементов Менделеева).

image

Каждый элемент в этой таблице интерактивен и при наведении указателя мыши показывает один определенный метод визуализации данных.
Например элемент «Mi» — представляет собой метод визуализации «Mindmap», в чем можно наглядно убедиться, если навести на него мышкой.
В общем рекомендую к ознакомлению.

Ссылка на таблицу
Всего голосов 43: ↑32 и ↓11+21
Комментарии9

Информация

В рейтинге
Не участвует
Откуда
Сызрань, Самарская обл., Россия
Зарегистрирован
Активность