Mad Devs Channel
1.61K subscribers
662 photos
30 videos
1 file
865 links
Канал Mad Devs.🤘Здесь мы рассказываем о жизни компании и инсайтах. Делимся знаниями и лайфхаками IT-индустрии.
Download Telegram
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, что обеспечивает пользователям полный контроль над своей вычислительной инфраструктурой;
📌 Отлично подходит для больших компаний или компаний с большим будущим.

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

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

А если у вас все же остались вопросы, то ждем их в комментариях 🤌
👍3🔥2👎1
Готовы узнать нечто новое о модуляризации iOS-приложения?

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

Статья доступна на двух языках:
🔗 Модуляризация iOS-приложения
🔗 Modularizing an iOS Application
🔥8
Бывает так, что в работе мы привыкаем к одному паттерну и не замечаем собственных ошибок. Сегодня мы поговорим про ошибки, которые допускают в своей работе программисты.

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

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

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

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

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

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

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

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

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

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

Учиться на своих ошибках всегда полезно, но не забывайте поглядывать на чужие. Такой подход поможет вам сэкономить время, энергию и деньги 😉
4👍1🔥1
Если вы новичок в планировании тестирования, то сегодня мы постараемся ответить на все ваши вопросы о том, что такое план тестирования и зачем это нужно.

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

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

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

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

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

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

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

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

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

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

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

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

9️⃣ Определите результаты тестирования и сообщите о своих выводах после завершения тестирования.
👍3🔥2
Спешим поделиться новым интервью 🫡

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

Есть тут тот, кто видит себя в QA тестировании? Бегите читать 🏃
11🔥4👍1
Принципы хорошего кода и хорошего программиста💻

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

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

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

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

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

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

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

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

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

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

Какими принципами вы руководствуетесь в работе? А может, мы что-то упустили? Расскажите об этом в комментариях ✍️
👍8🔥1
Спрос на 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, но в этом не всегда легко разобраться. Эта книга поможет структурировать знания на конкретных примерах.

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

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

Знакомы с какой-то из этих книг? Поделитесь и своими рекомендациями.
🔥6
В написании кода лучше придерживаться принципов SOLID. Потому что кодовая база должна быть гибкой, расширяемой и легко тестируемой. В статье Айбека Ногоева, Software Development Engineer, вы узнаете о значении каждого из пяти принципов на понятных примерах.

Статья доступна на русском и английском:
🔗 Принципы SOLID в iOS разработке
🔗 SOLID Principles in iOS Development
👍4
Что такое 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. Расскажите о своем опыте в комментариях 👇
👍5👎1
💪 Во вселенной IT люди увлечённые, фанаты разработки — это самураи исходного кода, а клавиатура — их оружие. Эти войны борются с медленным кодом, уродливым API, вопиющими косяками существующих систем. Однако все мы зачастую работаем не одни, а в команде. А что главное в таком случае? Конечно же общение. И это не только про умение излагать мысли, но и про умение слушать собеседника.

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

🩹 Но как это можно исправить?

🔍 Для начала присмотритесь к себе. Сперва стоит принять тот факт, что вы пишите код для других людей, а не для машины. Почему так? Программисты жаждут, чтобы их поняли как людей, чтобы коллеги приняли и разделили их мышление, начав вдумчиво использовать предложенную архитектуру. Так как без восхищения коллег работа не принесёт удовлетворения.

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

😌 Критика в командной работе неизбежна. Если вы видите слабые места в работе сокомандника, то постарайтесь её донести конструктивно, спокойно. Примерьте на себя опыт собеседника и вспомните, как вы сами начинали свой путь, с какими трудностями сталкивались.

🛣️ Если же вы слышите критику в адрес своей работы, то постарайтесь прислушаться и реагировать без раздражения. Бывает так, что вы просто не замечаете, что пошли не туда. А так как люди зачастую критичны к новому, то критика со стороны может оказаться отличным шансом проверить свои убеждения на прочность. А также это отличная возможность обогатить свои знания за счет другого человека.

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

🗃️ Если собрать все воедино, то можно сказать, что бремя современных самураев — это быть пристальным и въедливым. Но при этом научиться принимать позиции друг друга для выработки общих подходов. Для гармоничного рабочего процесса стоит выработать качества как экстраверта (умение слышать и доносить мысли) так и интроверта (пристальность к деталям, усидчивость, сосредоточенность). Научитесь проявлять эмпатию в технических аспектах.

