Получи случайную криптовалюту за регистрацию!

Mad Devs Channel

Логотип телеграм канала @maddevsio — Mad Devs Channel M
Логотип телеграм канала @maddevsio — Mad Devs Channel
Адрес канала: @maddevsio
Категории: Технологии
Язык: Русский
Страна: Киргизия
Количество подписчиков: 1.64K
Описание канала:

Канал Mad Devs.🤘Здесь мы рассказываем о жизни компании и инсайтах. Делимся знаниями и лайфхаками IT-индустрии.

Рейтинги и Отзывы

1.50

2 отзыва

Оценить канал maddevsio и оставить отзыв — могут только зарегестрированные пользователи. Все отзывы проходят модерацию.

5 звезд

0

4 звезд

0

3 звезд

0

2 звезд

1

1 звезд

1


Последние сообщения

2022-09-01 09:16:02 Что такое DeFi? И на какие проекты стоит обратить внимание

DeFi или decentralized finance — это независимая финансовая экосистема, открытая для всех пользователей, внутри которой участники взаимодействуют друг с другом напрямую, без посредников (банков, кредитных организаций и др.). Таким образом транзакции проходят быстрее и дешевле. Считается, что DeFi-протоколы являются одними из самых надежных и безопасных, так как они работают на базе технологий блокчейн и смарт-контракт.

Из чего состоит DeFi?

Проекты DeFi — это блокчейны, распределенные реестры для записи транзакций. На сегодняшний день большинство сервисов DeFi работают в сети Ethereum. Хотя активность растет и на других платформах, таких как Polkadot или EOS.

Цифровые активы или DeFi токены, представляющие ценность, которую можно продать или передать в сети блокчейна.

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

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

Стейблкоины — это цифровые активы, стоимость которых привязана к фиатной валюте, корзине фиатных валют или другим активам со стабильной стоимостью.

Популярные DeFi-токены на основе их рыночной капитализации по информации сайта CoinMarketCap:

DAI — это стейблкоин, созданный на базе Ethereum, который привязан к американскому доллару и обеспечивается набором других криптовалют. За развитие этого проекта отвечает приложение Maker Protocol и децентрализованная автономная организация MakerDAO.

Avalanche — одна из самых быстрых блокчейн-платформ смарт-контрактов. Перед проектом стоит задача убрать регуляторные и географические препятствия для операций с криптовалютами. Нативный токен Avax пользователи могут получать путем стейкинга.

Wrapped Bitcoin — это технология, которая переносит Bitcoin в блокчейн Ethereum. Иными словами, была создана для пользователей, которые хотят начать использовать приложения DeFi, но работают с биткоином.

Uniswap — децентрализованная биржа на базе Ethereum (DEX), которая упрощает обмен токенами ERC-20 между торговцами. Также существует одноименный токе Ethereum — Uniswap (UNI), который лежит в основе протокола Uniswap и объединяет токены в смарт-контракты и создает пулы ликвидности .

Возможно, вы уже знакомы с проектами DeFi. Расскажите о своем опыте в комментариях
179 views06:16
Открыть/Комментировать
2022-08-31 10:22:10 В написании кода лучше придерживаться принципов SOLID. Потому что кодовая база должна быть гибкой, расширяемой и легко тестируемой. В статье Айбека Ногоева, Software Development Engineer, вы узнаете о значении каждого из пяти принципов на понятных примерах.

Статья доступна на русском и английском:
Принципы SOLID в iOS разработке
SOLID Principles in iOS Development
269 views07:22
Открыть/Комментировать
2022-08-30 10:02:06 Спрос на Go разработчиков явно только растет. Успели уже изучить этот язык программирования? Ловите подборку книг, которые помогут, как новичкам, так и продвинутым разработчикам пополнить свои знания.

Язык программирования Go | Керниган Брайан У., Донован Алан А. А.
Исчерпывающие руководство, в которой вы найдете структурное понимание языка от А до Я. Книга очень легко написана и также содержит практические задания. Рекомендуется для тех, кто уже знаком с основами.

Pro Go: The Complete Guide to Programming Reliable and Efficient Software Using Golang | Adam Freeman
Отличный мануал по стандартной библиотеке языка Go. С самого начала вы познакомитесь с примера разработки простого HTTP-сервера, а далее вас ждет глубокое погружение в примитивы синхронизации. Отлично подходит для новичков.

gRPC: запуск и эксплуатация облачных приложений. Go и Java для Docker и Kubernetes| Касун Индрасири, Данеш Курупу
gRPC – наиболее популярная технология межсервисного взаимодействия. Разработчики Go часто применяют gRPC, но в этом не всегда легко разобраться. Эта книга поможет структурировать знания на конкретных примерах.

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

Распределенные данные. Алгоритмы работы современных систем хранения информации | Петров Алекс
Это просто обязательная книга к прочтению для бэкенд-разработчиков, чтобы вникнуть в построение баз данных. В книге нет практических примеров, но собрано огромное количество материалов из самых разных источников.

Знакомы с какой-то из этих книг? Поделитесь и своими рекомендациями.
165 views07:02
Открыть/Комментировать
2022-08-29 09:49:51 Принципы хорошего кода и хорошего программиста

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

KISS расшифровывается как «Keep it simple stupid». Важно при разработке проекта сделать стабильно работающую базу. А код сделать простым, потому что сложный код быстро становится трудоемким. Написанный код должен быть таким, чтобы в будущем при внесении правок не возникло трудностей.

DRY означает «Don't repeat yourself». Принцип нацелен на снижение повторения информации различного рода. Что позволяет добиться высокой сопровождаемости проекта, простоты внесения изменений и качественного тестирования.

Принцип «Открытый/Закрытый» означает, что нет смысла переписывать уже реализованные логические функции. Новые требования или элементы «открыты» для расширений, но «закрыты» для модификаций. Таким образом, однажды написанный код в дальнейшем требует только исправления ошибок, а новые или измененные функции требуют создания нового класса.

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

Принцип «Отдельной ответственности» гласит, что каждый класс должен заботиться о предоставлении только одного бита. Чтобы не нарушать данный принцип, задайте себе вопрос: «Где и когда меняется каждая функция?». Вы нарушаете этот принцип, если ответ будет «более чем в одном месте и более чем по одной причине».

Еще один принцип — YAGNI, который означает «You aren't gonna need it». Согласно нему, вам не нужно прописывали функции, которые могут не понадобиться в будущем, но только усложняют код.

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

Рефакторинг. Это нормально — возвращаться к старым участка кода и улучшать их, так как код редко получается совершенным с первого раза. Чтобы убедиться в правильности кода, лучше ещё раз просмотреть и переработать сделанное ранее.

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

Какими принципами вы руководствуетесь в работе? А может, мы что-то упустили? Расскажите об этом в комментариях
282 views06:49
Открыть/Комментировать
2022-08-25 11:59:22 Спешим поделиться новым интервью

Ксения Губанова, QA-тестировщик в Mad Devs, поделилась своими размышлениями о профессии, какими навыками должен владеть тестировщик и дала советы тем, кто хочет уйти в эту стезю.

Есть тут тот, кто видит себя в QA тестировании? Бегите читать
512 viewsedited  08:59
Открыть/Комментировать
2022-08-25 10:01:21 Если вы новичок в планировании тестирования, то сегодня мы постараемся ответить на все ваши вопросы о том, что такое план тестирования и зачем это нужно.

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

Тесты можно разделить на несколько категорий:
- Исследовательское тестирование
- Функциональное тестирование
- Тестирование локализации
- Тестирование производительности
- Тестирование безопасности

Зачем нужен план тестирования? Он поможет выявить потенциальные проблемы на ранней стадии, что сэкономит время и деньги в долгосрочной перспективе.

Как создать план тестирования? Сосредоточьтесь на реализации процессов и резделите на пункты, например:

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

Проанализируйте целевую аудиторию.

Разработайте стратегию:
- Соберите все тестовые сценарии и разработайте стратегию тестирования, тем самым определите что и когда нужно протестировать.
- Определите объемы тестирования. Это включает в себя решение о том, что необходимо протестировать, кто будет тестировать и когда оно должно быть завершено.
- Определите типы тестирования, что включает в себя понимание того, сколько испытаний необходимо, а также риски безопасности и конфиденциальности для вашего продукта.
- Разработка подхода к тестированию, а именно создайте свой подход к тестированию.

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

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

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

Спланируйте тестовую среду, что включает в себя все, от того, где будут проводиться тесты, до того, как это должно быть сделано и кто будет это делать.

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

Определите результаты тестирования и сообщите о своих выводах после завершения тестирования.
455 views07:01
Открыть/Комментировать
2022-08-24 09:59:17 Бывает так, что в работе мы привыкаем к одному паттерну и не замечаем собственных ошибок. Сегодня мы поговорим про ошибки, которые допускают в своей работе программисты.

У вас может быть недостаточно проработанная схема проекта, поэтому прежде чем начать работать разделите процесс на этапы:
Анализ требований
Создание схемы/прототипа
Реализация/написание кода
Даже небольшой, но правильно написанный фрагмент кода, послужит прочным фундаментом для сложной архитектуры.

