Fast product development using Django Rest Framework. #lessonslearned

Video thumbnail (Frame 0) Video thumbnail (Frame 2038) Video thumbnail (Frame 2922) Video thumbnail (Frame 4771) Video thumbnail (Frame 6697) Video thumbnail (Frame 8880) Video thumbnail (Frame 11117) Video thumbnail (Frame 12372) Video thumbnail (Frame 13022) Video thumbnail (Frame 14517) Video thumbnail (Frame 16979) Video thumbnail (Frame 17486) Video thumbnail (Frame 18190) Video thumbnail (Frame 19240) Video thumbnail (Frame 19737) Video thumbnail (Frame 22448) Video thumbnail (Frame 24552) Video thumbnail (Frame 25417) Video thumbnail (Frame 27474) Video thumbnail (Frame 29230) Video thumbnail (Frame 29784) Video thumbnail (Frame 30660) Video thumbnail (Frame 36191)
Video in TIB AV-Portal: Fast product development using Django Rest Framework. #lessonslearned

Formal Metadata

Fast product development using Django Rest Framework. #lessonslearned
Title of Series
CC Attribution - NonCommercial - ShareAlike 3.0 Unported:
You are free to use, adapt and copy, distribute and transmit the work or content in adapted or unchanged form for any legal and non-commercial purpose as long as the work is attributed to the author in the manner specified by the author or licensor and the work or content is shared also in adapted form only under the conditions of this license.
Release Date

Content Metadata

