Что такое «Магические числа?»(спойлер: к Гарри Поттеру они отношения не имеют) 🍷
Знакомая картина?
❓ Что такое 3 и 7? Статусы заказа? Коды ошибок? Разработчик, который писал это полгода назад, уже не вспомнит. А новому - придется гадать.
Магическое число - это число, вписанное прямо в код без пояснения, что оно означает. Оно «магическое», потому что его значение понятно только автору (и то не всегда).
Почему это плохо:
- Непонятно: читателю кода приходится искать документацию или лезть в историю коммитов
- Сложно менять: если число используется в 10 местах, а значение поменялось - правь везде, и не ошибись
- Легко сломать: случайно перепутал 3 и 4 - и логика поехала
Но это легко исправить, просто вынеси число в константу или enum:
Так что если число не равно 0, 1 или -1 и не очевидно из контекста - не ленись и дай ему имя!👀
Кстати, другие полезные советы про то как не надо писать код мы давали в нашем видео про то как не надо писать код➡️ https://youtu.be/a4fVPvDTYVQ
👍 — если было полезно, и сохранить не забудь, чтобы не магичить потом
#историческаясправкаMerion
Знакомая картина?
if status == 3:
send_email()
elif status == 7:
refund_order()
Магическое число - это число, вписанное прямо в код без пояснения, что оно означает. Оно «магическое», потому что его значение понятно только автору (и то не всегда).
Почему это плохо:
- Непонятно: читателю кода приходится искать документацию или лезть в историю коммитов
- Сложно менять: если число используется в 10 местах, а значение поменялось - правь везде, и не ошибись
- Легко сломать: случайно перепутал 3 и 4 - и логика поехала
Но это легко исправить, просто вынеси число в константу или enum:
ORDER_STATUS_PENDING_REFUND = 3
if order_status == ORDER_STATUS_PENDING_REFUND:
process_refund()
from enum import IntEnum
class OrderStatus(IntEnum):
CREATED = 1
PAID = 2
PENDING_REFUND = 3
REFUNDED = 4
if order.status == OrderStatus.PENDING_REFUND:
process_refund()
Так что если число не равно 0, 1 или -1 и не очевидно из контекста - не ленись и дай ему имя!
Кстати, другие полезные советы про то как не надо писать код мы давали в нашем видео про то как не надо писать код
#историческаясправкаMerion
Please open Telegram to view this post
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Абсолютные пути - как же это важно!
Сказал Сурен Хоренян и записал для вас новый видос, в котором объяснил, почему полагаться на рабочую папку - верный способ отловить баг в три ночи.
Изучаем, сохраняем, поддерживаем реакциями, если было полезно
| Вводные уроки по Python с Суреном |
Please open Telegram to view this post
VIEW IN TELEGRAM
Применять знания начал еще в процессе обучения. В итоге это помогло успешно провести переговоры с руководством и перейти на новую должность с повышением оклада.
В честном интервью Василия @ya_goodman: самодисциплина, правильные переговоры - и повышение оклада
Кстати, все знают, как попросить руководителя оплатить обучение?
#интервьюстудентовMerion
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM