Привет, в данном посте вы найдете перевод статьи Mangabo Kolawole, в которой пойдет речь о Test-Driven Development. Мы создадим крайне простое приложение на React по всем правилам TDD.
Первое правило Test-Driven Development (TDD) – это написание тестов перед написанием кода. Это звучит более интуитивно, когда мы говорим о разработке для бэкенда, если честно, но работает ли данная схема для фронтенда, в частности для React, что же, посмотрим.
Новости
Как мы четыре года организовываем работу на удаленке с помощью Discord
Тренд 2020 года продолжает расти. Все больше компаний дают возможность работать сотрудникам в гибридном формате или полностью из дома.
Я расскажу, как мы организовали удаленную работу в Discord.
Меня зовут Илья, я CTO компании 2people IT и один из её основателей. Основная наша деятельность – это разработка мобильных и веб-приложений на заказ.
Как сделать звукозаписывающую студию в домашних условиях. Интервью с SERZH — музыкантом и звукорежиссёром
Год назад в Ютубе мне попался видеоклип на песню «Катарсис». Песня, скажем так, неплохая, но в мой плейлист она не попала. Меня заинтересовал, в первую очередь, тот факт, что там снялся писатель-фантаст и видеоблогер Сурен Цормудян, поклонником коего я являюсь. А недавно мне довелось связаться с самим автором песни — музыкантом по имени SERZH, и взять у него интервью.
Как задавать требования к качеству ПО в цифрах?
Требования к качеству, несмотря на свой небольшой размер, очень сильно влияют на реализуемость всей совокупности требований, на трудоёмкость, длительность и стоимость реализации, а следовательно окупаемость инвестиций в разработку и в целом возможную успешность проекта.
Это та причина, по которой многие подрядчики стараются избегать таких требований, как огня, что перекладывает риски во времени на более поздние этапы и на заказчика.
Но в мире честных, открытых отношений выгоднее заранее обсудить эти аспекты, чем потом с удивлением спорить при сдаче, что система тормозит, в ТЗ про это ничего не сказано, «вы же профессионалы» и всё такое.
Стандарты по программной и системной инженерии предлагают десятки видов атрибутов качества системы, а заказчики требуют, чтобы система была удобной, быстрой, надёжной и безопасной.
При этом остаётся прагматический вопрос — а что именно писать в требования, чтобы они были полезными, измеримыми, реализуемыми?
С точки зрения системной инженерии, требования к качеству программной системы являются разновидностью системных ограничений (constraints) и в этом они отличаются от требований к способностям (capabilities) системы, в мире ИТ обычно называемых «функциональными».
Пока что умение специалистов и команд выявлять и формулировать такие ограничения представляет собой скорее искусство, а не ремесло, и не инженерию.
Давайте попробуем сделать это хотя бы ремеслом.
Как разработчику перестать быть потребителем технологий
За последние несколько лет, в процессе работы и общения со множеством разработчиков, я заметила часто повторяющийся паттерн. Он меня сильно беспокоил и я продолжала о нём думать и говорить, пытаться найти понимание или даже оправдание ему.
Почему ты выбрал такой подход к решению?
- Не знаю. Прочитал в какой-то статье.
- Не знаю. Скопипастил его из X.
- Не знаю. Такой же подход я использовал в предыдущем проекте.
- Не знаю. Кто-то мне посоветовал.
Этот паттерн можно назвать "потреблением вместо творчества". Потреблением без сомнений и вопросов. Потреблением, потому что можно спрятаться за чьим-то авторитетом.
Я видела разработчиков, берущих решение других людей как должное. Без малейших раздумий о выбранном подходе, не заморачиваясь анализом. Да, конечно, когда Дэн Абрамов говорит мне, как правильно использовать React, или в документации написано, что это единственный способ применения API, то с этим нужно согласиться. Тем не менее, когда вы используете какой-то технический контент без хотя бы доли скептицизма, то вы всё равно сможете продвинуться в своей карьере, но есть вероятность, что это вам помешает.
8 проектов с открытым исходным кодом
Представляю несколько проектов с исходным кодом начиная от инструментов для повышения производительности до B2B приложений. Решения можно использовать как замену платным.
Поиск вредоносного кода «голыми руками»
Последнее время появилась острая необходимость проверять, что прилетело с очередными обновлениями кода в папку /vendor /venv или любую другую, где лежат исходники внешних зависимостей проекта. (poetry, composer, go install и тд., кто на чем пишет).
Сканеры безопасности решают данный класс задач, но их может не оказаться под рукой или тяжелое решение не подходит. Гугл не дал быстрого готового решения, когда под рукой только консоль.
Часть задач сводится к тому, чтобы найти определенный текст, ключевые слова, хардкод (например ip адрес) или опасный системный вызов. В голову сразу приходит grep. Но мы же хотим не только искать по одному слову и только в одном или группе файлов. Мы хотим проверить весь код по всем возможным словарям, которые определим сами.
Как перенести треки из Spotify в Яндекс.Музыку (полное руководство)
Недавно компания Spotify заявила о временном уходе с рынка РФ. Сейчас не понятно, что будет с аккаунтами российских пользователей и сохраненной ими музыкой, поэтому самое время позаботиться о переносе своих любимых треков в другой сервис.
Vue или React? Кратко о возможном росте технического долга и что лучше для начинающих
В статье ставится проблема избыточной сложности использования фреймворка React.js при богатстве его функций, описана возможная тенденция роста технического долга и зависимость между предоставляемыми средствами и величиной технического долга.
Что подразумевается под необоснованной сложностью проектов?
Для начала необходимо отметить, что «React» в отличии от «Vue» предоставляет огромную свободу разработчику. Благодаря этому разработчики любят данный фреймворк и всячески указывают, что приложения на «React» будут быстрее и производительнее чем на «Vue». Это несомненно так, «React» приложения можно сделать быстрым, производительным и легко тестируемым. К сожалению, достичь этого крайне тяжело и из-за этого многие компании могут иметь не высокопроизводительные приложения, а наоборот перегруженные излишним кодом и трудно тестируемые приложения. Это связанно с тем, что начинающим разработчикам сложно понять, как правильно писать приложения на «React».
«React» словно тренер по плаванию, бросает вас в воду и говорит плыви, ему не важно будете вы правильно дышать или махать руками, ему важно чтобы вы плыли. Проецируя данный пример на «React», мы получаем возможность писать очень плохой рабочий код. Особенно это распространено в командах, где нет специалиста по «React». Люди меняются и каждый раз поддерживать приложение все труднее и труднее, кто-то увидел пример в функциональном стиле:
Люди работают не так много, как вы думаете
Как ты расслабляешься, да я особо и не напрягаюсь. Именно этот анекдот хотелось привести в преамбуле к данной переводной заметке. Это прямо манифест лени as is. Весьма любопытное столкновение западной и восточной культуры. Нам в М.Видео-Эльдорадо особо прокрастинировать некогда, но дискуссию можно продолжить в комментариях.
Мотивация под санкциями: как восстановить производство дофамина и начать действовать
Сегодня хочу поговорить с вами про компонент нашего мозга, который генерирует мотивацию и желание достигать различные вершины: от похода в «Макдак» до заработка миллиардов каких-либо условных единиц.
Это чудо-вещество называется дофамин — это нейромедиатор и нейрогормон. Вы наверняка слышали о нем, но с высокой долей вероятности вас ввели заблуждение о его истинной роли.
В этой статье этот миф будет развеян по ветру. Бонусом обсудим нужно ли поднимать дофамин и если да, то как это сделать.
Можно ли стать программистом после 30? На личном примере. Часть 1
Всем привет! Мне без пару месяцев 30 и я решил предпринять самую последную и решительную попытку сменить профессию. Это будет четвертая попытка :) Не припомню, что бы на 4-ку мне как-то по жизни очень везло, но надеюсь это как раз тот самый момент!
Открытие компании в США как актуальное сегодня решение проблем с платежами, картами и переводами
Многие ищут способы открыть себе счет из России удаленно в нормальном зарубежном банке. Но давайте признаем: это либо нереально сразу, либо влечет за собой разные сложности в виде блокировок и ограничений в будущем.
Компания в США — абсолютно полноценное решение. По мне это самый простой, удобный, надёжный и дешевый (!) способ существовать в текущих реалиях всем, кто мало-мальски связан с межграничной работой/транзакциями. Включая оплаты сервисов.
Дисклеймер: я не консультант по этой теме, просто имею собственный опыт, который наложил на небольшой опрос и текущие перспективы, и хочу поделиться. Буду рад любым уточнениям, возможностям, рассказам об опыте в комментариях. В обычной жизни являюсь сооснователем YC-стартапа Beau.
Сейчас часто пишут, что невозможно открыть банковский счет компании с российским паспортом. Однако в банках и сервисах-помощниках (Stripe Atlas, Firebase, Clerky и др.) запрещены не люди, а территории: если планируется вести бизнес в России, то нельзя. Да, это в том числе определяется резидентством учредителя. Другими словами, ВНЖ в другой стране решает все проблемы.
Списки запрещенных стран у сервисов занятные — Бурунди, ЦАР, Северная Корея, Венесуэла, Россия и др. Отрезвляет.
Если у вас нет ВНЖ в другой стране, то вот простой лайфхак — открыть компанию, добавив у нее нерезидента РФ: он может быть с российским паспортом, но жить за границей. Иногда (но не всегда) достаточно одного такого учредителя (основного заявителя), а остальные вполне могут быть резидентами в России. После получения всех документов (включая EIN) и открытия счета в банке никто не запрещает сменить состав учредителей. А можно этого и не делать вовсе.
[препринт] Уход из Strava позволил мне проанализировать тренировки или визуализация данных, используя лишь смартфон
Из-за * событий на Украине попал под санкции спортивной соц.сети Strava (примечание — заявление Strava в отношении всей "этой*" ситуации).
Перед уходом в другую спортивную соц.сеть я выгрузил все свои тренировки из Strava и с помощью GNU/Linux/Termux & Python решил предварительно проанализировать своё телодвижение. Распарсил тренировки и создал визуализацию всей личной активности за прошедшие годы. Получилось так, как проголосовали пользователи Хабра (см. "the end").
Свой plugin для Nautobot — это совсем не сложно
Мне очень нравится концепция Single Source of Truth. Мне очень нравятся Netbox и Nautobot. Но функционала “из коробки” не всегда хватает. К счастью, есть система расширений (plugins), которая позволяет адаптировать платформу под конкретные нужды пользователей. Раньше, когда мне нужен был плагин, я искал готовые решения в сообществах. А если таковых не находилось, то оставалось только ждать, когда эти неведомые разработчики, умеющие писать плагины, соблаговолят разработать такое нужное мне расширение. Но оказалось, что написать плагин самому не так уж и сложно. И уж точно не стоит этого бояться.
Свести дорожки, добавить эффекты в браузере — поможет TwistedWave
На прошлой неделе мы рассказали о компактном инструменте AudioMass. Он позволяет «нарезать» звуковую дорожку прямо в браузере. Сегодня поговорим о другом аудиоредакторе, который тоже не требует установки специальных приложений.
Реализация простой HTML5-панели управления серверами с поддержкой IPMI
Для удаленного доступа к физическим серверам клиенты хостеров используют программные средства, которые работают только при наличии операционной системы и специального софта.
Если система не установлена или возникли какие-то проблемы с ее настройкой (например, при попытке изменить правила межсетевого экрана), доступ можно потерять. В таких ситуациях на помощь приходят специализированные контроллеры, позволяющие управлять серверами без ОС, как если бы вы сидели за физической консолью. Рассказываем, как это работает у нас в HOSTKEY.
В чем разница между исключительным правом и неисключительной лицензией?
В праве есть два понятия, которые звучат похоже, но сильно отличаются. Это исключительное право и исключительная лицензия. Сейчас разберемся, в чем разница на примере ПО.
Итак, исключительное право - это возможность самому использовать ПО как угодно, а еще разрешать или запрещать его использовать всем другим.
Исключительное право изначально возникает у автора. Автор - это тот, кто создал произведение. В нашем случае автор - тот, кто написал код. Исключительное право может быть передано навсегда двумя способами: работодателю в рамках выполняемого служебного задания и по договору отчуждения. А еще можно дать возможность временно использовать исключительное право по лицензионному договору.
Фух. Обещаю, самое сложное закончилось - это главное, что нужно знать. Теперь немножко подробнее со всем этим разберемся.
Сначала рассмотрим варианты отчуждения исключительного права.
Первый вариант отчуждения права - права могут быть переданы работодателю, если работник оформлен по трудовому договору и создал ПО в рамках выполнения служебного задания.
Чтобы передача прав сработала, работодатель должен подготовить и подписать с работником комплект документов:
Как поместить ваше Next.js/React приложение в Docker
Привет, в переводе данного руководства вы сможете узнать как поместить ваше приложение в докер.
Докер – это открытая платформа для разработки, запуска и управления контейнерами на сервере и в облаке.
Для примера приложения в этом руководстве мы будем использовать Next.js.