10 советов от Senior для начинающих программистов

  Рет қаралды 85,861

Роман Сакутин

Роман Сакутин

Күн бұрын

Пікірлер: 328
@nooftube2541
@nooftube2541 3 жыл бұрын
"Если вы не понимаете GRASP, паттерны вас не спасут." GRASP - General Responsibility Assignment Software PATTERNS
@lolmaster7459
@lolmaster7459 3 жыл бұрын
Хорошие советы. Четвёртый год учусь, но все ещё ощущение, что до джуна не дотягиваю - балдёж
@walson4708
@walson4708 3 жыл бұрын
Да, такое же ощущение, 4 года варюсь в этом говне, на первый год обучения был экспоненциальный рост, потом стагнация, потом упадок. Сейчас я ниже уровня первого года, вообще не знаю, что делать.
@const1988
@const1988 3 жыл бұрын
@@walson4708 как такое может быть? Ты нашел работу?
@walson4708
@walson4708 3 жыл бұрын
@@const1988 Привет, нет, мало того, я попал в армию :с. Но ничего, осталось 51 день, пока был в армии удалось наладить контакт с 2 паблишерами (хоть что-то для начала), и собрать небольшую команду: Я: отвечаю за геймдизайн, документацию, архитектурную часть и игровую аналитику(с ней пока плохо) 2 3D artist'a - один больше шарит по окружениям, умеет работать по тз, в срокам и по пайплайну. Второй - любитель, но за него поручился первый. Sound designer - много лет пишет эмбиенты и не только, есть своя студия звукозаписи. С художниками проблема пока, хотя бы по интерфейсам найти. Для HK сегмента такой шарашкиной конторы хватит за глаза, единственное, когда на волю выйду, поищу второго программиста.
@ruslanowlysadykov1558
@ruslanowlysadykov1558 3 жыл бұрын
@@walson4708 имхо пробовать в инди геймдев без опыта работы в проф. команде - заведомо провальный план. Лучше устрой себе марафон тестовых заданий и разбора их ошибок, устройся джуном в тот же HK, посмотри как изнутри что работает и потом уже если захочешь рискнуть - пойдешь в инди. да и зачем такая команда, больше 90% HK игр не юзают уникальные звуки, их просто покупают с хостингов. с модельками тоже самое, быстрее и дешевле купить ассет, чем заставлять работать 3дшника, при том что никаких гарантий нет, возможно ваш видос не пройдет CTR тест и вся работа зря.
@Tokarevbest
@Tokarevbest 2 жыл бұрын
Говорят джуном за полгода можно стать.
@АлександрКузнецов-ш4н
@АлександрКузнецов-ш4н 3 жыл бұрын
"комментарии это костыль" - комментарии это инструмент и в определенных ситуациях очень полезный. Может в играх это не так важно, но в крупных корпоративных проектах случаи когда залазиешь в какую-нибудь entity (\dto\poco), видишь ее поля и не можешь быстро понять а зачем они именно нужны (бизнес-смысл) - ситуация не редкая. И искать все ссылки на нее чтобы перечитать весь код или искать документацию в конфлюенсе, конечно, вариант, но это боль. Код это в первую очередь алгоритм и передача бизнес-контекста это лишь его побочная функция. Вкратце: если над некоторыми вещами вы будете оставлять комменты со ссылкой на документацию\таску, то коллеги вас будут любить
@КлимНуралин-у4у
@КлимНуралин-у4у 3 жыл бұрын
Нет такой вещи которую нельзя декомпозировать даже в этом случае, но людям лень, и по сути они и допускают комментарии потому что им лень, и кстати, дто считается плохой идеей, Active Objects лучше делать, но тут 100% речь про легаси
@ОлегПронин-и1т
@ОлегПронин-и1т 2 жыл бұрын
@@КлимНуралин-у4у как будто нет никаких других причин, чтобы оставлять комментарии. Я покупаю скрипты у программистов и в коде ориентируюсь плохо. Комментарии мне помогают понимать как быстро сделать то-то и то-то. Точно так же я оставляю комментарии в сервисах, где строю блоки без кода. Потому что я то всё понимаю. А туда может зайти заказчик, проджект, помощник чей-нибудь. И им придётся вызывать меня из-за какой-то мелочи, которую они могли бы решить и разобраться сами, если бы там были комментарии.
@КлимНуралин-у4у
@КлимНуралин-у4у 2 жыл бұрын
@@ОлегПронин-и1т вообще это тема того, что до меня недавно дошло. Создание объектной модели это достаточно эвристический процесс, иерархичность модели и контракт объектов позволяет делать очень понятным всё что происходит в коде и достаточно исчерпывающим, только за счёт того что человеку проще составить аналогию из реального мира для того что он читает в коде. У меня вот проект стратегии есть, есть понятия "Кусок карты", "Прямоугольник выделения куска карты", "Стоимость куска карты", так и названы классы, кусок карты агрегирует стоимость куска карты и прямоугольник выделения. Из этого простого примера мы уже знаем где искать функциональность в рамках этих понятий. Мы можем просто утилити классы создать под детали реализации этих функциональностей, если ты немного в математике шаришь то в принципе будешь приватные методы называть математическими именами, офигенно а? И дело в том, что всё это для более сложных систем тоже работает, только нужно к построению модели отнестись серьезнее а не на ходу придумывать. А в ситуации где хочется сделать человекопонимаемые модули реализации объекта в модели можно пользоваться MV паттернами, вообще всё предельно просто становится. В ситуации где ты не пишешь с нуля систему а допиливаешь что то в крупной это не значит что ты не можешь пользоваться приёмами построения объектной модели и не придумать подходящее имя для куска кода что ты пишешь
@КлимНуралин-у4у
@КлимНуралин-у4у 2 жыл бұрын
@@ОлегПронин-и1т на самом деле да, если куча авторов кода и как то всё надо связывать то по идее да то это нереально без комментариев, но это та самая ситуация где по идее проект только для первой версии в основном чтоли
@dmitrikonnov922
@dmitrikonnov922 2 жыл бұрын
Я считаю, что комментарии должны быть написаны строго по стандартам. В библиотечных классах и утилитах каждый публичные метод должен иметь стандартизованный комментарий. Мы же все любим, когда идешечка нам говорит, что метод делает, какие параметры принимает, что возвращает, какие исключения кидает. И ещё примерчики. Но вот комментирвание отдельных строк кода - это ебанина, только если мы не используем какие-то магические значения. Ну и комментирование не по стандарту - это бесполезное комментирование.
@vladislavvorzhev2375
@vladislavvorzhev2375 3 жыл бұрын
Много спорного, но насчет комментариев - можно открыть практически любой серьезный open source проект, и увидеть, что там в каждом файле есть комментарии с пояснениями. Хотя с утверждением о том, что хороший код - это самодокументируемый код, поспорить сложно.
@cimweed18
@cimweed18 3 жыл бұрын
Мне нравится комментировать методы. Если кто-то считает это моветоном, пусть закроет глазки.
@cimweed18
@cimweed18 3 жыл бұрын
@@lekretka да у меня вообще проблемы с этим. Поэтому не работаю в компаниях
@АнтонДудкевич
@АнтонДудкевич 3 жыл бұрын
@@alexandr_sirota ну да ну да. А бизнес ведь очень заинтересован, чтобы новички хер разгребли существующий код.
@Kot-Alenya
@Kot-Alenya 3 жыл бұрын
Правильный код - это идеальный баланс его красоты , удобства , надёжности и производительности.
@bratttn
@bratttn Жыл бұрын
чушь! правильный код, это код в котором разберётся и добавит новую фичу, тот, кто его не писал.
@imalllio
@imalllio Жыл бұрын
​@@bratttnчушь! Правильный код это тот, который пушистый, вибрирующий, теплый и мяукающий!
@stanislavsh6582
@stanislavsh6582 3 жыл бұрын
Уже относительно размышлений о том что язык просто маленькая деталька возникают вопросы. Ну как. Мы можем много вещей делать на плюсах. Плюсы - великолепный язык. Но сможет ли человек который знает, допустим, шарп - въехать за неделю в проект на плюсах которому 10 лет, если этот человек - мидл-разработчик, который работал n лет с шарпом, а плюсы последний раз видел на лабах в вузе? А наоборот? Да нет. Нужно же знать не только язык и общие вещи, типа структур данных, алгоритмов, паттернов, нужно понимать модель памяти, как считаются ссылки, как в разных языках реализована работа с потоками, плюс минимально историю знать. Вот допустим в шарпе - есть Interlocked, в C++98 - не было как-то вынесено в стандарт многопоточное программирование и в итоге - кто как мог, так и делал, плюс в одних компиляторах i++ - потокобезопасно выполняется, у других - нет, у третьих - зависит. Я это к чему. К тому что специфики много и ее нужно знать для того чтобы не стрелять себе в колено. И ведь такие баги ты не на этапе компиляции поймаешь и даже тестами так просто не покроешь Ладно, смотрим дальше. Относительно стандартов и говнокода. Это вообще с какой-то стороны странная фигня началась. Ну как, при чем тут стандарты и прочее? Если я не использую '_' в именовании полей - теперь весь тот код внезапно стал говнокодом? А в остальном стандарты - нихрена не говорят. Они говорят как мы струкрурируем проект, как именуем что-то, сколько пробелов нужно вместо таба использовать и как оформать комментарии. Чисто по стандартам шарпа - я могу вполне взять и копипастнуть весь текст документа прямо в исходный код, вместо того чтобы из ресурсов его получать, в итоге - читать это будет невозможно, но все еще стандарты не нарушены. Получаем ситуацию - говнокод есть, стандарт не нарушен. Это к чему. К тому что говнокод, в привычном смысле: Оно делает то что от него хотят, но трогать это - не хочется. Все. Стандарты и объективность это сбоку стоит таки. Да, про опытных разработчиков. Вот есть офис дедов что на си с 2001 года пишут. Опытные? Да офигеть какие. Я прихожу красивый-молодой, пишу на шарпе, они теперь тоже. Но они - привыкли экономить на спичках, плюс им сама концепция ООП неприятна, хотя они и пишут на шарпе. Я делаю классы, делаю тесты, они хреначат статикой, а на тесты кладут болт(зачем тесты, если такие есть отдел QA? пусть они и тестируют). Если я позову их и попрошу отревьюить мой код - он для них будет говнокодом, как и их код для меня, потому что с одной стороны - процедурное программирование, с другой ООП и мы не сойдемся во мнении, по их логике - все эти SOLID - придумали евреии чтоб русских программистов дурачить и заставлять писать больше кода. А кто тут прав-то? Они опытны и при этом им не нравится ООП, я тоже не вчера кодить начал но мне сам подход ООПшный сразу вкатил. А сбоку стоит адепт функциональщины и рассказывает про лямбда-исчисление и что грядет страшный суд, на котором все кто не придут к функциональщине - будут наказаны. С остальным в принципе согласен. Да. Вот. Да.
@RGcrasyRG
@RGcrasyRG 3 жыл бұрын
Мне, например, дико не впирает концепция ООП когда классы перестают отображать объекты реально мира. А вот функциональщина доставляет: пишешь функцию, она делает одно. Хочешь усложнить? Используешь функцию, которая использует функцию... и т.д. Жаль только в энтерпрайзе нужна джава\шарпы, а не хаскелл с растом.
@RGcrasyRG
@RGcrasyRG 3 жыл бұрын
@@flexxxxer ну если это про кучу синтаксического сахара, который позволяет использовать ПОДХОД фп в том же си шарпе - то это немножечко не то. Тот же синтаксис хаскела для меня кажется лаконичным и прекрасеным.
@АнтонДудкевич
@АнтонДудкевич 3 жыл бұрын
Кроме того, по конкретному языку надо знать фреймворки, стандартную библиотеку, доп.библиотеки. Понятно, что автор имел в виду, но все же, язык - не мелкая деталька.
@ArquitectoR
@ArquitectoR 2 жыл бұрын
Правильно всё пишете. Есть похожие ЯП, но есть и очень разные. Есть разные парадигмы, разные типизации, разные подходы к конкурентности и к метапрограммированию. Пока вы со всем этим разберётесь вы уже больше десятка ЯП будете знать. Ну или не захотите а это погружаться, застрянете на уровне миддла и пойдёте учить желающих войти в IT 😂
@limestoneMinecraft
@limestoneMinecraft 3 жыл бұрын
7:19 А зачем вообще для подтверждения тезиса об объективности говнокода нужно апеллировать к "объективным стандартам", принятым на каком-то волшебном великом соборе, мнению толпы "профессиональных" разработчиков и т.д., если это все не объективные критерии? Мнение собора - не объективно, мнение людей с большой татуировкой "Профессиональный разработчик" на пузе - не объективно. Почему бы просто не сказать, что критерием качества кода является предоставляемая им возможность поддерживать его с наименьшей затратой ресурсов, в частности времени? Например, когда в этом коде нужно разбираться людям, его не писавшим, либо самому автору кода после длительного перерыва в работе с ним. Как человека согласного с позицией об объективности критериев качества кода меня крайне смущает отсутствие аргументов в её защиту в словах Романа при наличии в них лишь апелляции к авторитетам.
@kirillsviderski4739
@kirillsviderski4739 3 жыл бұрын
"Никто не пишет большие классы". Рома, после этого я не плачу, мне просто сорцы анриала в глаз попали ХД
@sergeyinozemcev1070
@sergeyinozemcev1070 3 жыл бұрын
И статиков тоже достаточно, но я согласен с автором. Unreal - это плохой код.
@tyoma_yashin
@tyoma_yashin 3 жыл бұрын
Фростбайт с оберткой графического апи в 25к строк в одном файле в статике передает привет) Но да, для начала все-таки нужно знать правила, чтобы их красиво нарушать
@чибзик
@чибзик 3 жыл бұрын
класс view в андроиде с 30к строк: я для вас шутка что ли?
@Neon30
@Neon30 3 жыл бұрын
аж слеза покатилась
@babush6
@babush6 3 жыл бұрын
а автор вообще кто ? он в какой компании работал и в каких проектах участвовал ?
@Fedorlesorub
@Fedorlesorub 3 жыл бұрын
СуперДжун в очень большой компании, мне даже не дают писать код)) Больше верстка лц) Ноо, все советы сто проц рабочие, я прямо видел их реализацию у нас) Очень полезный видос, про реально важные вещи, спасибо!)
@ProkerKusaka
@ProkerKusaka 3 жыл бұрын
90% игр со статичным гейм менеджером приуныли
@R3v0ult
@R3v0ult 3 жыл бұрын
100%
@kilinar2239
@kilinar2239 3 жыл бұрын
@@R3v0ult Не 100 точно, может 99.99, я обычно через Синглтон пишу - да, да - поражайтесь глубине моего падения - антипаттерн и все такое. Но на мой взгляд он тут уместен.
@kilinar2239
@kilinar2239 3 жыл бұрын
@Гоша Ватюнга Интересно, пока не совсем понятно, буду разбираться. Спасибо.
@Diyozen
@Diyozen 3 жыл бұрын
@Гоша Ватюнга совет охуенный. Особенно, учитывая, что DI, зачастую - это тот же самый синглтон. Ещё и какие-то надмозги нашли остроумным внедрять зависимости прямо в поля.
@kilinar2239
@kilinar2239 3 жыл бұрын
@@Diyozen Всегда полезно узнать что-то новое или посмотреть на что-то с другой стороны. Полезно ли будет - посмотрим.
@TedFanat
@TedFanat 3 жыл бұрын
Соман Ракутин как всегда правду матку рубит, хуярит! Так держать!
@Sergey.Aleksandrovich.P-37rus
@Sergey.Aleksandrovich.P-37rus 3 жыл бұрын
Пздц как рубит) советы годные... Хоть я и на Java пилю, но всегда чем то цепляет Ромыч.... 🤔
@TheSmokySwan
@TheSmokySwan 9 ай бұрын
Я недавно стал джуном и пишу П.О на c++ и qml в основном. И вот например в qml , мне кажется комментарии бывают просто необходимы, в qml нередка ситуация , когда ты 1 элемент запихнул в другой элемент и его в третий, а это всё лежит ещё в каком-нибудь verticalLayout там столько фигурных скобок, что путаешься , что к чему относится поэтому я в их начале и конце пишу комментарий. Например: //начало Button, //конец Button.
@ДенисКорделюк
@ДенисКорделюк 2 жыл бұрын
Интересно и главное правильно рассказываешь. Философски сильная позиция у тебя. Критикуешь - предлагаешь. Строишь основу на личном опыте. т.е. на том в чём сам уверен. Я сам долгое время интересуюсь психологией и философией. Само анализ и философия миро воздания. Я плох в грамматике так как с детства намеренно не связывал себя ни с какой сферой деятельности пока сам не пойму чего я хочу. Я не уделял времени для приобретения знаний в ораторском искусстве и приобретал не большой опыт в этом направлении(В социуме иначе не получается). Так вот, я веду к тому, что спустя 32 года (После того как я уделял всё время в основном для ориентирования на местности, для ПОНИМАНИЯ мира в котором я начал свою жизнь) я пришёл к тому что разработка игр, это единственная среда которая роднится с моими уже приобретёнными навыками. Психология - работа с сознанием людей через продукт. Философия - логические взаимосвязи. Я не увидел ни одной перспективной среды где я могу применить те знания которые я приобрёл и испытать себя. У меня нет денег на платное обучение, я за ближайший год работая на заводе по сборке шторок для автомобилей, накопил на слабенький компьютер. Я обязательно выучу язык программирования! Это единственная не достающая деталь к моему успеху в плане для осознания и доказательства себе того что я не зря проводил время своей жизни. Так вот. Я это к тому что среди всех тех блогеров что я видел, ты единственный кто схож со мной по типажу и кого я легко понимаю как себя. Я хочу также довести этот навык до искусства и надеюсь что в дальнейшем мы с тобой встретимся как конкуренты. В споре рождается истина!)
@jet4904
@jet4904 Жыл бұрын
Подлизал так подлизал
@karpovantonio
@karpovantonio Жыл бұрын
ну че шиз, выучил? или все шторки собираешь?
@johnyelasto
@johnyelasto Жыл бұрын
Шиз 🥹
@alexh1904
@alexh1904 Жыл бұрын
Насчёт удаления кода: Да. Часто так бывает, я бы даже сказал в 99% случаев, когда алгоритм пишется с большим трудом. И потом и потом, может даже через несколько дней, ты в этой же программе пишешь какой-то следующий алгоритм попроще, и его сигнатура перекликается с тем сложным алгоритмом и ты видишь решение более эффективное для предыдущей задачи. Тогда да, переписываешь первый алгоритм удаляя предыдущий. Но нужно помнить о следующих моментах: 1) не изобретай велосипед. 2) оставляй лучший код удаляя говно 3) При использовании чужого кода, внимательно изучай чужой код, быть может твой окажется лучше.
@nooftube2541
@nooftube2541 3 жыл бұрын
Ну все таки комменты иногда нужны, только они должны описывать не происходящие а причину существования этого кода, и не всегда это можно зарефакторить так что бы это было самодокументирование. Например соответствие какому нибудь рфс. Да и к тому же в реальной жизни куча легаси зачустую дурно пахнущего, который рефакторить нет возможности и постфактумные комменты очень спасают.
@Gexetr
@Gexetr 3 жыл бұрын
Начал изучать язык C и уже написал свою доту2. Решил посмотреть для себя 10 советов, а он тут про какое-то ООП рассказывает почти все советы. Удовлетворён
@АрсланГаджиев-ж5ж
@АрсланГаджиев-ж5ж 3 жыл бұрын
А где обучился на C ???? И сколько заняло обучение по времени???
@ricardomilos857
@ricardomilos857 3 жыл бұрын
@@АрсланГаджиев-ж5ж интернет...
@АрсланГаджиев-ж5ж
@АрсланГаджиев-ж5ж 3 жыл бұрын
@@ricardomilos857 а можешь скинуть ссылки для обучения
@ricardomilos857
@ricardomilos857 3 жыл бұрын
@@АрсланГаджиев-ж5ж а какая разница язык си это или паскаль? учи не язык, а направление в программировании
@АрсланГаджиев-ж5ж
@АрсланГаджиев-ж5ж 3 жыл бұрын
@@ricardomilos857 Просто для полного нуля в программировании разницы нет что учить вопрос в том что востребованей и реально устроиться на работу в компанию
@user-zq1fx8fq1u
@user-zq1fx8fq1u 3 жыл бұрын
Когда выстраиваешь баланс во вселенной,обычно не до веселья,но это хе-хе-хе веский повод для улыбки
@darkproject8068
@darkproject8068 3 жыл бұрын
Если декомпозировать задачу слишком долго, она перестанет существовать (с) Умный дядька
@behappianstudio3576
@behappianstudio3576 3 жыл бұрын
Опять добрый Рома! Выздоравливай))
@assetslambekov2449
@assetslambekov2449 3 жыл бұрын
Самый объективный it блогер) Все по делу сказал, респект
@omegakrakengames
@omegakrakengames 3 жыл бұрын
Очень хороший и важный комментарий для продвижения видео
@СтороннийНаблюдатель-ч6ф
@СтороннийНаблюдатель-ч6ф 3 жыл бұрын
Подпишусь под каждым словом! Так и нужно учить джунов - выкручивать настройки до максима, запретить статик, запретить толстые классы и методы, запретить произвольный нейминг - и в бой. Слушайте что вам старший товарищ говорит.
@jv_en_py3667
@jv_en_py3667 2 жыл бұрын
Роман разлогинься
@Hafune
@Hafune 3 жыл бұрын
Cтатику можно если объект не содержит состояния. Всякие там Math например.
@hematogen50g
@hematogen50g 3 жыл бұрын
Воистину, но думаю тут Рома имел ввиду статику, которую маслятки юзают для совершенно низменных целей.
@rsakutin
@rsakutin 3 жыл бұрын
>объект >без состояния Понимаю
@КлимНуралин-у4у
@КлимНуралин-у4у 3 жыл бұрын
Ну я успел всех заебать с Бугаенко, но там одно из первых в Elegant Objects это лучше раскрывается, операцию например в виде статического метода желательно заменять на объект содержащий результат операции через свойство типа Value, и всякие Math были реализованы без оглядки на это, однако со своим кодом лучше уж сделать как выше описал
@Hafune
@Hafune 3 жыл бұрын
@@rsakutin ещё бы примеры почему нельзя то и то, насчёт статики думаю хороший пример -> сделать перезапуск игры(без выключения клиента конечно). Вот тут то статика и покажет себя.
@mdvulfix
@mdvulfix 3 жыл бұрын
Отличные советы, спасибо! Очень много почерпнул из твоих предыдущих видео. Продолжай в том же духе!)
@hematogen50g
@hematogen50g 3 жыл бұрын
И ты продолжай изучать и программировать. practice makes perfect.
@sergeyinozemcev1070
@sergeyinozemcev1070 3 жыл бұрын
Все стандартные контейнеры в std - это гигантские простыни, к слову.
@ikao3834
@ikao3834 3 жыл бұрын
Это легаси.
@МаксимНосарев
@МаксимНосарев 3 жыл бұрын
Да... Декомпозиция конечно для меня это беда. Постоянно пишу монструозные классы, надо бы попинать себя уже и порубить в паре проектов их по уму)
@hematogen50g
@hematogen50g 3 жыл бұрын
Главное не ленится. начни с малого - сначала один метод напиши, самый простой. и т.д.
@КлимНуралин-у4у
@КлимНуралин-у4у 3 жыл бұрын
Тупо попробуй начать думать о том, как ты можешь делить функциональность на модули
@vanyasotnikoff6024
@vanyasotnikoff6024 2 жыл бұрын
Насчет комментов не все так просто. Нельзя так категорично рассуждать. Например, комментариями можно выражать ценные сведения в двух словах, которые по коду сразу не увидишь. Это экономит время. Не всегда код можно переписать идеально. В жизни бывают разные ситуации и предостерегающие комменты в таких случаях очень кстати. И т.п.
@ВладНещамаев
@ВладНещамаев 3 жыл бұрын
Когда Роман начал говорить "просто напомню" сразу промотал на две минуты вперёд
@SergeySvotin
@SergeySvotin Жыл бұрын
10:57 не совсем согласен, в большинстве случаев, конечно, так, но, когда случается, что необходимо написать скрипт на js в проекте на java, то даже нейминг не очень помогает, потому что, по сути, твой код раскидан по трем разным файлам: java код, js-код и коннектор, в котором может быть определена некоторая js-функция-коллбжк. Я стараюсь код на не основном для проекта языке максимально комментировать (кроме того, что я пояснения в МР делаю), иначе придет следующий разработчик на основном языке, он это просто не поймет. Но пишу я, конечно, не столько, ЧТО делает код, сколько ЗАЧЕМ
@vanyasotnikoff6024
@vanyasotnikoff6024 2 жыл бұрын
Я бы дал самый главный совет - не воспринимайте советы как руководство к действию. Потому что разные программисты решают разные задачи и у каждого формируется свое видение. Более того, мышление у людей не одинаковое. Не нужно искать серебрянную пулю. Все как в жизни, не все однозначно. Хотя с опытом вы найдете свои ответы. Опять все как в любой другой деятельности, все приходит с опытом.
@СерёгаСокольский
@СерёгаСокольский 3 жыл бұрын
Сама команда Майкрософт внедрила в VS2019 подсказку. Звучит примерно так: "Метод не обращается к членам экземпляра. Можно пометить, как static."
@evon2543
@evon2543 3 жыл бұрын
А потом, когда нужно будет обратиться, то внезапно пол-проекта придётся переписывать.
@СерёгаСокольский
@СерёгаСокольский 3 жыл бұрын
@@evon2543 уже нельзя. Будет нарушен принцип открыт / закрыт. Нельзя модифицировать метод. Пиши новый метод или метод расширения.
@afterjourney4304
@afterjourney4304 3 жыл бұрын
Про статик очень спорно, та же архитектура Unity или UE с кучей static методов в классах. Мы ведь не скажем что там код говно, верно?) Да и программисты я думаю, там на порядок компетентны в вопросе проектирования. Если программист яростно бомбит на статик, то у него ООП головного мозга.
@МихаилСуворов-к2щ
@МихаилСуворов-к2щ 3 жыл бұрын
Первые версии Unity писали не опытные студенты. И Весь говнокод, который тянется с тех лет там живёт до сих пор. Если бы Unity был хорошо написан, то его бы явно не хотели бы переписывать в Untity 5 в 201 году и сейчас перtход на новую архитектуру на основе DOTS
@afterjourney4304
@afterjourney4304 3 жыл бұрын
@@МихаилСуворов-к2щ Эта архитектура отличается от ООП, поэтому речь о статик в априори бессмысленна, по крайне мере, пока не узнаем детали реализации DOTS
@eugene-white-shark
@eugene-white-shark 3 жыл бұрын
@@lekretka Индусы поумнее многих русских.
@grayhouse6925
@grayhouse6925 2 жыл бұрын
@@МихаилСуворов-к2щ вы енамами пользуетесь? Или утил классами типа Math? )) всегда, когба говорят что статики плохо- задаю эти 2 вопроса)
@КлимНуралин-у4у
@КлимНуралин-у4у 3 жыл бұрын
Падажи падажи, недавно вышел пост в сообществе, о том что статика это здорово и тип какие то глобальные функции это супер
@bomb5994
@bomb5994 3 жыл бұрын
Недавно была серия постов с троллингом
@КлимНуралин-у4у
@КлимНуралин-у4у 3 жыл бұрын
@@bomb5994 уже понел
@dreamy6096
@dreamy6096 3 жыл бұрын
Если комментарии зло, то зачем они в каждом ЯП'е?
@my_noname_channel
@my_noname_channel 2 жыл бұрын
Поверю, что static - это плохо-плохо-плохо-недопустимо, когда встречу фреймворк, который не требует использовать свои статик-классы/методы, чтобы вообще хоть что-нибудь сделать. А если Майкрософт не смог написать без статиков, то сложно требовать того же от каждого первого программиста.
@grayhouse6925
@grayhouse6925 2 жыл бұрын
В целом верно и вещи правильные. Но с двумя моментами я не согласшусь. 1. Комменты нужны. Но нормальные. Над классом, над методами(функциями) зачем, (иногба почему именно такой подход). 1 строка обычно для хорошей функции достаточна если функция нормальная. Для чего нужно? Банально новый разработчик вкатится гораздо быстрее, какой бы код хороший небыл. Или для генерации вики например. Это важно, когда проект реально большой, когда ты даже можешь не знать бОльшую часть комманды. Как говорится, код пишут для людей 2. Статик классы. Тоже поспорю. Есть минимум 2 типа статик , которые оправданы в программе. Наборы Констант и утил классы. Первые - эт в подавляющем большинстве енамы (внезапно по сути - это набор элементов, доступных статически). По утил классам типа Math и т.п зачем создавать много экземпляров? А если сингтон, то тогда какой смысл пихать его в конструктор или получать инстанс статически? Оправдано будет делать такие вещи не статик, если у тебя есть контракт (интерфейс) и несколько реализаций. Тогда конечно, интерфейс в конструктор, твой класс работает с контрактом, а реализацию уже инжектишь нужную. А в остальном лайк, в люьом случае полезно
@MrGourmetRazzy
@MrGourmetRazzy Жыл бұрын
14:10 "Нельзя пройти ревью, если есть код с модификатором static" Тем временем: *static* void Main(string[] args) *YOU SHALL NOT PASS!!!*
@alexanderalexander1637
@alexanderalexander1637 2 жыл бұрын
мы наблюдаем рождение и становление Великого Инквизитора C#
@headhuntez
@headhuntez Жыл бұрын
спасибо за инфу. а как же статические методы расширения? например public static void WriteLine(this T message) => Console.WriteLine(message); public static T RandomElement(this IEnumerable elements) => elements.ElementAt(Random.Shared.Next(0, elements.Count()));
@zaironslaysert5159
@zaironslaysert5159 Жыл бұрын
Статические методы это когда обращение идет напрямую ? А тут указывалось про то что все ходы должны быть расписаны что зачем запускает открывается ? то есть коде расписать полную цепочку действий от а до я а не прямое действие сразу с начала в конец Я просто ничего не понимаю в этом и решил спросить правильно ли я понял XD
@headhuntez
@headhuntez Жыл бұрын
@@zaironslaysert5159 да обращаешься не к екземпляру а к типу DateTime.DaysInMonth(2023, 1)
@SergeySvotin
@SergeySvotin Жыл бұрын
7:25 таким людям легко объяснить: говнокод объективен, потому что само преятие "говнокод" - это не значит, что у тебя есть несколько ошибок в коде, это значит, что бОльшая часть твоего кода состоит из ошибок. Если у тебя парочка неточностей, говнокодом не общовут, просто пометят для исправления и примут потом, а вот если у тебя вообще все неправильною настолько, что вычленить что-то полезное - тяжелая задача, то вот это уже говнокод. Лучше стереть все и написать заново
@LordZiegfrid
@LordZiegfrid 3 жыл бұрын
Чувак, приватный статический метод это норма. Смысл таскать this там где он не нужен - нету, приватная статика часть реализации и все норм внедряется.
@hematogen50g
@hematogen50g 3 жыл бұрын
По мне так главное, чтобы вашими прогами пользовались. Тогда от этого есть смысл, а иначе ваше прогерство сродни артхаусу.
@КлимНуралин-у4у
@КлимНуралин-у4у 3 жыл бұрын
1. В ситуации если программа зайдет и ее будут юзать, ну или инвесторы заплатят, то придется все переписывать, потому шо прототип был упрощен и расширять или дорабатывать его в будущем от проблематично до невозможно 2. В ситуации если ваш прототип не понравился, мы теряем все говно что написали, написали бы грамотно, части можно было бы выделить в библиотеку и использовать повторно
@hematogen50g
@hematogen50g 3 жыл бұрын
@@КлимНуралин-у4у Обожаю ютуб. Можно получать ответы на свои вопросы.
@КлимНуралин-у4у
@КлимНуралин-у4у 3 жыл бұрын
@@hematogen50g тогда стак оверфлоу получше будет
@КлимНуралин-у4у
@КлимНуралин-у4у 3 жыл бұрын
@@hematogen50g для примера, ААА или относительно сложный проект нельзя делать плохо, есть баланс между стоимостью разработки "через жопу" и разработкой хорошо, разработка хорошо потенциально стоит больше по некоторым причинам, и сложность проекта может сделать переделку плохого прототипного варианта более дорогой чем изначальное написание хорошего варианта, да и совместная работа заставляет писатт хорошо
@easycodeunity3d14
@easycodeunity3d14 3 жыл бұрын
Да да, статика это плохо потому что из любого места в коде позволяет получить доступ к функционалу одного класса который сгрупирован по смыслу и предоставляет через паблик модификатор только некоторые методы или свойства типа как SDK а Dependency Injection который вцелом к любому функционалу позволяет получить доступ откуда угодно это хорошо, да, все понятно, едем дальше.
@xezdx
@xezdx 3 жыл бұрын
Статик не поэтому плохо. Думаю много есть аргументов в пользу и против. Я использую только тогда когда эти методы ничего не меняют и являются чистыми функциями. Но если они начинают хранить состояния тут уже появляется проблема их инициализации, очистки и т.п. Один из минусов юнити - ПОЧТИ ВО ВСЕХ мануалах рассказывается как юнити порождает объекты и любой программист задается вопросом "а как потом объект найти, получить доступ к нему, обратиться к или от него к ядру игры" и получается что статика самый простой способ сделать это. Но это вовсе не значит что это хорошо, это так архитектура юните сделана. Меня лично бомбит от того что про архитектуру игры сложнее прыгающего болванчика нигде не рассказывают, чтобы не иметь этих проблем, можно только мельком увидеть в каких-то проектах сцены типа init со стартовыми скриптами и поставив на паузу пытаться рассмотреть.
@EBIIaTuu_KoJIoBpaTuu
@EBIIaTuu_KoJIoBpaTuu 3 жыл бұрын
Мельком в видосе упоминалось про GRASP, а я хочу для себя уточнить, насколько оно практически полезно? Т.е. я понимаю и использую ООП и СОЛИД, но не особо понимаю бенефитов от ГРАСП, не мог бы кто-нибудь объяснить?)
@LordZiegfrid
@LordZiegfrid 3 жыл бұрын
Солид оттуда вытекает, единая обязанность из информейшан экспер например
@xezdx
@xezdx 3 жыл бұрын
Смысл как обычно в том, чтобы сделать программу поддерживаемой. Чем меньше запутанность, тем лучше. Но мне эти принципы не нравятся, потому что задачи бывают очень разные и принимать решение об ответственности кто управляет, а кто управляемый, приходится всякий раз руководствуюсь более сложными аргументами, чем там описаны. По мне так самое главное это KISS - Keep it simple, stupid. Если вызовов слишком много, если параметров в методе слишком много, если метод слишком длинный, если в классе слишком много методов, если зависимостей много и т.д. то скорее всего этот код делает слишком много разных вещей и их можно разбить. Не факт, но "скорее всего".
@cotulars
@cotulars 3 жыл бұрын
Привет, знаю что не ответишь но всё же... За сколько я могу получить от тебя кодревью(ну т.е. оценку кода) на яве?) Ну просто покупать курс по шарпу для меня дороговато, а ревью от тебя увидеть хочется...
@hakari_
@hakari_ 3 жыл бұрын
А быстропечатание обязательно? Просто я могу достаточно быстро печатать юыстро переводя взгляд с клавиатуры на экран или просто не смотря на экран.
@ikao3834
@ikao3834 3 жыл бұрын
Нет. Можно написать 1000 строк говнокода быстро, а можно это же сжать в пару понятных всем строк, просто подумав над грамотной реализацией.
@АлександрСоловьев-ю9ц2к
@АлександрСоловьев-ю9ц2к 3 жыл бұрын
Намного увеличивает продуктивность (нет проблем "накатал простыню не в той раскладке и с опечатками") и улучшает здоровье (постоянно бегающий туда-сюда взгляд еще быстрее сажает зрение и быстрее вызывает утомляемость).
@ikao3834
@ikao3834 3 жыл бұрын
@@АлександрСоловьев-ю9ц2к покажи пример где ты пишешь быстро нормальный код
@АртемСавельев-п8и
@АртемСавельев-п8и 3 жыл бұрын
Слепая печать очень удобная штука, советую научиться. 30 минут в день на сайте с упражнениями, и уже через неделю будет получаться, а дальше уже само пойдет
@EdwardNorthwind
@EdwardNorthwind 2 жыл бұрын
Мог бы и оставить в описании или закрепленном комментарии название книг, которые рекомендовал по ходу видео, чтобы не приходилось выискивать или повторно просматривать ролик...
@АлександрЦарегородцев-х4я
@АлександрЦарегородцев-х4я Жыл бұрын
Насчёт статики очень спорное мнение. Плохи не сами статические классы как таковые, а статические классы, которые обладают стейтом, т.к. по сути такой стейт - глобальная переменная. Если у тебя есть чистая функция, которая стейт не мутирует, сделать её статической вполне нормально. Ну и так как в C# не возможны свободные функции, не принадлежащие никакому классу, несколько таких общих для всего проекта функции собираются в статик класс. С другой стороны, если функция достаточна простая и не дублируется её удобнее будет как анонимную лямбду оформить
@romanbush5164
@romanbush5164 2 жыл бұрын
Блят кто бы мне сказал десять лет назад, что программирования это не только язык программирования!?!!!**$*
@kilinar2239
@kilinar2239 3 жыл бұрын
Угу, еще скажите, что библиотека с математическими функциями или класс с константами должны быть объектами (не сама библиотека, конечно, а только содержащиеся в ней классы). Теоретически, могут, конечно, да и я ошибаться могу, так как опыта пока не так уж и много (хотя в разбираемом коде статики встречаются), но на мой взгляд - это просто еще один инструмент, как та же рефлексия, которые могут отходить от чистого ООП, но в определенных случаях позволяют заметно облегчить код программы.
@КлимНуралин-у4у
@КлимНуралин-у4у 3 жыл бұрын
Разницы особо не будет, если заменить такой статический метод на объект который представляет результат операции
@hexagon4326
@hexagon4326 3 жыл бұрын
Совет номер 9. Не стоит завышать количество советов в названии ролика для красивой цифры. Зачастую это просто рудимент, который может стригерить некоторых личностей (например меня).
@rsakutin
@rsakutin 3 жыл бұрын
0-9 - суммарно 10
@hexagon4326
@hexagon4326 3 жыл бұрын
@@rsakutin а вступление тоже считается или я где-то 2 в 1 пропустил?
@user-kp4xy7iu9e
@user-kp4xy7iu9e 2 жыл бұрын
Коментарии зло... Ну если в стиле капитана очевидности, то да. А если писать по делу, то сохранит очень много времени, например почему мы выбрали то или иное решение(стукруту данных, алгоритм и т.д.), прокоментировать аргументы функций \ возвращаемое значение (где может быть не очевидно без просмотра тела функции) и прочее.
@art61017
@art61017 3 жыл бұрын
Комментарии должны предупреждать о подводных камнях в коде, иногда объяснять "почему выбран именно этот способ решения задачи", что, как правило, уместно для промышленного кода. Например, проблемы могут быть в сторонних библиотеках, а отправить pull request разработчику и дождаться выхода следующей стабильной версии не всем подходит. Также для сложных алгоритмов, автоматизации инженерных задач и т.п., будет очень наивно полагать, что другие разрабы целиком и полностью понимают работу того, что вы делаете. Да, возможно, код с комментариями - "плохой код", но в Java и Python (возможно также на Си или в ассемблер-кодах) - это зачастую бывает вынужденным злом.
@АнтонДудкевич
@АнтонДудкевич 3 жыл бұрын
Код с комментариями - хороший код. Просто комментарии должны объяснять не что делает код (из хорошего кода это должно быть понятно), а зачем.
@ArquitectoR
@ArquitectoR 2 жыл бұрын
@@АнтонДудкевич именно так, автор похоже сам ни разу в разработке какого-нибудь крупного проекта не участвовал. Если он только казуалки на Юнити пишет командой 2-3 программиста + дизайнеры, то ему может и не нужны комментарии. В простых проектах всё сильно проще.
@Degril
@Degril 2 жыл бұрын
Про статик вообще не понял тебя. Тот же DI статик, DI который пробрасывает завимиости, тоже являются статик. Статик работает в эдиторе, почему я не могу библиотеку локализации делать статической, если у меня есть кейс, сгодогенрировать view допустим импортирую из figma и мне нужно локализовать все тексты и проверить есть ли такой ключ, внутри эдитора, как бы ты решил это без статика?
@ВладиславАфанасьев-й7г
@ВладиславАфанасьев-й7г 2 жыл бұрын
А как данные между сценами передавать, если без статика.
@ggfycest4571
@ggfycest4571 3 жыл бұрын
Запретить статические классы?? А математические методы куда вынесешь??
@babush6
@babush6 3 жыл бұрын
для него такие сложные вопросы это сложно
@TestSub1000
@TestSub1000 2 жыл бұрын
Крутой канал, первый раз попал на тебя. даже непонятно, цыган ты или право имеешь 🤣🤣
@vovanchik_ru4208
@vovanchik_ru4208 2 жыл бұрын
а как же экстеншены со статикой?
@Бот5329-и5г
@Бот5329-и5г 2 жыл бұрын
А если у класса будет метод который будет общий для всех его экземпляров то что вызывать его у каждого экземпляра или сделать его статическим?
@osore_7875
@osore_7875 2 жыл бұрын
Половина советов основы ооп.
@sbm31337
@sbm31337 2 жыл бұрын
По слухам в пыхе чем короче имя переменной тем быстрее она обрабытвается ( это я типа придумал аргумент за говнокод)
@kodomo5490
@kodomo5490 3 жыл бұрын
Роман, если в программе есть класс с методами вроде "сохранить информацию в файл"/"загрузить информацию из файла", такой класс тоже нельзя делать статическим?
@rsakutin
@rsakutin 3 жыл бұрын
Вы процедурно мыслите
@excommunicado2932
@excommunicado2932 3 жыл бұрын
Почему не сделать некий объект типа File с методом .Save( ) / .SaveTo(path) ? И, например, объект типа Document с методом .Content( ). Будет: а) более поддерживаемо (как минимум можно задекорировать (паттерн декоратор) каждый объект б) все необходимое инкапсулируется в объект и нет необходимости руками "передавать" данные от одной процедуры/функции к другой в) интерфейс IDocument (/ абстрактный класс в крайнем случае) даст полиморфизм и, например, DI. к примеру сделать класс для асинхронного чтения данных с тем же типом IDocument г) никакой связанности между функциями, которые вы хотите создать, не будет. у каждого класса своя ответственность. То, что вы хотите создать, это не ООП, а библиотека процедур как в языке С. д) отдельный класс (имхо) проще тестировать.
@hematogen50g
@hematogen50g 3 жыл бұрын
Можно сделать статические методы в динамическом классе. Будет куда более ООПэшненько.
@excommunicado2932
@excommunicado2932 3 жыл бұрын
@@hematogen50g не соглашусь, в ООП вообще ключевое слово "static" лишнее. И использовать его бы следовало в крайнем случае только. Например, сильная нужда в производительности, так как создание объекта в куче, естественно, дороже. Но по важности (имхо) перформанс < качество кода (в смысле основной задачи разработчика)
@hematogen50g
@hematogen50g 3 жыл бұрын
@@excommunicado2932 То есть методы из классов типа Math это исключения из правил. По факту они статические, но их юзают в ООП и норм.
@mrklebold4480
@mrklebold4480 3 жыл бұрын
Совет 6 к разработке ПО (бекенда) на Java тоже применим?
@АлександрГлебов-х4я
@АлександрГлебов-х4я 3 жыл бұрын
Вообще, по Троелсону, статику выгодно использовать для обслуживающих классов.
@CodeWriter
@CodeWriter 3 жыл бұрын
Мне подписчик как-то написал что gовно код позволяет проявить фантазию в программировании, а опытные программисты которые придерживаются правил ограничены в программировании. Что ты думаешь по этому поводу? Пхахпхах
@rsakutin
@rsakutin 3 жыл бұрын
Думаю стоит забанить придурка
@Vander0_0
@Vander0_0 3 жыл бұрын
@@rsakutin Хахахахахаха а ловко ты это придумал
@chemistryege
@chemistryege 3 жыл бұрын
Я не знаю как в программировании, не программист, нов моей работе примерно так есть. Для серьезных проектов надо все делать максимально стандартно, что бы снизить риски. А с маленькими можно творчески поиграться
@kirillsviderski4739
@kirillsviderski4739 3 жыл бұрын
@@chemistryege Хороший код и помогает сходу вводить любые творческие эксперименты
@hematogen50g
@hematogen50g 3 жыл бұрын
Думаю он использовал логику проф. киберспорта - матчи по старкрафту ГМЛ куда скучнее смотреть, чем любительские. Т.к. грандмастера играют почти всегда одинаково, у них все стратки заучены и они не могут поступить иначе. Думаю в прогерстве так же. Что и отличает любителя от профессионала. Первый романтик, второй - прагматик.
@oldborodach
@oldborodach 3 жыл бұрын
Что в начале все же нужно изучать С# или сам движок Unity? 🤯 А то один одно другой другое мнения разнятся. Кстати и почему? Короче совет нужен и по литературе и нужна ли она вообще в начале?
@yt78455
@yt78455 3 жыл бұрын
Я тоже сейчас учу, тоже прям начинаю. Пока что остановился на мысли что больше больше практики и без остановок на раздумий как можно было сделать лучше. Я и так половину терминов в роликах не понимаю, типа зачем тогда заморачиваться ? Я пока по одному курсу буду, потом, может, аналогичный для полноты картины пройду. А уже после либо настоящую практику на настоящих проектах либо добавить к ней уже книги по тонкостям и узким темам
@oldborodach
@oldborodach 3 жыл бұрын
@@yt78455 согласен, но интересно знать мнение экспертов!
@yt78455
@yt78455 3 жыл бұрын
@@oldborodach пни, если тебе ответит кто-нибудь компетентный, тоже интересно
@oldborodach
@oldborodach 3 жыл бұрын
@@yt78455 оставь контакт для связи скину кое что!
@ProkerKusaka
@ProkerKusaka 3 жыл бұрын
Начинать с базы с#, не углубленно пока, потом пройти любой курс по юнити, можно тот же unity learn, первое нужно для понимания второго. Когда будет хотябы минимальная база, обязательно нужно начать свой проект (любой). И по ходу дела, когда не знаешь что и как делается просто гугли (на английском конечно же, больше профита) В прохождении полных курсов от "именитых школ" нет смысла, за частую они учат конкретным вещам, которые вероятнее всего и не пригодятся даже, либо быдлокод. Не стоит на первых порах задумываться о чистоте кода, его не будет в ввиду малого опыта. Со временем, придет понимание где у тебя плохой код, появятся новые знания языка и алгоритмов которые дадут возможность искать новые темы для повышения умений. И так вот по чуть чуть, проект за проектом придет понимание как все устроено и работает. Не гонитесь за результами в первые же месяцы, это не быстрый процесс И самое главное, в программировании сколько людей, столько и мнений, всегда найдется человек, который скажет что твой код воняет) Так что не пытайтесь овладеть всей теорией сразу, это бессмысленно
@Cefalet
@Cefalet 3 жыл бұрын
Роман, вы говорите, что static новичкам использовать нельзя совсем никак и никогда, потому то это нарушает граф объектов и новички должны учиться пробрасывать зависимости и всё такое... Но как, например, насчёт перегрузки операторов? Для объявления перегрузки оператора нужно написать и public и static в одном месте. Неужели и перегрузка операторов - это плохо?
@ArquitectoR
@ArquitectoR 2 жыл бұрын
Ну такое, перегружать операторы надо очень аккуратно. Джунам лучше в эту сторону не думать.
@АлинаЛебедева-м5ь
@АлинаЛебедева-м5ь 3 жыл бұрын
Комментарии - это плохо! Нетривиальный код: ладно Статики запрещены в ООП! Синглтоны и некоторые другие паттерны ООП: ок В общем-то ты говоришь неплохие вещи, но зачастую настроен уж слишком радикально
@ИапГоревич
@ИапГоревич 3 жыл бұрын
Ну, про синглтоны - это спорное утверждение
@-urdy
@-urdy 2 жыл бұрын
👾
@Zhangeldi1023
@Zhangeldi1023 2 жыл бұрын
👍👍👍
@sevenlands2354
@sevenlands2354 3 жыл бұрын
10 вещей которые ты обязан знать , а советов всего 9 :D
@КлимНуралин-у4у
@КлимНуралин-у4у 3 жыл бұрын
Нумерация с нуля
@sevenlands2354
@sevenlands2354 3 жыл бұрын
@@КлимНуралин-у4уТочно как я мог не увидеть 0 ))) вот только идет она до Компота под номером 8
@xelax3613
@xelax3613 2 жыл бұрын
блин придется удалять static void main
@MrFalaban
@MrFalaban 3 жыл бұрын
Как же проектирование, Роман? Я думаю важно уметь продумать задачу перед началом
@Maksimeo
@Maksimeo Жыл бұрын
согласен
@Вебразработка-м2г
@Вебразработка-м2г 3 жыл бұрын
чего у парня в видео шея обосцана?
@SergeySvotin
@SergeySvotin Жыл бұрын
7:25 тут даже не суть в том, что скажуттслучайные 10 "опытных" разработчиков, паттерны проектирования, например, вырабатывались десятки лет, методом проб и ошибок, глупо надеяться, что ты один такой у мамы умный, что 30 лет развития перечеркнешь. На ЯП пишут спецификации, с некоторыми пунктами можно спорить, но суть-то в том, что программистов много, если каждый будет писать по-своему - хрен вы что соберете, поэтому и нужен стандарт, кто-то его должен продумать. Логично, что стандарты ЯП придумывают авторы ЯП, уж они-то точно разбираются в тонкостях своего языка
@bratttn
@bratttn Жыл бұрын
Дельные советы, но, к сожалению, их поймёт и воспримет только испытавший всё это на своей шкуре. Можно объяснять слепому про цвет, но неплохо было бы для начала открыть ему глаза. Новичкам надо с примерами обязательно, и то не факт, что дойдёт.
@vladyan01
@vladyan01 3 жыл бұрын
Сегодня впервые скачал юнити, до этого на другом движке работал. И методом тыка сделать кнопку UI и текст, и сделал по нажатию кнопки прибавление +1 в тексте, и создал АПК для теста на тлф. Вопрос: какого хрена АПК файл весит 18 мб, должен с таким функционалом 1-2 мб весить же. Я ахринел какой багаж юнити впихивает.
@kaidozdev
@kaidozdev 3 жыл бұрын
такую херню высрал. ты видимо ещё ни разу с xamarin не работал
@itnoob7379
@itnoob7379 3 жыл бұрын
Тот момент, когда недавно открыл первый раз среду разработки и не понимаешь половину из того, что говорит автор...
@CtrlAltDente
@CtrlAltDente 3 жыл бұрын
Не расстраивайся) А вообще то желательно прочитать книги по программированию (не языкам), и глянуть стандарты и общепринятые методы, чтобы +/- что-то понимать. Хотя с обратной стороны, у каждого свои собственные стандарты, и ты не можешь предугадать в какой компании будут свои локальные стандарты. И я уж не говорю о том что некоторые примеры в одной книге могут прямо противоречить примеру в другой книге. Но банально те факты что именовать переменные надо так чтобы они отображали свою суть и код должен выглядеть читабельным с учётом отступов через Tab (не встречал чего-то другого) никто не отменял. Желательно вообще устроиться в компанию на первые строки заявляя что опыта у тебя 0.000000003 и ты готов "рвать и метать" лишь бы научиться чему-то новому и хорошему, даже не упоминая о ЗП. А уж более опытные тебе в этом помогут, и литературу дадут, и может задания даже. Конечно тут на самом деле как повезёт.
@Digildon
@Digildon 3 жыл бұрын
13:47 Синглтоны не нужны?
@timurnikolaev1438
@timurnikolaev1438 3 жыл бұрын
12500 За кофту? можно две
@markhabaevv5770
@markhabaevv5770 3 жыл бұрын
Стоит ли практиковаться на сайтах типа Leetcode, иль стоит пробовать сфокусироваться на любительских проектах?
@KALMAPUK
@KALMAPUK 2 жыл бұрын
И так и так правильно.
@ikao3834
@ikao3834 3 жыл бұрын
Не используйте "static", а как же к примеру методы расширения существующих типов?
@КлимНуралин-у4у
@КлимНуралин-у4у 3 жыл бұрын
Можно кнеш, методы расширения семантически относятся к расширяемому классу, да и название такого статического класса вроде чаще всего понятно
@sbm31337
@sbm31337 2 жыл бұрын
Он сказал "приватные члены" ...
@dimaq4428
@dimaq4428 3 жыл бұрын
Язык не важен, так же в каждом собесе: расскажите об отличительных особенностях, а эти интерфейсы откуда, а эти интерфейсы куда, а фреймворки, а это что за аннотации. По итогу получаем шквал вопросов, а работать по итогу вообще приходится с другими вещами.
@EBIIaTuu_KoJIoBpaTuu
@EBIIaTuu_KoJIoBpaTuu 3 жыл бұрын
Комменты в коде хороши, чтобы описать человеческим языком неочевидную хуйню (костыли). Костыли -- это плохо, но это, зачастую, вынужденный компромисс. В частности, когда сторонняя апишка гонит хуйню время от времени, а тебе от нее нужен результат, приходится как-то изъёбываться, чтобы его получить. И лучше это неочевидное поведение описать, чем не описать, имхо.
@CoRecYT
@CoRecYT 3 жыл бұрын
У тебя получилось из-за баланса белого, будто нижняя часть экрана в кинематографичной чёрной полоске) Надо либо поменять одежду, либо место съёмки, либо подкрутить камеру.
@mrsgonzaa
@mrsgonzaa 3 жыл бұрын
Если выкрутить баланс белого, цвета на стене будут бледными. Тут либо добавить контровой свет, которого в данный момент нет, либо сменить одежду. P.S. Нижняя часть экрана как в кино называется экранное каше.
@vanyasotnikoff6024
@vanyasotnikoff6024 2 жыл бұрын
Кто сказал что ООП это панацея, а процедурное программирование это прошлый век. Это не правда. Конечно ООП это лидирующая парадигма. Но ситуации бывают разные. Многое зависит от задачи, предметной области, специфики, истории и много чего. После таких утверждений появляются программисты, которые пытаются все превратить в объекты любой ценой. Например, я имел дело с задачей чтения ячеек excel, одна программа каждую ячейку описывала классом, затем превращала в объект, а другая просто читала в список. О производительности говорить не приходится.
@КлинокСтальной
@КлинокСтальной 3 жыл бұрын
Классный худи)). Такая говорящая голова получается))).
@yatsuk_vitalii
@yatsuk_vitalii 3 жыл бұрын
Я извиняюсь, вопрос джуна, а как без статики обращаться к методу трёхмерного шума перлина, который нужен почти всюду?
@iamdozerq
@iamdozerq 3 жыл бұрын
Речь идет не о классе math, который статический на 100%, а о твоих собственных сущностях. Когда делаешь математику там все на 100% функциональщина. Я расчеты по учебе автоматизировал много - там ооп негде применить, а самое главное не за чем.
@yatsuk_vitalii
@yatsuk_vitalii 3 жыл бұрын
@@iamdozerq Спасибо
@nightyonetwothree
@nightyonetwothree 2 жыл бұрын
нафига учиться исключительно ооп когда еще есть и дата-ориентированное программирование, которое быстрое и надёжное?
@InqDan
@InqDan 3 жыл бұрын
Переведите это и отправьте яндере деву.
@kilinar2239
@kilinar2239 3 жыл бұрын
Не поможет. И ему нужно кидать книгу: "Программирование на C# для начинающих" или что-то в том же роде. Но даже так, это не поможет по причинам, описанным вышестоящим комментатором.
@dippe2261
@dippe2261 3 жыл бұрын
Привет Рома! У меня возник вопрос, вот что мне делать? Я учусь в универе, щас на втором курсе, но программировать не умею. Если дают задание, то всегда прихожу к тому что ищу ответ в инете, а сам ничего не могу сделать. Может быть ты сможешь что-то посоветовать, чтобы я смог понять алгоритмы и ваще как писать. А то всегда я понимал что если хочу стать программистом то надо учить язык программирование, но в итоге язык знаю, а программировать нет.
@twojger8242
@twojger8242 3 жыл бұрын
Практика, дружище. Если не можешь решить простую задачу, то надо как следует практиковать базу языка, решая лёгкие задачки, вникая в работу циклов, массивов, переменных и т.д. Медленно, но верно, все пойдет. Главное терпение и усидчивость. Студенту не должно составить проблем. Есть желание - получишь результат
@K-RACUBO
@K-RACUBO Жыл бұрын
Совет 0: Только программист начнёт с 0
@Saprovec
@Saprovec 3 жыл бұрын
Математика - это не алгоритмы, бля...
@ourtube5191
@ourtube5191 3 жыл бұрын
там тоже затрагивается тема алгоритмов
@Saprovec
@Saprovec 3 жыл бұрын
@@ourtube5191 где там?))
@ourtube5191
@ourtube5191 3 жыл бұрын
@@Saprovec в школьной математике
@Saprovec
@Saprovec 3 жыл бұрын
@@ourtube5191 дай ссылку))
@Saprovec
@Saprovec 3 жыл бұрын
@@ourtube5191 Логика - относится к алгоритмам, а не математика. Открою тебе секрет. ))
@ostrov11
@ostrov11 3 жыл бұрын
... чувак, что у тебя с шеей со стороны горла ???
@Vander0_0
@Vander0_0 3 жыл бұрын
Как ты начинал учить программирование ?
@fgyly78
@fgyly78 Жыл бұрын
14:53 Точка входа Main: За что?
@АлександрКоллеров-ц7ъ
@АлександрКоллеров-ц7ъ 2 жыл бұрын
Хех тоже считаешь с нуля красва😜
@codememory
@codememory 3 жыл бұрын
Очередная шляпа по высказываю «не используйте статику» ты хоть когда-то профилировал статику? Подозреваю что нет, так вот я тебе отвечу, что статика меньше жрет и быстрее выполняется
@mrxprojects
@mrxprojects 3 жыл бұрын
Не обращай внимания, он некомпетентен.
@codememory
@codememory 3 жыл бұрын
@@mrxprojects Оно и видно! Других критикует, а сам нифига не знает, я б советовал ему курсы пройти по джуну! Кстати, пускай тест пройдёт в прямом эфире на джуна, посмотрим его уровень 😂
@kaidozdev
@kaidozdev 3 жыл бұрын
сакутин противоречит сам себе? пару дней назад говорил, что ничего такого нет, если использовать статик (про вывод логов) и в видео теперь говорит, что статик это хуево и ТОЛЬКО В РЕДКИХ ИСКЛЮЧЕНИЯХ нормально.
@СтороннийНаблюдатель-ч6ф
@СтороннийНаблюдатель-ч6ф 3 жыл бұрын
Для логов не надо использовать статик.
@vasiliychernov2123
@vasiliychernov2123 3 жыл бұрын
Тот пост был толстым вбросом
Real Man relocate to Remote Controlled Car 👨🏻➡️🚙🕹️ #builderc
00:24
КОД КАК У СЕНЬОРА. РЕФАКТОРИНГ
22:59
ITentika Online
Рет қаралды 68 М.
4 года в разработке видеоигр | Заработок с игр | Gamedev
5:51
UniDevels - мир разработки игр
Рет қаралды 6 М.
Senior Разработчик в 19 лет
40:55
SГур
Рет қаралды 95 М.