Pull to refresh
45
0.1
Денис Бесков @beskov

Руководитель онлайн-школы Systems.Education, CPRE

Send message

Восхитительная теория [якорных] баз данных от Ларса Рённбека

Level of difficultyMedium
Reading time10 min
Views5.7K

Обнаружил серию статей по принципам организации информации и базам данных от математика из Стокгольмского университета и с энтузиазмом перевожу. Моя уверенность в том, что реляционки с 3-й формой нормализации - лучшее, что придумало человечество, резко убавилась... Я бы назвал это "субъективной теорией информации", автор называет "Transitional modeling", но обычно это применяется под названием "якорная модель данных"...

Читать далее
Total votes 9: ↑7.5 and ↓1.5+6
Comments16

Декомпозиция программных компонент

Level of difficultyEasy
Reading time4 min
Views2.6K

Здравствуйте, меня зовут Дмитрий Карловский и я.. люблю власть. Когда я берусь за клавиатуру, каждый байтик начинает плясать под мою дудку. Но когда этих байтиков становится по настоящему много, уследить за всеми становится сложно. Поэтому давайте сравним популярные паттерны проектирования, позволяющие разделить большое приложение на компоненты, чтобы властвовать над ними максимально эффективно и независимо.

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

И тут начинаются нюансы..
Total votes 42: ↑24 and ↓18+6
Comments18

Микросервисы прагматика: как построить большую систему с помощью пачки монолитов

Level of difficultyMedium
Reading time22 min
Views6.8K

...

Попробую, попытаюсь объяснить. Наверное, для кого-то это будет оправданием, но я просто объясняю.

Как быстро зафейлить новый проект Java? Просто взять и применить все, что ты услышал на последней Java конференции;) Как быстро сделать энтерпрайзный проект минимальной командой в короткие сроки? Верно — подобрать оптимальную архитектуру и правильные инструменты. Senior Developer из команды Jmix Дмитрий Черкасов рассказывает о компромиссном варианте между хайповыми (все еще) микросервисами и монолитами, который называется Self-Contained Systems. Кажется, он выпьет меньше крови и сохранит ваши нервы. Дальше — рассказ от первого лица.

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

Протоколы семейства TCP/IP. Теория и практика

Level of difficultyMedium
Reading time23 min
Views98K
image

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

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

В ходе работы над статьёй я написал небольшое приложение, которое послужит отправной точкой для понимания компьютерных сетей и семейства протоколов TCP/IP. С приложением можно экспериментировать, получая дополнительные знания.

Приложение — простое и понятное и, надеюсь, упростит изучение материалов статьи. Ведь именно радость первой победы даёт мотивацию, достаточную для того, чтобы потратить гораздо больше времени на изучение темы.

В статье изложены наиболее важные с моей точки зрения понятия, которые должен знать любой программист, хоть как-то сталкивающийся с компьютерными сетями. Так что без теоретических сведений не обошлось.
Читать дальше →
Total votes 82: ↑82 and ↓0+82
Comments5

PokiToki: Удобный GPT-бот в телеграме

Reading time4 min
Views25K

PokiToki

За последние месяцы только ленивый не сделал телеграм-бота, который работает с API OpenAI. Были такие статьи и на Хабре.


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


Читать дальше →
Total votes 26: ↑25 and ↓1+24
Comments3

API от А до Я (теория и практика)

Level of difficultyEasy
Reading time11 min
Views23K

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

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

Что такое психическое здоровье: взгляд со стороны психологии / психотерапии

Reading time28 min
Views52K
Привет, читатель!

Прошлая моя статья вышла несколько “суховатой”, в чем меня справедливо упрекнули на нескольких площадках, поэтому я решил написать другую, более наполненную живыми примерами и понятными объяснениями. Поговорить сегодня я предлагаю о психическом здоровье в целом — что это такое, в чем проявляется, где грань между ним и… не совсем здоровыми состояниями и т.п.

ПРЕДСТАВЬТЕ, ЧТО ТУТ — КАРТИНКА ДЛЯ ПРИВЛЕЧЕНИЯ ВНИМАНИЯ


tl:dr: В статье рассматривается вопрос психического здоровья на примере модели, предложенной Нэнси Мак-Вильямс (“16 элементов психического здоровья”). По каждому элементу я постараюсь дать примеры — как выглядит “сломанная” в этом аспекте психика, что было сделано, чтобы её “починить” (в данном конкретном случае), какие ошибки были допущены, что ещё можно было бы сделать и т.д.

К сожалению, стремление к упрощению материала с моей стороны значительно снизило точность и объективность формулировок, предупреждаю сразу.
Читать дальше →
Total votes 44: ↑43 and ↓1+42
Comments130

