How To Structure Your Programming Projects

แชร์
ฝัง
  • เผยแพร่เมื่อ 24 ธ.ค. 2024

ความคิดเห็น • 272

  • @Speykious
    @Speykious 3 ปีที่แล้ว +860

    The first and most important step to be an efficient programmer is to have a sleep schedule.

    • @tyengineer0
      @tyengineer0 3 ปีที่แล้ว +8

      Facts 🙌🏼💯

    • @bhumika-d9j
      @bhumika-d9j 3 ปีที่แล้ว +5

      Not sure bout that

    • @Speykious
      @Speykious 3 ปีที่แล้ว +43

      @@bhumika-d9j You should, it's a serious thing. It's bad for your health, your brain and especially your ability to focus and solve problems if you don't sleep enough.

    • @andrewkariuki
      @andrewkariuki 3 ปีที่แล้ว +1

      Never seen something so true

    • @-XArchLinuxEnjoyerX-
      @-XArchLinuxEnjoyerX- 3 ปีที่แล้ว +10

      PROPAGANDA!!! THE MORE TIMES YOU HAVE TO READ A FUNCTION TO UNDERSTAND WHAT IT DOES, THE MORE L337 OF A PROGRAMMER YOU ARE!

  • @Caliber632
    @Caliber632 3 ปีที่แล้ว +115

    "You should use standing desks!, Ergonomic chairs!, here's a great company where you can get all that stuff from!"
    "Sits on the sofa, lies on the bed, laptop always on... his lap...."
    Me too Kalle, me too.

  • @edhead76
    @edhead76 2 ปีที่แล้ว +14

    this has been such a struggle for me. thank you for the honest and straightforward approach at tackling code. Your naming convention section of the video parallels recommendations from a book i'm actively reading, "Clean Code."
    awesome video. i've subscribed and liked!

  • @JusticeNDOU
    @JusticeNDOU 3 ปีที่แล้ว +14

    if you use a combination of pycharm and github actions you can configure your projects such that your TODO comments in your code ends up in your Issues, this is super helpful especially on a very large project

  • @DoctorCode9
    @DoctorCode9 3 ปีที่แล้ว +3

    Finally someone spoke about the subject, this is one of the most important video for a programmer

  • @MogelBoom
    @MogelBoom 3 ปีที่แล้ว +20

    I know it's an old video but i just want to point out that structuring your code in directories based on the technology-layer might not be the best idea because you are forced to create dependencies from package to package. It's a way cleaner architecture to structure your code based on topic (german word "Fachbereich") improves the cohesion in these packages

    • @atlantic_love
      @atlantic_love 2 ปีที่แล้ว +2

      No one should ever consider a video that's a year old to be an "old video". Accountability, people!

    • @andiuptown1711
      @andiuptown1711 7 หลายเดือนก่อน

      So package by feature not by layer?

  • @Gigusx
    @Gigusx 3 ปีที่แล้ว +5

    Since a part of it is not about structuring a project but also being more productive in general, I'd also add learning and using basic terminal commands to the list. It's way faster, especially in new projects, to create all the files and folders using a CLI. Small thing but definitely adds to the comfort.

  • @charonder
    @charonder ปีที่แล้ว +2

    I'm a couple years into my PhD and this is going to be a massive help for my next project. Thank you!

  • @1anre
    @1anre 3 ปีที่แล้ว +9

    This was one useful video, little things like this have a huge impact on your general developer productivity, & no matter how many languages you are proficient in, if you’re not meticulously organized, you might lose your mind when something breaks during your development process & you don’t know if it’s the actual code base or how you’ve structured the files & code to work that’s causing it.

  • @mohammedsaad3801
    @mohammedsaad3801 3 ปีที่แล้ว +1

    Happy that i am here from when u had 50k u have come a long way gl for the future

  • @sapperjaeger
    @sapperjaeger ปีที่แล้ว +1

    possibly the most useful vid I've seen on workflow! well done!

  • @codingisamazing
    @codingisamazing ปีที่แล้ว +1

    In the backend, the View component in the MVC architecture does not necessarily refer to a graphical user interface (UI) as it does in frontend development. Instead, the View in the backend can be thought of as the representation of the data that is sent back to the client or consumer of the backend services.
    In a backend application, the View component is responsible for formatting and presenting the data in a suitable format for the client. This can be in the form of JSON, XML, or any other data format that the client expects. The View component does not handle user interactions or have a graphical interface like in frontend development.

    • @andrean40
      @andrean40 7 หลายเดือนก่อน +2

      Thanks for this

  • @KANJICODER_IRL
    @KANJICODER_IRL หลายเดือนก่อน

    I totally agree on consistent naming conventions . All my variables are exactly 3 or 7 letters long to reduce entropy when recalling them from human memory .

  • @engageintellect
    @engageintellect 3 ปีที่แล้ว +44

    Kalle hits another one out of the park. Providing the information people need in a friendly and straightforward way. Thanks for the awesome content.

  • @lilalomoslama
    @lilalomoslama 3 ปีที่แล้ว +7

    Nice Video, BUT:
    Please don’t refactor code just to make it more readable or efficient. Ensure that your Feature branch will only be merged when you are satisfied with the readability and efficiency of the changes.
    The reason ist quite simple: Refactoring comes with the cost of either removing important code (that you might forgot it was ever important) or introducing new bugs. You will be stuck fixing your refactorings. Only touch your code if you have to and keep your PRs small. This will improve your readability more than refactoring once a week.

  • @adpadillar
    @adpadillar 3 ปีที่แล้ว +2

    I manage all of my GitHub workflow in the Source Control Feature of Vscode and i feel 1000 times more productive. I also set up verified commits as an added bonus

  • @ryannathanwilson
    @ryannathanwilson 3 ปีที่แล้ว +32

    I learned how to use VIM for editing individual files, but I’ve had a hell of a time figuring out how to use it officially for a larger code base. Any tips? New video?

    • @gogatorsfoster1
      @gogatorsfoster1 3 ปีที่แล้ว +2

      I'm also interested in seeing this

    • @luisdario1493
      @luisdario1493 3 ปีที่แล้ว +2

      You need a plugin for file managment and configure your vimrc to open quickly

    • @clinton5708
      @clinton5708 3 ปีที่แล้ว +2

      I use vim(neovim) on two fairly large projects. For file management I use nnn and fzf.

    • @exinr6930
      @exinr6930 3 ปีที่แล้ว +4

      The main tip I've heard from my vim user friends is to use VS Code with the vim extension since it has all the power user shortcuts that make it so you don't have to leave the home row to do anything, but there's still a GUI if you need it. Maybe that can help a bit.

    • @akshajgotimukul204
      @akshajgotimukul204 3 ปีที่แล้ว +2

      Use VS code instead

  • @FlutterMapp
    @FlutterMapp 3 ปีที่แล้ว +1

    The Lifting table is a must for sure! Thanks for the video man ✌️

  • @edgarmuradyan6881
    @edgarmuradyan6881 3 ปีที่แล้ว +4

    I just got my first real project and it is large enough. I didn't know how to structure that, opened TH-cam and this video!😂👌

  • @mnation694
    @mnation694 3 ปีที่แล้ว +1

    Kalle keep doing this great videos, I like the vlogs and productivity ones the most!

  • @riclerico
    @riclerico 3 ปีที่แล้ว +1

    Kal sounds like a pro pro pro 👨‍💻. Clear and concise in his videos. #fanfromfromghana

  • @awsm1680
    @awsm1680 3 ปีที่แล้ว

    Kalle be reading my mind and making videos on it to make my life easier

  • @oskarthaeter63
    @oskarthaeter63 3 ปีที่แล้ว +12

    Regarding the MVC pattern: I find it best to choose a design pattern when modeling the project as a class diagram. If I am unsure about what design pattern to use or just don’t want to be constraint by one, I find it best to decompose the project into subsystems and create folders for each. This helps achieve low coupling and high cohesion, which is useful for when one does not need to change something in every file just because one object was restructured. A class diagram and a short list of functional and non-functional requirements goes a long way, helping to keep focused on what you want to do with your project.

    • @GraphicGamingHQ
      @GraphicGamingHQ 3 ปีที่แล้ว +1

      Great comment, do you have some examples of these class diagrams? Maybe one you've recently made yourself? My biggest struggle is planning/designing data structures/project logic/structures and I'd love to find a good system that works for me to being able to tackle getting better at it!

    • @oskarthaeter63
      @oskarthaeter63 3 ปีที่แล้ว +2

      @@GraphicGamingHQ well, I can recommend the book “Object-Oriented Software Engineering: Using UML, Patterns and Java” by Bernd Bruegge and Allen H. Dutoit. The chapters Modeling with UML, Analysis and System Design should be quite interesting! The class diagram should just be an overview of all your most important components and how they work together (i.e. class hierarchy, interfaces, aggregations etc). It can be detailed, but doesn’t have to be. In the end just go with your gut ;)

  • @harshthosar8600
    @harshthosar8600 3 ปีที่แล้ว +1

    Exactly the video I needed to see. Thanks Kalle.

  • @TheSharkbeast
    @TheSharkbeast 3 ปีที่แล้ว

    Okay by the title I really didn't thought it'll be that useful but mann this is gold 🙌,

  • @ThaitopYT
    @ThaitopYT 3 ปีที่แล้ว +2

    I need to be more seriously about the readme file and to-do list.

  • @AbyssRein
    @AbyssRein 4 หลายเดือนก่อน

    If you start off with github, would the github desktop app be a better fit? Like always create a repository through the github app instead of logging on your browser and running that stuff in the terminal?

  • @obsidian-gravel
    @obsidian-gravel 5 หลายเดือนก่อน

    Can you suggest any suitable application/template to document detailed workflow and business logics implemented in a project?

  • @paulfrischknecht3999
    @paulfrischknecht3999 ปีที่แล้ว

    Creating a model, view & controller submodule or directory will usually introduce bad cohesion, meaning things that change together will not be kept together.

  • @Simoelfakkak
    @Simoelfakkak ปีที่แล้ว +1

    Thank you Haaland

  • @peachesurf
    @peachesurf 3 ปีที่แล้ว +1

    watching this video while procrastinating programming

  • @itzthehxnry_
    @itzthehxnry_ 3 ปีที่แล้ว

    3:35 how did you made that dynamic prompt? In vanilla settings there is only option to display full path. How do you display only current directory?

  • @eishkay
    @eishkay 2 ปีที่แล้ว

    I'm not suure if the whole github reposit set up I did on my mac is working or not, how do I check? Thanks :)

  • @KyrosNox
    @KyrosNox 2 ปีที่แล้ว

    This really helped me get my mind right regarding my work. Thanks much.

  • @dhruvajindal4932
    @dhruvajindal4932 3 ปีที่แล้ว +5

    Who wants dedicated video on MVC?

  • @couple.gamernauts
    @couple.gamernauts 3 ปีที่แล้ว

    Awesome. Keep up the good work! Always a pleasure to watch a video of yours.

  • @Otonium
    @Otonium 2 ปีที่แล้ว

    How about flow diagrams, and things like that? Thanks!

  • @adl9566
    @adl9566 3 ปีที่แล้ว

    Hi. I was wondering how can I display a phone on the screen when i build the app like you when you was making an eletrician app for some guy?

  • @MohamedAnsari_H
    @MohamedAnsari_H 3 ปีที่แล้ว

    my first comment Kalle, gotta give it to ya, the opening was hilarious. LOVE IT!!!!!!!!!!!!!

  • @marcello4258
    @marcello4258 3 ปีที่แล้ว

    people saying src folders are redundant only use scripting languages. otherwise they would be aware that machines only run binaries.

  • @zygimantasjasiunas5240
    @zygimantasjasiunas5240 3 ปีที่แล้ว

    There are some nice take aways from this video, but I am not sure if I can agree with using Vim for larger projects

  • @arianpiano
    @arianpiano 3 ปีที่แล้ว +16

    Why is no one talking about the brilliant skit in the beginning

  • @taylorzeller3415
    @taylorzeller3415 3 ปีที่แล้ว +1

    I like the idea of the Every Other Day system, but, in my head, that conflicts with the idea of creating an MVP for a project before refactoring and starting UI/UX design. Am I thinking about this wrong?

  • @thoughtlesssauce3945
    @thoughtlesssauce3945 3 ปีที่แล้ว

    What goes in the tests Directory?

  • @ashutoshandhare7626
    @ashutoshandhare7626 3 ปีที่แล้ว

    First things first. How do you have a linux like terminal in windows?

    • @delected
      @delected 3 ปีที่แล้ว

      probably WSL

  • @carlosjeria1541
    @carlosjeria1541 3 ปีที่แล้ว

    Curious about your keyboard. Where did you get it?

  • @Manan_K
    @Manan_K 3 ปีที่แล้ว

    This video is so helpful. Thanks Kalle! :)

  • @__lalisa
    @__lalisa 2 ปีที่แล้ว

    Can you recommend some projects for absolute beginners that can be submitted to the college and is easy to make documentation of it?

  • @alexwexov4298
    @alexwexov4298 3 ปีที่แล้ว

    Why VS Code is open when talking about vim 😁?

  • @willgonzy
    @willgonzy 3 ปีที่แล้ว

    You are changing my life

  • @hoschi60
    @hoschi60 3 ปีที่แล้ว

    How can you give advise on a problem, which never occured to you but only to friends.. I am confused

  • @binayakbishnu
    @binayakbishnu 3 ปีที่แล้ว

    U must be working on different devices... so how do you maintain it. Example say you have Project-1 made on device A and then started working on device-B, how do you continue the work? Do you just transfer files from device to device?

    • @georgplosch684
      @georgplosch684 3 ปีที่แล้ว

      Use git

    • @binayakbishnu
      @binayakbishnu 3 ปีที่แล้ว

      @@georgplosch684 so like load into local directory everytime?

    • @binayakbishnu
      @binayakbishnu 3 ปีที่แล้ว

      @@georgplosch684 any option to live like update files live without git? Like we do in Google docs?

    • @georgplosch684
      @georgplosch684 3 ปีที่แล้ว

      With git you have a repository for your project. It doesn't matter if it is a service like GitHub or gitlab or a private git server.
      On your devices you clone from the repository. After you made a change, you commit it on your device. At the end of the day, session,..., you are pushing it to the repository on the server. On device b you simply clone it at the first time and update (pull) it afterwards.

    • @binayakbishnu
      @binayakbishnu 3 ปีที่แล้ว

      @@georgplosch684 thanks

  • @redsun5826
    @redsun5826 3 ปีที่แล้ว

    extremely helpful video. thank you! saving it to a playlist to refer to again in the near future.

  • @mcferrill
    @mcferrill 3 ปีที่แล้ว

    Have you tried the neovim integration for vscode? I'm a longtime VIM user, but directly importing my vimrc into vscode was too hard to resist.

    • @mcferrill
      @mcferrill 3 ปีที่แล้ว

      @@depression_isnt_real neovim is a fork of the original vim project, and the "VSCode Neovim" plugin lets you run neovim inside vscode along with your vim plugins/settings. With some work you can have a single vimrc & plugin folder that works in OG Vim, neovim, and VS Code. I have mine in a git repo with an installer script.

  • @aymenbm1966
    @aymenbm1966 3 ปีที่แล้ว

    In ly entire life i never heard any one says MVC PROTOCOL please dont say that its MVC ARCHITECTURE or MVC DESIGN PATTERN its not a PROTOCOL and i see many people in the comment have picked up the word. Great content any ways

  • @txrangerkidd222
    @txrangerkidd222 3 ปีที่แล้ว

    did you change the title of this video?

  • @bertlemoi431
    @bertlemoi431 3 ปีที่แล้ว

    there are vim extensions for vscode

  • @owencodes
    @owencodes 3 ปีที่แล้ว

    Do you have a link for your stand up corner desk @kalle hallden ?

  • @Francefire
    @Francefire 3 ปีที่แล้ว

    The intro 🤣🤣 you are a gold content creator

  • @ThiagoMedina
    @ThiagoMedina 3 ปีที่แล้ว

    what keyboard is this?

  • @govindkulkarni9446
    @govindkulkarni9446 3 ปีที่แล้ว +1

    Why that plant have cut?

    • @GDScriptDude
      @GDScriptDude 3 ปีที่แล้ว

      It is a Giant plant. Normal.

  • @muhammadrasikh
    @muhammadrasikh 3 ปีที่แล้ว +3

    Kalle, i think you should use timestamps for your videos... It helps me a lot sometimes

  • @ncadre9048
    @ncadre9048 ปีที่แล้ว

    This video is one-of-a-kind, great content! Do you have a video of how to navigate Git Hub? I have code saved on my computer but do not understand how to prepare my page in a way that would be helpful in future opportunities. Also, what is the best way to decide on the language and coding project? Do you have a guide on that? Since we have multiple options in where to go early in our career. Thank you.

  • @darrenmew3928
    @darrenmew3928 3 ปีที่แล้ว +1

    If you use Django and python it will automatically set all this up, better yet if you wanted you could use their MVC style and copy it to your other projects

  • @tommyo2172
    @tommyo2172 3 ปีที่แล้ว

    Why do tou use PC if you still configure the command line to a BASH terminal?

  • @U_Geek
    @U_Geek ปีที่แล้ว

    OK 40 seconds in and he just described my problem, shocking if you ignore maintainability your project won't last long

  • @aghrajhsayin5698
    @aghrajhsayin5698 3 ปีที่แล้ว

    your videos are just mind blowing for real they are just great

  • @Franciscorsilvaaa
    @Franciscorsilvaaa 3 ปีที่แล้ว

    hey, foes any1 know how can i found the
    librarys i need to a project ??

  • @prathampatel6357
    @prathampatel6357 ปีที่แล้ว

    0:00 - 0:45 bro defined devs's nightmare too accurately 💀

  • @gr8tbigtreehugger
    @gr8tbigtreehugger 3 ปีที่แล้ว

    Was exactly in the opening scenario, even knowing that I should be doing exactly what this video prescribes, twas just bouncing around.

  • @m1k3thirteen81
    @m1k3thirteen81 2 ปีที่แล้ว

    This is a great best practice video. Amazing work! Thank you.

  • @theencryptedpartition4633
    @theencryptedpartition4633 3 ปีที่แล้ว +8

    When something kind of happens to me I usually say that I have a friend of mine and that happened to him. And I usually mistakenly say ‘them’😅

  • @bmejia220
    @bmejia220 3 ปีที่แล้ว

    Awesome video Kalle. I will be watching this one on repeat until I do these great habits repeatedly.

  • @phillylifer
    @phillylifer 2 ปีที่แล้ว +1

    Vim??? Why. Except for this question. Brilliant advice!

  • @sairohitht5984
    @sairohitht5984 3 ปีที่แล้ว

    Hey kalle how does your start with Kalle Hallden $🤔

  • @specialjeffy333
    @specialjeffy333 3 ปีที่แล้ว

    Another great video! Super helpful. Although I think my favourite part was Kalle explaining he was busy buying a tshirt so he couldnt help his friend lol

  • @nihalrahman9503
    @nihalrahman9503 3 ปีที่แล้ว +1

    the first 2 minutes could be cut out. this is very useful information, love ur content. notification bell turned on.

  • @lipr12
    @lipr12 3 ปีที่แล้ว

    I am front end developer and I'm thinking of learning Kotlin! Do u think that a good idea?

  • @saam4312
    @saam4312 ปีที่แล้ว

    Bro. Erling Haaland is really good at programming. The G.O.A.T for a reason.

  • @matiaspardini3758
    @matiaspardini3758 3 ปีที่แล้ว

    Nice video kalle

  • @farsinkp169
    @farsinkp169 3 ปีที่แล้ว

    The production quality 👌❤️

  • @alantom4734
    @alantom4734 3 ปีที่แล้ว +1

    why dont you do a git tutorial

  • @jisrite
    @jisrite 2 ปีที่แล้ว

    that joke in the beginning got me laughing out loud 😂

  • @badhonbarman216
    @badhonbarman216 3 ปีที่แล้ว

    great advice for my future project .
    Thanks @Kalle Hallden

  • @abdulrahmanaboluhom8474
    @abdulrahmanaboluhom8474 4 หลายเดือนก่อน +2

    why didn't you help your friend?

    • @Bouryal.Y
      @Bouryal.Y 6 วันที่ผ่านมา

      He helped him and us with this video, work smarter not harder

  • @optimus_cruz
    @optimus_cruz 3 ปีที่แล้ว

    Great tips bro.

  • @ishanchoudhary4179
    @ishanchoudhary4179 3 ปีที่แล้ว

    I got an ad of Kalle on tab nine. For a sec, I thout it was the beginning of the video 😂

  • @blazi_0
    @blazi_0 10 หลายเดือนก่อน

    Fuck didn't expect I'll be here after 8 months of coding the project

  • @alexisraels1437
    @alexisraels1437 3 ปีที่แล้ว

    Didn't know about github project boards. I use Jira for work, but this will be really nice for personal projects. Thanks!

  • @TN-cx4qi
    @TN-cx4qi 3 ปีที่แล้ว +3

    Best practice dictates cramming as much code as you can into one file. That way you know where all the code is 🤓

  • @avinash-dhumal
    @avinash-dhumal 3 ปีที่แล้ว

    I follow your videos quite badly... and I love them.

  • @myhealthobs5290
    @myhealthobs5290 ปีที่แล้ว +1

    You've been watching me code ?

  • @zulucharlie5244
    @zulucharlie5244 ปีที่แล้ว

    Outstanding content.

  • @ashokkushwaha9939
    @ashokkushwaha9939 3 ปีที่แล้ว +1

    1:31
    No need to go to this time lapse
    I just marked where i left the video to watch later😅😁

  • @paulfrischknecht3999
    @paulfrischknecht3999 ปีที่แล้ว

    +1 for the suggestion to rewrite code fairly often; this is actually not that hard (compared with coming up with the ideas and code in the first place) and very helpful for refactoring, maintainability, readability etc. I wonder how to best convince product owners, management and the rest of the team of that...

  • @ryeviz
    @ryeviz 3 ปีที่แล้ว

    Hey, your thumbnail looks pretty awesome 👍

  • @ngoako
    @ngoako 3 ปีที่แล้ว

    I did enjoy this video :)

  • @nvis9804
    @nvis9804 3 ปีที่แล้ว +6

    Your live is my dream life 🤞🏻

  • @endlessVoiid
    @endlessVoiid 3 ปีที่แล้ว

    Nice one kalle

  • @dagmawiyohannes7477
    @dagmawiyohannes7477 3 ปีที่แล้ว

    Can you please do a video on pedometer with flutter?