Руководство по написанию нежелательного кода (интересно)

Java задняя часть

Перейдем сразу к делу, просматривая GitHub, я нашел очень интересный проект по адресу:

GitHub.com/trek well b/body…

по имени "Рекомендации по написанию нежелательного кода«Посмотрите на название, я действительно убежден. Автор также очень внимателен, объясняя важность правильного написания формата кода с точки зрения негативных учебных материалов. Автор использует пример кода, написанный на JavaScript, и я переделываю его в Java-версию и перевел ее на китайский язык в своем родном стиле, надеюсь, вам понравится.

💩 Называйте переменные так, чтобы код запутывался.

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

Хорошо 👍🏻

int a = 42;

Плохо 👎🏻

int age = 42;

💩 Непоследовательный стиль именования переменных/методов

Приветствую разобщение стиля.

Хорошо 👍🏻

int wWidth = 640;
int w_height = 480;

Плохо 👎🏻

int windowWidth = 640;
int windowHeight = 480;

💩 Нет комментариев

Все равно никто не сможет прочитать ваш код.

Хорошо 👍🏻

int cdr = 700;

Плохо 👎🏻

ПРИМЕЧАНИЕ должны содержать некоторые «почему», а не какое-то «что». Если код: «Что», неясно, этот код слишком плохо.

// 700ms 的数量是从 UX A/B 测试结果中得到的一个经验值。
// @查看: <详细解释 700 的一个链接>
int callbackDebounceRate = 700;

💩 Пишите заметки на своем родном языке

Если ваш родной язык английский, игнорируйте это правило.

Хорошо 👍🏻

// Закриваємо модальне віконечко при виникненні помилки.
toggleModal(false);

Плохо 👎🏻

// 隐藏错误弹窗
toggleModal(false);

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

💩 Непоследовательный стиль объявления переменных

И снова тост за разобщенность стилей.

Хорошо 👍🏻

String [] i1 = {"沉", "默", "王", "二"};
String i2 [] = {"沉", "默", "王", "三"};

Плохо 👎🏻

String [] wanger = {"沉", "默", "王", "二"};
String wangsan [] = {"沉", "默", "王", "三"};

💩 Пишите код как можно больше в одну строку

Хорошо 👍🏻

IntStream.range(1, 5).boxed().map(i -> { System.out.print("Happy Birthday "); if (i == 3) return "dear NAME"; else return "to You"; }).forEach(System.out::println);

Плохо 👎🏻

for (int i = 1; i < 5; i++) {
    System.out.println("Happy Birthday " + (i == 3 ? "dear NAME" : "to you"));
}

💩 Игнорировать дезинформацию

Всякий раз, когда обнаружена ошибка, нет необходимости сообщать об этом другим.

Хорошо 👍🏻

try {
  // 意料之外的情况。
} catch (error) {
  // tss... 🤫
}

Плохо 👎🏻

try {
  // 意料之外的情况。
} catch (error) {
  // and/or
  logError(error);
}

💩 Используйте большое количество глобальных переменных

принципы глобализации.

Хорошо 👍🏻

int x = 5;

void multi() {
  x = x * 2;
}

multi(); // 现在 x 是 10

Плохо 👎🏻

int x = 5;

int multi(int num) {
  return num * 2;
}

x = multi(x); // 现在 x 是 10

💩 Объявить переменные, которые вообще никогда не будут использоваться

Что, если он будет использован позже? так, на всякий случай.

Хорошо 👍🏻

int sum(int a, int b, int c) {
  int timeout = 1300;
  int result = a + b;
  return a + b;
}

Плохо 👎🏻

int sum(int a, int b) {
  return a + b;
}

💩 Никогда не указывайте тип, если позволяют условия.

Хорошо 👍🏻

// 享受便捷的快乐
List list = new ArrayList();
list.add("沉默王二");
list.add(18);

Плохо 👎🏻

List<String> nameList = new ArrayList<String>();

// 编译出错
nameList.add(18);

💩 Бесполезный код

Это выглядит более строго, но на самом деле это избыточно.

Хорошо 👍🏻

Integer multi(Object num) {
    if (!(num instanceof Integer)) {
        return null;
    } else if (num != null) {
        return (Integer) num * 2;
    }
    return null;
}

Плохо 👎🏻

Integer multi(Object num) {
    if (num instanceof Integer) {
        return (Integer) num * 2;
    }
    return null;
}

💩 Много вложений if-else

Хорошо 👍🏻

void someMethod(int a, int b, int c) {
    if (a > 0) {
        if (b > 0) {
            if (c > 0) {
               int result = a / b / c;
            }
        }
    }
}

Плохо 👎🏻

void someMethod1(int a, int b, int c) {
    if (a < 0 || b < 0 || c < 0) {
        return;
    }
    int result = a / b / c;
}

💩 Рваные углубления

Неравномерность – источник счастья.

Хорошо 👍🏻

String [] wanger = {"沉", 
        "默", "王", "二"};
String [] wangsan = {"沉", "默", "王", "三"};
Arrays.asList(wanger).stream().
        forEach(System.out::println);
Arrays.asList(wangsan).
        stream().
                forEach(System.out::println);

Плохо 👎🏻

String [] wanger = {"沉", "默", "王", "二"};
String [] wangsan = {"沉", "默", "王", "三"};
Arrays.asList(wanger)
        .stream()
        .forEach(System.out::println);
Arrays.asList(wangsan)
        .stream()
        .forEach(System.out::println);

💩 менее хорош, чем метод еще несколько строк кода

Не делите логику кода на читаемую часть.

  • Количество строк кода в классе превышает 10 000 строк.
  • Количество строк кода в методе превышает 1000 строк.
  • Метод выполняет как вычитание, так и сложение, а также умножение и деление.

💩 Не тестируйте свой код

Тестирование кода — дело инженера-испытателя, а не мое.

💩 Избегайте форму стиля кодирования

Напишите код, как вы хотите, особенно в случае нескольких разработчиков в команде, я защищаю «свободу».

💩 Не пишите документацию

Не делайте этого с самого начала.

💩 Не удаляйте устаревший код

Хоть код и заброшен, достаточно его закомментировать, удалять не надо.

Ладно, ребята, есть что еще добавить?

Друзья, которым нравится посещать GitHub, могут щелкнуть следующий адрес, чтобы перепрыгнуть, чтобы проверить его, я отправил его:

Github.com/it Wang Er / Body ...

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

GitHub.com/IT Ван Эр/JA…

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