TuBrief
구독 채널
비디오
커뮤니티

Critérios para um Desenvolvedor Júnior Trabalhando Sozinho em uma Startup Concluir Sprints Sem Horas Extras

TuBrief 편집팀
2026년 8월 22일
0
Mental Health

원본 영상을 바탕으로 AI의 도움을 받아 작성했습니다. 원본 영상이 기준입니다.

Português한국어العربيةEnglishहिन्दीРусскийEspañolDeutschBahasa Indonesia中文Français日本語

관련 영상

Pare de Tentar ser Perfeito43:49

Pare de Tentar ser Perfeito

Dr. Arthur Brooks

커뮤니티의 다른 글

영업 미팅에서 고객이 동의한다고 말할 때 진짜 속마음 읽어내는 법

2026년 8월 24일

재택 디자이너가 외출할 때 사람 목소리와 인파에 급격히 지치는 이유

2026년 8월 24일

4 Ways to Get Better at Friendship

2026년 8월 23일

영업 미팅에서 고객 방어벽을 뚫는 대화법

2026년 8월 23일

출입증 뒤의 메모 한 줄이 첫 미팅의 침묵을 깬다

2026년 8월 23일

휴가 때 슬랙 지우고 온콜 넘기기 위한 백엔드 인수인계 절차

2026년 8월 22일

댓글 (0)

Log in to leave a comment

아직 작성된 글이 없습니다

© 2026 . All rights reserved.

TuBrief
구독 채널
비디오
커뮤니티
로그인

Critérios para um Desenvolvedor Júnior Trabalhando Sozinho em uma Startup Concluir Sprints Sem Horas Extras

Ao desenvolver frontend sozinho sem um mentor, você é perseguido pela ansiedade técnica. O padrão de manter um livro de Clean Code ao lado, ponderar sobre abstrações perfeitas e acabar sofrendo de esgotamento (burnout) logo antes do prazo da sprint se repete. O que é necessário não é uma arquitetura imaculada, mas critérios realistas para entregar um produto funcional no prazo.

Abstração Incorreta é Mais Cara do que Código Duplicado

Sandy Metz, especialista em design de software, aponta que o custo de remover abstrações incorretas é muito maior do que o custo de manter código duplicado. Na verdade, Dan Abramov também alertou que a remoção excessiva de duplicações arruína a flexibilidade dos componentes.

Problemas causados por simples cópia de código podem ser corrigidos dentro do próprio arquivo em cerca de 50 minutos. Por outro lado, hooks comuns ou estruturas de herança criadas precipitadamente geram inúmeras ramificações if-else mesmo com a menor alteração nos requisitos. No fim das contas, leva mais de duas semanas apenas para encontrar bugs.

A decisão de refatorar é tomada com base no Quadrante de Dívida Técnica de Martin Fowler e na Análise de Hotspots de Adam Tornhill.

Área Critério (Complexidade e Frequência de Alteração) Forma de Resposta
Correção Imediata Alto impacto no negócio × Alta frequência de alteração Escrever testes e organizar a interface logo após a implementação do recurso e implantar
Correção Opcional Alto impacto no negócio × Baixa frequência de alteração Registrar como tíquete de dívida no backlog
Implantar por Enquanto Baixo impacto no negócio × Alta frequência de alteração Verificar apenas o funcionamento mínimo e implantar, proibida a abstração
Tarefa em Espera Baixo impacto no negócio × Baixa frequência de alteração Omitir correções mesmo que o código esteja sujo

Ordem de Trabalho de Classificação de Código

  1. Verifique se o componente no qual você está trabalhando é uma lógica principal (hotspot) como pagamento ou autenticação, ou se é uma simples visualização de promoção.
  2. Se for uma visualização de promoção, escreva-a de forma embutida (inline) dentro do componente, sem projetar um custom hook compartilhado.
  3. Copie e cole o código até que o mesmo comportamento de UI se repita três vezes ou mais.

Aplicando este critério, você pode reduzir o tempo gasto em trabalhos de generalização desnecessários e aumentar a velocidade geral de desenvolvimento.

Configuração de Verificação Estática para Reduzir Apontamentos em Code Review

Apontamentos de estilo, como nomes de variáveis, quebras de linha e violações de regras de linter, devem ser filtrados por ferramentas.

De acordo com um estudo da SmartBear analisando 2.500 revisões de código na Cisco Systems, 70% a 90% dos defeitos são descobertos quando a quantidade de código revisada de uma só vez é inferior a 200 linhas. Quando o autor deixa o motivo da alteração diretamente em um comentário no PR, a densidade de defeitos diminui em média 30%.

Ordem de Análise Estática e Auto-inspeção

  1. Registre as regras de React e TypeScript no ESLint 9 Flat Config.
  2. Integre o Husky e o lint-staged para forçar a verificação de formatação no momento do commit.
  3. Antes de enviar o PR, verifique se está dentro de 300 linhas com base na lógica pura e deixe comentários de autorrevisão em ramificações complexas.