Отсутствие единообразия и формата написания кода может затруднить его чтение. Для этого используйте определенные методологии написания кода или «плагины для форматирования кода», помогающие мгновенно избавиться от этой ошибки.

Не пренебрегайте комментариями, которые оставляете для команды. Помните, что есть два типа комментариев:
Поясняющие — это отражение вашего кода и предназначены для всех, кто будет его поддерживать, рефакторить и расширять.
Документационные — нужны для тех людей, кто в будущем будет использовать ваш код.
Комментарии более эффективны, если они сообщают другим «почему этот конкретный код пишется в данной ситуации». Пишите четко, лаконично и по существу.

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

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

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

Реализация кода с помощью шаблона проектирования не всегда является разумным шагом. Поэтому старайтесь делать все проще и не усложняйте себе и без того нелегкий труд. Помните, что прежде чем внедрять какое-либо решение, ответьте на три базовых вопроса: “Что использовать?”, “Где и когда использовать?”, “Как использовать?”.

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

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

Последняя, но не менее важная ошибка — пренебрежение собственным здоровьем. Бесспорно, к работе нужно относиться ответственно и стараться делать поставленные задачи в срок, но одно неизменно — ваша забота о собственном самочувствии.

Учиться на своих ошибках всегда полезно, но не забывайте поглядывать на чужие. Такой подход поможет вам сэкономить время, энергию и деньги
424 views06:59
Открыть/Комментировать
2022-08-23 09:03:40 Готовы узнать нечто новое о модуляризации iOS-приложения?

Узнайте больше в новой статье от Айбека Ногоева, Software Development Engineer, в которой он подробно рассказывает про процесс модуляции, раскрывая важные нюансы. А также подчеркивает преимущества этого процесса.

Статья доступна на двух языках:
Модуляризация iOS-приложения
Modularizing an iOS Application
438 views06:03
Открыть/Комментировать
2022-08-22 10:00:46 SaaS, SaaP, SaaI и как не перепутать их?

Вы могли видеть такие аббревиатуры как IaaS, PaaS, SaaS

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

Давайте же внесем ясность

SaaS или Software as a Service, также известные как службы облачных приложений, являются наиболее часто используемой услугой и дают доступ к программному обеспечению через интернет и запускаются прямо в веб браузере.

Примерами могут послужить Google WorkSpace

Преимущества:
Позволяют избежать скачивания и установки приложений;
За небольшую ежемесячную плату дают расширенные возможности;
Отлично подходят для малого и среднего бизнеса.

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

PaaS или Platform as a Service, также известные как услуги облачной платформы, которые предоставляют платформу и инструменты для работы над различными проектами через интернет.

Примером может быть Microsoft Azure, которая предоставляет гибкую и мощную платформу для разработки приложений, но позволяет не беспокоиться об инфраструктуре.

Преимущества:
Дает больший контроль над инструментами и данными;
Позволяет сосредоточиться на разработке уникального проекта;
Построен на виртуализации и позволяет не иметь глубоких знаний системного администрирования.

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

IaaS или Infrastructure as a Service, также известные как услуги облачной инфраструктуры, которые предоставляют возможность использовать облачные альтернативы дорогостоящей локальной физической инфраструктуре.

Различными примерами могут быть AWS или Adobe Commerce

Преимущества:
Предоставляет такие услуги, как хранение с оплатой по факту использования, сетевое взаимодействие и виртуализация;
Предоставляет доступ через панель мониторинга или API, что обеспечивает пользователям полный контроль над своей вычислительной инфраструктурой;
Отлично подходит для больших компаний или компаний с большим будущим.

Недостатки:
Это достаточно дорогостоящая услуга, самая дорогостоящая в этом списке;
Требует отдельных экспертизы для взаимодействия и использования.

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

А если у вас все же остались вопросы, то ждем их в комментариях
460 views07:00
Открыть/Комментировать
2022-08-19 13:12:15 У нас замечательная новость, которую мы бы хотели разделить с вами!

Роман Панарин (ML Engineer) и Катя Блудова (IT-recruiter) подготовили задачу для всероссийского чемпионата по программированию «Цифровой прорыв: сезон искуственный интеллект». И их задача вошла в топ 3 лучших. А ребят пригласили во Владивосток, в качестве авторов одной из крутейших задач!

По каждой из этих задач будут выбраны победители (в том числе по нашей), а призовой фонд для нашей задачи составляет - 1 миллион рублей, который распределится между призовыми местами! Призы победителям будут вручать президенты России, Китая и Японии, а стоимость билетов этого мероприятие уже составляет около 500к рублей.

Ссылка на конкурс. По ссылке можно найти и нашу задачу, называется «Разработка алгоритма прогнозирования выполнения задачи».
582 views10:12
Открыть/Комментировать