Баги и уловки
• Рассинхронизация времени на серверах: история одного бага, который долго отказывались признавать.
• NodeJS: производительность функции порой определяется не только ее кодом, но и размером комментариев.
• Платите нам бабки каждый месяц, или мы найдем у вас дыры и растрезвоним о них на весь мир (1, 2).
• Фикс фиксу рознь: то, что приветствуется при разработке приложения, может оказаться большой ошибкой при его поддержке.
• Ошибка навигационного сервиса Waze стоила человеческой жизни.
• Пользователь способен проигнорировать заботу о его безопасности.
• Если исключить ошибку в программном обеспечении и неработоспособность в аппаратном, на первое место выходит таинственный человеческий фактор.
Извлеченные уроки
• Пять уроков за десять лет провалов в работе приложений и сервисов.
• 5 уроков после 5 лет развития проекта Instagram.
• Todd Hoff размышляет о том какие тенденции в развитии информационных технологий не самым благоприятным образом сказываются на нашем пребывании в Сети.
• Разбор полета двухлетней давности: какие уроки были извлечены после аварии на сервисе “Одноклассники“.
• Провалы при создании и обслуживании программных систем: статистика и разбор полетов (статья 10-летней давности).
• Старый друг лучше новых двух и другие уроки, извлеченные при обслуживании систем с высокой степенью доступности.
• Недоступность сервиса Amazon DynamoDB: извлеченные уроки.
Архитектура систем и разработка приложений
• Так ли страшен Git, как его малюют?
• Если вам нужен гамбургер, то не стоит вытаскивать сыр из чизбургера: лучше сразу купить гамбургер.
• Каким образом и почему именно так организован процесс внедрения новшеств в Twitter?
• Классификация изображений в Yelp: как миллионы фотографий раскладываются по полочкам?
• Chrome Developer Tools: несколько полезных приемов.
• Одно важное правило и много маленьких примеров, полезных при редактировании Vimrc.
• Martin Fowler рассказывает о рефакторинге зависимостей модулей на конкретном примере.
• Становление технического процесса в Instagram: от двух основателей без опыта программирования к большой команде в составе Facebook.
• История реорганизации структуры базы данных (MySQL) в Airbnb.
• Камень в огород микросервисов: достойная архитектура или культ Карго?
• Netflix: тяжело в учении, легко в бою.
• Процесс разработки Chromium: нет бранчей, переключатели на этапе выполнения, много автотестов, агрессивный рефакторинг и другие особенности.
Тестирование и качество ПО
• Как обеспечить низкую скорость соединения для тестирования веб-сайтов и приложений?
• Нам бы кликов побольше, а этика и контент подождут до лучших времен.
• Google Testing Blog: технология написания автотестов для одного из блоков WebRTC-приложения.
Прошлое и будущее
• Поскольку время в Unix вычисляется по количеству секунд, прошедших с полуночи 1 января 1970 года, то системы, работавшие в 1969 году, кажутся динозаврами.
• Взгляд в прошлое: некоторые системы существуют вопреки всем законам эволюции IT.
• Взгляд в будущее: смогут ли роботы программировать людей?
• В недалеком будущем понадобятся специалисты по обслуживанию слишком интеллектуальных предметов обихода.
Между стулом и монитором
• Встреча московской группы пользователей MySQL (MMUG). Доклад Петра Зайцева (Percona): “Модели репликации в MySQL: асинхронная, полусинхронная и виртуально-синхронная“.
• Много файлов на рабочем столе? Не говорите, что я вас не предупреждал.
• Распределенная команда: меньше слаженности, но можно вовлечь таланты со всего мира.
• Если компьютер научится ставить медицинский диагноз и выписывать препараты, обязанности врача трансформируются.
• Куда может завести Agile, и как там не очутиться?
• Чтобы подстелить соломку для стартапа, нужно четко понимать его перспективы без нее.
• Особое мнение: если рецепт из Stack Overflow работает, то зачем нам думать как и почему?
Всего доброго.
Что такое качество программного обеспечения и как его улучшить: теория и практика, задачи и решения, подводные камни и обходные пути.