170 похожих чатов

Мне тут любопытно стало. А существуют ли линтеры/анализаторы которые проверяют

код на соответствие clean architecture?

21 ответов

22 просмотра

С технической стороны, это реализовать реально?

жалуются когда функция длиннее 4 строк?

Кстати, есть какой-то пакет, в котором настраиваешь какой слой какие импорты может юзать и если ты импортнешь в слой домена какую-то сторонню фигню, то он будет жаловаться. Вот правда название не помню

Нужен ИИ на базе дядюшки Боба. :-D

Георгий
И больше 2х аргументов

ну тут просто, засунуть всё в классы, и всюду один аргумент — self

Alex- Автор вопроса
Artem
Кстати, есть какой-то пакет, в котором настраиваеш...

я просто почему спрашиваю - на днях увидел доклад и там чел рассказал в т.ч. про свой линтер анализирующий сложность кода. Вот и подумалось про чистую архитектуру https://github.com/wemake-services/wemake-python-styleguide

Alex
я просто почему спрашиваю - на днях увидел доклад ...

wemake — это классика. Там есть всё это включить, код писать вообще страшно становится.

Alex
я просто почему спрашиваю - на днях увидел доклад ...

Просто для демонстрации уровня сумасшествия: https://wemake-python-styleguide.readthedocs.io/en/latest/pages/usage/violations/consistency.html#wemake_python_styleguide.violations.consistency.RequiredBaseClassViolation

Alex- Автор вопроса
evle
Просто для демонстрации уровня сумасшествия: https...

ну может это для поддержки 2.7. По-идее это настраивается

Tishka17
Там можно включить не всё?

можно, это просто плагин для флейка

Алиса Кассель-Королёва
можно, это просто плагин для флейка

Мне казалось его концепция в том, что все нахрен прибито гвоздями

Alex
ну может это для поддержки 2.7. По-идее это настра...

Please, note that this rule has nothing to do with python2. We care only about consistency here.

Пользуюсь pydeps чтобы проверять проект на предмет странных импортов. Возможно можно нейроночку обучить анализировать графы зависимостей между пакетами чтобы она ругалась если что-то не так

Tishka17
Там можно включить не всё?

Ну, это ж тупо обёртка вокруг флейка. Ничто не мешает (если ты у них не работаешь :-D)

evle
Просто для демонстрации уровня сумасшествия: https...

я даже не могу сказать как принято в расте тк у нас к счастью нет наследования

Алиса Кассель-Королёва
я даже не могу сказать как принято в расте тк у на...

Да я даже не про наследование как таковое, а про странное применение слова "консистентность". Типа если у нас есть синтаксис создания класса с наследованием, то второй синтаксис с неявным object нам не нужен. Там ещё такое есть, например: There are too many ways to import something. We should pick one style and stick to it. We have decided to use the readable one. # Correct: from os import path # Wrong: import os.path

Похожие вопросы

Обсуждают сегодня

а через ESC-код ?
Alexey Kulakov
29
30500 за редактор? )
Владимир
47
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
program test; {$mode delphi} procedure proc(v: int32); overload; begin end; procedure proc(v: int64); overload; begin end; var x: uint64; begin proc(x); end. Уж не знаю...
notme
6
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
вы делали что-то подобное и как? может есть либы готовые? увидел картинку нокода, где всё линиями соединено и стало интересно попробовать то же в ddl на lua сделать. решил с ч...
Victor
8
Ребят в СИ можно реализовать ООП?
Николай
33
Подскажите пожалуйста, как в CustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); получить наз...
A Z
7
Карта сайта