window.pipedriveLeadboosterConfig = { base : 'leadbooster-chat.pipedrive.com', companyId : 11580370, playbookUuid: '22236db1-6d50-40c4-b48f-8b11262155be', version : 2, } ;(function () { var w = window if (w.LeadBooster) { console.warn('LeadBooster existe déjà') } else { w.LeadBooster = { q : [], on : function (n, h) { this.q.push({ t : 'o', n : n, h : h }) }, trigger : function (n) { this.q.push({ t : 't', n : n }) }, } } })() TheCodestReview #5 - jus de fruits bihebdomadaire sur le génie logiciel - The Codest
The Codest
  • A propos de nous
  • Services
    • Développement de logiciels
      • Développement frontal
      • Développement backend
    • Staff Augmentation
      • Développeurs frontaux
      • Développeurs backend
      • Ingénieurs des données
      • Ingénieurs en informatique dématérialisée
      • Ingénieurs AQ
      • Autres
    • Conseil consultatif
      • Audit et conseil
  • Industries
    • Fintech et banque
    • E-commerce
    • Adtech
    • Santé (Healthtech)
    • Fabrication
    • Logistique
    • Automobile
    • IOT
  • Valeur pour
    • CEO
    • CTO
    • Gestionnaire des livraisons
  • Notre équipe
  • Études de cas
  • Savoir comment
    • Blog
    • Rencontres
    • Webinaires
    • Ressources
Carrières Prendre contact
  • A propos de nous
  • Services
    • Développement de logiciels
      • Développement frontal
      • Développement backend
    • Staff Augmentation
      • Développeurs frontaux
      • Développeurs backend
      • Ingénieurs des données
      • Ingénieurs en informatique dématérialisée
      • Ingénieurs AQ
      • Autres
    • Conseil consultatif
      • Audit et conseil
  • Valeur pour
    • CEO
    • CTO
    • Gestionnaire des livraisons
  • Notre équipe
  • Études de cas
  • Savoir comment
    • Blog
    • Rencontres
    • Webinaires
    • Ressources
Carrières Prendre contact
Flèche arrière RETOUR
2021-02-02
Développement de logiciels

TheCodestReview #5 - jus de fruits bihebdomadaire sur le génie logiciel

The Codest

Kamil Ferens

Responsable de la croissance

Cet épisode devait être publié en décembre, avant les vacances de Noël, et il semble donc que ce soit moi qui sois responsable de ce retard. J'ai continué à retarder la publication semaine après semaine en raison de quelques tâches prioritaires, mais aujourd'hui, c'est LE jour.

Je suis occupé à faire des choses Pc Principal GIF de Imbusydoingstuff GIFs

Dans le dernier épisode, j'ai tenté de commenter l'article sur l'importance de l'humour sur le lieu de travail, mais entre-temps, j'ai compris qu'il méritait beaucoup plus d'attention et je vais donc écrire un article entier sur le blog à ce sujet bientôt.    

IPromise You Believe Me GIF de GIFs Ipromiseyou

Les choses qui m'ont occupée ces deux dernières semaines : 

a) Avant Noël, j'ai commencé avec le premier épisode de Série de webinaires "Bulletproof CTO" (en anglais) (attendez le deuxième épisode, en février, consacré au SaaS) CTOs(détails à venir sur mon LinkedIn).

b) Nous mettons au point notre plan de croissance pour 2021, avec l'objectif d'aller au-delà de notre activité principale Ruby et JS et de développer une activité Magento et Produit Compétence en matière de conception interne.

Assez d'autopromotion, laissez-moi vous inviter au 5ème épisode de notre série #TheCodestReview. 

Sujets mon équipe s'est préparée pour cette période : 

  1. Architecture frontale évolutive et facile à maintenir.
  2. Engagements conventionnels.
  3. Mises à jour de la version 3.0.0 de Ruby.

Les commentaires sur l'application frontend et les commits conventionnels sont livrés cette semaine par nos ingénieurs React tandis que Ruby 3.0.0 est livré par notre Ruby dream team.

Aujourd'hui, de nombreux développeurs utilisent, pour gagner du temps, des bibliothèques d'interface utilisateur et des composants réutilisables. C'est une bonne pratique et cela nous aide à gagner beaucoup de temps, mais lorsque notre projet devient plus importante - vous comprendrez qu'il n'est pas suffisant de gérer avec des code.

Il existe deux bons modèles de développement back-end : le développement piloté par le domaine (DDD) et la séparation des préoccupations (SoC). Nous pouvons également les utiliser dans l'architecture frontale.

