Skip to main content
Glama
practices.json5.34 kB
{ "testing": { "unit": [ { "id": "jest", "name": "Jest", "language": "JavaScript/TypeScript", "features": ["Snapshots", "Mocking", "Coverage"] }, { "id": "mocha", "name": "Mocha", "language": "JavaScript", "features": ["Flexible", "Async", "Reporters"] }, { "id": "pytest", "name": "Pytest", "language": "Python", "features": ["Fixtures", "Parametrize", "Plugins"] }, { "id": "junit", "name": "JUnit", "language": "Java", "features": ["Annotations", "Assertions", "Extensions"] }, { "id": "xunit", "name": "xUnit", "language": "C#", "features": [".NET", "Parallel", "Theory"] }, { "id": "rspec", "name": "RSpec", "language": "Ruby", "features": ["BDD", "Matchers", "Mocking"] } ], "e2e": [ { "id": "cypress", "name": "Cypress", "type": "E2E", "features": ["Time travel", "Real browser", "Network stubbing"] }, { "id": "playwright", "name": "Playwright", "type": "E2E", "features": ["Multi-browser", "Auto-wait", "Codegen"] }, { "id": "selenium", "name": "Selenium", "type": "E2E", "features": ["WebDriver", "Grid", "Multi-language"] }, { "id": "puppeteer", "name": "Puppeteer", "type": "E2E", "features": ["Chromium", "Headless", "Screenshots"] } ], "api": [ { "id": "postman", "name": "Postman", "type": "API", "features": ["Collections", "Environments", "Newman"] }, { "id": "insomnia", "name": "Insomnia", "type": "API", "features": ["OpenAPI", "GraphQL", "gRPC"] }, { "id": "supertest", "name": "Supertest", "type": "API", "features": ["Node.js", "Express", "Async"] } ] }, "packageManagers": { "javascript": ["npm", "yarn", "pnpm", "bun"], "python": ["pip", "poetry", "pipenv", "conda", "uv"], "rust": ["cargo"], "go": ["go mod"], "java": ["maven", "gradle"], "ruby": ["bundler", "gem"], "php": ["composer"] }, "bundlers": [ { "id": "webpack", "name": "Webpack", "features": ["Loaders", "Plugins", "Code splitting"] }, { "id": "vite", "name": "Vite", "features": ["ESM native", "Fast HMR", "Rollup-based"] }, { "id": "rollup", "name": "Rollup", "features": ["Tree-shaking", "ES modules", "Plugins"] }, { "id": "esbuild", "name": "esbuild", "features": ["Extremely fast", "Go-based", "Bundling"] }, { "id": "parcel", "name": "Parcel", "features": ["Zero config", "Fast", "Multi-asset"] } ], "versionControl": { "branching": ["GitFlow", "Trunk-based", "GitHub Flow", "Feature branches"], "commits": [ "Conventional Commits", "Semantic versioning", "Atomic commits" ], "gitignore": [ "OS files", "IDE files", "Dependencies", "Build outputs", "Secrets" ] }, "apiDesign": { "rest": { "methods": ["GET", "POST", "PUT", "PATCH", "DELETE", "OPTIONS", "HEAD"], "statusCodes": { "2xx": ["200 OK", "201 Created", "204 No Content"], "4xx": [ "400 Bad Request", "401 Unauthorized", "403 Forbidden", "404 Not Found", "422 Unprocessable" ], "5xx": [ "500 Internal Server Error", "502 Bad Gateway", "503 Service Unavailable" ] }, "bestPractices": [ "Use nouns for resources", "Plural endpoints", "Versioning", "HATEOAS", "Pagination" ] }, "graphql": { "concepts": [ "Queries", "Mutations", "Subscriptions", "Schema", "Resolvers", "Fragments" ], "bestPractices": [ "N+1 prevention", "Pagination", "Error handling", "Caching" ] }, "grpc": { "concepts": ["Protocol Buffers", "Services", "Messages", "Streaming"], "features": ["Binary", "HTTP/2", "Bidirectional streaming"] } }, "patterns": { "creational": [ "Singleton", "Factory", "Abstract Factory", "Builder", "Prototype" ], "structural": [ "Adapter", "Bridge", "Composite", "Decorator", "Facade", "Flyweight", "Proxy" ], "behavioral": [ "Chain of Responsibility", "Command", "Iterator", "Mediator", "Memento", "Observer", "State", "Strategy", "Template Method", "Visitor" ], "architecture": { "monolith": "Single deployable unit", "microservices": "Independently deployable services", "serverless": "Function-as-a-Service", "event-driven": "Asynchronous event processing", "hexagonal": "Ports and adapters", "clean": "Dependency rule, entities, use cases", "cqrs": "Command Query Responsibility Segregation" } } }

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/millsydotdev/Code-MCP'

If you have feedback or need assistance with the MCP directory API, please join our Discord server