Обложка канала

Clean Code. Страница 13

21095 @codeclean

Clean Code - канал на котором публикуются рекомендации по написанию кода, обзоры распространенных ошибок и многое другое.

  • Clean Code

    It's okay to write dirty code

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

    #cleancode
  • Clean Code

    Have no side effects

    Бывает, что результат работы функции оказывается совсем не таким, как планировалось. И здесь стоит вспомнить о таком неприятном явлении, как побочные эффекты в функциях. Проблема эта очень коварная.

    Побочным эффектом в коде ниже является вызов Session.initialize(). Функция checkPassword может вызываться только в определенные моменты времени, когда инициализация сеанса может быть произведена безопасно. Если же нарушить такую временную привязку, сеансовые данные могут быть безвозвратно потеряны.

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

    #cleancode #functions
  • Clean Code

    Beautify Extension

    Советуем полезное расширение Beautify для Visual Studio Code и Brackets, позволяющее форматировать JavaScript, JSON, CSS и HTML-код. Must-have для тех, кто неравнодушен к рефакторингу.

    Visual Studio Code | Brackets | Online

    #tools
  • Реклама

  • Clean Code

    Commented Code

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

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

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

    #comments
  • Clean Code

    Bridge Pattern

    Паттерн Мост считается одним из важнейших среди паттернов проектирования. Как правило, он используется в больших бизнес-проектах, поскольку легко позволяет упрощать классы, отделяя реализацию логики низкого уровня от определения класса высокого уровня (который обычно абстрагируется или наследуется). Цель этого руководства — раскрыть особенности паттерна Мост на простых примерах.

    #designpatterns
  • Clean Code

    Avoid positional markers

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

    #comments
  • Clean Code

    Очевидное поведение не реализовано

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

    Day day = DayDate.StringToDay(String dayName);

    Логично ожидать, что строка "Monday" будет преобразована в Day.MONDAY. Также можно ожидать, что будут поддерживаться стандартные сокращения дней недели, а регистр символов будет игнорироваться.
    Если очевидное поведение не реализовано, читатели и пользователи кода перестают полагаться на свою интуицию в отношении имен функций. Они теряют доверие к автору кода и им приходится разбираться во всех подробностях реализации.

    #tips
  • Clean Code

    Facade Pattern

    В этой статье приводится краткое руководство по использованию паттерна Facade. Данный паттерн проектирования используется в качестве “обертки”, скрывающей детали реализации. С паттерна Фасад начинается цикл статей по паттернам проектирования.

    #designpatterns
  • Clean Code

    Group the blocks by meaning

    Группируйте блоки по смыслу. Используйте психологический эффект восприятия — «Эффект близости»: близко расположенные фигуры при восприятии объединяются. Получить код, подготовленный для анализа и обобщения можно, расположив рядом строки, объединенные смыслом или близкие по функционалу, разделив их пустой строкой.

    #formatting
  • Clean Code

    Functional Envy

    Функциональная зависть - один из «запахов кода». Для методов класса должны быть важны переменные и функции того класса, которому они пренадлежат, а не переменные и функции других классов. Когда метод использует методы доступа другого объекта для манипуляций с его данными, то он завидует области видимости класса этого объекта. Он словно мечнает находиться в другом классе, чтобы иметь прямой доступ к переменным, с которыми он работает.

    Метод calculateWeeklyPay обращается к объекту HourlyEmployee за данными для обработки, он завидует области видимости HourlyEmployee и «желает» получить доступ к внутренней реализации HourlyEmployee. Впрочем, иногда функциональная зависть оказывается неизбежным злом.

    #cleancode #functions
  • Clean Code

    Don't ignore caught errors

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

    #errors
  • Clean Code

    @remote_ru - самая качественная, русскоязычная лента вакансий с удаленной работой.
  • Clean Code

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

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

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

    #tdd
  • Clean Code

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

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

    #cleancode #selfimprovement
  • Clean Code

    Научиться веб-разработке несложно. Весь трюк в правильном подходе.

    SkillFactory снова объявляет набор на курс «Full-stack веб-разработчик на Python».

    Вы изучите всё, что необходимо для full-stack разработчика на Python, чтобы начать работать сразу после окончания курса.
    В программе непосредственно Python, вёрстка, Javascript, работа со сторонними API, запросы SQL и многое другое.

    Ну а также на период публикации действует СКИДКА, узнай про Подробности и Программу курса.
  • Реклама

  • Clean Code

    Sharpen

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

    GitHub

    #programming #tools
  • Clean Code

    20 июня в 20-00 (мск) День открытых дверей курса "Разработчик Java" от OTUS.

    ❗️Запишитесь, чтобы не пропустить

    🗣Встречу проведет преподаватель курса, Вадим Тисов - ведущий разработчик в компании QIWI, где занимается разработкой нового платежного процессинга на основе микросервисной архитектуры на Kotlin, Spring Boot, Spring Cloud, Kubernetes.

    • Поговорим о программе курса, формате обучения и выпускном проекте.
    • Ответим на все интересующие вас вопросы.
    • Расскажем о программе трудоустройства, перспективах выпускников OTUS и 40+ работодателях, которые готовы предложить собеседования на вакантные позиции по итогу обучения.

    Остались вопросы? Задайте их преподавателю лично в прямом эфире!

    👉🏻А также знакомьтесь с программой курса и проходите вступительный тест в новую группу.
  • Clean Code

    Never ask permission to refactor

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

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

    #tips #selfimprovement