Dans le cadre de la méthode DDD, nous essayons de regrouper des fonctionnalités similaires et de les découpler autant que possible d'autres groupes (modules).

Alors qu'avec SoC, nous séparons par exemple la logique, les vues et les modèles de données (par exemple en utilisant le modèle de conception MVC ou MVVM).

Il existe un grand nombre de bonnes pratiques et de modèles à utiliser, mais c'est cette méthode que je préfère.

Lorsque nous utilisons ce modèle, nous obtenons l'image suivante :

Au début, l'utilisateur est redirigé vers le bon module par le routage de l'application. Chaque module est entièrement contenu. Mais comme l'utilisateur s'attend à utiliser une seule application, et non plusieurs petites, il y aura un certain couplage. Ce couplage porte sur des fonctionnalités spécifiques ou sur la logique d'entreprise.

Et nous avons cette structure :

dossier app - couche application

assets - dossier pour les images, les polices, les icônes, etc.

composants - il s'agit de composants réutilisables qui n'ont pas de logique compliquée

config - c'est ici que nous stockons l'état global

lib - dossier pour les fonctions compliquées et les calculs logiques

modules - voici nos modules

pubsub - lieu de stockage des schémas décrivant la structure des données.

styles - pour notre code css/scss

Cette structure nous aidera à gérer la croissance de notre application et à réduire les bogues. Elle nous aidera également à travailler plus confortablement avec des modules séparés, à les tester et à faciliter le remaniement et le débogage (grâce à la séparation des modules).

Si nous examinons plus en détail l'architecture des modules et leurs connexions avec l'API, nous obtiendrons quelque chose comme cela :

Dans le dossier "app", nous créerons un autre dossier "api" avec le code pour les appels à l'API et les données que nous enregistrerons dans "config/store". Nous conservons ici les données statiques et immuables que nous utilisons dans l'ensemble de l'application.

Dans le dossier "pubsub/schema", nous décrirons également les types de données spécifiques pour les éléments suivants JavaScript objets.

Tous les modules contiennent des données que nous devons utiliser (utilisateurs, itinéraires, tables, actions, etc.). Chaque module est connecté à la couche d'application et prend toutes les données nécessaires.

Le front-end est le premier point d'entrée pour nos utilisateurs. Avec l'augmentation des fonctionnalités de nos projets frontaux, nous introduirons également plus de bogues. Mais nos utilisateurs s'attendent à ce qu'il n'y ait pas de bogues et à ce que de nouvelles fonctionnalités soient introduites rapidement. C'est impossible. Pourtant, en utilisant une bonne architecture, nous ne pouvons qu'essayer d'y parvenir autant que possible.

Engagements conventionnels par Sathyabodh Mudhol sur DZone

Développement du logiciel The Codest

La raison de la nécessité d'engager le travail d'une meilleure façon

Imaginez que vous soyez au point de départ d'une entreprise dans laquelle vous venez d'être embauché. Tous les gens sont gentils avec vous et tout semble bien se passer jusqu'au moment où l'on vous présente une base de code datant d'avant que le JavaScript ne soit un langage et que Netscape ne charge une page pendant ce qui semblerait être une éternité.

L'héritage du code semble être un problème majeur lorsque l'on présente un projet à de nouveaux développeurs. Lire le code est une chose, mais comprendre comment l'application a été développée n'est pas tout à fait la même chose. Souvent, les commits s'avèrent utiles et donnent le contexte pour expliquer pourquoi ces console.logs n'ont pas été capturés par linter ou pourquoi ce méchant // TODO est là pour les enfants du développeur qui a initialement fait l'annotation.

Commençons par expliquer pourquoi les règles de validation conventionnelles sont préférables aux règles de validation non standardisées.

Si nous recrutons de nouveaux développeurs pour un projet dans lequel la plupart des commits consistent en des messages du type "ça devrait marcher" ou "Sleepy fix for footer ASAP", qu'est-ce qui vous vient à l'esprit ?

Je dirais qu'il y a des signaux d'alarme parce que.. :

  • Nous ne savons pas exactement ce qui devrait fonctionner
  • Pourquoi quelqu'un a-t-il poussé quelque chose alors qu'il était somnolent et potentiellement erroné ?
  • La correction a-t-elle été précipitée si l'on peut voir l'annotation ASAP ?

