Свежее Поиск
Общие форумы
Специализированные форумы
ПроцессорыРазгон и охлаждениеСистемные платыМодули памятиВидеосистемаTV- и FM-тюнеры, видеовход, видеовыходЦифровое видео: захват, монтаж, обработкаМониторы и другие устройства отображенияЦифровое фотоБеспилотные летательные аппаратыЦифровой звукProAudio: Профессиональное звуковое оборудованиеСтереосистемыДомашний кинотеатр: проигрыватели и источники сигналаДомашний кинотеатр: аудиосистемаДомашний кинотеатр: ТV и проекторыМагнитные и SSD накопителиОптические носители информацииСетевые носители информацииПериферияКорпуса, блоки питания, UPSСети, сетевые технологии, подключение к интернетуСистемное администрирование, безопасностьСерверыНоутбуки, нетбуки и ультрабукиПланшеты и электронные книгиМобильные телефоны, смартфоны, кпк, коммуникаторыМобильные гаджетыОператоры и технологии мобильной связиТелефония, телекоммуникации, офисные АТСБытовая техника
Программы
Игры
Авторские форумы
Прочие форумы
Форумы поддержки портала iXBT.com
Архивы конференции
Бесплатные объявления KOMOK.comАрхив "О Конференции"Архив "Процессоры"Архив "Разгон и охлаждение"Архив "Системные платы"Архив "Модули памяти"Архив "Видеосистема"Архив "Видеозахват"Архив "Мониторы и другие устройства отображения"Архив "Цифровое изображение"Архив "Цифровой звук"Архив "Периферия"Архив "Корпуса, блоки питания, UPS"Архив "Коммуникации: сети и сетевые технологии"Домашний интернет, модемы (архив)Архив "Системное администрирование, безопасность"Архив "Мобильная связь"Программы Microsoft: Windows, Office, Server, Windows LiveАрхив "OС и системное ПО"Архив "Программы: Интернет"Архив "Программирование"Форум прикладных программистовАрхив "Электронные устройства и компоненты"Архив "Околокомпьютерный Флейм & Общий"Архив "Полемика (Злобный Флейм)"Околоавтомобильный ФлеймФорум ремонтниковВопросы компании IntelФотокамеры SamsungФорум о магазине приложений RuStoreФорум по продукции компании Huawei
Справка и сервисы
Другие проекты iXBT.com
Страницы:Кликните, чтобы указать произвольную страницу123456899091далее
🔥 Конференции iXBT.com — 25+ лет! Мы ищем модераторов-волонтёров.
Если форум "Рынок труда в IT: образование, работа, карьера, зарплата" вам дорог — помогите его сохранить!

Почему это важно и что происходит?
Panda
Member
Автор темы
2404/12729 ответов, #6 в рейтинге
14 лет на iXBT, с июля 2011
Чаще пишет в "Политика" (37%)
Web-страница
Инфо Ответить
Panda Member Автор темы
  2 года назад / 28 марта 2024 20:26
(Это продолжение предыдущей темы)
1kvolt
Member
305/515 ответов, #9 в рейтинге
8 лет на iXBT, с марта 2017
Чаще пишет в "Тех. поддержка" (29%)
Россия, Мурманск
Инфо Ответить
1kvolt Member
2 года назад / 28 марта 2024 20:26
areex
которые не могут оценить гениальность спагетти-кода

Хорош уже. Нет там спагетти кода. Я не против претензий, наоборот, - но когда они по делу, как со стрелочками. Код-ревью тоже должно быть не личной оценкой "спагетти-неспагетти" или "индусский/неиндусский". А выявлять конкретные проблемы и может даже быть возможные варианты улучшения.
Т.е., если ты считаешь код "спагетти", укажи, почему. А в идеале укажи и что, по-твоему, можно улучшить, и как. Не в плане перепиши код, а в плане общей идеи. Типа, "Тут у тебя стопиццот ифов, нафига? Может, объединить часть из них в один со сложным условием или даже вообще на свитч переделать?" или "Смотри, я тыркаю стрелочки, и строка ввода превращается в говно. Это надо порешать".
areex
Member
1941/45694 ответов, #5 в рейтинге
23 года на iXBT, с февраля 2002
Чаще пишет в "Юмор" (50%)
Инфо Ответить
areex Member
2 года назад / 28 марта 2024 21:44
1kvolt
Хорош уже. Нет там спагетти кода. Я не против претензий, наоборот, - но когда они по делу, как со стрелочками. Код-ревью тоже должно быть не личной оценкой "спагетти-неспагетти" или "индусский/неиндусский".
Тут нет никакой личной оценки. Неструктурированный код, где каждая проблема обходится дополнительным условием - называется спагетти кодом. Я ничем тут тебе не могу помочь, в смысле определения.

