Архив рубрики: Публикации

Что означает DO в Ruby?

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

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

Мы начнем с основного синтаксиса, а затем обсудим такие функции, как yield, которые могут напугать новых пользователей Ruby.

 

Что такое блоки Ruby?

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

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

В Ruby есть два способа определения блока: первый — использовать ключевое слово do..end, второй — использовать пару фигурных скобок.

Блок Do..end в основном используется при определении блока кода, охватывающего несколько строк, а фигурные скобки {} используются при определении блока кода, охватывающего одну строку.

Вы передаете аргументы блока между парой вертикальных черт | |

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

 

Базовый пример

Ниже приведены два простых примера блока Ruby, в одном из которых используются фигурные скобки, а в другом — do..end.

# single line - {}

['Java', 'C', 'C++'].each { |i| puts i}



# multi-line -> do..end

['Java', 'C', 'C++'].each do |i|

puts i

end

 

Оба приведенных выше примера дают похожие результаты:

  • Java
  • C
  • C ++

В приведенном выше примере блоки ruby ​​применяются в простейшей форме: мы передаем блок в каждый метод объекта массива. Передайте аргументы блока внутри пары вертикальных черт; в приведенном выше примере аргумент — i. Наконец, мы выводим функциональность блока внутри тела блока (в этом примере — put).

 

Понимание ключевого слова Yield в Ruby

Вы можете использовать блоки Ruby внутри стандартного метода. Функциональность для выполнения этого действия обеспечивается ключевым словом yield.

Давайте подробно обсудим ключевое слово yield.

 

Что такое yield в Ruby?

Ключевое слово yield в Ruby позволяет вызывать определенный блок внутри метода Ruby.

 

Как это работает

Давайте рассмотрим пример, который поможет нам понять, как работает ключевое слово yield. Рассмотрим простой метод Ruby, показанный ниже:

def hello

puts "Привет!"

end

 

Приведенный выше пример представляет собой простой метод Ruby, который выводит «Привет!».

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

Следовательно, мы можем закодировать метод как:

def hello(name)

puts "Привет, " + name

end

hello("Russia")

 

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

Мы можем расширить это еще больше, используя блок Ruby. Когда мы передаем блок внутри метода, он будет выполнен и вернет результаты.

 

Определение метода доходности

Чтобы создать метод, принимающий блок, мы используем ключевое слово yield. Общий синтаксис следующий:

def hello

yield

end

 

После определения мы можем вызвать метод и передать блок кода. Метод выполнит код и вернет результат.

 

Передача блока Ruby в метод

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

hello {puts "Hello world" }

 

Пока метод содержит ключевое слово yield, вы можете передать любой блок кода и выполнить его.

Примечание
После определения ключевого слова yield внутри метода вы ДОЛЖНЫ передать блок при вызове метода. В противном случае вы получите ошибку «Блокировка не задана (yield)».

 

Пример 2

Возьмем другой пример:

def hello

puts "before yield."

yield

puts "after yield."

end

hello {puts "I yield"}

 

В приведенном выше примере показано, как работает выполнение метода с использованием yield. Вывод программы ниже:

before yield

I am yield

after yield

Аргументы блока Ruby

Ruby позволяет передавать аргументы блоку Ruby. Аргументы блока определены в блоке yield и служат параметрами блока.

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

def hello

yield("Andrey Ex", 23)

end

hello { |name, age| puts "Hello #{name}, you are #{age} years old"}

 

Параметры, определенные внутри блока, имеют локальную область видимости и доступны только в контексте блока.

Следовательно, вы получите неопределенную переменную, используемую вне области блока.

 

Пример 3

Функциональность блока не меняется на однолинейных или многострочных блоках. Мы можем проиллюстрировать это на примере ниже:

def area

yield(7)

end

area do

puts "площадь круга #{7 * 3.14159}cm2"

end

 

Результат из приведенного выше примера:

Площадь круга 21.99113cm2

 

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

 

Явные блоки

В предыдущих примерах мы определили блоки как неявные. Однако мы также можем описать их как явные.

Явные блоки означают, что мы назначаем имя списку параметров метода.

def example(&block)

block.call

end

example {puts "Explicit block example" }

 

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

 

Обработка ошибок блока

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

Метод возвращает логическое значение true, если yield доступен, и false, если в противном случае.

Рассмотрим простой пример ниже:

def hello

if block_given?

yield

else

puts "Nothing happened...[ERROR]"

end

end

 

Если мы вызовем метод с требуемым значением yield, результат будет:

hello {puts "Hello there!"}

Hello there!

 

С другой стороны, вызов метода без yield выполнит блок else как:

hello

Nothing happened...[ERROR]

 

Используя значение из block_given? , вы можете реализовать логику обработки ошибок, когда нет значения yield.

 

Заключение

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



2021-11-05T20:28:20
Ruby

Платить или нет за почту для домена?

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

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

Платить или нет за почту для домена?

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

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

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

Как известно, при передаче электронных писем применяются специфические цифровые ключи разной длины. При этом, чем длиннее будет ключ, тем надежнее окажется передача данных между пользователями. В то же самое время Google уверяет своих клиентов в почти абсолютной безопасности своего сервиса, однако несложный эксперимент математика из США поставил под сомнение справедливость этого высказывания. Так, длина ключа в почте Gmail составляла всего 1024 бита – длины этого криптографического инструмента должно было хватать для того, чтобы обезопасить пользователей от подделки входящей корреспонденции и более надежной защите от спама. Между тем, как оказалось, простой американский математик может расшифровать ключ и подделать электронную почту. Ирония в том, что однажды даже было подделано письмо от Ларри Пейджа к Сергею Брину, после чего Google отказался от ключа в 1024 бита в пользу 2048 битной защиты. Однако это не говорит ни о чем, кроме того, что на расшифровку такой «защиты» уйдет немного больше времени и, по сути, в механизмах безопасности Google ровным счетом ничего не изменилось.

