Pull to refresh
-20
@sengloryread⁠-⁠only

User

Send message

6 простых принципов написания приложения на Vue, которое легко поддерживать (часть 2)

Reading time5 min
Views9.6K

Привет! Я Наталья Калачева, Frontend-разработчик в AGIMA. Эта статья посвящена правилам, которые помогают упростить поддержку и расширение приложений на Vue. Тут я рассказываю, как организовать хранение компонентов, стилей и плагинов, когда использовать стор и полезные функции Vue. Первые 3 принципа я опубликовала вчера. Здесь еще 3.

Читать далее

Как я веду переписки в мессенджерах, чтобы собеседники не отваливались в процессе

Reading time3 min
Views9.9K

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

Итак, чтобы собеседник не отвалился в процессе общения, нужно:

1. Определиться с целью, которую мы хотим достичь в результате разговора;
2. Заканчивать каждую свою фразу вопросом до тех пор, пока эта цель не будет достигнута.

Приведу пример в рамках продажи рекламы в Телеграм-канале. З — заказчик. А — админ канала (он же фрилансер).

Цель админа: продать размещение рекламы в своём канале.

З: Здравствуйте! Продаёте рекламу на канале таком-то?
А: Да, продаём! 1000/24/2. Обращайтесь!

Всё, вопроса в конце нет, поэтому клиент может спокойно отваливаться. Давайте кое-что поправим:

Читать далее

Нужен ли ConfigureAwait?

Reading time8 min
Views27K

image


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


Одна из многословных конструкций .NET связана с деталями реализации асинхронности и обросла кучей мифов. Про неё спрашивают на собеседованиях, код-ревью, делают обязательной, добавляя в правила линтера. Это .ConfigureAwait(false), сопровождающий каждый await в коде.


В этой статье я расскажу, зачем нужен ConfigureAwait(false) и как обойтись без него.

Читать дальше →

Большая подборка ресурсов и сообществ для тестировщика

Level of difficultyEasy
Reading time4 min
Views67K

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

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

Читать далее

SRE: паттерны Reliability

Level of difficultyEasy
Reading time12 min
Views5.7K

Это первая часть топика, где мы поговорим о Reliability в рамках практик SRE.

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

Читать далее

Гайд по настройке IoC-контейнера в консольном приложении .NET core

Level of difficultyMedium
Reading time8 min
Views6.6K

Статья‑гайд от ведущего.NET‑разработчика «ITQ Group» Александра Берегового.

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

Читать далее

Его величество Пайп, или как заставить ssh tunnel открыть RDP на другом конце через альтернативный IP

Level of difficultyMedium
Reading time5 min
Views18K

Для начала, вспомним некоторые базовые вещи ОС Unix.

Любой процесс в Unix имеет три открытых файла по умолчанию (он конечно может их потом закрыть):

Читать далее

Как изменять строки в dotnet

Level of difficultyMedium
Reading time4 min
Views12K

Строки в dotnet являются предназначенной только для чтения последовательностью Char-ов. Об этом явно написано в документации Microsoft, посвященной строкам. Там же в секции "Неизменность строк" сказано следующее: "Может показаться, что все методы String и операторы C# изменяют строку, но в действительности они возвращают результаты в новый строковый объект". Согласно документации, изменить строки нельзя, но жизнь не всегда согласуется с документацией, поэтому предлагаю взглянуть на способы, позволяющие изменять строки в dotnet (к тому же это иногда спрашивают на собеседованиях!).

Читать далее

Javascript: базовые вопросы и понятия для самых маленьких

Level of difficultyEasy
Reading time15 min
Views51K

Javascript ― язык весьма оригинальный. Его можно любить, ненавидеть и даже бояться, но равнодушным он вас вряд ли оставит. Не знать или не понимать, с чем ты работаешь ― самая частая ошибка, допускаемая современными фронтенд‑разработчиками. Вам бы понравилось, если бы дантист, к которому вы пришли, не понимал, какой он инструмент использует и какие у него особенности работы? Очевидно, что нет. И рано или поздно, если вы действительно хотите стать профессионалами, вы разберётесь во всём, но как сделать так, чтоб это случилось раньше?

В этой статье в блоге ЛАНИТ хотелось бы показать, что о сложных вещах можно и нужно говорить просто.

Читать далее

Нельзя просто взять и обезличить данные — опыт команды разработки «Сферы»

Reading time6 min
Views3.7K

Бизнесу нельзя использовать данные клиентов as is для тестов. Отдел разработки не может просто взять персональные данные (ПДн) и проверить на них новую фичу, обучить Machine Learning-модель. Этот момент регулируют законы и отраслевые стандарты. Чтобы с данными можно было работать, их необходимо обезличить. В крупных компаниях сотни таблиц переплетены идентификаторами, формулами, процедурами. И здесь речь идет уже о формировании обезличенных интеграционных полигонов (комплексов БД). Максим Никитин, тимлид группы разработки, поделится опытом команды разработки платформы производства ПО «Сфера».