А в идеале укажи и что, по-твоему, можно улучшить, и как.
В идеала надо использовать уже готовые либы, но у тебя это мамкин подход, так что идеала не будет.
Если этот вопрос считать просьбой сделать ревью, то я бы докопался до следующего:
Твоя функция состоит из трех разных частей - нарушается SRP. Т.е. это должна композиция трех функций собственно ввод, фильтр и запись в строку.
Во-вторых, в функции есть более одного варианта ошибки. Единственный способ выяснить что происходить, это изучать лог. У вызывающей стороны вообще нет возможности адекватно отреагировать на ошибку. + она еще и фигат в консоль, что может быть отдельной проблемой. Должно возвращать только код ошибки и указатель.
В-третьих, бесконечный цикл. Если бы твоя функция непрерывно потребляла данные, т.е. память была бы константой, то это не проблема. Но у тебя память жрется. Т.е. легко можно организовать утечку вообще всей памяти на компе, с неопределенным поведением остальных программ.
Ну, остальное уже вишенки. Если основное пофиксить, уже может и читаться лучше будет.

Добавление от 28.03.2024 21:44:

Распознавание лица на уровне, даже гайдзинов, которые, как известно, все на одно лицо. И общая база данных всех человеков, в том числе - туристов.
Насколько я слышал, в Москве распознавание уже работает. Вот только это не цифровизация, это тот самый гулаг, который ты не хочешь.

Тут можно трактовать
Нельзя. В вопросе не было просьбы ничего показать.

Я к тому, что код-ревью - это отнюдь не панацея.
Не знаю где ты у меня это вычитал, но это ты опять сам придумал. Не то, что не панацея, а оно вообще не про корректность. Ну т.е. человек иногда может заметить ошибку, но это точно не то место, где это надо делать. Не знаю зачем ты бегаешь за Локхидами. Весь код ядра линукса проходит ревью. 100%. И тем не менее уязвимости находят только в путь. Очередной не мамкин программист допустил двойное освобождение. https://www.youtube.com/watch?v=ixn5OygxBY4
Это не вопрос судей. Это вопрос подхода - невозможно так писать надежный код. Не годится язык си для этого. Повторять те же действия и ожидать другой результат это определение безумия.
Panda
Member
Автор темы
3434/17698 ответов, #6 в рейтинге
14 лет на iXBT, с июля 2011
Чаще пишет в "Политика" (37%)
Web-страница
Инфо Ответить
Panda Member Автор темы
2 года назад / 28 марта 2024 21:49
ревью не всегда ревью. Кто-то на отступы, внимание акцентирует, кто-то на название не такое, и на простоту кода, а на саму суть внимание уже уходит налево.
s1b
unregistered
Ответить
s
s1b unregistered
2 года назад / 28 марта 2024 22:01
1kvolt
Распознавание лица на уровне, даже гайдзинов, которые, как известно, все на одно лицо. И общая база данных всех человеков, в том числе - туристов.

Про турстов - очен сомневаюсь, а вот постоянно там живущие русские знакомые постоянно ноют, что их белые рожи на отрез отказывается распознавать. Хотя они там ВНЖ имеют и все документы.


Кстати, от чуваков, живущих в Китае несколько лет и нативных китайцев идёт инфа, что социальный рейтинг - миф.

Социальный рейтинг есть, но не в таком виде, в котором его туристы описывают обычно. У нас, в США, тоже есть "социальный рейтинг", только называется не "социальный", а "кредитный". Если его пролюбить - даже нормальное жилье хрен снимешь.
Panda
Member
Автор темы
3435/17701 ответов, #6 в рейтинге
14 лет на iXBT, с июля 2011
Чаще пишет в "Политика" (37%)
Web-страница
Инфо Ответить
Panda Member Автор темы
2 года назад / 28 марта 2024 22:04
s1b
а вот постоянно там живущие русские знакомые постоянно ноют, что их белые рожи на отрез отказывается распознавать.
оно проблема тех рож, и не больше.
1kvolt
Member
306/516 ответов, #9 в рейтинге
8 лет на iXBT, с марта 2017
Чаще пишет в "Тех. поддержка" (29%)
Россия, Мурманск
Инфо Ответить
1kvolt Member
2 года назад / 28 марта 2024 23:25
areex
Тут нет никакой личной оценки. Неструктурированный код, где каждая проблема обходится дополнительным условием - называется спагетти кодом. Я ничем тут тебе не могу помочь, в смысле определения.

И какие же именно проблемы обходятся дополнительными условиями? Можно немного конкретики?

В идеала надо использовать уже готовые либы, но у тебя это мамкин подход, так что идеала не будет.

Ты не учитываешь, что я любитель - я пишу что-то не для того, чтобы побырому срубить денег, а потому что мне это доставляет, и потому что мне интересно разобраться, как оно работает. Я в курсе про всякие либы и я сознательно их избегаю. Чтобы понять, чтобы научиться самому.
А во-вторых, кто-то же пишет эти либы, они не самозарождаются. Ты не хочешь их писать, Hance не хочет, Panda не хочет, s1b занят, у Reasonable нет достойного компа и денег на него... Ну и кто в итоге, если не я?
Вот и накалякал вам фукцию.

Если этот вопрос считать просьбой сделать ревью, то я бы докопался до следующего:
Твоя функция состоит из трех разных частей - нарушается SRP. Т.е. это должна композиция трех функций собственно ввод, фильтр и запись в строку.
Во-вторых, в функции есть более одного варианта ошибки. Единственный способ выяснить что происходить, это изучать лог. У вызывающей стороны вообще нет возможности адекватно отреагировать на ошибку. + она еще и фигат в консоль, что может быть отдельной проблемой. Должно возвращать только код ошибки и указатель.
В-третьих, бесконечный цикл. Если бы твоя функция непрерывно потребляла данные, т.е. память была бы константой, то это не проблема. Но у тебя память жрется. Т.е. легко можно организовать утечку вообще всей памяти на компе, с неопределенным поведением остальных программ.


1) Тут нужно знать меру ИМХО. Да, разбитие на функции для конкретных задач - хорошая идея. Но ровно до тех пор, пока она не становится плохой идеей.
В данном конкретном случае это функция получения фильтрованной строки ввода от пользователя. Её нет смысла разбивать, потому что она выполняет определённую конкретную задачу. В итоговом коде, откуда она вызывается, это выглядит так:
1UserStr = GetUserWideString();
Это просто, удобно и понятно. Ты можешь вписать в неё фильтры или слегка модифицировать, чтобы передавать фильтры в параметрах - и всё.
2) Фигачит в консоль - это же очевидная затычка. Вставь вместо этого вызов любой своей функции обработки ошибки.
3) Цикл не бесконечный, условие выхода есть. Хочешь ограничить пользователя конечным буфером ввода? Для этого есть функции стандартной либы, задача же этой функции как раз в том, чтобы ограничивать только размером доступной свободной памяти. Упрекать функцию в том, что она не решает задачу, которая перед ней изначально не ставилась?
Поведение остальных программ - это проблема остальных программ и ОС, которая распределяет ресурсы. В моей функции утечки памяти нет, если использующий её программист не полный додик.

Насколько я слышал, в Москве распознавание уже работает. Вот только это не цифровизация, это тот самый гулаг, который ты не хочешь.


Речь не столько о распознавании, сколько о взаимодействии госструктур и общенациональных базах данных.

Весь код ядра линукса проходит ревью. 100%. И тем не менее уязвимости находят только в путь. Очередной не мамкин программист допустил двойное освобождение.

