Pull to refresh
82
0
Send message

Медленная сборка кода с .NET Roslyn: как найти и устранить причину

Level of difficultyHard
Reading time12 min
Views4.3K

.NET разработчики знают, что такое ждать сборки кода. Работать при этом невозможно: пока не увидишь, как обновится приложение, — не перейдешь к следующему шагу. А переключиться на другую задачу за это время не успеешь. Получается, если в день переписать код 5 раз, можно потерять полчаса при сборке, а то и больше.

Теперь на примере платформы автоматизации маркетинга Mindbox. Основное программное решение — это монолит на C#: несколько миллионов строк, 50 проектов, над которыми одновременно работают десятки команд. Даже сэкономленная при сборке минута выливается в кучу продуктивных человеко-часов. Поэтому, когда речь зашла о переходе всей компании на MacBook в будущем, мы решили выяснить, как это отразится на производительности.

Читать далее
Total votes 46: ↑46 and ↓0+53
Comments26

Решение внутренних конфликтов: инженерный подход

Level of difficultyMedium
Reading time27 min
Views6.2K

Люди на Земле уже многие века как-то решают свои внутренние конфликты. Да что там говорить - это умеют делать даже обезьяны. Хотя у людей получается лучше: нам помогают не только инстинкты и развитый неокортекс, но и чужой опыт: мифы, религии, философские учения, нормы культуры, а порой даже и книги об "успешном успехе".

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

В этой статье вас ждёт:

Дизассемблирование структуры внутреннего конфликта до атомарных инструкций
Путешествие в джунгли legacy-кода, хранящегося в чертогах подсознания.
Разрешение внутренних конфликтов как выплата техдолга,
Формирование эффективных промптов для бионейросети (той, которая между ушами)
Простота: фреймворк, который подходит для решения доброй половины внутренних конфликтов
Глубина: экстремальное погружение во внутренний мир человека.

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

Кто продаёт спутниковые фотографии и сколько они стоят

Level of difficultyEasy
Reading time6 min
Views21K


Статья содержит ответы на ряд популярных вопросов, о возможности строительства и запуска космических спутников, способах и стоимости заказа космической фотосъёмки и о ресурсах, на которых можно найти бесплатные спутниковые фото, а также о том, какую пользу приносит использование спутниковых фото в разных сферах жизни.
Читать дальше →
Total votes 40: ↑38 and ↓2+57
Comments24

Полное понимание асинхронности в браузере

Reading time24 min
Views97K
Про асинхронность JavaScript написано много статей, документации и книг. Но вся информация сильно распределена по интернету, поэтому сложно быстро и полностью разобраться, что к чему, и составить цельную картину в голове. Не хватает одного исчерпывающего гайда. Именно эту потребность я и хочу закрыть своей статьёй.

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

Гайд по эвент-сорсингу

Level of difficultyMedium
Reading time19 min
Views12K

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

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

Читать
Total votes 26: ↑21 and ↓5+19
Comments104

Проверяем Архитектурные стили на движке Factorio (часть 2, SOA)

Reading time27 min
Views27K

Все снова большой привет, спустя полгода! Сегодня мы будем продолжать работать на движке Factorio в попытках разобраться, какой же Архитектурный стиль по каким аспектам является хорошим или плохим!

Welcome!

Сегодня мы рассмотрим SOA и даже сравним его с Monolith-архитектурой!

Читать далее...
Total votes 77: ↑76 and ↓1+89
Comments50

Как использовать макросы в Confluence, чтобы систематизировать и оформить документацию по продукту и процессам?

Reading time7 min
Views32K

Привет, Хабр! Меня зовут Таня Дудо, и я уже 6 лет помогаю людям и командам обмениваться знаниями внутри компаний. Для этого использую Confluence. Да-да, ту самую wiki-систему, которую часто называют неудобной и несовременной. Сегодня выступлю ее адвокатом-обозревателем: расскажу про 7 полезных макросов для систематизации и оформления контента и наглядно покажу, как они работают.