Право на ошибку. Деньги и методологии разработки в ИТ

Reading time16 min
Views6.7K

Есть много разных методологий разработки: Waterfall, Agile, Lean и другие. Ситуацию усложняют различные схемы оплаты разработки в ИТ. Что лучше: Fixed Price, Time&Material или взять людей на аутстафф? Человеку, далёкому от коммерческой разработки, бывает сложно разобраться что и когда стоит использовать. Чтобы помочь с этим разобраться, рассмотрим разные методологии и схемы оплаты с точки зрения работы с рисками и права на ошибку. Попробую писать простым языком, чтобы было понятно всем.

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

Требования не меняются, это мы их недовыявили. 10 техник проверки полноты требований

Reading time26 min
Views19K

Требования, конечно, меняются. Иногда. Но гораздо чаще случается, что мы не до конца выяснили у заказчика и стейкхолдеров все требования, оставив множество умолчаний.

В этой статье я опишу примеры подобных ситуаций и расскажу о техниках, позволяющих задать нужные вопросы, выявить максимальное количество требований на ранних этапах анализа, обсудить со стейкхолдерами нужность этих требований и их приоритеты. Как правило, после применения всех техник в 1,5−2 раза возрастает объём требований и юзкейсов для обсуждения — и это одна из основных задач аналитика: задать все вопросы и выяснить все детали до начала проектирования и разработки системы.

Возможно, многие подходы вы уже применяете, а о некоторых даже не слышали; я попробую свести их в единую систему.

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

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

Теория ограничений в интерфейсах (кто убил старого графа?)

Reading time10 min
Views29K
Привет, меня зовут Александр Волков, я проектирую интерфейсы в компании Docsvision. Цель этой статьи — помощь разработчикам сложных программных продуктов. Ключевое слово — сложных. Спроектировать сайт-визитку сегодня может даже пятиклассник прямо на своем смартфоне, и при желании можно скачать зип-архив с готовым шаблоном блога или корпоративного сайта. Однако если ваше приложение посложнее обычного интернет-магазина, то, вполне вероятно, строить структуру и определять принципы навигации вам придется самостоятельно, наступая на разбросанные повсюду грабли. Здесь может пригодиться наш опыт. Я опишу один из возможных способов проектирования интерфейсов, который успешно опробован в нашей компании. Это делается легко и просто (практически в полуавтоматическом режиме) при помощи программы FlyingLogic.
Читать дальше →
Total votes 19: ↑17 and ↓2+15
Comments16

Большая подборка каналов для продакт менеджеров

Reading time9 min
Views23K

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

Большая подборка полезных telegram-каналов и чатов для product managers, project managers и product owners. Здесь ты найдешь как крупные популярные каналы с десятками тысяч подписчиков от знаменитых продактов, так и ламповые каналы на пару сотен человек без рекламы и смс.

Исключительно актуальные и действующие каналы от профессионалов рынка. Обязательно к изучению тем, кто только начинает свой путь в управлении продуктами.

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

13 инструментов для обработки текста в командной оболочке

Reading time17 min
Views87K
Здесь представлен фрагмент будущей книги «Основные инструменты и практики для начинающего разработчика программного обеспечения» Бальтазара Рубероля и Этьена Броду. Книга должна помочь образованию подрастающего поколения разработчиков. Она охватит такие темы, как освоение консоли, настройка и эффективная работа в командной оболочке, управление версиями кода с помощью git, основы SQL, инструменты вроде Make, jq и регулярные выражения, основы сетевого взаимодействия, а также лучшие практики разработки программного обеспечения и совместной работы. В настоящее время авторы упорно работают над этим проектом и приглашают всех поучаствовать в списке рассылки.

Содержание


Читать дальше →
Total votes 56: ↑53 and ↓3+50
Comments65

Построение приложений командной строки (CLI)

Reading time30 min
Views88K
Данная статья написана под влиянием книги Дэвида Коупленда «Build Awesome Command-Line Application in Ruby» (купить, скачать и изучить дополнительные материалы). Большая её часть будет посвящена проектированию дизайна CLI-приложений вне зависимости от используемого языка. По ходу будут обсуждаться и вещи специфичные для ruby, но не страшно, если вы его не знаете, кода будет не слишком много. Можно считать эту статью довольно подробным обзором вышеупомянутой книги с вкраплениями собственного опыта. Книжку рекомендую!