Ага, я подписан на чувака, видел это видео. Кроса...ги, чо. Тоже небось не вставили проверки, чтобы не увеличивать цикломатическую сложность.

s1b
Про турстов - очен сомневаюсь, а вот постоянно там живущие русские знакомые постоянно ноют, что их белые рожи на отрез отказывается распознавать. Хотя они там ВНЖ имеют и все документы.

Ну не всё идеально конечно. И всё же огромный разрыв по сравнению с РФ.

Социальный рейтинг есть, но не в таком виде, в котором его туристы описывают обычно. У нас, в США, тоже есть "социальный рейтинг", только называется не "социальный", а "кредитный". Если его пролюбить - даже нормальное жилье хрен снимешь.

Грят, сейчас в Европах вводят не менее, если не более, жёсткий контроль и социальный рейтинг. ЕМНИП особенно на Скандинавию жалуются. Но это не точно.
А кредитный в США - это вообще беспредел, если судить по описанию одного человека с другого форума, с которым я общался на эту тему. Натуральное финансовое рабство.
s1b
unregistered
Ответить
s
s1b unregistered
2 года назад / 28 марта 2024 23:38
1kvolt
s1b занят

Не, мы ж уже выяснили, я просто не умею ничего. Я даже половину терминологии на русском (и других яхыках, которыми практически не пользуюсь) не знаю.

А если серьезно - вполне себе пишу, только не в опенсорс. За деньги - да. Собственно, прошлый год у меня почти весь прошел за написанием либ и драйверов, в основном под FreeRTOS писал.


А кредитный в США - это вообще беспредел, если судить по описанию одного человека с другого форума, с которым я общался на эту тему. Натуральное финансовое рабство.

Если оплачивать все вовремя - вообще никаких проблем и появляется целая куча всяких бонусов. Если пользоваться деньгами в долг и не гасить долги - и на телефон нормальный тариф не подключить, и нормальное жилье не арендовать, и вообще куча проблем. На мой взгляд - это совершенно правильно.
Hance
Member
1585/35290 ответов, #1 в рейтинге
24 года на iXBT, с февраля 2001
108 фото на iXBT.photo
Чаще пишет в "Политика" (52%)
Ватикан
Инфо Ответить
Hance Member
2 года назад / 29 марта 2024 00:10
1kvolt
а что ты хочешь - опиши в виде стори, юзкейсов, ФТ, НФТ

Добавление от 29.03.2024 00:10:

зачем тебе вообще массив, когда есть строка?

01#include <iostream>
02#include <string>
03#include <conio.h>
04using namespace std;
05  
06string readWideChars() {
07    string input;
08    char charIn;
09    while (true) {
10        charIn = _getch();
11        switch (charIn) {
12            case '\r': // Enter
13                return input;
14            case '\x1B': // ESC
15                input = "";
16                return input;
17            case '\b': // Backspace
18                if (!input.empty()) {
19                    cout << "\b \b";
20                    input.pop_back();
21                }
22                break;
23            default:
24                if (isalpha(charIn)) {
25                    cout << charIn;
26                    input.push_back(charIn);
27                }
28                break;
29        }
30    }
31}
32  
33string getUserWideString() {
34    string input = readWideChars();
35    return input.empty() ? "" : input;
36}
37  
38int main() {
39    string userInput = getUserWideString();
40    cout << "\nUser Input: " << userInput << endl;
41    return 0;
42}
1kvolt
Member
307/517 ответов, #9 в рейтинге
8 лет на iXBT, с марта 2017
Чаще пишет в "Тех. поддержка" (29%)
Россия, Мурманск
Инфо Ответить
1kvolt Member
2 года назад / 29 марта 2024 00:21
s1b
За деньги - да. Собственно, прошлый год у меня почти весь прошел за написанием либ и драйверов, в основном под FreeRTOS писал.
Ну я и говорю - занят. Кто вообще знает, что это за зверь - FreeRTOS?

Если оплачивать все вовремя - вообще никаких проблем и появляется целая куча всяких бонусов. Если пользоваться деньгами в долг и не гасить долги - и на телефон нормальный тариф не подключить, и нормальное жилье не арендовать, и вообще куча проблем. На мой взгляд - это совершенно правильно.

