Pull to refresh
1
0

Разработчик

Send message

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

Reading time31 min
Views165K
На недавнем Laracon NYC я читал доклад о гексагональной архитектуре. Несмотря на то, что я получил позитивную реакцию слушателей, мне кажется, что остались люди, которые хотели бы получить чуть более полное представление о том, что это такое. Разумеется, с примерами. Это моя попытка расширить тот доклад.

  1. Видео с доклада
  2. Слайды


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



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



Гексагональная архитектура, ни в коем случае не новый подход к разработке с применением фреймворков. Напротив, это всего лишь обобщение «лучших практик» — практик новых и старых. Я обернул эти слова в кавычки, чтобы люди не воспринимали их совсем буквально. Лучшие практики, которые работают для меня, могут не работать для вас — все зависит от задачи и преследуемых целей.



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


Читать дальше →
Total votes 20: ↑16 and ↓4+12
Comments16

Типичные зубы пациента-айтишника: что с ними не так

Reading time7 min
Views96K
Добрый день! Меня зовут Ярослав, я главврач клиники на Зиларте сети «Белая радуга». 10 лет я работаю с зубами пациентов, и вот на 10-й год обнаружилось кое-что интересное. Мы в декабре начали писать про свою клинику, и у нас в гостях оказались люди, которые говорили, что они с Хабра.

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

image
Стираемость на нижней челюсти.

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

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

  1. Нарушение саливации из-за ночной работы, обезвоживания или стресса.
  2. Привычка перекусывать джанк-фудом (пицца, печенье).
  3. Малоподвижный образ жизни с детства, что в целом сказывается на формировании постуры, скелета и прикуса.
  4. Привычка блокировать телесные сигналы: развитая «встроенная» аутоанестезия.

Давайте расскажу, что я увидел по зубам.
Читать дальше →
Total votes 141: ↑134 and ↓7+127
Comments237

«Чистый код» Роберт Мартин. Конспект. Как писать понятный и красивый код?

Reading time9 min
Views59K
Я решил написать конспект книги, которая всем известна, а сам автор называет ее «Школой учителей Чистого кода». Пристальный взгляд Мартина как бы говорит:

«Я тебя насквозь вижу. Ты опять не следуешь принципам чистого кода?»

image
Читать дальше →
Total votes 19: ↑18 and ↓1+17
Comments15

Как освоить Vim?

Reading time6 min
Views91K
Осваивать Vim — это, пожалуй, страшно. Или, точнее, очень страшно. Речь идёт об изучении совершенно необычного подхода к редактированию кода, не говоря уже о работе с простым текстом. Многие несправедливо обвиняют тех, кто выбирает Vim, в том, что они впустую тратят время.

Я со всей уверенностью могу заявить о том, что Vim позволил мне повысить эффективность в деле написания программ. Работать стало удобнее (ниже я расскажу об этом более подробно). Я никому не хочу навязывать Vim, но очень рекомендую освоить этот редактор всем, кто занимается программированием, работает в сфере Data Science, в общем — тем, кто так или иначе пишет и редактирует некий код.



Если вам очень хочется узнать о том, стоит ли вам использовать Vim, и о том, кто и для чего им реально пользуется — взгляните на этот материал (кстати, не позвольте его названию, «Не пользуйтесь Vim», ввести себя в заблуждение). Ещё можете посмотреть это видео, которое, кстати, подготовил сам Люк Смит.

А теперь, учитывая всё вышесказанное, предлагаю поговорить о том, что такое, на самом деле, Vim!
Читать дальше →
Total votes 61: ↑56 and ↓5+51
Comments370

Вероятно, хватит рекомендовать «Чистый код»

Reading time13 min
Views174K
Возможно, мы никогда не сможем прийти к эмпирическому определению «хорошего кода» или «чистого кода». Это означает, что мнение одного человека о мнении другого человека о «чистом коде» обязательно очень субъективно. Я не могу рассматривать книгу Роберта Мартина «Чистый код» 2008 года с чужой точки зрения, только со своей.

Тем не менее, для меня главная проблема этой книги заключается в том, что многие примеры кода в ней просто ужасны.
Читать дальше →
Total votes 157: ↑147 and ↓10+137
Comments427

Прагматичное функциональное программирование

Reading time5 min
Views15K

Движение к функциональному программированию началось всерьез примерно десятилетие назад. Мы видели как такие языки как Scala, Clojure и F# стали привлекать внимание. Это движение было больше чем просто обычное восхищение «О, круто, новый язык!». Было что-то действительно побуждающее это движение — или мы так думали.

Читать дальше →
Total votes 31: ↑26 and ↓5+21
Comments100

Путешествие за бугор и обратно: как не надо устраиваться работать за рубежом

Reading time11 min
Views216K

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


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


image
Читать дальше →
Total votes 414: ↑403 and ↓11+392
Comments1266

