Добрый день.
В выпуске: баги и дыры; архитектура систем; разработка приложений; тестирование ПО и тестировщики; инструменты автоматизации; эпизоды.
В блоге опубликована статья FitNesse: этюд в БАГровых тонах.
Баги и дыры
• Иногда ключ к пониманию бага сводится к анализу субъекта между креслом и клавиатурой.
• Информационные технологии на службе проходимцев, старающихся вытянуть деньги из кошелька доверчивых и беспокойных пользователей.
• Компьютеры позволяют нам делать наши ошибки значительно быстрее: экономическое «открытие» оказалось ошибкой в таблице Exсel (1, 2).
• Если кто-нибудь стащит мой ноутбук, он получит доступ ко всем моим аккаунтам в Интернете, но не сможет установить драйверы без моего разрешения.
• Зная пароль, по умолчанию используемый в Excel, злоумышленник может с легкостью внедрить вредоносный код.
• Сообщения в пользовательском интерфейсе могут заставить задуматься о том, не живете ли вы в параллельной Вселенной со своими вычислительными возможностями.
• Когда символ перестает быть символом, или история одного бага в Java-приложении.
• Хотели как лучше: виджет социальных сетей для WordPress оказался источником спама.
• Новое обновление для менеджера загрузки позволит загружать новые обновления для менеджера обновлений.
• Код настоящего программиста должен учитывать все случаи жизни и даже конец света.
• Eric Smith не оставляет багам ни единого шанса и обосновывает эффективность такого подхода.
• Из серии “Нарочно не придумаешь”: забавные информационные сообщения в пользовательском интерфейсе.
Архитектура систем
• Добавление оперативной памяти может оказаться эффективнее создания кластера на базе Hadoop.
• Facebook: у нас нет особых секретов по произвоидтельности web-интерфейса. Все просто.
• Проект Airbnb Neighborhoods: архитектура и кирпичики реализации. What we did, we traded our database for a cache.
• Интересная подборка публикаций по производительности и масштабированию информационных систем.
• Инфраструктура Khan Academy зиждется на Goople App Engine. Причины и уроки выбора такого решения.
Разработка приложений
• Принципы написания кода на JavaScript, который легко поддерживать и читать.
• BIOFAB: новый язык программирования для работы с биологическими клетками.
• Git: краткое пособие для инженеров и им сочувствующих по распределенной системе версий.
• Почему программисту порой бывает трудно оценить время работы над той или иной функциональностью? (1, 2)
• Joseph Misity: 11 вещей, которые я хотел бы знать о работе с Django до создания моей компании.
• Несколько уроков по производительности для создателей пользовательских web-интерфейсов.
• Matt Welsh, инженер в Google, рассказывае о своей работе (mobile web performance).
• Практические подходы к обеспечению качества ПО в больших проектах.
• Если разработчик обвиняет пользователя (PBKAC; проблема между стулом и клавиатурой), пользователь понесет деньги другому разработчику.
• Agile-методологии не всегда являются серебряной пулей в решении поставленных задач.
• Причина, по которой дизайнеры Google изменили интерфейс написания письма в GMail.
• Software engineering is a constant battle against uncertainty – uncertainty about your specs, uncertainty about your implementation, uncertainty about your dependencies, and uncertainty about your inputs.
Тестирование ПО и тестировщики
• Что скрыто в должности твоей? Отражает ли формулировка должности тестировщика суть его работы?
• Scott Barber отвечает на пять вопросов, посвященных тестированию программного обеспечения.
• Test in Production: регулярная проверка работоспособности сервиса, живущего в облаках.
• Два видеоролика, приоткрывающих завесу над тестированием приложений в Google.
• Представители семейства кошачьих помогут протестировать ваше приложение на предмет удобства его использования.
• Michael Bolton размышляет о сущности тестирования ПО и целях, к которым следует стремиться (1, 2).
Инструменты автоматизации
• Martijn de Vrieze начинает рассказ о критериях выбора инструментов для тестирования производительности.
• Martijn de Vrieze продолжает разговор о выборе инструментов для тестирования производительности приложений.
Разное
• Устал корпеть над кодом с утра до ночи? Есть неплохие альтернативы.
• Если вычеркнуть Google из своей жизни, то чем его заменить?
• Не в бровь, а в глаз: бонусы в R&D зачастую определяются совершенно ортогональными факторами.
• Плохие вопросы на технических интервью и как на них отвечать.
• Технологии, которые сегодня кажутся бесперспективными, завтра покорят весь мир.
• Как выйти сухим из воды, если проект пошел наперекосяк?
Эпизоды
Р. Беда с нестабильными багами. Вот этот, например, проявляется случайным образом.
Т. Да, непростой баг. Далеко пойдет!
Р. В действительности все совсем не так как на самом деле!
Т. Странный баг. Проявился один раз и больше не воспроизводится.
Р. Я посмотрел код, баг здесь крайне маловероятен.
Т. Хорошо, что у нас нет невероятных багов, а есть только неповторимые!
Всего наилучшего в мае! До встречи.
Что такое качество программного обеспечения и как его улучшить: теория и практика, задачи и решения, подводные камни и обходные пути.