Не, он когда переехал - были проблемы сначала, пока положительного рейтинга не было. Потом-то проще стало, инженер, нормальная денежная работа, стабильный доход...
Ну а вообще эта привязка к банкам и особенно к кредитам - долговое рабтсво, ни больше, ни меньше. Ужос, ужос...

Добавление от 29.03.2024 00:21:

Hance
зачем тебе вообще массив, когда есть строка?

Выглядит как С++. Я пока останусь с С, спасибо.
И разве строка в С++ - это не сладкая сахарная обёрточка вокруг того же массива?

а что ты хочешь - опиши в виде стори, юзкейсов, ФТ, НФТ

Я не понял вопроса, извини. Что именно описать? И что это за страшные слова?
Hance
Member
1586/35291 ответов, #1 в рейтинге
24 года на iXBT, с февраля 2001
108 фото на iXBT.photo
Чаще пишет в "Политика" (52%)
Ватикан
Инфо Ответить
Hance Member
2 года назад / 29 марта 2024 00:29
01#include <iostream>
02#include <cstdlib>
03#include <conio.h>
04using namespace std;
05  
06char* readWideChars() {
07    const int initialBufferSize = 100;
08    int bufferSize = initialBufferSize;
09    char* buffer = (char*)malloc(bufferSize * sizeof(char));
10    int bufferIndex = 0;
11    char charIn;
12    while (true) {
13        charIn = _getch();
14        switch (charIn) {
15            case '\r': // Enter
16                buffer[bufferIndex] = '\0';
17                return buffer;
18            case '\x1B': // ESC
19                buffer[0] = '\0';
20                return buffer;
21            case '\b': // Backspace
22                if (bufferIndex > 0) {
23                    bufferIndex--;
24                    cout << "\b \b";
25                }
26                break;
27            default:
28                if (isalpha(charIn)) {
29                    if (bufferIndex == bufferSize - 1) {
30                        buffer = twiceBuffer(buffer);
31                        bufferSize *= 2;
32                    }
33                    buffer[bufferIndex] = charIn;
34                    cout << charIn;
35                    bufferIndex++;
36                }
37                break;
38        }
39    }
40}
41  
42char* twiceBuffer(char* buffer) {
43    int currentSize = strlen(buffer);
44    int newSize = currentSize * 2;
45    char* newBuffer = (char*)realloc(buffer, newSize * sizeof(char));
46    if (newBuffer == nullptr) {
47        free(buffer);
48        cout << "Memory reallocation failed." << endl;
49        exit(1);
50    }
51    return newBuffer;
52}
53  
54char* getUserWideString() {
55    return readWideChars();
56}
57  
58int main() {
59    char* userInput = getUserWideString();
60    cout << "\nUser Input: " << userInput << endl;
61    free(userInput);
62    return 0;
63}

Добавление от 29.03.2024 00:29:

тебе прям Си...

01#include <stdio.h>
02#include <stdlib.h>
03#include <conio.h>
04#include <ctype.h>
05  
06char* readWideChars() {
07    const int initialBufferSize = 100;
08    int bufferSize = initialBufferSize;
09    char* buffer = (char*)malloc(bufferSize * sizeof(char));
10    int bufferIndex = 0;
11    char charIn;
12    while (1) {
13        charIn = _getch();
14        switch (charIn) {
15            case '\r': // Enter
16                buffer[bufferIndex] = '\0';
17                return buffer;
18            case '\x1B': // ESC
19                buffer[0] = '\0';
20                return buffer;
21            case '\b': // Backspace
22                if (bufferIndex > 0) {
23                    bufferIndex--;
24                    printf("\b \b");
25                }
26                break;
27            default:
28                if (isalpha(charIn)) {
29                    if (bufferIndex == bufferSize - 1)
30                        twicebuffer(buffer, &bufferSize);
31                    buffer[bufferIndex] = charIn;
32                    printf("%c", charIn);
33                    bufferIndex++;
34                }
35                break;
36        }
37    }
38}
39  
40void twiceBuffer(char* buffer, int* bufferSize) {
41    bufferSize *=2;
42    char* newBuffer = (char*)realloc(buffer, bufferSize * sizeof(char));
43    if (newBuffer == NULL) {
44        free(buffer);
45        printf("Memory reallocation failed.\n");
46        exit(1);
47    }
48    return;
49}
50  
51int main() {
52    char* userInput = readWideChars();
53    printf("\nUser Input: %s\n", userInput);
54    free(userInput);
55    return 0;
56}

