Maison  >  Article  >  interface Web  >  Contribuer à expressjs

Contribuer à expressjs

Barbara Streisand
Barbara Streisandoriginal
2024-11-23 07:07:09264parcourir

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 :

Contributing to expressjs

Peter Danwan (Peter Wan) · GitHub

Développeur Full Stack | Passionné de jeux et d'IA - Peter Danwan

Contributing to expressjs

Comprendre la portée du projet

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.

Contributing to expressjs

Express - Cadre d'application Web Node.js

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.

Contribuer à expressjs expressjs.com

Comprendre le problème en question

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 :

Contribuer à expressjs Lien brisé et page manquante #1684

Contribuer à expressjs
chrisdel101 publié le

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.

Voir sur GitHub

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.

Comprendre comment configurer le projet localement

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 :

  1. 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.

  2. 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.

  3. 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

Aborder le problème

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.

Attendre de fusionner les changements et apprendre à s'impliquer dans les discussions

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.

Apprendre à grandir en tant que développeur Open Source

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 :

  1. 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.

  2. 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.

  3. 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 :

  • Relever des problèmes de plus en plus difficiles
  • Apprendre à travailler avec différentes piles technologiques et environnements de développement
  • S'impliquer plus activement dans les discussions sur le projet et la prise de décision
  • Contribuer à la documentation et aider les autres nouveaux arrivants
  • Établir des relations au sein des communautés open source

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn