Рубрика «Анализ и проектирование систем» - 115

Лекции Технотрека. Основы веб-разработки (весна 2016) - 1

Продолжаем публикацию наших образовательных материалов. Этот курс посвящен разработке web-приложений среднего масштаба (иначе говоря, сайтов уровня личного блога). Курс является обзорным и знакомит будущих web-разработчиков с широким спектром технологий и общими принципами работы web-приложений. По сути, курс нужен для того, чтобы «погрузить» студентов в тему и позволить в дальнейшем сконцентрироваться на конкретных технологиях, не теряя из вида общую архитектуру.

Цель курса — всестороннее изучение устройства и принципов работы современных web-приложений и сети интернет в целом, а также получение практических навыков web-разработки. Акцент в курсе сделан на backend-разработку. На каждом из лекционных занятий студентам выдается задание, в ходе выполнения которых шаг за шагом формируется конечный проект, готовый к тому, чтобы стать первым в портфолио будущего web-разработчика.

В качестве инструментария студенты в ходе курса обзорно знакомятся с администрированием nginx, MySQL и Redis, разработкой на Django и использованием таких библиотек и продуктов, как Centrifugo, Gunicorn, Celery, Elasticsearch. Кроме того, разбираются основы верстки и работы CSS-фреймворками и JS-компонентами. Курс ведут Илья Стыценко (разработчик в подразделении внутренней информационной разработки) и Денис Исаев (руководитель группы программистов C/C++ в Почте Mail.Ru). Более подробно — под катом.
Читать полностью »

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

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

С докладом на эту тему я выступил на SECR-2016, слайды приложены в конце статьи.

Суть проблемы

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

Создание машины времени возможно. Эксперименты со временем. Теоретическая часть - 1

Буквально на днях, после прочтения статьи Путешествия во времени и программирование я загорелся идеей об экспериментальных исследованиях, которые позволили бы получить практические ответы на вопросы о перемещении во времени. Но прежде чем переходить к экспериментам, требуется разработать теоретическое обоснование о возможности преодоления времени между прошлым и будущим. Чем собственно я занимался в течении последних дней. Исследование основано на теории относительности Эйнштейна и релятивистских эффектах, попутно затрагивая также квантовую механику и теорию суперструн. Думаю мне удалось получить положительные ответы на поставленные вопросы, подробно рассмотреть скрытые измерения и попутно получить объяснение некоторых явлений, например, природу корпускулярно-волнового дуализма. А также рассмотреть практические способы передачи информации между настоящим и будущем. Если вас тоже волнуют эти вопросы то добро пожаловать под кат.Читать полностью »

imageЛюбой программный продукт сложнее «Hello, world!» необходимо тестировать — это аксиома разработки. И чем шире его функциональность и сложнее архитектура, тем больше внимания нужно уделять тестированию. Особенно аккуратно надо относиться к гранулярному измерению производительности. Часто бывает, что в одной части ускорили, а в другой замедлили, в итоге результат нулевой. Чтобы такого не происходило, мы в своей работе очень активно используем так называемые atomic-тесты. Что это такое и с чем их едят, читайте под катом.Читать полностью »

Добрый день!

Меня зовут Антон. В компании YADRO я занимаюсь хардверной разработкой.

В конце обзорной статьи про историю и развитие PCI Express Алексей упомянул о нашем собственном адаптере для внешнего подключения PCI Express (далее для краткости — PCIe) устройств посредством кабеля. Сегодня я расскажу, как мы его тестировали и отлаживали для правильной работы с разными типами и длинами кабельных соединений.

Как подружить PCIe с 10-метровыми медными кабелями и 100-метровой оптикой - 1

Читать полностью »

Традиционно московская конференция CEE-SECR (Central & Eastern European Software Engineering Conference in Russia) была про софтвер, но в этом году ее организаторы решили поэкспериментировать и впустить темных демонов хардвера. Причем не из чего-то народного типа Ардуино, а из уровней посуровее: микроархитектуры микропроцессоров, прототипирования систем на кристалле с помощью микросхем ПЛИС/FPGA, и автоматической генерации тестов для процессоров во время их разработки. Чтобы привязать данный материал к чему-то знакомому для программистов, в хардверной теме возникли приложения встроенных процессоров для интернета вещей, связь лицензируемых микропроцессорных ядер с российскими микропроцессорными проектами, обучение хардверу в российских университетах, а также российские встроенные операционные системы реального времени для тех применений, куда нельзя впускать длинный нос американского Госдепа.

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

Хардвер вторгается в софтвер на московской конференции SECR - 1

Читать полностью »

Извилистый путь разработчика - 1

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

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

После разговора с @PrototypeAlex, где мы обсуждали множество этапов, которые проходят разработчики, у меня появилось вдохновение написать об этом. За 30 лет, которые я пишу код, я прошёл почти через каждый описанный в статье этап, и некоторые были особенно болезненными.

Узнаёте себя на каком-нибудь из этих этапов? И что я пропустил? Многие этапы ускользают из моего поля зрения; мы никогда не перестаём учиться и делать открытия.

Великий Копипастер

Писать код трудно, но люди решили проблему за вас! Ваш браузер переходит к Stack Overflow при вводе "s" в адресной строке, и вы часами вставляете различные фрагменты кода, чтобы увидеть, какой из них выполняет то, что вам требуется. Иногда это высасывает моральные силы, но в итоге у вас появляется хоть какой-то рабочий код.Читать полностью »

Тестирование распределенных систем, — интервью с Андреем Сатариным, Яндекс - 1

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

Я пообщался со спикером конференции Heisenbug 2016 Moscow Андреем Сатариным (twitter.com/asatarin). Андрей участвовал в проектах по тестированию в Mail.ru, в Лаборатории Касперского, в Deutsche Bank, а сейчас тестирует распределенные системы в Яндексе. Статья будет полезна не только людям, которые занимаются тестированием, но и разработчикам. Если вы ни разу не касались вопроса тестирования распределенных систем, добро пожаловать под капот.

Тестирование распределенных систем, — интервью с Андреем Сатариным, Яндекс - 2Андрей Сатарин:

… они убивают ноды прямо в рабочее время и разработчики наблюдают за...

Читать полностью »

Как часто, программируя очередную бизнес-фичу, вы ловили себя на мысли: есть же на Земле люди, которые пишут базы данных, распознают лица на фотографиях, делают фреймворки и реализуют интересные алгоритмы. Почему в моей работе всё сводится к перекладыванию из одной таблицы БД в другую, вызову http-сервисов, верстке html-формы и прочей «бизнес-лапше»? Может быть я занимаюсь чем-то не тем или работаю не в той компании?

Как перестать бояться и полюбить синтаксический анализ? - 1

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

Недавно мы написали синтаксический анализатор языка запросов 1С и его транслятор в обычный SQL. Это позволило нам выполнять запросы к 1С без участия 1С :) Минимальная рабочая версия на regexp-ах получилась недели за две. Ещё месяц ушёл на полноценный парсер через грамматики, разгребание нюансов структуры БД разных 1С-объектов и реализацию специфических операторов и функций. В результате решение поддерживает практически все конструкции языка, исходный код выложен на GitHub.

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

Читать полностью »

image

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

Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js