Исправлено: Hance, 29.03.2024 08:47

1kvolt
Member
308/518 ответов, #9 в рейтинге
8 лет на iXBT, с марта 2017
Чаще пишет в "Тех. поддержка" (29%)
Россия, Мурманск
Инфо Ответить
1kvolt Member
2 года назад / 29 марта 2024 00:46
Hance

Не пойму, чего ты пытаешься добиться? Переписать МОЮ функцию, используя ЧатГПТ? Чтобы что?

Добавление от 29.03.2024 00:44:

Кстати, isalpha() не работает нормально с wchar_t. Пичалька, надо самому фильтр писать, если надо.

Добавление от 29.03.2024 00:46:

Hance
char* getUserWideString() {
    return readWideChars();
}


А вот это зачем? В чём глубинный смысл обернуть вызов функции в другую функцию?
areex
Member
1942/45695 ответов, #5 в рейтинге
23 года на iXBT, с февраля 2002
Чаще пишет в "Юмор" (50%)
Инфо Ответить
areex Member
2 года назад / 29 марта 2024 01:04
1kvolt
И какие же именно проблемы обходятся дополнительными условиями? Можно немного конкретики?
Да вся твоя функция это обход очередной проблемы очередной проверкой.

Ты не учитываешь, что я любитель - я пишу что-то не для того, чтобы побырому срубить денег, а потому что мне это доставляет
Да ради бога, мне все равно уже эта тема надоела. Если тебе все нравиться, то и ок.

1) Тут нужно знать меру ИМХО. Да, разбитие на функции для конкретных задач - хорошая идея. Но ровно до тех пор, пока она не становится плохой идеей.

Эта фраза не имеет смысла.

Грят, сейчас в Европах вводят не менее, если не более, жёсткий контроль и социальный рейтинг.
1kvolt
Member
309/519 ответов, #9 в рейтинге
8 лет на iXBT, с марта 2017
Чаще пишет в "Тех. поддержка" (29%)
Россия, Мурманск
Инфо Ответить
1kvolt Member
2 года назад / 29 марта 2024 01:10
areex
Да вся твоя функция это обход очередной проблемы очередной проверкой.

И всё же? Какая проблема?

Эта фраза не имеет смысла.

Эта фраза имеет смысл.
Hance
Member
1587/35292 ответов, #1 в рейтинге
24 года на iXBT, с февраля 2001
108 фото на iXBT.photo
Чаще пишет в "Политика" (52%)
Ватикан
Инфо Ответить
Hance Member
2 года назад / 29 марта 2024 09:29
1kvolt
Переписать МОЮ функцию, используя ЧатГПТ? Чтобы что?
Ты не понимаешь разницу?
Твоя функция создаёт высокую ментальную нагрузку когда её читаешь. Про метрики тебе уже сказали. По нарушение принципа единой ответственности тоже

Добавление от 29.03.2024 08:17:

Увеличение массива на 1 будет часто приводить к копированию его в свободное место. Тогда лучше выделять место с запасом.
Или использовать не malloc а new но это уже c++

Добавление от 29.03.2024 08:19:

1kvolt
isalpha() не работает нормально с wchar_t.
#include <wctype.h>
#include <locale.h>

setlocale(LC_ALL, ""); // Установка локали для корректной работы с широкими символами

Добавление от 29.03.2024 08:27:

1kvolt
char* getUserWideString() {
    return readWideChars();
}


А вот это зачем? В чём глубинный смысл обернуть вызов функции в другую функцию?

Осталось после рефакторинга. Не нужно

Исправлено: Hance, 29.03.2024 09:06

Добавление от 29.03.2024 09:28:

https://habr.com/ru/articles/565652/

Добавление от 29.03.2024 09:29:

