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

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

21095 @codeclean

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

  • Clean Code

    Интересуешься разработкой игр? Тогда рекомендную заглянуть на наш второй проект.

    Game Dev - канал о игровой индустрии, на котором публикуются статьи по геймдизайну и разработке игр, тематические новости и многое другое.

    Сделай игровую индустрию лучше @GameDev
  • Clean Code

    Quicktype: generate code from Json

    Quicktype - сервис для создания моделей и сериализаторов из JSON, для быстрой и безопасной работы с данными на любом языке программирования.
    Если вам прислали огромный Json объект, то вместо создания модели самостоятельно вы можете просто воспользоваться данным сервисом.

    Quicktype

    #apps
  • Clean Code

    TODO Comments

    Комментарии TODO.
    Иногда бывает полезно ставить заметки "на будущее" в форме комментариев //TODO. Комментарии TODO напоминают о том, что, по мнению программиста, сделать необходимо, но по какой-то причине нельзя сделать прямо сейчас.
    В следующем примере комментарий TODO объясняет, почему функция имеет вырожденную реализацию и что она должна делать в будущем.

    #comments
  • Реклама

  • Clean Code

    Functions Should Do One Thing

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

    #functions
  • Clean Code

    if - else - while

    Блоки в командах if, else, while и т.д. должны состоять из одной строки, в которой обычно содержиться вызов функции. Это не только делает вмещающую функцию более компактной, но и способствует документированию кода, поскольку вызываемой в блоке функции можно присвоить удобное содержательное имя.

    #functions
  • Clean Code

    Mvvm Design Pattern

    Mvvm был представлен Джоном Госсманом в 2005 году как модификация шаблона Presentation Model и был первоначально нацелен на разработку приложений в WPF. И хотя сейчас паттерн вышел за пределы WPF и применяется в самых различных технологиях, в том числе при разработке под Android, iOS, тем не менее WPF, UWP и Xamarin являются довольно показательными технологиями, которые в полной мере раскрывают возможности данного паттерна.

    #designpatterns
  • Clean Code

    Compact Functions

    Компактные функции.
    Есть всего два привила. Первое: функции должны быть компатными. Второе: функции должны быть еще компактнее.

    Лучше 10 функций по 20 строк, чем один монстр на 200 строк. Чем компактнее вы будете писать свои функции, тем более примитивными и очевидными они будут казаться для читающего.

    #functions
  • Clean Code

    Dependency Inversion Principle

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

    S O L I D

    #solid
  • Clean Code

    Ad Hominem

    Переход на личности.
    Инспектируйте программу, а не программиста. Замечания о его личности лишь усложняют восприятие им критики.
    Если вы пишите негативные комментарии, пишите «патч» или «код» вместо «ты». Например, вместо "У тебя глюк в get_message" пишите "После применения этого патча в get_message появился глюк"

    #cleancode
  • Clean Code

    Duplication

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

    #cleancode
  • Clean Code

    Interface Segregation Principle

    Принцип разделения интерфейса.
    Создавайте узкоспециализированные интерфейсы, предназначенные для конкретного клиента. Клиенты не должны зависеть от интерфейсов, которые они не используют.

    S O L I D

    #solid
  • Clean Code

    Function arguments

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

    Идеальная ситуация — отсутствие аргументов. Один или два аргумента — хорошо, а трех уже следует избегать.

    #functions
  • Clean Code

    Group the blocks by meaning

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

    #formatting
  • Clean Code

    Liskov Substitution Principle

    Принцип подстановки Барбары Лисков.
    Цель этого принципа заключаются в том, чтобы классы-наследники могли бы использоваться вместо родительских классов, от которых они образованы, не нарушая работу программы. Если оказывается, что в коде проверяется тип класса, значит принцип подстановки нарушается и вам следует пересмотреть свое решение.

    #solid
  • Clean Code

    Avoid positional markers

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

    #comments
  • Реклама

  • Clean Code

    Quality your working

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

    #work #quality #apps
  • Clean Code

    Readme Driven Development

    RDD — это крайне простая практика.
    Пишите Readme в первую очередь, вот в принципе и все. A какие приемущества это вам даст читайте в статье.

    #architecture
  • Clean Code

    Don't ignore caught errors

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

    #errors