🚲 Немаловажно научиться отвлекаться от работы и искать вдохновение для нее в сторонних делах и хобби. Очень часто для этого выбирают нетехническое хобби. Кто-то учится играть на музыкальных инструментах, кто-то вяжет, а кто-то разбирается в искусстве.

Как видите, чтобы вас слышали, нужно самому научиться слушать. Взаимоуважение, взаимопомощь и небезразличие друг к другу помогают выстроить в команде благоприятную и продуктивную атмосферу, что позволяет преодолеть все трудности 🏆
🔥6👍1
This media is not supported in your browser
VIEW IN TELEGRAM
Когда один из разработчиков вставил в свою программу рандомный кусок кода, чтобы проверить работает ли он. В ролях: тестировщик, джуны, ПМ, стажер, техлид.
😁14👍1
Популярные практики автоматизации тестирования 🧰

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

Прежде чем, как начнется автоматизация тестирования, вам необходимо принять решение:
📌 что вы будете автоматизировать
📌 в каком порядке.

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

Давайте, рассмотрим пять критических областей/факторов\, о которых следует помнить, когда вы рассматриваете возможность интеграции автоматического тестирования в свой текущий рабочий процесс.

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

🧰 Автоматизируйте тесты, которые выполняются всегда
Что позволит вам иметь набор стабильно работающих тестов. Создавая набор автоматизированной регрессии, вы можете:
📌 запускать тесты, которые быстро выявляют любые ошибки, возникающие в результате изменений в программном обеспечении.
📌 иметь набор стабильных тестов, жизненно важных для приложения.
📌 экономить время.

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

🧰 Автоматизируйте тесты, требующие нескольких конфигураций
Утомительно проводить тесты в различных операционных системах и комбинациях браузеров. Также, автоматизация таких тестов может помочь сэкономить время, если запускать их:
📌 в различных средах, просто изменив переменную среды.
📌 параллельно, что сокращает время, необходимое для выполнения.

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

🔴 Данный список представляет из себя отправную точку, если вы думаете, как интегрировать автоматизацию в текущий рабочий процесс QA.
🔥5
Когда PM спрашивает, почему все коммиты приходят вместе и в конце недели:

😁12😢1
Протокол SSH и его прелести

Существует несколько сетевых протоколов, каждый из которых занимает свое место в индустрии 🏭

SSH или Secure Shell это сетевой протокол для удаленного управления операционной системой по зашифрованным каналам. 🔗

Какие возможности дает SSH?

🗂 Удаленная работа с файлами, директориями и базами данных.

📲 Удаленный запуск команд и приложений.

🔐 Проксирование и шифрование трафика.

Звучит недурно, но как именно он может использоваться?

🌐 Системное администрирование сетей, неудивительно видя основные достоинства протокола.

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

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

Отлично, но какие решения есть для его использования?

🗄 SSH сервер 🗄

BSD

📌 OpenSSH отличный открытый бесплатный OpenSSH практически на все случаи жизни

Linux

📌 dropbear открытый и бесплатный, небольшой, но достаточно простой и совсем нетребовательный сервер SSH отлично работающий с терминалами POSIX

📌 OpenSSH все тот же открытый, бесплатный и универсальный OpenSSH доступен также на Linux, как и на все остальные платформы, а еще имеет встроенный клиент для Linux и MаcOS, но о клиентах чуть позже.

Windows

📌 WinSSHD немного олдскула для тех, кому вдруг понадобился SSH с поддержкой Windows 2000, XP, 2003, Vista, 2008 и 7.

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

📓 SSH клиент 📓

Linux/BSD

📌 OpenSSH - пожалуй, один из самых традиционных и топовых клиентов для Linux.

📌 Vinagre - отличный клиент, который поддерживает работу с GNOME

MS Windows

📌 PuTTY - особенно полезно, когда нужно подключиться по ssh с Windows к Linux.

📌 KiTTY - расширенная версия PuTTY, добавляющая еще больше функционала. Обе версии бесплатные и имеют открытые исходники.

📌 SecureCRT - мощный платный клиент корпоративного уровня, доступный на всех платформах и особенно популярный на Windows.

MacOS

📌 OpenSSH - бесплатный клиент с открытыми источниками и широкими возможностями, идет в комплекте с MacOS, однако требует JailBreak для iOS и iPadOS.

