当前位置:网站首页>Dix ans d'expérience dans le développement de programmeurs vous disent quelles compétences de base vous manquez encore?
Dix ans d'expérience dans le développement de programmeurs vous disent quelles compétences de base vous manquez encore?
2022-07-02 09:06:00 【Programmeur】
Un.、Analyse des sources
L'analyse des sources est une connaissance critique,Pour maîtriser cette connaissance critique,Peut être immuable,L'analyse des sources est ennuyeuse pour beaucoup de gens,C'est dur à comprendre..
Lecture du code source,Je pense qu'il y a trois points principaux:Base technique+Une forte curiosité intellectuelle+Patience.
Je pense que c'est le principal moteur de la lecture du code source.Je vois la plupart des programmeurs,Attitude à l'égard de l'apprentissage,En gros, ce sont ces niveaux.(C'est extrême.):
Se concentrer uniquement sur le projet lui - même,Je ne comprends pas.baiduUn instant..
En plus de bien faire le projet,Et lire des livres techniques sur le projet,Regarde.wikipedia.
En plus de lire des livres liés au projet,Et lireITLivres de l'industrie,Comme apprendre.JavaHeure,Et apprendre le langage de fonction,Par exemple:LISP.
Trouvez des projets open source,Essais approfondis de cadres tiers,Et écriredemo.
Lire le cadre de base、J2EESpécifications、DebugNoyau du serveur.
La plupart des procédures sont les suivantes:1Espèce,À la5L'élevage exige plus qu'un grand intérêt,Il faut du courage.:Je peux lire??En fait...,Tu peux lire..
Patience,C'est vraiment important.Parce que vous voyez rarement des articles ou des livres d'orientation qui lisent le code source,Et personne ne vous a demandé ou suggéré de lire.Vous êtes souvent coincé en lisant,Et un propriétaire de carte pourrait être coincé dans un labyrinthe.À ce moment - là,,Ce que vous devez faire,Ça pourrait être une interruption temporaire.,Regardez - le de l'extérieur.:Par exemple:APIStructure、Dessin du cadre.
La figure ci - dessous résume les points de connaissance des sources que je devrais apprendre le plus à l'heure actuelle.:

2.、Architecture distribuée
Les systèmes distribués sont un sujet ancien et vaste , Et ces dernières années, “Big Data” La montée du concept, Une nouvelle jeunesse et une nouvelle vitalité .En plus de ça,, Le système distribué est également un sujet qui met l'accent à la fois sur le modèle théorique et les techniques d'ingénierie . Par rapport à l'apprentissage automatique , Les étudiants qui étudient les systèmes distribués ont tendance à se sentir :“Facile à démarrer,C'est dur d'aller plus loin.”.C'est vrai., Il faut peu de connaissances mathématiques pour apprendre les systèmes distribués .
Les systèmes distribués sont un domaine de recherche complexe et vaste,Apprenez un ou deux cours en ligne,Lire un ou deux livres peut ne pas couvrir tout son contenu.
En général, La tâche d'un système distribué est de combiner organiquement plusieurs machines 、Connectez - vous., Qu'ils travaillent ensemble pour accomplir une tâche , Peut être une tâche de calcul , Ou une tâche de stockage . Si nous devions classer les recherches récentes sur les systèmes distribués , Personnellement, je pense qu'il pourrait y avoir trois parties :
Système de stockage distribué
Systèmes informatiques distribués
Système de gestion distribué
La figure ci - dessous est un résumé de la technologie distribuée la plus courante au cours des dernières années :

Trois、Microservices
Actuellement, les micro - services sont très chauds , Tout le monde prétend utiliser l'architecture des microservices , Mais qu'est - ce qu'une architecture de microservices? ? L'architecture des microservices est - elle une tendance? ?Pour ces questions, Nous manquons tous de clarté .
Pour résoudre divers problèmes dans le cadre d'une architecture monomère ,L'architecture des microservices a vu le jour. Au lieu de construire un énorme 、 Un monstre difficile à apprivoiser , Il vaut mieux diviser le service plus tôt. . L'idée centrale du micro - service est la séparation et le découplage des services ,Réduire la complexité. Le micro - service met l'accent sur le démontage fonctionnel , Assurer une fonctionnalité unique pour chaque service dans la mesure du possible , Selon le principe de la responsabilité unique (Single Responsibility Principle)Clarifier les rôles. Rendre les services plus légers , Pour être flexible 、Réutilisable, En fonction des besoins en ressources propres de chaque service , Déploiement séparé , Étendre horizontalement séparément .
Le graphique ci - dessous résume les points de connaissance que j'ai besoin d'apprendre sur les microservices :