`javascript
// eslint.config.js
import js from "@eslint/js";
import globals from "globals";
import tseslint from "typescript-eslint";
import pluginReact from "eslint-plugin-react";
import pluginReactHooks from "eslint-plugin-react-hooks";
import eslintConfigPrettier from "eslint-config-prettier/flat";

export default tseslint.config(
{ ignores: ["dist/", "node_modules/", "build/"] },
js.configs.recommended,
...tseslint.configs.recommended,
pluginReact.configs.flat.recommended,
eslintConfigPrettier,
{
files: ["**/*.{js,jsx,ts,tsx}"],
languageOptions: {
ecmaVersion: "latest",
sourceType: "module",
globals: globals.browser,
},
plugins: {
"react-hooks": pluginReactHooks,
},
rules: {
"react/react-in-jsx-scope": "off",
"react/prop-types": "off",
"react-hooks/rules-of-hooks": "error",
"react-hooks/exhaustive-deps": "warn",
"@typescript-eslint/no-unused-vars": ["error", { argsIgnorePattern: "^_" }],
"@typescript-eslint/no-explicit-any": "warn",
},
settings: {
react: { version: "detect" },
},
}
);

`

Aplicando esta configuração ao repositório, você pode reduzir o feedback de revisão relacionado ao estilo e se concentrar na verificação da lógica real.

Timeboxing Separando Implementação e Organização

Modificar a estrutura enquanto desenvolve um recurso distorce o contexto do trabalho. De acordo com pesquisas de engenharia do Google, quando as unidades de PR são divididas em partes menores e a intenção do trabalho é especificada, o tempo de espera para revisão de código cai de 48 horas para 4 horas.

Divida e controle o tempo de trabalho diário em sessões.

  • 70% do dia de trabalho é gasto na implementação de recursos. Concentre-se em garantir que os requisitos de tela e o fluxo de dados funcionem normalmente, permitindo a duplicação de código.
  • 20% do dia de trabalho é dedicado a organizar o código. Trate apenas da alteração de nomes de variáveis dentro do escopo, limpeza de imports não utilizados e complementação de tipos, sem mexer em grandes reestruturações de arquitetura.
  • 10% do tempo de trabalho semanal é reservado para uma sessão de quitação de dívidas na sexta-feira à tarde. Após concluir a implantação, melhore a estrutura dos módulos de hotspot registrados no backlog.

Template de PR Especificando o Escopo de Tolerância a Defeitos

  1. Escreva os itens de dívida técnica permitidos no corpo do PR.
  2. Deixe como checklist as áreas onde o funcionamento do recurso está correto, mas a refatoração foi adiada.
  3. Registre o respectivo item como tíquete na sessão de quitação de sexta-feira e envie o PR.

`markdown

Visão Geral

  • Conteúdo do trabalho: Edição de perfil de usuário e integração com API
  • Issues relacionadas: #104

Tolerância a Defeitos e Dívida Registrada

  • Dívida permitida: Duplicação de lógica de estilo dentro do componente de perfil (duplicação inferior a 3 vezes)
  • Dívida permitida: Tratamento de alerta em resposta de erro (adiada a integração do componente Toast)
  • Alvo obrigatório de revisão: Erros de tempo de execução e lógica de processamento de dados de negócios

`

Incentive os revisores a concentrarem o feedback apenas na lógica principal, em vez de estilos secundários, encurtando o tempo de aprovação.

Implantação Progressiva Reduzindo Efeitos Colaterais

Reescrever o código existente por completo aumenta o risco de falhas no ambiente de produção. Michael Feathers aconselha que, ao modificar código legado, em vez de alterar toda a estrutura, deve-se primeiro escrever testes de caracterização que fixem o comportamento atual de entrada e saída.

Configure um limite de erro (ErrorBoundary) para evitar que a tela inteira pare com uma tela branca quando ocorrerem erros em tempo de execução.

`typescript
// components/ErrorBoundary.tsx
import React, { Component, ErrorInfo, ReactNode } from "react";
import * as Sentry from "@sentry/react";

interface Props {
children: ReactNode;
fallbackUI?: ReactNode;
}

interface State {
hasError: boolean;
}

export class GlobalErrorBoundary extends Component<Props, State> {
public state: State = { hasError: false };

public static getDerivedStateFromError(_: Error): State {
return { hasError: true };
}

public componentDidCatch(error: Error, errorInfo: ErrorInfo) {
Sentry.captureException(error, { extra: { componentStack: errorInfo.componentStack } });
}

public render() {
if (this.state.hasError) {
return (
this.props.fallbackUI || (


Ocorreu um erro ao carregar a UI.


Por favor, atualize a página ou tente novamente mais tarde.



)
);
}
return this.props.children;
}
}

`

Procedimento de Implantação Progressiva

  1. Antes de mexer na lógica legada, adicione testes para verificar o valor de retorno atual e envolva a interface com uma camada de fachada (facade).
  2. Verifique o status de comunicação da API em um ambiente de implantação de visualização (preview) e abra novos recursos primeiro para um pequeno número de usuários usando feature flags.
  3. Se a taxa de erro exceder 5% no monitoramento do Sentry após a implantação, execute imediatamente o comando de rollback.

`bash
git revert HEAD --no-edit
git push origin main

`

Ao dividir as unidades de trabalho em partes menores e criar um ambiente para o qual se possa retornar em caso de falha, você pode controlar a ansiedade em relação às modificações de código. Entregar um sistema funcional no prazo, em vez de uma estrutura perfeita, é o básico da engenharia prática.