Clean Code
13.3K subscribers
2.32K photos
5 videos
2.97K links
Советы по написанию кода, обзоры распространенных ошибок и многое другое.

Ссылка: @Portal_v_IT

Сотрудничество: @oleginc, @tatiana_inc

РКН: clck.ru/3Ht6ch
加入频道
Каждый раз, когда вы пишете комментарий, вы должны гримасничать и чувствовать недостаток вашей способности выражения.
Engineers Don’t Want Clean Code

Ваши инженеры не хотят чистый код. Ваши инженеры хотят двигаться быстро. Чистый код — это просто метод, который позволяет инженерам быстро двигаться. Подробнее в статье...

#programming #cleancode
Class Member Prefixes

Префиксы членов класса. Префиксы m_, s_ и другие, которыми когда-то снабжались переменные классов, сейчас стали ненужными. Классы и функции должны быть достаточно компактными, чтобы вы могли обходиться без префиксов. Также следует использовать рабочую среду с цветовым выделением членов классов, обеспечивающим их нагляднцю идентификацию.

В качестве примера, во всех официальных плагинах от Unity до сих пор используется именно такой стиль кодирования, через префиксы.

#naming
Understanding Clean Code in Android

Если вы хотите создать что-то великое, вы должны уметь писать и аккуратно организовывать свой код. Если у вас есть члены команды или кто-то еще, кто работает с вашим кодом, им просто нужно увидеть имена переменных, пакеты или классы, и они сразу все поймут. Им не нужно будет произносить «F**k» и начинать переписывать все с нуля.

#principles
Programmers vs Coders

Вам любопытно узнать, что отличает кодера от программиста? Возможно, вы думаете: «Ну, разве они не одно и то же?» Многие люди думают, что это так. Однако между кодером и программистом есть достаточно большая разница.

#programming #software
Дублирование - главный враг хорошо продуманной системы.
Know Your Algorithm

Знай свой алгоритм. Очень много странного кода пишется из-за того, что люди не утруждают себя пониманием алгоритмов. Они заставляют программу работать «грубой силой», набивая ее командами if и флагами, вместо того чтобы остановиться и подумать, что же в действительности происходит.
Программирование часто сопряжено с иследованиями. Вы думаете, что знаете подходящий алгоритм для решения задачи, но потом вам приходится возиться с ним, подправлять и затыкать щели, пока вы не заставите его "работать".
Однако прежде чем откладывать в сторону готовую функцию, убедитесь в том, что вы понимаете, как она работает. Прохождения всех тестов недостаточно. Вы должны знать, что ваше решение правильно.
Один из лучших способов достичь этого знания и понимания - разбить функцию на фрагменты настолько чистые и выразительные, что вам станет совершенно очевидно, как работает данная функция.

#algoritms
Code Conventions: How to choose the best for your team.

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

#programming #convensions
Entity Component System

ECS — это шаблон проектирования Entity Component System. По-простому, то есть “Сущности” (Entity) — объекты-контейнеры, не обладающие свойствами, но выступающие хранилищами для “Компонентов”. “Компоненты” — это блоки данных, определяющие всевозможные свойства любых игровых объектов или событий. Все эти данные, сгруппированные в контейнеры, обрабатываются логикой, существующей исключительно в виде “Систем” — “чистых” классов с определенными методами для выполнения
В статье рассказывается о ECS подходе и сравнение его с объектно-ориентированным.

#architecture #principles #ecs
Программисты должны избегать ложных подсказок, которые затемняют смысл кода.
Exhaustively Test Near Bugs

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

#tests
What is better — Functional programming or Object Oriented?

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

#programming
Why You Should Use Kubernetes In Your Next Project

Если вы не живете под скалой, вы, вероятно, слышали о Kubernetes, также известном как Kube или K8s, одном из лучших инструментов управления контейнерами на рынке.

Из этого вытекает вопрос. Так что же такое контейнер и чем вы можете воспользоваться для работы с ними?
Проще говоря, контейнер — это пакет, который содержит код приложения и все его зависимости, необходимые для запуска приложения. Приложения внутри контейнера изолированы от остальной части хост-системы и всегда работают одинаково, независимо от среды. Подробнее в статье.

#docker #containers
Чистый код всегда выглядит так, как будто он написан кем-то, кого это волнует.
The Planned Obsolescence of Old Coders

В этой статье речь пойдет о меньшинстве "Старших" в it-индустрии. О том, как стоит развиваться, когда вы уже не способны угнаться за развитием технологий и какой подход выбрать, чтобы в определенный момент вас не выгнали с работы, на основании вашего возраста.

#industry #programming
F.I.R.S.T. Principle

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

#tests #principles
Minimum classes and methods

Минимум классов и методов. Даже такие фундаментальные концепции, как устранение дубликатов, выразительность кода и принцип единой ответственности, могут зайти слишком далеко. Стремясь уменьшить объем кода наших классов и методов, мы можем наплодить слишком много крошечных классов и методов. Это правило рекомендует ограничиться небольшим количеством функций и классов.
Многочисленность классов и методов иногда является результатом бессмысленного догматизма. В качестве примера можно привести стандарт кодирования, который требует создания интерфейса для каждого без исключения класса. Или разработчиков, настаивающих что поля данных и поведение всегда должны быть разделены на классы данных и классы поведения. Избегайте подобных догм, а в своей работе руководствуйтесь более прагматичным подходом.

#classes #methods
Я не великий программист; Я просто хороший программист с отличными привычками. Kent Beck.
Color Threads: Подход к раскраске потоков

Стремись повысить сопровождаемость нашего кода, мы используем общепринятые практики, в том числе в вопросах многопоточности. Конечно, это не решает всех сложностей, которые приносит за собой постоянно растущая нагрузка, но упрощает поддержку — выигрывает и читаемость кода, и скорость разработки новых фич.

#multithreading
Business needs good code

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

#business #code