Grafana как еще один инструмент для технического мониторинга создаваемых нами программных продуктов

Reading time7 min
Views245K

Очередная статья в серии «Инструменты мониторинга Logicify» рассказывает о Grafana. Это программное средство мы используем для визуализации и анализа данных как внутренних, так и внешних проектов. Статья может быть полезна техническим директорам, разработчикам, DevOps, системным администраторам, менеджерам проектов, а также всем заинтересованным лицам.


image

Читать дальше →
Total votes 24: ↑21 and ↓3+18
Comments7

Особенности русской разработки

Reading time8 min
Views284K
image

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

Есть очень неплохая книжка о специфике работы русских вообще. Она называется «Русская модель управления». Ее написал А.П.Прохоров (другой, не олигарх). Не буду ее пересказывать. Основная идея в том, что русские по своей природе могут работать только в двух модах. В нестабильном состоянии они могут свернуть горы. В это время мотивация очень высокая. В стабильном расслабленном состоянии — когда никто не пинает — русские вроде как работают плохо и не сильно утруждаются.

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

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

Я буду приводить влияние разных факторов в порядке их важности и силы влияния. Чем выше — тем сложнее это изменить и тем больший эффект это оказывает.
Читать дальше →
Total votes 531: ↑513 and ↓18+495
Comments420

Автоматизация тестирования в микросервисной архитектуре

Reading time8 min
Views11K

Привет, Хабр. Меня зовут Сергей Вертепов, я senior backend инженер. Это небольшая обзорная статья о том, как мы тестировали монолитное приложение Авито, и что изменилось с переходом на микросервисную архитектуру.


Читать дальше →
Total votes 14: ↑13 and ↓1+12
Comments7

Первый контакт с «var» в Java 10

Reading time9 min
Views67K
Представляю вашему вниманию перевод статьи First Contact With ‘var’ In Java 10 автора Nicolai Parlog.

image

Java 10 будет выпущен 20 марта 2018 года, и все фичи, которые должны быть в этом релизе, уже объединены в основную ветку разработки. Одним из самых интересных нововведений Java 10 безусловно является вывод типа локальной переменной (JEP 286). Это дает вам возможность сократить объявления переменных используя новое ключевое слово var:

var users = new ArrayList<User>();

И это все, спасибо за внимание!

Нет, я уверен, что вам интересно узнать больше. Под катом я расскажу, где применяется var, а где нет, как это влияет на читаемость кода и что произошло с val.
Читать дальше →
Total votes 51: ↑49 and ↓2+47
Comments182

Что айтишнику делать в 2020? 

Reading time6 min
Views79K
Приобрести VDS со скидкой 30%, да ещё и до повышения цен. Шутка :) Но в каждой шутке есть доля правды.

До нового года осталась ровно неделя и мы знаем, что почти никто из нас с вами не начнёт новую жизнь с 1 января или с понедельника. Но также мы знаем, что никто не остановится в развитии — такова уж наша айтишная судьба: ушёл на три недели на больничный, вернулся и выпал из реальности. Ну почти. Казалось бы, сложившиеся технологии вполне достаточны для реализации большинства текущих проектов и даже самых смелых фантазий, но тем не менее в привычный стек то и дело врывается что-то новое. А стоит ли в это новое вникать? Что изучать дальше? Или наконец выйти из айти? Мы набросали небольшой план на год.


После Cybertruck мы решили не включать дизайн в список перспективных направлений для айтишников в 2020 году. Что есть внешность вещей? Ничто рядом с их сутью
Читать дальше →
Total votes 59: ↑46 and ↓13+33
Comments62

Средства консоли Chrome, которыми вы, возможно, никогда не пользовались

Reading time7 min
Views52K
Консоль инструментов разработчика Chrome — это, вероятно, одно из самых широко используемых и самых полезных специализированных средств браузера. Консоль даёт программисту множество интересных возможностей. Она помогает в отладке, профилировании и мониторинге кода страниц.



Материал, перевод которого мы сегодня публикуем, посвящён рассказу о некоторых возможностях консоли Chrome, которые известны не так широко, как они того заслуживают.
Читать дальше →
Total votes 94: ↑94 and ↓0+94
Comments27

Современный курс по Node.js в 2020

Reading time4 min
Views110K


Дорогие товарищи инженеры, сообщество Метархия представляет вашему вниманию современный курс по Node.js, который включает глубокий разбор всех возможностей и аспектов платформы. Основной упор делается на то, как создавать надежные высоконагруженные сервера приложений и API без привязки к конкретному фреймворку и даже протоколу, т.е. абстрагировать бизнес-логику в отдельный слой. К лекциям прикреплено множество примеров кода, демонстрирующих гибкую структуру приложений и архитектурные приемы, в том числе работу с СУБД через слой доступа к данным, создание интерактивных приложений на вебсокетах, обеспечение безопасности, Graceful shutdown, межпроцессовое взаимодействие, предотвращение утечек памяти, масштабирование и кластеризацию при помощи процессов и потоков. На текущий момент в курсе 38 лекций (около 35 и ½ часов видео), 37 репозиториев с примерами кода, 4 PDF со слайдами. Перед основной частью курса по Node.js нужно сначала освоить хоть частично курс по асинхронному программированию.

