-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathexample-code.py
More file actions
85 lines (62 loc) · 2.27 KB
/
example-code.py
File metadata and controls
85 lines (62 loc) · 2.27 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
"""
Пример Python кода для демонстрации анализа SonarQube
Содержит намеренные проблемы для демонстрации возможностей
"""
def calculate_sum(a, b):
"""Простая функция сложения"""
return a + b
def process_data(data):
"""Обработка данных с проблемами качества кода"""
result = []
# TODO: добавить валидацию входных данных
for i in range(len(data)): # можно использовать enumerate
if data[i] > 0:
result.append(data[i] * 2)
return result
def unused_function():
"""Неиспользуемая функция (dead code)"""
print("This is never called")
def complex_function(x, y, z):
"""Функция с высокой когнитивной сложностью"""
if x > 0:
if y > 0:
if z > 0:
return x + y + z
else:
return x + y
else:
if z > 0:
return x + z
else:
return x
else:
return 0
def function_with_bugs(user_input):
"""Функция с потенциальными багами"""
# Уязвимость: eval с пользовательским вводом
result = eval(user_input) # ОЧЕНЬ плохая практика!
# Неиспользуемая переменная
unused_var = "this is never used"
# Дублирование кода
if result > 100:
print("Result is large")
print(f"Value: {result}")
elif result > 50:
print("Result is medium")
print(f"Value: {result}")
else:
print("Result is small")
print(f"Value: {result}")
return result
class BadExample:
"""Класс с проблемами стиля"""
def __init__(self):
pass # пустой конструктор
def method1(self, x):
return x * 2
def method1(self, x, y): # дублирование имени метода
return x * y
if __name__ == "__main__":
data = [1, 2, 3, -1, 4, 5]
result = process_data(data)
print(f"Result: {result}")