Salut ! Je m'appelle Peter, et si vous ne me connaissez pas, je suis étudiant en informatique et je suis actuellement le cours Topics in Open Source 2024 du professeur David Humphrey.
Depuis septembre 2024, je travaille à renforcer ma présence dans la communauté open source. Si vous souhaitez suivre mon parcours, vous pouvez me trouver sur GitHub :
Développeur Full Stack | Passionné de jeux et d'IA - Peter Danwan
Première étape : comprendre avec quoi je travaille. expressjs.com est le site de documentation officiel d'Express, l'un des frameworks Web les plus populaires pour Node.js. Bien que cela ait été rapide à comprendre grâce à leur site Web magnifiquement conçu, le voyage ne faisait que commencer.
Express est un framework Web rapide, sans opinion et minimaliste pour Node.js, offrant un ensemble robuste de fonctionnalités pour les applications Web et mobiles.
Après m'être familiarisé avec le projet tel qu'il est, j'ai cherché une problématique que je pourrais aborder. J'ai trouvé celui-ci :
Les liens suivants sont rompus _includes/header/header-id.html
_includes/header/header-th.html
Suggérer une modification à : Publier le journal des modifications
Une page manquante provoque une erreur de console en langage UZ : /css/langs/uz.css
Suggérez d'ajouter cette page.
J'ai choisi ce numéro car il impliquait HTML et CSS - des technologies avec lesquelles je suis à l'aise et familier. Cependant, ce qui avait l'air simple m'a en fait appris une leçon importante sur le développement open source :
Même des tâches qui semblent familières peuvent impliquer un territoire inconnu.
Le référentiel utilisait des technologies auxquelles je n'avais jamais touché auparavant, et c'est là que le véritable apprentissage a commencé. Il m'a fallu environ une heure pour décider si je devais tenter ce problème - peut-être trop longtemps rétrospectivement. J'hésitais car le projet utilisait Ruby, ce qui était complètement nouveau pour moi.
Alerte spoil : configurer Ruby était... une aventure.
La configuration de votre environnement de développement local est souvent l'une des parties les plus pédagogiques d'une contribution open source.
J'ai appris un peu plus sur Ruby et Jekyll, simplement en essayant d'exécuter expressjs.com localement.
Voici comment s'est déroulé mon parcours :
Confusion initiale : J'ai commencé par installer Ruby directement sur Windows. Même si cela fonctionnait, ce n'était pas idéal, car j'avais des problèmes avec la version que j'installais différente de celle utilisée dans le projet. La gestion des versions sous Windows n'était pas amusante. A ce titre, j'ai désinstallé mon installation de Ruby sous Windows et ses autres dépendances et j'ai cherché une solution alternative.
La découverte WSL : Mes recherches m'ont amené à la conclusion que je devrais exécuter Ruby sur le sous-système Windows pour Linux (WSL), car il offre un bien meilleur environnement de développement et un accès au puissant Ruby Version Manager (RVM), qui me permettrait de travailler sur des projets utilisant différentes versions de Ruby. Pour moi, installer RVM était un sentiment très similaire, puisque j'utilise nvm-windows pour me permettre de basculer entre différentes versions de nœuds.
Courbe d'apprentissage de la gestion des versions : Une fois de plus, j'ai découvert RVM et sa similitude avec le nvm de Node.js. Cela m'a appris l'importance de la gestion des versions dans les environnements de développement.
Vous trouverez ci-dessous les commandes que j'ai utilisées pour préparer mon environnement de développement :
## 1. Installing RVM (Ruby Version Manager) # First, import GPG keys needed to verify RVM installation gpg --keyserver hkp://keyserver.ubuntu.com --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB # Download and install RVM \curl -sSL https://get.rvm.io | bash -s stable # Verify RVM is installed and get its path which rvm # Load RVM into your current shell session source /home/peter/.rvm/scripts/rvm ## 2. Installing Ruby # Install Ruby version 3.3.5 (latest stable as of early 2024) rvm install 3.3.5 # Set 3.3.5 as your default Ruby version rvm use 3.3.5 # Verify RVM and Ruby installations rvm -v ruby -v ## 3. Setting up Jekyll # Install Jekyll and Bundler gems gem install bundler jekyll # Install project dependencies from Gemfile (must be within the target directory with the Gemfile) bundle install # Start the Jekyll server with live reload and external access # --host 0.0.0.0 allows access from other devices on your network # --livereload automatically refreshes your browser when files change bundle exec jekyll serve --host 0.0.0.0 --livereload
Une fois mon environnement de développement configuré, j'ai pu commencer à résoudre le problème en question, c'est-à-dire simplement mettre à jour le
balises d'ancrage contenant des liens rompus vers une version anglaise du lien (puisque la version anglaise du lien n'est pas rompue).
C'était la partie la plus simple de toute cette contribution.
Je me suis également assuré de consulter certains journaux pour voir s'il y avait des erreurs à corriger. J'ai suggéré d'ajouter un autre fichier css/id.css, qui suit le même
format de codage des fichiers qui ont déjà été ajoutés, car j'avais l'idée que cela résoudrait certains des journaux d'erreurs.
L'un des responsables d'expressjs.com, Chris Del, a fourni un retour très immédiat indiquant que c'était la chose à faire (merci Chris !).
En tant que tel, j'ai également ajouté ce changement à ma pull request.
Cela dit, les modifications que j'ai apportées attendent maintenant d'être fusionnées dans la branche principale d'expressjs.com.
Un numéro de suivi a été créé pour discuter des normes du site Web expressjs.com. C'est-à-dire :
Un utilisateur doit-il être redirigé vers une page fonctionnelle en anglais plutôt que vers un lien brisé dans la bonne langue ?
Ce n'est pas à moi de décider, mais je voulais faire partie de la discussion. Vous pouvez suivre la discussion ici.
Ce qui a commencé comme un simple correctif HTML/CSS s'est transformé en un voyage qui m'a appris de précieuses leçons sur le développement open source :
Sortir des zones de confort : Alors que j'ai choisi un problème qui impliquait des technologies familières (HTML/CSS), j'ai fini par apprendre une toute nouvelle pile technologique (Ruby/Jekyll). Cela m'a appris que la croissance se produit lorsque nous sommes prêts à nous attaquer à l'inconnu.
Croissance technique : Mettre en place des environnements de développement, gérer les versions et travailler avec de nouveaux outils sont autant de compétences cruciales. Chaque défi rend le suivant plus facile à aborder.
Engagement communautaire : grâce à des discussions telles que la discussion sur la redirection du langage, j'ai appris que l'open source n'est pas seulement une question de code : il s'agit également de participer à des discussions significatives qui façonnent les décisions de projet.
Pour l'avenir, je prévois de m'améliorer en :
Plus important encore, j'ai appris qu'être un développeur open source efficace ne consiste pas à tout savoir, mais à être prêt à tout apprendre. Chaque contribution, aussi petite soit-elle, est une opportunité de grandir et d'avoir un impact positif sur les projets qui nous tiennent à cœur.
Si vous envisagez de vous impliquer dans l'open source, n'oubliez pas : commencez petit, soyez curieux et n'ayez pas peur d'apprendre au fur et à mesure. La communauté est là pour vous aider à grandir.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!