10 Coding Principles Explained in 5 Minutes

Sdílet
Vložit
  • čas přidán 31. 05. 2024
  • Get a Free System Design PDF with 158 pages by subscribing to our weekly newsletter: bit.ly/bytebytegoytTopic
    Animation tools: Adobe Illustrator and After Effects.
    Checkout our bestselling System Design Interview books:
    Volume 1: amzn.to/3Ou7gkd
    Volume 2: amzn.to/3HqGozy
    The digital version of System Design Interview books: bit.ly/3mlDSk9
    ABOUT US:
    Covering topics and trends in large-scale system design, from the authors of the best-selling System Design Interview series.
  • Věda a technologie

Komentáře • 79

  • @brhoom.h
    @brhoom.h Před 24 dny +43

    "remember code tells you how comments tell you why" This is actually so good 🔥

    • @gavinjones
      @gavinjones Před 21 dnem +3

      Totally agree. I hate comments which just say what the next line is doing.
      They get so distracting that i have set my editor to color comments almost the same as the background color. So they don't interfere when reading code

    • @michaelvilain8457
      @michaelvilain8457 Před 16 dny +2

      I've had a boss yell at me for putting so much commenting in my code, specifically why I'm doing something and what else I've tried. I told him "In 6 months, I'm not gonna remember any of this. Or I might get hit by a bus. Would you rather someone spend a day or a week trying to fix or implement something new on top of what I wrote?" He was all about "I want it now" rather than "I don't care about 6 months from now."
      Interesting that I do a lot of what you mention and only had 2 computer science classes in college. The rest were in Chemistry, yet I only use my degree in the kitchen when I cook. I'm sure there are other who code much faster but I consider myself blessed that I've NEVER had to code anything in Cobol.

    • @nghianguyen170192
      @nghianguyen170192 Před 8 dny

      @@michaelvilain8457 I would disagree with you on this. Code itself must be self-explanatory with most high-level programming languages. If you cant understand the code, you dont have enough understanding.
      The comment might be misleading if you update the code and dont update the comment.

  • @IndulgeBySho
    @IndulgeBySho Před 24 dny +17

    I have 14 years of experience as a business architect, yet I see people doing better job at summarising concepts in our pipelines here (not to mention, in the most creative way possible). I love your book too. Cheers! Thanks...🎉

  • @dhinesha9949
    @dhinesha9949 Před 24 dny +7

    00:01 Coding style ensures consistent and readable code.
    00:40 Write clean, understandable code with helpful comments
    01:24 Robustness is key in coding principles
    02:07 Coding principles help create modular and organized code.
    02:49 Use single responsibility principle and automated testing for success
    03:31 Database class helps keep main app logic clean
    04:16 Passing parameters enhances code organization and understandability.
    05:00 Security is everyone's job in coding.
    Crafted by Merlin AI.

    • @juliocryv
      @juliocryv Před 19 dny

      great... use single responsibility principle and automated testing... my fail :(

  • @levonog
    @levonog Před 25 dny +14

    I really like your content and I really like the “5 minute video” format, I think this length is optimal for tech video.

  • @argfasdfgadfgasdfgsdfgsdfg6351

    THANK YOU for bringing the obvious truth to the masses: Code tells you 'How', comments tell you 'Why'. My colleagues seem to be to stupid to understand this and will simply deny writing any comments at all.

    • @augustsbautra
      @augustsbautra Před 25 dny +2

      Getting to the bottom of when and why the pernicious idea of "comments mean not clear enough code" got off the ground could be real interesting. And we'd know who to off when time travel becomes a thing.

    • @stevefrandsen7897
      @stevefrandsen7897 Před 25 dny +1

      Same comment for unhelpful maintenance log entries. "Fixed a date function" - what was wrong? "Added another parm" - to do what? "Initialized a variable" - which one and why? I just never understood the lack of a short in code comment like "Leap year logic". "Extra Last day of Business Month processing." "Prevent zero divide".

    • @skyhappy
      @skyhappy Před 25 dny +1

      Comments are for speed also. Id rather read a comment than a whole block of code. Too much comments is better than too little. Be generous to the next person

    • @TrungNguyen-mj2id
      @TrungNguyen-mj2id Před 24 dny

      @@skyhappy that's not appropriate way to use comments. When your code is long, do refactor. Comments should only be used to explain "why" you do something.

    • @skyhappy
      @skyhappy Před 24 dny +1

      @@TrungNguyen-mj2id I'm not sure how much code you've written. There are always blocks of code that should be in one function and breaking it up only breaks the flow. 1 simple comment allows someone to skip reading 10-20 lines of code. It's much more read optimized

  • @georgesealy4706
    @georgesealy4706 Před 3 dny

    Your comment on 'robustness' is extremely important. People usually write code on the 'happy path.' However handling errors, bad data, and anomalies is critical. Code in production simply can't fail. It has to handle any situation.

  • @hinnantdw
    @hinnantdw Před 7 dny

    Finally getting serious about this path and was happy to run across this site. Looking forward to benefiting from past and future tips and guidelines.

  • @gus473
    @gus473 Před 25 dny +4

    Excellent reminders and suggestions! 😎✌️

  • @tanvirazad5118
    @tanvirazad5118 Před 17 dny +1

    I follow you on LinkedIn and CZcams. Out of curiosity, I have one thing mesmerizing about how you are making these beautiful gif.
    Keep posting content like this.

  • @Tenor2
    @Tenor2 Před 11 dny

    A great step by step explanation of principles developers should employ!!

  • @hbachme
    @hbachme Před 17 dny +1

    Thank you for your wonderful contents.
    P.S:
    There's a typo in 2:34, eatable interface is estable
    And Easy to test is East to test in the side of the circle

  • @user-me7xe2ux5m
    @user-me7xe2ux5m Před 19 dny +3

    This is a great video with really valuable recommendations. Thus, please take my comments regarding the typos not as a critique of the content.
    - At 2:07 in the SOLID principles explanation section, I noticed a typo ISP => Interface Segregation Principle. The word Interface is misspelled.
    - At 2:30 the interface Eatable is misspelled (Estable in the video)
    - At 3:02 the last sentence of Security Test. It probably should state "penetration" testing (instead of penetrating testing)
    - At 4:41 the content of the white circle probably should be Refactor instead of Refractor

    • @klaus-udokloppstedt6257
      @klaus-udokloppstedt6257 Před 5 dny

      2:23 The bad example rectangle class has three getWidth() functions, two of them with identical signature (copy/paste error), the other one probably meant to be a setter

  • @augustsbautra
    @augustsbautra Před 25 dny

    This is a coding principles explanation video. All codedwarfship is of the highest quality. It is encrusted with clear, eye-catching visuals and reassures with simple, easy to apply tips. In the video is a reminder to write comments for "why", not "how". It relates to whole swaths of coders not writing a single line of documentation anywhere.
    Jokes aside, the quality and density of advice given here is through the roof!

  • @chiebidoluchinaemerem5860

    This is Nice, thanks 👍

  • @gingerpukh7309
    @gingerpukh7309 Před 25 dny +4

    Great 👍

  • @nintran52
    @nintran52 Před 24 dny

    Awesome video ❤

  • @eyalrin
    @eyalrin Před 25 dny +4

    In the SOLID section the header says Robustness

  • @midjhelins8383
    @midjhelins8383 Před 24 dny

    informative!

  • @quarkyquasar893
    @quarkyquasar893 Před 25 dny +4

    I love your videos and watch every single one of them, but I have a recommendation. I have been noticing an increase in typos over recent videos, like for example in SOLID the Interface Segregation Principle has a typo and a line below that also is having a mistake in DIP acronym. I love your videos but doing a grammar review once before uploading would be a good indicator for your audience to show the amount of effort you put into your videos, and before major typos become a thing. Lovely video otherwise, lots of great information :D

    • @manavkhandurie3591
      @manavkhandurie3591 Před 25 dny +2

      Yea i guess its a case of the video editor may not be from a CS background or may not be an English speaker

  • @LiveWithStocks
    @LiveWithStocks Před 16 dny

    I strongly agree all of them. Nonetheless, I noticed that a passion to do so and a habit to do so are more important. Often times, they compromise and do not spend 1 more hour on writing better comments but simply call it a day.

  • @LeakyFaucett
    @LeakyFaucett Před 4 dny +1

    Great graphics! Who does them for you?

    • @Dave-rd5bb
      @Dave-rd5bb Před 3 dny

      i want to know too, tell me if you find please

  • @TheGryphon14
    @TheGryphon14 Před 6 dny

    imagine the pain you have to go through having him as your pull request reviewer

  • @djjiang3718
    @djjiang3718 Před 21 dnem +1

    Hello! I love it! And how to create those awesome visuals like in the video? Anyone know? Thanks

    • @Dave-rd5bb
      @Dave-rd5bb Před 2 dny +1

      adobe illustrator and after effects

  • @catcatcatcatcatcatcatcatcatca

    Commenting is very hard. I like the traditional style emacs lisp is commented: each style starts with a big comment giving some commentary. Each file also ends with a comment, but this is mostly for historical reasons.
    functions defined by defun, variables defined by defvar and defcustom as well as macros (note: lisp macros aren’t not preprocessor macros) have an in-build document-string.
    This means that documentation is defined while writing code, but accessed independently of it. If you want to use a function you first pull out the document string, not the definition. The system forces you to write actually useful comments because you can’t rely on the code to explain your documetation.
    After this, comments on code are rarely needed. You can still make them of course, but you already wrote few paragraphs describing the whole file and you wrote documentation for each function so you rarely need to clarify the implementation.
    Many comments feel necessary only because the purpose and intended usage of the whole function or module was never written down. After those are clarified, the code can be awkward and non-straightforward, but still be understood. Good types and names can do this, but one brief documentation paragraph or two makes it very clear.

  • @littlellama8405
    @littlellama8405 Před 17 dny

    What tools do you use for your animation and video? Thanks :)

    • @Dave-rd5bb
      @Dave-rd5bb Před 2 dny +1

      Adobe Illustrator and After Effects

  • @breakunknown
    @breakunknown Před 16 dny

    Gold

  • @badhombre4942
    @badhombre4942 Před 4 dny

    Just do TDD.

  • @orkhepaj
    @orkhepaj Před 13 dny

    assertions? never seen those

  • @scuden
    @scuden Před 24 dny

    Who spotted the typo at 2:32?

  • @KhyberKat
    @KhyberKat Před 12 dny +2

    SOLID has been way over hyped, and people continue to blindly cite it.

    • @danielvayalil8453
      @danielvayalil8453 Před 10 dny

      I mean they are vital when you talking about well designed Object Oriented Design, which is good when you want properly abstracted code, it's like yes NoSql DBs are popular but there is use in being able to normalize a SQL table to make queries efficient

    • @KhyberKat
      @KhyberKat Před 10 dny

      @@danielvayalil8453 The only vital one might be Liskov. The others are just rules of thumb - occasionally useful.

  • @ilikegeorgiabutiveonlybeen6705

    these ofc arent dogmas

  • @mrtienphysics666
    @mrtienphysics666 Před 22 dny

    “Everybody in the world is now a programmer. This is the miracle of AI.”
    Jensen Huang, 2024

  • @naa_rang
    @naa_rang Před 24 dny +3

    These 5min videos get very fast. They don't solve the purpose unless you already know the topic well and you just want to revise.

    • @phatboislym
      @phatboislym Před 24 dny +1

      don't think anyone opened this ~ 5 min video expecting in-depth analysis of 10 complex concepts but that's just me

  • @bikedawg
    @bikedawg Před 25 dny +78

    "How to write clean code" : never contract work to anyone in Bangalore.

    • @stonecorleone
      @stonecorleone Před 25 dny +3

      Haha

    • @ajayadav09
      @ajayadav09 Před 25 dny +2

      hahah

    • @jameshunt1822
      @jameshunt1822 Před 25 dny +35

      Or hire a good Indian engineer. You pay peanuts, expect peanut butter.

    • @teeesen
      @teeesen Před 24 dny +19

      Bad code knows no borders.

    • @chpsilva
      @chpsilva Před 23 dny +2

      @@teeesen agreed. It's a mean stereotype.

  • @PhilLesh69
    @PhilLesh69 Před 10 dny

    Saying the *_word_* sequel when you mean the *_acronym_* SQL is confusing and illogical. You don't turn an acronym into a word unless the entire acronym IS a word, or you are simply using the word *_the acronym actually represents._* Throwing that entirely unrelated word in as an unnecessary expansion of the shortened acronym is going in the opposite direction of the entire point of using an acronym in the first place, and it is only confusing. Because nobody can tell which letters comprise the actual shortened term, phrase or title and which letters were just arbitrarily thrown in to make it a word. We pronounce SWAT because all the letters are in the word, but we spell out FBI instead of throwing a few more vowels and consonants in to confuse people. We don't call the FBI "FibBIng cops"
    Sequel is a now defunct proprietary DBMS that stopped being used or sold in the mid 1980s. SQL is an acronym for structured query language. Is you say "ess, kyew, ell" I might have a chance at figuring out s stands for struxtured, q stands for query and l stands for language. When you say sequel I might decide that sequel is how you pronounce the acronym SEQL or SQUL and now I'm thinking you're talking about symmetrical energy quotient levels of Standardized Electronic Quartz Lighting because I lost context and have nothing to work with besides the phonetic sound "sequel."

  • @xuedi
    @xuedi Před 19 dny

    I disagree on the comments, good good does not need any comments, the functions/methods/classes names should speak for itself ...

    • @ryanstephen6163
      @ryanstephen6163 Před 12 dny +2

      No matter how well you name your functions etc. it would never tell you _why_ something had to be done. Nothing replaces good comments/code documentation when it comes to this.

    • @maxmuster7003
      @maxmuster7003 Před 10 dny

      Yes, my mashine code speaks for itself.😂

    • @maxmuster7003
      @maxmuster7003 Před 10 dny

      ​@@ryanstephen6163My functions have no name, but an address to call in memory.

  • @bokistepy
    @bokistepy Před 21 dnem +2

    Buy a new mic, or improve audio editing skils, ty;)

    • @yaketyjak
      @yaketyjak Před 20 dny

      I thought it was fine.

    • @TanveerAhmed10
      @TanveerAhmed10 Před 19 dny +3

      audio is fine, buy a new ear or improve hearing ❤

    • @bokistepy
      @bokistepy Před 19 dny

      @@TanveerAhmed10 sarcasm is for smart ppl

    • @traitpichardo2046
      @traitpichardo2046 Před 17 dny

      Audio is fine buy a new life

    • @dev0_018
      @dev0_018 Před 12 dny

      his audio is fine but you probably need to get new speakers or headset