Читать далее

Как AI помогает в изучении английского? Личный опыт

Reading time5 min
Views27K

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

Читать далее

Я купил смартфон за 500 рублей, а он оказался с подвохом. Делаем из него домашний сервер

Reading time7 min
Views43K
К сожалению, не все покупки с пересылкой в другой город на онлайн-барахолках удачные. Иногда продавцы умалчивают серьёзные дефекты ништяков, а на почте всё проверить невозможно: ведь очередь тоже ждать не будет! Так и случилось в рамках сегодняшней статьи, когда я заказал Samsung Galaxy J3 и S4 за 1.000 рублей, а у них обоих оказались очень серьёзные косяки, о которых продавец конечно же умолчал! У J3 был сколот дисплей (на фотографии не было видно), он стоял на пароле (об этом было оговорено заранее) и у него варварски, вместе с пятачками был выдран один из сим-лотков! Но он отнюдь не бесполезен и из него можно сделать вполне себе полноценный сервер. Как? Читайте в статье!

image
Читать дальше →

How to exchange a secret key over an insecure network (EC-Diffie-Hellman algorithm)

Reading time6 min
Views2.5K

Let’s say you want to send an encrypted message to your friend in order to avoid it being intercepted and read by a third party. You generate a random secret key and encrypt the message with it. Let’s say you use AES. But how do you let your friend know the key to decrypt it?

In this article, we will explore how the Elliptic-Curve Diffie-Hellman algorithm works under the hood. The article includes the implementation of this algorithm from scratch, written in Python.

Read more

Анализ трафика телеметрической информации Android смартфона

Reading time4 min
Views20K

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

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

В данной статье рассматривается вопрос о том, какую конкретно информацию смартфон передает на серверы вендоров.

Интересненько

Разработка Angular-приложений и построение их архитектуры

Reading time12 min
Views17K

Привет! Меня зовут Самат, я frontend-специалист компании SimbirSoft.

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

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

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

Читать далее

Запуск MFC-приложения на не-x86 архитектуре нативно при помощи Winelib и подключение к нему плагина на Qt

Reading time5 min
Views3.2K

Занимался я недавно портированием одного старого win32 MFC MDI приложения, до сих пор разрабатываемого с использованием Microsoft Visual Studio 6.0 (среда разработки 1998 года выпуска), на Linux. При чем необходимо было, чтобы под Linux собирался нативный бинарник в формате ELF из исходников. Взгляд упал на проект Wine, позволяющий запускать бинарники Windows (формат PE - Portable Executable). Один из компонентов Wine - библиотека Winelib - является прослойкой (враппером) между вызовами win32 и вызовами библиотек Linux. С помощью Winelib можно под Linux собирать win32 приложения из исходников. В составе Winelib есть десятки врапперов стандартных библиотек Windows. Но вот незадача. Враппера для MFC (Microsoft Foundation Classes) нет. В итоге прослойку между классами MFC и вызовами win32, пригодную для компиляции с использованием Winelib, пришлось готовить самому. Далее будет описан путь к решению задачи, а также компромиссы, на которые пришлось пойти по ходу реализации.

Читать далее

Туториал: HTTPs запросы с iOS и Android девайсов не расшифровываются в Fiddler

Reading time3 min
Views32K

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

Читать далее

Эволюция монолитного приложения, еще один подход

Reading time8 min
Views6K

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

Выбросить такой монолит невозможно, бизнес остановится. Переписать тоже либо нельзя, либо очень дорого, по причинам хорошо описанным еще у Фредерика Брукса в Мифическом человеко-месяце. Во первых как они там под капотом работают в точности, по прошествии 20+ лет уже никто не знает. Во вторых, пока приложение переписывается, а обычно это 1-2 года, бизнес успевает уйти вперед и новое приложение надо докатывать до актуального состояния и так без конца.

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

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

Читать далее

Стратификация. Как разбиение выборки повышает чувствительность A/B теста

Reading time15 min
Views49K

Всем привет! На связи команда ad-hoc аналитики X5 Tech.

Сегодня подробно обсудим применение стратификации для повышения чувствительности оценки AB экспериментов.

Читать далее

Шаблоны статистической обработки данных по ГОСТ в JupyterLab и MS Excel

Reading time2 min
Views7.2K

Однажды студент рассказал как сдал зачет по программному продукту, а на следующем курсе не сумел его использовать. Рассказал и пожал плечами. А я запомнил, что цель любого курса – решение собственных задач после курса. По вёснам веду статистику у медиков и придумал шаблоны для обработки своих данных методами из национальных стандартов. Делюсь результатом.

Делюсь результатом

Information

Rating
Does not participate
Registered
Activity