КАК ЧИТАТЬ ИСХОДНЫЕ КОДЫ | СОВЕТЫ ОТ СОЕРА

#soer #itubeteam
Основной канал для общения и публикации новых видео - Телегарм - t.me/softwareengineervlog
Спонсорство - donate.s0er.ru
Сайт платным контентом - soer.pro
Зеркало для видео Дзен Видео - zen.yandex.ru/id/5f578bdf22e2...
GitHub - github.com/soerdev
Чат для программистов - / discord
Группа ВК - codeartblog

Пікірлер: 85

  • @user-co7pe2be6s
    @user-co7pe2be6s4 жыл бұрын

    Помню как кто-то сказал, что в роликах Soer'a много воды. На счёт этого видео, не могу, не согласиться...

  • @Law-Liet
    @Law-Liet4 жыл бұрын

    Главное научится читать коды в stackoverflow)

  • @user-hc8zr1tv4h

    @user-hc8zr1tv4h

    4 жыл бұрын

    Да? А там что всё понятно?

  • @user-sv2gm3vk6k
    @user-sv2gm3vk6k4 жыл бұрын

    Хочу немного дополнить, сказав про свой опыт чтения кода. Хочу сказать, я далеко не опытный программист на С++. Я его изучаю примерно пол года, и когда-то давно подруга попросила меня немного изменить одну простенькую программу на SFML. Когда я набралась достаточного опыта и решила изучить SFML, я вспомнила про её просьбу. Нашла исходники, и по началу не было совершенно ничего не понятно. Абсолютно ничего. По началу я думала, что это какой-то нечитаемый говнокод или что мне попросту чересчур рано лезть в реальные проекты. Благодаря некоторым людям на дискорд сервере мне стали понятны некоторые участки кода, но до полного понимания как до Москвы на коленях. Периодически я решилась иногда читать его, и со временем мне постепенно начало приходить понимание, как оно работает. Почему это написали именно так. Я наконец спустя долгое время научилась разделять проект на несколько файлов так, чтобы это было уместно, проектировать программу так, чтобы всё было на своих местах и было читаемым. Изначально попытка прочитать код была очень тяжёлой, но впоследствии она научила меня очень важной вещи - проектированию. Небольшая программа, которую я сейчас пишу - первая, которую я могу назвать действительно полноценным проектом. Это дало мне огромное количество опыта

  • @anonym1548

    @anonym1548

    4 жыл бұрын

    Всё потому что, я написал этот код, как боженька!

  • @egorpetrov6652

    @egorpetrov6652

    4 жыл бұрын

    Поставил лайк за фразу «как до Москвы на коленях» ;)

  • @felps3213
    @felps32134 жыл бұрын

    Благодарю за информативное видео!

  • @doomymax577
    @doomymax5774 жыл бұрын

    как всегда полезно, на работе не всегда таких людей найдешь которые могут так подсказать

  • @Mr43046721
    @Mr430467214 жыл бұрын

    Клёво)) Очень непривычно от вас, Евгений, видеть такие короткие видео) Спасибо за видео! p.s мб про собеседования байки расскажете?

  • @qdexy
    @qdexy4 жыл бұрын

    Чётко объяснил, спасибо

  • @inzagher
    @inzagher4 жыл бұрын

    За данное видео поставил бы 5 лайков. Именно прочтение книг по паттернам и SOLID в свое время дало прорыв в понимании кода.

  • @denyskulpa6241

    @denyskulpa6241

    4 жыл бұрын

    А что за книга больше понравилась, если помнишь?

  • @inzagher

    @inzagher

    4 жыл бұрын

    @@denyskulpa6241 я читал Роберта Мартина. Книга называется "Принципы, паттерны и методики гибкой разработки на языке C#". Перевод меня устроил.

  • @aldwynconjurer9449
    @aldwynconjurer94494 жыл бұрын

    Парень дело говорит. Я и сам, не так давно, для решения своих задач, начал дописывать функционал чужого кода. В процессе изучения кода - узнаю много полезного и нового для себя.

  • @love.society
    @love.society4 жыл бұрын

    Привет, спасибо тебе большое. Ты выпускаешь видео именно тогда, когда это просто крайне необходимо. Читаю исходники по ардуино, понимаю крайне мало

  • @igorchesnokov482

    @igorchesnokov482

    4 жыл бұрын

    Лучше ходить по коду с отладчиком. А главное - первое с чем нужно определиться - это для чего этот код, собственно, читается....

  • @ASUSVOLT
    @ASUSVOLT4 жыл бұрын

    Только после работы вернулся, где сегодня пришлось подсмотреть в один компонент кенды под ангуляр ;) Я же всё же считаю, что текст исходный как книгу можно воспринимать и читать, если там есть оглавление и вводная, в виде логики бизнеса(аля домен). А так спасибо за скорый ролик! Отличного отдыха! P.S. а у нас тут каша снега на улицах :D

  • @aleksanderaksenov1363
    @aleksanderaksenov13634 жыл бұрын

    На энтерпрайзе чтение исходного кода-основа,потому что этот код который писался очень давно и нужно его улучшать и добавлять новые фичи

  • @user-jn4cq9dy3f
    @user-jn4cq9dy3f4 жыл бұрын

    Особенно забавно бывает читать сорцы фреймворка, который используешь... Мне кое-чего не хватало в формах Django. В том плане, что без js некоторые вещи просто не реализовать. Полез внутрь. В итоге написал некоторую надстройку, которая позволяет делать на серверной стороне то, что не работало по разным (не зависящим от меня) причинам на клиенте. Ну и заодно чуток в программирование метаклассов "окунулся" - оказалось весьма интересно... Правда, не знаю, как это всё уживётся с недавно вышедшей третьей версией джанги. )))

  • @user-gm6gy4cz8j
    @user-gm6gy4cz8j4 жыл бұрын

    Скорость воспроизведения 1.75 идеально

  • @user-kc4if4so6g
    @user-kc4if4so6g4 жыл бұрын

    Soer, расскажи где начать обучение программированию, интернет порталы, форумы, литературу с которой стоит начать. (имеется ввиду основы программирования)

  • @1PartiZzan
    @1PartiZzan4 жыл бұрын

    Спасибо за советы..! Кстати никто не снимает видео как пользоваться Github... т.е заходим в поиск... фильтруем код под си++ ... находим проект... а дальше что..? Что такое make... readme... main... как его загрузить и портировать в какой нибудь eclipse... или что такое elf.. dll... т.е те вещи, которые все уже давным давно знают... именно это и есть преграда на пути к пониманию... как скомпилировать его под windows... linux... будет ли он пользоваться всеми ядрами процессора... а может он мог бы использовать видео карту...

  • @user-hc8zr1tv4h
    @user-hc8zr1tv4h4 жыл бұрын

    О, Привет!

  • @diskortdiskortov4730
    @diskortdiskortov47304 жыл бұрын

    Смотрю на будущее)) До тупика в развитии еще очень очень далеко=)

  • @god_bika
    @god_bika4 жыл бұрын

    Насчет ребусов. Есть же доки к програмам. В html виде с деревьями наследования и абстракциями.( причем все это на автомате выходит если тулзы ide использовать) Ваефреймами блоксхемами в конце концов. Просто один раз по блоксхеме пробежался .Есть такие 'чужие коды' которые читать просто как либу какую изучаешь.

  • @eugenenovikov671
    @eugenenovikov6713 жыл бұрын

    а появляются ли новые принципы типа солида? банда писала свою книгу давно, сейчас много времени прошло, есть ли что-то ещё теперь?

  • @vladiwolf6499
    @vladiwolf64994 жыл бұрын

    крутой совет! Если еще систематически изучать код лучших из лучших, то вообще пушечный рост! И помните ресурсы вашей жизни каждую минуту стремятся к нулю. {SE Soer}.

  • @RadioTexnik
    @RadioTexnik4 жыл бұрын

    Лайк!

  • @Archik4
    @Archik44 жыл бұрын

    Чтение стандартной библиотеки STD C++ похоже на расшифровку криптотекста.

  • @firework21

    @firework21

    4 жыл бұрын

    Это точно. Даже желание читать исходники как-то отбилось, а когда начал лазить под капот PHP-фреймворков, то с удивлением обнаружил, что в принципе там всё понятно.

  • @Uni-Coder

    @Uni-Coder

    4 жыл бұрын

    Можно реально переполнить свой стек.

  • @KonstantinDedov
    @KonstantinDedov4 жыл бұрын

    Да, Сбер плохого не посоветует))

  • @kopolo4344
    @kopolo43444 жыл бұрын

    А видос реально вышел в 16:00 :))

  • @Uni-Coder
    @Uni-Coder4 жыл бұрын

    Чтение чужих кодов важно (просто потому, что тебе рано или поздно всунут проект, который разрабатывал Вася Пупкин, но он уволился, а продолжать тебе). Но это полный ад. И хорошего, читаемого кода не существует. (Ну, кроме моего, конечно :))

  • @_________5287

    @_________5287

    3 жыл бұрын

    Полностью с тобой согласен

  • @gunnargunaxe
    @gunnargunaxe4 жыл бұрын

    А! Вспомнил! Ещё один вопрос! Вот в хедере есть дефайн, например #define GPIO_IDR_IDR0 ((uint16_t)0x0001) /*! Вот в мэйне его можно вызвать по его определению, ну то есть если я вставлю его в код, он сработает? Типа такого: #include "stm32f10x.n" void main(void){ int variable = GPIO_IDR_IDR0; }

  • @illvllsllsl6

    @illvllsllsl6

    8 ай бұрын

    Ага

  • @user-td6vu1hh3y
    @user-td6vu1hh3y4 жыл бұрын

    лучший

  • @user-ss2rj4wz5s
    @user-ss2rj4wz5s4 жыл бұрын

    Как отличить хороший код от плохого? Может быть код будет сложный и запутанный, но не потому, что задача была сложной, а просто потому, что разработчик выбрал неправильный подход для решения и не применял нужных паттернов. Как человек, который читает код, определит это?

  • @fillin3124

    @fillin3124

    4 жыл бұрын

    Если поймёшь код другого программиста и у тебя не возникнет желания реализовать это по своему, то лучше решение другого программиста, чем отсутствие решения вовсе

  • @TheFruitcake1983
    @TheFruitcake19834 жыл бұрын

    программисты до сих пор читают код по старинке, вместо того чтобы придумать систему которая формировала какую-нибудь нодовую систему из кода для нормального восприятия и наглядности

  • @Cleannetcode
    @Cleannetcode4 жыл бұрын

    Мне нравится сравнение кода с ребусом. Получается, что хороший код, как хороший ребус. Тебе приятно его разгадывать :)

  • @user-ph4js4lu2y
    @user-ph4js4lu2y4 жыл бұрын

    Это второй коммент для продвижение канала.

  • @Flint367
    @Flint3674 жыл бұрын

    Соер, расскажи как искать хорошие примеры кода, кроме рабора библиотек

  • @Flint367

    @Flint367

    4 жыл бұрын

    @@hvac_vdk уточню, мне желательно проджекты на JS

  • @god_bika

    @god_bika

    4 жыл бұрын

    Разбор библиотек.

  • @Flint367

    @Flint367

    4 жыл бұрын

    @Роман Китаев принял

  • @avazart614

    @avazart614

    4 жыл бұрын

    @Роман Китаев Да нифига, достаточно важно. На Си (исходники GNU) скорее всего не будете принципов ООП. На С++ будет RAII а в C# Java не будет итд итп.

  • @IlyaKomar
    @IlyaKomar Жыл бұрын

    Я джун с опытом 1год, нашел работу, где команда допиливает чужой кривой проект. Через 2 дня работы я уволился, тк вообще ниче не понял в чужом коде и сам процесс его понимания это был ад. И я подумал, зачем так мучаться? Работа должна быть в кайф.

  • @Baziles777
    @Baziles7774 жыл бұрын

    Здравствуйте, нужен программист на очень перспективный проект, есть у вас кто ?

  • @user-ev7kx8sb3r
    @user-ev7kx8sb3r4 жыл бұрын

    привет ты ещо в риме?

  • @gunnargunaxe
    @gunnargunaxe4 жыл бұрын

    Привет. Читаю исходники для stm32, cortex-m3. Упёрся в непонимание typedef struct. Плюс не понимаю зачем нужен int32_t и в чём ПРИНЦИПИАЛЬНАЯ разница с обычным int. В гугле все объяснения какие то мутные и расплывчатые. Уже голова болеть начала... Но мне нужно это понять.

  • @Embedded_Developer

    @Embedded_Developer

    4 жыл бұрын

    int32_t и в чём ПРИНЦИПИАЛЬНАЯ разница с обычным int@ А если написать вот так: #define int8_t char #define int16_t short #define int32_t int #define int64_t long #define uint64_t double У разных машин и разных языков расположение в памяти "char","int","long","short" разное. Просто #define-шь их навсегда и всё. надо выделить 8 бит? ок, пишешь int8_t. надо выделить 32 бита? ок, int32_t. чтобы каждый раз не вспоминать - а "char" это сколько?

  • @gunnargunaxe

    @gunnargunaxe

    4 жыл бұрын

    @Svetlana V я ни где не могу найти что это значит... вот строка, прям копипаста из хэдера: #define TIM2 ((TIM_TypeDef *) TIM2_BASE) что значит этот знак умножения? зачем он нужен? как работает? это указатель? вот другая строка(точнее несколько): #define PERIPH_BASE ((uint32_t)0x40000000) /*! #define APB1PERIPH_BASE PERIPH_BASE #define TIM2_BASE (APB1PERIPH_BASE + 0x0000) А вот здесь то как раз всё ясно. TIM2_BASE это значение APB1PERIPH_BASE прибавить 0x0000. Ну и так далее. А вот этот знак умножения, прям не понял вообще...

  • @egorpetrov6652

    @egorpetrov6652

    4 жыл бұрын

    Zed Zedd , а если в разных языках long будет иметь разное кол-во байт, то получается нет гарантии сколько байт будет выделено при использовании int64_t. Поправьте, если я ошибаюсь.

  • @ericraudy
    @ericraudy4 жыл бұрын

    Евгений, вопрос на засыпку - а как читать чужой говнокод? )))

  • @adeusexmachina

    @adeusexmachina

    4 жыл бұрын

    в респираторе и в перчатках) а если серьёзно нужно сначала понять что там именно говно: стиль оформления, наименования переменных или всё красиво, но через задницу и по чайниковски. Сложнее читать говностиль. И нет ничего проще для понимания опытным программистом, чем говнокод неопытного джуниора, особенно если он ещё и не оптимизированный. Обычно вся логика лежит на поверхности, способы реализации и алгоритмы до ужаса прямолинейные. Если же это серьёзный большой проект для будущей правки и нужно понять что там происходит, чтобы это перелопатить, то, проще всего перед чтением нужно его стилизовать, привести в порядок наименования переменных. А дальше обычно всё будет легко. Профессиональный красивый код, но жутко заоптимизированный или заумный порой разгадывать сложнее. На западе про такое говорят (over-engineering)

  • @MsTim159
    @MsTim1594 жыл бұрын

    Я джун js, посоветуйте пожалуйста книгу по паттернам.

  • @temendcrossman5589

    @temendcrossman5589

    4 жыл бұрын

    Банда четырех. Классика

  • @BHy4OK

    @BHy4OK

    4 жыл бұрын

    Зачем джуну паттерны? Вы их никогда джуном адекватно не примените, только башку засорите

  • @user-jp5hf1mo1e
    @user-jp5hf1mo1e4 жыл бұрын

    да что можно увидеть в гавнокоде современных прогеров? работаю на таком проекте, где даже коментов в чужом коде нет, про логику и чистоту, я вообще молчу.

  • @tynystanniiazakunov5595
    @tynystanniiazakunov55954 жыл бұрын

    Мне 10 лет и я легко читаю чужие исходные коды

  • @privateserj
    @privateserj4 жыл бұрын

    Круто, но оставьте капс бьютиБлоггерам ;)

  • @avalexey
    @avalexey2 жыл бұрын

    А как можно в практике не читать чужой код? В реальной работе мы же чаще работаем в других проектах с другими людьми

  • @andreygokhan6893
    @andreygokhan68934 жыл бұрын

    Вообще то нужно чётко знать какие вопросы решает данный код, а это нереально узнать без хорошей документации? Тут свой то код если не задокументируешь, то через некоторое время сразу и не поймёшь. А разве кто нибудь документирует свой код на гитхабе? Сразу же назревает вопрос: КАК ЧИТАТЬ ИСХОДНЫЕ КОДЫ?

  • @sergeibatiuk3468
    @sergeibatiuk34684 жыл бұрын

    Лидо ди Остия?

  • @0xDFA
    @0xDFA3 жыл бұрын

    Пишет вам тестер без особого образования. Сначала читал плюсовый код, теперь учусь читать java код. Слабо делать это как я, используя total commender и нотпад? Вот вот, разрабы ссут, а я могу. Возьмите меня на работу 300кк в наносекунду.

  • @ThisDaveAndThatJohn
    @ThisDaveAndThatJohn4 жыл бұрын

    Про "чтение кода должно быть как читать книгу" скорее всего больше относится к комментариями. Даже если код и вьется, возвращается обратно вверх через goto, комментарии все равно можно писать сверху вниз как книгу. Как не крути но любой код даже ООП в итоге сведется к процедурщине где сначала подключается главная библиотека, потом идет вход в главную функцию, потом создается главный объект в которой помещается другой в зависимости от чего-то там и тд. Часто если комментарии хорошо описывают почти каждую стоку, то и нет особой необходимости углубляться в код, придумывать заумные названия переменным которые через две строки уже можно чистить. Код мы все-таки не читаем, а интерпретируем (в большей степени), как компьютер, а вот комментарии мы по-настоящему читаем.

  • @daanl88l
    @daanl88l4 жыл бұрын

    Комменты спасут программистов... Или выше своего достоинства писать комментарии (что, куда и откуда)???

  • @SineSet
    @SineSet4 жыл бұрын

    То есть, я правильно делаю, что читаю чужой говнокод, а не пишу свой?

  • @fpv_am
    @fpv_am4 жыл бұрын

    Оч прошу, синъёры, очень прошу, дайте почитать крутой код.

  • @BHy4OK

    @BHy4OK

    4 жыл бұрын

    AntiBlog держи: while (true) { console.log(«крутой код»); }

  • @SineSet

    @SineSet

    4 жыл бұрын

    void main() {}

  • @user-ph4js4lu2y
    @user-ph4js4lu2y4 жыл бұрын

    Что такое Паттерны?

  • @JohnDoe-ji1zv

    @JohnDoe-ji1zv

    4 жыл бұрын

    Не туда написал)))) Гугл рядом )

  • @user-ph4js4lu2y

    @user-ph4js4lu2y

    4 жыл бұрын

    @@JohnDoe-ji1zv ага, вот только из гугла нихрена не понятно, из-за этого у меня бомбит.

  • @olezhonnv3215
    @olezhonnv32154 жыл бұрын

    Задолбали уже с теми паттернами! Там, где прекрасно и быстро работает банальный фор - лепят такую хрень иногда, что потом просто охреневаеш! Вот не было бы Джавы - Андроид работал бы на порядки быстрее, и все приложения для него. Но она - есть! А еще паттерны - это когда проект до 500 кб в разжатом виде, а девдепенденсов к нему на 80 мегабайт тянет. А ЕС6 или ЕС201Х - это то, что Адоб сделал в Экшн Скрипт 3 (грубо говоря) еще 10+ лет назад. Ну вас к черту с вашими паттернами - как хорошо жилось до всего этого. Применять это надо там, где это реально нужно, а не лепить везде, куда ни глянь. Функциональный подход в ЖС - пиши на Хаскеле иди - лепишь неслепуемое и заставляешь потом меня в этом всем разбираться. А мне - лень учить весь этот компьютер сцаенс! Я и без него деньги зарабатывал хорошо, а щас - те же деньги, но плюс еще паттерны разные натулили.

  • @igorchesnokov482

    @igorchesnokov482

    4 жыл бұрын

    Не волнуйтесь Вы так, через некоторое время нам снова будут рассказывать, что ООП - это путь... Оно так уже несколько десятилетий по кругу ходит...

  • @zcbesaba
    @zcbesaba4 жыл бұрын

    да ладно

  • @animation7803
    @animation7803Ай бұрын

    Нет звука

  • @Trickster_Skeleton
    @Trickster_Skeleton3 жыл бұрын

    Шум бесит

  • @romanbush5164
    @romanbush51644 жыл бұрын

    Соер, что ты несёшь где конкретика для джуниоров, какую библу где с чем использовать, для каких задач, какие у тебя были проекты и как ты их реализовал, как думать как прогер, сложна и не о чем чёт снимаешь), ахах а стековерфлоу теперь всегда замечаю, ух чтоб без него делали начинающие, как я

Келесі