dragonscave.space is one of the many independent Mastodon servers you can use to participate in the fediverse.
A fun, happy little Mastodon/Glitch instance.

Server stats:

244
active users

#сложность

0 posts0 participants0 posts today
Habr<p>[Перевод] Остерегайтесь эффекта Makefile</p><p>Существует специфический «эффект Makefile», напоминающий такие феномены как карго-культы, нормализация отклонений, «нечитабельный язык» и т.д. В этой статье я берусь утверждать, что Makefile — явление того же порядка, с той оговоркой, что он немного отличается от вышеперечисленных феноменов. Makefile не является по сути своей неэффективным или плохим и сказывается на результатах проектирования лишь в некоторых ситуациях. Не могу подобрать идеального названия для этого явления, так что буду называть его просто «эффект Makefile». Эффект Makefile не назовёшь однозначно порочным — просто нужно иметь его в виду при проектировании инструментов и систем. Суть эффекта Makefile сводится к следующему:</p><p><a href="https://habr.com/ru/articles/873040/" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="">habr.com/ru/articles/873040/</span><span class="invisible"></span></a></p><p><a href="https://zhub.link/tags/makefile" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>makefile</span></a> <a href="https://zhub.link/tags/%D1%81%D0%BB%D0%BE%D0%B6%D0%BD%D0%BE%D1%81%D1%82%D1%8C" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>сложность</span></a> <a href="https://zhub.link/tags/%D0%BA%D0%BE%D0%BD%D1%84%D0%B8%D0%B3%D1%83%D1%80%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>конфигурирование</span></a> <a href="https://zhub.link/tags/%D0%B8%D0%BD%D1%81%D1%82%D1%80%D1%83%D0%BC%D0%B5%D0%BD%D1%82%D1%8B" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>инструменты</span></a> <a href="https://zhub.link/tags/%D0%BE%D0%B1%D1%83%D1%87%D0%B5%D0%BD%D0%B8%D0%B5" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>обучение</span></a></p>
Andrey Pechorin<p><a href="https://mastodon.ml/tags/vim" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>vim</span></a> <a href="https://mastodon.ml/tags/nvim" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>nvim</span></a> <a href="https://mastodon.ml/tags/%D0%BB%D1%8E%D0%B1%D0%BE%D0%B2%D1%8C" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>любовь</span></a> <a href="https://mastodon.ml/tags/%D1%81%D0%BB%D0%BE%D0%B6%D0%BD%D0%BE%D1%81%D1%82%D1%8C" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>сложность</span></a> </p><p>Я крайне сильно люблю vim. Сижу на нем лет 15. Даже плагин на косарь звезд написал. Но есть одна особенность — у меня постоянно ощущение, что я ничем не владею в нем. Этим хаосом очень сложно овладеть. Мой гипер-контроллер страдает.</p><p>Постичь все кейбинды просто невозможно. По факту я пользуюсь и осознаю наверное 1% от всех кейбиндов. Я не про базовые movement, а именно про все вариации всех сочитаний в разных режимах и контекстах. </p><p>Сложна и неподконтрольно короче.</p><p>Собственно к чему это я? Да ни к чему :) Helix чтоли попробовать.</p><p>Вот пример сложности: <a href="https://github.com/kylechui/nvim-surround" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">github.com/kylechui/nvim-surro</span><span class="invisible">und</span></a> — чтобы добавить ковычки вокруг слова надо вбить ysiw) — читаю это как "y surround inside word" (Что за y? yank чтоли). Ох, трудно. Вариант из mini.nvim "as" (add surround) мне нравится больше, но этот плагин у меня пока вообще не заработал :) </p><p>В общем продолжаем нашу вечную борьбу с вимом, наверное в этом вывод.</p>
Tefida<p>Почему важно создавать сложные пароли?</p><p>В сегодняшнем лайфхаке вы узнаете, почему так важно создавать сложные пароли для любых используемых сервисов.</p><p>Полный материал доступен по ссылке:<br><a href="https://tefida.com/why-is-it-important-to-create-complex-passwords/" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">tefida.com/why-is-it-important</span><span class="invisible">-to-create-complex-passwords/</span></a></p><p><a href="https://mstdn.social/tags/specopssoftware" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>specopssoftware</span></a> <a href="https://mstdn.social/tags/%D0%B1%D0%B5%D0%B7%D0%BE%D0%BF%D0%B0%D1%81%D0%BD%D0%BE%D1%81%D1%82%D1%8C" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>безопасность</span></a> <a href="https://mstdn.social/tags/%D1%81%D0%BB%D0%BE%D0%B6%D0%BD%D0%BE%D1%81%D1%82%D1%8C" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>сложность</span></a> <a href="https://mstdn.social/tags/%D0%BF%D0%B0%D1%80%D0%BE%D0%BB%D1%8C" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>пароль</span></a> <a href="https://mstdn.social/tags/%D1%81%D0%BE%D0%B2%D0%B5%D1%82%D1%8B" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>советы</span></a> <a href="https://mstdn.social/tags/tefidacom" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>tefidacom</span></a></p>
Ambassador Tablicek<p>Вспомнил что на недавних грейдах коллега, не получив от миддла ответ, набросил, что <a href="https://lor.sh/tags/%D1%81%D0%BB%D0%BE%D0%B6%D0%BD%D0%BE%D1%81%D1%82%D1%8C" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>сложность</span></a> задачи зависит от числа компонентов, затрагиваемых ей и связей между ними.</p><p>Решил в рамках помощи коллеге в том, чтобы тоже решиться уже пойти на грейды и сдать их, сформулировать готовый ответ на этот вопрос, да и кашу в голове систематизировать.</p><p>Определение от коллеги не совсем подходит к задачам, как по мне, но хорошо подходит к системам. А вот задача, если рассматривать её как изменение части системы человеком - кажется, имеет сильно больше факторов, влияющих на её решение чем только компоненты и связи.</p><p>Я бы добавил сверху уровень контроля над ними - если один из компонентов чужой, влиять на него сложнее, добавляются коммуникационные проблемы и это сожрёт больше времени (обычно).</p><p>Помимо сложности у задачи есть <a href="https://lor.sh/tags/%D1%81%D1%80%D0%BE%D0%BA%D0%B8" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>сроки</span></a> и <a href="https://lor.sh/tags/%D1%81%D1%82%D0%BE%D0%B8%D0%BC%D0%BE%D1%81%D1%82%D1%8C" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>стоимость</span></a> . Обе этих вещи зависят от<br>имеющихся ресурсов - в том числе кадровых. Стоимость можно оценить только постфактум - это буквально сумма затраченных ресурсов, в том числе зарплату исполнителя.</p><p><a href="https://lor.sh/tags/%D1%81%D1%80%D0%BE%D0%BA%D0%B8" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>сроки</span></a> - здесь можно только прогнозировать, зная задействованные <a href="https://lor.sh/tags/%D1%80%D0%B5%D1%81%D1%83%D1%80%D1%81%D1%8B" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>ресурсы</span></a> и.. сложность. Условно, задействовав ресурсы сеньора и джуна - время будет разным.</p><p>Ho и <a href="https://lor.sh/tags/%D1%81%D1%82%D0%BE%D0%B8%D0%BC%D0%BE%D1%81%D1%82%D1%8C" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>стоимость</span></a> джуна и сеньора разные. Где-то окажется дешевле сделать руками джуна, где-то сеньора, где-то миддла.</p><p>Кажется, что оптимальный по стоимости уровень сложности задач в зависимости от грейда - около 75% до потолка, с которым человек может справиться (с исключением для сеньоров, потому что больше некому).</p><p>Не знаю куда отнести уровень определённости/неизвестности, в <a href="https://lor.sh/tags/%D1%81%D0%BB%D0%BE%D0%B6%D0%BD%D0%BE%D1%81%D1%82%D1%8C" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>сложность</span></a> , в её определении выше, их не вписать, но на время и в итоге на стоимость они влияют, пожалуй, даже сильнее чем число этих связей между компонентами. Уровень погружения в проект и понимания системы - прямо влияет на эти уровни.</p><p>Обычно я, оценивая большие проекты, использую коэффициент (1-100%) определённости вдобавок к интуитивным прогнозам стоимости/срока. </p><p>Прогноз / коэффициент = пессимистичный прогноз,</p><p>Прогноз * коэффициент = оптимистичный прогноз.</p><p>Чем-то это всё напоминает <a href="https://lor.sh/tags/%D1%82%D1%80%D0%B8%D0%B7" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>триз</span></a> с разделением конструкторских и изобретательских задач - в изобретательских определена лишь проблема, но не решение и даже направление решения. И хорошо решённая изобретательская задача заключается в минимальном изменении компонентов и связей между ними с итоговым достижением цели решаемой задачи, без излишнего усложнения системы.</p>
Habr<p>[Перевод] Советы по программированию, которые бы я дал себе 15 лет назад</p><p>У меня наконец-то появилось ощущение, что я хороший программист, поэтому было бы неплохо записать советы вида «как бы я смог добиться этого быстрее?». Не буду утверждать, что все эти советы отлично подойдут всем, но для меня они были бы хорошими. ▍ Если ты (или твоя команда) постоянно стреляешь себе в ногу, то почини ружьё Не могу перечесть случаи, когда при работе в команде у нас была какая-то часть системы, которая легко могла поломаться, но никто не думал о том, как усложнить появление таких ошибок. Когда я занимался разработкой для iOS, то использовал CoreData и подписывался на изменения нескольких view. Обратный вызов подписки поступал в тот же поток, из которого было запущено изменение. Иногда это был основной поток, а иногда — фоновый. В разработке для iOS важно то, что вносить изменения в UI можно только в основном потоке, иначе приложение вылетит. Поэтому подписка могла работать нормально, но потом ломалась, когда кто-то запускал изменение из фонового потока или вы позже добавляли обновление UI. Все без раздумий воспринимали это как что-то само собой разумеющееся, и об этом часто говорили в ревью для новичков в команде. Время от времени кто-нибудь ошибался, и мы добавляли DispatchQueue.main.async , когда видели отчёт о сбое. Я решил это исправить. У меня ушло десять минут на внесение изменений в слое подписки, теперь подписчики вызывались в основном потоке, что позволило избавиться от целого класса сбоев и сняло с нас часть умственной нагрузки.</p><p><a href="https://habr.com/ru/companies/ruvds/articles/839256/" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">habr.com/ru/companies/ruvds/ar</span><span class="invisible">ticles/839256/</span></a></p><p><a href="https://zhub.link/tags/%D1%81%D0%BB%D0%BE%D0%B6%D0%BD%D0%BE%D1%81%D1%82%D1%8C" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>сложность</span></a> <a href="https://zhub.link/tags/%D1%83%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5_%D0%B1%D0%B0%D0%B3%D0%BE%D0%B2" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>устранение_багов</span></a> <a href="https://zhub.link/tags/%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%B0_%D0%B2_%D0%BA%D0%BE%D0%BC%D0%B0%D0%BD%D0%B4%D0%B5" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>работа_в_команде</span></a> <a href="https://zhub.link/tags/%D0%BE%D0%BF%D1%82%D0%B8%D0%BC%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F_%D1%82%D1%80%D1%83%D0%B4%D0%BE%D0%B7%D0%B0%D1%82%D1%80%D0%B0%D1%82" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>оптимизация_трудозатрат</span></a> <a href="https://zhub.link/tags/ruvds_%D0%BF%D0%B5%D1%80%D0%B5%D0%B2%D0%BE%D0%B4%D1%8B" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>ruvds_переводы</span></a></p>
Habr<p>Мартышка и АйТи</p><p>Мартышка и АйТи: Парадокс сложной эффективности Вы когда-нибудь задумывались, почему в IT всё циклично? Почему старые методы и технологии, которые когда-то были на пике популярности, возвращаются на сцену? Давайте разберёмся, что такое Парадокс сложной эффективности на простом примере, а также посмотрим, как это работает в IT последние 30 лет.</p><p><a href="https://habr.com/ru/articles/823624/" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="">habr.com/ru/articles/823624/</span><span class="invisible"></span></a></p><p><a href="https://zhub.link/tags/%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>программирование</span></a> <a href="https://zhub.link/tags/%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%81%D1%82%D1%8B" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>программисты</span></a> <a href="https://zhub.link/tags/%D1%81%D0%BB%D0%BE%D0%B6%D0%BD%D0%BE%D1%81%D1%82%D1%8C" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>сложность</span></a></p>