Software Design Tutorial #2 - Implementing Our Design

Поділитися
Вставка
  • Опубліковано 3 лют 2025

КОМЕНТАРІ • 231

  • @TechWithTim
    @TechWithTim  4 роки тому +164

    You guys asked for it, so here it is!! If you appreciate this effort please leave a LIKE and SUBSCRIBE :)

    • @devoiddude
      @devoiddude 4 роки тому

      Thank you so much for this!

    • @gergoborhegyi5388
      @gergoborhegyi5388 4 роки тому +1

      Im very happy because you did the impelmentation. I think I understood classes now. I always had problems with classes. But you said you doesnt wanna do the whole impelmentation cuz it would be very long. I van understand this. But ön the future, maybe van you make a video about web scraping(Beautifulsoup,selenium for example) for a new topic. Thanks.

    • @eahere
      @eahere 4 роки тому

      Amazing man! So glad you did this!

    • @johnnamtae9610
      @johnnamtae9610 4 роки тому

      Yeah you made a mistake I see. You should put all of that in one table. How many times have you heard that before.

    • @johnanih56
      @johnanih56 4 роки тому

      Thank you so much for this. Excellent stuff

  • @raymontus
    @raymontus 4 роки тому +95

    Hi Tim. Loving this series, what are you plans for it? Are you going to go right through to the end product? A gui and debugging and such? To learn the whole process cohesively would be awesome. Again this series is brilliant.

    • @raymondmichael4987
      @raymondmichael4987 4 роки тому +8

      I wish he could see this and revive it, and let us have a part 3 at January 2021.

    • @fxckinunicorn243
      @fxckinunicorn243 Рік тому +2

      Boosted after 3 years

  • @bruhrnav
    @bruhrnav 4 роки тому +28

    Tim out here working his ass off for all of us. Much love!

  • @TheGitGuild
    @TheGitGuild 4 роки тому +37

    It is refeshing to see things constructed from the beginning and you did a great job at explaining it!

  • @Newwarfare4
    @Newwarfare4 4 роки тому +6

    I rarely comment on videos but had to drop in an say: Thank you for all your efforts Tim, your videos are incredibly insightful! This series has been a huge value add and would love to see it continued. Keep up the great work!

  • @pratyushbhattacharya3428
    @pratyushbhattacharya3428 4 роки тому +4

    I've been learning from Tim for a while now. This series is by far the most important thing I have learnt in coding. I knew about classes but could never really figure out how to implement them in a real situation. Thank you so much! I'd love to see how you implement it in a GUI & database.

  • @WaXer98
    @WaXer98 4 роки тому +12

    Hey Tim! Great video, as always.
    I have a tip for you; when checking if the address is a list (around 13:45), you can, instead of checking for a list, check for a Sequence.
    I can easily imagine a scenario where you would not pass a list to the address parameter, but a tuple; in that case, it should still be able to populate the addresses list. You can import Sequence as such:
    from collections.abc import Sequence

  • @vicyoslinuxofficial2607
    @vicyoslinuxofficial2607 3 роки тому +2

    Tim, you really have the skills of a great teacher! You do know how to make things easier to understand by walking us through the details.
    Thank you so much for your videos!

  • @omegaman116
    @omegaman116 4 роки тому +3

    Man, this is exactly what I was looking for ; Hope it's not the end of the series, I'd love to see the whole process until the end product. Thanks a lot Tim.

  • @helluci6449
    @helluci6449 4 роки тому +1

    I'm learning Python mostly with your videos, for like 3 weeks or a little bit more, and I can tell you are doing a great job! Python is the _first_ language that I understand how it works and why it works, how to do OOP programs, how to plan to program, how to *think* like a programmer, etc...
    Thank you for your content, I hope you won't stop making videos in a while! :D

  • @p.w.f.
    @p.w.f. Рік тому +4

    Hey, Tim! Could we get an update to this series? Part 3 could be fixing up any holes in the process that have been identified, writing some test cases to start seeing some implementation, and updating the UML in an actual software design program/tool such as Lucidchart or Gliphy with any new methods/fields added to the diagram. Part 4 could be hooking it up to a framework backed by a DB to actually see the code working/saving state in a real environment. And part 5 could be creating a UI (I know you’ve done some stuff with react recently) to interact with it all. Maybe even a part 6 where you show how to deploy it to Azure/AWS or another hosted environment. I think the people want it…
    Honestly, if this project is dead, starting from the beginning would be okay, too. It might even be better if you don’t have access to these files anymore. Like you did in this series, you could start a project from a feature story and use what you’ve learned from working in the corporate world to go from start to finish on a full project. I think it would be a particularly worthy adventure for others that are still learning and even people that are already in the industry to see the full front to back process of what software engineers do on a daily basis. It would give your entire audience a snippet of what they are interested in, letting full stack engineers see how it works, front end folks the ability to appreciate the backend and vice versa.

  • @dougstrong3272
    @dougstrong3272 4 роки тому

    you don't realize how important this lecture is, thank you. I have never found anything on program design.

  • @smfinch99
    @smfinch99 4 роки тому +4

    This tutorial has given me the confidence to begin making 'resume ready' projects. So far I've only created tiny projects with a few functions in them so far.

    • @kevendecarie
      @kevendecarie 2 роки тому

      Hey ! What's up since this comment? Have you built anything ? 😊

    • @smfinch99
      @smfinch99 2 роки тому

      I did actually! I had forgotten about this comment but looking back on it I remember this being a turning point in my self teaching journey. I'm now employed at a company called RoleModel software!

  • @z1090
    @z1090 3 роки тому +1

    exactly what I was looking for! a course that goes from the brief all the way through to writing the classes. Thanks!

  • @nelsonchika
    @nelsonchika 4 роки тому +1

    Hello Tim...
    I have been watching your videos for a very long time.
    I love you Flask Rest API tutorial so much.
    Thanks man...you're the best.

  • @skizzers9568
    @skizzers9568 4 роки тому +2

    Hey Tim I’m a high school sophomore and I’ve been teaching myself coding since 6th grade. I love ur channel so much as I’ve learned from it so much. I’ve learned pygame from u, sockets from u, pretty much all my python knowledge from u. Ur the best Tim!

  • @samutjuh14
    @samutjuh14 2 місяці тому

    Hey Tim! Thanks for your video, it was quite informative. Nevertheless I have some remarks on the code you have written.
    1. Circular imports: In your code I see some circular imports. You import Person in Enroll and you import Enroll in Person. Next to that you import Courses in Enroll, and you import Enroll in Courses. Note that this code will therefore never work. Circular imports are usually a sign of bad software design, and therefore I lose trust in the design choices you have made (which is kind of sad, because these two video's are all about how to design your software). Tip: always test your implementation.
    2. Type checking in code: Others have mentioned it already, but checking the types of all inputs is not necessary, because it clutters your code very badly. Only in case you receive an input from a client of which you don't have control of yourself it might be useful. You can use type hints in Python. Although they are not enforced at runtime, it can help you while developing, because your linter can inform you about issues.

  • @nene_san
    @nene_san 4 роки тому

    I learned a lot from this.
    1) Classes are quintessential
    2) You need grammarly

  • @tarikr5853
    @tarikr5853 4 місяці тому

    thank you for this invaluable course. Next step is to link this to GUI (PyQT) and a database. This will make it a self sustained project.

  • @ItsDrike
    @ItsDrike 4 роки тому +94

    While this was a nice video, I'd love to see a full implementation with a working database because I'd love to learn how to change these classes into actual database tables and columns.

    • @Simon-db5tg
      @Simon-db5tg 4 роки тому +6

      i agree, it would be nice :)

    • @SeSaRose
      @SeSaRose 4 роки тому +3

      me either

    • @raymondmichael4987
      @raymondmichael4987 4 роки тому +1

      🙋🏾‍♂️ Count me in

    • @tpz1474
      @tpz1474 4 роки тому +2

      Has anyone come across another resource which shows the final implementation? We are just missing the final piece of the puzzle!

    • @vickneshram25
      @vickneshram25 4 роки тому

      AGREED

  • @codylee2739
    @codylee2739 4 роки тому

    Hey Tim! Great video man and a huge fan of your channel! I have learned so much about not only Python programming but about other programming concepts as well (more-so than any other channel I have viewed)! And I believe I am with a few of the other comments about requesting a video that utilizes these new classes that you made in this video. It has been quite interesting and beneficial to see these steps played out from the very beginning and how each step is being handled. I believe that a video that shows a program that utilizes what was made in this video will be the bees-knees and a great conclusion to this Software Design tutorial! Great stuff and keep it up man!

  • @igorb5774
    @igorb5774 2 роки тому

    Thanks that is a really good video. As well as the first part.
    What I would add in the end - a small section (up to 5 minutes) where we show like the system work: create user, create professor, enroll to course, etc. So there would be some example of the data flow in the application.

  • @winnumber101
    @winnumber101 4 роки тому

    Extremely intelligible/easy to follow... also I learned a few ways to shorten the processing time of adding lists of info into the instance of a class at once rather than iteratively

  • @fahad_Almansour1
    @fahad_Almansour1 Місяць тому

    I have some points that will make the design better and cleaner.
    1- Instead of adding multiple addresses in an array, you can create a new class that connects the user addresses with the system addresses.
    3- I think if we create a different class to connect the course with all professors that will teach the course. It would be a better design

  • @rice5817
    @rice5817 3 роки тому +1

    Love these kinds of videos! Especially since I feel like I lack this fundamental skill, and you just demonstrated how easily it can be done. Thanks Tim 🥳
    If there is time and demand, I would personally love if you actually implemented this as a web app, preferably with Django + React like you did with your music player, but just Django w/ templates would be great as well.
    Yet again, many thanks for your simple yet effective teaching videos 🎉

  • @stevencvisuals
    @stevencvisuals 4 роки тому

    I'm learning this at school, so it's quite nice to see it actually be done.

  • @bbayuba
    @bbayuba 4 роки тому +1

    I haven't even watched the first one and I have dropped a like

  • @lamedev1342
    @lamedev1342 4 роки тому +1

    WE NEED MORE VIDEOS LIKE THIS!!!

  • @matt-g-recovers
    @matt-g-recovers 4 роки тому

    Very Nice Tim.
    You have a very impressive library of videos as well as an unbelievable wealth of knowledge and wisdom that belies your age.
    Keep up the good work and thank you for inspiring me on your 5 things to make dough video

  • @satoshinakamoto171
    @satoshinakamoto171 4 роки тому

    This is a great series. there is a lack of similar content with good enough quality in yt

  • @anthonyrojas9989
    @anthonyrojas9989 2 роки тому +1

    Part 3 or new project please. This was awesome!

  • @_CS_DeepMehta
    @_CS_DeepMehta 4 роки тому +1

    Please continue this series tim

  • @YoavShilon-e2r
    @YoavShilon-e2r 4 роки тому

    Great video Tim!
    In the constructor in the Person class, instead of checking the type of the "adress" param and raising if incorrect, you could use a type hint. Something along the lines of:
    from typing import List
    Class Person:
    def __init__(... adress : Adress or List[Adress])

    • @sarcasmasaservice
      @sarcasmasaservice 4 роки тому

      Type hinting isn't available at run-time, unfortunately. You can use tools like mypy to check the "flow" of data through your code while you are developing it though.

  • @alfredo6307
    @alfredo6307 4 роки тому

    Love the videos, Tim. I have learned a lot from you over the past 6 weeks of my coding journey. Anyway cool vid

  • @sajpoe1235
    @sajpoe1235 4 роки тому

    please do a whole implementation man! I lack design skills which hinder my progress in my career so stuff like this helps thank you :D

  • @harshraj22_
    @harshraj22_ 4 роки тому +11

    1. I want to know your thoughts about the following:
    I've read if you need a class that needs only data members(and not any method), probably you should use namedtuple instead of class
    2. It seems you missed a testcase: If user inputs an empty list in constructor where you need atleast one element in the list
    3. Should we expect some unit tests for these in upcoming videos ?
    BTW, thanks for great content 😄

    • @TechWithTim
      @TechWithTim  4 роки тому +4

      For 1, probably? I haven’t heard that before but just reading your comment makes perfect sense.
      2. Yes, you’re right. I did!
      3. Unlikely

    • @niranjanhegde1535
      @niranjanhegde1535 4 роки тому +6

      @@TechWithTim can you please write unit tests for this?. I wanted to learn how to write unit tests

    • @macunaima2664
      @macunaima2664 4 роки тому +2

      In python you can use Data Classes[1] to store named data. Data Classes is kinda similar to struct of C. Not having to use indexes to access the data greatly improves readability.
      1.docs.python.org/3/library/dataclasses.html

    • @sarcasmasaservice
      @sarcasmasaservice 4 роки тому

      @Harsh Raj, jus to build on what @Chico Noia said, Data Classes would probably be the best choice for an object that holds only data and no methods but are only available in Python 3.7+. If you are using an earlier version then named tuples are more performant and would be preferred.

    • @zhonghuahe3556
      @zhonghuahe3556 4 роки тому

      yes, i read that from the book "fluent python", using namedtuple

  • @thomassteindl9481
    @thomassteindl9481 2 роки тому

    Like first one, very well done and thank you very much!!! Would love to see exactly this with Scala & Databricks :D

  • @enriquerodriguez9723
    @enriquerodriguez9723 4 роки тому +54

    It is not generally recommended to do type checking on objects in dynamically typed languages unless you're building a software API that others will use. If you're building software for a company (or yourself), it's better to trust what is given in the constructor. The reason is because of how much you are polluting your code with these checks (which most of the time will be ignored since you're giving the correct types when building the software), which makes readability that much harder.

    • @techtutorials8812
      @techtutorials8812 4 роки тому +9

      Not to mention, a list with one element in it is no worse than simply passing that element. For loops will still work, they will just make only one iteration. So any code you write for the list will still work if it only has one element.

    • @csmcstrsshd
      @csmcstrsshd 2 роки тому +2

      @@techtutorials8812 In Python at least, for-loops don't work like that. If the object passed is iterable, then a for-loop will iterate through that object, rather than treating it as a collection with one element. If not, a TypeError is raised. Maybe to tidy things up for readability's sake, you could put some type-checking functionality into the superclass or an interface class, so it doesn't clutter the subclass code?

    • @PixelThorn
      @PixelThorn Рік тому +1

      True, if you send the wrong thing in you will get an exception thrown anyway, better then to make sure to handle the error like logging to a file and exiting gracefully (closing files, releasing memory, etc)

    • @stecarey6538
      @stecarey6538 Рік тому

      @@csmcstrsshd Would it not just work like this?
      >>> test = ['test']
      >>> for i in test:
      print(i)
      test

    • @csmcstrsshd
      @csmcstrsshd Рік тому

      @@stecarey6538 If I remember correctly (it being a year since my comment) the problem being discussed here is checking for invalid arguments (e.g. a string rather than a list containing strings). You have to code for the event that the function is passed the string literal 'test' rather than ['test'], otherwise it will iterate over the string rather than the list object. This may be less of an issue now with type hints (I'm a little out of the loop, as it were, as my work hasn't required much programming lately).

  • @alimihakeem841
    @alimihakeem841 7 місяців тому

    Thanks for this Tim. I found it helpful

  • @peterz1236
    @peterz1236 4 роки тому

    Hey Tim,
    I really love your content, teaches me so much.
    Keep it up!

  • @bettygreene6642
    @bettygreene6642 4 роки тому

    Thanks for the great tutorial. I hope you'll continue with the next step.
    I was not able to use "raise Error...", so used "raise AttributeError…" instead.

  • @cornellmihkail1238
    @cornellmihkail1238 4 роки тому

    Thank you, Tim. This is actually useful in web development (models).

  • @yashthakare5807
    @yashthakare5807 4 роки тому

    Love from India ✌

  • @codergoat6102
    @codergoat6102 4 роки тому

    Thanks Tim, this is really helpful! Would be very keen to watch future videos on full implementation of this code, if that is on the cards!

  • @harispapadopoulos4295
    @harispapadopoulos4295 4 роки тому +2

    Guys, like the video, so Tim does more of those awesome vids in the future!
    Edit: I don't know if it's just me but I feel like I'm hearing a little "pop" noise on my right headphone during this video, anyone else who's getting the same little noise?

    • @ViAikBreeck
      @ViAikBreeck 4 роки тому +1

      Yeah, any time there's a louder than average sound

  • @viswa2k944
    @viswa2k944 4 роки тому

    Nice videos, adding gui is make alot knowledge

  • @terry.chootiyaa
    @terry.chootiyaa 4 роки тому +1

    *Yes this was important, I couldn't sleep for weeks 😐*

  • @gidartsproduction5439
    @gidartsproduction5439 4 роки тому

    Cool, I have been waiting for this... Thanks Tim

  • @SantiagoJFontenla
    @SantiagoJFontenla 4 роки тому

    This tutorials are the best! Thanks!

  • @kashifkamran6274
    @kashifkamran6274 2 роки тому +1

    Hey, Thank you so much for creating this through out these video is best to understand system design. Can you please complete this design into required working system. It can be a console based application. Please it will be a huge favor

  • @abdellatiflabreche9518
    @abdellatiflabreche9518 4 роки тому +4

    Awesome course 👌👌👌
    Are you going to implement a database & a UI for this system ?

  • @patrickknows2296
    @patrickknows2296 4 роки тому

    Tim is of the GOAT

  • @NasifShahriarMohim-
    @NasifShahriarMohim- 3 роки тому +1

    Please continue this

  • @tugealdinrahma4126
    @tugealdinrahma4126 3 роки тому

    It's great, thanks a lot, direct and simple.

  • @tekinatawar1713
    @tekinatawar1713 3 роки тому

    If possible please continue this series.

  • @djordjeandric3410
    @djordjeandric3410 4 роки тому

    Great man, you are brilliant!

  • @StyleTrick
    @StyleTrick 4 роки тому +5

    I think it would be best if the relationship between courses and professors is unidirectional. A course must have a professor teaching it, therefore Course must have reference to the Professor. The professor can have many courses and may change overtime. To avoid having to make two changes, e..g one for the Course class and one for the Professor class, it makes sense to make the change in the Course class only. This keeps the design simple, avoid spaghetti code.

  • @rolandocruz1695
    @rolandocruz1695 4 роки тому

    This is a comfy video to watch with some coffee or hot chocolate

  • @buzzprime93
    @buzzprime93 4 роки тому

    Thanks !!, hoping more of these kind of videos ..

  • @Szymon176
    @Szymon176 4 роки тому +1

    Hi Tim, This series is awesome. Are you planning to move forward with it? If you would create an episode where you connect your project with database and then some GUI in Django that would be great :)

  • @veer5787
    @veer5787 4 роки тому

    Second!, bruh u are just awesome(i am 12 year old and i love your vids, also i am learning python)

  • @amriv6
    @amriv6 3 роки тому

    i learned something new today

    • @amriv6
      @amriv6 Рік тому

      Came back after a year

  • @brainy3429
    @brainy3429 2 роки тому

    Hey Tim , as always your vds are Fing great. But this one , I learned a bunch of new things and sort a lot of things that I am being confused

  • @milainmaroo9048
    @milainmaroo9048 4 роки тому

    Hi Tim, thank you for a great tutorial. It'd be great if you can make a whole project, including adding gui and connecting to database. I want to learn how to implement an entire project with python. Thanks very much!

  • @First_Principals
    @First_Principals 4 роки тому

    Tutorials like this and the first one would be great written in pseudocode then the pseud code turned into comments then the programming language syntax added between the comments. I think that would be a great way to teach programming.

  • @SalimHamood1
    @SalimHamood1 4 роки тому +1

    Man you're awesome

  • @YilmazDurmaz
    @YilmazDurmaz 4 роки тому

    Achievement Unlocked: Typo expert (make same type without auto complete in less than a second)
    "import cousre from Cousre" :)
    by the way, any luck to make sample product with connections to sqlite? there are many comments mentioning about it.
    and it is a really great work

  • @kamikaze_jb
    @kamikaze_jb 4 роки тому

    great tutorial mate, thank you very much!

  • @programmerrdai
    @programmerrdai 4 роки тому +1

    Great Content...

  • @RemotHuman
    @RemotHuman 2 роки тому

    In the person class since you already did the error checking in add_adress you should have just done for i in adress add_adress(adress) to repeat less code and make it cleaner

  • @vobsecure
    @vobsecure Рік тому

    Bro your video is super cool and What I wanted to know I learned after watching your video thank you Brother it's a great video But you sometime misspell the spellings like cousre = course.

  • @mohamed-muneer
    @mohamed-muneer 4 роки тому

    Thanks for the video!! Love it!!

  • @LocnavLivoc
    @LocnavLivoc 4 роки тому +1

    - Maybe when you check for raise you should also subtract the bonus when the teacher leaves the 4th course, otherwise that raise will be enacted forever.
    - Maybe i remember incorrectly but you could define a parameter in class that could also be a method. this could work for isCanceled

  • @drval2576
    @drval2576 4 роки тому

    you are amazing man thank you so much

  • @subhajitsarkar9382
    @subhajitsarkar9382 4 роки тому

    Thank you very much Tim

  • @tinashemphisa7254
    @tinashemphisa7254 3 роки тому

    Thank you for using python

  • @pythonenthusiast9292
    @pythonenthusiast9292 4 роки тому +1

    will we see more of software design series?(say yess!!)

  • @purujitkulshreshtha2211
    @purujitkulshreshtha2211 4 роки тому

    I think that there's a bug at 19:35. I could very easily be wrong but I think that line 14 - "self.enrolled.append(enroll)" should be within an 'else' statement because if it's not, it will execute regardless of whether or not there was an error, and enroll will be appended to the list regardless of whether or not it's of the correct type. Once again, I could be wrong.

    • @purujitkulshreshtha2211
      @purujitkulshreshtha2211 4 роки тому

      The same thing at 25:00

    • @TechWithTim
      @TechWithTim  4 роки тому

      If there is an error the program will crash and even if an append operation happened (which it shouldn’t) memory would be flushed. So no, I don’t think there is a bug, but good thought!

    • @TechWithTim
      @TechWithTim  4 роки тому

      Raising an error immediacy exits the function, so if you hit a raise line you can be sure that the rest of the body of the method won’t execute (unless you’re using a try except finally block )

    • @purujitkulshreshtha2211
      @purujitkulshreshtha2211 4 роки тому

      @@TechWithTim Thanks for replying. I was actually gonna write back/delete my comment because as soon as I finished the video, I opened the documentation.

  • @eshaangupta4101
    @eshaangupta4101 3 роки тому

    Hey Tim! Can you please continue this series where you show the usage of the system + designing a Front-end UI for the same. Thanks!

  • @hehehe6877
    @hehehe6877 Рік тому

    Thank you 😊

  • @kaktus994
    @kaktus994 4 роки тому

    Thank you for the part 2 and completing the circle. If you are going to continue this series (or begin something related) , would you consider "Class inheritance VS Object composition" topic?

  • @techwithhaidara4433
    @techwithhaidara4433 2 роки тому

    Thanks TIm.

  • @masterchief7301
    @masterchief7301 3 роки тому

    Please revive this series

  • @splits8999
    @splits8999 4 роки тому

    Great series!! Could you make another episode for the gui? Thanks a lot for these videos!

  • @vanshajbhatnagar
    @vanshajbhatnagar 4 роки тому +9

    THAT"S EXACTLY WHAT WE NEED!! A PERFECT ENDING TO WEEK!! (^_^)
    Huge Fan Tim :)

  • @eonraider
    @eonraider 4 роки тому

    I have a few considerations...
    (1) On 2:15 you say that Person is an abstract base-class. How can it be so, if it has attributes (ABCs can't have them) and doesn't have any abstract methods (ABCs must have at least one of them)? As far as I can see it's just a concrete parent class for Student and Professor.
    (2) On 3:35 you call the __init__ method of the class Address its constructor, when in fact the constructor of classes in Python is the __new__ method. It creates an instance and returns an object that is, then, initialized by the __init__ method before being passed back to the caller.
    (3) The initialization of the attribute self.addresses of class Person (as well as other classes you created) may lead to problems. You should not assign mutable types to instance attributes that way, or else two instances of the class Person that have not been initialized with addresses will actually have the same address. The reason for this is that the the attribute self.addresses of both will reference the same object (the same default empty list), so that a modification made to the list object by one instance will affect all future instances created by calls to the class. It's a well known problem. More info in this article: effbot.org/zone/default-values.htm
    (4) In UML, the use of + and - signs is a reference to object visibility (public and private, respectively), not as a means to differentiate instance attributes from instance methods. You should do that with horizontal line inside the class instead, making a division between attributes and methods.

  • @shilpathorat9980
    @shilpathorat9980 4 роки тому

    you are amazing!!

  • @NicolasKaniak
    @NicolasKaniak 2 роки тому

    exccellent tutorial. would have been nice to have the pseudo code first, before codding

  • @blitzace9728
    @blitzace9728 4 роки тому +1

    Will you continue this mini project? Maybe a ui and db?

  • @sann7806
    @sann7806 4 роки тому

    O perfect I was looking for something like that :D

  • @wekesa4775
    @wekesa4775 Рік тому

    I am really strugling with python, but this ,this is what i needed, @Tim what now, how can i add like a UI to see the functionality clearly

  • @deez_gainz
    @deez_gainz 4 роки тому

    This is really useful. Do you think you can make one that involves graphics or some computation?

  • @luis96xd
    @luis96xd 4 роки тому

    Hi Tim, Nice video! Well explained!😁
    When do you think it starts the phase of Analysis?And when it ends and begin the phase of design?
    I'm making and accountant system using OOP like this video and I need some advices or ideas, please
    Could you give some examples of reusing software?

  • @Werther84
    @Werther84 4 роки тому +1

    Hello Tim. These two episodes dedicated to software design have been very useful. Any suggested books that address this specific topic, that is good practises for UML diagram design and code implementation?

  • @MrYevelnad
    @MrYevelnad 2 роки тому

    HI guys if you are watching this yout can already define what type you are using by using like this function thisIsAfunction(self,professor:Professor) there no need to check for instance.

  • @navyashreeu3833
    @navyashreeu3833 4 роки тому +1

    sir i please you to make a video on graph data structure and some of its related algorithms especially in python.please.because i searched all over the internet but no one has explained like you.i have covered all the data structure in python except this graph.so i beg you to make the video on it. and i will be waiting for you response as a video.sir i am stuck. i cant move foreword without learning it.so please upload it as soon as possible.....

  • @nikenuke
    @nikenuke 2 роки тому

    thank you!

  • @l_combo
    @l_combo 4 роки тому +1

    Great video, Python does offer some type checking features so it's worth mentioning in a subsequent video e.g. docs.python.org/3/library/typing.html you can also use things like mypy to check types.

    • @sarcasmasaservice
      @sarcasmasaservice 4 роки тому +1

      Python doesn't offer type checking at run-time. You can use type hints and tools like mypy to test the flow of your types during development, however.

    • @l_combo
      @l_combo 4 роки тому

      @@sarcasmasaservice true but it is a step in the right direction for type safety.

  • @noahdombrowski2045
    @noahdombrowski2045 Рік тому

    There needs to be a 3rd part to this tutorial. How do you actually implement this? Even a basic implementation. If i try importing student in another file, I get a circular import error.

  • @harishs9808
    @harishs9808 3 роки тому

    Yo Tim! Where are the videos #3 and #4 for the front and back end of this system? Would be great if you could do that... A beginner-friendly series of intermediate level stuff, going from idea to end product.