Почему ручное тестирование никуда не денется: Любовное письмо специалисту по контролю качества

Почему ручное тестирование никуда не денется: Любовное письмо специалисту по контролю качества

Представьте: вы только что испекли идеальный шоколадный торт. Ваш робот-повар-помощник чётко следовал рецепту, но вы всё равно попробуете его перед подачей на стол, верно? В этом суть ручного тестирования — это проба программного продукта на «вкус» человеком. Давайте разберёмся, почему армии автоматизированных скриптов не могут (и не смогут) заменить этот важнейший человеческий подход. Секрет приготовления качественного программного обеспечения Если автоматическое тестирование действует как неумолимый кухонный таймер, подающий сигнал: «ЭТА КНОПКА ДОЛЖНА БЫТЬ СИНЕЙ!...

26 мая 2025 06:00 · 3 минуты · 1 слово · Maxim Zhirnov
Кодекс или крестовый поход? Великая дискуссия о предвзятости в отношении языка программирования

Кодекс или крестовый поход? Великая дискуссия о предвзятости в отношении языка программирования

Начну с признания: в прошлый вторник я 45 минут спорил со своей кофемашиной о том, является ли «тёмная обжарка» политическим комментарием. Это происходит, когда ты слишком много думаешь об алгоритмической предвзятости. Сегодня мы обсудим слона в IDE: следует ли языкам программирования встраивать фильтры политической предвзятости в свой синтаксис? Когда «Hello World» говорит «Прощай, нейтральность» Современный код не просто парсит строки — он парсит человеческую культуру. Рассмотрим этот фрагмент на Python:...

25 мая 2025 06:00 · 3 минуты · 547 слов · Maxim Zhirnov
Почему ваша одержимость оптимизацией кода подобна тюнингу Ferrari для продуктового магазина

Почему ваша одержимость оптимизацией кода подобна тюнингу Ferrari для продуктового магазина

Представьте: вы на code review, с четвёртой чашкой кофе за утро в руках, и тут кто-то бросает такую фразу: «Зачем здесь использовать списковое включение? Поиск по словарю выполняется за O(1)!» Между тем рассматриваемый метод обрабатывает максимум три элемента. Поздравляем — вы только что стали свидетелем преждевременной оптимизации в естественной среде обитания. Высокая цена ранней оптимизации Начнём с истории, которую вы, возможно, узнаете: # «Оптимизированный» подход results = [] for i in range(0, len(data), 1): temp = process(data[i]) results....

24 мая 2025 06:00 · 3 минуты · 567 слов · Maxim Zhirnov
Заблуждение 'Всегда используйте блокчейн': когда централизация побеждает

Заблуждение 'Всегда используйте блокчейн': когда централизация побеждает

Позвольте мне рассказать вам секрет: иногда использование блокчейна похоже на разбивание ореха кувалдой… причём в шляпе из фольги. Сегодня мы разберёмся, почему погоня за децентрализацией любой ценой может оставить вас с очень дорогим мешком волшебных бобов. Когда у императора нет хэша Сторонники блокчейна заставят вас поверить, что каждому системе нужен распределённый реестр. Тем временем AWS вступил в чат: # Централизованная аутентификация пользователя (Какой ужас!) import sqlite3 def validate_user(user_id): conn = sqlite3....

23 мая 2025 06:00 · 3 минуты · 626 слов · Maxim Zhirnov
Почему учить ООП начинающих - все равно что давать бензопилу малышу

Почему учить ООП начинающих - все равно что давать бензопилу малышу

Представьте: вы пытаетесь научить кого-то готовить яичницу-болтунью. Вместо того чтобы начать с кастрюли, вы даёте ему набор для молекулярной гастрономии с шестнадцатью видами эмульгаторов и аппаратом для приготовления блюд методом су-вид. Именно это мы и делаем, когда сразу начинаем обучать новичков объектно-ориентированному программированию. Давайте разберём эту образовательную трагедию с той серьёзностью, которой она заслуживает. Лук ООП: слишком много слоёв для первого дня Когда я впервые столкнулся с ООП, я три дня пытался понять, почему мой класс Cat наследуется от Animal, но отказывается использовать интерфейс Food....

22 мая 2025 06:00 · 4 минуты · 657 слов · Maxim Zhirnov