Comme votre équipe peut appliquer des règles personnalisées au moment de la validation des modifications, il y a moins de place pour l'erreur, car votre validation doit être solide. Il ne s'agit plus d'un simple moyen de quitter le site. C'est une signature qui indique aux autres personnes que vous connaissiez le contenu du commit. Inutile de préciser que si le travail que vous avez effectué n'est pas correctement signé, il en résultera très probablement une erreur et un message d'avertissement.

Il est possible que votre équipe souhaite mettre en place une règle interdisant certains mots-clés, de sorte que ASAP ou tout juron puisse figurer sur la liste noire.

Outillage

Au début du projet, il est très utile de présenter à tout le monde la façon dont votre projet est mis en œuvre. équipe de développement aimerait que les nouveaux développeurs livrent leurs modifications. Ensuite, mettez en place un outil qui les aide à suivre ce sur quoi vous vous êtes mis d'accord.

L'un des outils avec lesquels j'ai eu l'occasion de travailler est le suivant commitlint et cela a fait des commits conventionnels ma pratique de prédilection lorsque j'arrive sur de nouveaux projets qui n'ont pas de règles et que l'équipe est ouverte à l'idée de les introduire.

Lorsque vous vous occupez des paramètres et que vous les répartissez au sein de votre équipe, vous pouvez simplement créer un paquet npm et l'ajouter à chaque projet. Cela aidera certainement tous les membres du projet à être sur la même longueur d'onde à tout moment et, si nécessaire, à passer d'un projet à l'autre en comprenant ce qu'ont été les derniers changements (et pourquoi ils ont été faits).

Amis à avantages multiples

Maintenant, après avoir mis tout cela en place et compris pourquoi il pourrait être une bonne idée de commencer à utiliser CC, la meilleure partie serait de programmer autour des règles que vous venez d'appliquer ! Nous utilisons une méthode standardisée de validation, nous prêtons plus d'attention à ce que la validation était vraiment, alors pourquoi ne pas mettre en place des crochets qui vous permettent de faire des tests rapides sur la mise en scène lorsqu'un drapeau est présent ? Nous ne voulons pas surcharger les services et réduire les coûts quand c'est nécessaire, et il y a quelques raisons de tester sur un serveur de type production plutôt que sur l'hôte local.

Supposons que vous travaillez sur une PWA et que le SSL est nécessaire pour tester tout le potentiel et que vous avez un SSL sur votre plateforme de test. Tout ce dont vous avez besoin maintenant, c'est d'un bon commit. Quelque chose comme feat(PWA) : manifest icons workbox setup upload déclencherait toute la machinerie de test et de déplacement des roues dentées. Nous n'avons pas besoin de cela lorsque nous téléchargeons simplement des données statiques comme manifest.json, nous ajoutons donc un drapeau [TEST_SKIP] en postfixe à notre commit. Cela permet à notre CI de simplement télécharger de nouveaux actifs dans l'environnement de test et de sauter les tests. Pour en savoir plus ici

Au bout d'un certain temps, vous pourrez constater d'autres avantages, tels que la facilité de génération de CHANGELOG et un meilleur versionnage avec version sémantique. Si cela ne suffit pas à vous convaincre de changer votre façon de rédiger des messages d'engagement, peut-être que le fait de tremper vos orteils dans l'eau fraîche et d'essayer de les utiliser dans votre dépôt privé pendant un certain temps vous fera changer d'avis.

Joyeux engagement conventionnel !

Mises à jour de la version 3.0.0 de Ruby par Ruby Community

Longtemps attendue par la communauté, la version 3.0.0 de Ruby a vu le jour à Noël, afin que tous les développeurs Ruby puissent la trouver sous le sapin dès leur réveil. Chez The Codest, nous cultivons la culture du partage des connaissances en organisant des réunions hebdomadaires au cours desquelles nos ingénieurs discutent des tendances technologiques et de leurs nouvelles découvertes qui méritent l'attention. Vous trouverez ci-dessous un lien vers les diapositives de la journée de démonstration au cours de laquelle notre ingénieur Ruby senior a discuté de quelques changements importants dans Ruby 3.0.0 de son point de vue subjectif :

https://drive.google.com/file/d/1rboAusV1UTWXYMVGuLHx6O90lXrgkmnO/view?usp=sharing

De plus, notre mentor Ruby a contribué à la nouvelle version avec sa demande d'extension qui a été fusionnée avec succès. Pour en savoir plus sur les méthodes de contrôle de la vie privée, vous pouvez consulter l'article de notre responsable du développement.