Android

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

Хотя задача SSH клиентов одна, их очень и очень много, с самым разным набором функционала и условиями использования.

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

А мы желаем вам хорошего, продуктивного и безопасного дня ❤️
🔥5
This media is not supported in your browser
VIEW IN TELEGRAM
"Не трогай то, что работает" 👾
😁29
Хотите начать смотреть сериалы на английском, но не знаете, с чего начать? Мы подготовили небольшой список, который поможет вам с выбором 📺

@extra (Экстр@), [Elementary👶]
Эта серия британских обучающих иностранным языкам сериалов. И является идеальным вариантом, если вы только знакомитесь с языком и любите ситкомы.
Сюжет: Две девушки — Бриджит и Энни, снимают комнату в Лондоне по соседству с беззаботным актером Ником. В их компанию вливается Гектор — наивный аргентинец, который задает основную динамику сериала, потому что плохо говоритпо-английск. Все 30 серий друзья будут пережить самые разные житейские приключения, которые не дадут вам заскучать.

The Hollow (Лощина), [Elementary👶]
Анимационный сериал канадского производства. Главная особенность этого сериала заключается в том, что персонажи говорят четко и не слишком быстро, а также используют простой для понимания сленг.
Сюжет: Три главных героя — Адам, Кай и Мира просыпаются в незнакомом подземном бункере. Их цель — выбраться из него и отыскать дорогу домой. Но на пути их поджидают обитатели странных городов, сложные загадки, таинственные временные порталы.

The Umbrella Academy (Академия Амбрелла), [Pre-Intermediate/Intermediate🧒]
Один из популярных супергеройских сериалов последнего времени, который пропитан иронией. Персонажи харизматичны и легко запоминаются. А их короткие и простые диалоги, а также доступная для понимания речь актеров — прекрасный вариант для тех, кто хочет посмотреть сериал на английском.
Сюжет: В центре истории семья, в которой все дети обладают сверхспособностями. А их главная цель — раскрыть тайну смерти своего приемного отца-миллиардера. Помимо этого, им нужно предотвратить грядущий конец света.

Настоящий детектив / True Detective [Pre-Intermediate/Intermediate🧒]
Если вам нравятся вдумчивые и атмосферные сериалы, то этот вариант для вас. Он наполнен мрачной философией, бытовыми драмами, цинизмом. Отлично подойдет желающим узнать сложную лексику.
Сюжет: Все начинается с убийства, которое предстоит распутать паре детективов: Расту и Мартину. Серии заманивают зрителя в мрачный и антуражный мир тем, что в сериях затрагиваются 3 временных пласта, где оба героя разного возраста.

«Desperate Housewives» [Intermediate👨]
Уже с самых первых кадров «Отчаянные домохозяйки» пленяют красотой фешенебельной улицы Вистериа Лэйн, основным местом событий телесаги. После просмотра этого сериала вы точно запомните необходимые фразы для small talk: все постоянно спрашивают, как у кого дела, как дети, школы, работа. Неизбежно прилипают и сами фразы, и понимание того, что в англоязычной культуре small talk – обязателен.
Сюжет: В центре событий четыре современные домохозяйки, которые живут в тихом пригороде и отчаянно ищут личного счастья. Однако внезапное самоубийство подруги Мэри Элис Янг оставляет всех в недоумении. Поиски ответов приводят еще к большим загадкам.

The Crown (Корона) [Upper Intermediate/Advanced👴]
Сериал отлично подходит тем, кто хочет услышать аутентичный «королевский» английский и пополнить словарный запас историческими терминами.
Сюжет: В сериале представлены важные события из жизни королевы Великобритании Елизаветы II. Временной период от ее замужества в 1947 году и до наших дней.

Billions (Миллиарды) [Upper Intermediate/Advanced👴]
Данный сериал прекрасно подойдет тем, кто хочет освоить финансовую и биржевую лексику. Так и тем, кто хочет получить удовольствие от хорошего сериала.
Сюжет: Все разворачивается вокруг американского миллиардера, чей бизнес процветает во время кризиса.

Этот список не может быть полным без ваших комментариев 😉 Ждем ваших рекомендаций.
👍7🔥2👎1
Ожидание & Реальность
😁14👍61
Copilot новый помощник или восстания машин?

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

Он основан на Codex OpenAI и обучался на огромной кодовой базе всего GitHub, в котором хранятся архивы более 70 млн разработчиков.

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

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

Код, предложенный Copilot, уже составляет более 35% нового кода Github на Java и Python и данные показатели растут, а значит и удовлетворенность разработчиков данным инструментом тоже.

🤔 Стоит ли начинать бояться данного инструмента? Совсем нет!

Для тех кто боится искусственного интеллекта и всего, что с ним связанного, то Всемирный экономический форум прогнозирует, что к 2025 году ИИ заменит 85 млн рабочих мест во всем мире.

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

✍️ Сам Copilot не ставит перед собой цель заменить разработчиков, а избавить разработчиков от утомительных поисков нужного кода на Stack Overflow, Google и так далее.

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

☝️ Copilot не поможет в архитектурных решениях, уникальных решениях проприетарного кода и так далее.

☝️ Copilot не поможет начинающим разработчикам написать код за них, а поможет опытным разработчикам четко понимающих все используемые архитектуры и практики программирования.

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

Используйте ли вы Copilot уже сейчас и насколько вы довольные его работой в вашем случае? Насколько большие у него перспективы и насколько глубоки его недостатки?

❤️ Нам очень интересно узнать ваше мнение, ждем вас в комментариях 🤌
🔥6👍3
С Днем Программиста!!! 🥳

📜 Программист (от древнегреческого про- пред, и грамма - писание, програма - расписание театральных представлений) - человек, который умеет писать компьютерные программы, компьютерные сети, чинить компьютерное оборудование типа принтеров и знать обо всех компьютерных играх.

😎 Этой удивительной професии уже несколько десятков лет и в течение этого времени программисты действительно стали главными авторами мирового театра.

🦾 Вы привносите в наш мир то, что меняет наш образ жизни, наш образ мышления, наше понимание прошлого и будущего.

❤️ Мы бесконечно благодарны вам за вашу страсть, энтузиазм и инициативы, которые делают лучше жизнь каждого из нас.

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

Зачем нужен код-ревью?
Код-ревью — это процесс проверки кода, который позволяет:
▪️ выявить ошибки, пропуски, уязвимости и стилистические недочеты.
▪️ улучшить читаемость и понятность кода, архитектурные решения.

Какие существуют принципы хорошего код-ревью?
▪️ Взаимоуважение. Помните, что вы оцениваете код, а не человека. Это база, из которой складывается здоровая атмосфера в команде и эффективная работа.
▪️ Будьте объективны. Постарайтесь избегать комментариев, которые состоят только из субъективных оценок. Аргументацию стоит писать уважительно и ссылаться на источники, документацию, материалы, которые помогут разработчику быстрее решить проблему.
▪️ Не давайте готовое решение, так как ваша задача — подсказать, как ещё можно подступиться к задаче, какие инструменты можно использовать.
▪️ Больше общайтесь с командой, потому что некоторые моменты проще объяснить во время созвона или личной встречи. Лучшая команда — та, которая умеет эффективно общаться.
▪️ Учитесь в процессе код-ревью. Например, если в Pull Request для обсуждения изменений придут большие профессионалы с полярными мнениями, то приготовьтесь узнать много нового.
▪️ Помните, что вы несете такую же ответственность за будущую корректную работу кода, как и его автор. Учитывайте, что от ваших комментариев зависит, насколько качественно человек выполнит свою работу.
▪️ От первой полученной обратной связи зависит, как человек будет работать в дальнейшем, поэтому постарайтесь внимательно относиться к новичкам. Потому что может оказаться, что от этого зависит, останется ли он вообще с вами. Чем ответственнее вы и ваши коллеги относятся к код-ревью, тем быстрее будут расти новички как профессионалы.

Когда не нужно проводить код-ревью?
Вы можете отказаться от код-ревью в конкретном случае, если:
▪️ Отсутствует специалист, обладающий экспертизой в области специфики задачи;
▪️ Изменения незначительны, не требующие проверки.
Вы можете отказаться от постоянной практики код-ревью, если:
▪️ Все разработчики имеют одинаковый уровень погружения в контекст;
▪️ Были приняты другие практики проверки кода (например, парное программирование);
▪️ Практика в вашем случае показала свою неэффективность.

Как часто вы проводите код-ревью? А возможно, у вас есть чек-лист хорошего ревью? Расскажите в комментариях 👇
🔥2