Skip to content

Instantly share code, notes, and snippets.

View NerOcrO's full-sized avatar
🏠
Working from home

Fabien NerOcrO

🏠
Working from home
View GitHub Profile
@NerOcrO
NerOcrO / rest.md
Created August 31, 2025 12:41
rest hateoas
  • 6 contraintes
    1. Client-Server Separation : chacun est indépendent l’un de l’autre, donc chacun peut évoluer comme il le veut
    2. Stateless : les informations du client ne sont jamais stocké sur le serveur comme ça les requêtes entrantes sont toutes indépendantes
    3. Cache : la réponse doit dire qu’elle peut être mise en cache comme ça le client, plus tard, peut faire appel à son cache plutôt que le serveur
    4. Uniform Interface
      1. identification of resources : la ressource doit être identifiable dans la requête (/todos/1)
      2. manipulation of resources through representations : dans la réponse du serveur, chaque ressource contient assez d’information pour pouvoir la modifier ou la supprimer (ie: identifiant)
  1. self-descriptive messages : ???
@NerOcrO
NerOcrO / snippet.ts
Created July 16, 2025 07:06
snippet
// parcourir un fichier csv via un champ d'upload
const formData = await request.formData()
const [diagnostiqueur] = formData.values() as FormDataIterator<File>
if (diagnostiqueur === undefined) {
return new Response("Bulk insert failed", { status: 200 })
}
const data = (await diagnostiqueur.text())
.split(/\r\n|\r|\n/)
/* eslint-disable @typescript-eslint/no-require-imports */
/* eslint-disable @typescript-eslint/no-unsafe-call */
/* eslint-disable @typescript-eslint/no-unsafe-assignment */
/* eslint-disable @typescript-eslint/no-unsafe-member-access */
/* eslint-disable sonarjs/no-nested-template-literals */
/* eslint-disable testing-library/no-node-access */
/* eslint-disable no-plusplus */
it.only('génération programatique d’un test d’affichage HTML', () => {
const { container } = render()
// ==UserScript==
// @name Vérifier la bonne configuration d'un projet JavaScript
// @namespace http://tampermonkey.net/
// @version 2024-06-09
// @description Vérifier la bonne configuration d'un projet JavaScript
// @match https://github.com/inclusion-numerique/*
// @match https://github.com/anct-cnum/*
// @grant GM_xmlhttpRequest
// @connect raw.githubusercontent.com
// ==/UserScript==
@NerOcrO
NerOcrO / tsconfig.json
Last active October 7, 2023 15:11
typescript tsconfig
// TS v5.2
// Quelques bases https://github.com/tsconfig/bases#centralized-recommendations-for-tsconfig-bases
// tsconfig.json
{
"compilerOptions": {
// Interop Constraints
// ???
"esModuleInterop": true,
// ???

Prérequis d'un langage en production

  • Python est codé en C
  • Node.js est codé en C++
  • Python est mono coeur car créée avant l'apparition des multi coeur
  • Node.js est mono thread

Immutable

Typescript ✅

@NerOcrO
NerOcrO / low-tech.md
Last active June 18, 2022 14:37
low-tech

Wording à utiliser

  • Sobriété numérique
  • Accessibilité
  • Réparabilité

Définition

  • L’empreinte carbone de la fabrication des terminaux est la part la plus importante de l’impact du numérique
  • C’est plus important de ne pas envoyer un e-mail que d’en stocker une grosse quantité
@NerOcrO
NerOcrO / rust.md
Last active February 19, 2024 09:14
rust
@NerOcrO
NerOcrO / prettierrc.json
Last active May 17, 2024 12:11
eslint linter prettier
// Prettier est inutile sur un projet où il y a eslint
{
"printWidth": 120, // max-len
"tabWidth": 2, // indent
"useTabs": false, // no-tabs
"semi": false, // semi
"singleQuote": true, // quotes
"quoteProps": "as-needed", // quote-props
"jsxSingleQuote": false, // jsx-quotes
"trailingComma": "es5", // comma-dangle
@NerOcrO
NerOcrO / nextjs.md
Last active May 23, 2022 21:08
nextjs
  • code splitting par défaut par page
  • s'il y a un Link dans une page, en production uniquement, il prefetche la page du lien en question quand on passe la souris dessus
  • static generation : généré au build time (sauf en dev) et ne change jamais
    • peut être cachée par un CDN car c'est une page HTML (code source en HTML)
  • par défaut, une page est statique