Successfully reported this slideshow.

Need It Robust? Make It Fragile!

1

Share

Upcoming SlideShare
Fail Fast. Into User's Face.
Fail Fast. Into User's Face.
Loading in …3
×
1 of 12
1 of 12

Need It Robust? Make It Fragile!

1

Share

Download to read offline

DEVit 2016; Thessaloniki, Greece; 20 May 2016. Video is here: https://www.youtube.com/watch?v=nCGBgI1MNwE

DEVit 2016; Thessaloniki, Greece; 20 May 2016. Video is here: https://www.youtube.com/watch?v=nCGBgI1MNwE

More Related Content

Related Books

Free with a 14 day trial from Scribd

See all

Related Audiobooks

Free with a 14 day trial from Scribd

See all

Need It Robust? Make It Fragile!

  1. 1. /10@yegor256 1 Need It Robust? Make It Fragile! Yegor Bugayenko
  2. 2. /10@yegor256 2 less bugs
  3. 3. /10@yegor256 3 Fail Safe vs. Fail Fast
  4. 4. /10@yegor256 4 Fix Report Use Deploy
  5. 5. /10@yegor256 5 int len(File f) { if (f == null) { return -1; } } int len(File f) { if (f == null) { throw new Exception( “file can’t be NULL” ); } }
  6. 6. /10@yegor256 6 try { stream.read(); } catch (IOException ex) { ex.printStackTrace(); } try { stream.read(); } catch (IOException ex) { throw new RuntimeException( “failed to read stream”, ex ); } exception swallowing
  7. 7. /10@yegor256 7 void push(int x) { if (pos < array.length) { array[pos++] = x; } } void push(int x) { if (pos >= array.length) { throw new Exception( “array is full” ); } array[pos++] = x; }
  8. 8. /10@yegor256 8 @Override void save() { // not implemented yet } @Override void save() { throw new Exception( “not implemented yet” ); }
  9. 9. /10@yegor256 9 file.delete(); if (!file.delete()) { throw new Exception( “failed to delete file” ); }
  10. 10. /10@yegor256 10 User find(int id) { if (/* not found */) { return null; } // continue... } User find(int id) { if (/* not found */) { throw new Exception( “user not found” ); } // continue... }
  11. 11. /10@yegor256 11 Fix Report Use Deploy
  12. 12. /10@yegor256 12 www.yegor256.com

×