Дисклеймер: с марта Atlassian не продают лицензии в Россию напрямую. Но если у вас уже есть, никто не запрещает ей пользоваться. На сайте Atlassian есть развернутая документация по установке Confluence и Jira. Она охватывает практически все аспекты. Вот, например, одна из статей.
Читать дальше →
Total votes 48: ↑44 and ↓4+52
Comments11

Грейды для менеджеров

Reading time6 min
Views13K

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

До последнего времени у отдела менеджеров не было такой системы и это вызывало непредсказуемые решения в управлении кадрами и распределении проектов.

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

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

Суперземля как иллюзия

Reading time10 min
Views12K

Ещё около 30 лет назад никто не мог бы с уверенностью сказать, имеются ли у других звёзд планеты. В настоящее время количество известных экзопланет превышает 5000, а с учётом планет-кандидатов, которых в 2021 насчитывалось 7913, общее количество таких внесолнечных миров приближается к 15000.

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

Соответственно, данные об экзопланетах отчасти неполные, а отчасти косвенные, поэтому классификация экзопланет затруднена. Тем не менее, уже открытые экзопланеты гораздо разнообразнее, чем миры, имеющиеся в нашей Солнечной системе. По некоторым источникам, самый распространённый класс планет – это «суперземли».  Примерно из 4000 экзопланет, достоверно известных к концу 2021 года, к числу суперземель относится примерно 1500. Возможно, это крупные скалистые планеты с атмосферой и гидросферой, превышающие по размеру Землю в 3-10 раз. Но почему, в таком случае, подобной планеты нет в нашей системе, ведь это противоречит принципу заурядности? Ниже мы обсудим, что нам сейчас известно о суперземлях и других экзотических классах планет, как образуются суперземли, и существуют ли они вообще.      

Читать далее
Total votes 33: ↑30 and ↓3+41
Comments10

Вероятно вам не нужен MediatR

Reading time13 min
Views22K

MediatR - это очень популярная библиотека, которая используется для уменьшения зависимостей между объектами. Она популяризует архитектуру, основанную на крайне значимых принципах проектирования:

препятствование прямому общению между объектами для уменьшения связности;

нацеливание на Message-Oriented архитектуру;

поддержка асинхронного внутреннего обмена сообщениями;

ориентирование на переиспользование объектов.

Эти практики не пустое слово для меня. Кроме того, кажется, что такой способ создания программного обеспечения должен быть совершенно очевидным. Без сомнения, библиотека MediatR очень успешна и широко применяется разработчиками, которые разделяют эти ценности.

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

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

Также стоит отметить, что эта статья не покрывает положительные аспекты библиотеки, а фокусируется только на недостатках.

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

Почему ваш веб-сайт должен быть меньше 14 КБ

Reading time6 min
Views70K

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

Удивительно то, что страница на 14 КБ может грузиться гораздо быстрее, чем страница на 15 КБ, даже на 612 мс быстрее, хотя разница между страницами на 15 КБ и 16 КБ минимальна.

Так происходит из-за алгоритма медленного старта TCP. В этой статье я расскажу, что это такое, как оно работает и почему это важно. Но сначала мы вкратце расскажем об основах.
Читать дальше →
Total votes 137: ↑134 and ↓3+167
Comments204

Фиксация соглашений в команде

Reading time6 min
Views12K

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

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

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

Читать далее
Total votes 26: ↑25 and ↓1+34
Comments19

Ошибки начинающего проектного менеджера

Reading time8 min
Views6.8K

В первый месяц стажировки ментор мне говорил: «В жизни каждого уважающего себя менеджера должен быть один легендарный факап». А что скажете насчёт пяти? 

Читать далее
Total votes 13: ↑11 and ↓2+11
Comments3

Fluent Generics in C#

Reading time8 min
Views19K

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

Несмотря на то, что дженерики давно в C#, мне всё же удаётся найти новые интересные способы их применения. Например, в одной из моих предыдущих статей я написал об уловке, позволяющей добиться return type inference, что может облегчить работу с контейнерными union types.

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

После нескольких экспериментов, я нашёл способ решить проблему элегантно, используя подход схожий с паттерном проектирования fluent interface, который был применён не к объектам, а к типам. Мой подход предлагает domain-specific language, который позволяет разработчику построить нужный тип за несколько логических шагов, последовательно его "конфигурируя".

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

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

