Un système communautaire basé sur Spring Boot, MyBatis-Plus, MySQL, Redis, ElasticSearch, MongoDB, Docker, RabbitMQ et d'autres piles technologiques. Il adopte l'architecture technologique Internet traditionnelle, une nouvelle conception d'interface utilisateur, prend en charge le déploiement du code source en un clic et est complet. articles et publication du didacticiel/recherche/commentaire/processus statistique, etc. Le code est entièrement open source sans aucune encapsulation secondaire. Il s'agit d'un projet communautaire moderne qui est très adapté au développement secondaire/au combat pratique.
1. Services de soutien
- Site technique : https://paicoding.com
- Tutoriel technique : https://paicoding.com/column Actuellement, le manuel de haute concurrence, le manuel JVM, le manuel de programmation simultanée Java, le chemin avancé Java du deuxième frère et certains tutoriels gratuits du groupe technique ont été mis à jour. Notre objectif est : apprendre la programmation et devenir technique ?
- Code source du terminal de gestion d'école technique : paicoding-admin
- Cercle d'apprentissage exclusif pour les techniciens : pas de détours, moins d'embûches, avec un ensemble complet de 120 tutoriels techniques
- Pai Smart AI Assistant : Comment pouvons-nous être laissés pour compte à l'ère de l'IA ? Bienvenue pour découvrir l'assistant technique Pai Smart AI.
- Entrepôt cloud de code : https://gitee.com/itwanger/paicoding (l'accès domestique est plus rapide)
2. Présentation du projet
Démonstration du projet
Système communautaire à la réception
- Dépôt du projet (GitHub) : https://github.com/itwanger/paicoding
- Entrepôt de projet (nuage de code) : https://gitee.com/itwanger/paicoding
- Adresse de démonstration du projet : https://paicoding.com
Version Vue version séparée front-end et back-end
Cette version effectue un développement secondaire pour l'école technique, réécrit l'interface utilisateur frontale côté utilisateur à l'aide de Vue3 et met à niveau le back-end vers la version Spring Boot 3. Les golfeurs qui aiment les versions Vue3 ou Spring Boot 3 peuvent consulter cette branche. .
- Dépôt du projet (GitHub) : https://github.com/itwanger/paicoding/tree/springboot3%26vue3
- Entrepôt de projet (nuage de code) : https://gitee.com/itwanger/paicoding/tree/springboot3%26vue3
- Adresse de démonstration du projet (golfeur Xiao Huifei) : https://www.xuyifei.site/
Système communautaire back-end
- Dépôt du projet (GitHub) : https://github.com/itwanger/paicoding-admin
- Entrepôt de projet (nuage de code) : https://gitee.com/itwanger/paicoding-admin
- Adresse de démonstration du projet : https://paicoding.com/admin-view
Affichage des codes
Schéma d'architecture
Schéma d'architecture du système
Schéma d'architecture d'entreprise
structure organisationnelle
paicoding
├── paicoding-api -- 定义一些通用的枚举、实体类,定义 DODTOVO 等
├── paicoding-core -- 核心工具/组件相关模块,如工具包 util, 通用的组件都放在这个模块(以包路径对模块功能进行拆分,如搜索、缓存、推荐等)
├── paicoding-service -- 服务模块,业务相关的主要逻辑,DB 的操作都在这里
├── paicoding-ui -- HTML 前端资源(包括 JavaScript、CSS、Thymeleaf 等)
├── paicoding-web -- Web模块、HTTP入口、项目启动入口,包括权限身份校验、全局异常处理等
Instructions de configuration de l'environnement
La configuration des ressources est placée sous le chemin des ressources du module paicoding-web
, et l'environnement est sélectionné et commuté via l'env de maven.
Actuellement quatre environnements de développement sont fournis
- resources-env/dev : environnement de développement local, également l'environnement par défaut
- resources-env/test : environnement de test
- resources-env/pre : environnement de pré-version
- resources-env/prod : environnement de production
Commande de changement d'environnement
# 如切换生产环境
mvn clean install -DskipTests=true -Pprod
Description du fichier de configuration
- ressources
- application.yml : entrée du fichier de configuration principal
- application-config.yml : fichier de configuration des informations globales du site
- logback-spring.xml : fichier de configuration lié à l'impression du journal
- liquibase : Gestion de la structure des tables de base de données par liquibase
- ressources-env
- xxx/application-dal.yml : définir les informations de configuration liées à la base de données
- xxx/application-image.yml : définir les informations de configuration associées pour le téléchargement d'images
- xxx/application-web.yml : définir les informations de configuration liées au Web
Description de la structure d'ingénierie frontale
Sélection technologique
Pile technologique back-end
technologie | illustrer | Site officiel |
---|
Printemps et PrintempsMVC | Cadre d'application Java full stack et implémentation de conteneur WEB | https://spring.io/ |
Démarrage de printemps | L'application Spring simplifie le cadre de développement intégré | https://spring.io/projects/spring-boot |
mybatis | Cadre de base de données ou de formulaire | https://mybatis.org |
mybatis-plus | Cadre de base de données ou de formulaire | https://baomidou.com/ |
PageHelper mybatis | Plug-in de pagination de base de données | https://github.com/pagehelper/Mybatis-PageHelper |
recherche élastique | Recherche de texte en temps quasi réel | https://www.elastic.co/cn/elasticsearch/service |
redis | Stockage de données en mémoire | https://redis.io |
lapinmq | file d'attente des messages | https://www.rabbitmq.com |
mongodb | Base de données NoSQL | https://www.mongodb.com/ |
nginx | serveur | https://nginx.org |
docker | moteur de conteneur d'applications | https://www.docker.com |
hikariCP | Connexion à la base de données | https://github.com/brettwooldridge/HikariCP |
OSS | stockage d'objets | https://help.aliyun.com/document_detail/31883.html |
https | Certificat | https://letsencrypt.org/ |
jwt | connexion jwt | https://jwt.io |
Lombok | Bibliothèque d'amélioration du langage Java | https://projectlombok.org |
goyave | Ensemble d'outils Java open source Google | https://github.com/google/guava |
feuille de thym | moteur de modèles HTML5 | https://www.thymeleaf.org |
fanfaronnade | Outil de génération de documentation API | https://swagger.io |
validateur de mise en veille prolongée | Cadre de validation | hibernate.org/validator/ |
médias rapides | traitement multimédia | https://github.com/liuyueyi/quick-media |
liquibase | Gestion des versions de base de données | https://www.liquibase.com |
jackson | traitement json/xml | https://www.jackson.com |
région ip2 | Adresse IP | https://github.com/zoujingli/ip2region |
prise Web | longue connexion | https://docs.spring.io/spring/reference/web/websocket.html |
mot-sensible | Mots sensibles | https://github.com/houbb/sensitive-word |
chatgpt | chatgpt | https://openai.com/blog/chatgpt |
iFlytek Spark | iFlytek Spark grand modèle | https://www.xfyun.cn/doc/spark/Web.html |
3. Tutoriels techniques
Il existe au total plus de 120 didacticiels techniques, dont 20 ont été sélectionnés pour que tout le monde puisse les apprendre gratuitement.
- (? Une lecture incontournable pour les nouveaux arrivants) Aperçu de l'architecture technique du système et des modules fonctionnels
- (? Une lecture incontournable pour les nouveaux arrivants) Comment un novice apprend-il à être technique ?
- (? Une lecture incontournable pour les nouveaux arrivants) Comment écrire des compétences techniques dans votre CV
- (? Une lecture incontournable pour les nouveaux arrivants) Conception d'architecture technique
- (? Une lecture incontournable pour les nouveaux arrivants) Conception de solutions techniques de l'école technique
- (? Une lecture incontournable pour les nouveaux arrivants) Processus de gestion de projet technique
- (? Une lecture incontournable pour les nouveaux arrivants) Architecture technique en couches MVC
- (? Une lecture incontournable pour les nouveaux arrivants) Manuel de construction de projet technique
- (? Fortement recommandé) Connectez-vous automatiquement au compte officiel technique WeChat
- (? Fortement recommandé) L'école technique utilise WeChat pour scanner le code QR pour se connecter.
- (? Fortement recommandé) Identification d'authentification par session technique/cookie
- (? Fortement recommandé) Cohérence technique du cache Mysql/Redis
- (? Fortement recommandé) Technical Redis implémente les classements actifs des utilisateurs
- (? Fortement recommandé) File d'attente des messages techniques RabbitMQ
- (? Fortement recommandé) File d'attente de messages techniques Pool de connexions RabbitMQ
- (? Fortement recommandé) File d'attente des messages techniques Kafka
- (? Fortement recommandé) Cancal, école technique, réalise la synchronisation entre MySQL et ES
- (? Fortement recommandé) Technical ES implémente la requête
- (? Fortement recommandé) Équipe technique pour mettre en œuvre les tâches planifiées
- (? Mettre les voiles) Pour ceux qui persévèrent jusqu’au bout, partons ensemble
4. Construction de l'environnement
outils de développement
outil | illustrer | Site officiel |
---|
IDÉE | outils de développement java | https://www.jetbrains.com |
Webstorm | outils de développement web | https://www.jetbrains.com/webstorm |
Chrome | Navigateur | https://www.google.com/intl/zh-CN/chrome |
ÉcranVersGif | enregistrement d'écran gif | https://www.screentogif.com |
SniPâte | capture d'écran | https://www.snipaste.com |
PicChoisir | Outils de traitement d'images | https://picpick.app |
Marquer le texte | éditeur de démarques | https://github.com/marktext/marktext |
boucle | requête de terminal http | https://curl.se |
Facteur | Débogage de l'interface API | https://www.postman.com |
dessiner.io | Dessin d'organigramme et de diagramme d'architecture | https://www.diagrams.net/ |
Axure | Outil de conception de prototypes | https://www.axure.com |
navigation | Outil de connexion à la base de données | https://www.navicat.com |
Castor | Outil de connexion à une base de données gratuit et open source | https://dbeaver.io |
iTerm2 | terminal Mac | https://iterm2.com |
terminal Windows | gagner un terminal | https://learn.microsoft.com/en-us/windows/terminal/install |
SwitchHosts | gestion des hôtes | https://github.com/oldj/SwitchHosts/releases |
environnement de développement
outil | Version | télécharger |
---|
jdk | 1,8+ | https://www.oracle.com/java/technologies/downloads/#java8 |
maven | 3.4+ | https://maven.apache.org/ |
mysql | 5,7+/8,0+ | https://www.mysql.com/downloads/ |
redis | 5.0+ | https://redis.io/download/ |
recherche élastique | 8.0.0+ | https://www.elastic.co/cn/downloads/elasticsearch |
nginx | 1.10+ | https://nginx.org/en/download.html |
lapinmq | 3.10.14+ | https://www.rabbitmq.com/news.html |
Ali Oss | 3.15.1 | https://help.aliyun.com/document_detail/31946.html |
git | 2.34.1 | http://github.com/ |
docker | 4.10.0+ | https://docs.docker.com/desktop/ |
chiffrons | certificat https | https://letsencrypt.org/ |
Étapes de construction
Tutoriel de déploiement local
Tutoriel étape par étape sur l'environnement de développement local
Tutoriel de déploiement de serveur cloud
Tutoriel de configuration de l'environnement et de déploiement basé sur le code source Tutoriel de démarrage du serveur
5. Liens amicaux
- toBeBetterjavaer : un guide d'apprentissage Java humoristique et facile à comprendre, couvrant des points de connaissances de base tels que les bases de Java, la programmation simultanée Java, la machine virtuelle Java, le développement Java au niveau de l'entreprise et les entretiens Java. Si vous souhaitez apprendre Java, devriez-vous rechercher le cheminement de votre deuxième frère vers l’avancement Java ?
- paicoding-admin : paicoding-admin, un outil de gestion technique, un système de gestion de communauté basé sur React18, React-Router v6, React-Hooks, Redux, TypeScript, Vite3, Ant-Design 5.x, Hook Admin, ECharts, assez bluffant .
6. Remerciements
Le groupe technique a reçu plusieurs licences de Jetbrains (cliquez ici pour plus de détails) et a été affecté aux développeurs actifs du projet. Nous sommes très reconnaissants à Jetbrains pour son soutien à la communauté open source.
7. Tableau de tendance des étoiles
8. Compte public
La première version PDF de la base de connaissances open source « Second Brother's Java Advanced Path » avec plus de 13 000 étoiles sur GitHub est enfin là ! Y compris la syntaxe de base Java, les tableaux et les chaînes, la POO, le framework de collection, Java IO, la gestion des exceptions, les nouvelles fonctionnalités Java, la programmation réseau, NIO, la programmation simultanée, JVM, etc., totalisant plus de 320 000 mots, ce qui peut être considéré comme facile pour comprendre. Drôle et humoristique... Détails : Génial, tutoriel Java avec plus de 13 000 étoiles sur GitHub.
Recherchez Silent King Er sur WeChat ou scannez le code QR ci-dessous pour suivre le compte public original d'Er Ge et répondez au 222 pour l'obtenir gratuitement.
9. Licence
Licence Apache 2.0
Copyright (c) École technique 2022-2024 (Lou Zai, Silent Wang Er, Yi Hui, Xiao Chao, Xiao Hui Fei)