Код запаха 157 — Баланс на 0

Сегодня я ожидал платеж в своем кошельке. Баланс был равен 0. Я запаниковал.

TL;DR: Null — это не 0. Ошибка — это не 0. Просто 0 — это 0.

Проблемы

  • Нули

  • UX

  • Юзабилити

Решения

  1. Проведите четкое различие между нулем и ошибкой.

Контекст

Я много читаю о вопросах безопасности.

Особенно о криптовалютах.

На прошлой неделе я прочитал о потоке взлома криптовалюты.

Когда мой кошелек показал мне 0 в качестве баланса, я запаниковал.

Это был просто запах UX.

Блокчейн был недоступен 💩.

Код образца

Неправильный

"""
Below code is automatically generated by code-davinci-002 on GTP3 Codex

1. check balance with blokchain
2. If blockchain is unreachable show 0 as the balance
"""

import requests
import json

def get_balance(address):
    url = "https://blockchain.info/q/addressbalance/" + address
    response = requests.get(url)
    if response.status_code == 200:
        return response.text
    else:
        return 0      



Вход в полноэкранный режим Выйти из полноэкранного режима

Правильно

"""
Below code is automatically generated by code-davinci-002 on GTP3 Codex

1. check balance with blockchain
2. If blockchain is unreachable throw an error
"""

import requests
import json

def get_balance(address):
    url = "https://blockchain.info/q/addressbalance/" + address
    response = requests.get(url)
    if response.status_code == 200:
        return response.text
    else:
        raise BlockchainNotReachableError("Error reaching blockchain")
Войти в полноэкранный режим Выход из полноэкранного режима

Обнаружение

[X] Вручную

Это запах дизайна.

Мы можем обнаружить закономерности, когда исключение или код возврата выбрасывается и маскируется значением 0.

Теги

  • UX

Заключение

Всегда руководствуйтесь принципом наименьшего удивления.

Отношения

Запах кода 12 — Null

Maxi Contieri ・ Oct 31 ’20 ・ 2 min read

#codenewbie #tutorial #oop

Code Smell 139 — Бизнес-код в пользовательском интерфейсе

Maxi Contieri ・ Jun 9 ・ 3 min read

#oop #webdev #javascript #новички

Code Smell 73 — Исключения для ожидаемых случаев

Maxi Contieri ・ May 31 ’21 ・ 2 min read

#webdev #codenewbie #cleancode #oop

Code Smell 72 — Коды возврата

Maxi Contieri ・ May 28 ’21 ・ 2 min read

#webdev #программирование #codenewbie #учебник

Дополнительная информация

Null: Ошибка на миллиард долларов

Maxi Contieri ・ Nov 18 ’20 ・ 6 min read

#codenewbie #учебник #программирование #webdev

Кредит

Фото Jasmin Sessler on Unsplash

Отказ от ответственности

Запахи кода — это только мое мнение.

Моя реальная критика Null заключается в том, что он возвращает ненужные муки выбора между быстрым запуском программы без проверки и медленным запуском с проверкой.

Тони Хоар (изобретатель Null)

Программная инженерия Великие цитаты

Maxi Contieri ・ Dec 28 ’20 ・ 13 min read

#codenewbie #программирование #цитаты #программное обеспечение

Эта статья является частью серии CodeSmell.

Как найти зловонные части вашего кода

Maxi Contieri ・ May 21 ’21 ・ 7 min read

#codenewbie #учебник #качество кода #новички

Оцените статью
devanswers.ru
Добавить комментарий