TG Telegram Group & Channel
Python/ django | United States America (US)
Create: Update:

🖥 Как написать ещё более ужасный Python-код: часть 2

Первая часть - Как написать худший возможный Python-код здесь.

Если тебе показалось, что хуже уже некуда — ты просто не включал всё сразу.

Вот продолжение правил, которые гарантируют страдания будущих читателей твоего кода.

14. Используй side‑effects везде
Изменяй список внутри функции, возвращай None, пусть никто не знает, что произошло.


def corrupt(data):
for i in range(len(data)):
data[i] = None

15. Ломай SRP (Single Responsibility Principle)
Пусть одна функция отправляет запрос, пишет лог, делает retry, парсит ответ и сохраняет в БД.


def handle_user_request(request):
log_request(request)
try:
response = requests.post(...)
save_to_db(json.loads(response.text)["data"])
except:
retry_later(request)


16. Используй вложенные функции ради хаоса
Функции в функциях в функциях. Замыкания? Да, но не ради пользы, а ради анархии.


def outer():
def middle():
def inner():
print("deep")
inner()
middle()


17. Импортируй всё звёздочкой
Пусть никто не знает, откуда приходят функции. Магия.


from somewhere.unknown import *


18. Используй случайную логику
Добавь random в бизнес-функции. Почему бы и нет?


import random

def calculate_discount():
return random.choice([0, 5, 10, 50])


19. Используй структуры не по назначению
Сохраняй все данные в строках. JSON, XML, дата, числа — всё строкой.


user = {
"name": "Alice",
"age": "27",
"is_active": "true",
"joined": "2023-12-01"
}


20. Игнорируй ошибки
Тихо, мирно, try/except без except. Или просто pass. Не паникуй.



try:
do_critical_operation()
except:
pass


21. Логируй всё подряд
Каждый шаг. Каждую переменную. Каждую мысль.


print("entering loop")
print("value of x:", x)
print("loop end")


22. Используй глобальные настройки через переменные
Никаких config-файлов. Пусть все настройки — глобальные переменные.


DEBUG_MODE = True
RETRY_COUNT = 3

23. Пиши асинхронный код синхронно
async с time.sleep, await с requests.get. Главное — выглядеть современно.


import time

async def fetch_data():
time.sleep(3)
return "data"

24. Храни всё в одной функции
1000 строк? Один def main(). Абсолютно всё. Другие функции — для слабаков.


def main():
# 600 строк бизнес-логики
pass



🧠 Заключение

Если ты следуешь этим правилам — ты либо пишешь код, который никто не осмелится менять,
либо работаешь на тёмной стороне. Но лучше всё же пересмотреть подход.

"Simple is better than complex.
Complex is better than complicated.
Readability counts."
— The Zen of Python

@pythonl

🖥 Как написать ещё более ужасный Python-код: часть 2

Первая часть - Как написать худший возможный Python-код здесь.

Если тебе показалось, что хуже уже некуда — ты просто не включал всё сразу.

Вот продолжение правил, которые гарантируют страдания будущих читателей твоего кода.

14. Используй side‑effects везде
Изменяй список внутри функции, возвращай None, пусть никто не знает, что произошло.


def corrupt(data):
for i in range(len(data)):
data[i] = None

15. Ломай SRP (Single Responsibility Principle)
Пусть одна функция отправляет запрос, пишет лог, делает retry, парсит ответ и сохраняет в БД.


def handle_user_request(request):
log_request(request)
try:
response = requests.post(...)
save_to_db(json.loads(response.text)["data"])
except:
retry_later(request)


16. Используй вложенные функции ради хаоса
Функции в функциях в функциях. Замыкания? Да, но не ради пользы, а ради анархии.


def outer():
def middle():
def inner():
print("deep")
inner()
middle()


17. Импортируй всё звёздочкой
Пусть никто не знает, откуда приходят функции. Магия.


from somewhere.unknown import *


18. Используй случайную логику
Добавь random в бизнес-функции. Почему бы и нет?


import random

def calculate_discount():
return random.choice([0, 5, 10, 50])


19. Используй структуры не по назначению
Сохраняй все данные в строках. JSON, XML, дата, числа — всё строкой.


user = {
"name": "Alice",
"age": "27",
"is_active": "true",
"joined": "2023-12-01"
}


20. Игнорируй ошибки
Тихо, мирно, try/except без except. Или просто pass. Не паникуй.



try:
do_critical_operation()
except:
pass


21. Логируй всё подряд
Каждый шаг. Каждую переменную. Каждую мысль.


print("entering loop")
print("value of x:", x)
print("loop end")


22. Используй глобальные настройки через переменные
Никаких config-файлов. Пусть все настройки — глобальные переменные.


DEBUG_MODE = True
RETRY_COUNT = 3

23. Пиши асинхронный код синхронно
async с time.sleep, await с requests.get. Главное — выглядеть современно.


import time

async def fetch_data():
time.sleep(3)
return "data"

24. Храни всё в одной функции
1000 строк? Один def main(). Абсолютно всё. Другие функции — для слабаков.


def main():
# 600 строк бизнес-логики
pass



🧠 Заключение

Если ты следуешь этим правилам — ты либо пишешь код, который никто не осмелится менять,
либо работаешь на тёмной стороне. Но лучше всё же пересмотреть подход.

"Simple is better than complex.
Complex is better than complicated.
Readability counts."
— The Zen of Python

@pythonl
Please open Telegram to view this post
VIEW IN TELEGRAM


>>Click here to continue<<

Python/ django




Share with your best friend
VIEW MORE

United States America Popular Telegram Group (US)