Привет, меня зовут Павел Комаровский – и я из тех душнил, которые в начале января усиленно строят всякие акульи планы на год. Так как делаю я это уже много лет, у меня выработался довольно своеобразный подход к процессу, которым я и хотел с вами поделиться – надеюсь, это поможет вам избежать ошибок, которых в свое время наделал я.
User
Как структурировать проект на Golang: гайд от backend-разработчика
Всем привет, меня зовут Авксентий, я backend-разработчик в inDriver. Думаю, каждый начинающий разработчик сталкивался с проблемой, как правильно выстроить архитектуру и структуру проекта. Ведь организация кода проекта — постоянно развивающаяся проблема, а следование стандартной структуре сохраняет чистоту кода и повышает производительность команды.
Когда я начинал писать на Go, то потратил много времени на поиски стандартов структурирования проекта. В итоге так и не нашел официального и точного стандарта — либо информация была неполной, либо это было не то, что нужно. Я решил написать свой гайд на основе опыта. Он для начинающих разработчиков и посвящен тому, как структурировать проект на Golang.
Средние highload паттерны на Go
Привет, Хабр! Меня зовут Агаджанян Давид и ранее я опубликовал статью «простые highload паттерны на Go», в которой были рассмотрены простые подходы увеличения пропускной способности отдельно взятого экземпляра приложения без хардкора. Мне импонируют простые подходы, так как over engineering подходы требуются в исключительных проектах, и то чаще всего только в отдельно взятых подсистемах, в остальном можно воспользоваться давно известными лучшими практиками.
Scrum внедрили, agile — забыли
Product owner в банке – кто это и что он умеет
Должность, которую часто считают синонимом «Менеджера проекта», благо ряд задач и обязанностей довольно схожи.
О том, кто такой продакт в понимании Альфа-Банка, что это за человек, что он умеет делать и как относится к своей команде, нам рассказал VDavydov Владимир Давыдов, руководитель по развитию цифровых каналов и продуктов Блока “Массовый бизнес”
«Хочешь быть системным архитектором? Там только свет и чистота…»
Много лет назад я от усталости облокотился на стену техкоридора и начал по ней медленно сползать. Мы только что сдали проект после пары недель ночных переработок, чтобы уложиться в дедлайн. Мимо шёл мой руководитель, я простонал:
— Рома, я задолбался быть инженером. Всё, ухожу!
Он ласково улыбнулся и сказал:
— Хорошо. Будешь системным архитектором. Там только свет и чистота. Выспись и приходи, расскажу, что будешь делать.
Я был молодым и наивным. Выспался и пришёл. Тогда начал постепенно становиться архитектором (сейчас стал), и могу смело сказать: света и чистоты тут столько же, сколько в буднях инженера. А вот ответственности больше. Поэтому — нет, не надо быть архитектором, если вы не понимаете, на что идёте.
Но! Если понимаете — это будет очень увлекательное приключение.
Договоры — это как отладка
7.2. Как форс-мажор указана забастовка в отрасли и регионе, это лучше вычеркнуть, т.к. неясно, в какой отрасли и в каком регионе.
Чтобы быть плохим юристом, не надо обладать специальными навыками: достаточно здравого смысла, чтобы разбираться в документах. Чтобы быть приемлемым юристом — ещё нужна хорошая память для того, чтобы помнить, что и где в нормативах и прецедентах. А чтобы быть отличным — ещё иметь огромную практику и нездоровое чувство юмора. Хотя последнее необязательно, конечно.
Каждый наш договор страхует юрист-отладчик, который как брекпоинтами размечает точки рисков. Сейчас покажу пару примеров того, что он видит и чувствует.
3 необычных кейса о сетевой подсистеме Linux
В этой статье представлены три небольшие истории, которые произошли в нашей практике: в разное время и в разных проектах. Объединяет их то, что они связаны с сетевой подсистемой Linux (Reverse Path Filter, TIME_WAIT, multicast) и иллюстрируют, как глубоко зачастую приходится анализировать инцидент, с которым сталкиваешься впервые, чтобы решить возникшую проблему… и, конечно, какую радость можно испытать в результате полученного решения.
Что делать, если не знаешь, как работает ПО
Источник
Мы тоже не любим софт, который неизвестно как работает. Если программа ― черный ящик, при каждой непонятной ситуации остается ровно два варианта: попробовать приложить подорожник или обратиться к производителю. Но, во-первых, мы не знаем, где растет столько подорожника, а, во-вторых, обращаться по разным мелочам к вендору тоже как-то не ацаца.
Несколько лет назад, у одного из наших заказчиков нашелся ровно такой софт: на входе запросы, на выходе ответы, а внутри непонятно что. Называется автоматизированная банковская система или АБС. Но по сути это база данных, которая в общем случае обрабатывает запросы из процессинга и возвращает результат. В результате содержится ответ: может банк провести эту операцию или нет. Подступиться к этой базе данных с внешним запросом нет никакой возможности в силу ее архитектурных ограничений. В одном из недавних проектов снова столкнулись с таким же ПО в ритейле и подумали, что пора бы уже поделиться своими наработками.
В прошлой статье мы рассказывали, как прослушивание трафика помогло одному из клиентов Техносерва отловить внутренние проблемы софта. В этой будет технический разбор той давней задачи (руки-то помнят), а в конце — два важных бенифита такого вида мониторинга.
Сервис-ориентированная архитектура (SOA)
Сервис-ориентированная архитектура (service-oriented architecture, SOA) придумана в конце 1980-х. Она берёт своё начало в идеях, изложенных в CORBA, DCOM, DCE и других документах. О SOA написано много, есть несколько её реализаций. Но, по сути, SOA можно свести к нескольким идеям, причём архитектура не диктует способы их реализации:
- Сочетаемость приложений, ориентированных на пользователей.
- Многократное использование бизнес-сервисов.
- Независимость от набора технологий.
- Автономность (независимые эволюция, масштабируемость и развёртываемость).
SOA — это набор архитектурных принципов, не зависящих от технологий и продуктов, совсем как полиморфизм или инкапсуляция.
Пишем телеграм бота-парсера вакансий на JS
Тема создания ботов для Telegram становится все более популярной, привлекая программистов попробовать свои силы на этом поприще. У каждого периодически возникают идеи и задачи, которые можно решить, написав тематического бота. Для меня, как программиста на JS, пример такой актуальной задачи — мониторинг рынка вакансий по соответствующей тематике.
Однако одним из наиболее популярных языков и технологий в сфере создания ботов является Python, предлагающий программисту огромное количество хороших библиотек для обработки и парсинга различных источников информации в виде текста. Мне же захотелось сделать это именно на JavaScript — одном из моих любимых языков.
Веб-приложение на Node и Vue, часть 1: структура проекта, API, аутентификация
Эти материалы рассчитаны на читателей, которые знакомы с JavaScript, имеют общее представление о Node.js, npm и MongoDB, и хотят изучить связку Node-Vue-MongoDB и сопутствующие технологии. Приложение будем писать с нуля, поэтому запаситесь любимым редактором кода. Для того, чтобы не усложнять проект, мы не будем пользоваться Vuex и постараемся сосредоточиться на самом главном, не отвлекаясь на второстепенные вещи.
Автор этого материала, разработчик из Бразилии, говорит, что ему далеко до JavaScript-гуру, но он, находясь в поиске новых знаний, готов поделиться с другими тем, что ему удалось найти.
Создание веб-приложения на Go в 2017 году
Пару недель назад я начал разрабатывать еще одно веб-приложение, только уже на Go. Будучи, в основном, бэкэнд-разработчиком, я не часто писал веб-приложения целиком, поэтому каждый такой случай больше походил на вызов. В такие моменты хотелось, чтобы кто-нибудь написал руководство по веб-разработке для людей, у которых нет возможности целыми днями вникать в тонкости отличного дизайна, но которым просто нужно создать работающий, функциональный сайт без лишней суеты.
Я решил воспользоваться этой возможностью и сделать такое руководство, в котором начать с нуля веб-приложение так, как это должно быть сделано в 2017 году (в моем понимании). Я провел много часов, докапываясь до тех вещей, которых раньше обычно избегал, просто для того, чтобы хотя бы раз за много лет я мог с уверенностью заявить, что у меня есть свой взгляд и опыт в этом вопросе, и получить для себя работающий рецепт, который, возможно, пригодится не только мне.
Sir Markdown. Лекция Яндекса
У меня иногда складывается впечатление, что не он служит для нас, а мы служим для этого формата. Поэтому — сэр Markdown.
WiFi колонка/плеер на базе Orange Pi Zero или история о потерянном времени
Предыстория
История моя началась с того, что по просьбе одного друга нужно было сделать небольшое программируемое устройство с выводом звука и GPIO. Давно хотел поработать с каким-либо одноплатником *Pi и потому сразу решил делать на чем-то подобном (результат + опыт). Друг почти сразу отказался от предложенного проекта, ну а я оказался с купленной платой OrangePi Zero. Некоторое время провалялась она без дела, пока не отдали мне старый МФУ Canon MX320 без поддержки сети. Мне очень не хотелось иметь лишний провод от ноутбука к принтеру, и в результате апельсинка была извлечена, настроена и работает с тех пор в качестве CUPS сервера по USB (результат, кстати, хороший, но это уже совсем другая история).
Завязка
Однажды надоело мне вечно подключать через minijack мой телефон к колонкам. Стоят они хорошо, удобно, и переносить их неохота. А телефон, вечно висящий на линейнике- это уже не мобильный телефон, а что-то похожее на старые проводные аппараты. Ноутбук у меня тоже стоит так, что подключать к нему кабель к колонкам было бы неудобно. Да и сама машинка старая (10 лет уже), лишний аудиоплеер — лишняя нагрузка.
Можно, конечно же, купить bluetooth-колонки. Или bluetooth-адаптер. Но это значит малый радиус действия и проигрывание музыки только на том устройстве, с которым по bluetooth связан телефон. Надо что-то посерьезнее. «Здорово было бы повесить такой сервер на апельсинку, который мог бы принимать аудиопоток с смартфона по WiFi, — подумал я, — ведь она постоянно подсоединена по ethernet к роутеру, малонагружена (так как стоит на ней Ubuntu Server 16.04), разместить можно удобно, электричества потребляет мало.» Сказано — сделано.
JavaScript, Node, Puppeteer: автоматизация Chrome и веб-скрапинг
puppeteer
можно создавать программы для автоматического сбора данных с веб-сайтов, так называемые веб-скраперы, имитирующие действия обычного пользователя. В подобных сценариях может применяться браузер без пользовательского интерфейса, так называемый «Headless Chrome». Используя puppeteer
, можно управлять и браузером, который запущен в обычном режиме, что особенно полезно при отладке программ. Сегодня мы поговорим о создании веб-скрапера на базе Node.js и
puppeteer
. Автор материала стремился к тому, чтобы статья была интересна как можно более широкой аудитории программистов, поэтому пользу из него извлекут как те веб-разработчики, которые уже имеют некоторый опыт работы с puppeteer
, так и те, которые впервые сталкиваются с таким понятием, как «Headless Chrome».Окружение для разработки веб-приложений на TypeScript и React: от 'hello world' до современного SPA. Часть 1
Так же, автор пишет эту статью для структурирования собственных мыслей, знаний и практического опыта, и получает хорошую мотивацию на изучение новых аспектов разработки.
Автор полностью открыт для доработки и исправления текущей статьи, и надеется на превращение итогового материала в актуальный и удобный справочник, интересный и для профессионалов, и для желающих опробовать новые для них технологии.
Основы синтаксиса TypeScript
В 2012 году разработчики C# из компании Microsoft создали язык TypeScript — надмножество JavaScript. Он предназначен для разработки больших приложений, от100 тысяч строк. Давайте на примерах рассмотрим синтаксис TypeScript, его основные достоинства и недостатки, а также разберём способ взаимодействия с популярными библиотеками.
Кому это будет полезно: Web-разработчикам и разработчикам клиентских приложений, интересующимся возможностью практического применения языка TypeScript.
Laravel — экосистема, а не просто PHP-фреймворк
Данная статья предназначена для начинающих веб-разработчиков, а также тех, кто хочет понять, для чего стоит изучить PHP-фреймворк Laravel и какую экосистему он нам предлагает. Статья написана на момент актуальности Laravel версии 5.4, в августе 2017 выйдет релиз Laravel 5.5, который предоставляет ещё больше возможностей.
Содержание:
Аутентификация и авторизация в микросервисных приложениях
Автор: Вячеслав Михайлов, Solutions Architect
Это вводная часть материала, основанного на докладе, прочитанном мной прошлым летом. Печатный материал предполагает больше информации, т.к. в одном докладе обычно не получается рассказать обо всех деталях.
Мы разберемся с процессом аутентификации пользователя, работой технологии единого входа (Single sign-on/SSO), дадим общее представлении о технологии OAuth2 и принципах ее работы, не углубляясь в особенности конкретной технической реализации. В следующей статье в качестве примера удачной реализации мы рассмотрим библиотеку Thinktecture Identity Server v3, подробнее остановимся на ее функциональных возможностях, поговорим, как собрать минимальный набор компонент, необходимый для работы в микросервисной архитектуре и достойный использования в боевой системе. В третьей части мы покажем, как расширять эту библиотеку, подстраиваясь под нужды вашей системы, а завершит цикл статей разбор различных сценариев, встречавшихся в жизни многих разработчиков с рекомендациями для каждого случая.
Information
- Rating
- Does not participate
- Registered
- Activity