Psyde
Un autre endroit pour utiliser XMIND pour enregistrer des problèmes CS de base est également .xmind Les fichiers source et les fichiers .pdf exportés. La version XMind est "XMIND 2020".
En 2020, il a fallu environ 2 mois pour organiser la première base de connaissances XMind: Zeromind. La raison pour laquelle j'ai créé un dépôt supplémentaire pour faire la même chose est parce que d'une part, mon esthétique a changé, et d'autre part, j'ai une compréhension plus profonde des problèmes les plus importants mais de base.
Confucius ne me trompera jamais en examinant le passé et en apprenant le nouveau. Dans le processus de réglage des points de connaissance de base, j'ai ma propre compréhension du contenu tel que CFS-Vruntime, Posix Condition Variables, TCP et Epoll, et j'ai l'impression de le réaliser soudainement.
La raison pour laquelle j'utilise XMind pour enregistrer ces contenus est parce que j'aime beaucoup une ligne dans "Martian Rescue":
Parfois, toutes les situations seront mauvaises pour vous. Lorsque toutes les mauvaises choses se produisent ensemble, vous pouvez penser que c'est tout, c'est ma fin. Face à cette situation, vous l'acceptez ou trouvez un moyen de le résoudre, et c'est le vrai sens de tout. Pour résoudre le problème, vous pensez à diverses façons de résoudre un problème, puis à résoudre le problème suivant, en répétant le cycle, et lorsque vous résolvez suffisamment de problèmes, vous pouvez rentrer chez vous.
En d'autres termes, face à un gros problème, vous devez apprendre à le décomposer en petits problèmes un par un, puis à y faire face un par un, c'est-à-dire «la diviser et la conquérir». Voici quelques images qui peuvent vous aider à mieux comprendre ce que fait ce projet:

? Table des matières
- Base de données
- Système distribué
- Middleware
- Programmation du réseau Linux
- Système opérateur
- Golang
- Kubernetes
- C ++
? Base de données
Mysql
- Pourquoi MySQL utilise-t-il B + Tree?
- Structure de la page de données InNODB
- Index innodb
- Innodb Wal
- Innodb Group Commit
- Innodb UNDO LOG et MVCC
- Verrouillage mondial, verrouillage au niveau de la table et verrouillage des lignes (partie 1)
- Verrouillage mondial, verrouillage au niveau de la table et verrouillage des rangs (milieu)
- Verrouillage mondial, verrouillage au niveau de la table et verrouillage des lignes (partie 2)
- Sélection de la clé primaire
- Optimiseur basé sur les coûts MySQL
- Une brève analyse du principe de travail de MySQL JOIN
- MySQL Replication - Asynchrone et Replication parallèle
- MySQL GTID et réplication semi-synchrone
Postgresql
- Index des tables et des tables de tas agrégées
- Structure de stockage postgresql
- MVCC dans PostgreSQL
- Contexte de la mémoire dans PostgreSQL (MMeoryContext)
- Structure de l'arbre de requête postgresql (requête)
- RBO - Promouvoir la sous-connexion (concept de base)
- RBO - Sous-connexion à levage (processus spécifique)
- Syscache dans PostgreSQL
Écorchure verte
- Aperçu de l'architecture GreenPlum
- Pourquoi le mouvement est-il nécessaire?
Autres
- Structure de données redis
- Redis Master-Slave Replication Principle
- Politique de mise à jour du cache
- Présentation du cluster Redis
- ETCD
- Mise en œuvre des verrous distribués
Système distribué
Protocoles et algorithmes distribués

- 2pc
- Théorie de la plafond
- Problème général byzantin (consensus)
- Paxos de base
- Radeau - élection de leadership et réplication du logarithme
- Gossip - les potins atteignent la cohérence finale
- Quorum NWR - Cohérence personnalisée
⚗️ Middleware
- Message fiable Middleware-Rabbitmq
Programmation de réseaux Linux
- Signal
- Définition du signal et masque de signal
- Création d'un processus
- Introduction à la communication inter-processus
- DÉMON
- Protocole de transmission de données fiable-TCP
- Contrôle de la congestion TCP
- Une liste de problèmes de programmation de socket (01)
- Une liste de problèmes de programmation de socket (02)
- Analyse du principe d'Epoll
- epoll_event
- Processus de poignée HTTPS
- Modèle de processus de base Nginx et structure de données de base
⚡ Système d'exploitation
- Processus, threads et planification Linux
- Mémoire virtuelle Linux
- Notes de mémoire Linux (01)
? Golang
- Conception et utilisation du canal
- Conception de cartes et synchronisation d'extension
- Modèle GMP
- Marques en trois couleurs GC clairs
? Kubernetes
- Pourquoi avez-vous besoin d'un pod?
- Comment une API déclarative est-elle mise en œuvre?
? C ++
commun
Programmation orientée objet
FAIRE
Contrôle de copie
- Copier la construction et copier l'affectation
- LV VS RV
- Structure mobile et affectation mobile
- Trois / cinq règles
Modèle et programmation générique
- Utilisation de base du modèle
- Problèmes de référence universelle et d'inférence de type
- En avant parfait
Type lié
- Conversion de type de cas
- Inférence de type automatique (auto)
- déclarant
Programmation de fonction
- Expression de lambda
- Objet appelable - STD :: Fonction
Pointeur intelligent
- Heap, Stack et Raii: comment gérer les ressources en C ++
- Raii et pointeur intelligent
- shared_ptr
Programmation simultanée
- Processus, threads et planification Linux
- Création et exécution des fils
- std :: async vs std :: futur
- Mutex et Std :: Lock_guard, Std :: UNIQUE_LOCK
- Modifications d'état de la notification - Variable de condition Posix
- Modifications d'état de la notification - variable de condition C ++
- Semaphore POSIX
Compilation et liaison