Добрый день.
Баги и дыры
• Из жизни роботов: история одного бага в Java-коде и его обход.
• В скрипте инициализации RHEL допущена ошибка, приводящая к удалению всех файлов.
• Прощу любые грехи, но только не хранение паролей в открытом виде. P.S. А какие надежды подавал!
• Сайт готов? Смотря с какого бока посмотреть.
• Gerald Weinberg классифицирует баги по способу попадания в программный код.
Архитектура систем и разработка приложений
• Использование Chrome DevTools для профилирования производительности web-сайтов, оптимизированных для мобильных устройств.
• Как это было: инженеры Linkedin значительно улучшили производительность загрузки главной страницы сервиса.
• Martin Fowler полагает, что хороший программный код может быть хорошей документацией.
• Старый-добрый Cron реинкарнируется в распределенный сервис на базе алгоритма Paxos и технологий Google.
• В новой версии Google Chrome улучшены механизмы и, соответственно, производительность выполнения скриптов JavaScript.
• Исходный код MSBuild выложен в открытый доступ.
• Выбор бара по рулетке и свидания для слабовидящих: самые невероятные сценарии могут стать реальностью после создания приложений, использующих Uber.
• И Дунай потечет вспять: перемещение сервиса Swiftype из Amazon EC2 на железо.
• Переход от целостного сервиса на базе Ruby к микросервисной архитектуре на базе Go: извлеченные уроки.
• Google Compute Engine: “живая” миграция виртуальных машин в случае непредвиденных обстоятельств или запланированных работ.
• Прощай, MongoDB. Здравствуй, PostgreSQL. Причины и этапы перехода из первых рук.
• То, что может показаться простым действием для разработчика продукта, может оказаться непростой задачей для потенциального пользователя.
• Сервис с 30 миллиардами запросов и 60 терабайтами данных в день: статистика, архитектура, технологии, команда, коммуникации, извлеченные уроки.
• Martin Fowler рассказывает о правилах разработки ПО, которые предложил Kent Beck.
Тестирование и качество ПО
• Один из способов ускорить получение результатов тестов – запускать только те из них, на которые могли повлиять изменения в коде.
• Google Testing blog: подходы к тестированию графического интерфейса приложений, работающих в среде Android.
• James Bach и Michael Bolton подводят черту под использованием термина “исследовательское тестирование” и предлагают заменить его термином “тестирование”. (1, 2)
• Неожиданно хорошая подборка постулатов о тестировании программного обеспечения.
• Michael Bolton подобострастно критикует труды пионеров тестирования и шлифует базовые термины прикладной дисциплины.
• Кто сторожит сторожей: профилирование профайла, чтобы выяснить причины снижения его производительности.
Человеческий фактор
• Масштабирование команды разработчиков не менее важно чем масштабирование ПО, над которым они работают.
• Code freeze: если нельзя, но очень хочется, то можно.
• Seth Godin бьет точно в цель: создание благожелательной атмосферы, в которой у человека рождается стремление к совершенствованию, важнее передачи ему технических знаний.
• Проекты, которые нельзя ни развить, ни закрыть, налагают негативный отпечаток на его участников.
• Должен ли пользователь платить за период накопления опыта разработчиком, если на накопление ушло 10 лет, а работа выполнена за 10 минут?
• Девять жемчужин тайного знания, о которых осведомлены программисты и не имеют понятия другие люди.
• Johanna Rothman предлагает отойти от управления производительностью сотрудников к развитию их карьеры и материальному поощрению на основе коллегиального мнения команды.
• Если есть трудности с подтверждением легитимности использования ПО, то техсаппорт будет мурыжить до тех пор пока Дилберт не захочет купить новый компьютер.
• Человеконенавистник может найти свое пристанище в проектировании пользовательских интерфейсов.
Эпизоды
Чеширский код:
Р1. Как трудно разобраться в этом проекте. Десятки тысяч строк в одном классе. Только ухватишь логику, как она теряется.
Р2. Чеширский код?
После нас хоть потоп:
Б1. Классный PowerShell-код в сегодняшнем билде: Get-Process | Stop-Process
Б2. Это Супербаг! Так они убьют все процессы в системе!
Б1. Но тогда и нас не будет!
Б2. И все на нас свалят!
Апрель!
Что такое качество программного обеспечения и как его улучшить: теория и практика, задачи и решения, подводные камни и обходные пути.