SlideShare una empresa de Scribd logo
1 de 46
Siv Midtun Hollup
”I know exactly what code I need to write”
”Coding is easy.”
”I’ll just add another function instead of changing the existing one.”
”Don’t fix it if it ain’t broken.”
As little code as possible

Results as fast as possible

Correct results

Efficient code

Extendable code
”A scientists’ nightmare: Software problems leads to five retractions”
G. Miller, Science (2014)
”Deriving chemosensitivity from cell lines: Forensic bioinformatics and
reproducible research in high-throughput biology”
KA Baggerly et al, Annals of Applied Statistics (2009)
”Scientific software development is not an oxymoron”
SM Baxter et al, PLOS Computational Biology (2006)

”Publishing scientific software matters”
C. Pradal et al, Journal of Computational Science (2013)

”Best practices for scientific computing”
G. Wilson et al, PLOS Biology (2014)
To rewrite existing source code in order to improve its
readability, reusability or structure without affecting its meaning or
behaviour
”Testing takes too much time.”
”It’s too hard to test.”
”I can’t possibly test everything.”
”Test-Driven Development: An Empirical Evaluation of Agile Practice”
Lech Madeyski
As little code as possible

Results as fast as possible

Correct results

Efficient code

Extendable code


Clean Code, Robert C. Martin (Uncle Bob)



Test Driven Development, Kent Beck



Refactoring, Martin Fowler



Working effectively with legacy code, Michael Feathers


Introcing TDD and why it’s a good idea, Evan Dorn
http://www.youtube.com/watch?v=HhwElTL-mdI



Estimation and deception, Linda Rising http://chariotsolutions.com/podcast/ete-2010session-9-linda-rising-deception-and-estimation/



TDD in action (Roy Osherove) http://www.youtube.com/watch?v=xX9hfPkA800


Practice coding and get feedback: http://www.exercism.io/



Online courses (subscription): http://www.pluralsight.com/

Más contenido relacionado

Destacado

Web20 per la camera di commercio di venezia
Web20 per la camera di commercio di veneziaWeb20 per la camera di commercio di venezia
Web20 per la camera di commercio di veneziaNetlife s.r.l.
 
Fear and Loathing in Academia - Miedo y temor en el mundo académico
Fear and Loathing in Academia - Miedo y temor en el mundo académicoFear and Loathing in Academia - Miedo y temor en el mundo académico
Fear and Loathing in Academia - Miedo y temor en el mundo académicoOpen Access Peru
 
Teksan generator 2011
Teksan generator 2011Teksan generator 2011
Teksan generator 2011ataelif
 
Leverage Relationships for Sustainable Advantage
Leverage Relationships for Sustainable AdvantageLeverage Relationships for Sustainable Advantage
Leverage Relationships for Sustainable AdvantageDavid Hain
 
Three Deep Web Analytics Wednesday
Three Deep Web Analytics WednesdayThree Deep Web Analytics Wednesday
Three Deep Web Analytics WednesdayThree Deep Marketing
 
Paid Search for E-commerce Marketing
Paid Search for E-commerce MarketingPaid Search for E-commerce Marketing
Paid Search for E-commerce MarketingThree Deep Marketing
 
Presentazione Netlife s.r.l.
Presentazione Netlife s.r.l.Presentazione Netlife s.r.l.
Presentazione Netlife s.r.l.Netlife s.r.l.
 
Niemiecka Biblioteka Narodowa
Niemiecka Biblioteka NarodowaNiemiecka Biblioteka Narodowa
Niemiecka Biblioteka NarodowaWeronika
 
Op Sy 03 Ch 101
Op Sy 03 Ch 101Op Sy 03 Ch 101
Op Sy 03 Ch 101 Google
 
Op Sy 03 Ch 61
Op Sy 03 Ch 61Op Sy 03 Ch 61
Op Sy 03 Ch 61 Google
 

Destacado (18)

Web20 per la camera di commercio di venezia
Web20 per la camera di commercio di veneziaWeb20 per la camera di commercio di venezia
Web20 per la camera di commercio di venezia
 
Fear and Loathing in Academia - Miedo y temor en el mundo académico
Fear and Loathing in Academia - Miedo y temor en el mundo académicoFear and Loathing in Academia - Miedo y temor en el mundo académico
Fear and Loathing in Academia - Miedo y temor en el mundo académico
 