Разработчик с мозгом груга

Reading time14 min
Views87K

Введение


это сборник мыслей о разработке программ собранный разработчиком с мозгом груга

разработчик с мозгом груга не очень умный, но разработчик с мозгом груга программирует много лет и научился кое чему, хоть всё равно часто запутывается

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

разработчиков с большим мозгом много, некоторым страница не понравится, скривят кислая рожа

Ещё больше-больше ДУМАЮТ, что они разработчики с большим мозгом и им она тоже не понравится

(груг раньше думал груг с большим мозгом, но потом всё понял)

это ладно!

груг надеется, что тебе понравится читать и может ты научишься на много-много ошибка груг совершил за длинную жизнь программиста
Читать дальше →
Total votes 223: ↑197 and ↓26+209
Comments81

Как я работаю с командной строкой

Reading time10 min
Views5.6K

Всем привет. Все мы пользовались консольными приложениями. Да и наше первое приложение "Hello, world!" - консольное. Я решил сделать свое + с поддержкой аргументов. Столкнулся с тем, что я не знал как правильно их создавать. В этом посте я расскажу как шаг за шагом проектировал самую сложную на мой взгляд часть - работу с аргументами командной строки.

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

OSINT по спутниковым изображениям

Reading time3 min
Views41K
image

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

Зеленый Кот нашел разбившуюся советскую исследовательскую станцию «Марс-3» по снимкам со спутника, тысячи экологов следят за лесами Амазонки и состоянием береговой линии, школьники делают учебные проекты по слежке за популяцией моржей, репортеры проводят расследования, освобождают рабов, мониторят лагеря беженцев.

Предлагаю вам подборку бесплатных ресурсов и проектов со спутниковыми данными, программами обработки этих данных и полезные статьи.
Читать дальше →
Total votes 41: ↑40 and ↓1+53
Comments11

Программисты как дети

Reading time7 min
Views12K


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

Между делом она обозначила, что воспитательные приёмы – а детей мы тоже затронули (в целом – своих нет) – это не что иное как манипуляция. А раз так, то и со взрослыми есть некоторая градация допустимости «грязных трюков». 

Чтобы оспорить позицию «приём = манипуляция», я поспрашивал знакомых педагогов, есть ли какой-то справочник, с которым можно было бы свериться

Читать далее
Total votes 22: ↑18 and ↓4+20
Comments39

Крепостное право в ИТ

Reading time7 min
Views160K

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

Крепостными становятся, обычно, ИТ-специалисты, работающие в штате клиентов. Соответственно, это ИТ-директора, программисты (обычно 1С) и сисадмины. Есть ли такое в ИТ-компаниях – не знаю, тут интересно вас послушать.

Кратко напишу, что это за дичь.

Читать далее
Total votes 190: ↑154 and ↓36+154
Comments319

IT risk management

Reading time13 min
Views2.2K

When you have an IT, which supports all aspects of your organization automated performance and you have a firm confidence that IT executes well, there is always a chance that something could go wrong in technology or in related IT processes. Depending on complexity of IT environment varieties of risks scenarios could arise. This article as a summary of different faithworthy sources aims to help you in getting high level understanding on what could go wrong and how you can predict it in a more conscious way.

My name is Maxim Tornov and I have been working in various IT areas for a long period of time. Since then, for over 14 years I am working in the area of IT/IS risk management with focus on in IT/IS audits, internal control implementation and assessment.

I am sure that at the present the topic of Information Technologies risk management became more vital. Organization’s efficiency in IT risk management directly affects the achievement of various organization’s goals, goals which have dependency on IT, those goals may include reliability and efficiency of business processes, the organization's compliance with regulatory requirements, the integrity of financial reporting, and many others.

I sincerely hope that this material will be useful to you and may give you some new ideas that you can contribute to the benefit of your personal development and the development of your organization's risk management culture.

Read more
Total votes 2: ↑2 and ↓0+2
Comments0
1
23 ...

Information

Rating
Does not participate
Registered
Activity