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

Ссылка: @Portal_v_IT

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

РКН: clck.ru/3Ht6ch
加入频道
Введение в реактивное программирование.

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

#programming #reactive
Программирование похоже на секс. Одна ошибка, и вам придется поддерживать ее до конца жизни. Michael Sinz.
5 сильных привычек успешных разработчиков.

Успех, к которому вы стремитесь, зависит только от того, как вы себя видите в этом мире, от ваших привычек и жизненных проблем, с которыми вам приходится сталкиваться. Фактически, согласно исследователям, 40% нашего успеха (или неудач) происходит из-за наших привычек.
В статье приведены некоторые мощные привычки, которые помогут закрепить ваш успех в качестве разработчика.

#programming #selfimprovement
Forwarded from Clean Code
Dependent functions

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

#cleancode
Когда зацикливаться, а когда рекурсировать?

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

#programming #code
Use method chaining

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

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

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

#architecture
Forwarded from Clean Code
Bad Comments

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

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

#comments #bad
Forwarded from Clean Code
Ballast

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

#cleancode
Аргументы функции (в идеале 2 или меньше)

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

#functions #python
Чат канала Clean Code

Здесь вы можете проводить Code Review и помогать друг другу в поиске распространненых ошибок в коде, архитектуре и многом другом. Присоединяйся!

Просто перейди по ссылке либо нажми кнопку DISCUSS снизу.
Парное Программирование

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

#programming
Отличие профессионала от непрофессионала.

Быть непрофессионалом намного проще. Непрофессионалы не несут ответственности за выполняемую работу — они оставляют ответственность своим работодателям. Если непрофессионал совершает ошибку, то мусор за ним прибирает работодатель. Но если ошибка совершается профессионалом, то устранять последствия приходится ему самому.

А если в ваш модуль закрадется ошибка, которая обойдется вашей компании в $10 000? Непрофессионал пожмет плечами, скажет: «Вся-кое бывает», и продолжит писать следующий модуль. Профессионал должен выписать своей компании чек на $10 000!

#programming
Forwarded from Clean Code
Favor functional programming over imperative programming

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

#functions
5 вредных привычек, от которых программист должен избавиться прямо сейчас.

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

#programming #selfimprovement
Never ask permission to refactor

Никогда не спрашивай разрешения на рефакторинг. Никогда не спрашивайте разрешения на написание тестов. Вы делаете эти вещи, потому что ЗНАЕТЕ, что они — лучший способ двигаться быстро.

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

#tips #selfimprovement
This media is not supported in your browser
VIEW IN TELEGRAM
Sharpen

Sharpen - это расширение Visual Studio, которое добавляет новые возможности языка C# в вашу существующую кодовую базу. Он делает ваш код короче, проще, выразительнее, производительнее и читабельнее, одним словом - острее.

GitHub

#programming #tools
Как писать Xороший Код под прессингом.

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

#cleancode #selfimprovement
Вы должны быть уверены в том, что ваш код работает.

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

Но сколько именно кода нам нужно покрыть тестами? Весь код! Без исключения. Скажете, я предлагаю 100% тестовое покрытие кода? Ничего подобного. Я не предлагаю, а требую. Каждая написанная вами строка кода должна быть протестирована. Точка.
Может, это нереалистично? Почему? Вы пишете код, потому что ожидаете, что он будет выполняться. Если вы ожидаете, что код будет выполняться, то вы должны знать, что он работает. А знать это можно только в одном случае — по результатам тестирования.

#tdd
Forwarded from Clean Code
Don't ignore caught errors

Не игнорируйте обнаруженные ошибки.
Ничего не делать с обнаруженной ошибкой не дает вам возможности исправить или отреагировать на указанную ошибку. Вывод ошибки на консоль (console.log) не намного лучше, так как часто он может потеряться в море других вещей, напечатанных на консоли. Если вы добавляете какой-либо фрагмент кода в try / catch, это означает, что вы думаете, что там может произойти ошибка, и поэтому вам нужно правильно на нее отреагировать.

#errors