Marys 50th.Pps
Marys 50th.PpsMarys 50th.Pps
Marys 50th.Pps
 
Teksan generator 2011
Teksan generator 2011Teksan generator 2011
Teksan generator 2011
 
Leverage Relationships for Sustainable Advantage
Leverage Relationships for Sustainable AdvantageLeverage Relationships for Sustainable Advantage
Leverage Relationships for Sustainable Advantage
 
Three Deep Web Analytics Wednesday
Three Deep Web Analytics WednesdayThree Deep Web Analytics Wednesday
Three Deep Web Analytics Wednesday
 
Ietc presentation
Ietc presentationIetc presentation
Ietc presentation
 
Evaluation Websites
Evaluation WebsitesEvaluation Websites
Evaluation Websites
 
Vores julekort 2010
Vores julekort 2010Vores julekort 2010
Vores julekort 2010
 
Paid Search for E-commerce Marketing
Paid Search for E-commerce MarketingPaid Search for E-commerce Marketing
Paid Search for E-commerce Marketing
 
Presentazione Netlife s.r.l.
Presentazione Netlife s.r.l.Presentazione Netlife s.r.l.
Presentazione Netlife s.r.l.
 
Niemiecka Biblioteka Narodowa
Niemiecka Biblioteka NarodowaNiemiecka Biblioteka Narodowa
Niemiecka Biblioteka Narodowa
 
Op Sy 03 Ch 101
Op Sy 03 Ch 101Op Sy 03 Ch 101
Op Sy 03 Ch 101
 
Op Sy 03 Ch 61
Op Sy 03 Ch 61Op Sy 03 Ch 61
Op Sy 03 Ch 61
 
Caudill 2011
Caudill 2011Caudill 2011
Caudill 2011
 
0
00
0
 
Be social
Be socialBe social
Be social
 
Businessfocus09
Businessfocus09Businessfocus09
Businessfocus09
 

Último

Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...ZurliaSoop
 
Holdier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdfHoldier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdfagholdier
 
On National Teacher Day, meet the 2024-25 Kenan Fellows
On National Teacher Day, meet the 2024-25 Kenan FellowsOn National Teacher Day, meet the 2024-25 Kenan Fellows
On National Teacher Day, meet the 2024-25 Kenan FellowsMebane Rash
 
SKILL OF INTRODUCING THE LESSON MICRO SKILLS.pptx
SKILL OF INTRODUCING THE LESSON MICRO SKILLS.pptxSKILL OF INTRODUCING THE LESSON MICRO SKILLS.pptx
SKILL OF INTRODUCING THE LESSON MICRO SKILLS.pptxAmanpreet Kaur
 
SOC 101 Demonstration of Learning Presentation
SOC 101 Demonstration of Learning PresentationSOC 101 Demonstration of Learning Presentation
SOC 101 Demonstration of Learning Presentationcamerronhm
 
Understanding Accommodations and Modifications
Understanding  Accommodations and ModificationsUnderstanding  Accommodations and Modifications
Understanding Accommodations and ModificationsMJDuyan
 
Application orientated numerical on hev.ppt
Application orientated numerical on hev.pptApplication orientated numerical on hev.ppt
Application orientated numerical on hev.pptRamjanShidvankar
 
2024-NATIONAL-LEARNING-CAMP-AND-OTHER.pptx
2024-NATIONAL-LEARNING-CAMP-AND-OTHER.pptx2024-NATIONAL-LEARNING-CAMP-AND-OTHER.pptx
2024-NATIONAL-LEARNING-CAMP-AND-OTHER.pptxMaritesTamaniVerdade
 
How to Manage Global Discount in Odoo 17 POS
How to Manage Global Discount in Odoo 17 POSHow to Manage Global Discount in Odoo 17 POS
How to Manage Global Discount in Odoo 17 POSCeline George
 
General Principles of Intellectual Property: Concepts of Intellectual Proper...
General Principles of Intellectual Property: Concepts of Intellectual  Proper...General Principles of Intellectual Property: Concepts of Intellectual  Proper...
General Principles of Intellectual Property: Concepts of Intellectual Proper...Poonam Aher Patil
 
Introduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The BasicsIntroduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The BasicsTechSoup
 
Python Notes for mca i year students osmania university.docx
Python Notes for mca i year students osmania university.docxPython Notes for mca i year students osmania university.docx
Python Notes for mca i year students osmania university.docxRamakrishna Reddy Bijjam
 
Accessible Digital Futures project (20/03/2024)
Accessible Digital Futures project (20/03/2024)Accessible Digital Futures project (20/03/2024)
Accessible Digital Futures project (20/03/2024)Jisc
 
How to Create and Manage Wizard in Odoo 17
How to Create and Manage Wizard in Odoo 17How to Create and Manage Wizard in Odoo 17
How to Create and Manage Wizard in Odoo 17Celine George
 
Food safety_Challenges food safety laboratories_.pdf
Food safety_Challenges food safety laboratories_.pdfFood safety_Challenges food safety laboratories_.pdf
Food safety_Challenges food safety laboratories_.pdfSherif Taha
 
How to Give a Domain for a Field in Odoo 17
How to Give a Domain for a Field in Odoo 17How to Give a Domain for a Field in Odoo 17
How to Give a Domain for a Field in Odoo 17Celine George
 
Micro-Scholarship, What it is, How can it help me.pdf
Micro-Scholarship, What it is, How can it help me.pdfMicro-Scholarship, What it is, How can it help me.pdf
Micro-Scholarship, What it is, How can it help me.pdfPoh-Sun Goh
 
Magic bus Group work1and 2 (Team 3).pptx
Magic bus Group work1and 2 (Team 3).pptxMagic bus Group work1and 2 (Team 3).pptx
Magic bus Group work1and 2 (Team 3).pptxdhanalakshmis0310
 
microwave assisted reaction. General introduction
microwave assisted reaction. General introductionmicrowave assisted reaction. General introduction
microwave assisted reaction. General introductionMaksud Ahmed
 
PROCESS RECORDING FORMAT.docx
PROCESS      RECORDING        FORMAT.docxPROCESS      RECORDING        FORMAT.docx
PROCESS RECORDING FORMAT.docxPoojaSen20
 

Último (20)

Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
 
Holdier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdfHoldier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdf
 
On National Teacher Day, meet the 2024-25 Kenan Fellows
On National Teacher Day, meet the 2024-25 Kenan FellowsOn National Teacher Day, meet the 2024-25 Kenan Fellows
On National Teacher Day, meet the 2024-25 Kenan Fellows
 
SKILL OF INTRODUCING THE LESSON MICRO SKILLS.pptx
SKILL OF INTRODUCING THE LESSON MICRO SKILLS.pptxSKILL OF INTRODUCING THE LESSON MICRO SKILLS.pptx
SKILL OF INTRODUCING THE LESSON MICRO SKILLS.pptx
 
SOC 101 Demonstration of Learning Presentation
SOC 101 Demonstration of Learning PresentationSOC 101 Demonstration of Learning Presentation
SOC 101 Demonstration of Learning Presentation
 
Understanding Accommodations and Modifications
Understanding  Accommodations and ModificationsUnderstanding  Accommodations and Modifications
Understanding Accommodations and Modifications
 
Application orientated numerical on hev.ppt
Application orientated numerical on hev.pptApplication orientated numerical on hev.ppt
Application orientated numerical on hev.ppt
 
2024-NATIONAL-LEARNING-CAMP-AND-OTHER.pptx
2024-NATIONAL-LEARNING-CAMP-AND-OTHER.pptx2024-NATIONAL-LEARNING-CAMP-AND-OTHER.pptx
2024-NATIONAL-LEARNING-CAMP-AND-OTHER.pptx
 
How to Manage Global Discount in Odoo 17 POS
How to Manage Global Discount in Odoo 17 POSHow to Manage Global Discount in Odoo 17 POS
How to Manage Global Discount in Odoo 17 POS
 
General Principles of Intellectual Property: Concepts of Intellectual Proper...
General Principles of Intellectual Property: Concepts of Intellectual  Proper...General Principles of Intellectual Property: Concepts of Intellectual  Proper...
General Principles of Intellectual Property: Concepts of Intellectual Proper...
 
Introduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The BasicsIntroduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The Basics
 
Python Notes for mca i year students osmania university.docx
Python Notes for mca i year students osmania university.docxPython Notes for mca i year students osmania university.docx
Python Notes for mca i year students osmania university.docx
 
Accessible Digital Futures project (20/03/2024)
Accessible Digital Futures project (20/03/2024)Accessible Digital Futures project (20/03/2024)
Accessible Digital Futures project (20/03/2024)
 
How to Create and Manage Wizard in Odoo 17
How to Create and Manage Wizard in Odoo 17How to Create and Manage Wizard in Odoo 17
How to Create and Manage Wizard in Odoo 17
 
Food safety_Challenges food safety laboratories_.pdf
Food safety_Challenges food safety laboratories_.pdfFood safety_Challenges food safety laboratories_.pdf
Food safety_Challenges food safety laboratories_.pdf
 
How to Give a Domain for a Field in Odoo 17
How to Give a Domain for a Field in Odoo 17How to Give a Domain for a Field in Odoo 17
How to Give a Domain for a Field in Odoo 17
 
Micro-Scholarship, What it is, How can it help me.pdf
Micro-Scholarship, What it is, How can it help me.pdfMicro-Scholarship, What it is, How can it help me.pdf
Micro-Scholarship, What it is, How can it help me.pdf
 
Magic bus Group work1and 2 (Team 3).pptx
Magic bus Group work1and 2 (Team 3).pptxMagic bus Group work1and 2 (Team 3).pptx
Magic bus Group work1and 2 (Team 3).pptx
 
microwave assisted reaction. General introduction
microwave assisted reaction. General introductionmicrowave assisted reaction. General introduction
microwave assisted reaction. General introduction
 
PROCESS RECORDING FORMAT.docx
PROCESS      RECORDING        FORMAT.docxPROCESS      RECORDING        FORMAT.docx
PROCESS RECORDING FORMAT.docx
 

Good coding-practices-for-scientists-jan-2014

  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10. ”I know exactly what code I need to write”
  • 12.
  • 13.
  • 14. ”I’ll just add another function instead of changing the existing one.”
  • 15. ”Don’t fix it if it ain’t broken.”
  • 16.
  • 17. As little code as possible Results as fast as possible Correct results Efficient code Extendable code
  • 18.
  • 19.
  • 20.
  • 21. ”A scientists’ nightmare: Software problems leads to five retractions” G. Miller, Science (2014)
  • 22. ”Deriving chemosensitivity from cell lines: Forensic bioinformatics and reproducible research in high-throughput biology” KA Baggerly et al, Annals of Applied Statistics (2009)
  • 23. ”Scientific software development is not an oxymoron” SM Baxter et al, PLOS Computational Biology (2006) ”Publishing scientific software matters” C. Pradal et al, Journal of Computational Science (2013) ”Best practices for scientific computing” G. Wilson et al, PLOS Biology (2014)
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30. To rewrite existing source code in order to improve its readability, reusability or structure without affecting its meaning or behaviour
  • 31.
  • 32. ”Testing takes too much time.”
  • 33. ”It’s too hard to test.”
  • 34. ”I can’t possibly test everything.”
  • 35.
  • 36.
  • 37.
  • 38.
  • 39.
  • 40. ”Test-Driven Development: An Empirical Evaluation of Agile Practice” Lech Madeyski
  • 41.
  • 42.
  • 43. As little code as possible Results as fast as possible Correct results Efficient code Extendable code
  • 44.  Clean Code, Robert C. Martin (Uncle Bob)  Test Driven Development, Kent Beck  Refactoring, Martin Fowler  Working effectively with legacy code, Michael Feathers
  • 45.  Introcing TDD and why it’s a good idea, Evan Dorn http://www.youtube.com/watch?v=HhwElTL-mdI  Estimation and deception, Linda Rising http://chariotsolutions.com/podcast/ete-2010session-9-linda-rising-deception-and-estimation/  TDD in action (Roy Osherove) http://www.youtube.com/watch?v=xX9hfPkA800
  • 46.  Practice coding and get feedback: http://www.exercism.io/  Online courses (subscription): http://www.pluralsight.com/