当前位置:网站首页>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.
边栏推荐
- 判断是否是数独
- What is the future value of fluorite mine of karaqin Xinbao Mining Co., Ltd. under zhongang mining?
- Servlet全解:继承关系、生命周期、容器和请求转发与重定向等
- Tensorflow2 keras 分类模型
- Judge whether it is Sudoku
- 【Go实战基础】如何安装和使用 gin
- Hengyuan cloud_ Can aiphacode replace programmers?
- 一、Qt的核心类QObject
- Avoid breaking changes caused by modifying constructor input parameters
- History of Web Technology
猜你喜欢
【Go实战基础】gin 如何获取 GET 和 POST 的请求参数
[blackmail virus data recovery] suffix Crylock blackmail virus
Linux binary installation Oracle database 19C
Sqli labs Level 2
Flink-使用流批一体API统计单词数量
Qt——如何在QWidget中设置阴影效果
Aneng logistics' share price hit a new low: the market value evaporated by nearly 10 billion yuan, and it's useless for chairman Wang Yongjun to increase his holdings
MYSQL安装出现问题(The service already exists)
【Go实战基础】gin 如何绑定与使用 url 参数
Openshift deployment application
随机推荐
kubeadm部署kubernetes v1.23.5集群
【Go实战基础】如何安装和使用 gin
Finishing the interview essentials of secsha system!!!
「Redis源码系列」关于源码阅读的学习与思考
C#钉钉开发:取得所有员工通讯录和发送工作通知
Win10 uses docker to pull the redis image and reports an error read only file system: unknown
Solution of Xiaomi TV's inability to access computer shared files
远程连接IBM MQ报错AMQ4036解决方法
Judge whether it is Sudoku
Linux安装Oracle Database 19c RAC
随笔:RGB图像颜色分离(附代码)
There is a problem with MySQL installation (the service already exists)
WSL installation, beautification, network agent and remote development
Find the node with the smallest value range in the linked list and move it to the front of the linked list
Essay: RGB image color separation (with code)
Dip1000 runaway
C language implementation of mine sweeping game
commands out of sync. did you run multiple statements at once
CSDN Q & A_ Evaluation
QT -- how to set shadow effect in QWidget