Se ha denunciado esta presentación.
Utilizamos tu perfil de LinkedIn y tus datos de actividad para personalizar los anuncios y mostrarte publicidad más relevante. Puedes cambiar tus preferencias de publicidad en cualquier momento.
Ready
Ready 
Please Mute 
your mobile 
devices
General Sponsors 
Platinum Sponsors 
Gold Sponsors 
Silver Sponsors 
Bronze Sponsors 
Promoters 
Ready
try { 
Marjan Nikolovski 
Father, Dev, CEO/Emit Knowledge 
// Twitter: @m4rjann 
// Blog: emitknowledge.com/research-labs ...
Ready 
Посветено за сопругата и синот
Ready
Агенда 
Ready 
• Теорија на грешки; 
• Типови на грешки; 
• Справување со грешки по тип; 
• Одговорни и засегнати страни; ...
ГРЕШКА Е БИЛО КОЈ ПРЕКИН КОЈ ГО СПРЕЧУВА 
СИСТЕМОТ ДА ЈА ИЗВРШУВА ФУНКЦИЈАТА ЗА КОЈА 
Ready 
Е НАМЕНЕТ
Ready 
Секој сериозен систем мора да има добра стратегија на справување со 
грешките 
Голем дел од кодот се труди да се сп...
Ready 
Типови на грешки 
Багови, проблеми кои не може да ги предвидиме и контролираме. 
Пр: Stackoverflow, Nullpointer... ...
Ready 
Типови на грешки 
Грешки настанати од несоодветен внес на податоци. 
Пр: Во поле за целоброен тип, корисникот внесу...
Ready 
Типови на грешки 
Инфраструктурни проблеми. 
Пр: Забрана за читање на податоци на диск, полн диск, податочниот серв...
Ready 
Со кои типови на грешки 
може да се справиме? 
Баговите се системски проблеми со кои не може да се справиме. 
Невал...
Ready 
Одговорни и засегнати 
страни 
Корисниците на системот. 
Системските администратори. 
Софтверските инженери.
Ready 
Кој е одговорен за 
справување со грешките? 
Софтверските инженери.
Ready 
Стратегии за справување 
со грешки 
Глобална – на ниво на систем. 
Локално-контекстуална – на ниво на процес/метод/...
Ready 
КЛИЕНТ/КОРИСНИЧКИ 
ИНТЕРФЕЈС 
БИЗНИС ЛОГИКА 
ПОДАТОЧНО РЕПОЗИТОРИ 
АПИ СЕРВИСИ 
ЕКСТЕРНИ СЕРВИСИ 
СПРАВУВАЊЕ 
СО ГР...
Ready 
Глобална стратегија 
Глобална перспектива на системот. 
Централизирано справување со грешки. 
Сакаме детален опис н...
Ready 
Глобална стратегија 
Повеќе-нивоовска апстракција се коси со глобалната стратегија. 
Интерно, системот не треба да ...
Ready 
Што правиме доколку 
акцијата може да се 
повтори (retry)? 
Локалниот контекст стапува на сцена. 
Локалниот контекс...
Ready 
Демо
Ready 
Справување со грешки и 
екстракција на податоци 
во бизнис логика; 
Унификација на грешки, кодови и групи. 
Информа...
Ready 
Демо
Ready 
Справување со грешки и 
екстракција на податоци 
во веб апликации; 
Пренос на доволна информација. 
Дефинирање на с...
Ready 
Демо
Ready 
Справување со грешки и 
екстракција на податоци 
на клиентско ниво; 
Локализација на грешки. 
Пренесување на информ...
Ready 
Демо
Ready 
Анализа на логови 
Кој, Што, Како, Каде, Кога? 
Одговор на прашањата: 
- Како се користи сотфверот? 
- Тесно грло в...
Ready
Ready 
catch(PPTException up){ 
} 
Logger.Log(“ПРАШАЊА?”, up); 
throw up;
Thank you 
Ready
Próxima SlideShare
Cargando en…5
×

Down the rabbit hole - Error handling examined

1.373 visualizaciones

Publicado el

Справување со грешки и исклучоци во еден систем е предизвик кој често се занемарува. Во предавањето ќе покриеме теорија на грешки, справување со грешки и исклучоци на ниво на солуција, контекст и податочна анализа на лог датотеки.

Publicado en: Software
  • Sé el primero en comentar

Down the rabbit hole - Error handling examined

  1. 1. Ready
  2. 2. Ready Please Mute your mobile devices
  3. 3. General Sponsors Platinum Sponsors Gold Sponsors Silver Sponsors Bronze Sponsors Promoters Ready
  4. 4. try { Marjan Nikolovski Father, Dev, CEO/Emit Knowledge // Twitter: @m4rjann // Blog: emitknowledge.com/research-labs Ready Down the rabbit hole Error handling examined }
  5. 5. Ready Посветено за сопругата и синот
  6. 6. Ready
  7. 7. Агенда Ready • Теорија на грешки; • Типови на грешки; • Справување со грешки по тип; • Одговорни и засегнати страни; • Стратегии за справување со грешки; • Покажани практики на терен; • Справување со грешки и екстракција на податоци во бизнис логика; • Справување со грешки и екстракција на податоци на клиентско ниво; • Справување со грешки и екстракција на податоци во веб апликации; • Анализа на логови;
  8. 8. ГРЕШКА Е БИЛО КОЈ ПРЕКИН КОЈ ГО СПРЕЧУВА СИСТЕМОТ ДА ЈА ИЗВРШУВА ФУНКЦИЈАТА ЗА КОЈА Ready Е НАМЕНЕТ
  9. 9. Ready Секој сериозен систем мора да има добра стратегија на справување со грешките Голем дел од кодот се труди да се справи со грешки и прекини во системот Полесно е да се специфицира и напише код за тоа што треба еден систем да прави. Тежината е да се предвиди што може да тргне наопаку.
  10. 10. Ready Типови на грешки Багови, проблеми кои не може да ги предвидиме и контролираме. Пр: Stackoverflow, Nullpointer... using System; class Program { static void Main() { User appUser = DomainServices.User.GetByUsername(@“marjann”); Console.WriteLine(appUser.Email); } }
  11. 11. Ready Типови на грешки Грешки настанати од несоодветен внес на податоци. Пр: Во поле за целоброен тип, корисникот внесува карактери... using System; class Program { static void Main() { var userIdInput = Console.ReadLine(); int id = int.Parse(userIdInput); Console.WriteLine(id); } }
  12. 12. Ready Типови на грешки Инфраструктурни проблеми. Пр: Забрана за читање на податоци на диск, полн диск, податочниот сервер не е достапен... using System; class Program { static void Main() { var user = UserRepository.GetByUsername(@”marjann”); Console.WriteLine(user.Email); } }
  13. 13. Ready Со кои типови на грешки може да се справиме? Баговите се системски проблеми со кои не може да се справиме. Невалиден внес на податоци е системски проблем со кој системот успешно треба да се справи. При инфраструктурни проблеми, системот треба да е спремен да ги извести задолжените и одговорни страни за истиот.
  14. 14. Ready Одговорни и засегнати страни Корисниците на системот. Системските администратори. Софтверските инженери.
  15. 15. Ready Кој е одговорен за справување со грешките? Софтверските инженери.
  16. 16. Ready Стратегии за справување со грешки Глобална – на ниво на систем. Локално-контекстуална – на ниво на процес/метод/акција.
  17. 17. Ready КЛИЕНТ/КОРИСНИЧКИ ИНТЕРФЕЈС БИЗНИС ЛОГИКА ПОДАТОЧНО РЕПОЗИТОРИ АПИ СЕРВИСИ ЕКСТЕРНИ СЕРВИСИ СПРАВУВАЊЕ СО ГРЕШКИ
  18. 18. Ready Глобална стратегија Глобална перспектива на системот. Централизирано справување со грешки. Сакаме детален опис наместо завиткана грешка! Сакаме детали за извршувањето! Сакаме унифицирани пораки!
  19. 19. Ready Глобална стратегија Повеќе-нивоовска апстракција се коси со глобалната стратегија. Интерно, системот не треба да ги сокрива грешките. Пр: User.IsExistingUsername(“marjann”) -> DbConnetionException != false Надворешно, системот треба да е транспарентен и унифициран во информирање при настанување на грешка. Пр: Invalid username, Username is not valid!?
  20. 20. Ready Што правиме доколку акцијата може да се повтори (retry)? Локалниот контекст стапува на сцена. Локалниот контекст е исклучок, а не правило! Не можеме да се справиме со повеќето грешки. Целта е да го држиме системот жив. Чесен исклучок на правилото: If it does not work fake it! Пр: Немаме пристап до база, корисниот сака да се регистрира со корисничко име, враќаме резултат дека корисничкото име е зафатено.
  21. 21. Ready Демо
  22. 22. Ready Справување со грешки и екстракција на податоци во бизнис логика; Унификација на грешки, кодови и групи. Информации за грешка(Error Info) наспроти Грешка(Exception). Збогатување на грешката со информации и логирање.
  23. 23. Ready Демо
  24. 24. Ready Справување со грешки и екстракција на податоци во веб апликации; Пренос на доволна информација. Дефинирање на страници за грешки.
  25. 25. Ready Демо
  26. 26. Ready Справување со грешки и екстракција на податоци на клиентско ниво; Локализација на грешки. Пренесување на информација за грешка до корисникот.
  27. 27. Ready Демо
  28. 28. Ready Анализа на логови Кој, Што, Како, Каде, Кога? Одговор на прашањата: - Како се користи сотфверот? - Тесно грло во извршување? - Параметри на извршување? - Шаблони на извршување? ПРОМ – алатка за процесно рударење.
  29. 29. Ready
  30. 30. Ready catch(PPTException up){ } Logger.Log(“ПРАШАЊА?”, up); throw up;
  31. 31. Thank you Ready

×