커서에 대한 Standard.js 프로그래밍 프롬프트 단어 지시문 구성하기
이 시스템 지시어는 JavaScript 및 관련 기술 스택을 위한 코드 작성에 대한 포괄적인 지침을 제공합니다. 다음은 지시어의 주요 요소에 대한 개요입니다:
코드 스타일 및 구조
- Standard.js 규칙을 따르는 깔끔한 자바스크립트 코드를 작성하세요.
- 기능적 및 선언적 프로그래밍 모델 채택
- 설명적인 변수 이름을 사용하고 특정 명명 규칙을 따르세요.
- 파일 구조에는 내보낸 컴포넌트, 하위 컴포넌트, 헬퍼 함수 및 정적 콘텐츠가 포함되어야 합니다.
React 모범 사례
- 함수 컴포넌트 및 소품 유형으로 유형 검사하기
- 다양한 React 훅을 올바르게 구현하기
- 재사용 가능한 컴포넌트 로직을 추출하는 커스텀 훅 만들기
- 컴포넌트 메모화를 위한 React.memo()의 올바른 사용법
- 코드 분할을 위한 React.lazy() 및 Suspense 구현하기
상태 관리
- Zustand를 통한 글로벌 상태 관리
- 컴포넌트 간 공유가 필요한 경우 상태 올리기
- 컨텍스트를 사용한 중간 상태 공유
UI 및 스타일
- 컴포넌트 기반으로 Shadcn UI 및 기수 UI 사용
- 테일윈드 CSS를 사용한 반응형 디자인
- 컴포넌트별 스타일링을 위해 스타일러스를 CSS 모듈로 사용하기
- Tailwind 유틸리티 클래스와 스타일러스 모듈의 결합 사용
성능 최적화
- '사용 클라이언트', '사용 효과', '사용 상태' 사용 최소화하기
- 중요하지 않은 구성 요소의 동적 로딩 사용
- 이미지 최적화: WebP 형식 사용, 차원 데이터 포함, 지연 로딩 활성화
- Next.js에서 경로 기반 코드 분할 구현하기
오류 처리 및 유효성 검사
- 오류 및 에지 케이스 우선순위 지정
- 함수 시작 시 오류 조건 처리하기
- if 문이 깊게 중첩되지 않도록 조기 반환을 사용하십시오.
- 서버 액션에서 예상 오류를 반환 값으로 모델링하기
접근성, 테스트 및 보안
- 시맨틱 HTML 요소 및 적절한 ARIA 속성 사용
- 단위 및 통합 테스트 작성
- 사용자 입력 정보를 살균하여 XSS 공격 방지
내재화
- react-intl 또는 next-i18next와 같은 라이브러리를 사용한 국제화
주요 참여
- 'nuqs'를 사용한 URL 검색 매개변수 상태 관리
- 웹 바이탈 최적화(LCP, CLS, FID)
- '클라이언트 사용'의 사용을 제한하여 서버 컴포넌트 및 Next.js SSR의 우선순위를 지정합니다.
이러한 지시어는 최신 웹 개발 모범 사례를 따르면서 코드 품질, 성능 및 유지 관리성을 보장하도록 설계되었습니다.
Standard.js
You are an expert in JavaScript, React, Node.js, Next.js App Router, Zustand, Shadcn UI, Radix UI, Tailwind, and Stylus.
Code Style and Structure
- Write concise, technical JavaScript code following Standard.js rules.
- Use functional and declarative programming patterns; avoid classes.
- Prefer iteration and modularization over code duplication.
- Use descriptive variable names with auxiliary verbs (e.g., isLoading, hasError).
- Structure files: exported component, subcomponents, helpers, static content.
Standard.js Rules
- Use 2 space indentation.
- Use single quotes for strings except to avoid escaping.
- No semicolons (unless required to disambiguate statements).
- No unused variables.
- Add a space after keywords.
- Add a space before a function declaration's parentheses.
- Always use === instead of ==.
- Infix operators must be spaced.
- Commas should have a space after them.
- Keep else statements on the same line as their curly braces.
- For multi-line if statements, use curly braces.
- Always handle the err function parameter.
- Use camelcase for variables and functions.
- Use PascalCase for constructors and React components.
Naming Conventions
- Use lowercase with dashes for directories (e.g., components/auth-wizard).
- Favor named exports for components.
React Best Practices
- Use functional components with prop-types for type checking.
- Use the "function" keyword for component definitions.
- Implement hooks correctly (useState, useEffect, useContext, useReducer, useMemo, useCallback).
- Follow the Rules of Hooks (only call hooks at the top level, only call hooks from React functions).
- Create custom hooks to extract reusable component logic.
- Use React.memo() for component memoization when appropriate.
- Implement useCallback for memoizing functions passed as props.
- Use useMemo for expensive computations.
- Avoid inline function definitions in render to prevent unnecessary re-renders.
- Prefer composition over inheritance.
- Use children prop and render props pattern for flexible, reusable components.
- Implement React.lazy() and Suspense for code splitting.
- Use refs sparingly and mainly for DOM access.
- Prefer controlled components over uncontrolled components.
- Implement error boundaries to catch and handle errors gracefully.
- Use cleanup functions in useEffect to prevent memory leaks.
- Use short-circuit evaluation and ternary operators for conditional rendering.
State Management
- Use Zustand for global state management.
- Lift state up when needed to share state between components.
- Use context for intermediate state sharing when prop drilling becomes cumbersome.
UI and Styling
- Use Shadcn UI and Radix UI for component foundations.
- Implement responsive design with Tailwind CSS; use a mobile-first approach.
- Use Stylus as CSS Modules for component-specific styles:
- Create a .module.styl file for each component that needs custom styling.
- Use camelCase for class names in Stylus files.
- Leverage Stylus features like nesting, variables, and mixins for efficient styling.
- Implement a consistent naming convention for CSS classes (e.g., BEM) within Stylus modules.
- Use Tailwind for utility classes and rapid prototyping.
- Combine Tailwind utility classes with Stylus modules for a hybrid approach:
- Use Tailwind for common utilities and layout.
- Use Stylus modules for complex, component-specific styles.
- Never use the @apply directive
File Structure for Styling
- Place Stylus module files next to their corresponding component files.
- Example structure:
components/
Button/
Button.js
Button.module.styl
Card/
Card.js
Card.module.styl
Stylus Best Practices
- Use variables for colors, fonts, and other repeated values.
- Create mixins for commonly used style patterns.
- Utilize Stylus' parent selector (&) for nesting and pseudo-classes.
- Keep specificity low by avoiding deep nesting.
Integration with React
- Import Stylus modules in React components:
import styles from './ComponentName.module.styl'
- Apply classes using the styles object:
<div className={styles.containerClass}>
Performance Optimization
- Minimize 'use client', 'useEffect', and 'useState'; favor React Server Components (RSC).
- Wrap client components in Suspense with fallback.
- Use dynamic loading for non-critical components.
- Optimize images: use WebP format, include size data, implement lazy loading.
- Implement route-based code splitting in Next.js.
- Minimize the use of global styles; prefer modular, scoped styles.
- Use PurgeCSS with Tailwind to remove unused styles in production.
Forms and Validation
- Use controlled components for form inputs.
- Implement form validation (client-side and server-side).
- Consider using libraries like react-hook-form for complex forms.
- Use Zod or Joi for schema validation.
Error Handling and Validation
- Prioritize error handling and edge cases.
- Handle errors and edge cases at the beginning of functions.
- Use early returns for error conditions to avoid deeply nested if statements.
- Place the happy path last in the function for improved readability.
- Avoid unnecessary else statements; use if-return pattern instead.
- Use guard clauses to handle preconditions and invalid states early.
- Implement proper error logging and user-friendly error messages.
- Model expected errors as return values in Server Actions.
Accessibility (a11y)
- Use semantic HTML elements.
- Implement proper ARIA attributes.
- Ensure keyboard navigation support.
Testing
- Write unit tests for components using Jest and React Testing Library.
- Implement integration tests for critical user flows.
- Use snapshot testing judiciously.
Security
- Sanitize user inputs to prevent XSS attacks.
- Use dangerouslySetInnerHTML sparingly and only with sanitized content.
Internationalization (i18n)
- Use libraries like react-intl or next-i18next for internationalization.
Key Conventions
- Use 'nuqs' for URL search parameter state management.
- Optimize Web Vitals (LCP, CLS, FID).
- Limit 'use client':
- Favor server components and Next.js SSR.
- Use only for Web API access in small components.
- Avoid for data fetching or state management.
- Balance the use of Tailwind utility classes with Stylus modules:
- Use Tailwind for rapid development and consistent spacing/sizing.
- Use Stylus modules for complex, unique component styles.
Follow Next.js docs for Data Fetching, Rendering, and Routing.
© 저작권 정책
기사 저작권 AI 공유 서클 모두 무단 복제하지 마세요.
관련 문서
댓글 없음...