Как стать автором
Обновить
0
0

Пользователь

Отправить сообщение

Всегда ли нужны Docker, микросервисы и реактивное программирование?

Время на прочтение15 мин
Количество просмотров50K


Автор: Денис Цыплаков, Solution Architect, DataArt

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

Если вы не делаете что-то принципиально новое, например, первый в мире интернет-поисковик или искусственный интеллект для управления запуском ядерных ракет, создать дизайн хорошей системы довольно просто. Достаточно учесть все требования, посмотреть на дизайн похожих систем и сделать примерно так же, не совершив при этом грубых ошибок. Звучит как чрезмерное упрощение вопроса, но давайте вспомним, что на дворе 2019 год, и «типовые рецепты» дизайна систем есть практически для всего. Бизнес может подкидывать сложные технические задачи — скажем, обработать миллион разнородных PDF-файлов и вынуть из них таблицы с данными о расходах — но вот архитектура систем редко отличается большой оригинальностью. Главное тут — не ошибиться с определением того, какую именно систему мы строим, и не промахнуться с выбором технологий.

В последнем пункте регулярно возникают типичные ошибки, о некоторых из них я расскажу в статье.
Читать дальше →
Всего голосов 65: ↑61 и ↓4+57
Комментарии104

Секретные хаки VS Code

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

image

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

Улучшаем внешний вид


1. Material Theme & Icons

Это прямо зверь в темах VS Code. Я думаю, что материальная тема наиболее близка к написанию ручкой на бумаге в редакторе (особенно при использовании неконтрастной темы). Ваш редактор выглядит практически гладко, переходя от встроенных инструментов к текстовому редактору.

Представьте себе эпическую тему в сочетании с эпическими иконами. Material Theme Icons — отличная альтернатива для замены значков VSCode по умолчанию. Большой каталог иконок плавно вписывается в тему, делая ее красивее. Это поможет легко найти файлы в проводнике.

image
Читать дальше →
Всего голосов 58: ↑47 и ↓11+36
Комментарии46

Курс MIT «Безопасность компьютерных систем». Лекция 23: «Экономика безопасности», часть 1

Время на прочтение15 мин
Количество просмотров5.2K

Массачусетский Технологический институт. Курс лекций #6.858. «Безопасность компьютерных систем». Николай Зельдович, Джеймс Микенс. 2014 год


Computer Systems Security — это курс о разработке и внедрении защищенных компьютерных систем. Лекции охватывают модели угроз, атаки, которые ставят под угрозу безопасность, и методы обеспечения безопасности на основе последних научных работ. Темы включают в себя безопасность операционной системы (ОС), возможности, управление потоками информации, языковую безопасность, сетевые протоколы, аппаратную защиту и безопасность в веб-приложениях.

Лекция 1: «Вступление: модели угроз» Часть 1 / Часть 2 / Часть 3
Лекция 2: «Контроль хакерских атак» Часть 1 / Часть 2 / Часть 3
Лекция 3: «Переполнение буфера: эксплойты и защита» Часть 1 / Часть 2 / Часть 3
Лекция 4: «Разделение привилегий» Часть 1 / Часть 2 / Часть 3
Лекция 5: «Откуда берутся ошибки систем безопасности» Часть 1 / Часть 2
Лекция 6: «Возможности» Часть 1 / Часть 2 / Часть 3
Лекция 7: «Песочница Native Client» Часть 1 / Часть 2 / Часть 3
Лекция 8: «Модель сетевой безопасности» Часть 1 / Часть 2 / Часть 3
Лекция 9: «Безопасность Web-приложений» Часть 1 / Часть 2 / Часть 3
Лекция 10: «Символьное выполнение» Часть 1 / Часть 2 / Часть 3
Лекция 11: «Язык программирования Ur/Web» Часть 1 / Часть 2 / Часть 3
Лекция 12: «Сетевая безопасность» Часть 1 / Часть 2 / Часть 3
Лекция 13: «Сетевые протоколы» Часть 1 / Часть 2 / Часть 3
Лекция 14: «SSL и HTTPS» Часть 1 / Часть 2 / Часть 3
Лекция 15: «Медицинское программное обеспечение» Часть 1 / Часть 2 / Часть 3
Лекция 16: «Атаки через побочный канал» Часть 1 / Часть 2 / Часть 3
Лекция 17: «Аутентификация пользователя» Часть 1 / Часть 2 / Часть 3
Лекция 18: «Частный просмотр интернета» Часть 1 / Часть 2 / Часть 3
Лекция 19: «Анонимные сети» Часть 1 / Часть 2 / Часть 3
Лекция 20: «Безопасность мобильных телефонов» Часть 1 / Часть 2 / Часть 3
Лекция 21: «Отслеживание данных» Часть 1 / Часть 2 / Часть 3
Всего голосов 12: ↑12 и ↓0+12
Комментарии0

