Skip to content

Estandar de convenciones para react

Flujo de ramas de git y git hub

  • Rama por defecto: staging
  • Rama de produccion: production
  • Las ramas de trabajo deben ser creadas desde staging, luego hacer las pull requests a esa misma rama staging
  • Y despues de unir pull requests, se debe unir staging a production para que se publiquen los cambios

Buenas prácticas en código

  • En general el propósito es tener código limpio
  • No escribir código en español, como: variables, clases y comentarios, entre otras cosas.
  • No dejar código comentando, sino dejar siempre solo código que se usa
  • Usar lineas de espacio entre bloques de código de una linea o 2 pero no más
  • Organizar los importes por tipo

Estructura de archivos y carpetas con buena manera de nombrarlos

react-website/
├── public/
│   └── favicon.ico
├── src/
│   ├── assets/
│   │   ├── images/
│   │   │   ├── logo.png
│   │   │   ├── home/
│   │   │   │   └── team-picture.jpg
│   │   ├── icons/
│   │   │   ├── arrow.svg
│   │   │   ├── person.svg
│   │   │   └── burger-menu.svg
│   │
│   ├── components/
│   │   ├── global/
│   │   │   ├── Header/
│   │   │   │   ├── Header.jsx
│   │   │   │   └── Header.css
│   │   │   ├── Footer/
│   │   │   │   ├── Footer.jsx
│   │   │   │   └── Footer.css
│   │   │
│   │   └── home/
│   │       ├── HeroBanner.jsx
│   │       └── HeroBanner.css
│   │
│   ├── pages/
│   │   ├── Home/
│   │   │   ├── Home.jsx
│   │   │   └── Home.css
│   │   │
│   │   ├── About/
│   │   │   ├── About.jsx
│   │   │   └── About.css
│   │   │
│   │   ├── Services/
│   │   │   ├── Services.jsx
│   │   │   └── Services.css
│   │   │
│   │   ├── Projects/
│   │   │   ├── Projects.jsx
│   │   │   └── Projects.css
│   │   │
│   │   └── Contact/
│   │       ├── Contact.jsx
│   │       └── Contact.css
│   │
│   ├── App.jsx
│   ├── App.css
│   └── main.jsx
├── .gitignore
├── index.html
├── package.json
├── vite.config.js
└── README.md

Tabla de convención de nombres para tipos de carpetas y tipos de archivos

File/Folder Type Naming Convention Examples Notes
Project Folder kebab-case my-react-project Use lowercase with hyphens
Source Folder lowercase src Standard practice
Page Folders PascalCase Home, About, Services Represents main routes/pages
Page Components PascalCase with Page suffix HomePage, AboutPage, ServicesPage Clearly indicates it's a full page component
Regular Components PascalCase Header, Button, UserCard Start with a descriptive noun
Component Subfolders lowercase global, shared, layout Descriptive but simple
CSS Files Same name as component Header.css, Button.css Matches corresponding component
Test Files ComponentName.test.js Header.test.js, Button.test.js Add .test before extension
Hook Files useCamelCase useAuth, useForm, useLocalStorage Start with use
Context Files PascalCase with Context suffix AuthContext, ThemeContext Clearly indicates it's a context
Utility/Helper Files camelCase formatDate, validateEmail Describes function purpose
Asset Folders lowercase images, icons, fonts Plural, descriptive names
Configuration Files lowercase vite.config.js, .eslintrc Standard naming