Vous venez de terminer le tuto officiel de #Django et vous désirez faire un nouveau pas en avant significatif ?
Utiliser l'ORM de Django est une bonne entrée en matière, mais prendre le temps d'apprendre comment concevoir une base de données relationnelle est essentiel pour être productif sur le moyen terme. La base de donnée est le coeur de votre application. C'est là que des connaissances solides feront le plus de différence.
Le paquet django-extension fait partie de tous mes projets Django. Sa commande python https://t.co/wkdZQlshJ2 shell_plus, avec l'option --print-sql ou la variable de configuration SHELL_PLUS_PRINT_SQL = True, permet d'afficher automatiquement la requête générée lorsqu'un QuerySet est exécuté.
Visualiser les requêtes produites par l'ORM est un excellent moyen de se familiariser petit à petit avec les bases de données relationnelles.
En complément, je vous recommande la lecture de deux livres de Claire Churcher, chez Apress, qui m'ont accompagnés depuis des années:
- Beginning Database Design: From Novice to Professional 2nd ed. Edition https://t.co/LiEIu9E8TY
- Beginning SQL Queries: From Novice to Professional 2nd ed. Edition https://t.co/uvnPKQY3WK
The Django 5.2 pre-releases are already our most downloaded preview releases ever! Thank you to everyone who has taken the time to try out the previews and provide feedback 💚
Finally got time to do some tests between 2 stacks :
- @djangoproject + @htmx_org + @Alpine_JS + django cotton
- DRF + @nuxt_js
They're really close in term of DX, even though I must say nuxt has some really nice tools for developpers.
With the first stack, a solid foundation and good conventions from the start are crucial for things to run smoothly.
Django + htmx + Alpine + django-cotton is a minimalist stack, which is its main advantage. Anyone who knows Python and a bit of HTML, CSS, and JS can jump on board in just half a day.
However, you’ll need to make a lot of decisions. To get something that really works well, you’ve got to have a good grip on HTMX and establish solid conventions for your URLs and views.
With the 2nd stack (drf + Nuxt), you’re diving into something way more structured, so the learning curve is definitely steeper. You really need to master JavaScript, TypeScript, Vue, and Nuxt. That's a lot of concepts to grasp, and way more code and files to get to the same end result.
Once everything's up and running, though, I think the development speed and experience is pretty similar.
The Vue and Nuxt ecosystem is cool, but for about 90% of projects, you don’t really need more than what libraries like @daisyui_ and some alpine components can offer.
Right now, I’m not sure which stack to prefer.
Using JavaScript front-end frameworks feels like I have to fire up a nuclear power plant just to serve HTML, and I love so much the simplicity of htmx and alpine : only using what is needed, works well and I can get back into the project in two years and easily understand what’s going on without anything breaking.
Django's templates though need a major update !
Without a package like the awesome django cotton or other similar packages to have a good component system, it gets hard to make something efficient with htmx.
10 ans après sa 5ème édition, la 6ème édition du livre qui m'a tout appris sur python il y a plus de 25 ans sort le 5 mars chez O'Reilly: "Leaning Python" de Mark Lutz https://t.co/W8nXMtt6Qk
My Flask Mega-Tutorial ebook is now also available from The Pragmatic Bookshelf store, without DRM!
I'm super excited to offer this additional channel for those who do not want to be locked in to Kindle.
https://t.co/THwTh8q4t4
@ThibaultHoudon L'objectif est-il de coder sans connexion ou d'économiser des abonnements ?
Ou d'éviter que le code ne fuite sur un serveur externe, ce qui est le principal frein à l'usage d'LLM à mon boulot, par exemple.
Beaucoup ne savent pas estimer, car ils n'ont pas d'idée précise du temps que prennent les features qu'ils savent déjà réaliser. Du coup, ils ne peuvent pas non plus procéder par analogie.
Je recommande de prendre l'habitude de mesurer et de documenter, avec p. ex. un outil à la Toggl.
Avec une meilleure conscience du temps en général, on progresse et on estime mieux.
Compétence à acquérir vite pour un dev :
👉 savoir estimer !
Et quand je dis estimer je veux dire sans forcément connaître par coeur l'existant, la structure de la feature, si les endpoints ont tout ce qu'il faut etc etc etc.
Après un certain niveau d'expérience, tu dois être capable d'extrapoler.
Si tu dois passer 1j a relire toute la codebase pour donner une estim d'une feature c'est pas normal.
Faut vraiment apprendre a estimer et donc prendre en compte une marge de risque!
Si c'est un truc similaire à ce que t'as deja fait avant, tu devrais être capable de savoir les grandes lignes sans décortiquer tout le code et donc donner une estim assez proche.
Si c'est super différent/inconnu, tu dois être en mesure de prendre une certaine marge de manœuvre.
Et si c'est vraiment obscure tu dois être capable de justifier le fait que t'as besoin de réaliser un mini POC pour pouvoir estimer correctement et vérifier la faisabilité.
Dev c'est pas juste développer des features.
C'est savoir communiquer a un chef de projet ou autre le temps que tu mettras a faire un dev.
Ça permet de faire des roadmap, des budgets et donc... Te payer.
En vendant mes journées à 600€, je faisais autour de 110k € de chiffre d'affaires chaque année.
En arrêtant de vendre mon temps pour plutôt vendre un résultat, j'ai réalisé à quel point c'était délirant.
Les clients prêts à payer 10k € pour 3 semaines de taff, ça court pas les rues.
Un projet à 3k €, c'est déjà une belle vente.
Du coup, pour retrouver les 110k € de chiffre d'affaires annuel, faut vendre 37 projets à 3k €.
Si t'as de la chance et/ou que tu fais bien ton taff, tu vas vendre plusieurs projets au même client.
Disons que t'as besoin de 20 clients.
Bah faut aller les chercher les 20 clients, avec tout ce que ça implique en prospection, cycle commercial, communication, suivi projet, etc.
Alors y'a pas 36 solutions.
Déjà, c'est pas bête de revoir ses exigences.
On peut pas s'attendre à changer de mode de fonctionnement pour trouver d'autres avantages et garder les avantages de l'ancien aussi.
Le beurre et l'argent du beurre, toussa toussa.
Donc 110k € à l'année, c'est ambitieux quand tu découvres un nouveau monde.
Ensuite, faut être honnête avec soi-même.
Si t'as besoin de conclure 2 ventes par mois qui représentent 10 appels prospects que t'as décroché après 30 DM tout en livrant les prestas commandés...
C'est chaud, super chaud.
Je sors des chiffres au hasard et je parle de DM, mais tu peux remplacer par ce que tu veux : prospects qui viennent d'eux-mêmes, pub, etc.
L'idée c'est qu'une vente, c'est une certaine quantité de ressources en amont.
Si c'est pas tenable, t'as 2 solutions :
🔹 Vendre moins, plus cher
🔹 Vendre plus, moins cher
Souvent, c'est pas un choix. Ça dépend de ce que le marché veut et ce que tu es prêt à faire.
Par exemple, perso j'ai le choix d'essayer de toucher des éditeurs de logiciels dans la finance (vendre moins, plus cher) ou les petites entreprises dans la finance (vendre plus, moins cher).
Ce qui correspond à deux approches radicalement différentes.
Ce tweet est déjà long alors je vais m'arrêter là mais si ça intéresse, y'a d'autres sujets inévitables que j'ai plus la place de plug ici :
🔹 Se nicher pour que les clients n'aient pas d'autres choix que de passer par toi
🔹 Productiser ses services pour vendre plus en moins de temps
RT, like et commente ton IBAN pour la suite.
(je plaisante)
(et je partage mes apprentissages, j'ai pas cracké le forfait encore)
@P3DR0CAEN@benjamincode N'importe quel contenu, notammemt sur le dev (mais pas que) peut se trouver aujourd'hui gratuitement sur le web. La plus value d'une formation est justement de faire un tri et de dégager un chemin.
@ledevultime@melvynx Polariser est une technique marketing comme une autre. This is a free world. Si on devait tracher tous les dev qui disent des bêtises sur youtube, dans un blog, dans un livre, on n'a pas fini...
Attention cependant de ne pas prendre comme critère principale le nombre d'offres d'emplois.
J'ai des demandes de missions freelance très régulièrement sur @htmx_org parce que peu de gens l'utilisent. Du coup toutes les offres viennent à ceux qui le connaisse sans même rechercher.
Autrement dit on peut voir ces chiffres différemment en les mettant en perspective :
👉 Jobs sur WelcomeToTheJungle :
🔹React : 400 (et 50,000 développeurs qui vont postuler dessus)
🔸Svelte : 12 (et 10 développeurs qui vont postuler dessus)
Mes ordres de grandeur sont totalement imaginaires, mais c'est pour illustrer.
C'est le problème qu'on voit avec JavaScript. Oui il y a beaucoup de missions, mais comme tout le monde est formé dessus, il faut vraiment être meilleur que tous les autres et savoir se mettre de l'avant pour se distinguer.
Lors du live de ce soir à 19h sur https://t.co/gkTRtlzBF4, je vous montre Comment simplifier drastiquement les tests de vos projets #Django avec Pytest et des bibliothèques comme Factory Boy ou Model Bakery.
Pour ceux qui ne peuvent y assister, le lien dans ma bio vous permet d'accéder aux rediffusion de l'ensemble des WePynaires.
Here, dbshell connects to your database using psql (gor postgresql) or mysql-client (for mysql) or the corresponding db client. It does not open a python shell but uses a native client. The shell command opens a django-ready python interactive session.
Those actions are therefore very different. With shell, you explore the db using django ORM. With dbshell, you explore the db using plain sql and native client-specific commands.
Dans le wepynaire live de ce soir à 19h sur Zoom, on parle de "Comment simplifier drastiquement les tests de vos projets django avec Pytest et FactoryBoy ?".
Voici un document que j'avais écrit sur le sujet à l'attention de mes étudiants en présentiel à la Haute Ecole d'Ingénierie et d'Architecture de Fribourg: https://t.co/OWQgPGp9fP
After basically ignoring every trend in Python tooling for the last ten years, I've recently become a full-blown uv convert.
Here's an unreasonably long write-up on why, and how you can adopt it in your own projects:
https://t.co/os4tTCFXJn
@GabrielTrouve je préfère tout de même faire les choses proprement et utiliser la fixture tmpdir de pytest https://t.co/0LKQUFLwJ2 et reconfigurer MEDIA_ROOT