Фронтенд-2018: итоги года

Время на прочтение11 мин
Количество просмотров28K
Мир веб-разработки развивается невероятно быстро. То, что вчера было новостью, сегодня уже может устареть, а то, о чём сегодня почти никто не знает, завтра способно стать двигателем прогресса. В материале, перевод которого мы сегодня публикуем, будет рассмотрено всё самое интересное, произошедшее в сфере фронтенда в 2018 году. Речь пойдёт о развитии фреймворков и вспомогательных инструментов, о JavaScript-трендах, а также о том, в каком направлении фронтенд может пойти в 2019-м.


Читать дальше →
Всего голосов 37: ↑37 и ↓0+37
Комментарии57

Особые исключения в .NET и как их готовить

Время на прочтение17 мин
Количество просмотров34K
У разных исключений в .NET есть свои особенности, и знать их бывает очень полезно. Как обмануть CLR? Как остаться в живых в рантайме, поймав StackOverflowException? Какие исключения перехватить вроде бы нельзя, но если очень хочется, то можно?



Под катом расшифровка доклада Евгения (epeshk) Пешкова с нашей конференции DotNext 2018 Piter, где он рассказал про эти и другие особенности исключений.
Всего голосов 51: ↑50 и ↓1+49
Комментарии0

Особенности использования библиотеки RxJs в системе онлайн-банкинга

Время на прочтение8 мин
Количество просмотров5.6K

Введение


Проектирование современной системы онлайн-банкинга представляет собой довольно сложную задачу. При этом ряд задач разработки клиентской части приложения связан с процессом обработки большого количества данных, поступающих практически одновременно из нескольких источников информации. Данные от системы дистанционного банковского обслуживания (ДБО), служб мгновенных сообщений, различных информационных сервисов должны приниматься и обрабатываться в режиме реального времени здесь и сейчас. Для решения задач подобного рода сегодня широко применяются методы реактивного программирования.
Читать дальше →
Всего голосов 7: ↑6 и ↓1+5
Комментарии0

Верхнеуровневая архитектура фронтенда. Лекция Яндекса

Время на прочтение25 мин
Количество просмотров41K
Выбор подходящей архитектуры — ключевая часть построения фронтенда сервиса. Разработчик Анна Карпелевич рассказала студентам Школы разработки интерфейсов, что такое архитектура, какие функции она выполняет и какие проблемы решает. Из лекции можно узнать о наиболее популярных архитектурных подходах во фронтенде: Model-View-* и Flux.


— Добрый вечер. Меня зовут Аня Карпелевич. Мы сегодня с вами будем говорить про архитектуру фронтенда верхнего уровня.
Всего голосов 29: ↑28 и ↓1+27
Комментарии22

Как уйти на пенсию до 40 лет с миллионом долларов на счету в банке

Время на прочтение10 мин
Количество просмотров240K

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




Карл Дженсен испытал то, что он называет «пробуждением», примерно в 2012-м году.

Он работал программистом в пригороде Денвера, писал код для медицинского оборудования. Работа была напряжённой: ему приходилось документировать каждый шаг для Управления по санитарному надзору за качеством пищевых продуктов и медикаментов США (FDA), а ошибка в коде могла навредить или даже убить пациента.

Дженсен зарабатывал порядка $110 000 в год, у него был определённый соцпакет, но, казалось, что всё это не окупает стресса. Он не мог расслабиться с семьёй после работы; бывало, что целые дни он проводил, обнимаясь с унитазом. Он похудел на 5 кг.

После одного особенно брутального рабочего дня, Дженсен погуглил вопрос «как мне рано уйти на пенсию?», и глаза его открылись. Он посовещался с женой и составил план: в следующие пять лет они экономили значительную часть доходов, серьёзно урезали расходы, пока не собрали порядка $1,2 млн.

Во вторник 10 марта 2017 года Дженсен позвонил своему боссу и предупредил об увольнении после 15 лет работы в компании. Однако он не увольнялся, а уходил на пенсию. Ему было 43.
Читать дальше →
Всего голосов 124: ↑91 и ↓33+58
Комментарии643

CLRium #4: Встреча .Net сообщества

