Хороший, красивий, чистий код
HTML-код
- Опубликовано: 28 май 2024
- Більш детальний розбір коду - t.me/AlexKovalchukTg/36
Стів Возняк геніальний програміст. Він робив з кодом таку еквілібристику що зараз важко повірити що таке можливо. В ті часи усі програмісти мали викручуватись, щоб помістити свої програми в обмеження комп'ютерів. Зараз такий код не вважається хорошим, бо комп'ютери стали потужніші та через те що такий код майже неможливо читати й підтримувати. Тепер навіть круті та швидкі програми зосереджені на хорошу архітектуру і підтримку. Тому такі шедеври залишились у 80-тих, а красивий вважається більш простий для людини, а не машини
00:00 Вступ
00:54 Код Возняка
03:06 Код Лінуса
04:22 Як будуть писати потім
05:54 Висновок
Для підтримки - www.buymeacoffee.com/alexkova...
Telegram - t.me/AlexKovalchukTg
З питань співпраці і реклами пишіть - t.me/Kelli_Nixe або alex.kovalchuk.media@gmail.com
Вже 11к підписників)) Вітаю) А я пам'ятаю як 200 чи 500 було) Вірив що якісний українській контент проб'ється
Проб'ється. Ютуб змінив алгоритми. Тепер зібрати перегляди на хорошому контенті, як раз чхнути.
Дякую за Вашу роботу! Круто, що є канал із високим рівнем контенту і адекватності!
Хотів додати трошки свого розуміння процесу кодінгу.
Гадаю, що "чистий код" не має бути фетишем для розробників, а лише як етап (частина) розробки.
За роки своєї карʼєри розробника бачив 99% проектів, що не "взлетіли" і вмерли на етапі прототитів. Тому одразу "чисто" писати не завжди варто. Головне - швидкість!
То ж вважаю, що спочатку має бути робочий прототип для замовника, потім, якщо проект "стрельнув", рефакторінг з "чистим кодом", а вже на потім - оптимізація за ресурсами та швидкістю. Хоча, погоджуюсь, що із рівнем досвіду прототипи будуть писатися ближче і ближче до стандарту "чисто", щоб потім менше було переписувати ))
Але "чиста архітектура" відпочатку - мастхев!
П.С. Коментар для підтримки каналу )) Ще раз дякую!
Так, підхід MVP дуже важливий для того, щоб взагалі вийти на ринок.
Мені подобається створення продукту в рамках хакатону. Коли з нуля до першої робочої версії витратили 2-3 дні та далі орієнтуватись на фітбек користувачів
Чесно кажучи, я не дуже розумію чому чистий код не може бути швидко написаним. Скажімо написати нормально структурований код і все в одній функції займає приблизно один і той же час. А коли ти пишеш якісь розширення чи утілити це в подальшому навіть скорочую розробку. При цьому технічний борг завжди дуже дорого обходиться. То навіщо взагалі писати криво?
Дякую за те що шануєте час глядачів, все стисло та змісновно, без води та переливання з пустого в порожнє
Окреме спасибі за відсутність інтро)
Гарний ролик про гарний код, дякую!
Про Ґейтса майже правда! ;-)
Тільки підкажу, що строка по-нашому -- рядок :)
Чистий, хороший код - мрія кожного програміста. Шкода, що користувачі та їхні мами наврядчи його оцінять. 😊
З іншого боку: "пратівний" код, котрий зможете читати лише ви, гарантуватиме вам робоче місце мало не пожиттєво. Станете "ключником" в компанії, особливо в державній. 😁😂🤣
Цілком реалістична стратегія)
Взагалі-то оцінять. Просто для користувачів він виглядає дещо по-іншому. Для них це швидкі виправлення, постіне додавання функціоналу тощо.
З приводу стати "ключником". Можливо воно і звучить прикольно. А от насправді все дещо не так. У нас є один замовник, проект якого взяли дописувати без участі програмістів. Проект досить давній. З самого початку в нього було закладено декілька тупикових технологій. Можливо на той час воно і було виправдано. Але як факт. Потім, судячи з комітів, вирішили, що розробник занадто багато бере. Код дійсно гарний. І понеслося. Кожний наступний додавав безладу та милиць. А тепер уявіть собі результат. Більшість бібліотек не оновлюється тому, що їх давно закинули. Якщо щось не працює, то спитати ні у кого. Тільки старі відповіді та розбирання коду. Додайте сюди ще помилки в архітектурі і ви отримаєте всю повноту вражень. Виправлення кожної помилки це ще той квест. А додання чогось нового це взагалі ще те пекло. Особисто я не готовий займатися чимось таким до кінця свого життя.
У Вас круто все і доступно. Коментар для підтримки каналу. Нажаль також хотів в IT, але нажаль потреба знімати житло поставила хрест на цьому.
Дякую за відео та вашу працю! Слава Україні!
Гарний код той, впершу чергу, який виконує поставлену перед ним задачу.
Ще гарніший, якщо він з першої спроби написаний і не вертається по 10 рез з теста чи рев'ю.
Після цього я би поставив продуктивність - споживання ресурсів.
І тільки після цього патерни, парадигми та іншу лободу, якими так часто підміняють саме поняття якісного коду.
я пів відео тільки подивився, але це краще ніж все що я бачив)
Як завжди, цікаво. Дякую. Хай квітне український RUclips! 🇺🇦
Дякую за підтримку
Коли я починав в C#, за var (окрім кейсів, коли мегаочевидно що це) били по рукам, а тепер уже прописування строгих типів (окрім кейсів, коли необхідно експісітлі фіганути тип) - моветон.
Це до того, що погляди на те, що таке хороший код з роками міняються
Дякую, за працю, дякую за українську, вподобайка та комент.
Дякую за підтримку
Дуже дякую Вам за вашу працю, за ваші цікаві та корисні україномовні випуски
Дякую за підтримку
6502 ще може множити та ділити на 2 націло завдяки побітовому зсуву (shl shr або > в синтаксі С)
Грьобаний Біл Гейтс!!
фуг, я вже думав що ти докорінно зміннив тематику каналу для більш поверхневої аудиторії, дякую що продовжуєш робити відео і на трохи глибші теми
Я ще готую велике відео про vim, але воно вийде не раніше ніж через місяць
Дякую за якісний контент. Зніміть будь ласка відео про топ книг для професіоналів програмістів по типу: дядечко Боб чистий код, чиста архітектура, еджайл, патерни проєктування тощо.
Дякую за такий крутий та україномовний контент 🔥
Дякую за підтримку
цікавий плакат у вас за спиною)
Це натяк на наступне відео)
@@alex-kovalchuk заінтригували , буду чекати)
Ось наглядний приклад що поняття хорошого коду субʼєктивне. На 3:20 все супер очевидно, "ага пройшлись по списку, ось вказівник на попередній, якщо він не нал... ага, все зрозуміло". На 4:00 "хороший код", ні я згоден, прикольна ідея, але в мене він просто мозок виніс, "вказівник на вказівник, стоп, забули head встановити, а стоп нє, остання строчка й цей кейс покриває". Хоча я б сам скоріш зробив би так само, просто обрав би інші імена змінних й ще додав би змінну або коментар, щоб покращити читабельність. Як мінімум би ще дужки додав би біля &(*.
Плюсую. Це вже не говорячи про можливий креш в тому місці і явний витік пам'яті. (Хіба якщо якимось чудом там стекові дані збережені)
Хоча, в першому теж витік пам'яті
А найголовніше в угарі оптимізації, коли застряв наглухо, не плюнути і не написати десь блок на асемблері.)) За таке тебе розстріляють. 😅
В фільмі "Пірати кремнієвої долини", що базується на реальній історії, герої розповідали, що в Возняка, якраз, не дуже виходило з float-point.
Треба, цей історичний момент якось з'ясувать. При всій повазі до пана Возняка, але це не я вигадав, то-ж мене не шейміть ;)
Щось мені нагадує ця вставка про Біла Ґейтса в кінці)
как всегда лайк от СЕООНЛИ!!!!!!!!!!!!!!!!!!
Кінцівка шикарна 😂
Цікаво, от на пітоні взагалі можливий читабельний код?
Всі спроби його застосування складали враження, що воно створено для ... не для програмування точно))
Можливо, але треба звикнути до стилю написання.
Уявляєш як важко людині яка весь час писала лише на python. Для неї усі мови з С подібним синтаксисом жахливі на вигляд (від незвички)
Вітаю!
Є питаннячко, бачу зліва від Вас на поличці є книжка "Патерни Проєктування. Head First", і саме питання: "яка Ваша думка про дану книгу і книги подібних серій Head First".
Дякую.
Це не фундаментальна література, але цілком пристойна. Я не жалію що читав її
Треба писати код якомога гірше, без коментарів, щоб потім якщо треба було щось змінити, було легше все переписати, ніж дописати.
Як не іронічно а я підтримую відсутність коментарів в коді 😅
Я вважаю що якщо код треба коментувати то краще його переписати
відмінний контент!
Дякую
у всьому винен біл гейтс))))🤣
Це ж правда 😅
@@alex-kovalchuk тоді треба було ще додати що треба підписатися на цей канал а від всіх інших відписатися🤭😂
У всьому винен "білгейтс" - ось тут я звами цілком згоден
5:00 Ну да. Зато в Java теперь появились var-ы и лямбды. И то, и то как-то пофиг в языках, которые и так изначально нетипизированы, но это ж Java!.. Была.
Вместо варов с лямбдами лучше бы препроцессор вернули, а то приходится какими-то костылями типа gradle пользоваться.
Ну и классический protected тоже было бы неплохо. И friend. И... А, да ну его.
оо, я теж ту книжечку купив)
то всьо херня. на практиці - хуяк, хуяк і в продакшин 😂
ну да, ато за трудозатраты в сотню часов на доработку и уволить могут
Я впевнаний що відео цікаве
Як початківець в python скажу що чистий код дуже важливий.
Сам почав цю тему колупати відносно не давно.
враховуючи шо там відступи мають значення, це не дивно 😁
@@lembergsun пахвха, практично стандарт відступів усюди такий самий, один tab або 4 пробіла.
@@lembergsun хочу ще добавити відступи це не саме головне в чистому коді.
@@savin55589 хтось не зрозумів сенс речення
в пітухоні форматування коду важливе, коли для інших мов взагалі прохріну скільки там пробілів і перенесення на нову строку
Хороший код це той який написаний тобою.©
Сприймаю це відео як знак, що варто повчитись
Скажіть будьласка, а Skype це хороший код? Він-же давно пишеться, з ваших слів він апріорі має бути хорошим
Skype має закритий код тому важко оцінити його якість
Недавно вийшло україномовне видання "Чистий кодер" Роберта Мартіна, якраз є цікаві думки про написання коду і його підтримку (тестування)
Я дітям давай цю книгу ще у 2020ому)
7:11 And remember... no russians
Если бы ещё были книги по языку с примерами хорошого кода.
Один з варіантів це аналізувати великі бібліотеки на github. Зазвичай там якість коду на доволі хорошому рівні
@@alex-kovalchuk заліз я якось source-код sqlalchemy почитати:))))
@@whu.9163 То ви ще не читали код ядра linux :). Хоч воно написано доволі гарно. АЛЕ! Ти не знаєш, де той початок, взагалі, ЗВІДКИ його починати читати :D. Лише документація виручає.
refactorguru, і дуже попудярний Роберт Мартін "чистий код"
@@kirillsviderski4739 чистий код варто прочитати, але обережно і зі здоровим скепсисом)
але коли гівнокод на тайпскрипті це взагалі винос мозку )) типи які всі між собою звязані і не звязані одночасно і щоб зробити невеличкі зміни в схемі доводиться змінити половину коду. Тому мабуть якби питали мене гівнокод на строгій типізаціі або без типізаціі і треба щось пофіксити я б вибрав не строгу типізацію.
типізація може подарувати ілюзію безпеки, але якщо все компілються в жаваскрипт і ти прцюєш з домом який може змінити не твій код або апі яке може повернути не те що ти очікуєш типізація не дуже допоможе.
що круто в типізаціі це те що твій редактор набагато краще може давати тобі підказки ) для всього іншого лінтер і тести )
Так, є небезпека з тайпскриптом. Якщо програміст занадто розслабляється думаючи що TS все покриє то це до хорошого не доводить.
Особливо небезпечну думку якось почув таку: "Оскільки я юзаю TS то тести можна не писати"
Нормуль
крутий бекграунд
Дякую)
Штірліц)
Згідний, в усьому винуватий Гейтс
Клятий Білл Гейтс, зіпсував мій код😅
Відео почалося не з привітання ...)
Вирішив не витрачати ваш цінний час)
Гейтс реально скотиняка - так паскудити мій код ще треба вміти)
Головне щоб все працювало а потім його привести до всіх кананлів чи заповідей Божих можна потім.
Схожу концепцію має автор TDD.
Спочатку усе має працювати, а потім виглядати гарно. Ну але він робив акцент що спочатку треба писати тест, а потім код для нього
Слабо віриться в код яикй виглядає норм, особливо в перші роки. Зазвичай ти дивишся на код з думкою "шо за дятел міг це написати? як таких взагалі Земля носить?" а через хвилину розумієш шо це повністтю твій код)))
Так, і це нормальний процес.
Набагато гірше коли в перші роки уже подобається код, це означає що людина не розвивається, хоча такого майже не зустрічав
4:54 якесь розмите поняття "більш строгої" типізації. Мабуть мова йде саме про статичну типізацію, а не строгу, якщо далі йде мова про Typescript
Так, в першу чергу про статичну, використав "більш строга" як узагальнення явної, статичної типізації. Типу у всіх напрямках пішло покращення
@@alex-kovalchuk але ж strong typing не может бути узагальненням static typing 🤔
Не може, але як php, так і js (за допомогою TS) рухався з weak до strong і з dynamic до static одночасно (якщо уявляти на графіку, то знизу зліва наверх в право)
Просто мені "більш статична" звучить дивніше ніж "більш строга"
@@alex-kovalchuk наприклад (стосовно з weak до strong)?
Приклади від weak до strong
PHP з версії 7 додав можливість вказати типи параметрів функції на вхід і на вихід. Або з найсвіжішого з версії 8.2 додали самостійні типи null, false і true.
У випадку з TS історія аналогічна. Типи параметрів функції на вхід і на вихід - це більш строга типізація в порівнянні з JS.
Просто weak і strong не варто сприймати як перемикач від одного стану до іншого
Я б сказав що в прикладах Лінуса - обидва приклада погані, бо в коді головне - неймінг. Тут зрозуміти що означають імена змінних можна тільки якщо ти вже глибоко в контексті.
Це доволі абстрактний метод тому і назви розкривають суть
@@alex-kovalchuk Ці назви розкривають суть тільки читачу, який ВЖЕ розуміє що тут відбувається. Щоб зрозуміти що таке walk, шо це взагалі за тип і нахіба ця змінна існує - треба зрозуміти весь алгоритм (я розумію що це не дуже складно, бо алгоритм простий, але це не виправдання).
Зараз я абсолютно не розумію програмістів, котрі бояться давати своїм змінним змістовні назви. IDE зазвичай дозволяє не вводити їх назви вручну в місцях використання і пропонує автодоповнення. Зараз уже не той час, коли у розробників малі монітори, краще хай код буде "ширшим", але читабельнішим просто за рахунок назв змінних і без тонни коментарів, котрих можна було уникнути.
Ага, особливо нервує коли називають item, i, key хоча працюють з конкретними сутностями
1:01 шо то на ассемблере? Выглядит очень страшно)
В ТГ (t.me/AlexKovalchukTg/36) детальніше описав
@@alex-kovalchuk подписался 🙂
Пишу коментар без значення, але оскільки коментарі збільшують обсяги, то може той коментар без значення має значення.
Хех можливо допоможе, дякую за підтримку
Повага до україномовних блогерів...
Типу вивчити php за 10 днів неможливо?)
Навчитись писати хороший код за 10 днів неможливо, а php вивчити і зробити сайт цілком можливо. Особливо з допомогою chatGPT
ставь лайкос если за грязный но быстрый код
ты на Gnu linux сидишь?
Не на gnu дистрибутиві. Основна система це macos і arch linux
@@alex-kovalchuk запиши ролик про arch
Згоден тільки з останнім пунктом😡
А з чим саме не згідний по інших пунктах?
На фоні останнього вони виглядають неправдоподібно. А так я просто жартувати не вмію
Подписался. Но аватарка с синими волосами это конечно пи..ц.