Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Interactive holywars about linters
Search
Sobolev Nikita
October 22, 2018
Programming
100
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Interactive holywars about linters
Sobolev Nikita
October 22, 2018
More Decks by Sobolev Nikita
See All by Sobolev Nikita
adaptix_slides.pdf
sobolevn
0
4
Зачем программисту Twitch (что?) – Алексей Гладких, PythoNN
sobolevn
0
4
MQTT глазами BE для работы с embedded устройствами – Сергей Макаров, PythoNN
sobolevn
0
0
Я в СКРЫТОМ ПУЛЕ: выстраиваем процессы в команде без тильта – Максим Мельников, PythoNN
sobolevn
0
0
Я твой fastapi msgspec'ом ускорял – Александр Целуйко, PythoNN
sobolevn
0
0
Будущее локальных LLM – Алексей Голобурдин, PythoNN
sobolevn
0
4
Чего вы не знали о строках в Python – Василий Рябов, PythoNN
sobolevn
0
260
ИИ-Агенты в каждый дом – Алексей Порядин, PythoNN
sobolevn
0
230
Внутреннее устройство сборки мусора в CPython 3.14+ – Сергей Мирянов, PythoNN
sobolevn
0
150
Other Decks in Programming
See All in Programming
Railsのためのパスキー実践入門 〜マルチテナントSaaSでの意思決定〜
utakaha
2
650
HTML-in-Canvasで作る未来のWeb UI表現
clockmaker
5
5.1k
パズルゲームの作り方 / how to make puzzle games
kaityo256
PRO
2
300
自サークルのIdPからログアウトできるようになるまで
taiseiue
1
140
JIS keyboard support in Omarchy
lef237
0
130
Apple Intelligence を用いた個人情報誤送信防止、及びユーザーリクエスト体験の改善について
yukiny
0
350
Rでドレミ/Do-Re-Mi_with_R
florets1
0
130
[JA] Domain Modeling with Vanilla Rails: 「操作」から再考するRailsの設計論
yasaichi
2
400
R8 の設定見直しでアプリサイズ削減
andpad
0
220
phperだってパンチカードでコーディングしたい
o0h
PRO
0
340
見えないものを探る要求要件定義に必要な基本的思考 / invisible-requirement-thinking
minodriven
15
8.5k
ソニーのクラウド共通基盤の変遷とAI時代の開発スタイルに合わせた進化 / The Journey of Sony’s Common Cloud Platform and Its Evolution for AI-Native Development
kenjiyoneyama
0
270
Featured
See All Featured
Leo the Paperboy
mayatellez
10
2.4k
Lightning talk: Run Django tests with GitHub Actions
sabderemane
0
300
Bridging the Design Gap: How Collaborative Modelling removes blockers to flow between stakeholders and teams @FastFlow conf
baasie
0
730
DBのスキルで生き残る技術 - AI時代におけるテーブル設計の勘所
soudai
PRO
68
58k
Test your architecture with Archunit
thirion
2
2.4k
The #1 spot is gone: here's how to win anyway
tamaranovitovic
4
1.2k
Highjacked: Video Game Concept Design
rkendrick25
PRO
1
480
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
Paper Plane (Part 1)
katiecoart
PRO
2
12k
Side Projects
sachag
456
43k
The Impact of AI in SEO - AI Overviews June 2024 Edition
aleyda
6
1.2k
The Illustrated Children's Guide to Kubernetes
chrisshort
51
53k
Transcript
Холиварный доклад про линтеры Никита Соболев, wemake.services
Зачем нам линтеры? 2
• Делать код похожим • Облегчать жизнь на ревью •
Находить то, что трудно найти 3
Какие бывают линтеры? • Только стиль • Best practices •
Type checking 4
5 Тесты Линтеры CR
6
None
Вот тут возникают проблемы 8
Как выглядит процесс? • Присылают код • Ревьюер видит ошибку
• Вот бы она больше не возникала 9
А давайте свой линтер запилим! 10
Но ведь уже есть другие? 11
12 Рубрика "Почему не pylint?"
SonarQube 13
Flake8 14
15 Плагины Плагины Плагины Плагины Плагины Плагины Плагины Плагины Плагины
Плагины Плагины Плагины Плагины
wemake-python-styleguide Самый строгий линтер в мире 16
Что значит – строгий? 17
18
• Много проверок ~200 • Без компромиссов • Без настроек
(WIP) 19
От кого зависим? • Flake8 • Eradicate • Isort •
Bandit • И еще 20 плагинов 20
Что проверяем? • Сложность • Имена • Консистентность • Лучшие
практики 21
Что такое сложность? 22
Какие бывают метрики? • Cyclomatic Complexity • Arguments / Statements
/ Returns • Cohesion / Coupling • Jones Complexity 23
Водопад сложности 1.Строчка 2.Метод 3.Класс 4.Модуль 24
И нужно рефакторить 25
А все остальное субъективно! 26
27
None
None
30
None
None
33
None
None
None
None
Бонусы! • layer-linter - https://github.com/seddonym/ layer_linter • cohesion - https://github.com/mschwager/
cohesion • vulture - https://github.com/jendrikseipp/ vulture • radon - https://github.com/rubik/radon 38
39
Gratis 40 @Shikhov-P @proha @malinoff @valignatev @AlexArcPy @tipabu @mcproger @TyVik
@geoc0ld @riyasyash @AlwxSin @vergeev @barsovichok @sathwikmatsa @tommbee @lensvol @SheldonNunes @lk-geimfari @novikovfred @ming060 @Roxe322 @vsmaxim @zzz @stebunovd
Ваши вопросы? https://github.com/sobolevn 41