Время на прочтение3 мин
Количество просмотров3.6K




Темы: C# 8.0, .NET Core 2.2 и .NET Core 3.0, CLR


Вы успеваете отслеживать все свежее в мире .NET, что происходит в последнее время? C# 8.0? Span/Memory? ValueTasks? System.IO.Pipeline? CLI API & Global Tools? Если нет, то лучший способ наверстать упущенное — сходить на профильное мероприятие и ровно за один день понять сразу все темы вместе взятые и решить для себя, что будет полезным, а что должно выдержать еще одну проверку временем.


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


В этом году мы решили захватить лучшие практики прошлых лет:


  • Доклады без продуктового какие мы классные маркетинга, только ядро платформы
  • Полный апгрейд знаний до версии .NET Core 3.0
  • Где возможно — максимальный хардкор (вы меня знаете)
  • Прекрасная цена в 3,000 рублей за день. Все еще по цене полутора заправок
  • Классные, удобные, современные залы

Интересно? Милости просим под кат!


  • 19 октября в Санкт-Петербурге, в офисе компании Epam Systems
  • 26 октября в Москве
Читать дальше →
Всего голосов 11: ↑11 и ↓0+11
Комментарии2

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

Время на прочтение9 мин
Количество просмотров14K


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

Как преуспеть в новой роли? Как опять пройти через все ступени и достичь такого уровня результатов и доверия, которого все ожидают, особенно вы сами? Сотни книг и тысячи блогов пытаются найти эти ответы, так что не буду притворяться, что у меня есть секрет успеха. Но я знаю несколько способов, которые совершенно точно гарантируют вам провал.
Читать дальше →
Всего голосов 23: ↑21 и ↓2+19
Комментарии9

Найдена формула безболезненного перехода на .Net Core

Время на прочтение4 мин
Количество просмотров6.6K

На все про все достаточно 50 чашек кофе.


Помимо обозначенного выше эмпирического правила мы публикуем краткую заметку о моментах, на которые нужно обратить пристальное внимание, чтобы на бою и в процессах ничего не сломалось. Заметку составили по горячим следам релиза мобильного сервиса, совсем мигрировавшего на .Net Сore (начало было положено тут). Нам удалось выполнить эту операцию незаметно для заказчика, почти не останавливая основной процесс разработки.


Ниже будет готовый план действий, будет очень емкий тест-лист, будет вот эта картинка для настроения:


Читать дальше →
Всего голосов 12: ↑9 и ↓3+6
Комментарии7

Как можно взломать свой же Web проект?

Время на прочтение4 мин
Количество просмотров28K


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


Давайте я расскажу «историю неуспеха», чтобы другие на эти грабли не наступали.

Читать дальше →
Всего голосов 31: ↑29 и ↓2+27
Комментарии31

ААА! Пришло время переписывать на .NET Coreǃ

Время на прочтение5 мин
Количество просмотров30K

Все мы давно хотим перелезть на .NET Core, но постоянно что-то мешает. Например, ничего не поделаешь, когда не хватает важных API. В версии 2.0 процесс упростили благодаря .NET Standard 2.0, но это ещё не всё. Ну что ж, Microsoft-боги вняли нашим молитвам и завезли 20 000 API, доступных в виде одного-единственного пакета в NuGet!


Читать дальше →
Всего голосов 62: ↑53 и ↓9+44
Комментарии68

Две правды, одна ложь: популярные концепции о «выдающихся программистах»

Время на прочтение6 мин
Количество просмотров31K
Кент Бек (Kent Beck), легендарный разработчик ПО, создатель методологий экстремального программирования и test-driven development и автор многих книг по программированию, однажды сказал: «Я не великий программист, я просто хороший программист с замечательными привычками». Какими привычками и способностями обладают «рок-звезды» программирования?

Попробуем разобрать три популярные утверждения о «суперпрограммистах», чтобы понять, что из них — правда, а что — скорее преувеличение.

Читать дальше →
Всего голосов 28: ↑22 и ↓6+16
Комментарии41

Нагрузочное тестирование PostgreSQL, используя JMeter, Yandex.Tank и Overload

Время на прочтение7 мин
Количество просмотров31K

Пару слов для начала


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


  1. Apache JMeter – инструмент для нагрузочного тестирования, который способен проводить тесты для JDBC-соединений, FTP, LDAP, SOAP, JMS, POP3, IMAP, HTTP и TCP из коробки и еще множество других протоколов и решений, используя различные плагины.
  2. Yandex.Tank – это облачный инструмент для нагрузочного тестирования, использует различные генераторы нагрузки, в том числе и JMeter.
  3. Yandex.OverLoad – сервис для удобного мониторинга и анализа серверов под нагрузкой.
