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

Ссылка: @Portal_v_IT

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

РКН: clck.ru/3Ht6ch
加入频道
Псевдогуру: как распознать и что с ними делать

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

Главный недостаток Псевдогуру – его уверенность в себе. Он переоценивает свои способности, и его решения ставят ваш проект под угрозу.

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

#tips #pseudoguru
Самые распространенные ошибки в коде

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

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

Читать статью

#tips #common_mistakes
GitLens

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

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

Visual Studio Code

#extensions #gitlens
Корпоративный стиль vs Личные предпочтения

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

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

#tips #good_programmers
Visual Studio Code vs Rider для Unity.

Статья представляет собой комплексный анализ реализации возможностей VSCode как текстового редактора и Rider как IDE для Unity. Несмотря на то что автор отдаёт предпочтение VSCode, по его мнению он не лишён недостатков, которые при правильной настройке можно избежать в Rider.

Читать статью

#game_dev #comparison
Как писать чистый код

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

Читать статью

#programming #clean_code
Одноразовый код в результате погони за скоростью

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

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

#tips #bad_programmers
Паттерн проектирования: Null-объект

Вероятнее всего, вы впервые слышите о существовании данного паттерна и это неспроста. В список общепринятых 23 паттернов он не входит. Впервые он был опубликован в книге «Pattern Languages of Program» и по своему назначению близок паттерну Стратегия.

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

Читать статью

#designpatterns #null_object
Кодеры — морская пехота

Кодер пишет крепкий, но лишённый вдохновения код. Он честно трудится над заданием. Выполняя черную работу, кодеров часто несправедливо называют "пехотой". Они боятся требовать для себя интересную работу, и потому им достаются малопривлекательные проекты.

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

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

Если у вас в команде есть кодеры, то не смотрите на них свысока, даже если вы более компетентны. Помогите кодерам развить своё мастерство, пишите продуманный код, чтобы максимально облегчить работу программиста-кодера.

#tips #coder
Better Code Hub

Во время написания кода Better Code Hub проверяет его на соответствие 10 определенным рекомендациям по разработке ПО. Это дает вам как разработчику моментальную обратную связь о том, где сосредоточиться на улучшении качества, своего рода Resharper, только проводится все это извне. Приложение поддерживает работу с Java, C#, Go, а также рядом других популярных языков.

GitHub

#extensions #better_code_hub
Как делать хороший Code Review

Многие разработчики, достигнув уровня Senior, сталкиваются при работе над проектами с таким понятием, как code review. Более того, регулярные проверки кода становятся их рутинным занятием.

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

Читать статью

#code #reviews
Высокомерный гений

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

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

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

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

#tips #programmer_type
UX тренды в 2020 году

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

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

Читать статью

#analysis #trends
Что в имени тебе моём...

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

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

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

#tips #name
CodeFactor

CodeFactor позволяет вести статистику качества кода каждого коммита в репозитории проекта. Таким образом, каждый член команды получает действенную обратную связь, советы по рефакторингу. CodeFactor поддерживает Bash, C, C#, C++, Java, JS и многие другие языки.

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

GitHub

#tools #code_analyzer
Когда использовать абстрактные классы

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

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

Подробнее

#code #abstract_classes
Руководитель поневоле

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

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

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

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

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

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

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

#tips #bad_programmers
Очисти код, избавившись от условности.

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

В статье показана альтернатива условным операторам if-else на примере языка JavaScript. В арсенале профессионала всегда должен быть подходящий инструмент для решения конкретной задачи.

Подробнее

#clean_code #conditional_operators
Как стать Senior разработчиком

Опыт общения профессора университета со своими бывшими студентами позволил ему сделать вывод о том, какие систематические действия и качества личности позволяют вырасти из Junior в Senior-разработчика.

Быть Senior - это не значит знать всё, это значит постоянно искать ответы на вопрос "почему" и никогда не удовлетворяться ответом: "Так было всегда". В статье описаны подходы, которые позволят вам стать настоящим профессионалом.

Подробнее

#programming #self_improvement