Добрый день.
События, публикации, решения по темам: архитектура систем, разработка и тестирование программного обеспечения, инструменты автоматизации, системное администрирование и техсаппорт, эпизоды.
Архитектура систем
• StackExchange: что скрывается под капотом мощного информационного ресурса?
• Поисковый гигант озабочен вопросами безопасности и последовательно переводит на SSL основные продукты.
• Amazon, Google, Facebook: сравнение техпроцессов и подходов к разработке, отраженное во вдумчивом анализе инженера Google.
• Uncle Bob размышляет об архитектуре приложения: каково ее назначение и какой она должна быть.
• Kent Beck выложил краткий справочник-словарь по дизайну программных продуктов.
Разработка приложений
• Jeff Atwood одобряет продукты Apple как пользователь и нещадно их критикует как разработчик.
• Дмитрий Завалишин: риски в заказной разработке программного обеспечения.
• Работа с исключениями в PHP: практические примеры, снабженные иллюстрациями.
• Шаблоны в PHP: модель MVC, базовые концепции и примеры реализации.
• ”You don’t even know enough to realize just how little you know”. Можно ли кого-либо считать экспертом в разработке программного обеспечения?
• Bug jail: здесь оказываются разработчики, количество багов у которых зашкаливает выше установленного предела.
• Несовершенство мира – следствие методик TDD, заброшенных на полпути.
• Twitter API + Ruby = технология извлечения и анализа данных из популярного сервиса.
• В октябрьском выпуске MSDN Magazine: асинхронное программирование, работа с HTML5, моделирование данных и другие темы.
• Зерна Agile отделяются от плевел: “Agile is communication, trust and accountability. And that’s it. The rest is bullshit“.
JavaScript
• Code review: что, как и почему на живых примерах JavaScript. Бонус: подборка инструментов и библиотек в помощь программисту на JavaScript.
• Екатерина Каменская (Software Engineer in Test, YouTube) представляет ScriptCover – инструмент для анализа покрытия кода JavaScript.
• Анимация в JavaScript: математический подход и первые шаги.
• Правила хорошего тона в jQuery для продвинутых разработчиков.
• Dart – альтернатива JavaScript из стен поискового гиганта.
Тестирование программного обеспечения
• The Monday Times: еженедельная подборка публикаций по тестированию ПО.
• Evil Tester: исследовательское тестирование кануло в Лету; да здравствует тестирование!
• Elisabeth Hendrickson, флагман agile-тестирования, передает из Киева: “… while testers are still important, not everything that involves some aspect of testing should be done by people with QA or Test in their title“.
• Особенности тестирования Facebook: подходы и инструменты.
• The paradox of testing: we want to find defects in the software under test, but we do not really want to find them.
• Обзор публикаций от The Testing Planet: чему учиться, как учиться, как тестировать и как нанимать.
• Подборка инструментов для оценки удобства интерфейса, отслеживания действий пользователя и организации эффективной обратной связи.
• Gerald Weinberg представляет онлайн-журнал Tea-Time for Testers и кратко описывает темы последнего выпуска.
• Jim Reardon представляет Google Test Analytics – инструмент, который, по задумке авторов, подкосит тест-планы на корню.
• James Bach объясняет различие между BDD и тестированием: “It is not the process of demonstrating that the product CAN work, but exploring if it WILL”.
• Истории из жизни замечательных тестировщиков: препятствие есть первый шаг к решению задачи.
• Тест не работает? Достаточно изменить критерей верного результата!
• Наиболее заметные публикации о тестировании программного обеспечения за последнюю неделю: инструменты, подходы, решения: (1, 2, 3).
• Уроки Евгения Касперского: как тестировать антивирусы?
• The Testing Planet: подборка публикаций по тестированию программного обеспечения (1, 2).
• Где пользователь спотыкается на сайте? Методика отслеживания.
Инструменты автоматизации
• Adam Goucher представляет новости из мира Selenium и смежных элементов разработки и тестирования (1, 2).
• Evil Tester делится маленьким секретом для скриптов, использующих WebDriver: как избежать диалога ‘update failed’ в Firefox.
• Aaron Jacobs представляет Google JS Test – фреймворк для модульных тестов, работающий на движке V8 JavaScript Engine.
• Кружок “Умелые руки”: использование аккаунта GMail в качестве хранилища информации о багах.
• BITE (Browser Integrated Testing Environment) – расширение для Chrome, позволяющее эффективно отслеживать и воспроизводить баги на web-страницах.
• Проект openSUSE представил openQA – пакет для автоматизированного тестирования дистрибутивов.
• Четыре полезных инструмента для проверки отображения сайта в браузерах всех мастей и настроек.
• QualityBots – инструмент, отслеживающий изменения в работе новых версий Chrome по сравнению с предыдущими.
• Adam Goucher публикует новости из мира Selenium и проводит работу над ошибками, размышляя о структуре автотестов.
• XSLT 2.0: автоматическое обнаружение ошибок.
Системное администрирование и техсаппорт
• Grep: несколько примеров использования операторов OR, AND, NOT.
• Компоновка программ с gcc: несколько практических примеров.
• История выполненных команд в bash: несколько полезных трюков.
• Интернационализация в Linux: как работать с различными региональными настройками?
• Памятка владельцам почтовых серверов: надежная передача писем и защита от спамеров.
• Техническая поддержка программного продукта: краткий обзор средств и подходов.
• Mark Russinovich рассказывает, как Process Explorer из обоймы инструментов Sysinternals помог выявить причину перезагрузки системы при коннекте к сети.
Разное
• Patrick McKenzie обращается к программистам: раскройте глаза, протрите уши и поймите, кто вы есть на самом деле.
• Роль личности в истории: влияние Стива Джобса на развитие Google.
• Из серии “Нарочно не придумаешь”: забавные информационные сообщения в пользовательском интерфейсе.
• Надбавка к зарплате? Попроси, не стесняйся, но подойди к этому с чувством, толком, расстановкой.
• Группа ученых изучает разработку программного обеспечения под микроскопом антропологии, психологии и других прикладных научных дисциплин.
• Google закрывает проекты Code Search, Google Buzz, Jaiku и бросает все силы на развитие более важных проектов.
• Компьютерный вирус поразил систему управления американскими беспилотными летательными аппаратами.
• Высокие технологии в руках манипулятора: меньше народу, больше кислороду.
Эпизоды
M1. Есть два бага: А и Б. Баг А неприятный, а баг Б терпимый.
М2. Странное дело: пользователи просят исправить баг Б, а про А молчат.
М1. До бага А они еще не дошли. Те, кто дошел, больше ни о чем не просят!
Б. Извините, пожалуйста, что я к вам обращаюсь…
Т. Брысь! Сгинь, нечистая сила!
Б. Простите, что я говорю, когда вы меня перебиваете…
Т. Чего тебе? Слышь, отвали!
Б. Я ль на свете всех милее, всех желанней и наглее?
БМ. Проект у нас серьезный. Баг нужен не простой, а ответственный.
Б. Я тот, кто нужен! Берите – не пожалеете!
БМ. Есть рекомендации с последнего места работы?
Б. Проект закрыт, ответственность на мне!
Т1. Написал кучу багов – и ни один не исправили.
Т2. Это новая политика: “Всех впускать, никого не выпускать!”
Т. Тестирую сайт в Firefox 5 и 7. И в обоих случаях вижу: “Ваш браузер не поддерживается”.
Р. Конечно, не поддерживается. Firefox 5 слишком старый и не поддерживает новые фишки, а Firefox 7 слишком новый, чтобы о нем думать. Ставь Firefox 6!
Что такое качество программного обеспечения и как его улучшить: теория и практика, задачи и решения, подводные камни и обходные пути.