https://thecodest.co/blog/ruby-3-0-ruby-and-lesser-known-privacy-control-methods

Merci beaucoup d'avoir lu et si vous êtes arrivé jusqu'ici, j'apprécie votre temps et chaque commentaire est le bienvenu sur LinkedIn ou à mon adresse électronique.

Nous vous reviendrons avec le prochain épisode à la fin du mois de février avec la revue d'un podcast interviewant CTO de Shopify, l'homme derrière une équipe d'ingénieurs travaillant sur la magnifique application monolithe Ruby !

A bientôt.

GIF du 2e tour de GIFs de Round2

Offre développeur Ruby

En savoir plus :

TheCodestReview #4 - jus hebdomadaire de génie logiciel

TheCodestReview #3 - jus hebdomadaire de génie logiciel

TheCodestReview #2 - jus hebdomadaire de génie logiciel

Articles connexes

Développement de logiciels

Construire des applications web à l'épreuve du temps : les conseils de l'équipe d'experts de The Codest

Découvrez comment The Codest excelle dans la création d'applications web évolutives et interactives à l'aide de technologies de pointe, offrant une expérience utilisateur transparente sur toutes les plateformes. Découvrez comment notre expertise favorise la transformation numérique et la...

LE CODEST
Développement de logiciels

Les 10 premières entreprises de développement de logiciels basées en Lettonie

Découvrez les principales sociétés de développement de logiciels en Lettonie et leurs solutions innovantes dans notre dernier article. Découvrez comment ces leaders de la technologie peuvent vous aider à développer votre entreprise.

thecodest
Solutions pour les entreprises et les grandes entreprises

L'essentiel du développement de logiciels Java : Un guide pour une externalisation réussie

Explorez ce guide essentiel sur le développement réussi de logiciels Java outsourcing pour améliorer l'efficacité, accéder à l'expertise et assurer la réussite des projets avec The Codest.

thecodest
Développement de logiciels

Le guide ultime de l'externalisation en Pologne

L'essor de outsourcing en Pologne est dû aux progrès économiques, éducatifs et technologiques, qui favorisent la croissance des technologies de l'information et un climat propice aux entreprises.

TheCodest
Solutions pour les entreprises et les grandes entreprises

Le guide complet des outils et techniques d'audit informatique

Les audits informatiques garantissent la sécurité, l'efficacité et la conformité des systèmes. Pour en savoir plus sur leur importance, lisez l'article complet.

The Codest
Jakub Jakubowicz CTO & Co-Fondateur

Abonnez-vous à notre base de connaissances et restez au courant de l'expertise du secteur des technologies de l'information.

    A propos de nous

    The Codest - Entreprise internationale de développement de logiciels avec des centres technologiques en Pologne.

    Royaume-Uni - Siège

    • Bureau 303B, 182-184 High Street North E6 2JA
      Londres, Angleterre

    Pologne - Les pôles technologiques locaux

    • Parc de bureaux Fabryczna, Aleja
      Pokoju 18, 31-564 Kraków
    • Brain Embassy, Konstruktorska
      11, 02-673 Varsovie, Pologne

      The Codest

    • Accueil
    • A propos de nous
    • Services
    • Études de cas
    • Savoir comment
    • Carrières
    • Dictionnaire

      Services

    • Conseil consultatif
    • Développement de logiciels
    • Développement backend
    • Développement frontal
    • Staff Augmentation
    • Développeurs backend
    • Ingénieurs en informatique dématérialisée
    • Ingénieurs des données
    • Autres
    • Ingénieurs AQ

      Ressources

    • Faits et mythes concernant la coopération avec un partenaire externe de développement de logiciels
    • Des États-Unis à l'Europe : Pourquoi les startups américaines décident-elles de se délocaliser en Europe ?
    • Comparaison des pôles de développement Tech Offshore : Tech Offshore Europe (Pologne), ASEAN (Philippines), Eurasie (Turquie)
    • Quels sont les principaux défis des CTO et des DSI ?
    • The Codest
    • The Codest
    • The Codest
    • Privacy policy
    • Conditions d'utilisation du site web

    Copyright © 2025 par The Codest. Tous droits réservés.

    fr_FRFrench
    en_USEnglish de_DEGerman sv_SESwedish da_DKDanish nb_NONorwegian fiFinnish pl_PLPolish arArabic it_ITItalian jaJapanese ko_KRKorean es_ESSpanish nl_NLDutch etEstonian elGreek fr_FRFrench