🧑💻 Используйте комментарии в качестве пояснений
Неважно насколько серьезно вы подошли к вопросу обозначения переменных, функций и методов. Ваш код от этого все еще не настолько понятен и «чист» насколько это возможно. Код все еще содержит строчки, которые необходимо пояснить. Проблема может быть даже не в том, что их сложно понять или использовать. А как раз наоборот, проблема может заключаться в том, что будет абсолютно непонятно, а почему мы реализовали эту функцию или метод именно так, а почему здесь мы решили написать так. Смысл, идея, почему должно быть именно так остаются неясными.
Иногда нам придется прибегнуть к очень неординарным подходам решения той или иной проблемы, так как ничего больше не способно её решить или у нас просто нет времени на лучшее решение. И именно это довольно сложно объяснить с помощью только кода. Использование комментариев внутри нашего кода может помочь нам решить эту проблему. Комментарии могут помочь нам объяснить другим людям, зачем мы написали, то, что мы написали, и почему мы написали это именно так. В результате им не придется лишний раз гадать, а что же тут написано.
Что более важно, когда мы объясняем свои решения, то другие разработчики смогут предложить, возможно, лучшее решение проблемы, и тем самым улучшат наш код. Это возможно, так как они знают, в чем заключается проблема, и что необходимо получить в результате. Без этой информации им будет крайне сложно предложить лучшее решение. Или они даже пытаться не будут, так как подумают, что в этом нет нужды. Они подумают, что это в наших интересах, чтобы все оставалось, так как есть.
Итак, если мы вдруг захотим использовать какие-либо «костыли» или неординарные решения, то необходимо подобные решения оснащать комментариями, чтобы было понятно, почему мы сделали именно так. Лучше написать строчку или две строки комментария, чем заставлять людей гадать, а что же тут такое.
Однако имейте в виду, что мы подразумеваем написание комментариев, только там, где это необходимо. Не нужно комментировать плохой код. Написание комментариев к плохому коду – это замкнутый круг, который не поможет в его трансформации в «чистый» код. Если код написан плохо, то проблему нужно решать при помощи его улучшения, а не при помощи написания длинных инструкций к нему. «Чистый» код более предпочтителен, нежели инструкции к плохому коду.
Clean Code #совет #cleancode
Неважно насколько серьезно вы подошли к вопросу обозначения переменных, функций и методов. Ваш код от этого все еще не настолько понятен и «чист» насколько это возможно. Код все еще содержит строчки, которые необходимо пояснить. Проблема может быть даже не в том, что их сложно понять или использовать. А как раз наоборот, проблема может заключаться в том, что будет абсолютно непонятно, а почему мы реализовали эту функцию или метод именно так, а почему здесь мы решили написать так. Смысл, идея, почему должно быть именно так остаются неясными.
Иногда нам придется прибегнуть к очень неординарным подходам решения той или иной проблемы, так как ничего больше не способно её решить или у нас просто нет времени на лучшее решение. И именно это довольно сложно объяснить с помощью только кода. Использование комментариев внутри нашего кода может помочь нам решить эту проблему. Комментарии могут помочь нам объяснить другим людям, зачем мы написали, то, что мы написали, и почему мы написали это именно так. В результате им не придется лишний раз гадать, а что же тут написано.
Что более важно, когда мы объясняем свои решения, то другие разработчики смогут предложить, возможно, лучшее решение проблемы, и тем самым улучшат наш код. Это возможно, так как они знают, в чем заключается проблема, и что необходимо получить в результате. Без этой информации им будет крайне сложно предложить лучшее решение. Или они даже пытаться не будут, так как подумают, что в этом нет нужды. Они подумают, что это в наших интересах, чтобы все оставалось, так как есть.
Итак, если мы вдруг захотим использовать какие-либо «костыли» или неординарные решения, то необходимо подобные решения оснащать комментариями, чтобы было понятно, почему мы сделали именно так. Лучше написать строчку или две строки комментария, чем заставлять людей гадать, а что же тут такое.
Однако имейте в виду, что мы подразумеваем написание комментариев, только там, где это необходимо. Не нужно комментировать плохой код. Написание комментариев к плохому коду – это замкнутый круг, который не поможет в его трансформации в «чистый» код. Если код написан плохо, то проблему нужно решать при помощи его улучшения, а не при помощи написания длинных инструкций к нему. «Чистый» код более предпочтителен, нежели инструкции к плохому коду.
Clean Code #совет #cleancode
Imgbot
Когда вы сосредоточены на написании кода в установленный срок, легко забыть об оптимизации изображений.
Иллюстрации меньшего размера (имеется в виду размер файла, а не самой картинки) будут быстрее загружаться и повысят коэффициент конверсии. Поэтому очень важно не упускать это из виду.
Imgbot — простой и эффективный инструмент, который позволяет без потерь сжимать все изображения в ваших репозиториях.
📑 Сайт
Clean Code #инструменты #CodeReview #img
Когда вы сосредоточены на написании кода в установленный срок, легко забыть об оптимизации изображений.
Иллюстрации меньшего размера (имеется в виду размер файла, а не самой картинки) будут быстрее загружаться и повысят коэффициент конверсии. Поэтому очень важно не упускать это из виду.
Imgbot — простой и эффективный инструмент, который позволяет без потерь сжимать все изображения в ваших репозиториях.
📑 Сайт
Clean Code #инструменты #CodeReview #img
📖 Паттерны проектирования
🖋 Фримен Эрик, 2017
В мире постоянно кто-то сталкивается с такими же проблемами программирования, которые возникают и у вас. Многие разработчики решают совершенно идентичные задачи и находят похожие решения. Если вы не хотите изобретать велосипед, используйте готовые шаблоны (паттерны) проектирования, работе с которыми посвящена эта книга. Паттерны появились, потому что многие разработчики искали пути повышения гибкости и степени повторного использования своих программ. Найденные решения воплощены в краткой и легко применимой на практике форме. Особенностью данного издания является уникальный способ подачи материала, выделяющий серию "Head First" издательства O'Reilly в ряду множества скучных книг, посвященных программированию. Книга будет интересна широкому кругу веб-разработчиков, от начинающих до профессионалов, желающих освоить работу с паттернами проектирования.
💾 Скачать книгу
Clean Code #книги #patterns
🖋 Фримен Эрик, 2017
В мире постоянно кто-то сталкивается с такими же проблемами программирования, которые возникают и у вас. Многие разработчики решают совершенно идентичные задачи и находят похожие решения. Если вы не хотите изобретать велосипед, используйте готовые шаблоны (паттерны) проектирования, работе с которыми посвящена эта книга. Паттерны появились, потому что многие разработчики искали пути повышения гибкости и степени повторного использования своих программ. Найденные решения воплощены в краткой и легко применимой на практике форме. Особенностью данного издания является уникальный способ подачи материала, выделяющий серию "Head First" издательства O'Reilly в ряду множества скучных книг, посвященных программированию. Книга будет интересна широкому кругу веб-разработчиков, от начинающих до профессионалов, желающих освоить работу с паттернами проектирования.
💾 Скачать книгу
Clean Code #книги #patterns
Code Review Best Practices
В этом вебинаре Trisha выделяет некоторые передовые методы, которым следует следовать. Она рассказывает о том, что действительно важно при проверке кода, и выдвигает рекомендации, которым нужно следовать, чтобы максимизировать ценность ревью кода и минимизировать боль.
📺 YouTube
Clean Code #видео #cleancode
В этом вебинаре Trisha выделяет некоторые передовые методы, которым следует следовать. Она рассказывает о том, что действительно важно при проверке кода, и выдвигает рекомендации, которым нужно следовать, чтобы максимизировать ценность ревью кода и минимизировать боль.
📺 YouTube
Clean Code #видео #cleancode
YouTube
Code Review Best Practices
We know that Code Reviews are a Good Thing. We probably have our own personal lists of things we look for in the code we review, while also fearing what others might say about our code. How do we ensure that code reviews are actually benefiting the team,…
💡Видео по ревью кода
1. Правила хорошего ревью кода / Code review.
2. Code Review Python кода.
3. Лучшие рекомендации по Code Review.
Clean Code #видео #CodeReview #подборка
1. Правила хорошего ревью кода / Code review.
2. Code Review Python кода.
3. Лучшие рекомендации по Code Review.
Clean Code #видео #CodeReview #подборка
🔥 Лучшее на канале за неделю
1. Продуктивность разработчика: советы по написанию кода и организации рабочего процесса.
2. Rhodecode — это веб-инструмент, который помогает в проведении ревью кода.
3. Используйте комментарии в качестве пояснений.
1. Продуктивность разработчика: советы по написанию кода и организации рабочего процесса.
2. Rhodecode — это веб-инструмент, который помогает в проведении ревью кода.
3. Используйте комментарии в качестве пояснений.
📑 Уязвимости в популярных антивирусниках позволили обойти защиту от хакеров-вымогателей
Специалисты из Лондонского и Люксембургского университетов провели исследование защищённости популярных антивирусных приложений.
Многие из них оказались уязвимы перед атаками, направленными на обход защиты папок и отключение защиты ПО через имитацию щелчка мыши.
Clean Code #новости
Специалисты из Лондонского и Люксембургского университетов провели исследование защищённости популярных антивирусных приложений.
Многие из них оказались уязвимы перед атаками, направленными на обход защиты папок и отключение защиты ПО через имитацию щелчка мыши.
Clean Code #новости
🧑💻 Будьте последовательны
Когда мы ищем какие-либо особенные советы по кодингу или стили его написания, которые нам нравятся, то нам следует придерживаться найденного и стараться везде это использовать. Однако, использование различных советов или стилей в разных проектах, не всегда хорошая идея. Такой подход также полезен, как неиспользование вообще никаких советов или стилей. В таком случае возвращение к нашему старому коду не будет таким гладким и естественным, как это могло быть. Нам придется потратить некоторое количество времени на то, чтобы разобраться какой же стиль или совет мы использовали в данном проекте до того, как мы сможем начать с ним работу.
Наиболее выгодным в таком случае решением будет выбор нескольких советов и стилей, после чего необходимо просто придерживаться только их во всех ваших проектах. Вследствие чего, вам будет гораздо проще вернуться к старому коду для его доработок. Но что насчет экспериментирования? Пробовать различные советы – это хорошо. Такой подход может помочь найти лучшее решение для нашей задачи. И все-таки, лучше всего экспериментировать на отдельных экспериментальных проектах и задачах, а не с вашим основным проектом.
Кроме того, когда мы решаем немного поэкспериментировать, то мы должны проделать эксперимент несколько раз и на нескольких проектах. Необходимо потратить достаточное количество времени, что тщательно все проработать. Только когда мы полностью убедились, что нам нравится подобный совет или стиль, мы должны его реализовывать на реальных проектах. И когда мы решили, что пора это сделать, то лучше всего применить наши новые наработки во всех наших проектах. Безусловно, это займет время, но это заставит нас подумать обо всех изменениях правильно.
Clean Code #совет #cleancode
Когда мы ищем какие-либо особенные советы по кодингу или стили его написания, которые нам нравятся, то нам следует придерживаться найденного и стараться везде это использовать. Однако, использование различных советов или стилей в разных проектах, не всегда хорошая идея. Такой подход также полезен, как неиспользование вообще никаких советов или стилей. В таком случае возвращение к нашему старому коду не будет таким гладким и естественным, как это могло быть. Нам придется потратить некоторое количество времени на то, чтобы разобраться какой же стиль или совет мы использовали в данном проекте до того, как мы сможем начать с ним работу.
Наиболее выгодным в таком случае решением будет выбор нескольких советов и стилей, после чего необходимо просто придерживаться только их во всех ваших проектах. Вследствие чего, вам будет гораздо проще вернуться к старому коду для его доработок. Но что насчет экспериментирования? Пробовать различные советы – это хорошо. Такой подход может помочь найти лучшее решение для нашей задачи. И все-таки, лучше всего экспериментировать на отдельных экспериментальных проектах и задачах, а не с вашим основным проектом.
Кроме того, когда мы решаем немного поэкспериментировать, то мы должны проделать эксперимент несколько раз и на нескольких проектах. Необходимо потратить достаточное количество времени, что тщательно все проработать. Только когда мы полностью убедились, что нам нравится подобный совет или стиль, мы должны его реализовывать на реальных проектах. И когда мы решили, что пора это сделать, то лучше всего применить наши новые наработки во всех наших проектах. Безусловно, это займет время, но это заставит нас подумать обо всех изменениях правильно.
Clean Code #совет #cleancode
LGTM
Платформа для анализа кода, которая фокусируется на поиске критических уязвимостей и предотвращении проблем.
LGTM проводит более чем 1600 тестов, и, находя проблему, автоматически помечает её в pull request.
LGTM очень хорошо справляется со своей работой благодаря исследованиям команды в области безопасности, которая на текущий момент нашла более ста CVE (Common Vulnerabilities and Exposures) в таких больших проектах, как UBoot, Apache Struts, ядро Linux, Memcached, VLC и Apple XNU.
Среди анализируемых проблем — внедрение регулярных выражений, XSS-уязвимости и низкое качество кода, приводящее к снижению безопасности.
📑 Сайт
Clean Code #инструменты #CodeReview
Платформа для анализа кода, которая фокусируется на поиске критических уязвимостей и предотвращении проблем.
LGTM проводит более чем 1600 тестов, и, находя проблему, автоматически помечает её в pull request.
LGTM очень хорошо справляется со своей работой благодаря исследованиям команды в области безопасности, которая на текущий момент нашла более ста CVE (Common Vulnerabilities and Exposures) в таких больших проектах, как UBoot, Apache Struts, ядро Linux, Memcached, VLC и Apple XNU.
Среди анализируемых проблем — внедрение регулярных выражений, XSS-уязвимости и низкое качество кода, приводящее к снижению безопасности.
📑 Сайт
Clean Code #инструменты #CodeReview
🧑💻 Регулярно проверяйте свой код
Просто писать чистый код – это еще не все. Наша задача не заканчивается точкой с запятой. Следующий шаг – это поддержание чистого кода в таком состоянии. Так скажем, «чистый» код требует обслуживания. После того, как вы что-то написали, то вы должны всегда это проверять, исправлять и стараться улучшить. Иначе, если мы не будем проверять наш код и не будем улучшать его, то со временем он просто устареет. Точно также, как и наши старые устройства. Если мы хотим, чтобы наш код всегда был «в форме», то мы должны регулярно обновлять его.
То же самое относится и к коду, который мы пишем ежедневно. Код в принципе имеет особенность со временем становится более громоздким и сложным, а не проще и понятнее. Однако, все зависит от нас, будет ли код сложным или он будет простым и понятным. Единственный способ достичь этого, это регулярно проверять, написанный нами код. Другими словами, нам нужно обслуживать его. Это может быть необязательно для проектов, о которых мы не заботимся или у которых нет будущего. Для всего остального, обслуживание — это часть вашей работы.
Clean Code #совет #cleancode
Просто писать чистый код – это еще не все. Наша задача не заканчивается точкой с запятой. Следующий шаг – это поддержание чистого кода в таком состоянии. Так скажем, «чистый» код требует обслуживания. После того, как вы что-то написали, то вы должны всегда это проверять, исправлять и стараться улучшить. Иначе, если мы не будем проверять наш код и не будем улучшать его, то со временем он просто устареет. Точно также, как и наши старые устройства. Если мы хотим, чтобы наш код всегда был «в форме», то мы должны регулярно обновлять его.
То же самое относится и к коду, который мы пишем ежедневно. Код в принципе имеет особенность со временем становится более громоздким и сложным, а не проще и понятнее. Однако, все зависит от нас, будет ли код сложным или он будет простым и понятным. Единственный способ достичь этого, это регулярно проверять, написанный нами код. Другими словами, нам нужно обслуживать его. Это может быть необязательно для проектов, о которых мы не заботимся или у которых нет будущего. Для всего остального, обслуживание — это часть вашей работы.
Clean Code #совет #cleancode
📖 Шаблоны корпоративных приложений
🖋 Мартин Фаулер, 2016
Создание компьютерных систем — дело далеко не простое. По мере того как возрастает их сложность, процессы конструирования соответствующего программного обеспечения становятся все более трудоемкими, причем затраты труда растут экспоненциально. Как и в любой профессии, прогресс в программировании достигается исключительно путем обучения, причем не только на ошибках, но и на удачах — как своих, так и чужих. Книга дает ответы на трудные вопросы, с которыми приходится сталкиваться всем разработчикам корпоративных систем. Автор, известный специалист в области объектно-ориентированного программирования, заметил, что с развитием технологий базовые принципы проектирования и решения общих проблем остаются неизменными, и выделил более 40 наиболее употребительных подходов, оформив их в виде типовых решений. Результат перед вами — незаменимое руководство по архитектуре программных систем.
💾 Скачать книгу
Clean Code #книги #patterns
🖋 Мартин Фаулер, 2016
Создание компьютерных систем — дело далеко не простое. По мере того как возрастает их сложность, процессы конструирования соответствующего программного обеспечения становятся все более трудоемкими, причем затраты труда растут экспоненциально. Как и в любой профессии, прогресс в программировании достигается исключительно путем обучения, причем не только на ошибках, но и на удачах — как своих, так и чужих. Книга дает ответы на трудные вопросы, с которыми приходится сталкиваться всем разработчикам корпоративных систем. Автор, известный специалист в области объектно-ориентированного программирования, заметил, что с развитием технологий базовые принципы проектирования и решения общих проблем остаются неизменными, и выделил более 40 наиболее употребительных подходов, оформив их в виде типовых решений. Результат перед вами — незаменимое руководство по архитектуре программных систем.
💾 Скачать книгу
Clean Code #книги #patterns
🧑💻 Указывайте имена, говорящие сами за себя
Что такое переменные, классы и функции? Ответить на данные вопросы можно разными способами, но если задуматься, все эти вещи – не что иное, как связующее звено между программистом и базовой логикой приложения.
Поэтому, когда вы используете нечеткие и не исчерпывающие имена для переменных, классов и функций, вы по сути усложняете логику приложения для любого программиста, который будет читать код, включая себя.
Что означает переменная с именем
Clean Code #совет #cleancode
Что такое переменные, классы и функции? Ответить на данные вопросы можно разными способами, но если задуматься, все эти вещи – не что иное, как связующее звено между программистом и базовой логикой приложения.
Поэтому, когда вы используете нечеткие и не исчерпывающие имена для переменных, классов и функций, вы по сути усложняете логику приложения для любого программиста, который будет читать код, включая себя.
Что означает переменная с именем
dxy
? Кто знает. Вам, вероятно, придется прочитать весь код, чтобы хотя бы понять его смысл. Например, значение переменной distanceBetweenXY
логически понятно. То же самое верно для классов и функций. Не пишите CalcTan()
, если можно написать CalculateTangent()
или CalcTangentAngle()
.Clean Code #совет #cleancode
Про code review
В видео идёт речь о ревью кода — полезной практике, которая используется практически во всех командах, как в больших, так и в маленьких.
📺 YouTube
Clean Code #видео #cleancode #CodeReview
В видео идёт речь о ревью кода — полезной практике, которая используется практически во всех командах, как в больших, так и в маленьких.
📺 YouTube
Clean Code #видео #cleancode #CodeReview
YouTube
Про code review
#soer #itubeteam
Основной канал для общения и публикации новых видео - Телегарм - https://t.me/softwareengineervlog
Спонсорство - https://donate.s0er.ru
Сайт платным контентом - https://soer.pro
Зеркало для видео Дзен Видео - https://zen.yandex.ru/i…
Основной канал для общения и публикации новых видео - Телегарм - https://t.me/softwareengineervlog
Спонсорство - https://donate.s0er.ru
Сайт платным контентом - https://soer.pro
Зеркало для видео Дзен Видео - https://zen.yandex.ru/i…
🔥 Лучшее на канале за неделю
1. Уязвимости в популярных антивирусниках позволили обойти защиту от хакеров-вымогателей.
2. LGTM — платформа для анализа кода, которая фокусируется на поиске критических уязвимостей и предотвращении проблем..
3. Шаблоны корпоративных приложений.
1. Уязвимости в популярных антивирусниках позволили обойти защиту от хакеров-вымогателей.
2. LGTM — платформа для анализа кода, которая фокусируется на поиске критических уязвимостей и предотвращении проблем..
3. Шаблоны корпоративных приложений.
DeepSource
Используется такими компаниями, как NASA, Uber и Slack. Он автоматически обнаруживает уязвимости и проблемы с документированием кода.
Примеры анализируемых проблем:
— используемый модуль не согласуется с требованиями к ПО;
— в репозиторий закоммичена конфиденциальная информация.
DeepSource автоматически добавляет аннотации и комментарии к pull request’ам, облегчая обнаружение проблем и гарантируя безопасность конфиденциальных данных. Это ускоряет процесс code review и обеспечивает более высокое качество проекта.
📑 Сайт
Clean Code #инструменты #CodeReview
Используется такими компаниями, как NASA, Uber и Slack. Он автоматически обнаруживает уязвимости и проблемы с документированием кода.
Примеры анализируемых проблем:
— используемый модуль не согласуется с требованиями к ПО;
— в репозиторий закоммичена конфиденциальная информация.
DeepSource автоматически добавляет аннотации и комментарии к pull request’ам, облегчая обнаружение проблем и гарантируя безопасность конфиденциальных данных. Это ускоряет процесс code review и обеспечивает более высокое качество проекта.
📑 Сайт
Clean Code #инструменты #CodeReview
🧑💻 Каждый класс/модуль должен заниматься только одним набором конкретных функций
Вы когда-нибудь разбирали фрагмент кода, который длился сотни или даже тысячи строк? Если у вас есть такой опыт, то вы знаете, насколько это трудно просто прочесть данный код, не говоря уже о его понимании и редактировании. Комментарии, конечно, могут помочь, но они “не вытянут” плохой код.
“Программирование представляет собой разбиение одного большого невозможного таска в несколько мелких вполне возможных.” — John Woods
Чистый код представляет собой код, разбитый на мелкие части. Где каждая функция должна отвечать только за одну вещь, и каждый класс должен стремиться реализовывать одну конкретную идею. На практике сложный расчет, как
Clean Code #совет #cleancode
Вы когда-нибудь разбирали фрагмент кода, который длился сотни или даже тысячи строк? Если у вас есть такой опыт, то вы знаете, насколько это трудно просто прочесть данный код, не говоря уже о его понимании и редактировании. Комментарии, конечно, могут помочь, но они “не вытянут” плохой код.
“Программирование представляет собой разбиение одного большого невозможного таска в несколько мелких вполне возможных.” — John Woods
Чистый код представляет собой код, разбитый на мелкие части. Где каждая функция должна отвечать только за одну вещь, и каждый класс должен стремиться реализовывать одну конкретную идею. На практике сложный расчет, как
GetCreditScore()
, следует разбить на несколько вспомогательных функций, таких как GetCreditReports()
, ApplyCreditHistoryAge()
и FilterOutstandingMarks()
.Clean Code #совет #cleancode