Если вы еще сомневаетесь платить за почту на собственном домене или нет, то прочтите эту статью о «Бесплатном хостинге на Яндексе» и всех его «преимуществах». На сайте Tendence.ru вы можете заказать хостинг корпоративной почты для домена бесплатно в течении тестового периода.



2021-11-05T20:12:53
Безопасность

Обзор Windows 11, стоит ли обновиться и переживать

Ставим Windows 11 сейчас?

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

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

Функций и возможностей, в принципе, достаточно для повседневного использования, поэтому никаких неудобств не испытывается. Все функции ранней версии Windows 11, которые планируется обновить и доработать, скорей будут патчем, а не полноценным обновлением. Уже сейчас встроенный Microsoft Teams, который не обязателен для использования и наличия на компьютере, ну и Paint стал чуть красивей. Если вас это все же заинтересует, то можете ознакомиться с советами и рекомендациями по Microsoft Teams на официальном сайте.

 

Важные изменения программного обеспечения

Одно из самых важный изменений — новый дизайн системы, что, конечно, мотивирует к обновлению. Новой версии ждали поистине долго в этот раз, да еще и с жесткими требованиями — UEFI, TPM 2.0 и обязательная веб-камера, но это с 2023 года. Все выглядит так, что если у вас нет камеры на компьютере, то в пользоваться Windows 11 вы не вполне сможете. Общество, как вы понимаете, сразу высказало все возмущения этим решением.

Многие обыватели и среднестатистические пользователи компьютеров могут не знать что такое UEFI или какая актуальная на устройстве версия TPM. Незнание зачастую и вызывает больше всего возмущений. А пытаясь в этом разобраться они идут в поисковую систему Google за ответом, хотя могли просто воспользоваться поиском по системе и узнать не ходя за ответом далеко.

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

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

 

Информация обновляется ежемесячно

Таких примеров множество, погнутые iPad, некачественная покраска iPhone или недоработки в компьютерных играх, если сталкивались с Cyberpunk 2077, то понимаете о чем речь.

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

Какая такая уникальная функция есть в и чего ожидать от выпуска Windows 11 мы рассматривали в нашей статье, что ей нужно начать пользоваться безотлагательно? Стоит ли ради этого торопиться с установкой? Да, было бы прекрасно, если бы Windows начал поддерживать приложения на Android, но когда это случится, остается только гадать.

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

 

Ожидания от Windows 11

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

Стоит ли переживать, что мощности и особенностей вашего персонального компьютера недостаточно для поддержки Windows 11? На самом деле не особо, так как поддержка десятой версии сохранится до 2025 года, при этом одиннадцатая версию не предлагает технологических прорывов.

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

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



2021-11-03T17:42:52
Microsoft

Ruby. Обратная строка

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

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

 

Метод 1: Reverse

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

Например:

str = "Привет, мир!"

puts str.reverse

 

Пример выше должен вернуть «Привет, мир!» задом наперед:

!рим ,тевирП

 

Обратный метод не влияет на исходную строку; он возвращает копию только в обратном порядке.

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

str = "Привет, мир!".reverse!

puts str

Метод 2: цикл

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

Рассмотрим следующий пример:

src = "Привет, мир!"

rev = ''

for i in 1..src.length

puts src[i]

rev += src[src.length - i]

end

puts rev

 

Примечание
Вы можете игнорировать строку «put src [i]». Его цель — проиллюстрировать, как работает код.

 

Вы заметите, что результат аналогичен обратной функции.

!рим ,тевирП

Метод 3: обратное слово

Предположим, вы хотите перевернуть слово вместо одного символа? В таком сценарии мы можем разделить предоставленную строку и перевернуть каждое слово.

Взгляните на пример ниже:

word = "это полное предложение"

word = word.split(" ").reverse!.join(" ")

puts word

 

В приведенном выше примере мы разбиваем предложение на несколько слов (используя пробелы). Затем мы переворачиваем каждое слово и снова соединяем их.

Результат выглядит следующим образом:

предложение полное это

Метод 4: инъекция

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

Начнем с создания массива из указанной строки с помощью метода chars:

"Привет, мир!".chars

 

Когда у нас есть массив символов, мы можем вызвать метод inject.

puts "Привет, мир!".chars.inject {|x, y| y + x}

 

Результирующее значение — это переданная строка в обратном порядке.

 

Заключение

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



2021-11-03T17:37:29
Ruby

Будет ли майнинг криптовалюты прибыльным в 2021 году?

2021-11-03T10:36:39
Криптовалюта

Особенности обслуживания кофемашин

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

 

Почему кофемашине нужно ТО?

Кофейные автоматы здорово упрощают приготовление напитков. Они представлены разными категориями, основные:

  • профессиональные;
  • бытовые;
  • встраиваемые;
  • вендинговые.

 

Именно профессиональное оборудование вынуждено постоянно выдерживать высокие нагрузки, в результате чего выходит из строя. На 100% исключить риски поломок нельзя. Минимум раз в год любой кофемашине необходимо сервисное обслуживание. Работы включают замену комплектующих, полную чистку устройства. Если не проводить подобных операций, кофемашина начнет работать некорректно, потом может сломаться в принципе. Не стоит доводить ситуацию до крайностей. Своевременное ТО обходится дешевле экстренного ремонта и занимает намного меньше времени.

 

Основные сервисные работы

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

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



2021-11-03T09:21:23
Бизнес