Читать дальше →
Всего голосов 13: ↑10 и ↓3+7
Комментарии3

Топ 10 инструментов автоматизации тестирования 2023

Время на прочтение8 мин
Количество просмотров110K
Методы разработки программного обеспечения не стоят на месте, то же можно сказать и об используемых для разработки ПО инструментах и технологиях. В первую очередь, такое совершенствование необходимо для того, чтобы продуктивность и качество создаваемого продукта увеличились, время, необходимое для разработки, сократилось, а заказчик остался доволен полученным результатом. Таким образом, можно смело заявить, что тестирование играет важную роль в разработке качественного продукта.

Не так давно свет увидел World Quality Report 2017–2018 (Мировой стандарт проверки качества), выпущенный благодаря совместному труду сразу нескольких крупных компаний (Capgemini, Sogeti и Micro Focus), в котором было отмечено ряд интересных трендов в разработке и тестировании программного обеспечения. Авторы этого отчета считают, что основные направления в развитии разработки ПО заключаются в постоянном совершенствовании автоматизации тестирования и повсеместном применении гибких и DevOps-методологий (методология, которая объединяет в себе работу программистов и системных администраторов). Так, в данном отчете указано, что компаниям необходимо внедрять интеллектуальную автоматизацию и смарт-аналитику, для того чтобы ускорить процессы принятия ключевых решений и валидации продукта. Благодаря таким нововведениям компании смогут более эффективно справляться с тестированием интеллектуальных устройств нового поколения и высокоинтегрированных продуктов, изменения в которые вносятся постоянно. В отчете также говорится о необходимости создания интеллектуальных платформ для тестирования, характеризующихся высоким уровнем адаптивности. Благодаря таким платформам можно будет обеспечить эффективную поддержку полного жизненного цикла приложения.
Читать дальше →
Всего голосов 13: ↑11 и ↓2+9
Комментарии16

Нагрузочное тестирование, история автоматизации процесса

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

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

Сам процесс нагрузочного тестирования в своём сознании я делю на несколько этапов:

Читать дальше →
Всего голосов 16: ↑16 и ↓0+16
Комментарии10

Перформанс во всех смыслах: как прошёл DotNext 2017 Moscow

Время на прочтение7 мин
Количество просмотров4.1K


В прошлом году конференция DotNext проходила в Москве один день, а в этом стала двухдневной. Теперь, когда очередной московский DotNext позади, а зрители прислали свой фидбэк, время оглянуться: как всё прошло, и что вошло в увеличившийся хронометраж? Подробности под катом, а для затравки скажем, что слово «performance» оказалось актуально в обоих значениях: и «производительность», и «художественное выступление».
Читать дальше →
Всего голосов 29: ↑28 и ↓1+27
Комментарии4

Внутреннее устройство и оптимизация бандла webpack

Время на прочтение15 мин
Количество просмотров45K
Webpack фактически стал стандартом для сборки крупных приложений на JS. Его используют практически все. Для разработчика webpack выглядит как магический черный ящик: если забросить в него файлы и небольшой конфиг, на выходе автоматически появится бандл.

Чтобы разобраться в секретах этой магии, мы обратились к эксперту, человеку, который неоднократно залезал внутрь webpack, — Алексею Иванову. Он готов объяснить, как выглядит бандл изнутри, как на него влияют разные настройки, к чему и почему могут привести некоторые из них, а также рассказать, как все это отладить и оптимизировать.


В основе материала — доклад Алексея Иванова на конференции HolyJS 2017, проходившей в Санкт-Петербурге 2-3 июня.
Всего голосов 56: ↑54 и ↓2+52
Комментарии23

Черная пятница айтишника, или Сказ о потере данных

Время на прочтение5 мин
Количество просмотров16K

Есть прекрасная поговорка «И на старуху бывает проруха». Её можно сделать девизом индустрии: даже хорошо продуманная многоуровневая система защиты от потери данных может пасть жертвой непредвиденного бага или человеческой ошибки. Увы, такие истории не редкость, и сегодня мы хотим рассказать о двух случаях из нашей практики, когда всё пошло не так. Shit happens, как говаривал старина Форрест Гамп.
Читать дальше →
Всего голосов 32: ↑28 и ↓4+24
Комментарии15
1
23 ...

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность