Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Blue Pill x Red Pill

Blue Pill x Red Pill

Talk presented to computer science students at Universidade de São Paulo(USP) and USP São Carlos about important and interesting subjects that are usually not discussed in college. Such subjects include: Agile, Extreme Programming, dynamic languages, web frameworks, functional programming, Git and others.

Topics: https://gist.github.com/carlosgaldino/3291725

Carlos Galdino

September 28, 2012
Tweet

More Decks by Carlos Galdino

Other Decks in Programming

Transcript

  1. Manifesto for Agile Software Development We are uncovering better ways

    of developing software by doing it and helping others do it. Through this work we have come to value: Individuals and interactions over processes and tools Working software over comprehensive documentation Customer collaboration over contract negotiation Responding to change over following a plan That is, while there is value in the items on the right, we value the items on the left more.
  2. Manifesto for Agile Software Development We are uncovering better ways

    of developing software by doing it and helping others do it. Through this work we have come to value: Individuals and interactions over processes and tools Working software over comprehensive documentation Customer collaboration over contract negotiation Responding to change over following a plan That is, while there is value in the items on the right, we value the items on the left more.
  3. Manifesto for Agile Software Development We are uncovering better ways

    of developing software by doing it and helping others do it. Through this work we have come to value: Individuals and interactions over processes and tools Working software over comprehensive documentation Customer collaboration over contract negotiation Responding to change over following a plan That is, while there is value in the items on the right, we value the items on the left more.
  4. Manifesto for Agile Software Development We are uncovering better ways

    of developing software by doing it and helping others do it. Through this work we have come to value: Individuals and interactions over processes and tools Working software over comprehensive documentation Customer collaboration over contract negotiation Responding to change over following a plan That is, while there is value in the items on the right, we value the items on the left more.
  5. Manifesto for Agile Software Development We are uncovering better ways

    of developing software by doing it and helping others do it. Through this work we have come to value: Individuals and interactions over processes and tools Working software over comprehensive documentation Customer collaboration over contract negotiation Responding to change over following a plan That is, while there is value in the items on the right, we value the items on the left more.
  6. TDD

  7. public List<int[]> getThem() { List<int[]> list1 = new ArrayList<int[]>(); for

    (int[] x : theList) if (x[0] == 4) list1.add(x); return list1; }
  8. public List<Cell> getFlaggedCells() { List<Cell> flaggedCells = new ArrayList<Cell>(); for

    (Cell cell : gameBoard) if (cell.isFlagged()) flaggedCells.add(cell); return flaggedCells; }
  9. // Check to see if the employee is // eligible

    for full benefits if ((employee.flags & HOURLY_FLAG) && (employee.age > 65))
  10. // Utility method that returns when this.closed is true. Throws

    an exception // if the timeout is reached. public synchronized void waitForClose(final long timeoutMillis) throws Exception { if(!closed) { wait(timeoutMillis); if(!closed) throw new Exception("MockResponseSender could not be closed"); } }
  11. You can interact: 1. With yourself 2. With parameters that

    were passed in to the method 3. Any objects you created 4. Any directly held component objects
  12. DRY

  13. git