GitHub.com/snail Climb/…: облегченная структура HTTP, которая имитирует Spring Boot, но отличается от Spring Boot.
Прошло полмесяца с тех пор, как я в последний раз сообщал друзьям о завершении упрощенной версии "Spring Boot". Время летит так быстро!
01
За последние две недели моя структура HTTP поддерживала такие функции, как АОП, перехватчик (также разновидность АОП) и чтение файла свойств.👏
В настоящее время вся структура HTTP в основном имеет все функции, которые я изначально хотел реализовать. Это тоже можно расценивать как исполнение обещания, и начало и конец хорошие.
Конкретная реализация функции выглядит следующим образом:
Многие читатели могут подумать, что мне легче писать. Однако, если честно, я тоже столкнулся со многими проблемами в процессе написания. Чтобы решить некоторые проблемы, возникающие при написании этого фреймворка, я не спал много ночей и вставал много раз раньше.
Я не фанатик. Обычно я играю в King of Glory несколько игр после 9:30 вечера и ложусь спать около 12:00. Утром я обычно встаю около 8 утра. Почти каждый день.
Однако при написании этого HTTP-фреймворка я помню, как 3 раза не спал до 2 часов ночи. Есть 2 утра, из-за "вдохновения" я встал в 5:00, чтобы написать код.
Я говорю это не для того, чтобы заставить людей почувствовать, как усердно я пишу, и не для того, чтобы показать, как усердно я работаю.
Это все очень распространенный опыт! Я думаю, что большинство программистов испытали:
- Глубокой ночью вдруг что-то не так с кодом, который я написал, и я не хочу спать, пока не решу это.
- Однажды утром я внезапно проснулся, охваченный вдохновением, включил компьютер и начал писать код.
Тем не менее, я действительно не рекомендую ложиться спать поздно! Что касается меня, то каждый раз, когда я поздно ложусь спать, я теряю энергию на следующий день или даже на третий день, что серьезно повлияет на мою эффективность. Это лишь краткосрочное воздействие позднего ночного отдыха, если у вас есть нездоровая длительная работа и отдых, это определенно будет особенно вредно для организма.
Я понимаю правду, но большинство из них, как и я, иногда не спят всю ночь.
02
Структура каталогов всего фреймворка выглядит следующим образом:
- Часть реализации фреймворка организована в соответствии с различными функциональными модулями, что более интуитивно понятно.
- Предоставляется полный пример использования фреймворка, а также для него пишутся тесты.
03
Прелесть открытого исходного кода в том, что другие могут оставить отзыв о вашем проекте, а если вы встретите друзей, которым интересен ваш проект, они помогут вам вместе улучшать и развивать проект.
Возьмем, к примеру, jsoncat. После того, как исходный код jsoncat был открыт, в разработке принял участие старик по имени «hellohello-tom».
Код Тома очень хорошо написан, помогая jsoncat реализовать множество функций! Большое тебе спасибо! люблю тебя! братан!
Мы часто общаемся в WeChat из-за этого проекта, может в этом прелесть программирования! Хахаха!
Обычно я не общаюсь в WeChat, но из-за этого проекта с открытым исходным кодом я много общался со своим братом.
Только что сделал два снимка:
Я думаю, что более табу разрабатывать проект только самому. У всех есть ограничения, и трудно увидеть, где ваш код нуждается в улучшении, а где есть проблемы.
Это также объясняет, почему проверка кода так важна в процессе разработки программного обеспечения.
Проверка кода может быть очень эффективной для улучшения общего качества кода, потому что помогает нам обнаружить неприятные запахи и возможные проблемы в коде.
04
На самом деле, простая реализация функции не занимает слишком много времени.Большую часть времени я тратил на рефакторинг существующего кода.
В конце концов, одна из основных целей моего фреймворка HTTP с открытым исходным кодом — учиться у моих друзей, которым это нужно, я должен обеспечить читабельность кода, который я пишу.
С этой целью я поставил себе следующие принципы в процессе написания кода:
- Держите все просто: можно использовать наименьший кодпиши понятноФункция не должна использовать более одной строки кода.
- Не злоупотребляйте шаблонами проектирования: Когда я впервые писал код, мне особенно нравилось злоупотребление шаблонами проектирования. Если вы изучите какой-либо шаблон проектирования, вы сможете сразу же использовать его в собственном проекте, даже если этот шаблон проектирования не подходит для текущего бизнес-сценария. Это действительно плохая привычка, однако я намеренно избегал этой проблемы при написании этого HTTP-фреймворка. В настоящее время вся структура использует только одноэлементный шаблон, шаблон фабрики, шаблон стратегии и шаблон цепочки ответственности.
- Следите за чистотой структуры кода: открытый исходный код написан для того, чтобы люди могли его видеть, а четкая структура кода может значительно упростить понимание кода другими людьми.
- Осторожно извлеките инструменты: Когда я впервые написал этот фреймворк, я нарисовал множество классов инструментов. В конце концов я обнаружил, что методы во многих классах инструментов на самом деле используются только в одном месте и могут использоваться только в этом месте в будущем. В настоящее время я думаю, что лучший способ — поместить эти методы служебного класса в единственный класс, который использует этот метод. Это сделает общую структуру кода более понятной.
- Не демонстрировать навыки: Когда я впервые начал писать код, мне особенно нравилось показывать навыки. Например, когда Java 8 не была популярна, я всегда думал об использовании лямбда-выражений Java 8, функциональных интерфейсов и других новых возможностей при написании кода. В то время, когда я работал над проектом со своим учителем, другие одноклассники все еще думали, что мое письмо было особенно потрясающим, потому что они думали, что им нужно много времени, чтобы понять. Однако теперь я чувствую, что практика того времени на самом деле отличалась от сути разработки/программирования программного обеспечения.Суть программирования не в том, чтобы уменьшить количество кода, а в том, чтобы написать код, который другим будет легко понять и написать система, которую легче обслуживать. Код, который вы пишете, предназначен не только для вас, но и для понимания другими, что снижает стоимость чтения и обучения для других. Это не противоречит всему, что я сказал в первом пункте.
Давайте просто поговорим об этом сегодня! Еще не рано!
Мои рекомендации по проектам с открытым исходным кодом
- 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.