В настоящее время широко используемые аннотации, связанные с Spring MVC, такие как
@GetMapping
,@PostMapping
,@PathVariable
Сделанный. Я также открыл исходный код проекта, адрес:GitHub.com/snail Climb/….Оригинальный открытый исходный код не прост, если вы считаете, что это хорошо, вы можете дать 1 звезду добросовестному автору, чтобы поощрить его!
Сегодня солнечный день, а я, как обычно, сижу на подоконнике и "в оцепенении" смотрю на компьютер. Ведь выходные, поэтому технической галантереей делиться не буду.
Просто поговорите со своими друзьями о том, что вы делаете в последнее время и начали делать.
01 Рефакторинг JavaGuide
Мы часто чувствуем отвращение к коду, который мы написали в первые дни, и это одна из важных причин, почему многие проекты остаются незавершенными и плохо поддерживаются.
То же самое относится и к писательству, и мне часто кажется, что мое раннее творчество похоже на кусок дерьма. Причина этого явления проста! Я думаю, что могут быть две основные причины:
- Чем больше знаний вы накопили, тем глубже ваше понимание определенного пункта знаний.
- В отличие от других типов статей, технические статьи сами по себе нуждаются в постоянном улучшении, и содержание статей будет улучшаться.
Итак, в течение последних нескольких месяцев я находил время, чтобыJavaGuideНекоторые из более ранних статей, такие как Java Basics, Java Collection Framework, Zookeeper, Redis и другие, подверглись значительному рефакторингу.
В конце концов, время ограничено, а я по-прежнему сосредотачиваю свои основные силы на написании кода. Поэтому некоторые статьи еще не начали рефакторить, например содержание раздела структуры данных.
Я с нетерпением жду вклада наших друзей! Пусть Brother Guide потратит больше времени на написание кода, хе-хе!
02 Написал простой фреймворк RPC
Когда я учился в колледже, я использовал фреймворки RPC, такие как Dubbo, и у меня есть небольшое понимание принципов фреймворков RPC.
Так когда-либо! Во время эпидемии я был не очень занят работой, поэтому задумался, не хочу ли я написать RPC-фреймворк, чтобы поиграть с ним.
Просто сделай это! У меня ушло 3 месяца до и после, я использовал свободное время, чтобы написать простой RPC-фреймворк (Игрушка), по имениguide-rpc-framework. Эта структура основана на Netty+Kyro+Zookeeper и интегрирует Spring.
Шутки в сторону! Действительно, было потрачено много сил. Хотя принцип этой штуки не сложный, нужно время, чтобы написать хорошо.
В настоящее время у этого проекта 0,7 тыс. звезд. Спасибо, ребята, за вашу поддержку!
Подобный проект с открытым исходным кодом определенно станет плюсом в вашем резюме!
Более того, когда я сам писал фреймворк RPC, я углубил свое понимание принципов фреймворка RPC. В процессе реализации кода я столкнулся со многими проблемами, и в процессе решения проблем я также улучшил свои навыки программирования и решения проблем. в конце концов,Приют — это средство, которое может улучшить их возможности системного программирования.
03 Напишите упрощенную версию Spring Boot
Да! Я собираюсь начать строить следующее колесо, упрощенную версию Spring Boot! У меня есть имя, оно называется "jsoncat".
Имя не имеет особого значения, просто потому, что фреймворк в настоящее время позиционируется только для возврата данных типа json во внешний интерфейс, поэтому json добавляется к имени.
На самом деле, говорят, что это упрощенная версия Spring Boot, но она просто имитирует функции, предоставляемые Spring Boot, и самостоятельно пишет аналогичный облегченный HTTP-фреймворк. (Функционал, экологичность, стабильность и другие аспекты нельзя сравнивать со Spring Boot!)
Для конкретной реализации, давайте сначала кратко поговорим, а потом я напишу отдельную статью, чтобы поделиться. Я буду использовать Netty для написания простого HTTP-сервера, в основном используемого для обработки HTTP-запросов. Для других модулей я постараюсь уменьшить количество сторонних зависимостей с учетом читабельности кода. Поэтому весь каркас будет относительно легким.
Кроме того, код будет написан максимально просто, без умышленной демонстрации навыков. Я также поделюсь тем, что узнал, написав эту простую HTTP-инфраструктуру. конечно! Если вы хотите увидеть исходный код, я также открою его.
Я пишу эту вещь только для своих личных увлечений, в основном для улучшения моих навыков кодирования. Также рекомендуется постараться воплотить свои мысли в жизнь.
Теория важна, но теория, оторванная от практики, ненадежна.
По сравнению с CRUD, безусловно, интереснее построить колесо самостоятельно, и это также может тренировать ваши способности программирования и способность решать проблемы.
Текущее мнение состоит в том, что версия 1, по крайней мере, способна правильно обрабатывать запросы Get и Post. На данный момент я в основном закончил его писать. По сравнению с ранее реализованным фреймворком RPC это в целом немного проще.
Тем не менее, большую часть времени все еще думают о том, как сделать код более надежным, читабельным и простым в обслуживании!
В качестве отступления, чтобы облегчить чтение кода, помимо понимания идеи объектно-ориентированного программирования, неизбежно использование шаблонов проектирования.
04 Светская беседа
К тому времени, когда вы, ребята, читаете это, я уже гулял со своим лучшим другом из колледжа.
Не виделись больше полугода.Интересно,поправилась ли моя подруга сейчас? Во всяком случае, я набираю вес.
05 Мой проект с открытым исходным кодом
- JavaGuide: «Java Learning + Interview Guide» охватывает основные знания, которые необходимо освоить большинству Java-программистов. Подготовьтесь к собеседованиям по Java с помощью JavaGuide!
- guide-rpc-framework: Пользовательская структура RPC, реализованная Netty+Kyro+Zookeeper (Специальная структура RPC, реализованная Netty+Kyro+Zookeeper — с подробным процессом реализации и соответствующими руководствами).
- jsoncat: облегченная структура HTTP, которая имитирует Spring Boot, но отличается от Spring Boot.
- programmer-advancement: Несколько хороших привычек, которые должны быть у программиста + обязательные к прохождению интервью!
- springboot-guide: Не только Spring Boot, но и важные знания Spring
- awesome-java: Коллекция потрясающих Java-проектов на Github.