Subject Area
Fast product development using Django Rest Framework. #lessonslearned [EuroPython 2017 - Talk - 2017-07-13 - PyCharm Room] [Rimini, Italy] A year ago we decided to use Django and, specifically, DRF as the cornerstone of our upcoming fast-iterating web platform. In this talk I discuss why and how the architecture has evolved, key decisions made and the lessons we learned along the way. I'll share the techniques we used for iterating quickly and how the technology supported (and shaped) them. In addition some quirks and DRF-specific tricks will be brought along the way. Expect a general talk about how Python (and specifically DRF) can be used as a based for quick product iterations, a discussion regarding how to build and evolve a platform to meet those needs and some DRF-specific tidbits. No previous knowledge is required but experience in web development will make the content more accessible
Classical physics Boss Corporation Intel Raw image format Multiplication sign Software developer Ultraviolet photoelectron spectroscopy Coma Berenices Bit System call Product (business) Web 2.0 Particle system Type theory Personal digital assistant Software Software framework Video game Computing platform Gradient descent Exception handling Point cloud
Axiom of choice Execution unit Logistic distribution Software developer Multiplication sign Sampling (statistics) Fitness function Product (business) Product (business) Arithmetic mean IRIS-T Personal digital assistant Charge carrier Family Descriptive statistics
Point (geometry) Multiplication sign Perspective (visual) Formal language Number Power (physics) Programmer (hardware) Prototype Goodness of fit Iteration Term (mathematics) Authorization Software framework Raw image format Scaling (geometry) Weight Bit Scalability Type theory Process (computing) Software framework Video game Figurate number Prototype Family Library (computing)
Point (geometry) Context awareness Multiplication sign Video game Mass Focus (optics) 10 (number) Front and back ends Type theory Sierpinski triangle Integrated development environment Order (biology) Website Software framework Physical system Computer architecture
Scaling (geometry) Digital electronics Link (knot theory) System administrator Multiplication sign Web page Cartesian coordinate system Field (computer science) Dimensional analysis Web 2.0 Personal digital assistant Authorization Physical system
Scaling (geometry) 1 (number) Cartesian coordinate system Login Information privacy Element (mathematics) Word Operator (mathematics) Self-organization Figurate number Quicksort Office suite Physical system
Serial port Decimal Real number Multiplication sign Strut Virtual machine Field (computer science) Mass Bit Grass (card game) Instance (computer science) Product (business) Product (business) Number Process (computing) Physical law Logic gate Physical system
Complex (psychology) Game controller Mapping View (database) Block (periodic table) Bit Device driver Vector potential Product (business) Human migration Computer programming Query language Moving average Cuboid Object (grammar) Condition number
Point (geometry) Game controller Multiplication View (database) Plotter Multiplication sign Moment (mathematics) Execution unit Interior (topology) Set (mathematics) Instance (computer science) Device driver Attribute grammar Personal digital assistant Query language Energy level Pattern language Object (grammar)
Point (geometry) Web page Scale (map) Functional (mathematics) State of matter Variance Number Wave packet Category of being Electronic meeting system Object-relational mapping Figurate number Condition number
Group action Functional (mathematics) Trail Twin prime State of matter Euler angles Decision theory Interface (computing) File format Sheaf (mathematics) Instance (computer science) Subject indexing Mathematics Different (Kate Ryan album) Finite-state machine Normal (geometry) Finite-state machine Summierbarkeit Electric generator Electric current Library (computing) Condition number Default (computer science)
Building Open source Multiplication sign Mathematical analysis Core dump Database transaction Line (geometry) Parameter (computer programming) Cartesian coordinate system Template (C++) Type theory Personal digital assistant Different (Kate Ryan album) Telecommunication CNN Energy level Software framework Damping Computer architecture Window
Metre Service (economics) Building Software developer Decision theory Menu (computing) Software maintenance Focus (optics) Demoscene Product (business) Measurement Coefficient of determination Process (computing) Different (Kate Ryan album) Order (biology) Process (computing)
Point (geometry) Design by contract Normal (geometry) Software framework Control flow System call Event horizon
Point (geometry) Presentation of a group Server (computing) Implementation Observational study INTEGRAL Multiplication sign Client (computing) Open set Mereology Perspective (visual) Product (business) Latent heat Row (database) Software testing Software framework Office suite Computing platform Window Home page Interactive television Counting Core dump Bit Instance (computer science) Cartesian coordinate system Connected space Mixed reality Website Object (grammar)
Beat (acoustics) Serial port View (database) Keyboard shortcut Set (mathematics) Similarity (geometry) Instance (computer science) Field (computer science) Frame problem Different (Kate Ryan album) Personal digital assistant Internet service provider Core dump Finite-state machine
no the and guess for me to adapt to be uh what I say to the ways attending the talk as many of you do a but
if you do classical development of day-to-day walk OK the nanodevices providing descent hopefully and how many of you have you been using gangrenous finger before photographic them then a bit about me a high enough using this this is stock started programming some 15 years ago all billion web platforms with bosses creates and CGI likely around 2009 and my interest particle call if 24 whether they were using the by from stacked it was mostly so what the time named John was started that that life around that time and I have been involved in a couple of of start ups mostly from that time on in many cases of the new the dam was so the youngest time because of Python as many fe what's and uh mostly from the younger perform well in the past the only exception I think I've been hiding is what I was doing 5 3 time tried out there overlapping gene type of approach now what this
on that doing and I will give a very brief description just thing to to follow their the small collect samples will be discussing after Ross so and this in a bid to marketplace we just basically much pilots or industrial flight with available attacked iris normally track diverse of the 2 3 dice a very small company it's hard for them to find jobs and for the customer is hard to find available direct either the need to call many people that usually melodies foxes a back and forth and we just simplified understand that marketplace ways what I mean
by fast growth development and usually when you're building a start up um and these might be completely different if you are a researcher are in a large company but when during this time you normally dental being 1 of 2 faces you that you are looking for a product market fit and then you need to do it very fast and really nothing matters except finding problematic at the because no matter how would your brother this no matter how automated everything is no matter how well you talk arise every few 100 % that's cooperate to reunite coder straps and if you don't find the market figured it will all end up in the beam no 1 day you were lucky and if you're liking and something makes click and then is that they were just not scaling and you start getting all the choices you need to get that In our case this is to be the revenue growth from from Ontrack so this is 6 months trying to figure out what the hell we're doing in logistics market that we have no clue about and then 6 months and OK may be 8 maybe we got lucky maybe we figure something out now the we'd already read fast
actually we would and from the beginning using their I phone downwards and generous framework which is this type of a by a lot for this type of problem because it lets you perform well in both status yeah you can go very fast in the prototype face and and we'll figure and we have a softer was a couple of examples of how extreme we want to get even and a bit faster to put pro-Taliban even a couple of weeks earlier and once you once you get to the to the point where you start this authority figure something out of a job market that was there for you to scale and it's not only scaling from a technology perspective is also scaling from their insights perspective not contain that are like 7 people will touch them I can only a few people were happy the despite experience it's is very important for for stock and this and may reveal how the by from work that you can use see jumping coming from um coming from other languages coming from other frameworks things that I really like about the status is that this term is very well documented often awesome community behind it is very easy to read the court that your colleges world before you arrive and especially is very opinionated I do for
this standing here that I think many people will not agree especially everybody with various but something and and I have seen Borrelia many good Python programmer saying like why you have a general you know that there is a point that is really really complicated mission makes too many opinions I prefer to with life last thing I've put a couple of libraries and know them my heart and and have so much more freedom and is what's very well when it's you'll totally or the very scarce people would not have to collapse stack when you need to quickly on the net and underestimated the amount of time you will lose in discussing under discussion everything is your friend has a couple of opinions even if you end up in 80 % of uh the quality of all the possibilities you could get to the fact that you do that 3 times faster and because you save a ton of research on upon of discussions is something that that actually comes to be an advantage and you will have time mediated on there to book for very specialized solutions on and things that you can discuss with power so what do what did we do or which the lessons we learned in iterating fast a lesser number 1 is like that but again nothing no go for it and try to put something in front of your customers so as possible the funding of Lincoln is to save you are not the same all the other brother went to align to do duality too late and this is something that I agree in in this
particular environment like I said in might not apply to all the context not but definitely applies when the going to be the start of the 1st I
mean this is the architecture of principle of a type of forward even use dialog and this is something that for me as being a lesson from past companies if you stand or the the MDC approach to the mass and you will very quickly be having too many points of entry into your but can and that it would be really get messy so 1 thing we do the most to focus on the a DFS and just tell for I entity to the back end and then delegate the front-end delegate the person bachelor yes ma'am to but it was also that this not by this because the guy was the war is not stable unfortunately not like Python Django so that they will change for us it was we act now we actually started with well courses couple of weeks to to move to react in a hopefully cost us not so much time when the new gasket framework come out brought in order or whatever I mean a bonus point for having fast is when they just steal decides uh they got the customer and the customer doesn't want to interview beautiful website they wanted to integrate with the SAP system they have where they spend tens of tens of millions for having it and the doesn't it I mean he's he's people know and fortunately and this something that generous framework is you almost for free is that you can have some professional API and ready for that situation if you're not
using the Django admin which is 1 of the main advantages of or how can you get them and when you have seat authors like how can you invest the least amount of money in it unfortunately generous from unless you manipulate your data and and this is intended medicine and dates of course if it's a disaster for that but is very cheap because nothing uh and um this has 2 advantages 1 is a pseudo dimension of and I in the physical starts the API Explorer and another thing is you align the vocabulary we the people operating system because really no 1 understands how to system behind because they actually need to use the same fields these the this doesn't scale of course and this is the softer passed a couple of weeks but you got answer to the which the heavier you need to be other notifications
also there are many ways that amount of fostered embedded on Web circuits in our case we quickly integrated slack so people will know where OK something that I thought the system assume memorable that link to the API that are out there and they could be adequately operate with almost realtime invested in that case so we have more time to try to figure out what our customers want instead of developing does not like back-office applications now do do some
cold come this is another element though this is still a problem that you normally have when you have a very clever and you add super the guys that they become so the basic health system is very boring and we don't know how our customers want to use you know you might sell your application to 1 guy and then there might be another operator using or they might say that the login details how hard you go up uh all this unity of the people use just and so 1 sort of that we told them was to say OK let's just figure out an organ way and where we just if people you need to you ends again this doesn't scale very well that there might be some privacy concerns that this saves you a couple of words and lets you understand how your customer for your customer interacts with the application and then by the way of dialog you with this and discuss with him how hi she said noting the there's with our colleges and so on this social defined for
them and putting them in the past within in a posting and setting patent in that office another a sort
that we found useful when modeling our system was to start modelling complicated
things with the with the duration them fusion pore so we were having this problem we have seen men's and then not business guy said we need to also makes us OK so what's a next so for instance if there the thing is to be picked up after 10 PM and then this would such a bit more money OK then we put the and then we put OK what does it mean more money international patent % of fantastic and then if the darkest days for a long time uh then we need to chance more money into I OK how much more money this should be a fixed amount that we will decide later OK with I start 1 of these is the and guy all different dusting and then you will like yeah and we need another Dexter like what yes some collection at least k the what the hell is lift gate yeah this changeable I black that lets you um what is it about a job if you have like a specific machine to do that of a fantastic was applies for that is this is this is this a percentage of this and that's a real number yet so mimic complicated because it affects the number of I believe you have many biologists would be included in the the in the price not all otherwise it depends on his motorcycle came of the how the hell do we monitor and then you go to the engineering team and and they have a slight but these all the number of extra hours or where they are more like and if I know
how this works there will so we started them with the with the same block which is we use of apostasy conditions we don't need to more than a lot and the government this of dimers from a license so we just connected directly and taking out of complexity some potential migration problems another the problem we're
facing very heavily and with our modeling most of the admissions um Monday access control layer were not as easy as we figured out so usually and then we would assume that it yourself and mark you discuss something like OK I want to use boxes someone else and from those monitor want the usual blocks of some objects this kind of fishing is easy map we had a bit more intense programs
where people said yeah but some users should not see some attributes of the objects even if they can see the object they're like awesome and then in some cases you should also not be able to see any kind of 100 for instance black diversity not see some of was related with the pricing in a specific scene and so we were messing around a lot and we have some solutions and then not bigger happy with it and if you have some experience on the topic I would be really nice to discuss after that was all that approaches so we ended up using the dollar yourself for some of us persons from the from the moment then we use the few that's of Thomas friend plot next to the
level of of permissions of control and then we have ended up in some cases we can dedicated points a specific set so we have this this kind of pattern of multiple cellulitis all the time or there's 1 more than that we will also seen the other day on on the unit Ch
so that for how do died to put something out there very fast now what
happens when you and then when you get successful and start growing which kind of lessons where where young and here the this number 1 the newcomers to
the stock we always get into our with the or and again there is not a simple solution we were planted a them there's so them some past your Python talks and doing a lot of CodeView what is very hard to train somebody Newton-John long then the condition is and say lacking but this did you have to follow them because it's so these emperors 1 point is where you end up putting their own property and then uh yeah what is go from 20 to a function and you can't figure out where the problem is then you teach them how to use prefetch and so on and they knew nothing about that of course but if it's what's only if you're and if the point that uses it is in very similar to the way that the benefits thus or otherwise and you need to map it in a more specific way so that you can use it after which the gain if you have some was variances in training people other than you do during going into this particular aspect of the problem is the only thing that we have found complicated and and that gets people really in and really complaining about the whole in the framework because of magical because of the decisions and that them out a very happy to sell to so spin is already then figure out ways of documenting this better so that there is a web page where you say OK after some after some on after some of the blame that on the different some experience most of these states where you have a lot of documentation talks whatever that show you how to avoid the typical perhaps
it and another lesson that we learned and heavily on this if you have a state transitions use them a finite-state machine and that is there very nice Python libraries very simply use and
a will help you map and your your functions that are the while doing it we learn um what we found an indexing imparted coming from a guys we said like if we have a status changes and mostly more I we want to go forward what last why don't we instead of and you this this stage you should go to toward a race condition I tell you the state submit connected with what we had before about declarative attitude I would do you know which estate idea and I will tell you I want to go forward and then we use the state machine and that way for the mobile phone which is mn they just in which is that they think they have and they want to for where we check if they are not the state fantastic we give them back the new state if they were not another state without them as sorry somebody with higher privileges moved this state before this is the new state but there was something wrong so you can your customer that is not was not the norm of and section decisions this allows you to control the states in a different way for instance from an interface with you might need to walk back and forth and from their mobile phones and now I'm on the crossing
by a couple of thoughts not so much related generous framework but the more higher level and 1 thing that have seen that gets people to go very slow to try to beat everything says is instead of many many times but as soon as you start growing something that prevented a single knows you have fantastic salary and if you and this this is stack or something analysis for for being accused of the types of architectures and another thing that have set many times when I don't understand but his debut that
on CNN like EU generationally attacking genes and even then only because their case was that a particular are finding have been is very complicated on basis of of to and you can't rely and to is like and Goodall which is Python-based open source lots of lines from the community to the billing in many different countries many different situations and you can just slightly parted instead of building from scratch and another case when I found that we were doing templating and it's kind of like front was for all this marketing applications and in marketing people come with like all your transaction eliminates OK congratulations for your fine we would assign 1 we will put it up there we feel about ideas and then they come and say I you know what if the facts or that was suppose something different like also I would only if I would was something different yeah and if it's a VIP customer was it was something else that fantastic and you modifying something that that was not good for the themselves nowadays we use custom custom an ideal there others and we yes in the parameters of the orbit and then the marketing thing can do both templating there and they can also do the segmentation so for all these and then or so the from this that you're not building like communication to your customers you can also and get it done outside 1 final thought is if you
if you really want to go fast them and that was interesting because I have different thoughts a nearby dogs I don't believe that the engineers of the developers should focus on the real face along and completely I really disagree I think this is this is a very
wonderful approach I'm going to yeah we just like to be and then some do with the customers I think that this in and having fun services because you would just you but if you did before or what you afraid online and I think more much more vital exercise when you get to to be more from the early on in the in the decision process that if you you can get involved in this sense understand why why we do what we do and getting but I have to face with the like can we do something different come is something crazy can we so something stupid can something that is maybe In the moves through that never thought it would have been in our own room scene there the tickets in order that of the specter come from somebody else the so for the 4 meters where and those where the main and the maintenance have been and taking over the
last year in contract and I'm 1 for the 1 final thought this like if you feel that you are a bit out of the call for song because everything was too far as you can never get it they can live in a condo that's probably the point where you want to read this would spot the and yet if
if you have been dealing with their downwards framework permissions if you have been there trying to teach all the people about the emperors 1 problem and what if you just care about this is where I feel free to reach out to to us without to Bobby blossom some discussion doesn't talk so some experiences that we have a star announced as we will be the social event and of course on the norm of online Chinese like into being created in the last that definitely looking forward thank you very much few
because the use we have 10 minutes left sold whoever is a Christian has time to Toronto to ask at some was a question no 1 1 what of I'm wrong he he he yeah are you do you have a slight cares specification of your API at the feudal how do generated excuse me I'm us specification or open API specification of your API do have it's not we don't we don't have it so you can sell way with the way we work is and the on integrations we do this with a very early a slow-moving but that's like and the difficult part of the implementation for you on connected with this how of like very large companies and for then they prefer to see the documentation the air and so on 10 and then what we do is we send a PDF because for them it's important so they know it's fixed in the point of time and then we'll commonly to the the idea that way and then we start a new instance with official data and we just leave them these very same from the so can the I was wondering whether I building colony the API use some count has some connections to the client a rendering Canary doing because those in the talk and in the next room a bit earlier and they're talking about glad sites rendering can speaking thinks it's also on doing something similar it can be computed in that that would put up do you rent those like HTML as the on the back and tell you just so the API and that's all I come so on the on the back and we just do an API and we are lacking away and compare with my past where we had to do was set aside and that in so we took advantage of something that is usually not among the animistic we just do a all for the home page so we don't waste your for the main platform and the homepage we have not been with a with dying gondolas framework the home to smaller flask IC application but we can do a lot of complaints and that we do on the server side funding completely and then as soon as the customer wants to play with anything we moved them to a lot a single top which act application and that it's all the client side because we don't need to waste your mom about interaction dietary otherwise we will need to have the hi thank you for the presentation hobby minute your tests or do you like your tests uh using is frameworks cost is the believes and so we we have 1st set of tests again and the API so we use like this and we thought which I to test and everything from the from the point of an API consumer yeah so you act like you look like you use this book like a more functional tests I want you say look thing with some of the study of this but they are written normally from that perspective so we have a mix of office actually but from that so that's what how we we and that's how we got it so we don't have a specific test with in some of the models yeah so so just think you the so any more questions then I will ask 1 question if we have time for somebody has to answer how do you train people in the emperors 1 problem if you have been doing it but I don't know the the how do you do
permissions of last emissions with generous framework there many Dengler as a friend the like when you cannot just give an but you need to give you a bunch of an object or would you have people I
can use have tendencies yourself you can find a state machine for instance but not all this and in my case we were doing something that's not it's not to really permission related but you can bind to the permission we give different set the fields fall the least view of those resources rest frame and different set for the details so practically I'm hacking the core of the serializer which the beat the leak but that active had the fields and provide difference at the 5th maybe you can use something similar and to bind to the request and the user permissions and in near the questions or answers 50 well if not so then thank you and then