JavaRush /Java блог /Random /Кофе-брейк #63. Как разработчику программного обеспечения...

Кофе-брейк #63. Как разработчику программного обеспечения улучшить свои soft skills. Рефакторинг кода — сценарии использования и преимущества

Статья из группы Random

Как разработчику программного обеспечения улучшить свои soft skills

Источник: Free Code Camp Термин soft skills (гибкие навыки) встречается довольно часто. И хотя иногда его считают старомодным термином, я не могу переоценить важность социального и эмоционального развития для тех, кто занят разработкой программного обеспечения. Качество кода, технические навыки, коммуникация и совместная работа — все вместе это делает разработчика настоящим профессионалом.Кофе-брейк #63. Как разработчику программного обеспечения улучшить свои soft skills. Рефакторинг кода — сценарии использования и преимущества - 1Я не буду здесь говорить о soft skills с теоретической точки зрения. Вместо этого я попытаюсь дать вам практические советы по развитию ваших собственных навыков межличностного общения, чтобы стать более профессиональным.

Что нужно знать о soft skills

Гибкие навыки ничем не отличаются от других навыков. Вы должны регулярно их практиковать, если хотите, чтобы они улучшились, и может пройти некоторое время, прежде чем они станут вашей второй натурой. Помните, что каждый может извлечь выгоду из работы над своими soft skills. Даже если вы считаете их идеальными, есть шанс, что их можно улучшить. Не бойтесь признаться в этом! Никто не знает всего в жизни, так почему кто-то должен винить нас в том, что мы еще можем улучшить?

Что означают гибкие навыки для вашей карьеры?

Гибкие навыки — это не просто считаться приятным в общении. Они необходимы для профессиональной работы в сфере программного обеспечения. Информационный век сделал мир более взаимосвязанным, чем когда-либо прежде, а это означает, что стало проще, чем когда-либо, общаться с клиентами, заказчиками, членами команды и другими заинтересованными сторонами. В то же время это означает повышение конкуренции. Чтобы выделиться из толпы, вам нужно уметь оказывать влияние. На мой взгляд, главное преимущество гибких навыков в том, что они помогают создавать сеть личных связей внутри организаций и сообществ. Наличие хороших навыков межличностного общения означает быть доступным, симпатичным, надежным и заслуживающим доверия — то есть тем, с кем другим людям нравится работать и о котором они хотят узнать больше. Это открывает двери для новых возможностей. Я часто вижу разработчиков, которые уверены в своих технических навыках, но не имеют коммуникативных способностей и изо всех сил пытаются продемонстрировать свою ценность для компании, в которой они работают. Если вы думаете об этом с точки зрения менеджмента, зачем кому-то нанимать кого-то, кому не хватает уверенности, когда есть много хороших кандидатов, достаточно уверенных, чтобы проявить себя? Уверенность — очень важный фактор при принятии решения о приеме на работу! Но нет ничего плохого в том, чтобы быть скромным. Просто помните, что уверенность в себе, возникающая благодаря осознанию того, что вы делаете, очень помогает аргументировать свою позицию, когда вам нужно что-то объяснить руководству или коллегам. Помните, что другие люди замечают, если вы добавляете что-то ценное при обсуждении, делясь своей точкой зрения или идеями вместо того, чтобы просто соглашаться со всем, что говорят. Построение хороших отношений в команде облегчает решение проблем, поскольку вокруг всегда будут люди, которые захотят вам помочь. Поначалу это может быть сложно (особенно если вас называют «необщительным»), но поверьте мне — как только это станет происходить чаще, все резко улучшится!

Гибкие навыки, которые вам помогут

Навыки коммуникации

Насколько хорошо вы можете донести свои идеи, мнения и проблемы? Не имеет значения, выступаете ли вы на конференции или обсуждаете свой проект с клиентом — общение является ключевым моментом, и все сводится к тому, насколько хорошо вы доносите свою точку зрения.

Навыки совместной работы 

Вы умеете работать в команде? Насколько хорошо вы общаетесь со своими сверстниками и коллегами? Умеете ли вы делегировать задачи и обязанности или всегда пытаетесь все делать самостоятельно?

Навыки разрешения конфликтов

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

Эмоциональный интеллект

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

Управление своим временем и приоритетами

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

Как улучшить свои навыки общения

Первое, что нужно помнить, это то, что гибкие навыки не являются врожденными качествами. Мы все можем научиться лучше общаться, сотрудничать и более эффективно работать с другими людьми. Это просто вопрос практики. Лучшее в гибких навыках — это то, что вы можете улучшить их в любое время — начать никогда не поздно! Вот несколько практических советов по развитию наилучших социальных навыков:

Будьте активным слушателем

Это, вероятно, самый важный коммуникативный навык. Слушание может показаться простым, но, как известно многим, часто бывает нелегко. Когда с вами разговаривают, не спешите отвечать сразу — не торопитесь и обращайте внимание на то, что говорят ваши собеседники! Это включает как вербальное, так и невербальное общение, поэтому следите за выражением лица, а также за языком тела.

Правильно реагируйте на комментарии

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

Будьте уверенным в разговоре с людьми

Общение бесполезно, если оно исходит из неопределенности или сомнений. Если вы думаете, что что-то может показаться неловким или глупым, то, скорее всего, это будет звучать неловко или глупо. Попробуйте отрепетировать то, что вы собираетесь произнести вслух — лучше это сделать перед зеркалом. Так вы увидите, как выглядите, когда говорите что-то вроде «Эм… да… я имею в виду… нет» вместо «Конечно!» Помните, что уверенность не имеет ничего общего с высокомерием. Напротив, это означает чувствовать себя достаточно комфортно, чтобы уверенно и открыто делиться своими идеями с другими. Это намного лучше, чем бояться выглядеть глупо (из-за чего люди только плохо себя чувствуют).

Интересуйтесь другими людьми и их идеями

Никогда не бойтесь задавать вопросы. Даже если у вашего собеседника сейчас нет нужного для вас ответа, общаясь с ним вы всё равно сможете найдете что-то полезное или интересное для себя. Если во время разговора между двумя людьми возникнут какие-то разногласия, попробуйте подойти к проблеме с каждой стороны отдельно. Это поможет вам более точно понять, что каждый человек имеет в виду, и облегчит сотрудничество в дальнейшем (вы будете знать, какие решения могут удовлетворить каждую сторону). И последнее, но не менее важное: всегда будьте непредвзятым. Излишняя установка на собственное мнение может привести к ненужным конфликтам с другими людьми.

Заключение

Еще одна важная вещь, которую я хотел бы здесь упомянуть, — это то, что для развития социальных навыков требуется время. Как и все остальное в жизни, пройдут месяцы, может быть, даже годы, прежде чем они станут вашей второй натурой (если они когда-нибудь станут). Так что не ждите, что вы и окружающие изменитесь сразу после прочтения этой статьи. Вместо этого сосредоточьтесь сейчас на улучшении какой-либо одной области, сознательно работая над улучшением социальных навыков в целом. При достаточной практике со временем люди начнут замечать изменения в том, как вы взаимодействуете с окружающими. Одна из моих любимых цитат Стивена Хокинга: «Не забывай смотреть на звезды, а не вниз себе под ноги». Здесь применима та же философия — смотрите вверх, а не вниз! Налаживание отношений требует времени, но в долгосрочной перспективе окупается. Так вы будете чувствовать себя на работе более счастливым.

Рефакторинг кода — сценарии использования и преимущества

Источник: Hackermoon Чтобы не отставать от конкурентов, компании часто пытаются ускорить процесс разработки. Это сокращает расходы, но может повлиять на качество конечного продукта. Один из способов повысить качество кода в компании — это рефакторинг. Его часто упускают из виду, поскольку он практически незаметен для пользователей. Код по-прежнему работает, значит, все в порядке, правда? Тем не менее, проблемный и беспорядочный код влияет на скорость работы продукта и его общую производительность. Следовательно, рефакторинг кода сильно влияет на достижение долгосрочных целей.Кофе-брейк #63. Как разработчику программного обеспечения улучшить свои soft skills. Рефакторинг кода — сценарии использования и преимущества - 2В этой статье мы не только узнаем значение рефакторинга кода, но и поговорим о его важности. Кроме того, мы расскажем вам основные преимущества, которые можно получить от рефакторинга кода.

Что такое рефакторинг кода?

Известный теоретик программирования Мартин Фаулер считает, что рефакторинг кода — это процесс редактирования кода приложения или продукта и исправления проблемных частей. Отредактированный код прост для понимания и навигации. Он улучшает внутреннюю структуру продукта, его функциональность и поведение. Часто многие разработчики больше сосредоточены на реализации функций, которые обеспечивают работу приложения или онлайн-продукта. К сожалению, чистота кода становится второстепенным приоритетом или вообще не учитывается. Зачем беспокоиться, если потом можно всё исправить? Вопрос в том, когда наступит это «потом». Из-за того, что «чистый код» ничего не меняет для конечного пользователя, 63% компаний не видят смысла тратить на него время, что приводит к так называемому «запаху кода» — проблемам в исходном коде программы. Разработчики либо пренебрегают рефакторингом кода, либо откладывают его на потом. В результате приложение работает слишком медленно, а разобраться в слишком сложной базе данных бывает просто невозможно. Рефакторинг — это не разовое действие, а повторяющийся процесс. По мере того, как ваше приложение становится более сложным, получив несколько обновлений и новых функций, код становится тяжелее. После рефакторинга на этапе разработки он может быть чистым и аккуратным, но этот процесс требует повторения, если вы хотите избежать проблем в будущем.

Когда нужно выполнять рефакторинг кода?

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

  • На стадии разработки