Про оценки сложности
areex
Member
1943/45696 ответов, #5 в рейтинге
23 года на iXBT, с февраля 2002
Чаще пишет в "Юмор" (50%)
Инфо Ответить
areex Member
2 года назад / 29 марта 2024 09:57
Cognitive Complexity
15 (все остальные языки)
25 (семейство C-языков)
Это чё? Численное доказательство, что все си-подобные языки говно?
1kvolt
Member
310/520 ответов, #9 в рейтинге
8 лет на iXBT, с марта 2017
Чаще пишет в "Тех. поддержка" (29%)
Россия, Мурманск
Инфо Ответить
1kvolt Member
2 года назад / 29 марта 2024 13:05
Hance
#include <wctype.h>
#include <locale.h>

setlocale(LC_ALL, ""); // Установка локали для корректной работы с широкими символами


Я знаю про локали и, конечно же, установил её как надо. Тем не менее isalpha() не обрабатывает корректно некоторые буквы русского алфавита. Во всяком случае, у меня так.

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

Не создаёт. И принцип не нарушает. Есть задача, функция её выполняет.
Что действительно создаёт высокую ментальную нагрузку, так это неуёмная страсть к разбиению всего и вся на мелкие функции без всякой надобности.
Про метрики я уже ответил.
Hance
Member
1588/35295 ответов, #1 в рейтинге
24 года на iXBT, с февраля 2001
108 фото на iXBT.photo
Чаще пишет в "Политика" (52%)
Ватикан
Инфо Ответить
Hance Member
2 года назад / 29 марта 2024 14:56
1kvolt
тебе нельзя работать команде
код ревью не пройдешь попросту
1kvolt
Member
311/521 ответов, #9 в рейтинге
8 лет на iXBT, с марта 2017
Чаще пишет в "Тех. поддержка" (29%)
Россия, Мурманск
Инфо Ответить
1kvolt Member
2 года назад / 29 марта 2024 15:14
Hance
тебе нельзя работать команде
код ревью не пройдешь попросту


И кто же мне запретит (гипотетически) работать в команде?

Про код ревью я уже всё написал areex. Если код-ревью состоит из оценки "Это индусский спагетти-код, потому что ятакщетаю, и потому что я ниacилил два маллока и один маленький свитч", то невелика потеря, польза такого код-ревью равна нулю.
Hance
Member
1589/35297 ответов, #1 в рейтинге
24 года на iXBT, с февраля 2001
108 фото на iXBT.photo
Чаще пишет в "Политика" (52%)
Ватикан
Инфо Ответить
Hance Member
2 года назад / 29 марта 2024 15:21
1kvolt
польза такого код-ревью равна нулю.
Тогда вычеркиваю
areex
Member
1944/45697 ответов, #5 в рейтинге
23 года на iXBT, с февраля 2002
Чаще пишет в "Юмор" (50%)
Инфо Ответить
areex Member
2 года назад / 29 марта 2024 15:39
1kvolt
И кто же мне запретит (гипотетически) работать в команде?
Потому что, если ты работаешь в команде, то ты просто не сможешь физически выполнить мерж, пока не получишь одобрение ревьювера. Ты можешь считать пользу от ревью нулем, ты можешь считать свой код гениальным, а всех м......., но в конечный продукт твой код не попадет.
1kvolt
Member
312/522 ответов, #9 в рейтинге
8 лет на iXBT, с марта 2017
Чаще пишет в "Тех. поддержка" (29%)
Россия, Мурманск
Инфо Ответить
1kvolt Member
2 года назад / 29 марта 2024 16:12
areex
Потому что, если ты работаешь в команде, то ты просто не сможешь физически выполнить мерж, пока не получишь одобрение ревьювера. Ты можешь считать пользу от ревью нулем, ты можешь считать свой код гениальным, а всех м......., но в конечный продукт твой код не попадет.