Читать дальше →
Total votes 40: ↑40 and ↓0+40
Comments15

Простой Telegram-бот на Python за 30 минут

Reading time4 min
Views1.2M
На Хабре, да и не только, про ботов рассказано уже так много, что даже слишком. Но заинтересовавшись пару недель назад данной темой, найти нормальный материал у меня так и не вышло: все статьи были либо для совсем чайников и ограничивались отправкой сообщения в ответ на сообщение пользователя, либо были неактуальны. Это и подтолкнуло меня на написание статьи, которая бы объяснила такому же новичку, как я, как написать и запустить более-менее осмысленного бота (с возможностью расширения функциональности).

Читать дальше →
Total votes 35: ↑29 and ↓6+23
Comments22

Разработка REST API — что такое Contract First?

Reading time3 min
Views102K
Это третья статья из серии статей про REST API:


В этой статье мы рассмотрим подход к разработке REST API на основе контракта.

При разработке хорошего API REST важно иметь отличные микросервисы. Подход Contract First поможет вам разработать хороший контракт до его реализации. Однако это не так просто!


Читать дальше →
Total votes 8: ↑8 and ↓0+8
Comments3

История Интернет-порно. Часть 2

Reading time18 min
Views27K
Недавно в статье Великий порноэксперимент: история Интернета для взрослых, мы затронули важную для всех тему, однако упустили полноценную историческую часть, которая не менее важна и интересна, и пожалуй, заслуживает двух отдельных публикаций.

«Интернета просто бы не существовало без порно и Стартрека» — Рик Берман, продюсер телесериала «Звездный путь».

Disclaimer. В статье присутствуют изображения эротического содержания и полностью отсутствует какой-либо порнографический контент. Рассказывается о том, какое развитие обеспечил контент для взрослых в целом для медиаиндустрии и для сети Интернет после её рождения. Вы узнаете историю от порно-театров до наших дней, почему VHS победил BetaMax, о том, как «сисопы» заработали свои первые миллионы долларов на эротическом контенте, распространяя его миллионам человек еще до того, как появился Интернет, то есть тогда, когда в Интернете ещё никого не было. А также то, как Амазон и многие другие онлайн-корпорации, использовали модель Леви для работы с партнёрами, применявшуюся на ранних сайтах для взрослых, и то что двухфакторная идентификация впервые была изобретена для того, чтоб защитить пользователей от нежелательных порнографических email-рассылок, а не только для повышения безопасности.

История Интернет-порно. Часть 1

Total votes 37: ↑34 and ↓3+31
Comments17

Опыт поступления в магистратуру в Германии (детальный разбор)

Reading time62 min
Views87K
Я программист из Минска, и в этом году я успешно поступил в магистратуру в Германии. В данной статье я бы хотел поделиться своим опытом поступления, включая выбор подходящей программы, сдачу всех тестов, подачу заявок, коммуникацию с германскими вузами, получение студенческой визы, общежития, страховки и выполнение административных процедур по приезду в Германию.

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

Эта статья будет полезна тем, кто планирует или начинает поступать в магистратуру в Германии по специальностям, связанным с Computer Science. Частично данная статья может быть полезна и поступающим на другие специальности. Читателям, не планирующим поступать куда-либо данная статья может показаться скучной из-за обилия всяких бюрократических подробностей и отсутствия фотографий.
Читать дальше →
Total votes 55: ↑54 and ↓1+53
Comments59

Книга «Психбольница в руках пациентов. Алан Купер об интерфейсах»

Reading time8 min
Views13K
image Все мы — безумцы, живущие в технологическом сумасшедшем доме, и создали этот безумный мир мы сами. Своими руками сотворили этот кошмар: интерфейсы, которые нас раздражают и утомляют глаза, устройства, которые приводят к болям в спине и в запястьях. Эта книга стала манифестом и до сих пор не потеряла актуальность. Дверь на свободу распахнута. Почему же мы не замечаем выхода? Об этом и рассказывает Алан Купер, объясняя разницу между интерфейсом и взаимодействием.

Проектируйте только для одной персоны


При создании продукта, рассчитанного на удовлетворение потребностей широкой аудитории пользователей, логика обычно побуждает наделить его настолько обширными функциональными возможностями, чтобы охватить как можно большее количество людей. В данном случае логика ошибается. Ваш продукт станет куда как более успешен, если вы спроектируете его только для одного человека.
Читать дальше →
Total votes 25: ↑23 and ↓2+21
Comments4

Information

Rating
Does not participate
Location
Россия
Registered
Activity