Skip to content

Instantly share code, notes, and snippets.

View lucasfloriani's full-sized avatar

Lucas Alexander Floriani lucasfloriani

View GitHub Profile
@darklight9811
darklight9811 / extractor.js
Last active August 27, 2021 19:33
Every alphabet from array extractor
export const getRawWord = (type) =>
({
undefined: "`${[![]][!![] + ![]]}`",
true: "([] + !![])",
false: "([] + ![])",
object: "`${{}}`",
}[type]);
export const getCharacter = (char) =>
({
@mrousavy
mrousavy / MEMOIZE.md
Last active November 5, 2025 11:06
Memoize!!! 💾 - a react (native) performance guide
In computing, memoization or memoisation
is an optimization technique used primarily
to speed up computer programs by storing
the results of expensive function calls and  
returning the cached result when the same
inputs occur again.                                         
                                                     — wikipedia
@sibelius
sibelius / useSWReg.tsx
Created May 26, 2020 11:57
use Service Worker Registration hook
import firebase from 'firebase/app';
import 'firebase/messaging';
import { useEffect, useRef } from 'react';
import config from '../config';
import firebaseConfig from './firebaseConfig';
import { PushTokenAddMutation } from './__generated__/PushTokenAddMutation.graphql';
import { PushTokenAdd, USER_PUSHENDPOINT_TYPE } from './PushTokenAddMutation';

[WIP]Juliana Dias Rules

Algumas frases com pensamentos que me guiam no desenvolvimento de software

1 - Se está difícil, provavelmente tem algo errado, o código deveria ser mais fácil de codificado e lido.
2 - Você é seu melhor termômetro, se algo não te agrada é provável que precise refatorar, tal qual o item 1.
3 - Se o erro não faz sentido, provavelmente é algum typo, refaça todos os passos com bastante atenção.
4 - Tenha preferência em fazer funcionar com um código com a maior qualidade possível dentro do prazo dado, tendo feito um código que funcione, refatore (siga o TDD e o Make it works, Make it Beauty).
5 - É tudo sobre responsabilidades, clareza e objetividade, isso é orientação a objetos, isso é SOLID.
6 - Testes foram feitos para quebrar, isso é que te dá segurança sobre o que você está desenvolvendo. Se o teste não falha com a sua alteração no código, pode ser que o teste não esteja testando o que deve.
7 - O código é apenas um sintoma, um reflexo de você e ou ambiente em que

@sibelius
sibelius / applyMiddleware.ts
Created April 7, 2020 11:55
trace resolver to generate span for each GraphQL resolver
import { addMiddleware } from 'graphql-add-middleware';
addMiddleware(schema, traceResolveMiddleware);
@akitaonrails
akitaonrails / links.md
Created November 6, 2019 01:28
Links de referência pro Episódio 66 do Canal Akitando
//component
<Dropzone
onDrop={async acceptedFiles => {
if (acceptedFiles.length > 1) {
toaster.warning("Limite 1 imagem");
return;
}
const files = [];
for (const file of acceptedFiles) {
@yuritoledo
yuritoledo / eslint.json
Created October 9, 2019 15:16
eslint react para typescript
{
"env": {
"browser": true,
"es6": true,
"jest": true
},
"settings": {
"react": {
"version": "detect"
}
@sibelius
sibelius / useRouter.tsx
Created September 10, 2019 18:03
useRouter hook for react-router-dom
import { useContext } from 'react';
import { __RouterContext, RouteComponentProps } from 'react-router-dom';
export const useRouter = <TParams = {}>() => {
return useContext(__RouterContext) as RouteComponentProps<TParams>;
};
@sibelius
sibelius / useSafeGoBack.tsx
Created August 22, 2019 19:54
hook to give you a safe go back when user access the page directly
import { useRouter } from 'react-router-dom';
export const useSafeGoBack = (alternativePath: string) => {
const { history } = useRouter();
const goBack = () => {
if (history.length > 2) {
history.goBack();
return;
}