Clean Code
12.8K subscribers
2.51K photos
7 videos
3.33K links
Советы по написанию кода, обзоры распространенных ошибок и многое другое.

Ссылка: @Portal_v_IT

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

РКН: clck.ru/3Ht6ch
Download Telegram
🧑‍💻 Рекурсия – не панацея

Многие считают рекурсию лучшим средством для устранения всего лишнего. Если говорить о внешнем виде программного кода, это, несомненно, правда. Пример с факториалом: см. код 1.

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

А теперь вообразите, сколько строк выдаст новичок, столкнувшийся с ханойской башней и работающий только с итерацией :)

Но не все так гладко. Попробуйте посчитать факториал большого числа. Вероятно, IDE зависнет, пытаясь переварить ваше решение, и это понятно: рекурсия «кушает» много памяти, так как метод каждый раз вызывает сам себя. Конечно, если в поставленной задаче рекурсия необходима (например, при обработке древовидных структур), использовать ее нужно, но ни в коем случае не злоупотреблять. Компактность-то она обеспечит, но что потом делать с памятью?

Clean Code #совет #cleancode
Uploadcare

Сервис для загрузки и хранения кода. End-to-end облачная платформа для обработки и передачи контента. Платформа работает на технологии Adaptive Delivery и включает в себя облачное хранилище, обработку и загрузку видео, изображений и других файлов. Для передачи данных используется сеть из территориально распределенных CDN-серверов.

📑 Сайт

Clean Code #инструменты
📑 Релиз Ubuntu 21.04: поддержка Microsoft SQL Server и Flutter SDK «из коробки»

Компания Canonical выпустила свежую версию Ubuntu — Ubuntu 21.04. Выпуск не только оптимизировал работу дистрибутива, но также добавил несколько интересных фишек.

Clean Code #новости #ubuntu
🧑‍💻 Не бойтесь перемен!

Часть 1

В этой небольшой серии советов будут собраны очень простые рекомендации, о которых знает каждый, вот только далеко не каждый их использует. Допустим, вместо «многослойных» if-ов можно использовать оператор (x ? y : z).

Пример с if: код 1.

Пример с (x ? y : z): код 2.

Также не забывайте о существовании forEach(), который избавит вас от претензий в стиле «Многа букав»:

 static void forEach(){
int [] mas = {1, 2, 3, 4, 5};
for (int i : mas){
System.out.println(i);
}
}

Продолжение следует...

Clean Code #совет #код
Review Board

Сетевое, open-source решение для ревью кода. Чтобы протестировать этот инструмент, можете либо попробовать демо на их сайте, либо загрузить и установить программу на вашем сервере.

📑 Сайт

Clean Code #инструменты #CodeReview
Clean Code #test #js

Выберите правильный вариант 👇🏼
Clean Code #test

Выберите правильный вариант 👆
🧑‍💻 Не бойтесь перемен!

Часть 2

Перед прочтением рекомендуем ознакомиться с первой частью.

В прошлой части мы рассмотрели тернарные операторы и forEach().

В этой части поговорим об вложенных условиях. Объединяйте вложенные if. Посмотрите, насколько проще становится код.

Было: см. код 1.

Стало: см. код 2.

Продолжение следует...

Clean Code #совет #код
Газпромбанк проведет свой хакатон для DevOps-специалистов

Банк совместно с компанией SAS проведет свой первый онлайн-хакатон GPB Hack. Призовой фонд составит 500 тысяч рублей, а лучшие участники получат шанс попасть в банк на работу.

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

Прием заявок завершится 24 мая. Стать участником можно по ссылке.
📖 Pro Git — профессиональный контроль версий
🖋 Скот Чакон, 2019

Обучающая книга о Git от Скотта Шакона — активного участника разработки проектов Git и GitHub. Автор рассматривает в тексте всевозможные аспекты работы с Git'ом, начиная с установки программы и базовых принципов работы децентрализованных систем контроля версий, и заканчивая рассмотрением внутреннего устройства Git'а и созданием валидных объектов в базе Git'а собственными руками. Несмотря на довольно обширный материал и затрагивание довольно специфических тем, книга написана довольно простым языком, содержит массу примеров и иллюстраций, и поэтому должна быть понятна и новичкам, только начинающим знакомиться с системами контроля версий.

💾 Скачать книгу

Clean Code #книги #git
🧑‍💻 Поговорим о боли под названием «try-catch»

Читаемость кода часто усугубляется повсеместными блоками try-catch, которые сильно портят «картинку». Кроме того, по мере чтения такого программного кода теряются цель и логика происходящего в нем. А все должно быть предельно понятным, особенно для стороннего человека. Правильно обрабатывать возможные ошибки – признак настоящего мастерства.

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

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

Clean Code #совет #код
🔥 Лучшее на канале за неделю

1
. Релиз Ubuntu 21.04: поддержка Microsoft SQL Server и Flutter SDK «из коробки».

2. Review Board — сетевое, open-source решение для ревью кода.

3. Pro Git — профессиональный контроль версий.
Crucible

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

Схоже с Review Board, Crucible поддерживает большое количество систем контроля версий — SVN, Git, Mercurial, CVS и Perforce. Базовая функция — позволить проводить ревью кода. Вдобавок к общим комментариям к коду, он позволяет писать inline-комментарии внутри diff view, чтобы точно указать на то, что вы хотели сказать.

📑 Сайт

Clean Code #инструменты #CodeReview
📖 Приемы объектно-ориентированного проектирования
🖋 Э. Гамма, 2015

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

💾 Скачать книгу

Clean Code #книги