Quatre、Optimisation des performances
Qu'il s'agisse de faire face à une entrevue de première ligne ou d'améliorer l'expérience du produit , L'optimisation des performances est un sujet incontournable .
L'objectif de l'optimisation est de permettre aux utilisateurs d'avoir “Allez”Des sentiments, Comment les utilisateurs se sentent - ils rapides? ?
La vitesse de chargement est vraiment rapide , L'utilisateur ouvre l'URL d'entrée et appuie sur Entrée pour voir la page immédiatement
La vitesse de chargement n'est pas plus rapide , Mais les utilisateurs pensent que votre site est rapide
L'optimisation des performances dépend de plusieurs facteurs , Y compris la collecte des ordures 、 Machines virtuelles et systèmes d'exploitation sous - jacents (OS)Paramètres. Il existe plusieurs outils à la disposition des développeurs pour l'analyse et l'optimisation ,Vous pouvez lire Java Tools for Source Code Optimization and Analysis Pour apprendre et utiliser .
Il faut comprendre que , Il n'y a pas deux applications qui peuvent utiliser la même optimisation , Et il n'y a pas d'optimisation parfaite java Chemin de référence de l'application . Utiliser les meilleures pratiques et insister pour que l'optimisation du rendement soit traitée de façon appropriée . Pour une optimisation vraiment maximale des performances ,Vous êtes Java Développeurs,Oui. Java Machine virtuelle(JVM) Bonne compréhension du système d'exploitation sous - jacent .
Les cinq systèmes de connaissances ci - dessus sont l'expérience que j'ai acquise au cours de mes années de pratique ,Sont les technologies les plus courantes.
Voici quelques - uns des principaux ensembles de connaissances que je résume que l'optimisation du rendement devrait apprendre à comprendre :

Cinq、JavaIngénierie
Le travail est bon.,Il faut d'abord utiliser ses outils.,Que ce soit petit blanc,Ou le développement avancé,Il faut d'abord choisir les bons outils. Améliorer l'efficacité du développement .Laissez - vous plus de temps pour réfléchir.

边栏推荐
- Select sort and insert sort
- commands out of sync. did you run multiple statements at once
- Oracle related statistics
- Webflux responsive programming
- Nacos 下载启动、配置 MySQL 数据库
- Solution and analysis of Hanoi Tower problem
- C# 百度地图,高德地图,Google地图(GPS) 经纬度转换
- Synchronize files using unison
- 2022/2/13 summary
- CSDN Q & A_ Evaluation
猜你喜欢

【Go实战基础】gin 高效神器,如何将参数绑定到结构体

HackTheBox-Gunship

Programmer training, crazy job hunting, overtime ridiculed by colleagues deserve it

Application of kotlin - higher order function

Sqli labs Level 2

十年开发经验的程序员告诉你,你还缺少哪些核心竞争力?

以字节跳动内部 Data Catalog 架构升级为例聊业务系统的性能优化

Openshift build image

Move a string of numbers backward in sequence

远程连接IBM MQ报错AMQ4036解决方法
随机推荐
Gocv image cutting and display
Sentinel reports failed to fetch metric connection timeout and connection rejection
Solution and analysis of Hanoi Tower problem
There is a problem with MySQL installation (the service already exists)
QT -- how to set shadow effect in QWidget
Openshift build image
C# 调用系统声音 嘀~
Gocv image reading and display
Installing Oracle database 19C RAC on Linux
Minecraft群組服開服
寻找链表中值域最小的节点并移到链表的最前面
Linux安装Oracle Database 19c
gocv opencv exit status 3221225785
Benefits of ufcs of D
【Go实战基础】如何安装和使用 gin
2022/2/14 summary
1、 QT's core class QObject
Qt QTimer类
OpenShift构建镜像
Linux二进制安装Oracle Database 19c