Привет Михаил. К сожалению, почему-то раньше не видел ваши видео, по ссылке от Алексея перешёл. Посмотрел несколько роликов, зашло. У вас просто и доступно получается доносить инфу, продолжайте в том же духе. Спасибо за ваш контент🤝. Всех благ вам!
Это видео надо включить в список обязательных к просмотру для всех новичков. Ведь именно АГРЕССИВНАЯ критика может на корню деморализовать человека и он окончательно потеряет и без того не крепкую веру в себя в этом деле. Так что писать говнокод в самом начале это не страшно. А с большим опытом тем более не страшно :- ))
Хорошие советы! Часто ловлю себя на том, что пытаюсь отрефакторить код на этапе создания фичи) в итоге темп замедляется, а выхлопа особого это не дает. Но в некоторых случаях, я считаю, нужно писать сразу чистый и масштабируемый код (насколько это возможно), особенно когда заказчики постоянно меняют ТЗ) иначе получаешь кашу, которую даже мэйнтейнер не может поддерживать. Встречал такие проекты, это ад
Сразу прям чистый не всегда можно написать. Если поставить цель писать читаемый код, поддерживаемый код, вот это можно достигнуть на первых этапах, а дальше полировать по мере надобности.
@@programisli почему сразу нельзя? Если фичи небольшие и разработчик годами использует одни и те же инструменты, вполне реально с ходу писать поддерживаемый код с минимумом рефакторинга. Исключения здесь - когда фича действительно большая, либо ТЗ нечёткое.
Когда-то давно услышал такую мысль: "Хороший код - это не написанный код" То есть создавая код мы создаем Зло. Увеличиваем затраты на понимание, сопровождение и в итоге стоимость поддержки. При том часть кода ни когда не дойдёт до прода. Поэтому кода должно быть всего лишь достаточно :) И не больше. А критерии достаточности разные в зависимости от условий. P.S. Поговорку про грязь слышал от бабушки))
Здравстуй читатель. Хочу сказать тебе: 'Не отчаивайся'. Все у тебя может получиться. Не нужно думать что те у кого получилось достичь своих целей им просто случайно повезло. Это только так кажеться. Поверьте случайного везения не бывает. Ребята хочу вам сказать что случайностей вообще не бывает и вот почему: Представь себе выходишь ты в сад и видишь что все деревья в твоем саду повалены. Какая мысль придет к тебе в голову? Вполне возможно ты подумаешь что ночью прошел сильный ураган поваливший деревья. А теперь представь себе что ты также выйдешь в свой сад и увидишь что не все деревья в твоём саду повалены, а каждое третье дерево повалено. Какая мысль придет к тебе в голову на этот раз? Ну врят ли ты здесь все спишешь на ураган. Вполне возможно ты подумаешь что ночью поорудовал какой нибудь злоумышленник. А теперь представь что у тебя в коробке 3000 (три тысяча) буквенных символов. И представь что ты подкинул все эти буквы в воздух. Упав на асфальт какова вероятность что эти буквы образуют какое нибудь слово? А какова вероятность что эти буквы образуют какое нибудь предложение? А какова вероятность что эти буквы образуют какой нибудь абзац? А какова вероятность что эти буквы образуют какой нибудь текст? А какова вероятность что эти буквы образуют какую нибудь книгу? Вероятность равна почти нолю. А ведь двойная спираль днк намного сложнее устроена чем текст на асфальте. Верить в то что там где то сверкнула молния и вот там тоже где то сверкнула молния, а потом произошла химическая реакция и химические элементы бац соединились и образовали сложное химическое вещество, которая вдруг стало бороться за свое сохранение и не просто сохранение, а ещё и воспроизведение себе подобных- это глупо. Это все равно что будучи археологом ты наткнешься на руины древнего города и первая мысль которая к тебе в голову придет- это что здесь когда то жили люди построившие этот город. Ну, а если твой коллега скажет: "неа, это просто вон там сверкнула молния и вон там тоже сверкнула молния, а потом началось землетрясение и вот таким образом и образовался этот город". Ты после этого разговора скорее всего попросишь руководство что бы твоего коллегу отстранили от работы в связи с тем что у него поехала крыша. Так вот предыдущая ситуация с молнией и химической реакцией еще более нелепая. Бытует мнение что наша вселенная хаотична. Но я с этим не соглашусь. Я уверен что наша вселенная упорядоченна. Так что ребята случайностей не бывает. Случайного везения просто нет. Наша вселенная не хаотична, а упорядоченна. Просто ставьте цели и достигайте их. И верьте что у вас тоже может получиться. Не сдавайтесь ребята. Мой девиз в жизни такой: Терпеливо Активно Учитесь Хорошим Искренним Делам. Запомните эту аббревиатуру. И пусть этот девиз сопровождает вас везде.
Здравстуй читатель. Хочу сказать тебе: 'Не отчаивайся'. Все у тебя может получиться. Не нужно думать что те у кого получилось достичь своих целей им просто случайно повезло. Это только так кажеться. Поверьте случайного везения не бывает. Ребята хочу вам сказать что случайностей вообще не бывает и вот почему: Представь себе выходишь ты в сад и видишь что все деревья в твоем саду повалены. Какая мысль придет к тебе в голову? Вполне возможно ты подумаешь что ночью прошел сильный ураган поваливший деревья. А теперь представь себе что ты также выйдешь в свой сад и увидишь что не все деревья в твоём саду повалены, а каждое третье дерево повалено. Какая мысль придет к тебе в голову на этот раз? Ну врят ли ты здесь все спишешь на ураган. Вполне возможно ты подумаешь что ночью поорудовал какой нибудь злоумышленник. А теперь представь что у тебя в коробке 3000 (три тысяча) буквенных символов. И представь что ты подкинул все эти буквы в воздух. Упав на асфальт какова вероятность что эти буквы образуют какое нибудь слово? А какова вероятность что эти буквы образуют какое нибудь предложение? А какова вероятность что эти буквы образуют какой нибудь абзац? А какова вероятность что эти буквы образуют какой нибудь текст? А какова вероятность что эти буквы образуют какую нибудь книгу? Вероятность равна почти нолю. А ведь двойная спираль днк намного сложнее устроена чем текст на асфальте. Верить в то что там где то сверкнула молния и вот там тоже где то сверкнула молния, а потом произошла химическая реакция и химические элементы бац соединились и образовали сложное химическое вещество, которая вдруг стало бороться за свое сохранение и не просто сохранение, а ещё и воспроизведение себе подобных- это глупо. Это все равно что будучи археологом ты наткнешься на руины древнего города и первая мысль которая к тебе в голову придет- это что здесь когда то жили люди построившие этот город. Ну, а если твой коллега скажет: "неа, это просто вон там сверкнула молния и вон там тоже сверкнула молния, а потом началось землетрясение и вот таким образом и образовался этот город". Ты после этого разговора скорее всего попросишь руководство что бы твоего коллегу отстранили от работы в связи с тем что у него поехала крыша. Так вот предыдущая ситуация с молнией и химической реакцией еще более нелепая. Бытует мнение что наша вселенная хаотична. Но я с этим не соглашусь. Я уверен что наша вселенная упорядоченна. Так что ребята случайностей не бывает. Случайного везения просто нет. Наша вселенная не хаотична, а упорядоченна. Просто ставьте цели и достигайте их. И верьте что у вас тоже может получиться. Не сдавайтесь ребята. Мой девиз в жизни такой: Терпеливо Активно Учитесь Хорошим Искренним Делам. Запомните эту аббревиатуру. И пусть этот девиз сопровождает вас везде.
Стивен Кинг называл это открытой и закрытой дверью. Первый раз ты пишешь для собственного понимания (с закрытой дверью), а второй раз чтоб тебя поняли все остальные
Еще в книги "Чистый код" говорится, что без тестов код отдавать как-то не правильно...если "говнокод" работает под тестами, то это великолепно) В реалиях, чаще код без тестов и попадает на Code Review, и без чистоты в коде сложно судить о его работоспособности Я верю, что попаду в фирму где пишут тесты) когда нибудь
@@programisli тоже грустный сценарий, так я не хочу :) В таком случае можно подсидеть техлида, потому что с таким подходом провалы на проекте будут частые
У меня обычно итерациями мелкими происходит смена 2х шапок на автомате, пишешь кусочек кода средней паршивости качества, в какой то момент рефакторишь, меняешь имена, разбиваешь по функциям, генерикам. В какой то момент уже более сложный рефакторинг затрагивающий кучу всего. Без всяких книжек, по опыту)
Стараюсь писать красивый код, но если время поджимает и ничего не придумывается красивого приходится делать так как получается, главное выполнить задачу
Полностью подписываюсь под каждым словом. Если решать задачу и сразу думать как ее оптимизировать, мысль по древу растеклась. Неважно, кодите вы или задача из любой другой сферы деятельности. Сначала сделаем, потом улучшаем. Залог производительности. Хорошо, если методы решения сразу оптимальны. Для этого приходится развиваться… Вроде демагогия, но это блин работает
Просто спасибо! полезные мысли услышал. Я новичок в этой сфере и каждый раз когда смотрел чужой код который более красиво написан, замарачивался, что бы переписать свой, хотя он работает и хорошо читаем. Вместо того, что бы дальше изучать язык и кодить, что то новое.
Дополнительно. Плохой код, если его не убрать, делает проект плохим ( с т з программиста), т к последующие исправления будут требовать больше нервов и денег. Плохой код пишется из-за незнания всех деталей решения. Рефакторинг надо делать на следующий день после написания решения. Рефакторинг обязательно включается в планируемые сроки. Нельзя релизить плохой код (это установка, т к выполнить это в принципе невозможно, но с этой установкой можно существенно его уменьшить). Его исправление после релиза может стоить существенно дороже чем его оставление.
@@programisli Согласен. Но, даже когда топы понимают необходимость рефакторинга (видят что теряют миллионы из-за плохого кода), его всё равно как правило не делают. Во-первых, нужны о-очень высококлассные специалисты; во-вторых, возможные потери от ошибок часто превышают плюсы. В моей практике, как правило, все (и я в том числе) переходили на другой движок / архитектуру / новую-версию, если продукт уже эксплуатируется.
"Если работает не трогай" - верно не всегда. Есть случай, когда даже если ничего не понялось - трогать надо... Это ситуация, когда достаточно регулярно меняются фреймворки. Потому что перескакнуть с фреймворка скажем 3.0 на 4.0, если он выходит там раз в полгода год - это легко, но вот если переходить с 2.0 на 8.0 - это уже может вылезти куча проблем, которые надо будет решать. В .NET например достаточно один раз в 2 версии обновлять (как раз с LTS До LTS), а вот в каких нибудь Жабоскриптовых можно и 3-4 версии пропустить, но потом - обязательно надо - даже если работает и изменений не требуется - делать свитч. Потому что иначе можно огрести проблем - что-то перестанет поддерживаться, какие-то сисьюрити апдейты.....
Всё сильно зависит. Если это ваш личный проект или проект какой-нибудь компании "рога и копыта", то да, тут говнокод он имеет место быть, чтобы когда-нибудь к нему вернуться. Во первых потому что скорее всего у вас не будет ревьювера, а если и будет, то он либо лоялен к вам, либо тоже любитель говнокодить Но если вы будете отправлять патчи в какой нибудь gcc или ядро линукса, то там уже такое вряд-ли прокатит
Оба принципа хорошие, только со вторым (про постоянные улучшения) важно не переборщить) потому что если улучшать всё подряд, то на ревью будет сложно смотреть такой скоуп изменений, суть задачи потеряется в улучшениях
Всегда придерживаюсь правила - сначала код должен работать и выполнять поставленную задачу, потом наводим красивости. Самый красивый и оптимизированный код в мире нафиг не нужен если дедлайн был 2 дня назад.
Привет тоже смотрел видео Алексея ответ на критику был очень аргументирован. Михаил, а что вы думаете про chatgpt , на самом дауны уже не нужны и в будущем программисты будут нужны но не в таком количество? Вообще было б интересно посмотреть про эту тему вообще видео.
Пока еще мы не дошли до того, чтобы заменить программистов. chatGPT заменяет программистов не больше, чем библиотеки. В телеграмме на эту тему общались - менеджеры не могут программистам задать задание, а уж искусственному интеллекту пока и близко не смогут. Может когда-нибудь, но мы еще далеко не там
Смотрю ваши видео взахлёб и не могу нарадоваться, желаю всем смотрящим найти такого же критически мыслящего и банально понимающего людей, ментора, который не боится говорить как всё есть на самом деле. Неужели так мало людей это ценят раз вокруг у всех на кого ни наткнись по 2 короны дома лежит?)
Здравстуй читатель. Хочу сказать тебе: 'Не отчаивайся'. Все у тебя может получиться. Не нужно думать что те у кого получилось достичь своих целей им просто случайно повезло. Это только так кажеться. Поверьте случайного везения не бывает. Ребята хочу вам сказать что случайностей вообще не бывает и вот почему: Представь себе выходишь ты в сад и видишь что все деревья в твоем саду повалены. Какая мысль придет к тебе в голову? Вполне возможно ты подумаешь что ночью прошел сильный ураган поваливший деревья. А теперь представь себе что ты также выйдешь в свой сад и увидишь что не все деревья в твоём саду повалены, а каждое третье дерево повалено. Какая мысль придет к тебе в голову на этот раз? Ну врят ли ты здесь все спишешь на ураган. Вполне возможно ты подумаешь что ночью поорудовал какой нибудь злоумышленник. А теперь представь что у тебя в коробке 3000 (три тысяча) буквенных символов. И представь что ты подкинул все эти буквы в воздух. Упав на асфальт какова вероятность что эти буквы образуют какое нибудь слово? А какова вероятность что эти буквы образуют какое нибудь предложение? А какова вероятность что эти буквы образуют какой нибудь абзац? А какова вероятность что эти буквы образуют какой нибудь текст? А какова вероятность что эти буквы образуют какую нибудь книгу? Вероятность равна почти нолю. А ведь двойная спираль днк намного сложнее устроена чем текст на асфальте. Верить в то что там где то сверкнула молния и вот там тоже где то сверкнула молния, а потом произошла химическая реакция и химические элементы бац соединились и образовали сложное химическое вещество, которая вдруг стало бороться за свое сохранение и не просто сохранение, а ещё и воспроизведение себе подобных- это глупо. Это все равно что будучи археологом ты наткнешься на руины древнего города и первая мысль которая к тебе в голову придет- это что здесь когда то жили люди построившие этот город. Ну, а если твой коллега скажет: "неа, это просто вон там сверкнула молния и вон там тоже сверкнула молния, а потом началось землетрясение и вот таким образом и образовался этот город". Ты после этого разговора скорее всего попросишь руководство что бы твоего коллегу отстранили от работы в связи с тем что у него поехала крыша. Так вот предыдущая ситуация с молнией и химической реакцией еще более нелепая. Бытует мнение что наша вселенная хаотична. Но я с этим не соглашусь. Я уверен что наша вселенная упорядоченна. Так что ребята случайностей не бывает. Случайного везения просто нет. Наша вселенная не хаотична, а упорядоченна. Просто ставьте цели и достигайте их. И верьте что у вас тоже может получиться. Не сдавайтесь ребята. Мой девиз в жизни такой: Терпеливо Активно Учитесь Хорошим Искренним Делам. Запомните эту аббревиатуру. И пусть этот девиз сопровождает вас везде.
через тернии ( г-код) к звездам , от одной , потом к другой . только в спокойствии и с огромным интересом нужно продвигаться в перед , не понимаю тех кто живет с желчью и с завистью ....... Спасибо за идеи и добрые мысли !!!!!!!!
Идея Файлера том, что ты не можешь одевать две шапки одновременно. Если ты хочешь писать код, то одеваешь шапку кодера и пишешь код. Если видишь необходимость улучшения, то одеваешь шапку рефакторинг и улучшаешь. Но не делаешь и то и другое одновременно. Это есть в книге Рефакторинг Фаулера. Шапка - это просто метафора, которая указывает на то, что нельзя носить две шапки одновременно. Я скриншот с презентации Фаулера повесил у себя в телеграмме, можешь зайти и посмотреть.
нужно стараться в начале писать clean code, хотябы базовые приципы такие как - выделять код в отдельные функции-методы по смыслу. - страться назыть переменые лонично Мне тяжело читать страницу кода с одной функцией
Я разделяю чистый код и читабельный и поэтому я в видео сказал, если код читабельный, то это хороший кандидат для коммита. Чистота для каждого своя. Читабельность тоже, но код с функцией в страницу - это нечитабельный.
Это как получается - я пишу код, понимаю что тут можно написать лучше, но не делаю этого, пишу херово, говоря себе что я вернусь потом может быть и напишу нормально? Нет уж, меня такой подход не устраивает. Если можешь лучше сделать прямо сейчас делай лучше прямо сейчас. Я могу согласиться только с тем, что если ты сейчас понимаешь что то что ты написал херово, но ты не знаешь как сделать это лучше - то да, можно пока оставить и вернуться потом со свежей и еще раз подумать. Но специально писать плохо, я бы никому не рекомендовал. Потом мы все знаем правило нет ничего более вечного чем временное. Ну или еще могу согласиться, если ты понимаешь что ты сразу после написания кода будешь его рефакторить, то да можно сначала решить задачу, а потом думать как улучшить код, но точно не оставлять в таком виде.
На эту тему делал как то свое видео с тезисом "Писать гавнокод это нормально", но с разбором конкретного примера как он возникает и как его отрефакторить, тут затравка ua-cam.com/video/l58fiWuGXko/v-deo.html и есть продолжение на моем канале ...
В яндексе хорошее интервью?) ну да, очень) По этому наверное огромное кол-во программистов разного уровня просто обходят эту конторку стороной, а те кто там работают стараются оттуда ливнуть потому что считают, что наличие "опыта" в яндексе дает им какие-то преимущества в других компаниях. Какая то инфоциганщина.
Согласен! Говнокодил несколько дней, сегодня рефакторил чтобы поднять производительность :) Действительно правильный подход! За красоту не парюсь, лишь бы компактно и понятно. Ида, закон автомеханика: в работающий механизм не лазят!
Злых людей очень много я сделал проект два года назад большой 100% одна логика классный и до сих пор этой программой пользуюсь но меня так за хейтали сказали что все говно то что я передовал вектор по значению а не по ссылки и сказали что каждый мой проект хуже другого я аж стиснялся показывать код хотя он вполне читабельный
У меня есть предположение что твиттер - это наглядное представление "ошибки выжившего": адекватные люди просто меньше комментируют, либо, вообще, реже заходят в твиттер.
Многие порядочные люди, заходя в Твиттер, начинают жутко гадить, врать и выводить на эмоции. В жизни возвращаются к этичному поведению, и начинают оправдываться, что Твиттер для того и предназначен. У меня только одно предположение - виновато ограничение на короткие посты
@@Sander38rus это просто место для безопасного слива эмоций без последствий, как и другие соцсеточки в целом. в некоторых странах за вербализацию своих мыслей собеседнику можно получить по лицу, что дисциплинирует. Обратной стороной этого служит меньший градус недовольства в реальном мире, что порой губительно для общества
Мне кажется, что проблема современного айти, как и нынешнего поколения, в том, что когда чью-то работу критикуют, то людям стало проще назвать человека токсичным, чем решать проблему. Этакий бодипозитив в мире айти. 'Это не г-код, это ты просто ты токсичный".
Привет Михаил. К сожалению, почему-то раньше не видел ваши видео, по ссылке от Алексея перешёл. Посмотрел несколько роликов, зашло. У вас просто и доступно получается доносить инфу, продолжайте в том же духе. Спасибо за ваш контент🤝. Всех благ вам!
Спасибо
Это видео надо включить в список обязательных к просмотру для всех новичков. Ведь именно АГРЕССИВНАЯ критика может на корню деморализовать человека и он окончательно потеряет и без того не крепкую веру в себя в этом деле. Так что писать говнокод в самом начале это не страшно. А с большим опытом тем более не страшно :- ))
А с большим опытом уже все равно, что скажут критики
Да, действительно, это как глоток свежего воздуха, от Михаила
Хорошие советы! Часто ловлю себя на том, что пытаюсь отрефакторить код на этапе создания фичи) в итоге темп замедляется, а выхлопа особого это не дает.
Но в некоторых случаях, я считаю, нужно писать сразу чистый и масштабируемый код (насколько это возможно), особенно когда заказчики постоянно меняют ТЗ) иначе получаешь кашу, которую даже мэйнтейнер не может поддерживать. Встречал такие проекты, это ад
Сразу прям чистый не всегда можно написать. Если поставить цель писать читаемый код, поддерживаемый код, вот это можно достигнуть на первых этапах, а дальше полировать по мере надобности.
@@programisli почему сразу нельзя? Если фичи небольшие и разработчик годами использует одни и те же инструменты, вполне реально с ходу писать поддерживаемый код с минимумом рефакторинга.
Исключения здесь - когда фича действительно большая, либо ТЗ нечёткое.
Когда-то давно услышал такую мысль: "Хороший код - это не написанный код"
То есть создавая код мы создаем Зло. Увеличиваем затраты на понимание, сопровождение и в итоге стоимость поддержки. При том часть кода ни когда не дойдёт до прода.
Поэтому кода должно быть всего лишь достаточно :) И не больше. А критерии достаточности разные в зависимости от условий.
P.S. Поговорку про грязь слышал от бабушки))
Здравстуй читатель. Хочу сказать тебе: 'Не отчаивайся'. Все у тебя может получиться. Не нужно думать что те у кого получилось достичь своих целей им просто случайно повезло. Это только так кажеться. Поверьте случайного везения не бывает.
Ребята хочу вам сказать что случайностей вообще не бывает и вот почему:
Представь себе выходишь ты в сад и видишь что все деревья в твоем саду повалены. Какая мысль придет к тебе в голову? Вполне возможно ты подумаешь что ночью прошел сильный ураган поваливший деревья. А теперь представь себе что ты также выйдешь в свой сад и увидишь что не все деревья в твоём саду повалены, а каждое третье дерево повалено. Какая мысль придет к тебе в голову на этот раз? Ну врят ли ты здесь все спишешь на ураган. Вполне возможно ты подумаешь что ночью поорудовал какой нибудь злоумышленник.
А теперь представь что у тебя в коробке 3000 (три тысяча) буквенных символов. И представь что ты подкинул все эти буквы в воздух. Упав на асфальт какова вероятность что эти буквы образуют какое нибудь слово? А какова вероятность что эти буквы образуют какое нибудь предложение? А какова вероятность что эти буквы образуют какой нибудь абзац? А какова вероятность что эти буквы образуют какой нибудь текст? А какова вероятность что эти буквы образуют какую нибудь книгу? Вероятность равна почти нолю.
А ведь двойная спираль днк намного сложнее устроена чем текст на асфальте.
Верить в то что там где то сверкнула молния и вот там тоже где то сверкнула молния, а потом произошла химическая реакция и химические элементы бац соединились и образовали сложное химическое вещество, которая вдруг стало бороться за свое сохранение и не просто сохранение, а ещё и воспроизведение себе подобных- это глупо.
Это все равно что будучи археологом ты наткнешься на руины древнего города и первая мысль которая к тебе в голову придет- это что здесь когда то жили люди построившие этот город. Ну, а если твой коллега скажет: "неа, это просто вон там сверкнула молния и вон там тоже сверкнула молния, а потом началось землетрясение и вот таким образом и образовался этот город". Ты после этого разговора скорее всего попросишь руководство что бы твоего коллегу отстранили от работы в связи с тем что у него поехала крыша.
Так вот предыдущая ситуация с молнией и химической реакцией еще более нелепая.
Бытует мнение что наша вселенная хаотична. Но я с этим не соглашусь. Я уверен что наша вселенная упорядоченна.
Так что ребята случайностей не бывает. Случайного везения просто нет. Наша вселенная не хаотична, а упорядоченна. Просто ставьте цели и достигайте их. И верьте что у вас тоже может получиться. Не сдавайтесь ребята.
Мой девиз в жизни такой:
Терпеливо
Активно
Учитесь
Хорошим
Искренним
Делам.
Запомните эту аббревиатуру. И пусть этот девиз сопровождает вас везде.
Спасибо вам за вашу работу 👍. Продолжайте!
Здравстуй читатель. Хочу сказать тебе: 'Не отчаивайся'. Все у тебя может получиться. Не нужно думать что те у кого получилось достичь своих целей им просто случайно повезло. Это только так кажеться. Поверьте случайного везения не бывает.
Ребята хочу вам сказать что случайностей вообще не бывает и вот почему:
Представь себе выходишь ты в сад и видишь что все деревья в твоем саду повалены. Какая мысль придет к тебе в голову? Вполне возможно ты подумаешь что ночью прошел сильный ураган поваливший деревья. А теперь представь себе что ты также выйдешь в свой сад и увидишь что не все деревья в твоём саду повалены, а каждое третье дерево повалено. Какая мысль придет к тебе в голову на этот раз? Ну врят ли ты здесь все спишешь на ураган. Вполне возможно ты подумаешь что ночью поорудовал какой нибудь злоумышленник.
А теперь представь что у тебя в коробке 3000 (три тысяча) буквенных символов. И представь что ты подкинул все эти буквы в воздух. Упав на асфальт какова вероятность что эти буквы образуют какое нибудь слово? А какова вероятность что эти буквы образуют какое нибудь предложение? А какова вероятность что эти буквы образуют какой нибудь абзац? А какова вероятность что эти буквы образуют какой нибудь текст? А какова вероятность что эти буквы образуют какую нибудь книгу? Вероятность равна почти нолю.
А ведь двойная спираль днк намного сложнее устроена чем текст на асфальте.
Верить в то что там где то сверкнула молния и вот там тоже где то сверкнула молния, а потом произошла химическая реакция и химические элементы бац соединились и образовали сложное химическое вещество, которая вдруг стало бороться за свое сохранение и не просто сохранение, а ещё и воспроизведение себе подобных- это глупо.
Это все равно что будучи археологом ты наткнешься на руины древнего города и первая мысль которая к тебе в голову придет- это что здесь когда то жили люди построившие этот город. Ну, а если твой коллега скажет: "неа, это просто вон там сверкнула молния и вон там тоже сверкнула молния, а потом началось землетрясение и вот таким образом и образовался этот город". Ты после этого разговора скорее всего попросишь руководство что бы твоего коллегу отстранили от работы в связи с тем что у него поехала крыша.
Так вот предыдущая ситуация с молнией и химической реакцией еще более нелепая.
Бытует мнение что наша вселенная хаотична. Но я с этим не соглашусь. Я уверен что наша вселенная упорядоченна.
Так что ребята случайностей не бывает. Случайного везения просто нет. Наша вселенная не хаотична, а упорядоченна. Просто ставьте цели и достигайте их. И верьте что у вас тоже может получиться. Не сдавайтесь ребята.
Мой девиз в жизни такой:
Терпеливо
Активно
Учитесь
Хорошим
Искренним
Делам.
Запомните эту аббревиатуру. И пусть этот девиз сопровождает вас везде.
Михаил, отличное видео! Спасибо!
Так же у писателей. Сначала быстро фигачишь черновик, потом переписываешь, реструктурируя, потом уже вычитки.
Стивен Кинг называл это открытой и закрытой дверью. Первый раз ты пишешь для собственного понимания (с закрытой дверью), а второй раз чтоб тебя поняли все остальные
Еще в книги "Чистый код" говорится, что без тестов код отдавать как-то не правильно...если "говнокод" работает под тестами, то это великолепно)
В реалиях, чаще код без тестов и попадает на Code Review, и без чистоты в коде сложно судить о его работоспособности
Я верю, что попаду в фирму где пишут тесты) когда нибудь
Или делают вид, что пишут. Я работал там, где тесты были обязательными, но их писали только для вида
@@programisli тоже грустный сценарий, так я не хочу :)
В таком случае можно подсидеть техлида, потому что с таким подходом провалы на проекте будут частые
Я делаю так, пишу метод не сильно смотря на его красоту, как только с ним заканчиваю, потом его рефакторю уже
У меня обычно итерациями мелкими происходит смена 2х шапок на автомате, пишешь кусочек кода средней паршивости качества, в какой то момент рефакторишь, меняешь имена, разбиваешь по функциям, генерикам. В какой то момент уже более сложный рефакторинг затрагивающий кучу всего. Без всяких книжек, по опыту)
Стараюсь писать красивый код, но если время поджимает и ничего не придумывается красивого приходится делать так как получается, главное выполнить задачу
Даже если время пожимает, код все же должен оставаться читабельным. А до идеала можно довести потом.
@@programisli Скажите с чего начать хочу работать в сфере айти... смотрю вас постоянно спасибо
@@сергейвинстон направление сперва выбери
@@programisli если разработчик
Прекрасный канал я нашёл. Отдельное уважение за C#
С примера про поездку за хлебом в голос посмеялся) спасибо
Полностью подписываюсь под каждым словом. Если решать задачу и сразу думать как ее оптимизировать, мысль по древу растеклась. Неважно, кодите вы или задача из любой другой сферы деятельности. Сначала сделаем, потом улучшаем. Залог производительности. Хорошо, если методы решения сразу оптимальны. Для этого приходится развиваться… Вроде демагогия, но это блин работает
каждую новую функцию/метод/переменную называю foo, а следющию bar. бессоница больше не мучает.
Комментаторам можно посоветовать попробовать так же без отрыва девять часов с нуля написать свою фичу
Я пишу сейчас и выкладываю на бусти, но с перерывами
Как там Кнут говорил: "предварительная оптимизация, корень всех зол". Но всё-таки каких-то рамок, SOLID и код стайла нужно придерживаться.
Конечно нужно писать нормально, иначе потом никакой рефакторинг не поможет.
Просто спасибо! полезные мысли услышал. Я новичок в этой сфере и каждый раз когда смотрел чужой код который более красиво написан, замарачивался, что бы переписать свой, хотя он работает и хорошо читаем. Вместо того, что бы дальше изучать язык и кодить, что то новое.
При сопровождении главное консистентность! Если в проекте год говно, значит пишем такое же говно как вокруг, если не говно - пишем так же хорошо.
Если смешивать гавно с золотом, золота не получается. Нужно или убирать мусор или уж оставлять так
Дополнительно.
Плохой код, если его не убрать, делает проект плохим ( с т з программиста), т к последующие исправления будут требовать больше нервов и денег.
Плохой код пишется из-за незнания всех деталей решения.
Рефакторинг надо делать на следующий день после написания решения.
Рефакторинг обязательно включается в планируемые сроки.
Нельзя релизить плохой код (это установка, т к выполнить это в принципе невозможно, но с этой установкой можно существенно его уменьшить). Его исправление после релиза может стоить существенно дороже чем его оставление.
В случае с личным годом рефакторинг легко организовать. В случае с компаниями - розно понимание со стороны бизнеса, что рефакторинг необходим
@@programisli Согласен. Но, даже когда топы понимают необходимость рефакторинга (видят что теряют миллионы из-за плохого кода), его всё равно как правило не делают. Во-первых, нужны о-очень высококлассные специалисты; во-вторых, возможные потери от ошибок часто превышают плюсы. В моей практике, как правило, все (и я в том числе) переходили на другой движок / архитектуру / новую-версию, если продукт уже эксплуатируется.
Ты очень тошнотворный человек
"Если работает не трогай" - верно не всегда. Есть случай, когда даже если ничего не понялось - трогать надо... Это ситуация, когда достаточно регулярно меняются фреймворки. Потому что перескакнуть с фреймворка скажем 3.0 на 4.0, если он выходит там раз в полгода год - это легко, но вот если переходить с 2.0 на 8.0 - это уже может вылезти куча проблем, которые надо будет решать.
В .NET например достаточно один раз в 2 версии обновлять (как раз с LTS До LTS), а вот в каких нибудь Жабоскриптовых можно и 3-4 версии пропустить, но потом - обязательно надо - даже если работает и изменений не требуется - делать свитч. Потому что иначе можно огрести проблем - что-то перестанет поддерживаться, какие-то сисьюрити апдейты.....
НА БРОСКИ С КОНЦЕПТА АЛЬФЫ КОДА
ШАГ ЗА ШАГОМ ОТ ЛВЛ К ЛВЛ ОТ 1 ДО 100 ПРОГРЕСС
Говнокод необходим, вот что я скажу. Без него никак.
НА ЛЕГКОЙ ВОЛНЕ НА ЧИЛЕ..............
Всё сильно зависит. Если это ваш личный проект или проект какой-нибудь компании "рога и копыта", то да, тут говнокод он имеет место быть, чтобы когда-нибудь к нему вернуться. Во первых потому что скорее всего у вас не будет ревьювера, а если и будет, то он либо лоялен к вам, либо тоже любитель говнокодить
Но если вы будете отправлять патчи в какой нибудь gcc или ядро линукса, то там уже такое вряд-ли прокатит
Чел не листал ядро Линукса...
Оба принципа хорошие, только со вторым (про постоянные улучшения) важно не переборщить) потому что если улучшать всё подряд, то на ревью будет сложно смотреть такой скоуп изменений, суть задачи потеряется в улучшениях
Улучшать нужно только то, что изменяешь.
Как говорится, не лезь в рабочий агрегат)
Работать в разных шапках вроде придумал Уолт Дисней :)
Не знаю, как Дисней, а у Фаулера точно было, я в телеграмме скрин выложил
делаем как можно проще KISS и строим сложные системы по всем законам только по мере надобности
Всегда придерживаюсь правила - сначала код должен работать и выполнять поставленную задачу, потом наводим красивости. Самый красивый и оптимизированный код в мире нафиг не нужен если дедлайн был 2 дня назад.
Большое спасибо. Это важная тема.
Привет тоже смотрел видео Алексея ответ на критику был очень аргументирован. Михаил, а что вы думаете про chatgpt , на самом дауны уже не нужны и в будущем программисты будут нужны но не в таком количество? Вообще было б интересно посмотреть про эту тему вообще видео.
Пока еще мы не дошли до того, чтобы заменить программистов. chatGPT заменяет программистов не больше, чем библиотеки. В телеграмме на эту тему общались - менеджеры не могут программистам задать задание, а уж искусственному интеллекту пока и близко не смогут. Может когда-нибудь, но мы еще далеко не там
короч, даже добавить особо нечего
Прошу скинуть канал с Лёшей. Оч интересно посмотреть.
Ссылка в описании
@@programisli блин, даже и не подозревал, что он проводит стримы. Его смотрел только из-за ноутбуков, о которых он рассказывал.
Смотрю ваши видео взахлёб и не могу нарадоваться, желаю всем смотрящим найти такого же критически мыслящего и банально понимающего людей, ментора, который не боится говорить как всё есть на самом деле. Неужели так мало людей это ценят раз вокруг у всех на кого ни наткнись по 2 короны дома лежит?)
Здравстуй читатель. Хочу сказать тебе: 'Не отчаивайся'. Все у тебя может получиться. Не нужно думать что те у кого получилось достичь своих целей им просто случайно повезло. Это только так кажеться. Поверьте случайного везения не бывает.
Ребята хочу вам сказать что случайностей вообще не бывает и вот почему:
Представь себе выходишь ты в сад и видишь что все деревья в твоем саду повалены. Какая мысль придет к тебе в голову? Вполне возможно ты подумаешь что ночью прошел сильный ураган поваливший деревья. А теперь представь себе что ты также выйдешь в свой сад и увидишь что не все деревья в твоём саду повалены, а каждое третье дерево повалено. Какая мысль придет к тебе в голову на этот раз? Ну врят ли ты здесь все спишешь на ураган. Вполне возможно ты подумаешь что ночью поорудовал какой нибудь злоумышленник.
А теперь представь что у тебя в коробке 3000 (три тысяча) буквенных символов. И представь что ты подкинул все эти буквы в воздух. Упав на асфальт какова вероятность что эти буквы образуют какое нибудь слово? А какова вероятность что эти буквы образуют какое нибудь предложение? А какова вероятность что эти буквы образуют какой нибудь абзац? А какова вероятность что эти буквы образуют какой нибудь текст? А какова вероятность что эти буквы образуют какую нибудь книгу? Вероятность равна почти нолю.
А ведь двойная спираль днк намного сложнее устроена чем текст на асфальте.
Верить в то что там где то сверкнула молния и вот там тоже где то сверкнула молния, а потом произошла химическая реакция и химические элементы бац соединились и образовали сложное химическое вещество, которая вдруг стало бороться за свое сохранение и не просто сохранение, а ещё и воспроизведение себе подобных- это глупо.
Это все равно что будучи археологом ты наткнешься на руины древнего города и первая мысль которая к тебе в голову придет- это что здесь когда то жили люди построившие этот город. Ну, а если твой коллега скажет: "неа, это просто вон там сверкнула молния и вон там тоже сверкнула молния, а потом началось землетрясение и вот таким образом и образовался этот город". Ты после этого разговора скорее всего попросишь руководство что бы твоего коллегу отстранили от работы в связи с тем что у него поехала крыша.
Так вот предыдущая ситуация с молнией и химической реакцией еще более нелепая.
Бытует мнение что наша вселенная хаотична. Но я с этим не соглашусь. Я уверен что наша вселенная упорядоченна.
Так что ребята случайностей не бывает. Случайного везения просто нет. Наша вселенная не хаотична, а упорядоченна. Просто ставьте цели и достигайте их. И верьте что у вас тоже может получиться. Не сдавайтесь ребята.
Мой девиз в жизни такой:
Терпеливо
Активно
Учитесь
Хорошим
Искренним
Делам.
Запомните эту аббревиатуру. И пусть этот девиз сопровождает вас везде.
через тернии ( г-код) к звездам , от одной , потом к другой . только в спокойствии и с огромным интересом нужно продвигаться в перед , не понимаю тех кто живет с желчью и с завистью ....... Спасибо за идеи и добрые мысли !!!!!!!!
Подскажите пожалуйста что значит менять шапку
Идея Файлера том, что ты не можешь одевать две шапки одновременно. Если ты хочешь писать код, то одеваешь шапку кодера и пишешь код. Если видишь необходимость улучшения, то одеваешь шапку рефакторинг и улучшаешь. Но не делаешь и то и другое одновременно. Это есть в книге Рефакторинг Фаулера. Шапка - это просто метафора, которая указывает на то, что нельзя носить две шапки одновременно. Я скриншот с презентации Фаулера повесил у себя в телеграмме, можешь зайти и посмотреть.
@@programisli спасибо
у всех одна шапочка, никто ничего не будет рефакторить
Ну не знаю, у нас рефакторинг делают
Согласен
Я из-за невероятной токсичности, огромного количества ненормативной лексики, беспонтовых нюдсов удалил свой аккаунт в твиттере.
Иногда тоже появляются мысли удалить, токсичность просто на высочайшем уровне.
Про Лешину критику критики - бинго!! 🤪
Я сказал в видео, что критика норм, когда она аргументирована и ответ Леши более аргументирован.
@@programisli а мне понравилось про вежливость и конструктивность Леши, и очень емкое его определение про гуид 🥴
Мишель поговори пжалуста про C, C++
Отличные интересные ролики!
Антонио
нужно стараться в начале писать clean code, хотябы базовые приципы такие как
- выделять код в отдельные функции-методы по смыслу.
- страться назыть переменые лонично
Мне тяжело читать страницу кода с одной функцией
Я разделяю чистый код и читабельный и поэтому я в видео сказал, если код читабельный, то это хороший кандидат для коммита. Чистота для каждого своя. Читабельность тоже, но код с функцией в страницу - это нечитабельный.
Если говнокод, это проблема. То это не моя проблема 😉
А если это твой код говнокод?
@@programisli Так я и говорю, мой говнокод это не моя проблема ))
Это как получается - я пишу код, понимаю что тут можно написать лучше, но не делаю этого, пишу херово, говоря себе что я вернусь потом может быть и напишу нормально? Нет уж, меня такой подход не устраивает. Если можешь лучше сделать прямо сейчас делай лучше прямо сейчас. Я могу согласиться только с тем, что если ты сейчас понимаешь что то что ты написал херово, но ты не знаешь как сделать это лучше - то да, можно пока оставить и вернуться потом со свежей и еще раз подумать. Но специально писать плохо, я бы никому не рекомендовал.
Потом мы все знаем правило нет ничего более вечного чем временное.
Ну или еще могу согласиться, если ты понимаешь что ты сразу после написания кода будешь его рефакторить, то да можно сначала решить задачу, а потом думать как улучшить код, но точно не оставлять в таком виде.
Во первых, почему ты пишешь херово?
Во вторых, шапки можно менять хоть каждые пять минут. Закончил писать функцию, если херово, рефакторинг.
КТО ВСЁ-ТАКИ ПИСАЛ ПРО ШАПКИ??
Martin Fowler, помять меня не подвела, я нашел на его сайте презенташку. Сейчас начал читать последнее издание его книги рефакторинг
@@programisli ❤❤❤
На эту тему делал как то свое видео с тезисом "Писать гавнокод это нормально", но с разбором конкретного примера как он возникает и как его отрефакторить, тут затравка ua-cam.com/video/l58fiWuGXko/v-deo.html и есть продолжение на моем канале ...
В яндексе хорошее интервью?) ну да, очень) По этому наверное огромное кол-во программистов разного уровня просто обходят эту конторку стороной, а те кто там работают стараются оттуда ливнуть потому что считают, что наличие "опыта" в яндексе дает им какие-то преимущества в других компаниях. Какая то инфоциганщина.
Твиттер - это тру.
Согласен! Говнокодил несколько дней, сегодня рефакторил чтобы поднять производительность :) Действительно правильный подход! За красоту не парюсь, лишь бы компактно и понятно. Ида, закон автомеханика: в работающий механизм не лазят!
Поговорим о коде, который чистое говно!
Не понял, почему ты такой вывод сделал
байтящий заголовок))
Если это байтящий, то какой нет для такого видео?
Как говорится, если в вашем проекте нет говнокода - у меня для вас плохие новости
Злых людей очень много я сделал проект два года назад большой 100% одна логика классный и до сих пор этой программой пользуюсь но меня так за хейтали сказали что все говно то что я передовал вектор по значению а не по ссылки и сказали что каждый мой проект хуже другого я аж стиснялся показывать код хотя он вполне читабельный
Думаю что Твиттер виноват.. как их аву вижу хочется чужой код обгадить..)))
Тот случай, когда не знал, но писал код по Мартину
Только если именовал и оформлял верно. Можно срезать углы, но главное не мусорить
Есть говнокод и есть говнокритика.
Согласен. KISS и YAGNI принципы.
Да, и эти принципы тоже нужно было упомянуть в видео, спасибо.
KISS и YAGNI никак не относятся к г-коду
У меня есть предположение что твиттер - это наглядное представление "ошибки выжившего": адекватные люди просто меньше комментируют, либо, вообще, реже заходят в твиттер.
Я редко захожу и комментирую, потому что просто не хочу.
Многие порядочные люди, заходя в Твиттер, начинают жутко гадить, врать и выводить на эмоции. В жизни возвращаются к этичному поведению, и начинают оправдываться, что Твиттер для того и предназначен.
У меня только одно предположение - виновато ограничение на короткие посты
@@Sander38rus это просто место для безопасного слива эмоций без последствий, как и другие соцсеточки в целом. в некоторых странах за вербализацию своих мыслей собеседнику можно получить по лицу, что дисциплинирует. Обратной стороной этого служит меньший градус недовольства в реальном мире, что порой губительно для общества
А богатые уроды его просто покупают))
Я думаю, что вся проблема кроется в токсичности современной аудитории, а не в чистом (говняном) коде 😊
Мне кажется, что проблема современного айти, как и нынешнего поколения, в том, что когда чью-то работу критикуют, то людям стало проще назвать человека токсичным, чем решать проблему. Этакий бодипозитив в мире айти. 'Это не г-код, это ты просто ты токсичный".
Орешек Виталий
Ты про Батю?
Первый!
Второй