Добрый день.
События, публикации, решения по темам: архитектура систем; разработка приложений; модульные тесты; баги и промашки; тестирование и тестировщики; инструменты автоматизации; системное администрирование; вопросы на интервью; эпизоды.
Архитектура систем
• SQL почил? Да здравствует SQL: масштабируемость NoSQL-решений обрамляется SQL-оболочкой для выполнения сложных запросов (движок Tenzing, разработанный в недрах Google).
• Grig Gheorghiu делится практическим опытом работы c несколькими инстансами MySQL в облаке Amazon EC2.
• Архитектура noSQL: текущее состояние дел и выбор подходящего решения.
• Todd Hoff ставит под сомнение устоявшиеся подходы к реализации облачных сервисов и призывает к их перепросмотру.
• Разбор полетов от сервиса Etsy: хронология неудачного решения, смена курса, извлеченные уроки.
• Joel Spolsky объясняет разницу между вертикальным и горизонтальным программным обеспечением и в качестве примера последнего представляет Trello – среду для совместной работы над проектом.
• Как Facebook справляется с пиками нагрузки? Готовит сани летом.
Разработка приложений
• Web-разработка: события, инструменты, публикации в январе.
• Почему разработчики ненавидят антивирусные программы: взгляд изнутри.
• Yiannis Konstantakopoulos проводит анализ успешных сайтов и выделяет особенности web-дизайна, которые помогли им преуспеть.
• Gojko Adziс предлагает использовать метод гамбургера для выработки стратегии разработки продукта со сложными бизнес-требованиями.
• Davy Brion призывает никогда не хранить пароли в исходном виде: гораздо безопаснее хранить хэшированные значения.
• EnhancePHP – библиотека для тестирования приложений, написанных на PHP. Обзор и примеры написания тестов.
• Как интегрировать Facebook, Twitter и Google+ в сайт на платформе WordPress?
• Интерактивные системы обучения: трудно заранее учесть все ситуации, в которых могут оказаться пользователи.
• Что такое AJAX? Наглядное объяснение в картинках.
• Комментарии к комментариям в коде помогут разобраться в его дебрях.
• Agile или Waterfall: чем бы дитя не тешилось, разница невелика.
• Evil Tester обозначил интересную проблему: аддоны не поспевают за выходом новых версий браузеров и уходят на свалку истории.
• Парадигма MVC на примере Zend Framework в PHP: теория и пример реализации.
• Каким образом по Unicode-строке определить, на каком языке представлен текст?
• Подборка материалов по улучшению производительности высоконагруженных систем: статистика и методики.
• Карта C++: здесь вам не равнина, здесь климат иной.
• Как вычислить количество месяцев в году? Непростая задача.
• Код и документация в порядке? Нехороший знак!
• В январском выпуске MSDN Magazine: искусственный интеллект в тестировании, HTML5, Windows Azure, работа с базами данных и другие темы.
• В быстроменяющемся мире путь к хорошему web-приложению лежит через грамотно организованный API.
Модульные тесты
• Patrick Smacchia делится восьмилетним опытом создания модульных тестов.
• Claudio Ortolina представляет пример разработки Ruby-приложения с использованием методик TDD.
Баги и промашки
• В качестве наиболее вероятной версии аварии “Фобос-Грунта” называется ошибка в программировании бортового вычислительного комплекса (БВК) станции (1, 2).
• Скелет в шкафу Oracle: баг в архитектуре СУБД посылает в нокаут системы с большим объемом транзакций.
• Подробности фишинговой атаки в Живом Журнале: официальное заявление и разбор полетов в комментариях.
• Баг в архитектуре предвыборного сайта позволял увидеть сообщения, отклоненные модератором. Update: Батюшки святы, да там такое…
• What the fuck: от бага до улыбки один шаг.
Тестирование и тестировщики
• Rikard Edgren приводит список своих любимых инструментов для мониторинга и анализа приложений.
• Catherine Powell объясняет, почему она больше не нанимает выделенных тестировщиков несмотря на актуальность и важность тестирования ПО.
• Aaron Evans претендует на позицию QA Lead в компании, занимающейся облачными технологиями, и отвечает на вопросы, задаваемые потенциальным кандидатам.
• Настоящие разработчики не заморачиваются тестированием: настоящие пользователи сами найдут все скрытые баги.
• Евгений Касперский рассказывает о тестировании антивирусных программ и критериях их оценки.
• Elisabeth Hendrickson учита задавать вопросы, ответы на которые подводят к оптимальным стратегиям разработки ПО.
• Ainars Galvans ставит под сомнение полезность рутинных регрессионных проверок и размышляет, каким образом выполнять тестирование более эффективно.
• Должен ли тест соответствовать ожиданиям программиста или же в первую очередь нужно исходить из потребностей конечного пользователя?
• Stefan Butlin рассказывает о TestPad – онлайн-сервисе для организации ручного тестирования.
• В Таиланде на веранде и с MacBook наперевес: консультант по тестированию описывает свое житие-бытие.
• Andy Glover иллюстрирует процесс устройства тестировщиков на работу: статистика с картинками и комментариями.
• The Monday Times: события 2011 года и прогноз на будущее.
• Содружество тестировщиков Perl-модулей CPAN и добрые слова в их адрес.
• Elisabeth Hendrickson сравнивает программное обеспечение с котом Шредингера и предостерегает от неэффективного внедрения гибких технологий.
• Как тестировать документацию: краткий перечень шагов.
• Как тестируют ПО в Google: перевод на русский язык материалов вебинара по этой теме.
Инструменты автоматизации
Редакция OpenQuality.ru выражает искреннюю признательность Адаму за наше счастливое чтение.
• Смертные грехи автоматизации, новости из мира Selenium, подручные инструменты: очередную подборку представляет Adam Goucher.
• Adam Goucher представляет PHPWebDriver и рассказывает, как с его помощью эмулировать нажатие клавиш.
• Adam Goucher объясняет как WebDriver работает с cookies в коде на PHP.
• Adam Goucher публикует очередную подборку материалов по Selenium и сопутствующим технологиям.
• Adam Goucher обращается к заказчикам скриптов на Selenium: как искать и по каким критериям оценивать исполнителей?
• Adam Goucher публикует очередную подборку ссылок по Selenium и смежным областям.
• Adam Goucher продолжает публиковать ссылки на публикации о Selenium и приводит наглядный пример автотеста, по ошибке возвращающего ОК при любых исходных данных.
• Сводка публикаций по Selenium: Android WebDriver, поиск элементов на странице и другие темы.
Системное администрирование
• Brent Ozar рассказывает, за какие заслуги администратор СУБД может получить премию Дарвина, разрушив свое хозяйство.
• Таинственный файл .htaccess в web-сервере Apache: редирект, ограничение доступа, кэширование, компрессия.
• Jeremiah Peschka различает термины “high availability” и “load balancing” и рассказывает про репликацию данных.
• Каким образом сервису Braintree удалось переехать из одного датацентра в другой без перебоев в работе?
• Jeremiah Peschka делится парадоксальными, но проверенными на практике советами по обеспечению масштабируемости информационных систем.
• Mark Russinovich с помощью инструментов Sysinternals расчищает авгиевы конюшни в компьютере своей мамы и победоносно завершает установку Microsoft Security Essentials.
Вопросы на интервью
• 37signals: почему мы не набираем программистов по результатам решения ими загадок и математических задач.
• Вопросы на интервью в Google и Microsoft: знание физики необходимо для создания программных продуктов?
Разное
• Что предпринять в предверии технологической сингулярности, когда искусственный интеллект сможет сам находить ошибке в коде, который он создал?
• Евгений Касперский раскрывает все страшные тайны о спаме: кому он выгоден и как с ним бороться.
• Jeff Atwood проводит интересную аналогию между между магазином, продающим видеодиски, и сайтом в Интернете: что произойдет, если настанет SOPA?
• Евгений Касперский сообщает о вхождении Kaspersky Lab в элиту и о рождении новой военной специальности: специалист по противодействию кибератакам и организации ответного удара.
• Горящие глаза или профессиональный подход к делу: еще одна попытка выбрать одно из двух, если не удастся получить и то, и другое.
• Windows 8: управление компьютером с помощью глаз?
• Дилберт: назвали лидером проекта, полезай в кузов.
• Иерархия компьютерных игр: в каких из них бездушная машина победит человеческий разум?
• Дилберт помогает своему шефу сохранить лицо: не предоставляй фальшивых доказательств, которые легко опровергнуть.
• Alex Chitu делает прогноз по продуктам Google на 2012 год.
Эпизоды
Р1. Мы пообещали заказчику сделать систему качественно и недорого.
Т1. Но эти показатели противоречат друг другу. Будем искать компромисс?
Р1. Зачем? У нас прорывные технологии, будет дешево и сердито. Вот увидишь, после сдачи проекта начальство скажет: “Спасибо всем, кто не мешал!”
М. Нужно исправить два бага: один трудный, другой полегче.
Р1. Я возьму полегче.
Р2. Если бы я выбирал первым, то из вежливости выбрал бы баг потруднее.
Р1. Так он и так теперь твой!
Т. Я найду баг в любой строке кода. Ну вот, к примеру, если не ошибаюсь, в этой строке баг.
Р. Разумеется, здесь баг, если ты не ошибаешься.
Т. Значит, мое предположение верно?
Р. Конечно, верно: если ты не ошибаешься, в этой строке баг.
Т. Итак, раз мое предположение верно, то я не ошибаюсь. А если я не ошибаюсь, то баг здесь есть!
Т. Ничего не понимаю. Поиск по категориям совсем не работает, а багу назначили средний приоритет. Поиск по названию ошибается в 1 случае из 100, и у бага наивысший приоритет.
Р. Проблема в том, что с первым багом всем все ясно, а во втором случае никто не знает, когда поиск работает, а когда нет!
Всего доброго в феврале!
Что такое качество программного обеспечения и как его улучшить: теория и практика, задачи и решения, подводные камни и обходные пути.