Multi-location SQLite élégante dans Rails

2025-04-27

Cet article détaille l'expérience de construction d'une application multi-locataire avec Rails, où chaque locataire possède sa propre base de données SQLite isolée. L'auteur a initialement utilisé la gestion traditionnelle des connexions de base de données, ce qui a entraîné des erreurs de connexion sous forte charge. Après de nombreuses recherches, l'auteur a finalement utilisé la méthode `connected_to` de Rails 6+ combinée à un middleware personnalisé pour réaliser une commutation sûre et efficace des bases de données locataires, résolvant intelligemment les problèmes de multithreading et de gestion du pool de connexions, et partageant des conseils pour gérer les corps de réponse en streaming Rack. Cet article est précieux pour la construction d'applications multi-locataires performantes et évolutives.

Lire plus
Développement Multi-location

Tailwind CSS 4 et le piège du FOMO : le récit d'un développeur

2025-04-07

Cet article relate l'expérience frustrante de l'auteur avec Tailwind CSS 4, qui repose sur Bun.js et qui a planté sur son ancien Mac Pro en raison de l'absence d'instructions AVX2. Le débogage de ce problème lui a pris plusieurs jours, le forçant à acheter un nouvel ordinateur et à abandonner Tailwind CSS 4. L'auteur réfléchit sur le « fear of missing out » (FOMO) dans l'industrie technologique et les pièges de la course aveugle aux nouvelles technologies. Cette expérience souligne l'importance d'une sélection minutieuse des technologies, en privilégiant les besoins personnels et les réalités du projet plutôt que de se laisser emporter par les tendances.

Lire plus
Développement

Algorithme élégant de pile d'annulation pour l'interface utilisateur : éviter les erreurs d'indexation

2025-03-26

Cet article présente une implémentation astucieuse d'un algorithme de pile d'annulation pour l'interface utilisateur. Au lieu de l'approche traditionnelle basée sur les index, il utilise deux piles (undoStack et redoStack) pour gérer les opérations d'annulation et de restauration, évitant ainsi les erreurs d'indexation et les problèmes de décalage. Le code est concis et facile à comprendre. L'auteur traite le problème de passage par référence en JavaScript à l'aide de structuredClone(), garantissant l'idempotence. Un exemple de code complet est fourni.

Lire plus

Surchargez SQLite avec des fonctions Ruby

2025-01-27

Cet article montre comment améliorer les capacités de SQLite en intégrant des fonctions Ruby. L'auteur crée des fonctions définies par l'utilisateur (UDF) pour appeler directement le code Ruby dans les requêtes SQL, permettant des fonctionnalités telles que la génération d'UUIDs ordonnés dans le temps, la correspondance d'expressions régulières et le calcul de mesures statistiques (par exemple, l'écart type et les percentiles). L'article explore également l'utilisation de l'indicateur SQLITE_DIRECTONLY pour éviter les problèmes lors de l'accès aux fonctions personnalisées en dehors du processus de l'application. Globalement, cela fournit un moyen puissant d'augmenter la flexibilité et les fonctionnalités de SQLite, particulièrement utile pour l'exploration et l'analyse de données.

Lire plus
Développement