Китайские иероглифы нельзя запрограммировать? Не создавай проблем, просто выгляди немного высокомерно! Легко уволить!

Java
Китайские иероглифы нельзя запрограммировать? Не создавай проблем, просто выгляди немного высокомерно! Легко уволить!

Автор: Брат Сяофу
Блог:bugstack.cn

Осаждайте, делитесь, растите и позвольте себе и другим что-то получить!

Введение

在编程的路上你是否想过,用汉字写一写代码?

Недавно маленький друг, изучающий программирование, спросил:小傅哥, Можно ли писать код китайскими иероглифами? Мой английский не очень хорош, было бы неплохо, если бы я мог писать код китайскими иероглифами. ты хочешь"легкий язык"? На самом деле это не так, мои друзья тоже учатсяJavaначинающие, только что узналиSpringСмотреть на кусок кода без комментариев действительно сложно для понимания, если он написан китайскими иероглифами, разве это не то же самое, что читать композицию?

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

  1. не люблю писать комментарии
  2. не люблю людей, которые не пишут комментарии

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

"вернуться к тому, что мы сказали", Поскольку вы спросили, китайские иероглифы могут писать код. по фактуjavaВ принципе можно писать китайскими иероглифами,属性,方法,JVM虚拟机Его также можно выполнить путем компиляции. Просто такой код не очень хорошо поддерживается, и очень хлопотно говорить о искаженных символах. Кроме того, что, если кто-то пишет диалекты!

хорошо! Затем мы будем использовать китайские иероглифы, чтобы написать абзац оSpringAopкейс!

2. Среда разработки

  1. JDK 1.8.0
  2. Spring 4.3.24.RELEASE
  3. Загрузка исходного кода, задействованная в этой статье, вы можете обратить внимание на"публика":bugstack虫洞栈Получите, и вы можете получить более оригинальные чехлы.

3. Техническая реализация

Чтобы сделать этот случай более реалистичным, мы моделируем电影清朝韦小宝时期, процесс входа евнуха во дворец. Грубо говоря, то естьSpringизAOPлицом к лицу,программирование.

Прежде чем делать дело, давайте сначала разберемсяAOPОсновные понятия;

  1. @Aspect, аннотация, определяющая аспект
  2. @Pointcut, pointcut, как правило, задают подстановочное выражение для метода
  3. @Around, оберните, вот где будет обрабатываться ваш исходный метод
  4. @Before, предварительная обработка
  5. @After, Постобработка

1. Определите аспекты

Запретный город, Управление внутренних дел, Комната благоговения.

@Aspect
@Component
public class 净身监管 {

    @Pointcut("execution(public * 紫禁城.内务府.敬事房.利器库..*.军刺切(..))")
    public void 监管员(){

    }

    @Before("监管员()")
    public void 敬事前(){
        System.out.println("敬事前:---------准备下刀... ...");
    }

    @After("监管员()")
    public void 敬事后(){
        System.out.println("敬事后:---------切面完成... ...");
    }

    @Around("监管员()")
    public Object aroundMethod(ProceedingJoinPoint pjp) throws Throwable {

        System.out.println("待切身份:"+pjp.getArgs()[0]);
        System.out.println("执行工具:"+pjp.getSignature().getName());

        //获得传递对象,并做处理
        太监膑 太监 = (太监膑) pjp.getArgs()[0];
        SimpleDateFormat timeFormat = new SimpleDateFormat("yyyy-MM-dd");
        太监.set敬事日期(timeFormat.format(new Date()));

        //此处可以传递更改后的参数
        Object obj = pjp.proceed(new Object[]{太监});

        return obj;

    }

}
  • @Aspect, который определяет класс аспекта, который используется для обработки операций программирования аспектов в программе.
  • @Pointcut("execution(public * 紫禁城.内务府.敬事房.利器库..*.军刺切(..))"), определите точки касания и выполните операции касания с этими методами. В дополнение к таким операциям также могут быть определены пользовательские аннотации. Затем, пока вы добавляете пользовательскую аннотацию, подобную этой, к нужному вам методу, вы можетеAOPперехват.
  • @Before("监管员()"),@After("监管员()"), запишите записи до и после выполнения среза.
  • @Around("监管员()"), используемый для усовершенствования метода объемного звучания, здесь можно обработать некоторую атрибутивную информацию в методе, например добавить время в поле.Дата чести Eunuch.set (timeFormat.format (новая дата ()));

