Pull to refresh
6
26
Максим Савостьянов @AppCrafter

Пишу приложения на iOS. Периодически преподаю.

Send message

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

Я до сих пор не до конца понимаю что это значит. Ожидал разъяснения какого-то разъяснения, но оказалось, что формат статьи не такой... Может хотя бы кто-то из комментаторов объяснит?

Что такое "возвращаемое значение"? Если кратко, то это значение, которое возвращает функция.

Особенность возвращаемого значения состоит в том, что его можно присвоить в другую переменную.

Некоторые функции возвращают значение, некоторые не возвращают.

Признаком того, что функция возвращает значение является указание на это после круглых скобок с параметрами функции.

Пример, как это выглядит в Swift:

func sum (a: Int, b: Int) -> Int {
   var с = a + b
   return c
}

В этом примере мы объявляем функцию с названием sum.

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

После круглых скобок идет стрелка и указание типа: -> Int. Это и есть обозначение того, что данная функция возвращает значение. Если такой стрелки нет, то функция значения не возвращает.

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

Как происходит возврат значения? - Мы объявляем новую переменную и присваиваем ей значение из функции, как результат некой операции, которую функцию выполнила.

var d = sum(a: 5, b: 3)

В итоге, переменная d теперь хранит значение 8, которое ей вернула функция sum.

Если же, в объявлении данной функции не указано -> Int, то она ничего не возвращает и, соответственно, ничего присвоить в другую переменную мы не можем.

Здесь мы с вами, что называется "not the same")). Мне как раз более интересна именно архитектура of software.

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

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

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

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

Хорошая статья, спасибо автору!

Но а как же Viper, MVVM, MVP?

И более общий вопрос - что такое архитектура приложения?

Такой вопрос: например, есть компьютерная игра. С чего начать, чтобы защитить ее? Скажем так, дизайн у неё простой, там если что и надо защищать, так совсем немного. Основное код, а ещё точнее алгоритм игры. Хотелось бы защитить её в максимальном количестве стран, чтобы избежать неконтролируемого копирования. Что из озвученного вами в этом посте следует сделать в этом случае?

Вопрос конечно интересный))

Я бы не сказал, что "бизнес-процесс" невнятный и расплывчатый термин. Он очень даже активно используется. Тот же Google выдаёт несколько тысяч результатов по нему.

А ChatGPT показал следующее соотношение между этими двумя терминами:

  • Бизнес-процесс состоит из множества операций, объединенных общей целью.

  • Операция — это более мелкая "единица работы", которая выполняется в рамках бизнес-процесса.

Это выглядит достаточно логично.

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

Очень полезная тема! И видно, что автор действительно активно интересуется человеческим поведением, столько психологических концепций здесь использовано.

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

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

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

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

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

Information

Rating
262-nd
Registered
Activity

Specialization

Mobile Application Developer, Game Developer
Senior
Python
OOP
Code Optimization
JavaScript
SWIFT
SwiftUI
UIKit
Xcode
iOS development
Development of mobile applications