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

Ссылка: @Portal_v_IT

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

РКН: clck.ru/3Ht6ch
加入频道
Что в имени тебе моём...

Хорошее имя – это очень важно. Держать в голове информацию о программе и так трудно, поэтому не нужно создавать лишние трудности сложными системами наименований или туманными ссылками. Учитесь давать объектам прозрачные имена – они должны ясно описывать то, что за ними скрывается.

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

Когда я употребляю слово, – сказал Шалтай-Болтай довольно презрительно, – оно означает только то, что мне от него требуется, – не больше и не меньше.

#tips #name
Руководитель поневоле

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

Он – программист и хочет программировать. По характеру он не организатор и не умеет руководить людьми, к тому же он необщителен.

Как быть, если вы один из них: Если вас не устраивает эта роль, добейтесь, чтобы вас перевели на другую работу. Не у каждого есть талант или страсть руководить. Займитесь тем делом, для которого у вас есть нужные качества и которое вам нравится.

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

#tips #programmer_type
Идиоматика языка - это не для меня

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

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

#tips #bad_programmers
Гуру

Это маг программирования, настоящий гений. Гуру часто бывает спокойным и скромным, даже немного странным. Он пишет прекрасный код, но плохо умеет общаться с простыми смертными.

Они знакомы со всеми современными технологиями и знают, какие из старых приемов лучше. Хороший Гуру - замечательный наставник: у него можно многому научиться.

Как быть, если вы один из них: не рассчитывайте, что все будут столь же сообразительны и думать так же, как и вы. Требуется немалое мастерство, чтобы давать простые и понятные советы.

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

#tips #programmer_type
Грамотное программирование

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

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

#tips #good_programmers
Ковбой

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

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

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

#tips #programmer_type
От чего страдает оптимальность кода

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

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

Это далеко не весь список проблем, но он даст представление о том, на что нужно будет обратить внимание в первую очередь, ведь настоящие недоработки кроются в деталях.

#tips #optimisation
Жажда скорости

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

Намного полезнее на этапе формулирования требований к ПО определить уровень производительности и на каждом этапе разработки проверять, удовлетворяет ли продукт заданным параметрам.

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

#tips #bad_programmers
Отладчик

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

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

#tips #debugger
Важность программной архитектуры

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

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

#tips #architecture