Добрый день.
В выпуске: баги и дыры; архитектура систем; разработка приложений; тестирование ПО и тестировщики; инструменты автоматизации; человеческий фактор; эпизоды.
Баги и дыры
• Из серии “Нарочно не придумаешь”: забавные сообщения в пользовательском интерфейсе.
• Взламывая людей: уязвимости медицинских устройств.
• Ищите ошибки с помощью Google или взлом аккаунтов на badoo.com.
• Страница Марка Цукерберга в Facebook была взломана хакером, который хотел продемонстрировать наличие уязвимости в системе.
• На самую изощренную систему защиты найдется свой хакер.
• Наилучший способ обеспечить безопасность информационной системы – свести к нулю количество сотрудников.
• SQL injection: все что вы хотели знать о различных вариантах атаки.
• Все что ни делается, к лучшему: и от бага бывает польза.
Архитектура систем
• Сервис Reddit: архитектура, статистика, код, данные, извлеченные уроки.
• Как в глобальных информационных системах (Google, Facebook) организовано обновление программного обеспечения без простоев в предоставлении услуг?
• У публичных облачных ресурсов (Amazon и др.) есть не только почитатели, но и оппоненты.
• В 57 уроках стартапера уделено немало внимания вопросам разработки и позиционирования программного продукта.
Разработка приложений
• Наиболее примечательные комментарии к исходному коду: “Ну, дружище, ты залетел“.
• Можно так отрефакторить непонятный код, что понять его станет еще труднее.
• Google – опиум для программиста. Как побороть наркозависимость?
• Разница между MS Windows и OS X: скажи мне что произойдет после закрытия окна,и я скажу кто ты.
• Seth Godin размышляет о качестве продуктов и услуг, подчеркивая важность уловить истинные потребности пользователей.
• Именование классов: как вы яхту назовете, так она и поплывет.
• Из серии “Нарочно не придумаешь”: решение “в лоб” способно вогнать в ступор.
• Несколько полезных приемов в программировании shell-скриптов.
• Сборка билда прошла успешно – такая редкость, что в это трудно поверить.
• Возможно ли советы от знаменитого шеф-повара приложить к разработке ПО?
• 13-летний программист представляет пошаговую инструкцию по созданию компьютерной игры на Python.
• Утечки памяти в Python: обзор инструментов для выявления и анализа таких случаев.
• Парное программирование? Это прошлый век. То ли дело программирование группой.
• Десять типичных ошибок Java-разработчиков при работе с SQL.
• Подборка самых популярных технических статей по Java за последний год.
Тестирование ПО и тестировщики
• Структура теста: Martin Fowler представляет парадигму Given/When/Then и ее модификации.
• Испытание тестировщика: на каждый хитрый вопрос найдется хитрый ответ.
• Классы эквивалентности в тестировании: практический пример реализации.
• Jonathan Kohl выступил с сагой об удобстве мобильных приложений и счастье пользователя.
• Google Testing Blog: чем менее тесты зависят от деталей реализации продукта, тем легче их поддерживать.
Инструменты автоматизации
• Selenium 3: что является лейтмотивом развития и когда ожидать официальный релиз? Отдельной строкой: WebDriver для мобильных устройств.
• Adam Goucher на переднем крае с подборкой публикаций по автоматизации тестирования приложений (1, 2).
• Модульные тесты в языке C: greatest претендует на место под солнцем.
Человеческий фактор
• Не каждый хороший программист сможет продемонстрировать свои качества в интервью. Что делать? (1, 2)
• Анатомия технического интервью от бывшего вице-президента по технологиям в Amazon и Zynga.
• Alan Page рассказывает о не самых приятных эпизодах в стане Microsoft и важности видеть перспективу.
• Robert Ziehl учит разработчиков демонстрации своих навыков, а работодателей – их оценке.
• Менеджер среднего звена цементирует апатию рядовых сотрудников и расплывчатость целей вышестоящего руководства.
• Шеф Дилберта ищет проблему, чтобы оправдать свое присутствие и трепещет перед вышестоящим начальником (1, 2).
• Тяжела и неказиста жизнь простого программиста. И тестировщика.
• Jeff Atwood осуществил свою мечту и разработал клавиатуру, наиболее соответствующую духу и потребностям программиста.
Эпизоды
Т. Это баг, нужно от него избавиться!
Р. Все относительно. Возможно, и мы для кого-то являемся багами.
Т. Ты хочешь сказать, что от нас могут избавиться, если мы захотим избавиться от багов, которые для кого-то багами не являются?
М1. Нам нужно выстроить процессы и наметить цели.
М2. Разработать метрики и структурировать отчетность.
М1. Выявить критический путь и расставить акценты.
М2. Нормализовать микроклимат и повысить моральный дух.
Б1. Я думал, что лучше уже не будет.
Б2. Будет, будет!
Всего доброго. Лето не позади. Лето еще предстоит.
Что такое качество программного обеспечения и как его улучшить: теория и практика, задачи и решения, подводные камни и обходные пути.