Зависит от команды, ревьюера и разных других факторов. Правильно было бы всё же написать "Тебе нельзя работать в НАШЕЙ команде", а не обобщать на все команды вообще. То, что Hance вычеркнул меня из своей команды, отнюдь не означает, что я не найду другую. Или даже не создам свою с блэкджеком и шлюхами.
areex
Member
1945/45698 ответов, #5 в рейтинге
23 года на iXBT, с февраля 2002
Чаще пишет в "Юмор" (50%)
Инфо Ответить
areex Member
2 года назад / 29 марта 2024 16:41
1kvolt
Зависит от команды, ревьюера и разных других факторов.
Разумеется. Если пойдешь к панде, там может даже кодревью не будешь проходить, я его там понял по крайней мере. Вопрос хорошо это или плохо каждый уже решает сам.
Ваш ответ:

Нет значка Нет значка Вот тут! Лампочка Восклицание Вопрос Класс! Улыбка Злость Огорчение Поговорим? Краснею Подмигивание Ругаю ОдобряюBIUdelSxsupxsuboffsp spoilerqurlimgvideo• list1. list1 codeprecenter-hr-rusQWE→ЙЦУ
файлыочистить
Ваше имя: Авторизуйтесь Предпросмотр В полную форму
вставить выделенную цитату в окно ответа
Оставьте свою реакцию на сообщение
Ваши лимиты: 5 реакций/сутки
(купите Premium, чтобы увеличить)
Оставьте свою реакцию на сообщение
Ваши лимиты: 5 реакций/сутки
(купите Premium, чтобы увеличить)
Страницы:Кликните, чтобы указать произвольную страницу123456899091далее
Последние обсуждения в Конференции
03:04Электромобили - грядет революция? Авто
03:00Выбор SSD Накопители
02:59Новостная лента ИИ ИИ
02:52Выбор увлажнителя воздуха Бытовая техника
02:48Кто-то хочет в СССР? История
02:47Иммиграция. Как выжить за рубежом? Общий
02:42NiMH аккумуляторы и зарядные устройства для них Фото
02:40Будет ли война России с Украиной? Политика
02:33Мой опыт строительства бюджетного деревянного дома Ремонт
02:31Обзор на механический гироскоп из Китая Рынок
02:27Виски (ранее: Сорта шотландского виски. Личные впечатления. Просьба дополнять и задавать вопросы.) Кулинария
02:27Path of Exile. Ищем Создателя в новом Атласе в 3.26 13 июня 2025-го и чистим абиссы в 0.3 в двойке 29 августа! Игры
02:15Качество кодирования Nvidia NVENC Видеозахват
02:11Бег, бег и ещё раз бег Спорт
02:02Предел техпроцесса Процессоры
02:00Тихий/бесшумный компьютер. Разгон
02:00NVIDIA DLSS, AMD FSR, Intel XeSS и прочие "upscale"-технологии: вежливый холивар Видеосистема
01:59Copilot key (кнопка Copilot) как от нее избавиться и вернуть Ctrl ? OС и сист. ПО
01:49Реанимация microSD Card Память
01:46Что нам не нравится в продукции Apple? Недостатки, косяки, баги, недоразумения. MacLife
02:54Рестайлинговый Land Rover Discovery Sport 2025 появился у российских дилеров: британский премиум по цене от 6 млн рублей
02:25В России представили новые зимние шины Gislaved с «корнями» Continental и Bridgestone
02:0832 GPU, 768 ГБ видеопамяти и 10,8 кВт мощности. Sparkle представила сервер на базе 16 видеокарт Intel Arc Pro B60 Dual
22:18вчераBlue Origin доставила ускоритель New Glenn на стартовый комплекс для миссии NASA к Марсу
21:20вчераИ BMW, как и Tesla, обогнал Mercedes по продажам
20:33вчераВ Россию из Европы приехал Skoda Kodiaq с дизельным мотором, а также принимаются заказы на версии с бензиновым 190-сильным мотором и полным приводом: цены немалые
20:28вчераGoogle Chrome, Safari и Microsoft Edge больше не одиноки: Mozilla добавила в Firefox профили
20:13вчераКомета C/2025 A6 (Lemmon) даёт последний шанс увидеть её в октябрьском вечернем небе
20:10вчераДвухметровые кровати, душ, экраны и USB-разъёмы: на российские железные дороги вышли новые вагоны СВ
20:01вчераКома межзвёздной кометы 3I/ATLAS подтвердила новую теорию формирования комет