Лучше всего исправить проблемы до релиза продукта. Это поможет произвести хорошее первое впечатление. «Запах кода» может стать причиной появления ошибок или значительного снижения производительности. Если пользователи при знакомстве с продуктом увидят проблемы, они вряд ли станут использовать этот продукт снова, даже после того, как в нем всё будет исправлено.

  • Перед добавлением новых функций

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

  • При появлении ошибки

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

  • После обнаружения дубликатов

Согласно исследованиям, в среднем дубликаты составляют до 25% от всего кода. Они плохи тем, что затрудняют чтение, обслуживание и обновление приложения или онлайн-продукта. Еще хуже ситуация, когда дублируется часть кода, в которой содержатся ошибки. Вы тратите часы на поиск источника ошибки, её исправление, и… ошибки все еще остаются, потому что брат-близнец этой части кода скрывается где-то еще в базе данных.

Каких целей можно достичь, выполнив рефакторинг кода?

После того, как вы узнали, что такое рефакторинг кода и когда вам нужно его делать, важно понять, какие преимущества он может принести. Осознание необходимости выполнения рефакторинга кода — сильная мотивация. Итак, что означает рефакторинг кода для вашего софта?

  • Повышенная эффективность программного обеспечения

Повышение эффективности — это цель номер один рефакторинга кода. Если старый код запутанный и громоздкий, вполне возможно, что разработчики потратят слишком много времени, пытаясь обнаружить ошибку и изменяя каждую строку кода. Поэтому рефакторинг кода необходим для быстрой и эффективной работы с кодом. Инвестируйте в рефакторинг кода сейчас, чтобы сэкономить массу времени и ресурсов в будущем!

  • Улучшение производительности

Реорганизованный код становится более простым. Это означает, что программа работает быстрее и у пользователей нет проблем с быстродействием. Довольный пользователь означает больше клиентов, увеличение дохода и рост бизнеса. Улучшение качества продуктаЧтобы оставаться актуальным, важно не только создавать продукт, но и добавлять новые функции и часто обновлять его, чтобы удовлетворить потребности потребителей. Это единственный способ оставаться впереди конкурентов спустя годы после запуска продукта. К сожалению, добавлять новые фичи очень трудно. Если базовый код в беспорядке, вы можете сломать все приложение, просто пытаясь сделать его лучше. Благодаря рефакторингу кода ваши продукты получат высококачественные обновления и новые функции, которые могут значительно повысить продажи.

  • Уменьшение технического долга

Технический долг существует уже много лет и преследует в кошмарах каждого владельца IT-бизнеса. Он может стать серьезной проблемой для развития компании. Ущерб, ежегодно наносимый низким качеством программного обеспечения, оценивается в более чем 150 миллиардов долларов в США и более 500 миллиардов долларов в год во всем мире. И хотя это происходит по многим причинам, таким как ограничение времени и ресурсов, одной из основных проблем является плохой код, который приводит к плохому UX, плохой архитектуре и другим негативным факторам. Своевременно выполняя рефакторинг кода, намного проще сократить технический долг, а также сэкономить на затратах, усилиях и времени на то, чтобы найти и исправить серьезные ошибки или предотвратить необходимость начинать все с нуля.

Когда не следует реорганизовывать код?

Рефакторинг кода важен, но бывают ситуации, когда в этом нет необходимости. Например:
  1. Когда дешевле создавать новый код с нуля.
  2. Если вам нужны большие изменения в вашем проекте.
Теперь давайте посмотрим на каждую из этих ситуаций.

Когда рефакторинг обходится дороже, чем создание новой системы

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

Если вам нужно внести крупные изменения в систему

Иногда нет смысла выполнять рефакторинг кода, потому что вам нужна новая структура приложения, CMS или другое серьезное изменение. Внесенные вами изменения снова сделают код сложным и беспорядочным. Следовательно, вскоре вам потребуется новый рефакторинг кода. Просто измените то, что вам нужно, а потом выполните рефакторинг кода. Таким образом, ресурсы не будут потрачены зря.

Вывод

Рефакторинг кода означает его упрощение, повышение его четкости и организованности. Его следует регулярно повторять после обновлений и добавления новых функций, поскольку структура кода становится более сложной. Также необходимо выполнять рефакторинг кода во время разработки и при обнаружении ошибок. Хотя организация этого процесса может быть сложной задачей для компании, преимущества рефакторинга слишком очевидны, чтобы ими не воспользоваться. Вы можете повысить эффективность, быстрее исправить проблемы, повысить производительность системы и интегрировать новые функции с минимумом затраченных усилий. Но вам не требуется делать рефакторинг, если ваш код стал настолько сложным, что его легче написать с нуля, или если вы хотите внести серьезные изменения в продукт.
Комментарии (1)
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ
Vladimir Komarov Уровень 41
1 марта 2021
Софт-скилл это когда менеджер туповат в техническом плане и требует, чтобы его работу выполняли технические специалисты, улыбаясь при этом.