Для любого разработчика глубокое понимание основных принципов системного проектирования является необходимым условием для создания стабильных и масштабируемых программных систем, способных обеспечивать высокую производительность. Системное проектирование (System Design) включает разработку архитектуры и структуры программной системы, направленную на удовлетворение специфических требований и обеспечение требуемых показателей производительности.
Рубрика «software»
Что нужно знать, чтобы успешно пройти System Design Interview
2024-05-04 в 15:00, admin, рубрики: development, software, software development, system design, проектирование систем, системный дизайнИспользуем Chrome DevTools профессионально
2020-09-25 в 15:56, admin, рубрики: chrome, Google Chrome, javascript, software, Блог компании OTUS. Онлайн-образование, СофтИ снова здравствуйте. В преддверии старта курса «JavaScript Developer. Professional» перевели
11 советов для тех, кто использует Chrome в качестве среды разработки.
Итак, по тем или иным причинам вы решили при разработке ориентироваться на Chrome. Вы открываете инструменты разработчика и приступаете к отладке кода.
Иногда вы открываете консоль, чтобы посмотреть вывод своей программы, или вкладку Elements, чтобы проверить CSS-стили элементов DOM.
А действительно ли вы разбираетесь в Chrome DevTools? На самом деле у инструментов разработчика множество мощных функций, которые облегчают жизнь, но о них мало кто знает.
Я расскажу о самых полезных из них.Читать полностью »
Boot manager для 486-го компьютера
2020-07-27 в 17:47, admin, рубрики: 486, bootmgr, hardware, Plop, software, Компьютерное железо, ретрокомпьютингВведение
Всё началось с того, что меня несколько расстраивало отсутствие возможности загружаться с дисковода на старой плате Socket 3. CD-приводы в то время ещё не были распространены и разработчики BIOS даже не задумывались о предоставлении такой опции. Да и операционные системы распространялись на дискетах. Чуть позднее, когда ОС (в основном конечно Windows) стало удобнее устанавливать с диска, чем с пары десятков дискет, придумали так называемые загрузочные floppy, содержавшие драйвер дисковода и передававшие ему управление непосредственно. Но это на мой взгляд костыль и некрасиво. Я начал искать более изящное решение и даже в какой-то момент собирался купить SCSI-контроллер за много денег и привод к нему, но нашлась альтернатива.
Лучшие практики повышения производительности в C#
2020-05-18 в 9:48, admin, рубрики: best practices, C#, csharp, development, dotnet, performance, software, Блог компании OTUS. Онлайн-образование, Программирование, СофтВсем привет. Мы подготовили перевод еще одного полезного материала в преддверии старта курса «Разработчик С#». Приятного прочтения.
Поскольку недавно мне довелось составлять список лучших практик в C# для Criteo, я подумал, что было бы неплохо поделиться им публично. Цель этой статьи — предоставить неполный список шаблонов кода, которых следует избегать, либо потому что они сомнительны, либо потому что просто плохо работают. Список может показаться немного рандомным, потому что он слегка выдернут из контекста, но все его элементы в какой-то момент были обнаружены в нашем коде и вызывали проблемы в продакшене. Надеюсь, это послужит хорошей профилактикой и предотвратит ваши ошибки в будущем.
Также обратите внимание, что веб-сервисы Criteo полагаются на высокопроизводительный код, отсюда и необходимость избегать неэффективный код. В большинстве приложений не будет заметно ощутимой разницы от замены некоторых из этих шаблонов.
И последнее, но не менее важное: некоторые пункты (например, ConfigureAwait
) уже обсуждались во многих статьях, поэтому я не буду подробно останавливаться на них. Цель заключается в том, чтобы сформировать компактный список моментов, на которые нужно обращать внимание, а не давать подробную техническую выкладку по каждому из них.Читать полностью »
Ваш выход, граф: как мы не нашли хороший сетевой граф и создали свой
2019-11-08 в 8:10, admin, рубрики: analysis, criminalistics, cybercrime, cybersecurity, graph database, graphs, software, анализ, графовые базы данных, графы, информационная безопасность, компьютерная безопасность, компьютерная криминалистика, криминалистика, Сетевые технологии
Расследуя дела, связанные с фишингом, бот-сетями, мошенническими транзакциями и преступными хакерскими группами, эксперты Group-IB уже много лет используют графовый анализ для выявления разного рода связей. В разных кейсах существуют свои массивы данных, свои алгоритмы выявления связей и интерфейсы, заточенные под конкретные задачи. Все эти инструменты являлись внутренней разработкой Group-IB и были доступны только нашим сотрудникам.
Графовый анализ сетевой инфраструктуры (сетевой граф) стал первым внутренним инструментом, который мы встроили во все публичные продукты компании. Прежде чем создавать свой сетевой граф, мы проанализировали многие подобные разработки на рынке и не нашли ни одного продукта, который бы удовлетворял нашим собственным потребностям. В этой статье мы расскажем о том, как мы создавали сетевой граф, как его используем и с какими трудностями столкнулись.
Дмитрий Волков, CTO Group-IB и глава направления киберразведки Читать полностью »
Чат-бот на RASA: опыт Parallels
2019-10-09 в 10:10, admin, рубрики: Parallels, software, Блог компании Parallels, машинное обучение, Софт
В настоящее время бурно развивается индустрия чат-ботов. Сначала они были достаточно глупыми и могли вести диалог с пользователем, являясь ведущими и предлагая возможные ответы. Потом боты слегка поумнели и начали требовать от пользователя текстового ввода, чтобы из ответов вытаскивать ключевые слова. Развитие машинного обучения привело к появлению возможности общаться с ботом еще и голосом. Однако, большая часть решений не сильно далеко ушла от все того же построения графа диалогов и перехода между его узлами по ключевым словам.Читать полностью »
Объяснение задачи на Python с собеседования
2019-07-10 в 13:06, admin, рубрики: development, interview, python, software, tech, technology, Блог компании OTUS. Онлайн-образование, Карьера в IT-индустрии, ПрограммированиеСалют! В преддверии запуска нового потока по курсу «Web-разработчик на Python» хотим поделиться новым полезным переводом. Поехали!
Снова сходив на несколько собеседований и пройдя тестовые задания, я заметил, что интервьюерам нравятся задания наподобие следующего.
def f(x, l=[]):
for i in range(x):
l.append(i * i)
return l
>>> f(2)
>>> f(3, [0, 1, 2])
>>> f(3)
Вопрос: Что выведет этот код?Читать полностью »
Ключ на старт: лучшие программные и аппаратные средства для компьютерной криминалистики
2019-06-10 в 7:31, admin, рубрики: criminalistics, cybercrime, cybersecurity, forensic analysis, forensic toolkit, forensics, hardware, Open Source Software, opinion, software, информационная безопасность, кибербезопаность, компьютерная криминалистика, криминалистика, криминалистическая экспертиза, программное обеcпечение, Софт, специалист по безопасности, экспертиза, экспертное мнениеВот так раньше выглядела одна из визиток Игоря Михайлова, специалиста Лаборатории компьютерной криминалистики Group-IB. На ней — аппаратные ключи программ, которыми пользовался эксперт при проведении криминалистических экспертиз. Стоимость только этих программных продуктов превышает 2 миллиона рублей, а ведь есть еще бесплатное программное обеспечение и другие коммерческие продукты. Какой инструментарий выбрать для работы? Специально для читателей «Хабра» Игорь Михайлов решил рассказать о лучших программных и аппаратных средствах для компьютерной криминалистики. Читать полностью »
Nil не всегда nil
2019-04-26 в 16:30, admin, рубрики: development, Go, golang, software, Программирование, разработкаNil не всегда nil
"Что? Что вообще здесь написано?" спросите вы. Сейчас все разложу.
Когда начинал изучать язык — не думал что зайду в этот узкий случай. Это также не рационально как и изменять итерируемую коллекцию.