[тысяча сто двадцать один] решаемый [тысяча сто двадцать один].
Мой код использовал sessionAttributes
из intent_request
, и проблема заключалась в том, что, когда нет атрибутов сеанса, соответствующий элемент JSON устанавливается как пустой, то есть "sessionAttributes" : {}
(как вы можете видеть на рисунке 1), но в В случае сообщения от Facebook этот элемент установлен на None
, то есть "sessionAttributes" : None
(как вы можете видеть на рисунке 2).
Таким образом, я получил ошибки вроде:
[ERROR] TypeError: argument of type 'NoneType' is not iterable
Traceback (most recent call last):
File "/var/task/lambda_function.py", line 104, in handle
if 'userName' in session_attributes:
или
[ERROR] TypeError: 'NoneType' object does not support item assignment
Traceback (most recent call last):
File "/var/task/lambda_function.py", line 54, in handle
session_attributes['lastIntent'] = intent_request['currentIntent']['name']
Я обнаружил это, просмотрев журналы лямбда-функций (на веб-странице описания лямбда-функций нажмите вкладку Monitoring
и View logs in CloudWatch
).
Изображение 1:
Изображение 2:
Я работаю со многими разработчиками из Украины. Первоначально я действительно думал, что были главные культурные различия - такие как склонность хотеть использовать "милый" код с помощью непостижимых шаблонных конструкций и т.д.
Однако я нашел, что различия выравниваются довольно быстро, если Вы связываетесь хорошо, и прямо сейчас я довольно доволен кодом, появляющимся оттуда.
Одна вещь, которую я заметил, состоит в том, что они имеют тенденцию помещать меньше важности в чистый, пересмотренный код в противоположность коду, который просто работает. Орфографические ошибки, неуместные буквы, плохое форматирование, я вижу больше из этого от Киевских разработчиков, чем локальные. Их обычно более низкий уровень английского языка играет роль, но иногда это - простая небрежность, и это не становится фиксированным - ошибка просто вставляется копией везде.
В целом, хотя я думаю, что разработчики являются разработчиками, и если Вы развиваете культуру уважения и ответственности, можно найти хороших, надежных людей везде, которые будут соответствовать способу работать с небольшой адаптацией с Вашей стороны.
Я не думаю декларации такого рода вещи непосредственно в коде, даже при том, что люди, которым нравится думать в клише (который все делают до некоторой степени), вероятно, воображают это тем путем.
Но конечно, существуют косвенные воздействия столкновений культур. Я неоднократно слышал, что проблема с индийскими подрядчиками состоит в том, что они не могут привести себя для противоречия начальнику, поэтому если Вы дадите им невозможный крайний срок, то они поставят вместе взломанные максимальные усилия плачевного качества, а не скажут Вам, что оно просто не может быть сделано в такое короткое время. Конечно, тот же результат может (и часто), достигнутый сверхоптимистическим, "может сделать" отношение, поощренное во многих американских компаниях.
Просто думайте о различных способах маркировать важные функции/классы и так далее... По моему опыту, все коллеги из других стран действительно работали очень отличающиеся только из-за переменных приоритетов в написании их схем класса
Что-то о "Расстоянии Питания" играет роль. Я сначала столкнулся с этим в Выбросах Malcom Gladwell.
Как здесь в Юго-Восточной Азии, мы также имеем, "не может противоречить превосходящей" культуре, которая внушена в обществе. Который, мы пытаемся преодолеть в разработке программного обеспечения так, чтобы мы могли вписаться в более гибкие модели.
На непрограммировании мы используемся для вызова незнакомцев и пожилых людей "Сэром" и "Госпожой", которую мы должны забыть при контакте с людьми от Западных культур.