Для начала я задам вопрос. Если посмотреть на сообщества IT-шников, можно заметить, что несмотря на обилие программ с красивым графическим интерфейсом, приложения командной строки остаются весьма популярны. Почему?
Ответов несколько. Во-первых, это красиво удобно — если вы можете описать задачу командой в командной строке, то её гораздо проще автоматизировать, чем если вам приходится анализировать передвижения мыши и клики на разные пункты меню. Во-вторых, это даёт возможность комбинировать программы невероятным числом способов, чего сложно добиться с помощью графических интерфейсов.
В значительной степени философия Unix базируется на том принципе, что множество маленьких утилит, каждая из которых умеет делать свою конкретную задачу — это лучше, чем одна многофункциональная программа-универсал. И это одна из причин успеха Unix-систем в мире IT-шников.
Наверное, каждый понимает, что обычного пользователя вряд ли удастся сманить от GUI к CLI, давайте сосредоточимся на нас, «компьютерщиках» и конкретизируем наши пожелания к CLI-приложениям.
Читать дальше →
Total votes 78: ↑72 and ↓6+66
Comments31

Развитие стохастических продуктов

Reading time7 min
Views2.7K

Не все классические метрики и инструменты одинаково полезны для каждого продукта. Retention, churn, DAU/MAU и пр. — это всё замечательно, если у тебя продукт по духу близок к FAANG-истории, где всё взаимодействие, ключевая ценность находится в рамках продукта, а контакт с пользователем регулярный и прогнозируемый. Но бывает так, что ключевой пользовательский опыт происходит в офлайне, продуктом могут пользоваться раз в несколько лет и, к тому же, мы не можем повлиять на возникновение потребности у конкретного Пользователя. Что выбрать как показатель успеха? На что смотреть, если Retention, оттоки и активации не работают или их не удается жёстко связать с изменениями?

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

REST, что же ты такое? Понятное введение в технологию для ИТ-аналитиков

Reading time17 min
Views262K

Проектирование и работа с REST-сервисами стали повседневными задачами для многих аналитиков. Однако мы часто встречаемся на работе с различными или даже противоречащими друг другу трактовками таких понятий, как REST, RESTful-сервис, RESTAPI.

Сегодня мы разберём, какие принципы вложил в парадигму REST её автор и как они могут помочь нам при проектировании систем.

Выясним, почему существует терминологическая путаница вокруг REST и как нам научиться лучше понимать коллег.

Поговорим о том, как связаны HTTP и REST. А также почему REST противопоставляют SOAP.

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

Использование диаграммы классов UML при проектировании и документировании программного обеспечения

Reading time19 min
Views148K

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

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

Как, где и зачем искать IT-наставника?

Reading time7 min
Views12K

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

Важная особенность GetMentor — его некоммерческая суть. Комиссии за проведенные сессии менторинга не существует, а часть наставников и вовсе не берет деньги за помощь. О том, как родился проект, в чем его цель и чем может помочь ментор, мы поговорили с создателем проекта Георгием Могелашвили. 

Читать далее
Total votes 33: ↑32 and ↓1+31
Comments2

Монтируем видео на облачном сервере в AWS

Reading time4 min
Views18K

Мой рабочий компьютер - Macbook Air 2020 (Intel), и его вполне хватает для написания кода и прочих задач. Однако, когда потребовалось смонтировать небольшой видеоролик, выяснилось что мощи моего ноута катастрофически не хватает, и я стал искать варианты.

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

Бесплатный удобный ETL инструмент с открытым кодом на основе Python — фантастика или нет?

Reading time13 min
Views17K

Сегодня я хочу рассказать об open-source инструменте, который позволяет извлекать и очищать данные для широкого спектра задач. В этом посте речь пойдет о ViXtract, нашей собственной сборке открытых технологий для работы с данными. Под катом — рассуждения о том, каким должен быть идеальный ETL, рассказ о том, почему его лучше делать на Python (и почему это совсем не сложно), мысли о скриптовом и графическом подходе.

Читать далее
Total votes 17: ↑16 and ↓1+15
Comments17

Как организовать эффективное управление продуктом в b2b

Reading time9 min
Views5K

Есть ли разница между созданием продукта для потребителя и для бизнеса? Очевидно, что есть, хотя продуктовый менеджмент в b2b очень похож на b2c, здесь также есть пользовательские проблемы и опыт, гипотезы и требования, цели и метрики. Но есть и важное отличие – в b2b принимать решения о покупке продукта и пользоваться им часто могут разные люди.

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

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

Information

Rating
2,815-th
Location
Москва, Москва и Московская обл., Россия
Registered
Activity

Specialization

Chief Executive Officer (CEO)
Middle
People management
Business development
Monitoring and market analysis
Product management
Strategic planning
Company management
Organization of business processes
Optimization of business processes
Automation of processes
Customer support