Skip to main content
Glama
practices.json8.71 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