Добрый день.
В выпуске: баги и дыры; архитектура систем; разработка приложений; тестирование ПО и тестировщики; эпизоды.
Баги и дыры
• История одного бага: как терять 170 тыс.$ в секунду в течение 45 минут (1, 2).
• Бесплатное программное обеспечение способно принести неоценимую пользу. А может и оказаться троянским конем.
• И опыт, сын ошибок трудных: отказ или незнание особенностей языка программирования может приводить к усложению простой задачи.
• Так вот где собака зарыта: спецслужбы прослушивают трафик во внутреннем облаке Google между датацентрами, где трафик не шифруется.
• Наиболее опасные баги располагаются между монитором и клавиатурой.
• Ну уж если на usa.gov такой детский баг, то что ожидать от их бюджета? А потом скажут, что багтрекер чистый.
• История одного бага, последовательно проявлявшего всю сложность своего бытия.
• Значений True/False в булевой алгебре порой бывает недостаточно.
Архитектура систем
• Взгляд за ширму: Яндекс применяет Docker для виртуализации инфраструктуры и изолированного запуска приложений.
• Переход от Cassandra к Amazon DinamoDB: причины перехода, полученные плюсы и минусы.
• Jeremiah Peschka рассказывает о подходах к масштабированию SQL-серверов в условиях бьющей через борт нагрузки.
• Перевод на Linux 37 тысяч ПК во французской жандармерии позволил снизить затраты на 40%.
Разработка и поддержка приложений
• Raymond Chen в блестящем стиле ставит задачу, выражает сомнения в ее правомерности, находит несколько узких мест и делает выводы.
• Задача разработчика значительно упростится, если у пользователя будет удобный интерфейс для сообщения об ошибках.
• Решение задачи коммивояжера: 10 алгоритмов, реализованных на языке Python.
• Все относительно, и в том числе оценка трудоемкости изменений в коде, особенно если изменения вносил ты.
• Наглядная иллюстрация к тому как важно не переборщить с библиотеками и абстракциями.
• Отличный агрегатор документации для web-разработчиков: CSS, DOM, HTML, HTTP, JavaScript и его библиотеки.
• Новые полезные инструменты появляются в ответ на сформировавшиеся потребности.
• Как принципы функционального программирования можно применить для рефакторинга приложений на JavaScript?
• Темная сторона метода eval(): богатство возможностей скрывает потенциальные опасности.
• Automated Interactive Deploy Assistant от Badoo позволяет упростить процессы в цикле непрерывной интеграции.
• История одного проекта: с чего все начиналось и что произошло за следующие 13 месяцев.
• Наиболее распространенные алгоритмы: теория, анализ, код.
• We are typists first, and programmers second: тезис и его раскрытие.
• Поддержка выпущенных версий продукта является неотъемлемой задачей разработчика.
• Инсайдер в Microsoft: “Сейчас это немного меняется, но на моей жизни здесь мне повезло не увидеть никаких agile-методов, скрама и прочего срама“.
• Позволь мне прочитать 200 твоих твитов, и я скажу кто ты.
• Белая ворона: почему разработка ПО в рамках проекта может оказаться неэффективной?
• Failure happens. In order to understand how failures happen, we first have to understand our reactions to failure.
• Если хранилище документов в проекте превратилось в свалку, то добавление еще одного документа роли не сыграет.
• Code Coverage: краткое объяснение на практических примерах.
• Jennifer Dewalt, выдержавшая полугодовой марафон по освоению одной web-технологии в день, берет тайм-аут и решает посвятить остаток жизни программированию.
• Gojko Adzic, апологет BDD и автор “Specification by Example”, предлагает не придумывать пользователю фальшивые намерения.
Тестирование ПО и тестировщики
• Gojko Adzic связывает себя по рукам и ногам квадрантом гибкого тестирования и пытается из него вырваться.
• Надеяться на то, что код будет работать? Нет, молиться и верить.
• Несколько полезных советов по тестированию десктопных приложений.
• Никакой тест ничего не гарантирует, или кто будет сторожить сторожей (1, 2).
Эпизоды
http://openquality.ru/episodes/235
Т. Тесты зеленые, можно релизить.
Б. Багословляю!
http://openquality.ru/episodes/236
М1. Урезали бюджет, придется кого-то сократить.
М2. Я думаю, что нам не нужны тестировщики. Модульными тестами мы покроем весь код.
М1. Эти разработчики таких модулей понастроят. Нельзя без тестировщиков.
М2. Тогда оставим только тестировщиков. И код напишут, и ни одна муха не пролетит.
Всего доброго, до встречи.
Что такое качество программного обеспечения и как его улучшить: теория и практика, задачи и решения, подводные камни и обходные пути.