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

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

21095 @codeclean

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

  • Clean Code

    JSHint

    Один из основных статических анализаторов для JavaScript, наряду с JSLint и Closure Compiler. JSHint написан в дополнение к Node.js, а потому он более гибкий.

    Он включает большое количество опций, что позволяет выполнять пользовательские проверки путем написания своего собственного генератора отчётов.

    Visual Studio Code | Sublime Text | Online

    #tools
  • Clean Code

    Abstract Factory

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

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

    #designpatterns
  • Clean Code

    📌День открытых дверей курса «Backend-разработчик на PHP» - 22 августа в 20:00 мск онлайн:
    Старт группы уже 29 августа - успейте пройти вступительный тест и проверить, насколько вам подходит курс.

    На бесплатном вебинаре мы:
    - Ответим на все вопросы по продвинутой Backend-разработке на PHP;
    - Поговорим о хардкорной программе курса, формате обучения и выпускном проекте;
    - Расскажем о карьерных перспективах выпускников OTUS и 40+ работодателях, которые готовы предложить собеседования на вакантные позиции по итогу обучения.

    Встречу проведет преподаватель-практик Александр Пряхин - технический директор E-Commerce проекта с бэкграундом разработки и техобеспечения веб-приложений. Александр окончил МАИ (НИУ), там же получил преподавательский опыт, разрабатывает различные обучающие курсы: от изучения PHP до построения масштабируемых систем и архитектур.

    Остались вопросы? Задайте их преподавателю лично. Регистрируйтесь - напомним в день вебинара!
  • Реклама

  • Clean Code

    Hidden time references

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

    Порядок вызова трех функций важен. Сначала вызывается saturateGradient(), затем reticulateSplines() и только после этого diveForMoog(). Временная привязка реализуется посредством создания «эстафеты». Каждая функция выдает результат, необходимый для работы следующей функции, и вызвать эти функции с нарушением порядка сколько-нибудь разумным способом уже не удастся.

    #tips
  • Clean Code

    ESLint

    Один из лучших линтеров для JavaScript - ESLint берет на себя всю рутину по исправлению простых ошибок, таких как стилевые недочеты, забытый debugger; имеет легкую расширяемость, например, есть готовые плагины для React и Node.js, также существует множество общедоступных конфигураций в виде node.js-пакетов; ESLint активно развивается, потому что в автоматизации рефакторинга и отладки спрос только растёт.

    Visual Studio Code | Sublime Text | WebStorm

    #tools
  • Clean Code

    Mutual Exclusion

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

    Одна из стратегий предотвращения взаимной блокировки основана на предотвращении состояния взаимного исключения.
    ● Использование ресурсов, поддерживающих многопоточный доступ (например, AtomicInteger).
    ● Увеличение количества ресурсов, чтобы оно достигло или превосходило количество конкурирующих потоков.
    ● Проверка наличия всех свободных ресурсов перед попытками захвата.

    #tips
  • Clean Code

    Debugger for Google Chrome

    Крайне необходимое расширение VS Code для JavaScript-разработчиков. Помимо привычных функций отладчика, поддерживает большое количество конфигураций, которые позволят разработчикам удобно работать с кодом.

    Отладчик работает по Chrome Debugger Protocol. Файлы, открытые в браузере, сопоставляются с файлами из VS Code. Будьте осторожны: отладчик не поддерживает параллелизм, т.е. если вы откроете DevTools в Chrome, отладчик прекратит работу.

    #tools
  • Clean Code

    Clean Tests

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

    Тестовый код не менее важен, чем код продукта. Не считайте его «кодом второго сорта». К написанию тестового кода следует относиться вдумчиво, внимательно и ответственно.

    Тестовый код должен быть таким же чистым,как и код продукта.

    #tips
  • Clean Code

    Parameterize Method

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

    #tips
  • Clean Code

    Телеграмм канал о технологиях .Net.
    Здесь вы найдете разборы, уроки, фишки технологий и языков программирования, узнаете коварные вопросы на собеседовниях по .Net.
    Авторские статьи как для новичков, так и для профессионалов.

    @dotnetreview
  • Clean Code

    Bracket Pair Colorizer

    Популярное расширение для Visual Studio Code, позволяющее отмечать различным цветом открывающую и соответствующую ей закрывающую скобки. Определить, какой код к какому блоку относится, будет легко и, самое главное, наглядно.

    Source

    #tools
  • Clean Code

    3 Timeless Principles of Quality Code

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

    С ними вас познакомит статья.

    #cleancode #programming
  • Clean Code

    Divergent Change

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

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

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

    #cleancode
  • Clean Code

    Functions instead of comments

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

    И запомните: хороший код не требует комментариев.

    #comments #functions
  • Clean Code

    Observer vs Pub-Sub design patterns

    Статья на простых примерах объясняет сущность паттернов Наблюдатель и Издатель-Подписчик.

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

    #designpatterns
  • Реклама

  • Clean Code

    Help Tools: Spell Checkers

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

    В этом нам помогут популярные расширения для текстовых редакторов кода и IDE: Spell Checkers.

    Visual Studio | VS Code

    #tools
  • Clean Code

    if - else - while

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

    #functions
  • Clean Code

    🔥 Вебинар «Homestead и развёртывание Laravel»

    В рамках курса «Framework Laravel» от OTUS пройдет вебинар, где вы:

    ● Рассмотрите различные возможности создания рабочего окружения для Ларавел;
    ● Узнаете о развертывании и некоторых опциях обеспечения отказоустойчивости;
    ● Познакомитесь со сборкой Homestead;
    ● Научитесь разворачивать Laravel в Docker окружении.

    📅 23 июля в 20:00 по мск

    👉🏻 Пройдите вступительный тест и получите бесплатный доступ к вебинару.