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

Ссылка: @Portal_v_IT

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

РКН: clck.ru/3Ht6ch
加入频道
Inappropriate static methods

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

#functions
Scrum: Ошибки при работе и как их исправить.

Scrum — одна из разновидностей гибких методологий разработки программного обеспечения agile. Но многие команды, которые заявляют, что работают по скраму, на самом деле не понимают или не придерживаются принципов, которые отличают его от других подходов. Автор блога на Hacker Noon Эрик Вайс описал наиболее частые заблуждения.

#agile #scrum
Artificial bindings

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

#dependencies
Avoid Wit

Избегайте остроумия. Если имена ваших методов, переменных или комментариев будут излишни остроумны, то их смысл будет понятен только людям, разделяющим чувство юмора автора - и только, если они помнят шутку.
Остроумие часто воплощается в форме просторечий или сленга. Например, не используйте имя whack() вместо kill(). Не используйте шуточки, привязанные к конкретной культуре, - например, eatMyShorts(), вмесо abort().

#naming
Каждый раз, когда вы пишете комментарий, вы должны гримасничать и чувствовать недостаток вашей способности выражения.
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