rubocop-rails
Nest
Our great sponsors
rubocop-rails | Nest | |
---|---|---|
7 | 312 | |
781 | 64,263 | |
2.2% | 1.8% | |
9.1 | 9.9 | |
4 days ago | 4 days ago | |
Ruby | TypeScript | |
MIT License | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
rubocop-rails
-
RuboCoping with legacy: Bring your Ruby code up to Standard
1) Auto-correcting a whole (large) codebase at once with tons of offenses and dozens of active branches should be used with caution. Merge conflicts, blame pollution (ok, can be solved with .git-blame-ignore-revs, though can hardly remember any project using it). Though, the most important argument is that auto-correct can introduce bugs. Unfortunately, even safe autocorrect can be unsafe. Recently, I broke one popular project (with a decent, but not 99.999% test coverage) with a single "safe" auto-correction commit š (This issue).
-
Linting and Auto-formatting Ruby Code With RuboCop
It's also possible to extend RuboCop through additional linters and formatters. You can build your own extensions or take advantage of existing ones if they are relevant to your project. For example, a Rails extension is available for the purpose of enforcing Rails best practices and coding conventions.
-
Technical leadership during large refactors
I'm still getting used to writing these. Still, this article from Evil Martians has been a big help. The rubocop-rails codebase also had some cops similar to what I wanted to put together. The cop we've put together checks if the class inherits from ActiveModel::Serializer and adds an offence to that line.
-
Future of Ruby ā AST Tooling
Let's take a glance at the action_filter cop real quick here, but just a quick part of it:
-
Learning style?
Following on from this, I highly recommend setting up your editor to automatically lint Ruby files with RuboCop and its Rails extension and start adapting your code to adhere to the Ruby Style Guide.
- Rails 7 will introduce invert_where method, but it's dangerous
-
Learning Ruby: Things I Like, Things I Miss from Python
I just would like to point out that even though that is the most sane way, it comes with it owns set of problems. One of them is when developers start to code to cheat the linter, or they complicate the code just to "make the linter happy", another is when the linting rule introduces problems/errors like https://github.com/rubocop-hq/rubocop-rails/issues/418
Nest
-
NestJS tip: how to change HTTP server timeouts
When using the NestJS framework, sometimes you may need to change some default timeout. You can define them just like you'd do in a plain Node.js HTTP server like so:
-
Containerize your multi-services app with docker compose
Back: a graphQL server built with Nestjs
-
Full Stack Web Development Concept map
NestJS - opinionated more scalable, but harder to learn docs
-
Don't go all-in Clean Architecture: An alternative for NestJS applications
Pragmatically, we can apply this to a Nest application by creating an Interface for our services, separating the Presenter layer (Controller) from the Use Case (Services):
- Utilizando Testcontainers para Testes de IntegraĆ§Ć£o com NestJS e Prisma ORM
-
A Gentle Introduction to Containerization and Docker
Itās a text document that contains all the commands a user could call to assemble an image. Letās check an example of a Dockerfile for a nodejs app in this case it will be a NestJS app and then explain each part.
-
Scalable REST APIs with NestJS: A Testing-Driven Approach
describe('Create bookmarks', () => { const dto: CreateBookmarkDto = { title: 'NestJS', link: 'https://nestjs.com/', }; it('should create bookmark', () => { return pactum .spec() .post('/bookmarks') .withHeaders({ Authorization: 'Bearer $S{userAt}', }) .withBody(dto) .expectStatus(201) .stores('bookmarkId', 'id')//store the bookmark id in the variable bookmarkId .expectBodyContains(dto.title) .expectBodyContains(dto.link) }); });
-
Rust GraphQL APIs for NodeJS Developers: Introduction
In my usual NodeJS tech stack, which includes GraphQL, NestJS, SQL (predominantly PostgreSQL with MikroORM), I encountered these limitations. To overcome them, I've developed a new stack utilizing Rust, which still offers some ease of development:
-
A Step-by-Step Guide to Implement JWT Authentication in NestJS usingĀ Passport
The purpose of this article is to provide a step-by-step guide for implementing authentication system in a NestJS project using the Passport middleware module.
-
From Frontend to Backend
That's exactly where I am. My manager gave me these links, that cover a lot of those words the backend uses, so I can identify what they mean and how to use them. 1. For inspiration and concepts: https://github.com/Sairyss/domain-driven-hexagon 2. Suggested to read the documentation for nest.js. They apply such concepts I don't understand: https://nestjs.com/
What are some alternatives?
Django - The Web framework for perfectionists with deadlines.
SailsJS - Realtime MVC Framework for Node.js
coc-solargraph - Solargraph extension for coc.nvim
Koa - Expressive middleware for node.js using ES2017 async functions
Strapi - š Strapi is the leading open-source headless CMS. Itās 100% JavaScript/TypeScript, fully customizable and developer-first.
loopback-next - LoopBack makes it easy to build modern API applications that require complex integrations.
rubocop-performance - An extension of RuboCop focused on code performance checks.
feathers - The API and real-time application framework
standard - Ruby's bikeshed-proof linter and formatter š²
Ts.ED - :triangular_ruler: Ts.ED is a Node.js and TypeScript framework on top of Express to write your application with TypeScript (or ES6). It provides a lot of decorators and guideline to make your code more readable and less error-prone. āļø Star to support our work!
gringotts - A complete payment library for Elixir and Phoenix Framework
Moleculer - :rocket: Progressive microservices framework for Node.js