EngineerSpock

ExtremeCode и чистый код

Бинарный салют, друзья! На связи Engineer Spock.
 

Бинарный салют, друзья! На связи Engineer Spock.

На днях посмотрел очередной ролик канала Extreme Code, названный «Чистого кода не существует», и решил написать статью о контенте этого канала и, в частности, по теме существования или не существования чистого кода. Поехали!

Лайкосы / Подписки / Курсы

Пара слов о канале

Для начала скажу пару слов о самом канале Extreme Code для тех, кто его не знает.

Хотя выглядит забавно, когда канал с двумя тысячами подписчиков рассказывает о канале с более чем двумя сотнями тысяч подписонов. Но, тем не менее. И да, всё, что здесь будет изложено – это моё субъективное мнение, и я могу ошибаться.

Канал ExtremeCode – самый странный канал по программированию из всех, что я видел. У авторов канала – особый стиль подачи материала. Это некая смесь “падонкафского”  повествования, щедро приправленная мемасами.

Авторы используют троллинг для поджигания пердаков и, соответственно, разжигания интереса к своим роликам.

В результате получается какой-то треш-блогинг о программировании. Хомякам это, судя по всему, нравится.

Как я уже писал ранее, в соцсетях хорошо заходят видео с упрощённым материалом – нечто, что направлено на хайп, нечто, что набрасывает говно на вентилятор и всё в таком духе.

И в этом авторы преуспели как никакой другой канал о программировании. Вообще говоря, я совершенно  не против юмора. Однако, вот смотришь на такие ролики, как «Чистого кода не существует», и совершенно непонятно, а шутят ли авторы вообще.

То, что манера подачи шутливая – это ясно, но вот являются ли шутками те смыслы, которые подаются в роликах – понятно не очень. Такое ощущение, что авторы и вправду считают, что чистый код – это чушь, SOLID-принципы – это бред, а паттерны проектирования – для лохов. Ведь авторы ловко манипулируют различными высказываниями известных программистов, типа Боба Мартина, или цитируют известные книги, типа “Совершенного кода” Макконнелла. Пытаются найти противоречия и преподносят их как доказательство того, что любые советы и так называемые лучшие практики — это чушь, муть и компот.

На самом деле, задолго до появления канала Extreme Code, на том же Хабре периодически публиковались статьи подобного же толка, основным посылом которых являлось то, что, мол, все эти ваши практики инженерные – это всё мудрствование лукавое.

А раз чистый код – это чушь, муть и компот, то можно писать код, как хочется, и его говённость обосновывать тем, что всё равно любой код является говнокодом, а если нет разницы, то зачем платить больше?

Таким образом, подобный контент воспринимается неокрепшими умами, а также теми, кто уже по уши погряз в говнокодерстве, как индульгенция на то, чтобы по жизни так и писать говнокод, не прибегая ни к каким практикам.

Ну и в довесок идёт убийственный аргумент о том, что лучше побыстрее выйти на рынок с продуктом, чем тратить время на написание чистого кода.

Такой контент в форме высмеивания  ставит под сомнение существование и необходимость следования лучшим практикам. Вот в чём основная проблема такого контента. Это не то же самое, что взвешенная критика. Взвешенная критика – это совсем другое. Во-первых, увы и ах, взвешенно критиковать не получится в формате, который активно эксплуатируют авторы канала Extreme Code.

Не бывает адекватной критики с привлечением всех этих эмоций, замешанных на троллинге и мемасах. Так что, если бы ребята выпускали ролики обо всё этом в иной манере, контент мог бы быть гораздо более содержательным, однако совершенно не таким популярным. Ну кому нужна нудятина? Ютуб-зрителям подавай С++ за 30 секунд. Вот это набирает сотни тысяч просмотров.

Блин, то, что я пишу, становится похожим на зависть, и зритель может сказать, что, мол, я так не умею, поэтому так и пишу. Но, конечно, это не так. У меня десятки тысяч платных студентов на курсах, так что у меня нет реальной причины для зависти. Поэтому тут можно сказать лишь одно: каждый автор канала сам решает, какого вида контент производить. И да, то, что я тут изложил, не подразумевает того, что на моём канале будет исключительно академизм. Я и сам не прочь поприкалываться. Однако, на мой взгляд, – и я хочу это подчеркнуть, – всем должно быть ясно, где шутки, а где нет.  Ну, кроме совсем упоротых. Упоротые везде разглядят именно то, что хотят. Тут я, увы, бессилен.

К теме

Вернёмся к теме наведения тени на плетень. Ну, в смысле, на лучшие инженерные практики в программировании. Большинство гуру программирования сходятся во мнении, заключающемся в том, что программирование – это ремесло, а не строгая научная дисциплина. Точнее, так: фундамент, на котором стоит программирование, был построен на строгих научных дисциплинах. Если бы это было не так, у нас бы не было ни смартфонов, ни многих других девайсов, ни каких-либо программ. Ничего. Это бы просто не работало.

А вот прикладное программирование в плане различных подходов к построению программного обеспечения – сродни ремеслу, потому что нет строгих законов, которые однозначно говорят о том, когда и что делать или писать программисту для того, чтобы на выходе получался максимально удобный для сопровождения код. Масла в огонь периодически подливают такие говорящие как тот же Дядя Боб, он же Боб Мартин, который периодически ляпает что-то мегастранное и несуразное, от чего у бывалых программистов уши в трубочку заворачиваются. Иногда всякий бред и в книгах своих излагает.

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

Вообще, про Дядю Боба и других гуру у нас на канале уже выходили статьи. Почитайте, если ещё не читали.

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

При этом, вот, например, у того же Боба Мартина есть сайт cleancoders.com, где он продаёт свои обучающие видосы, и что-то такой дичи я там не замечал. Короче, как я уже и писал, есть подозрение, что дядя играет на публику периодически.

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

Применение лучших практик не означает, что на вашем проекте не будет копиться технический долг, увы и ах. Но всё это не означает того, что паттерны и чистый код – это пыль. Посмотрите какое-нибудь выступление  одного из программистов компании JetBrains про архитектуру такого сложного проекта, как R# – плагин для Visual Studio, умеющий делать автокомплит кода и наводящий мощнейшую аналитику. Без глубочайшего понимания инженерных практик и их применения подобные проекты сделать просто не получится. Да, говносайты и разнообразные плагины к Вордпрессу на 200 строк кода можно, конечно же, писать как угодно, и потом везде кукарекать о том, что чистого кода не существует или он просто не нужен. Но не надо забывать о том, что серьёзные, очень сложные программные проекты требуют совершенно иных компетенций от разработчиков. И вот на них программистам не до смеха над чистым кодом и паттернами проектирования. Там необходимость их грамотного применения – это реальность, и без этого далеко не уедешь. Так что, если вы поклонник канала Extreme Code, или кто-то другой навязал вам подход «чистого кода не существует» – советую вам одуматься и уйти от ситхов, примкнув к джедаям. Ну а Extreme Code смотреть чисто по приколу. Ребята-то очень талантливые. Ну и не забывайте мой канал читать, конечно.

А на сегодня всё. До новых встреч. Подписывайтесь. Если не подпишешься, вычислю по IP.

Оставьте комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *