- Видео 38
- Просмотров 75 171
Software Craftsmanship Luxembourg
Добавлен 14 фев 2021
Channel dedicated to the Software Craftsmanship Luxembourg Community
Advent of Craft: Apprendre et s'améliorer ensemble - Yann Courtel & Yoan Thirion
Retour sur un voyage phénoménal avec Yann Courtel. En seulement 10 jours, nous avons transformé une idée en une aventure pour les développeurs avec l'Advent Of Craft 2023.
Au cours de cette session, nous explorerons la vision qui nous a poussé à créer cet événement (et le reconduire en 2024) : créer une communauté de personnes attirées par l'artisanat logiciel (Software Craftsmanship), prêtes à apprendre ensemble, à transmettre et à partager leurs connaissances.
Voici les sujets que nous couvrirons :
Notre Vision : Découvrez comment l'Advent of Craft vise à créer une communauté vibrante de développeurs désireux d'apprendre les uns des autres et d'améliorer leurs compétences.
La pratique délib...
Au cours de cette session, nous explorerons la vision qui nous a poussé à créer cet événement (et le reconduire en 2024) : créer une communauté de personnes attirées par l'artisanat logiciel (Software Craftsmanship), prêtes à apprendre ensemble, à transmettre et à partager leurs connaissances.
Voici les sujets que nous couvrirons :
Notre Vision : Découvrez comment l'Advent of Craft vise à créer une communauté vibrante de développeurs désireux d'apprendre les uns des autres et d'améliorer leurs compétences.
La pratique délib...
Просмотров: 86
Видео
Le biomimétisme au secours des devs - Christophe Breheret-Girardin
Просмотров 977 месяцев назад
Le biomimétisme tire inspiration et solutions de la nature pour résoudre des défis humains. Il offre une perspective novatrice pour le développement logiciel. Cette présentation explorera comment le biomimétisme peut aider une équipe de développeurs dans leur travail quotidien. A propos de Christophe Coach craft, auteur, formateur, enseignant, conférencier et créateur de contenu, Christophe par...
Interview with Bruno Soulez
Просмотров 4310 месяцев назад
Venez à notre rencontre pour une conversation intime avec Bruno Soulez, l'esprit créatif derrière "If This Then Dev". Bruno, avec son parcours authentique depuis ses premiers pas en programmation jusqu'à ses expériences enrichissantes en tant que CTO, apporte une touche personnelle et réfléchie à la tech. Son podcast n'est pas juste des interviews mais une aventure personnelle guidée par sa cur...
Refactoring du Bouchonnois - L'artisanat dans le monde réel par Yoan Thirion
Просмотров 156Год назад
Nos vaillants chasseurs du Bouchonnois ont besoin de pouvoir gérer leurs parties de chasse. Ils ont commencé à faire développer 1 système de gestion par une l'entreprise Toshiba mais ne sont pas satisfaits. L'entreprise leur parle d'une soit-disante "dette technique" qui les ralentit dans le développement de nouvelles features... Les chasseurs comptent sur nous pour améliorer la situation !!! D...
JHipsterLite - le petit bootstrapper de vos grosses applications par Colin Damon
Просмотров 634Год назад
Dans notre industrie, il est courant de concevoir des applications autour des technologies et des données. Après quelques années, il est aussi courant que les applications conçues de cette manière n’arrivent plus à évoluer. La vélocité rencontre une asymptote, un plafond de métal empêche la création de valeur quels que soient les moyens et efforts déployés. Il est possible de changer de paradig...
Throw exceptions out of your codebase with Guillaume Faas
Просмотров 392Год назад
Throwing exceptions is often used to handle errors, validations, and other specific use cases. It is considered by many to be the standard way of indicating a failure and providing feedback to the caller. However, this approach can cause significant issues like being hard to detect, obfuscating the flow or leaving the system invalid. In this talk, I want to show you a faster alternative that of...
Manuel de sabotage du partage de connaissances avec Cédric Teyton
Просмотров 121Год назад
Contribuer à sauver le climat en infiltrant l'ennemi, ça vous tente ? Voici une mission digne des plus grands films d'espionnage. Vous le savez surement, le potentiel du partage d'expertises et de connaissances est largement sous-exploité dans les entreprises Tech. La faute parfois à un manque d'initiative en interne et de moyens pour soutenir la démarche, mais aussi à des mauvaises pratiques d...
Functional Programming with C# with Simon Painter
Просмотров 1,3 тыс.Год назад
Functional Programming is becoming increasingly popular and relevant with each year that goes by. With so much discussion around languages such as F#, Haskell and Erlang, it can seem as though getting started with Functional programming would mean first learning a whole new syntax...but what if it didn't? About Simon Painter I've been working as a .NET developer for over 16 years now in a varie...
Rust - Pourquoi vous devriez vous y intéresser en 2023 avec Fabian Vilers
Просмотров 3,4 тыс.Год назад
Rust est un langage de programmation stable, sûr et performant qui est de plus en plus populaire dans l'industrie. Il permet de construire des applications à haute performance, il est sûr et il est en constante évolution. En adoptant Rust dès maintenant, vous pourrez être en avance sur la tendance et sur les opportunités de carrière qui lui sont liées. A propos de Fabian Vilers Développeur indé...
Types at the edge of your system - Nicolas Carlo
Просмотров 119Год назад
Coding with static types feels safe, the compiler has your back. But today, you got a critical issue in prod: payments are failing! A quick check of the logs left you puzzled: `TypeError: discount.toFixed is not a function`. Wait... Isn't discount supposed to be a number here? How did that happen? Why didn't the compiler catch it before?! Worry no more. I'll show you where your blind spots are,...
Scaling the testing pyramid with Typescript - Rob Richardson
Просмотров 126Год назад
Unit tests? Integration tests? Mocks? Stubs? Fakes? How does this apply to the web? Let’s look at all the ways you can test a web app and demo all the tools you’d use. We’ll live-code most tests to show you exactly what makes a good testing strategy. You’ll leave with a GitHub repo you can use to keep learning or fork and use in your own PWAs. ABOUT ROB Rob Richardson is a software craftsman bu...
Y'en a marre du Software Craftsmanship by Julien Topçu & Yann Danot
Просмотров 519Год назад
Vous en avez assez qu’on vous dise de faire des kata qui n'ont pas de rapport avec vos problèmes quotidiens ? Et les coachs ! Ils débarquent avec de grands principes, et imposent des méthodes sans chercher à comprendre vos peines et ce n'est pas le TDD qui va les résoudre. Bref y’en a marre du craft ! Ce talk traite des dérives d’un mouvement qui commencent à écœurer. Nous verrons les défauts d...
Technical Training, from the Back of the Room by Julien Vitte
Просмотров 2022 года назад
“You can go, we are listening to you now. » Nobody says it but everyone has this idea in mind: they came to learn something new and they are all going to listen to me very quietly for an hour. It will teach me to want to share knowledge with my team. Time spent fitting pieces of code into a powerpoint, one hour of talking, a few questions at the end and no idea of what they will remember. Maybe...
Ecologie et développement logiciel durable par Anthony Cassaigne et Guillaume Saint-Etienne
Просмотров 1392 года назад
Nous allons montrer d’après des bases scientifiques (entropie et théorie de l’information) que les principes écologiques (soutenabilité, moindre impact, parcimonie des ressources) s’appliquent au développement logiciel. Par quel moyen? TDD d’abord, isolation, limite des dépendance, Design Emergent, Code “pur”, effets de bords repoussés, architecture réactive, do just in time, acquire late/relea...
50 shades of TDD by Arnaud Bailly
Просмотров 4442 года назад
Test-Driven Development is a cornerstone of XP and a great way to grow software incrementally and safely. But as it's been advocated on numerous occasions, the word "Test" in TDD is misleading: it's not really "testing" we do here, it's using automated execution of sample test cases to define short term goals and thus frame our development effort. Examples are necessary to understand the "shape...
Craft Interview avec les auteur·es du livre "Software Craft"
Просмотров 6062 года назад
Craft Interview avec les auteur·es du livre "Software Craft"
Simplify Cloud Native Development with Docker and Dapr
Просмотров 2242 года назад
Simplify Cloud Native Development with Docker and Dapr
Green Agile : responsabilité et agilité numérique
Просмотров 5932 года назад
Green Agile : responsabilité et agilité numérique
Our learnings from the NDC Porto conference
Просмотров 872 года назад
Our learnings from the NDC Porto conference
La veille personnelle : en quête de l'apprentissage continu par Fabien Hiegel
Просмотров 2662 года назад
La veille personnelle : en quête de l'apprentissage continu par Fabien Hiegel
The Future of Testing in the world of Agile, DevOps and Test Automation
Просмотров 3562 года назад
The Future of Testing in the world of Agile, DevOps and Test Automation
Trust & Confidence by Saleem Siddiqui
Просмотров 1622 года назад
Trust & Confidence by Saleem Siddiqui
Async Code Reviews Are Chocking Your Company’s Throughput by Dragan Stepanovic
Просмотров 1,6 тыс.2 года назад
Async Code Reviews Are Chocking Your Company’s Throughput by Dragan Stepanovic
Practical Remote Pair Programming with Adrian Bolboaca
Просмотров 2782 года назад
Practical Remote Pair Programming with Adrian Bolboaca
Unit Testing Best Practices with Vladimir Khorikov
Просмотров 14 тыс.3 года назад
Unit Testing Best Practices with Vladimir Khorikov
Domain-Driven Design & Team Topologies for Product-led Organizations
Просмотров 4,9 тыс.3 года назад
Domain-Driven Design & Team Topologies for Product-led Organizations
An introduction to functional programming with C#
Просмотров 10 тыс.3 года назад
An introduction to functional programming with C#
How to Read Complex Code by Dr Felienne Hermans
Просмотров 7573 года назад
How to Read Complex Code by Dr Felienne Hermans
Fix your technical debt and improve your architecture with NDepend with Patrick Smacchia
Просмотров 1713 года назад
Fix your technical debt and improve your architecture with NDepend with Patrick Smacchia
Nice. I like the book.
Thank you. This is practical.
At 25:19 you say that the functional version is more declarative. I say it is not. The two functions differ in that the one checks the value and only assigns to the carry if the condition is met, whilst the functional version just always writes. I would say that thats an extra operation that you don't need.
What talk is being referred to at 1:12:02 regarding category theory?
ruclips.net/video/I8LbkfSSR58/видео.html
Very interesing talk! The analysis as well as numbers presented were very clarifying. It would be great to present also the benefits of pair/mob programming that arised from the last question and make them more concrete. It may be really hard for people used to do PRs try to envision what working in co-creation is like and what it brings to the table.
Awesome, I bought his book and it's really good
Thx for great content!
The easiest way is create an F# project and reference it from C# , a bit easier in my view
The anti-pattern examples are very clear, nice lecture!
Great!
I like the video/content, but the sound is a little quiet compared to most RUclips videos. This means when your guest starts talking it's suddenly very loud. Different volumes between you makes it difficult to follow with me having to change volume levels.
Très intéressant merci !
Similaire à du Golang, je me suis vite familiarisé
Quel condensé d'info, bravo et merci ! Avec un peu de bouteille c'est totalement fluide (quoi que t'es une brute en vitesse de développement, même pour un dev aguerri) mais j'imagine qu'au début de ma carrière j'aurais dû regarder la vidéo 10x pour tout en tirer ! Mention spéciale à l'archi hexagonale dont les bénéfices et concepts ont tenu en 3 minutes, chapeau pour la vulgarisation !
merci pour cette vidéo, maintenant quelles sont les solutions qui existent pour apprendre ce language ? formation ou vidéos de cours en ligne, blog, documents...
Présentation exceptionnelle 🎉. Merci
Great presentation Guillaume! Thank you
Thanks, I appreciate!
Thanks Guillaume, really good presentation. I 'm using these principles, and this will help to explain the idea better to my coworkers.
Thanks a lot! Feel free to share the presentation, happy if it helps!
Rust t'apprend à bien programmer. Je bassine ma boite depuis 2 ans pour faire du Rust sur les nouveaux projets qui serait parfaitement adaptés. On me répond le client n'est pas prêt, et finalement apprend que le client a fait du Rust sur un projet en interne au lieu de le réaliser en ADA. Rust commence vraiment à se démocratiser. Plus je fais du C++, plus j'aime le Rust ! J'utilise le Rust pour mes projets persos.
Tres belle video6! J'ai beaucoup appris. J'ai l'impression que rust est fait pour moi.
Nice
Thanks!
That's a lot of fancy audio equipment in that guy's room.
Very informative, thank you Valentina!
Very disappointing! Instead of good explanations and understandable examples, the viewer's patience is strained for 90 minutes and at the end you are just as smart as at the beginning. waste of time!
Coucou Amélie, l'essence même du TDD est de produire du code piloté par les tests. Donc par définition tu écris ton test et c'est ce test qu'il va falloir faire passer en écrivant le code le plus simple/court possible. Cela te permet d'aller à l'essentiel et ton test sera très utile lors de tes refactos et ajout de fonctionalités.
I like this approach, I see on your github examples you have a separate persistence from domain layer. I think to do the use case driven approach without EF leaking, this is the best approach.
Voici les ressources mentionnées dans la vidéo : - Don't throw exceptions in C#. Do this instead par Nick Chapsas : ruclips.net/video/a1ye9eGTB98/видео.html&ab_channel=NickChapsas - Exemple de Minimal API par Nick Chapsas : github.com/Elfocrash/clean-minimal-api - Language-Ext, librairie fonctionnelle écrite par Paul Louth: github.com/louthy/language-ext - What is Connascence?: connascence.io/ - Article sur pourquoi éviter d'utiliser des exceptions: xtrem-tdd.netlify.app/Flavours/avoid-exceptions - GR491, guide de référence de conception responsable de services numériques : gr491.isit-europe.org/ - Greenframe CLI permettant de mesurer l'empreinte carbone de nos services numériques en OSS par marmelab : github.com/marmelab/greenframe-cli - Santé, Technologies, Environnement : Quels compromis éthiques ? par Valérie d'Acremont : ruclips.net/video/oKcy_cY0QOw/видео.html&ab_channel=ComprendreetAgir
Slides available here: abailly.github.io/slides/fifty-shades-tdd.html
Additional resources: - NIR source code: github.com/abailly/xxi-century-typed/ - Parse don't validate: lexi-lambda.github.io/blog/2019/11/05/parse-don-t-validate/ - Domain Modeling Made Functional book by Scott Wlaschin: pragprog.com/titles/swdddf/domain-modeling-made-functional/
Fantastic talk. What I always get stuck on is cross-cutting concerns. When the concern is a service I can resort to dependency injection that implements an interface. But when the concern is a frequently used DTO component I have no idea how to handle this. In order to maintain use-case independence I end up re-implementing the same DT0 across 20 modules which leads to a mass violation of DRY. Would love to hear your thoughts 🏆
nice presentation!
Amazing explanation! I loved especially the UCDD.
Excellent work to put together BDD, Hexagon and DDD. Bravo!👏
Thanks Victor, it was a challenge to try to present them all together! Planning to further continue this in upcoming meetups.
You did an excellent explanation. I am very impressed with how cohesive became the source code was. The readability and separation of concern jump over our eyes. Thank you very much for sharing.
Thank you Ythalo! Yes, the key purpose of the presentation was to present the concepts in a short amount of time, in a cohesive way, both theory and practical. The GitHub samples shown here are the foundations, but I will continue working on the GitHub samples to further enhance them. If you have any ideas about what else would be useful to illustrate through the GitHub samples, or any other topics, feel free to post any ideas/suggestions/questions here too github.com/valentinacupac/community/discussions
Any plans to present VSA? (Vertical Slice Architecture)
I'm considering it for the next meetup, horizontal vs vertical slicing....
@@valentinajemuovic 😲😲😲
Really nice concise presentation of the typical software architectures for basic LOB apps.
Thanks Paul-Sebastian! Yes, the focus was enterprise/LOB apps.
How do you toggle between running the same tests at the system level (integration tests) or at the individual module level (module unit tests)?
That's a good discussion topic! There's multiple perspectives here, so you can post a question here github.com/valentinacupac/community/discussions
Seq instead of Select. Why? Because it's better. And I agree. It is. It's also the reason this great library will be something I will not be able to use because I simply am not willing to introduce something like this in the corporate environment that I'm working in not matter how "better" this is. And that's ok. The author of this library wrote it for himself and his team. And not for me. So this isn't surprising. I'll have to use a different functional library than this for C#. Thanks anyway.
Great presentation. Thank you. :)
You're welcome! Thanks for your feedback.
Not sure how this made it on my feed, but I‘m very happy about it. Subscribed ! Greetings from Berlin
Good to hear that RUclips is showing software craftsmanship topics. Thanks for subscribing to this channel!
Happened the same thing to me. Greetings from Munich. 👋
@@Teph4, greetings! Good to hear from you.
Thanks Valentina, wonderful video. I have a question about testing. Do you think that using an in memory database is a good idea in tests with just a litlle setup for the data we want? Which can test the repository implementation as well, or is it a bad idea and it is better to implement a fake repository?
That's a popular question. Short answer: you need to replace anything at the architectural boundary (anything that deals with I/O - file system, DB, network, etc.) with a test double. There are different test doubles - mocks, stubs, spies, fakes. People are split in terms of opinions, e.g. here where I used a fake, someone else would have used a mock, it would be equally valid. In fact, I had used mocks as well for years, before switching to fakes. A turn-around for me was the Google book www.amazon.com/Software-Engineering-Google-Lessons-Programming/dp/1492082791 which describes the usage of fakes, also Dave Farley's videos. But as I said in the previous sentence, others use mocks. If you'd like me to go deeper into this (e.g. illustrating fakes vs mocks vs stubs for repository implementation) you can start a discussion here github.com/valentinacupac/community/discussions - it's a big topic, I may consider test doubles as a topic in itself for a future meetup. One more point is also writing tests in such a way that we can re-use the same unit test later for running with the real DB... i.e. swapping out between test doubles (for unit testing) with real DB (for integration testing)
@@valentinajemuovic This made sense to me. Especially the switch from unit to integ tests. Thanks a lot!
@@yereby exactly. One of the reasons I like fakes, aside from the reasons outlined in the Google book, is the additional reason that when I write a test with fake repositories, that then I can swap them out with real repositories later for integration testing. Furthermore, contract tests written against fake repositories can be used as contract tests for real repositories. Lastly, tests are more decoupled by using fakes - since the rest doesn't know/care which methods the use case will call but just the side effect.
Nice presentation! I have a question regarding security. Would you normally include authorization logic in your use cases, or is that better handled at the outer (infrastructure) layer?
Thanks Mads! That's a good topic, perhaps I should cover it in some subsequent meetup. I prefer authorization logic in use cases, and authentication in the outer layer. Feel free to post this topic about authentication/authorization here if you would like it to be a candidate for the next versions of the GitHub demo projects github.com/valentinacupac/community/discussions
Nice presentation and presenter 😜 I have a question about the approach, suppose that we have the application/use case layer, this use case points to the core domain logic and it's implemented on the infrastructure layer within the same context, if we have another context that needs this use case implementation, what is the concept for this? I asume that the new use case should point to the same domain logic as the use case on the other context since we should have just inward dependencies but what happens between use cases?
Thanks for your kind feedback and good question Alberto, do you have any business example in mind? From my Point of View, Use Cases should be completely independent from each others. If at one point you need to compose a Use Case with others you may have a business representation issue. Though let’s imagine we have a business that requires 2 Use cases to communicate to each others, here are some alternatives to keep them independent : - You may have found some logic that could go in your Domain Model (In an Aggregate or Domain Service for example) and your Use Cases should use it - If really needed use Events with an InMemory Bus to let Use Cases react on given events emitted by the first one If you want ton continue this discussion please post it on the community discussions from Valentina on github here : github.com/valentinacupac/community See you next time 😉
Good question, Alberto! as far as the formal rules go, only the inwards dependencies are strictly specified, I didn't see any rules regarding side-ways dependencies (i.e. between use cases). So what I did experiment with (a few years) ago was sharing logic between use cases (for use cases which seemed similar to me), and it turned out messy. So I fully agree with what Yoan wrote "Use Cases should be completely independent from each others", that's the current perspective I hold. However, I'd still be interested in hearing more about your question, and perhaps an example where you would see the need for dependencies between use cases. As Yoan mentioned, I'm using this discussion board to collect ideas, suggestions, questions, so that I can use it for further improvements of the GitHub projects github.com/valentinacupac/community
Thanks for your presentation. I'm php developer but I learnt a lots😉
Glad you learnt a lot, thanks!
Thanks for this video, could you share the slides?
Thanks Omid! PDF slides: optivem.com/wp-content/uploads/2022/05/Optivem-TDD-and-Clean-Architecture-Use-Case-Driven-Development.pptx.pdf GitHub repos: github.com/valentinacupac/banking-kata-java github.com/valentinacupac/banking-kata-dotnet
@@valentinajemuovic thanks
Merci pour le partage :) Note pour moi-même : éviter le passage de slide au clavier mécanique XD
??????? ?
Testing is hard and unrewarding till you catch potential regressions or bugs. A bit like taking measure for environnemental issues you don't see the benefit until you realise you live in a beautiful world :)
Excellent content! Just picked up C# with zero knowladge, and a bummed out feeling that my job did not pick Scala. The finding this extention and explaination is god send 🙂.. I managed to confuse All the longterm C# lead devs, at my work in the good way! 😅
cdp vum.fyi