2. Установите исполняемый метод аспекта

Запретный город. Управление внутренних дел. Комната благоговения. Склад Sharp. Оборудование для удаления.java

@Component("切除")
public class 切除器具 {

    public 太监膑 军刺切(太监膑 太监){
        太监.set性别(宦官.太监.name());
        System.out.println("... 啊 ... ...老子被切面了!"+太监.get姓名());
        return 太监;
    }

}
  • Метод этого класса — это pointcut, определенный выше,Pointcut, то есть метод, который будет нарезан.

3. Выполните класс фасетной операции

Запретный город Дом внутренних дел.

public class 张三丰执刀 {

    public static void main(String[] args) {

        ApplicationContext ctx = new ClassPathXmlApplicationContext("皇太极.xml");

        太监刑 太监行刑 = ctx.getBean("太监刑",太监刑.class);

        太监膑 太监 = new 太监膑();
        太监.set姓名("小德张");
        太监.set年龄("9");
        太监.set性别(宦官.男.name());

        太监 = 太监行刑.执行切除(太监);

        System.out.println("\r\n切除状态:"+太监);
    }

}
  • Прежде всего, здесь определено, чтобы получитьSpringаннотированныйApplication, чтобы мы получилиBean.
  • Затем определите класс объекта, который в основном передает определенную информацию о параметрах методу, выполняющему аспект для операции.
  • Наконец, выводится информация о результате, то есть мы можем видеть метод, которым конкретно оперирует фасет.

4. Результаты испытаний

1. Содержание исполнения

способ запуска;紫禁城.内务府.敬事房.执刀人.张三丰执刀.java

待切身份:太监膑 [姓名=小德张, 年龄=9, 性别=男, 敬事日期=]
执行工具:军刺切
敬事前:---------准备下刀... ...
... 啊 ... ...老子被切面了!小德张
敬事后:---------切面完成... ...

切除状态:太监膑 [姓名=小德张, 年龄=9, 性别=太监, 敬事日期=2020-05-05]

Process finished with exit code 0

2. Рендеринг

切面运行效果图
Секционная диаграмма бегущего эффекта

V. Резюме

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

  • В последнее время у меня добавилось много мелких партнеров, которые только начали изучать программирование, и много мелких вопросительных знаков. Например;

    切面运行效果图
    Секционная диаграмма бегущего эффекта

    Я настоятельно рекомендую сначала запустить, написать больше кода, а затем медленно изучать принцип!

  • Недавно слышал стихотворение, неплохое;廿四桥边廿四风,凭栏犹忆旧江东。夕阳返照桃花渡,柳絮飞来片片红。, белые сережки становятся фоном на фоне цветущего персика на закате片片红. Пока вы осмеливаетесь быть знающими, у вас будет сила, чтобы опрокинуть море.

6. Пасхальные яйца

CodeGuide | Руководство кодера по кодированию Go!
Эта кодовая база представляет собой краткое изложение процесса обучения и технологии автора Сяо Фу, который много лет занимается первоклассной разработкой Java для Интернета. склонен писать основное содержание Java. Если этот репозиторий может вам помочь, поддержите его (подпишитесь, лайкните, поделитесь)!

CodeGuide | 程序员编码指南
CodeGuide | Руководство кодера по кодированию

стек червоточины
Осаждайте, делитесь, растите и позвольте себе и другим что-то получить!
Автор, Сяо Фу, уже много лет занимается передовой разработкой Java для Интернета.На протяжении 19 лет он составлял техническое резюме своей работы и процесса обучения, стремясь предоставить каждому более четкое и подробное изучение основных навыков. документ. Если эта статья может вам помочь, пожалуйста, поддержите (подпишитесь, лайкните, поделитесь)!